@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,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/Settings/ScriptObjectSettings.tsx", "../../../src/components/Settings/ScriptPluginSettings.tsx", "../../../src/components/TestPanel/TestPanel.tsx", "../../../src/components/TestPanel/TestContainer.tsx", "../../../src/components/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Octokit } from '@octokit/core';\nimport React, { type ChangeEvent, useCallback, useState } from 'react';\n\nimport { ToolId } from '@dxos/ai';\nimport { SettingsOperation } from '@dxos/app-framework';\nimport { useOperationInvoker } from '@dxos/app-framework/react';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { Filter, Obj, Ref } from '@dxos/echo';\nimport { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { getInvocationUrl } from '@dxos/functions-runtime';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from '@dxos/react-ui';\nimport { AccessToken } from '@dxos/types';\nimport { kebabize } from '@dxos/util';\n\nimport { meta } from '../../meta';\n\nexport type ScriptObjectSettingsProps = {\n object: Script.Script;\n};\n\nexport const ScriptObjectSettings = ({ object }: ScriptObjectSettingsProps) => {\n return (\n <>\n <Binding object={object} />\n <BlueprintEditor object={object} />\n <Publishing object={object} />\n </>\n );\n};\n\nexport const ScriptProperties = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n return (\n <Input.Root>\n <Input.Label>{t('description label')}</Input.Label>\n <Input.TextInput\n placeholder={t('description placeholder')}\n value={object.description ?? ''}\n onChange={(event) => {\n Obj.change(object, (o) => {\n o.description = event.target.value;\n });\n }}\n />\n </Input.Root>\n );\n};\n\nconst BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const db = Obj.getDatabase(object);\n const [fn] = useQuery(db, Filter.type(Function.Function, { source: Ref.make(object) }));\n const blueprints = useQuery(db, Filter.type(Blueprint.Blueprint));\n\n const [creating, setCreating] = useState(false);\n const [instructions, setInstructions] = useState<string>(`You can run the script \"${object.name ?? 'script'}\".`);\n const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? 'script')}`;\n const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);\n\n useAsyncEffect(async () => {\n if (!existingBlueprint) {\n return;\n }\n const source = await existingBlueprint.instructions.source.load();\n setInstructions(source.content ?? '');\n }, [existingBlueprint]);\n\n const handleSave = useCallback(async () => {\n if (!db) {\n return;\n }\n\n setCreating(true);\n try {\n if (existingBlueprint) {\n const text = await existingBlueprint.instructions.source.load();\n Obj.change(text, (t) => {\n t.content = instructions;\n });\n if (fn?.key) {\n const toolId = ToolId.make(fn.key);\n if (!existingBlueprint.tools?.includes(toolId)) {\n Obj.change(existingBlueprint, (b) => {\n b.tools = [...(b.tools ?? []), toolId];\n });\n }\n }\n } else if (fn?.key) {\n db.add(\n Blueprint.make({\n key: blueprintKey,\n name: object.name ?? 'Script',\n instructions: Template.make({\n source: instructions,\n }),\n tools: [ToolId.make(fn.key)],\n }),\n );\n }\n await db.flush();\n } finally {\n setCreating(false);\n }\n }, [db, existingBlueprint, fn, blueprintKey, object.name, instructions]);\n\n return (\n <div className='flex flex-col gap-4 mlb-cardSpacingBlock'>\n <div>\n <h2>{t('blueprint editor label', { default: 'Blueprint' })}</h2>\n <p className='text-description text-sm'>\n {t('blueprint editor description', {\n default: 'Create a blueprint that exposes this script as a tool.',\n })}\n </p>\n </div>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('blueprint instructions label', { default: 'Instructions' })}</Input.Label>\n <Input.TextArea\n placeholder={t('blueprint instructions placeholder', {\n default: 'Describe how this tool should be used.',\n })}\n rows={6}\n value={instructions}\n onChange={(event) => setInstructions(event.target.value)}\n classNames='resize-y'\n />\n </div>\n </Input.Root>\n <div className='flex justify-end gap-2'>\n <Button disabled={(!existingBlueprint && !fn?.key) || creating} onClick={handleSave}>\n {t(creating ? 'creating label' : 'create blueprint label', {\n default: creating ? 'Creating…' : 'Create blueprint',\n })}\n </Button>\n </div>\n </div>\n );\n};\n\nconst Binding = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n const db = Obj.getDatabase(object);\n const [fn] = useQuery(db, Filter.type(Function.Function, { source: Ref.make(object) }));\n\n const functionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));\n const functionUrl =\n functionId &&\n getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: db?.spaceId,\n });\n\n const [binding, setBinding] = useControlledState(fn?.binding ?? '');\n const handleBindingChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setBinding(event.target.value);\n },\n [setBinding],\n );\n\n const handleBindingBlur = useCallback(() => {\n Obj.change(fn, (f) => {\n f.binding = binding;\n });\n }, [fn, binding]);\n\n if (!fn || !functionUrl) {\n return null;\n }\n\n // TODO(burdon): Use form.\n return (\n <div role='form' className='flex flex-col gap-2 mlb-cardSpacingBlock'>\n <h2>{t('remote function settings heading')}</h2>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('function url label')}</Input.Label>\n <div role='none' className='flex gap-1'>\n <Input.TextInput\n disabled\n value={functionUrl}\n onChange={(event) => {\n Obj.change(fn, (f) => {\n f.name = event.target.value;\n });\n }}\n />\n <Clipboard.IconButton value={functionUrl} />\n </div>\n </div>\n </Input.Root>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('function binding label')}</Input.Label>\n <Input.TextInput\n placeholder={t('function binding placeholder')}\n value={binding}\n onChange={handleBindingChange}\n onBlur={handleBindingBlur}\n />\n </div>\n </Input.Root>\n </div>\n );\n};\n\n// TODO(burdon): Move to separate tab?\nconst Publishing = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n const db = Obj.getDatabase(object);\n const [githubToken] = useQuery(db, Filter.type(AccessToken.AccessToken, { source: 'github.com' }));\n const gistKey = Obj.getMeta(object).keys.find(({ source }) => source === 'github.com');\n const [gistUrl, setGistUrl] = useState<string | undefined>();\n\n useAsyncEffect(async () => {\n const token = githubToken?.token;\n const gistId = gistKey?.id;\n if (!token || !gistId) {\n setGistUrl(undefined);\n return;\n }\n\n try {\n const octokit = new Octokit({ auth: githubToken.token });\n const response = await octokit.request('GET /gists/{gist_id}', {\n gist_id: gistId,\n });\n setGistUrl(response.data.html_url);\n } catch (err) {\n log.catch(err);\n setGistUrl(undefined);\n }\n }, [githubToken, gistKey]);\n\n const handleOpenTokenManager = useCallback(\n () =>\n invokePromise(SettingsOperation.Open, {\n plugin: 'dxos.org/plugin/token-manager',\n }),\n [invokePromise],\n );\n\n const [publishing, setPublishing] = useState(false);\n const handlePublish = useCallback(async () => {\n setPublishing(true);\n const octokit = new Octokit({ auth: githubToken.token });\n const source = await object.source.load();\n const filename = object.name ? kebabize(object.name) : 'composer-script';\n const files = { [`${filename}.ts`]: { content: source.content } };\n\n try {\n // TODO(wittjosiah): Factor out to intent.\n const meta = Obj.getMeta(object);\n const githubKey = meta.keys.find(({ source }) => source === 'github.com');\n const gistId = githubKey?.id;\n if (gistId) {\n await octokit.request('PATCH /gists/{gist_id}', {\n gist_id: gistId,\n files,\n });\n } else {\n const response = await octokit.request('POST /gists', {\n public: true,\n files,\n });\n const gistId = response.data.id;\n if (gistId) {\n Obj.change(object, (obj) => {\n Obj.getMeta(obj).keys.push({ source: 'github.com', id: gistId });\n });\n }\n }\n } finally {\n setPublishing(false);\n }\n }, [object, githubToken]);\n\n return (\n <div className='flex flex-col gap-4 mlb-cardSpacingBlock'>\n <div>\n <h2>{t('script publish settings label')}</h2>\n <p className='text-description text-sm'>{t('script publish settings description')}</p>\n </div>\n {!githubToken && (\n <div className='flex flex-col gap-2'>\n <span>{t('no github token label')}</span>\n <Button onClick={handleOpenTokenManager}>{t('open token manager label')}</Button>\n </div>\n )}\n {githubToken && (\n <div className='flex justify-end gap-2'>\n {gistUrl && <Clipboard.IconButton value={gistUrl} />}\n <Button disabled={publishing} onClick={handlePublish}>\n {t(publishing ? 'publishing label' : 'publish label')}\n </Button>\n </div>\n )}\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useClient } from '@dxos/react-client';\nimport { Button, Select, useTranslation } from '@dxos/react-ui';\nimport { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';\nimport { type EditorInputMode, EditorInputModes } from '@dxos/ui-editor';\n\nimport { meta } from '../../meta';\nimport { type ScriptSettings } from '../../types';\nimport { getAccessCredential } from '../../util';\n\nexport type ScriptPluginSettingsComponentProps = {\n settings: ScriptSettings;\n onSettingsChange: (fn: (current: ScriptSettings) => ScriptSettings) => void;\n};\n\nexport const ScriptPluginSettings = ({ settings, onSettingsChange }: ScriptPluginSettingsComponentProps) => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n\n // TODO(burdon): Check token.\n const handleAuthenticate = async () => {\n const { identityKey } = client.halo.identity.get()!;\n await client.halo.writeCredentials([getAccessCredential(identityKey)]);\n };\n\n return (\n <ControlPage>\n <ControlSection title={t('settings title', { ns: meta.id })}>\n <ControlGroup>\n {/* TODO(wittjosiah): Hide outside of dev environments. */}\n <ControlItemInput title={t('authenticate action label')}>\n <Button onClick={handleAuthenticate}>{t('authenticate button label')}</Button>\n </ControlItemInput>\n\n <ControlItemInput title={t('editor input mode label')}>\n <Select.Root\n value={settings.editorInputMode ?? 'default'}\n onValueChange={(value) => {\n onSettingsChange((s) => ({ ...s, editorInputMode: value as EditorInputMode }));\n }}\n >\n <Select.TriggerButton placeholder={t('select editor input mode placeholder')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {EditorInputModes.map((mode) => (\n <Select.Option key={mode} value={mode}>\n {t(`settings editor input mode ${mode} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n </ControlGroup>\n </ControlSection>\n </ControlPage>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef, useEffect, useRef, useState } from 'react';\n\nimport { log } from '@dxos/log';\nimport { Avatar, Icon, Input, type ThemedClassName, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { errorText, mx } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\n\ntype State = 'pending' | 'responding';\n\n/**\n * Request or response.\n */\ntype Message = {\n type: 'request' | 'response';\n text?: string;\n data?: any;\n error?: Error;\n};\n\nexport type TestPanelProps = ThemedClassName<{\n functionUrl?: string;\n}>;\n\n// TODO(burdon): Need persistent history (currently lost when switching tabs)..\nexport const TestPanel = ({ classNames, functionUrl }: TestPanelProps) => {\n const { t } = useTranslation(meta.id);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [input, setInput] = useState('');\n const [result, setResult] = useState('');\n const [state, setState] = useState<State | null>(null);\n\n // TODO(burdon): Persistent history (thread).\n const [history, setHistory] = useState<Message[]>([]);\n\n const scrollerRef = useRef<HTMLDivElement>(null);\n const handleScroll = () => {\n if (scrollerRef.current) {\n scrollerRef.current.scrollTop = scrollerRef.current.scrollHeight;\n }\n };\n\n const controller = useRef<AbortController>(null);\n useEffect(() => {\n return () => {\n handleStop();\n };\n }, []);\n\n const handleStop = () => {\n controller.current?.abort('stop');\n controller.current = null;\n };\n\n const handleClear = () => {\n handleStop();\n setInput('');\n setResult('');\n setHistory([]);\n inputRef.current?.focus();\n };\n\n const handleResponse = ({\n text,\n data,\n error,\n }: {\n text?: string;\n data?: any;\n error?: Error;\n } = {}) => {\n controller.current = null;\n setHistory((history) => [...history, { type: 'response', text, data, error } satisfies Message]);\n setResult('');\n setState(null);\n handleScroll();\n };\n\n const handleRequest = async (input: string) => {\n // Returns a promise that resolves when a value has been received.\n try {\n setState('pending');\n\n let data = null;\n // Detect JSON input.\n if (input.charAt(0) === '{') {\n try {\n const validJsonString = input.replace(/'/g, '\"').replace(/([{,]\\s*)([a-zA-Z0-9_]+)(\\s*:)/g, '$1\"$2\"$3');\n data = JSON.parse(validJsonString);\n input = JSON.stringify(data, null, 2);\n } catch (err) {\n inputRef.current?.focus();\n return;\n }\n }\n\n setInput('');\n setResult('');\n setHistory((history) => [...history, { type: 'request', text: input }]);\n setTimeout(() => {\n handleScroll();\n });\n\n // Throws DOMException when aborted.\n controller.current = new AbortController();\n const response = await fetch(functionUrl!, {\n signal: controller.current.signal,\n method: 'POST',\n body: input,\n headers: {\n 'Content-Type': data ? 'application/json' : 'text/plain',\n },\n });\n\n // Check for error.\n if (!response.ok) {\n const text = await response.text();\n handleResponse({\n error: new Error(text || response.statusText || String(response.status)),\n });\n return;\n }\n\n // Check for JSON.\n const contentType = response.headers.get('content-type');\n if (contentType === 'application/json') {\n const data = await response.json();\n handleResponse({ data });\n return;\n }\n\n // Text (including streaming).\n setState('responding');\n let text = '';\n const reader = response.body!.getReader();\n const pump = async ({ done, value }: ReadableStreamReadResult<Uint8Array>): Promise<void> => {\n text = text + new TextDecoder().decode(value);\n if (!controller.current || done) {\n handleResponse({ text });\n return;\n }\n\n setResult(text);\n setTimeout(() => {\n handleScroll();\n });\n\n return reader.read().then(pump);\n };\n\n void reader\n .read()\n .then(pump)\n .catch((err) => {\n if (err.name !== 'AbortError') {\n log.catch(err);\n }\n });\n } catch (err: any) {\n if (err !== 'stop') {\n const error = err instanceof Error ? err : new Error(err);\n handleResponse({ error });\n log.catch(err);\n } else {\n handleResponse();\n }\n }\n };\n\n return (\n <div className={mx('flex flex-col bs-full overflow-hidden', classNames)}>\n {/* TODO(burdon): Replace with Thread. */}\n <MessageThread ref={scrollerRef} state={state} result={result} history={history} />\n {/* TODO(burdon): Replace with Form based on the function's input schema. */}\n <Toolbar.Root>\n <Input.Root>\n <Input.TextInput\n ref={inputRef}\n autoFocus\n placeholder={t('function request placeholder')}\n value={input}\n onChange={(ev) => setInput(ev.target.value)}\n onKeyDown={(ev) => ev.key === 'Enter' && handleRequest(input)}\n />\n </Input.Root>\n <Toolbar.IconButton\n icon='ph--play--regular'\n size={4}\n label='Execute'\n iconOnly\n onClick={() => handleRequest(input)}\n />\n <Toolbar.IconButton\n icon={state ? 'ph--stop--regular' : 'ph--trash--regular'}\n size={4}\n label={state ? 'Stop' : 'Clear'}\n iconOnly\n onClick={() => (state ? handleStop() : handleClear())}\n />\n </Toolbar.Root>\n </div>\n );\n};\n\n// TODO(burdon): Replace with thread?\n// TODO(burdon): Button to edit/re-run question.\ntype MessageThreadProps = {\n state: State | null;\n history: Message[];\n result: string;\n};\n\nconst MessageThread = forwardRef<HTMLDivElement, MessageThreadProps>(\n ({ state, history, result }: MessageThreadProps, forwardedRef) => {\n return (\n <div ref={forwardedRef} className='flex flex-col gap-6 bs-full p-2 overflow-x-hidden overflow-y-auto'>\n {history.map((message, i) => (\n <div key={i} className='grid grid-cols-[2rem_1fr_2rem]'>\n <div className='p-1'>{message.type === 'response' && <RobotAvatar />}</div>\n <div className='overflow-auto'>\n <MessageItem message={message} />\n </div>\n </div>\n ))}\n\n {result?.length > 0 && (\n <div className='grid grid-cols-[2rem_1fr_2rem]'>\n <div className='p-1'>\n {(state === 'pending' && <Icon icon='ph--spinner--regular' size={6} classNames='animate-spin' />) || (\n <Icon icon='ph--robot--regular' size={6} classNames='animate-[pulse_1s_ease-in-out_infinite]' />\n )}\n </div>\n <div className='overflow-auto'>\n <MessageItem message={{ type: 'response', text: result }} />\n </div>\n </div>\n )}\n </div>\n );\n },\n);\n\nconst MessageItem = ({ classNames, message }: ThemedClassName<{ message: Message }>) => {\n const { type, text, data, error } = message;\n const wrapper = 'p-1 pli-2 rounded-md bg-hoverSurface overflow-auto';\n return (\n <div className={mx('flex', type === 'request' ? 'ml-[1rem] justify-end' : 'mr-[1rem]', classNames)}>\n {error && <div className={mx(wrapper, 'whitespace-pre', errorText)}>{String(error)}</div>}\n\n {text !== undefined && (\n <div className={mx(wrapper, type === 'request' && 'bg-primary-400 dark:bg-primary-600')}>\n {text || '\\u00D8'}\n </div>\n )}\n\n {data && (\n <SyntaxHighlighter language='json' className={mx(wrapper, 'text-xs')}>\n {JSON.stringify(data, null, 2)}\n </SyntaxHighlighter>\n )}\n </div>\n );\n};\n\nconst RobotAvatar = () => (\n <Avatar.Root>\n <Avatar.Content size={6} variant='circle' icon='ph--robot--regular' />\n </Avatar.Root>\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Script } from '@dxos/functions';\nimport { Layout } from '@dxos/react-ui-mosaic';\n\nimport { useDeployState, useToolbarState } from '../../hooks';\n\nimport { TestPanel } from './TestPanel';\n\nexport type TestContainerProps = {\n role: string;\n script: Script.Script;\n};\n\nexport const TestContainer = ({ role, script }: TestContainerProps) => {\n const state = useToolbarState();\n useDeployState({ state, script });\n return (\n <Layout.Main role={role}>\n <TestPanel functionUrl={state.value.functionUrl} />\n </Layout.Main>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './NotebookStack';\nexport * from './Settings';\nexport * from './TestPanel';\n\nexport { DEPLOYMENT_DIALOG } from './DeploymentDialog';\n\nexport const ScriptContainer = lazy(() => import('./ScriptContainer'));\nexport const DeploymentDialog = lazy(() => import('./DeploymentDialog'));\nexport const NotebookContainer = lazy(() => import('./NotebookContainer'));\n"],
5
+ "mappings": "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",
6
+ "names": ["Octokit", "React", "useCallback", "useState", "ToolId", "SettingsOperation", "useOperationInvoker", "Blueprint", "Template", "Filter", "Obj", "Ref", "Function", "getUserFunctionIdInMetadata", "getInvocationUrl", "log", "useClient", "useQuery", "Button", "Clipboard", "Input", "useAsyncEffect", "useControlledState", "useTranslation", "AccessToken", "kebabize", "ScriptObjectSettings", "object", "Binding", "BlueprintEditor", "Publishing", "ScriptProperties", "t", "useTranslation", "meta", "id", "Input", "Root", "Label", "TextInput", "placeholder", "value", "description", "onChange", "event", "Obj", "change", "o", "target", "db", "getDatabase", "fn", "useQuery", "Filter", "type", "Function", "source", "Ref", "make", "blueprints", "Blueprint", "creating", "setCreating", "useState", "instructions", "setInstructions", "name", "blueprintKey", "kebabize", "existingBlueprint", "find", "bp", "key", "useAsyncEffect", "load", "content", "handleSave", "useCallback", "text", "toolId", "ToolId", "tools", "includes", "b", "add", "Template", "flush", "div", "className", "h2", "default", "p", "role", "TextArea", "rows", "classNames", "Button", "disabled", "onClick", "client", "useClient", "functionId", "getUserFunctionIdInMetadata", "getMeta", "functionUrl", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "spaceId", "binding", "setBinding", "useControlledState", "handleBindingChange", "handleBindingBlur", "f", "Clipboard", "IconButton", "onBlur", "invokePromise", "useOperationInvoker", "githubToken", "AccessToken", "gistKey", "keys", "gistUrl", "setGistUrl", "token", "gistId", "undefined", "octokit", "Octokit", "auth", "response", "request", "gist_id", "data", "html_url", "err", "log", "catch", "handleOpenTokenManager", "SettingsOperation", "Open", "plugin", "publishing", "setPublishing", "handlePublish", "filename", "files", "githubKey", "public", "obj", "push", "span", "React", "useClient", "Button", "Select", "useTranslation", "ControlGroup", "ControlItemInput", "ControlPage", "ControlSection", "EditorInputModes", "ScriptPluginSettings", "settings", "onSettingsChange", "t", "useTranslation", "meta", "id", "client", "useClient", "handleAuthenticate", "identityKey", "halo", "identity", "get", "writeCredentials", "getAccessCredential", "React", "ControlPage", "ControlSection", "title", "ns", "ControlGroup", "ControlItemInput", "Button", "onClick", "Select", "Root", "value", "editorInputMode", "onValueChange", "s", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "EditorInputModes", "map", "mode", "Option", "key", "Arrow", "React", "forwardRef", "useEffect", "useRef", "useState", "log", "Avatar", "Icon", "Input", "Toolbar", "useTranslation", "SyntaxHighlighter", "errorText", "mx", "TestPanel", "classNames", "functionUrl", "t", "useTranslation", "meta", "id", "inputRef", "useRef", "input", "setInput", "useState", "result", "setResult", "state", "setState", "history", "setHistory", "scrollerRef", "handleScroll", "current", "scrollTop", "scrollHeight", "controller", "useEffect", "handleStop", "abort", "handleClear", "focus", "handleResponse", "text", "data", "error", "type", "handleRequest", "charAt", "validJsonString", "replace", "JSON", "parse", "stringify", "err", "setTimeout", "AbortController", "response", "fetch", "signal", "method", "body", "headers", "ok", "Error", "statusText", "String", "status", "contentType", "get", "json", "reader", "getReader", "pump", "done", "value", "TextDecoder", "decode", "read", "then", "catch", "name", "log", "React", "div", "className", "mx", "MessageThread", "ref", "Toolbar", "Root", "Input", "TextInput", "autoFocus", "placeholder", "onChange", "ev", "target", "onKeyDown", "key", "IconButton", "icon", "size", "label", "iconOnly", "onClick", "forwardRef", "forwardedRef", "map", "message", "i", "RobotAvatar", "MessageItem", "length", "Icon", "wrapper", "errorText", "undefined", "SyntaxHighlighter", "language", "Avatar", "Content", "variant", "React", "Layout", "TestContainer", "role", "script", "state", "useToolbarState", "useDeployState", "React", "Layout", "Main", "TestPanel", "functionUrl", "value", "lazy", "ScriptContainer", "lazy", "DeploymentDialog", "NotebookContainer"]
7
+ }
@@ -0,0 +1,161 @@
1
+ import {
2
+ ScriptCapabilities
3
+ } from "./chunk-UUR4JNNB.mjs";
4
+ import "./chunk-UX4GHJ5E.mjs";
5
+ import "./chunk-WYR4QHPE.mjs";
6
+ import "./chunk-J5LGTIGS.mjs";
7
+
8
+ // src/capabilities/compiler/compiler.ts
9
+ import * as FetchHttpClient from "@effect/platform/FetchHttpClient";
10
+ import * as HttpClient from "@effect/platform/HttpClient";
11
+ import * as Effect from "effect/Effect";
12
+ import * as Schedule from "effect/Schedule";
13
+ import * as Schema from "effect/Schema";
14
+ import wasmUrl from "esbuild-wasm/esbuild.wasm?url";
15
+ import * as ts2 from "typescript";
16
+ import { Capability } from "@dxos/app-framework";
17
+ import { initializeBundler } from "@dxos/functions-runtime/bundler";
18
+ import { log } from "@dxos/log";
19
+ import { trim } from "@dxos/util";
20
+
21
+ // src/compiler/compiler.ts
22
+ import { createDefaultMapFromCDN, createSystem, createVirtualTypeScriptEnvironment } from "@typescript/vfs";
23
+ import ts from "typescript";
24
+ import { invariant } from "@dxos/invariant";
25
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/compiler/compiler.ts";
26
+ var GLOBALS = "globals.d.ts";
27
+ var defaultOptions = {
28
+ lib: [
29
+ "DOM",
30
+ "es2022"
31
+ ],
32
+ target: ts.ScriptTarget.ES2022
33
+ };
34
+ var Compiler = class {
35
+ _options;
36
+ _env;
37
+ _fsMap;
38
+ constructor(_options = defaultOptions) {
39
+ this._options = _options;
40
+ }
41
+ async initialize(globals) {
42
+ if (this._env) {
43
+ return;
44
+ }
45
+ this._fsMap = await createDefaultMapFromCDN(this._options, "5.7.2", true, ts);
46
+ if (globals) {
47
+ this._fsMap.set(GLOBALS, globals);
48
+ }
49
+ const rootFiles = globals ? [
50
+ GLOBALS
51
+ ] : [];
52
+ const system = createSystem(this._fsMap);
53
+ this._env = createVirtualTypeScriptEnvironment(system, rootFiles, ts, this._options);
54
+ }
55
+ get environment() {
56
+ invariant(this._env, "Compiler environment not initialized.", {
57
+ F: __dxlog_file,
58
+ L: 46,
59
+ S: this,
60
+ A: [
61
+ "this._env",
62
+ "'Compiler environment not initialized.'"
63
+ ]
64
+ });
65
+ return this._env;
66
+ }
67
+ setFile(fileName, content) {
68
+ invariant(this._fsMap, "File system map not initialized.", {
69
+ F: __dxlog_file,
70
+ L: 51,
71
+ S: this,
72
+ A: [
73
+ "this._fsMap",
74
+ "'File system map not initialized.'"
75
+ ]
76
+ });
77
+ this.environment.createFile(fileName, content);
78
+ }
79
+ compile(fileName) {
80
+ return this.environment.languageService.getEmitOutput(fileName);
81
+ }
82
+ };
83
+
84
+ // src/capabilities/compiler/compiler.ts
85
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/capabilities/compiler/compiler.ts";
86
+ var SCRIPT_PACKAGES_BUCKET = "https://pub-5745ae82e450484aa28f75fc6a175935.r2.dev/dev/";
87
+ var DECLARATION_EXTS = [
88
+ ".d.ts",
89
+ ".d.mts"
90
+ ];
91
+ var NO_TYPES = true;
92
+ var compiler_default = Capability.makeModule(() => Effect.gen(function* () {
93
+ yield* Effect.tryPromise(() => initializeBundler({
94
+ wasmUrl
95
+ }));
96
+ const runtimeModules = yield* fetchRuntimeModules().pipe(Effect.provide(FetchHttpClient.layer));
97
+ const compiler = new Compiler({
98
+ skipLibCheck: true,
99
+ moduleResolution: ts2.ModuleResolutionKind.Bundler,
100
+ allowImportingTsExtensions: true,
101
+ noEmit: true,
102
+ strict: true,
103
+ esModuleInterop: true,
104
+ paths: Object.fromEntries(runtimeModules.map((mod) => [
105
+ mod.moduleName,
106
+ [
107
+ `./src/${mod.filename}`
108
+ ]
109
+ ]))
110
+ });
111
+ yield* Effect.tryPromise(() => compiler.initialize(trim`
112
+ declare module 'https://*';
113
+ ${NO_TYPES ? "" : 'declare module "*";'}
114
+ `));
115
+ if (!NO_TYPES) {
116
+ for (const mod of runtimeModules) {
117
+ compiler.setFile(`/src/${mod.filename}`, mod.content);
118
+ }
119
+ }
120
+ return Capability.contributes(ScriptCapabilities.Compiler, compiler);
121
+ }));
122
+ var fetchRuntimeModules = Effect.fnUntraced(function* () {
123
+ const manifest = yield* HttpClient.get(new URL("manifest.json", SCRIPT_PACKAGES_BUCKET)).pipe(Effect.flatMap((_) => _.json), Effect.flatMap(Schema.decodeUnknown(Schema.Struct({
124
+ files: Schema.Array(Schema.Struct({
125
+ key: Schema.String
126
+ }))
127
+ }))), Effect.map((manifest2) => ({
128
+ ...manifest2,
129
+ files: manifest2.files.map((f) => f.key)
130
+ })));
131
+ const declarationFiles = manifest.files.filter((file) => DECLARATION_EXTS.some((ext) => file.endsWith(ext)));
132
+ let fetched = 0;
133
+ const modules = yield* Effect.forEach(declarationFiles, Effect.fnUntraced(function* (filename) {
134
+ const response = yield* HttpClient.get(new URL(filename, SCRIPT_PACKAGES_BUCKET)).pipe(Effect.retry(Schedule.exponential(1e3).pipe(Schedule.compose(Schedule.recurs(3)))));
135
+ const content = yield* response.text;
136
+ const moduleName = filename.replace(/\.d\.(ts|mts)$/, "");
137
+ fetched++;
138
+ return {
139
+ moduleName,
140
+ filename,
141
+ content
142
+ };
143
+ }, Effect.retry(Schedule.exponential(1e3).pipe(Schedule.compose(Schedule.recurs(3))))), {
144
+ concurrency: 20
145
+ });
146
+ log.info("runtime modules", {
147
+ manifest: manifest.files.length,
148
+ files: declarationFiles.length,
149
+ fetched
150
+ }, {
151
+ F: __dxlog_file2,
152
+ L: 101,
153
+ S: this,
154
+ C: (f, a) => f(...a)
155
+ });
156
+ return modules;
157
+ });
158
+ export {
159
+ compiler_default as default
160
+ };
161
+ //# sourceMappingURL=compiler-76F3QAXC.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/compiler/compiler.ts", "../../../src/compiler/compiler.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as FetchHttpClient from '@effect/platform/FetchHttpClient';\nimport * as HttpClient from '@effect/platform/HttpClient';\nimport * as Effect from 'effect/Effect';\nimport * as Schedule from 'effect/Schedule';\nimport * as Schema from 'effect/Schema';\nimport wasmUrl from 'esbuild-wasm/esbuild.wasm?url';\nimport * as ts from 'typescript';\n\nimport { Capability } from '@dxos/app-framework';\nimport { initializeBundler } from '@dxos/functions-runtime/bundler';\nimport { log } from '@dxos/log';\nimport { trim } from '@dxos/util';\n\nimport { Compiler } from '../../compiler';\nimport { ScriptCapabilities } from '../../types';\n\n// TODO(burdon): Document.\nconst SCRIPT_PACKAGES_BUCKET = 'https://pub-5745ae82e450484aa28f75fc6a175935.r2.dev/dev/';\nconst DECLARATION_EXTS = ['.d.ts', '.d.mts'];\nconst NO_TYPES = true; // Types temopararly disabled due to compiler erorrs.\n\nexport default Capability.makeModule(() =>\n Effect.gen(function* () {\n yield* Effect.tryPromise(() => initializeBundler({ wasmUrl }));\n\n const runtimeModules = yield* fetchRuntimeModules().pipe(Effect.provide(FetchHttpClient.layer));\n\n const compiler = new Compiler({\n skipLibCheck: true,\n moduleResolution: ts.ModuleResolutionKind.Bundler,\n allowImportingTsExtensions: true,\n noEmit: true,\n strict: true,\n esModuleInterop: true,\n paths: Object.fromEntries(runtimeModules.map((mod: any) => [mod.moduleName, [`./src/${mod.filename}`]])),\n });\n\n yield* Effect.tryPromise(() =>\n compiler.initialize(trim`\n declare module 'https://*';\n ${NO_TYPES ? '' : 'declare module \"*\";'}\n `),\n );\n if (!NO_TYPES) {\n for (const mod of runtimeModules) {\n compiler.setFile(`/src/${mod.filename}`, mod.content);\n }\n }\n\n return Capability.contributes(ScriptCapabilities.Compiler, compiler);\n }),\n);\n\nconst fetchRuntimeModules = Effect.fnUntraced(function* () {\n // { key, size, contentType }\n const manifest = yield* HttpClient.get(new URL('manifest.json', SCRIPT_PACKAGES_BUCKET)).pipe(\n Effect.flatMap((_) => _.json),\n Effect.flatMap(\n Schema.decodeUnknown(\n Schema.Struct({\n files: Schema.Array(\n Schema.Struct({\n key: Schema.String,\n }),\n ),\n }),\n ),\n ),\n Effect.map((manifest) => ({ ...manifest, files: manifest.files.map((f) => f.key) })),\n );\n\n const declarationFiles = manifest.files.filter((file) => DECLARATION_EXTS.some((ext) => file.endsWith(ext)));\n\n let fetched = 0;\n const modules = yield* Effect.forEach(\n declarationFiles,\n Effect.fnUntraced(\n function* (filename) {\n const response = yield* HttpClient.get(new URL(filename, SCRIPT_PACKAGES_BUCKET)).pipe(\n Effect.retry(Schedule.exponential(1_000).pipe(Schedule.compose(Schedule.recurs(3)))),\n );\n const content = yield* response.text;\n const moduleName = filename.replace(/\\.d\\.(ts|mts)$/, '');\n fetched++;\n\n return {\n moduleName,\n filename,\n content,\n };\n },\n Effect.retry(Schedule.exponential(1_000).pipe(Schedule.compose(Schedule.recurs(3)))),\n ),\n { concurrency: 20 },\n );\n\n log.info('runtime modules', { manifest: manifest.files.length, files: declarationFiles.length, fetched });\n return modules;\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n type VirtualTypeScriptEnvironment,\n createDefaultMapFromCDN,\n createSystem,\n createVirtualTypeScriptEnvironment,\n} from '@typescript/vfs';\nimport ts from 'typescript';\n\nimport { invariant } from '@dxos/invariant';\n\nconst GLOBALS = 'globals.d.ts';\n\nconst defaultOptions: ts.CompilerOptions = {\n lib: ['DOM', 'es2022'],\n target: ts.ScriptTarget.ES2022,\n};\n\nexport class Compiler {\n private _env: VirtualTypeScriptEnvironment | undefined;\n private _fsMap: Map<string, string> | undefined;\n\n constructor(private readonly _options: ts.CompilerOptions = defaultOptions) {}\n\n async initialize(globals?: string): Promise<void> {\n if (this._env) {\n return;\n }\n\n // TODO(wittjosiah): Figure out how to get workers working in plugin packages.\n // https://github.com/val-town/codemirror-ts?tab=readme-ov-file#setup-worker\n this._fsMap = await createDefaultMapFromCDN(this._options, '5.7.2', true, ts);\n if (globals) {\n this._fsMap.set(GLOBALS, globals);\n }\n\n const rootFiles = globals ? [GLOBALS] : [];\n const system = createSystem(this._fsMap);\n this._env = createVirtualTypeScriptEnvironment(system, rootFiles, ts, this._options);\n }\n\n get environment() {\n invariant(this._env, 'Compiler environment not initialized.');\n return this._env;\n }\n\n setFile(fileName: string, content: string): void {\n invariant(this._fsMap, 'File system map not initialized.');\n this.environment.createFile(fileName, content);\n }\n\n compile(fileName: string): ts.EmitOutput {\n return this.environment.languageService.getEmitOutput(fileName);\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["FetchHttpClient", "HttpClient", "Effect", "Schedule", "Schema", "wasmUrl", "ts", "Capability", "initializeBundler", "log", "trim", "createDefaultMapFromCDN", "createSystem", "createVirtualTypeScriptEnvironment", "ts", "invariant", "GLOBALS", "defaultOptions", "lib", "target", "ScriptTarget", "ES2022", "Compiler", "_env", "_fsMap", "_options", "initialize", "globals", "set", "rootFiles", "system", "environment", "setFile", "fileName", "content", "createFile", "compile", "languageService", "getEmitOutput", "SCRIPT_PACKAGES_BUCKET", "DECLARATION_EXTS", "NO_TYPES", "Capability", "makeModule", "gen", "tryPromise", "initializeBundler", "wasmUrl", "runtimeModules", "fetchRuntimeModules", "pipe", "provide", "layer", "compiler", "Compiler", "skipLibCheck", "moduleResolution", "ModuleResolutionKind", "Bundler", "allowImportingTsExtensions", "noEmit", "strict", "esModuleInterop", "paths", "Object", "fromEntries", "map", "mod", "moduleName", "filename", "initialize", "trim", "setFile", "content", "contributes", "ScriptCapabilities", "fnUntraced", "manifest", "get", "URL", "flatMap", "_", "json", "decodeUnknown", "Struct", "files", "Array", "key", "String", "f", "declarationFiles", "filter", "file", "some", "ext", "endsWith", "fetched", "modules", "forEach", "response", "retry", "exponential", "compose", "recurs", "text", "replace", "concurrency", "log", "info", "length"]
7
+ }
@@ -1,71 +1,100 @@
1
1
  import {
2
2
  DeploymentDialog,
3
+ NotebookContainer,
3
4
  ScriptContainer,
4
5
  ScriptObjectSettings,
5
6
  ScriptPluginSettings,
6
7
  ScriptProperties,
7
8
  TestContainer,
8
9
  TestPanel
9
- } from "./chunk-FIM2MVNJ.mjs";
10
- import {
11
- ScriptCapabilities
12
- } from "./chunk-5TVBECWH.mjs";
10
+ } from "./chunk-XCN4D3Z5.mjs";
13
11
  import {
14
12
  DEPLOYMENT_DIALOG
15
- } from "./chunk-P4HQKUCP.mjs";
16
- import "./chunk-3U6DTUH3.mjs";
17
- import "./chunk-R4R7VOFY.mjs";
18
- import "./chunk-FMDXKOP7.mjs";
13
+ } from "./chunk-TWX2NMZN.mjs";
14
+ import {
15
+ deployScript,
16
+ getAccessCredential,
17
+ getFunctionUrl,
18
+ isScriptDeployed,
19
+ updateFunctionMetadata
20
+ } from "./chunk-C53UJGSU.mjs";
21
+ import {
22
+ Notebook_exports,
23
+ ScriptCapabilities,
24
+ ScriptEvents,
25
+ ScriptOperation
26
+ } from "./chunk-UUR4JNNB.mjs";
27
+ import "./chunk-UX4GHJ5E.mjs";
19
28
  import {
20
- ScriptAction
21
- } from "./chunk-IS4OG2UW.mjs";
29
+ NotebookMenu,
30
+ NotebookStack
31
+ } from "./chunk-BTWHM6FH.mjs";
32
+ import "./chunk-I7CSE6T3.mjs";
22
33
  import {
23
- SCRIPT_PLUGIN,
24
34
  defaultScriptsForIntegration,
25
35
  meta
26
- } from "./chunk-QYAREHGH.mjs";
27
-
28
- // src/capabilities/index.ts
29
- import { lazy } from "@dxos/app-framework";
30
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-HLQ7K3BT.mjs"));
31
- var ArtifactDefinition = lazy(() => import("./artifact-definition-CK3BIBSI.mjs"));
32
- var Compiler = lazy(() => import("./compiler-CXCUA4UQ.mjs"));
33
- var IntentResolver = lazy(() => import("./intent-resolver-S3H2SMUY.mjs"));
34
- var ReactSurface = lazy(() => import("./react-surface-FYYXZA7C.mjs"));
35
- var ScriptSettings = lazy(() => import("./settings-KCTBK5TY.mjs"));
36
+ } from "./chunk-WYR4QHPE.mjs";
37
+ import "./chunk-J5LGTIGS.mjs";
36
38
 
37
39
  // src/ScriptPlugin.tsx
38
- import { Schema } from "effect";
39
- import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from "@dxos/app-framework";
40
+ import * as Effect from "effect/Effect";
41
+ import { Common, Plugin } from "@dxos/app-framework";
40
42
  import { Ref } from "@dxos/echo";
41
- import { ScriptType as ScriptType2 } from "@dxos/functions";
42
- import { ClientEvents } from "@dxos/plugin-client";
43
- import { SpaceCapabilities } from "@dxos/plugin-space";
44
- import { defineObjectForm } from "@dxos/plugin-space/types";
43
+ import { Script as Script2 } from "@dxos/functions";
44
+ import { Operation } from "@dxos/operation";
45
+
46
+ // src/capabilities/app-graph-builder/index.ts
47
+ import { Capability } from "@dxos/app-framework";
48
+ var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-7VO7AUI6.mjs"));
49
+
50
+ // src/capabilities/blueprint-definition/index.ts
51
+ import { Capability as Capability2 } from "@dxos/app-framework";
52
+ var BlueprintDefinition = Capability2.lazy("BlueprintDefinition", () => import("./blueprint-definition-OSOUYI7A.mjs"));
53
+
54
+ // src/capabilities/compiler/index.ts
55
+ import { Capability as Capability3 } from "@dxos/app-framework";
56
+ var Compiler = Capability3.lazy("Compiler", () => import("./compiler-76F3QAXC.mjs"));
45
57
 
46
- // src/events.ts
47
- import { defineEvent } from "@dxos/app-framework";
48
- (function(ScriptEvents2) {
49
- ScriptEvents2.SetupCompiler = defineEvent(`${SCRIPT_PLUGIN}/event/setup-compiler`);
50
- })(ScriptEvents || (ScriptEvents = {}));
51
- var ScriptEvents;
58
+ // src/capabilities/operation-resolver/index.ts
59
+ import { Capability as Capability4 } from "@dxos/app-framework";
60
+ var OperationResolver = Capability4.lazy("OperationResolver", () => import("./operation-resolver-HUILPPKT.mjs"));
61
+
62
+ // src/capabilities/react-surface/index.ts
63
+ import { Capability as Capability5 } from "@dxos/app-framework";
64
+ var ReactSurface = Capability5.lazy("ReactSurface", () => import("./react-surface-O6GKHB2J.mjs"));
65
+
66
+ // src/capabilities/settings/index.ts
67
+ import { Capability as Capability6 } from "@dxos/app-framework";
68
+ var ScriptSettings = Capability6.lazy("ScriptSettings", () => import("./settings-3ENI25PI.mjs"));
52
69
 
53
70
  // src/translations.ts
54
- import { ScriptType } from "@dxos/functions";
71
+ import { Script } from "@dxos/functions";
55
72
  var translations = [
56
73
  {
57
74
  "en-US": {
58
- [ScriptType.typename]: {
75
+ [Script.Script.typename]: {
59
76
  "typename label": "Script",
60
77
  "typename label_zero": "Scripts",
61
78
  "typename label_one": "Script",
62
79
  "typename label_other": "Scripts",
63
80
  "object name placeholder": "New script",
64
81
  "rename object label": "Rename script",
65
- "delete object label": "Delete script"
82
+ "delete object label": "Delete script",
83
+ "object deleted label": "Script deleted"
84
+ },
85
+ [Notebook_exports.Notebook.typename]: {
86
+ "typename label": "Notebook",
87
+ "typename label_zero": "Notebooks",
88
+ "typename label_one": "Notebook",
89
+ "typename label_other": "Notebooks",
90
+ "object name placeholder": "New notebook",
91
+ "rename object label": "Rename notebook",
92
+ "delete object label": "Delete notebook",
93
+ "object deleted label": "Notebook deleted"
66
94
  },
67
95
  [meta.id]: {
68
96
  "plugin name": "Scripts",
97
+ "settings title": "Scripts plugin settings",
69
98
  "description label": "Description",
70
99
  "description placeholder": "Enter description",
71
100
  "binding placeholder": "Function name",
@@ -89,18 +118,22 @@ var translations = [
89
118
  "open token manager label": "Open Token Manager",
90
119
  "publish label": "Publish",
91
120
  "publishing label": "Publishing",
121
+ "blueprint editor label": "Blueprint",
122
+ "blueprint editor description": "Create a blueprint that exposes this script as a tool.",
123
+ "blueprint instructions label": "Instructions",
124
+ "blueprint instructions placeholder": "Describe how this tool should be used.",
125
+ "create blueprint label": "Create blueprint",
126
+ "creating label": "Creating\u2026",
92
127
  "editor input mode label": "Editor input mode",
93
128
  "select editor input mode placeholder": "Select editor input mode\u2026",
94
129
  "settings editor input mode default label": "Default",
95
130
  "settings editor input mode vim label": "Vim",
96
131
  "settings editor input mode vscode label": "VS Code",
97
- "template select group label": "Select template",
98
132
  "function panel label": "Debug Function",
99
133
  "script test label": "Test",
100
134
  "script logs label": "Logs",
101
135
  "deployment dialog title": "Default Scripts",
102
- "deployment dialog scripts found message_one": "We found the following script template for your new integration:",
103
- "deployment dialog scripts found message_other": "We found the following script templates for your new integration:",
136
+ "deployment dialog scripts found message": "Script templates:",
104
137
  "deployment dialog deploy functions button label_one": "Create and deploy script",
105
138
  "deployment dialog deploy functions button label_other": "Create and deploy scripts",
106
139
  "deployment dialog deploy functions pending button label_one": "Deploying script",
@@ -117,86 +150,83 @@ var translations = [
117
150
  "script deployment error toast description_one": "There was an error deploying your script.",
118
151
  "script deployment error toast description_other": "There was an error deploying your scripts.",
119
152
  "script deployment error toast close label_one": "Close",
120
- "script deployment error toast close label_other": "Close"
153
+ "script deployment error toast close label_other": "Close",
154
+ "notebook cell placeholder": "Enter script",
155
+ "notebook cell delete label": "Delete cell",
156
+ "notebook cell prompt run label": "Run",
157
+ "notebook cell insert markdown label": "Insert Markdown",
158
+ "notebook cell insert script label": "Insert Script",
159
+ "notebook cell insert prompt label": "Insert Prompt",
160
+ "notebook cell insert query label": "Insert Query",
161
+ "notebook markdown placeholder": "Enter Markdown",
162
+ "notebook prompt placeholder": "Enter prompt",
163
+ "notebook cell insert label": "Insert cell"
121
164
  }
122
165
  }
123
166
  }
124
167
  ];
125
168
 
126
169
  // src/ScriptPlugin.tsx
127
- var ScriptPlugin = () => definePlugin(meta, [
128
- defineModule({
129
- id: `${meta.id}/module/settings`,
130
- activatesOn: Events.SetupSettings,
131
- activate: ScriptSettings
132
- }),
133
- defineModule({
134
- id: `${meta.id}/module/compiler`,
135
- activatesOn: ScriptEvents.SetupCompiler,
136
- activate: Compiler
137
- }),
138
- defineModule({
139
- id: `${meta.id}/module/translations`,
140
- activatesOn: Events.SetupTranslations,
141
- activate: () => contributes(Capabilities.Translations, translations)
142
- }),
143
- defineModule({
144
- id: `${meta.id}/module/metadata`,
145
- activatesOn: Events.SetupMetadata,
146
- activate: () => contributes(Capabilities.Metadata, {
147
- id: ScriptType2.typename,
170
+ var ScriptPlugin = Plugin.define(meta).pipe(Plugin.addModule({
171
+ activatesOn: Common.ActivationEvent.SetupSettings,
172
+ activate: ScriptSettings
173
+ }), Plugin.addModule({
174
+ activatesOn: ScriptEvents.SetupCompiler,
175
+ activate: Compiler
176
+ }), Common.Plugin.addTranslationsModule({
177
+ translations
178
+ }), Common.Plugin.addMetadataModule({
179
+ metadata: [
180
+ {
181
+ id: Script2.Script.typename,
148
182
  metadata: {
149
183
  icon: "ph--code--regular",
184
+ iconHue: "sky",
150
185
  // TODO(wittjosiah): Move out of metadata.
151
186
  loadReferences: async (script) => await Ref.Array.loadAll([
152
187
  script.source
153
- ])
188
+ ]),
189
+ inputSchema: ScriptOperation.ScriptProps,
190
+ createObject: (props) => Effect.gen(function* () {
191
+ const { object } = yield* Operation.invoke(ScriptOperation.CreateScript, props);
192
+ return object;
193
+ }),
194
+ addToCollectionOnCreate: true
154
195
  }
155
- })
156
- }),
157
- defineModule({
158
- id: `${meta.id}/module/app-graph-builder`,
159
- activatesOn: Events.SetupAppGraph,
160
- activate: AppGraphBuilder
161
- }),
162
- defineModule({
163
- id: `${meta.id}/module/object-form`,
164
- activatesOn: ClientEvents.SetupSchema,
165
- activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
166
- objectSchema: ScriptType2,
167
- formSchema: ScriptAction.CreateScriptSchema.pipe(Schema.omit("initialTemplateId")),
168
- getIntent: (props, options) => createIntent(ScriptAction.Create, {
169
- ...props,
170
- space: options.space
171
- })
172
- }))
173
- }),
174
- defineModule({
175
- id: `${meta.id}/module/react-surface`,
176
- activatesOn: Events.SetupReactSurface,
177
- // TODO(wittjosiah): Should occur before the script editor is loaded when surfaces activation is more granular.
178
- activatesBefore: [
179
- ScriptEvents.SetupCompiler
180
- ],
181
- activate: ReactSurface
182
- }),
183
- defineModule({
184
- id: `${meta.id}/module/intent-resolver`,
185
- activatesOn: Events.SetupIntentResolver,
186
- activate: IntentResolver
187
- }),
188
- defineModule({
189
- id: `${meta.id}/module/artifact-definition`,
190
- activatesOn: Events.SetupArtifactDefinition,
191
- activate: ArtifactDefinition
192
- })
193
- ]);
196
+ },
197
+ {
198
+ id: Notebook_exports.Notebook.typename,
199
+ metadata: {
200
+ icon: "ph--notebook--regular",
201
+ iconHue: "sky",
202
+ inputSchema: ScriptOperation.NotebookProps,
203
+ createObject: (props) => Effect.sync(() => Notebook_exports.make(props)),
204
+ addToCollectionOnCreate: true
205
+ }
206
+ }
207
+ ]
208
+ }), Common.Plugin.addAppGraphModule({
209
+ activate: AppGraphBuilder
210
+ }), Common.Plugin.addSchemaModule({
211
+ schema: [
212
+ Script2.Script
213
+ ]
214
+ }), Common.Plugin.addSurfaceModule({
215
+ activate: ReactSurface
216
+ }), Common.Plugin.addOperationResolverModule({
217
+ activate: OperationResolver
218
+ }), Common.Plugin.addBlueprintDefinitionModule({
219
+ activate: BlueprintDefinition
220
+ }), Plugin.make);
194
221
  export {
195
222
  DEPLOYMENT_DIALOG,
196
223
  DeploymentDialog,
197
- SCRIPT_PLUGIN,
224
+ NotebookContainer,
225
+ NotebookMenu,
226
+ NotebookStack,
198
227
  ScriptCapabilities,
199
228
  ScriptContainer,
229
+ ScriptEvents,
200
230
  ScriptObjectSettings,
201
231
  ScriptPlugin,
202
232
  ScriptPluginSettings,
@@ -204,6 +234,11 @@ export {
204
234
  TestContainer,
205
235
  TestPanel,
206
236
  defaultScriptsForIntegration,
207
- meta
237
+ deployScript,
238
+ getAccessCredential,
239
+ getFunctionUrl,
240
+ isScriptDeployed,
241
+ meta,
242
+ updateFunctionMetadata
208
243
  };
209
244
  //# sourceMappingURL=index.mjs.map