@dxos/plugin-script 0.9.0 → 0.9.1-staging.ee54ba693a

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 (318) hide show
  1. package/PLUGIN.mdl +9 -9
  2. package/dist/lib/neutral/{DeploymentDialog-M3AFYQHC.mjs → DeploymentDialog-7OIIL7LB.mjs} +10 -10
  3. package/dist/lib/neutral/DeploymentDialog-7OIIL7LB.mjs.map +7 -0
  4. package/dist/lib/neutral/{NotebookArticle-NV4AHOOS.mjs → NotebookArticle-AOBB3XGD.mjs} +28 -46
  5. package/dist/lib/neutral/NotebookArticle-AOBB3XGD.mjs.map +7 -0
  6. package/dist/lib/neutral/{ScriptArticle-QW26LOKU.mjs → ScriptArticle-I3DOJARR.mjs} +4 -4
  7. package/dist/lib/neutral/ScriptArticle-I3DOJARR.mjs.map +7 -0
  8. package/dist/lib/neutral/ScriptPlugin.mjs +6 -6
  9. package/dist/lib/neutral/ScriptPlugin.mjs.map +4 -4
  10. package/dist/lib/neutral/ScriptPlugin.node.mjs +3 -3
  11. package/dist/lib/neutral/ScriptPlugin.node.mjs.map +3 -3
  12. package/dist/lib/neutral/{ScriptProperties-RLXNAN3N.mjs → ScriptProperties-RHDQGMGT.mjs} +153 -154
  13. package/dist/lib/neutral/ScriptProperties-RHDQGMGT.mjs.map +7 -0
  14. package/dist/lib/neutral/ScriptSettings-NS3ZY7ZR.mjs +35 -0
  15. package/dist/lib/neutral/ScriptSettings-NS3ZY7ZR.mjs.map +7 -0
  16. package/dist/lib/neutral/{app-graph-builder-7AWFCEQF.mjs → app-graph-builder-POP3CX6G.mjs} +3 -3
  17. package/dist/lib/neutral/{app-graph-builder-7AWFCEQF.mjs.map → app-graph-builder-POP3CX6G.mjs.map} +3 -3
  18. package/dist/lib/neutral/capabilities/index.mjs +8 -8
  19. package/dist/lib/neutral/capabilities/index.mjs.map +3 -3
  20. package/dist/lib/neutral/capabilities/node.mjs +6 -6
  21. package/dist/lib/neutral/capabilities/node.mjs.map +3 -3
  22. package/dist/lib/neutral/{chunk-HABDH5SS.mjs → chunk-652CIABA.mjs} +14 -13
  23. package/dist/lib/neutral/chunk-652CIABA.mjs.map +7 -0
  24. package/dist/lib/neutral/{chunk-TRKXIP2Q.mjs → chunk-6DOWVKIW.mjs} +4 -5
  25. package/dist/lib/neutral/chunk-6DOWVKIW.mjs.map +7 -0
  26. package/dist/lib/neutral/{chunk-BDHDBPVM.mjs → chunk-CHNFYLKW.mjs} +12 -12
  27. package/dist/lib/neutral/chunk-CHNFYLKW.mjs.map +7 -0
  28. package/dist/lib/neutral/{chunk-VXDJH6OL.mjs → chunk-INFWOSTM.mjs} +14 -8
  29. package/dist/lib/neutral/chunk-INFWOSTM.mjs.map +7 -0
  30. package/dist/lib/neutral/{chunk-BKXYHCJ6.mjs → chunk-KSVKXCTX.mjs} +2 -2
  31. package/dist/lib/neutral/chunk-NVV5UYY4.mjs +50 -0
  32. package/dist/lib/neutral/chunk-NVV5UYY4.mjs.map +7 -0
  33. package/dist/lib/neutral/chunk-USJ44FIU.mjs +8 -0
  34. package/dist/lib/neutral/{chunk-XFM63AKT.mjs.map → chunk-USJ44FIU.mjs.map} +1 -1
  35. package/dist/lib/neutral/{chunk-PHKPB5JN.mjs → chunk-WAGQ77UQ.mjs} +16 -16
  36. package/dist/lib/neutral/chunk-WAGQ77UQ.mjs.map +7 -0
  37. package/dist/lib/neutral/components/index.mjs +124 -93
  38. package/dist/lib/neutral/components/index.mjs.map +4 -4
  39. package/dist/lib/neutral/containers/index.mjs +6 -4
  40. package/dist/lib/neutral/containers/index.mjs.map +3 -3
  41. package/dist/lib/neutral/{create-AAA53WDL.mjs → create-SGHWWTET.mjs} +4 -4
  42. package/dist/lib/neutral/{create-AAA53WDL.mjs.map → create-SGHWWTET.mjs.map} +4 -4
  43. package/dist/lib/neutral/{create-object-FZM5ASWM.mjs → create-object-QW66KQWS.mjs} +1 -3
  44. package/dist/lib/neutral/{create-object-FZM5ASWM.mjs.map → create-object-QW66KQWS.mjs.map} +3 -3
  45. package/dist/lib/neutral/{create-script-P46JOEHH.mjs → create-script-CIEJOBIU.mjs} +4 -4
  46. package/dist/lib/neutral/{create-script-P46JOEHH.mjs.map → create-script-CIEJOBIU.mjs.map} +3 -3
  47. package/dist/lib/neutral/{delete-HCQIQFVP.mjs → delete-72RXVLVI.mjs} +3 -3
  48. package/dist/lib/neutral/{delete-HCQIQFVP.mjs.map → delete-72RXVLVI.mjs.map} +1 -1
  49. package/dist/lib/neutral/{deploy-7JVMMHSH.mjs → deploy-PJTJAQZY.mjs} +10 -6
  50. package/dist/lib/neutral/deploy-PJTJAQZY.mjs.map +7 -0
  51. package/dist/lib/neutral/hooks/index.mjs +6 -6
  52. package/dist/lib/neutral/hooks/index.mjs.map +3 -3
  53. package/dist/lib/neutral/index.mjs +9 -9
  54. package/dist/lib/neutral/{inspect-invocations-TAOYDT4H.mjs → inspect-invocations-ZUXVUAML.mjs} +5 -5
  55. package/dist/lib/neutral/inspect-invocations-ZUXVUAML.mjs.map +7 -0
  56. package/dist/lib/neutral/{install-function-FJIE2JAI.mjs → install-function-YFDZLVMJ.mjs} +4 -4
  57. package/dist/lib/neutral/{install-function-FJIE2JAI.mjs.map → install-function-YFDZLVMJ.mjs.map} +1 -1
  58. package/dist/lib/neutral/{invoke-3HVWY2KF.mjs → invoke-CDRBQ2WA.mjs} +4 -4
  59. package/dist/lib/neutral/{invoke-3HVWY2KF.mjs.map → invoke-CDRBQ2WA.mjs.map} +1 -1
  60. package/dist/lib/neutral/meta.json +1 -1
  61. package/dist/lib/neutral/meta.mjs +1 -1
  62. package/dist/lib/neutral/{operation-handler-YMUADD7Y.mjs → operation-handler-M3B6IRMV.mjs} +3 -3
  63. package/dist/lib/neutral/{operation-handler-YMUADD7Y.mjs.map → operation-handler-M3B6IRMV.mjs.map} +1 -1
  64. package/dist/lib/neutral/operations/index.mjs +1 -1
  65. package/dist/lib/neutral/plugin.mjs +2 -2
  66. package/dist/lib/neutral/{query-deployed-functions-F4FHJNWO.mjs → query-deployed-functions-RBQMGON2.mjs} +4 -4
  67. package/dist/lib/neutral/{query-deployed-functions-F4FHJNWO.mjs.map → query-deployed-functions-RBQMGON2.mjs.map} +1 -1
  68. package/dist/lib/neutral/{react-surface-ACNZ35FV.mjs → react-surface-GEXOZLBC.mjs} +7 -8
  69. package/dist/lib/neutral/react-surface-GEXOZLBC.mjs.map +7 -0
  70. package/dist/lib/neutral/{read-RQESBAQI.mjs → read-OY3K5R3V.mjs} +3 -3
  71. package/dist/lib/neutral/{read-RQESBAQI.mjs.map → read-OY3K5R3V.mjs.map} +3 -3
  72. package/dist/lib/neutral/{settings-VJBW4OMK.mjs → settings-FD7HXEY6.mjs} +3 -3
  73. package/dist/lib/neutral/{settings-VJBW4OMK.mjs.map → settings-FD7HXEY6.mjs.map} +3 -3
  74. package/dist/lib/neutral/skill-definition-JZ7UYBT7.mjs +15 -0
  75. package/dist/lib/neutral/skill-definition-JZ7UYBT7.mjs.map +7 -0
  76. package/dist/lib/neutral/skills/index.mjs +10 -0
  77. package/dist/lib/neutral/templates/index.mjs +1 -1
  78. package/dist/lib/neutral/translations.mjs +7 -8
  79. package/dist/lib/neutral/translations.mjs.map +3 -3
  80. package/dist/lib/neutral/types/index.mjs +2 -2
  81. package/dist/lib/neutral/update-Z5VGOLBN.mjs +44 -0
  82. package/dist/lib/neutral/update-Z5VGOLBN.mjs.map +7 -0
  83. package/dist/types/dx.config.d.ts +28 -0
  84. package/dist/types/dx.config.d.ts.map +1 -0
  85. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -2
  86. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/compiler.d.ts +1 -2
  88. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/create-object.d.ts +1 -12
  90. package/dist/types/src/capabilities/create-object.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/index.d.ts +6 -17
  92. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/node.d.ts +4 -15
  94. package/dist/types/src/capabilities/node.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/react-surface.d.ts +2 -2
  96. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/settings.d.ts +1 -3
  98. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/skill-definition.d.ts +5 -0
  100. package/dist/types/src/capabilities/skill-definition.d.ts.map +1 -0
  101. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  102. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +2 -3
  103. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  104. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +18 -21
  105. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  106. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -1
  107. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  108. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +18 -21
  109. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  110. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  111. package/dist/types/src/components/index.d.ts +0 -2
  112. package/dist/types/src/components/index.d.ts.map +1 -1
  113. package/dist/types/src/constants.d.ts.map +1 -1
  114. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  115. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts +18 -21
  116. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  117. package/dist/types/src/containers/NotebookArticle/NotebookArticle.d.ts.map +1 -1
  118. package/dist/types/src/containers/NotebookArticle/NotebookArticle.stories.d.ts.map +1 -1
  119. package/dist/types/src/containers/ScriptArticle/ScriptArticle.stories.d.ts +20 -23
  120. package/dist/types/src/containers/ScriptArticle/ScriptArticle.stories.d.ts.map +1 -1
  121. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -1
  122. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts +20 -23
  123. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts.map +1 -1
  124. package/dist/types/src/containers/ScriptProperties/SkillEditor.d.ts +7 -0
  125. package/dist/types/src/containers/ScriptProperties/SkillEditor.d.ts.map +1 -0
  126. package/dist/types/src/containers/ScriptSettings/ScriptSettings.d.ts +8 -0
  127. package/dist/types/src/containers/ScriptSettings/ScriptSettings.d.ts.map +1 -0
  128. package/dist/types/src/{components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts → containers/ScriptSettings/ScriptSettings.stories.d.ts} +20 -23
  129. package/dist/types/src/containers/ScriptSettings/ScriptSettings.stories.d.ts.map +1 -0
  130. package/dist/types/src/containers/ScriptSettings/index.d.ts +2 -0
  131. package/dist/types/src/containers/ScriptSettings/index.d.ts.map +1 -0
  132. package/dist/types/src/containers/index.d.ts +1 -0
  133. package/dist/types/src/containers/index.d.ts.map +1 -1
  134. package/dist/types/src/hooks/deploy.d.ts +14 -15
  135. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  136. package/dist/types/src/hooks/format.d.ts +6 -1
  137. package/dist/types/src/hooks/format.d.ts.map +1 -1
  138. package/dist/types/src/hooks/template.d.ts +6 -1
  139. package/dist/types/src/hooks/template.d.ts.map +1 -1
  140. package/dist/types/src/index.d.ts +1 -1
  141. package/dist/types/src/index.d.ts.map +1 -1
  142. package/dist/types/src/meta.d.ts +32 -2
  143. package/dist/types/src/meta.d.ts.map +1 -1
  144. package/dist/types/src/operations/create-script.d.ts.map +1 -1
  145. package/dist/types/src/skills/functions/create.d.ts.map +1 -0
  146. package/dist/types/src/skills/functions/definitions.d.ts +75 -0
  147. package/dist/types/src/skills/functions/definitions.d.ts.map +1 -0
  148. package/dist/types/src/skills/functions/delete.d.ts +7 -0
  149. package/dist/types/src/skills/functions/delete.d.ts.map +1 -0
  150. package/dist/types/src/skills/functions/deploy.d.ts +11 -0
  151. package/dist/types/src/skills/functions/deploy.d.ts.map +1 -0
  152. package/dist/types/src/skills/functions/index.d.ts.map +1 -0
  153. package/dist/types/src/skills/functions/inspect-invocations.d.ts +18 -0
  154. package/dist/types/src/skills/functions/inspect-invocations.d.ts.map +1 -0
  155. package/dist/types/src/skills/functions/install-function.d.ts.map +1 -0
  156. package/dist/types/src/skills/functions/invoke.d.ts +11 -0
  157. package/dist/types/src/skills/functions/invoke.d.ts.map +1 -0
  158. package/dist/types/src/skills/functions/query-deployed-functions.d.ts.map +1 -0
  159. package/dist/types/src/skills/functions/read.d.ts +11 -0
  160. package/dist/types/src/skills/functions/read.d.ts.map +1 -0
  161. package/dist/types/src/skills/functions/update.d.ts +16 -0
  162. package/dist/types/src/skills/functions/update.d.ts.map +1 -0
  163. package/dist/types/src/skills/index.d.ts +2 -0
  164. package/dist/types/src/skills/index.d.ts.map +1 -0
  165. package/dist/types/src/skills/script-skill.d.ts +4 -0
  166. package/dist/types/src/skills/script-skill.d.ts.map +1 -0
  167. package/dist/types/src/templates/chess-bot.d.ts +1 -4
  168. package/dist/types/src/templates/chess-bot.d.ts.map +1 -1
  169. package/dist/types/src/templates/commentary.d.ts +1 -4
  170. package/dist/types/src/templates/commentary.d.ts.map +1 -1
  171. package/dist/types/src/testing/test-script.d.ts.map +1 -1
  172. package/dist/types/src/translations.d.ts +18 -21
  173. package/dist/types/src/translations.d.ts.map +1 -1
  174. package/dist/types/src/types/Notebook.d.ts +11 -81
  175. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  176. package/dist/types/src/types/ScriptCapabilities.d.ts.map +1 -1
  177. package/dist/types/src/types/ScriptEvents.d.ts.map +1 -1
  178. package/dist/types/src/types/ScriptOperation.d.ts +2 -10
  179. package/dist/types/src/types/ScriptOperation.d.ts.map +1 -1
  180. package/dist/types/src/util/deploy.d.ts +1 -1
  181. package/dist/types/src/util/deploy.d.ts.map +1 -1
  182. package/dist/types/tsconfig.tsbuildinfo +1 -1
  183. package/dx.config.ts +26 -0
  184. package/package.json +77 -75
  185. package/src/ScriptPlugin.node.ts +2 -2
  186. package/src/ScriptPlugin.test.ts +2 -2
  187. package/src/ScriptPlugin.tsx +3 -3
  188. package/src/capabilities/app-graph-builder.ts +2 -2
  189. package/src/capabilities/create-object.ts +0 -2
  190. package/src/capabilities/index.ts +1 -7
  191. package/src/capabilities/node.ts +1 -7
  192. package/src/capabilities/operation-handler.ts +1 -1
  193. package/src/capabilities/react-surface.tsx +11 -9
  194. package/src/capabilities/settings.ts +2 -2
  195. package/src/capabilities/skill-definition.ts +14 -0
  196. package/src/components/NotebookStack/NotebookCell.tsx +13 -31
  197. package/src/components/NotebookStack/NotebookMenu.tsx +1 -1
  198. package/src/components/NotebookStack/NotebookStack.stories.tsx +3 -3
  199. package/src/components/NotebookStack/NotebookStack.tsx +102 -44
  200. package/src/components/QueryEditor/QueryEditor.stories.tsx +2 -7
  201. package/src/components/ScriptToolbar/ScriptToolbar.tsx +3 -2
  202. package/src/components/TestPanel/TestPanel.tsx +1 -1
  203. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +2 -2
  204. package/src/components/TypescriptEditor/TypescriptEditor.tsx +7 -7
  205. package/src/components/index.ts +0 -4
  206. package/src/constants.ts +1 -1
  207. package/src/containers/DeploymentDialog/DeploymentDialog.tsx +15 -9
  208. package/src/containers/NotebookArticle/NotebookArticle.stories.tsx +6 -5
  209. package/src/containers/NotebookArticle/NotebookArticle.tsx +21 -43
  210. package/src/containers/ScriptArticle/ScriptArticle.stories.tsx +5 -5
  211. package/src/containers/ScriptArticle/ScriptArticle.tsx +3 -3
  212. package/src/containers/ScriptProperties/FunctionBinding.tsx +2 -2
  213. package/src/containers/ScriptProperties/FunctionPublishing.tsx +2 -2
  214. package/src/containers/ScriptProperties/ScriptProperties.stories.tsx +5 -5
  215. package/src/containers/ScriptProperties/ScriptProperties.tsx +13 -6
  216. package/src/containers/ScriptProperties/{BlueprintEditor.tsx → SkillEditor.tsx} +23 -23
  217. package/src/{components/ScriptPluginSettings/ScriptPluginSettings.stories.tsx → containers/ScriptSettings/ScriptSettings.stories.tsx} +4 -4
  218. package/src/containers/ScriptSettings/ScriptSettings.tsx +47 -0
  219. package/src/containers/ScriptSettings/index.ts +5 -0
  220. package/src/containers/index.ts +1 -0
  221. package/src/e2e/ai.test.ts +14 -11
  222. package/src/e2e/deploy.test.ts +5 -1
  223. package/src/hooks/deploy.ts +4 -4
  224. package/src/hooks/format.ts +1 -1
  225. package/src/index.ts +1 -1
  226. package/src/meta.ts +3 -19
  227. package/src/operations/create-script.ts +1 -1
  228. package/src/{blueprints → skills}/functions/create.ts +1 -1
  229. package/src/{blueprints → skills}/functions/definitions.ts +4 -2
  230. package/src/{blueprints → skills}/functions/deploy.ts +7 -2
  231. package/src/{blueprints → skills}/functions/inspect-invocations.ts +2 -2
  232. package/src/{blueprints → skills}/functions/read.ts +1 -1
  233. package/src/skills/functions/update.ts +48 -0
  234. package/src/skills/index.ts +5 -0
  235. package/src/{blueprints/script-blueprint.ts → skills/script-skill.ts} +12 -12
  236. package/src/templates/anthropic.ts +1 -1
  237. package/src/templates/chess-bot.ts +2 -2
  238. package/src/templates/commentary.ts +8 -7
  239. package/src/templates/discord.ts +1 -1
  240. package/src/templates/gmail.ts +1 -1
  241. package/src/testing/test-notebook.ts +5 -5
  242. package/src/testing/test-script.ts +1 -1
  243. package/src/translations.ts +7 -8
  244. package/src/types/Notebook.ts +9 -13
  245. package/src/types/ScriptCapabilities.ts +4 -2
  246. package/src/types/ScriptEvents.ts +1 -1
  247. package/src/types/ScriptOperation.ts +3 -3
  248. package/src/util/deploy.ts +7 -3
  249. package/src/util/functions.ts +3 -3
  250. package/dist/lib/neutral/DeploymentDialog-M3AFYQHC.mjs.map +0 -7
  251. package/dist/lib/neutral/NotebookArticle-NV4AHOOS.mjs.map +0 -7
  252. package/dist/lib/neutral/ScriptArticle-QW26LOKU.mjs.map +0 -7
  253. package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs +0 -31
  254. package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs.map +0 -7
  255. package/dist/lib/neutral/ScriptProperties-RLXNAN3N.mjs.map +0 -7
  256. package/dist/lib/neutral/blueprint-definition-PJ7I3JIQ.mjs +0 -15
  257. package/dist/lib/neutral/blueprint-definition-PJ7I3JIQ.mjs.map +0 -7
  258. package/dist/lib/neutral/blueprints/index.mjs +0 -10
  259. package/dist/lib/neutral/chunk-BDHDBPVM.mjs.map +0 -7
  260. package/dist/lib/neutral/chunk-HABDH5SS.mjs.map +0 -7
  261. package/dist/lib/neutral/chunk-PHKPB5JN.mjs.map +0 -7
  262. package/dist/lib/neutral/chunk-TRKXIP2Q.mjs.map +0 -7
  263. package/dist/lib/neutral/chunk-UA3BWOCZ.mjs +0 -38
  264. package/dist/lib/neutral/chunk-UA3BWOCZ.mjs.map +0 -7
  265. package/dist/lib/neutral/chunk-VXDJH6OL.mjs.map +0 -7
  266. package/dist/lib/neutral/chunk-XFM63AKT.mjs +0 -8
  267. package/dist/lib/neutral/deploy-7JVMMHSH.mjs.map +0 -7
  268. package/dist/lib/neutral/inspect-invocations-TAOYDT4H.mjs.map +0 -7
  269. package/dist/lib/neutral/react-surface-ACNZ35FV.mjs.map +0 -7
  270. package/dist/lib/neutral/update-CO7B6UBS.mjs +0 -63
  271. package/dist/lib/neutral/update-CO7B6UBS.mjs.map +0 -7
  272. package/dist/types/src/blueprints/functions/create.d.ts.map +0 -1
  273. package/dist/types/src/blueprints/functions/definitions.d.ts +0 -135
  274. package/dist/types/src/blueprints/functions/definitions.d.ts.map +0 -1
  275. package/dist/types/src/blueprints/functions/delete.d.ts +0 -17
  276. package/dist/types/src/blueprints/functions/delete.d.ts.map +0 -1
  277. package/dist/types/src/blueprints/functions/deploy.d.ts +0 -21
  278. package/dist/types/src/blueprints/functions/deploy.d.ts.map +0 -1
  279. package/dist/types/src/blueprints/functions/index.d.ts.map +0 -1
  280. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts +0 -28
  281. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts.map +0 -1
  282. package/dist/types/src/blueprints/functions/install-function.d.ts.map +0 -1
  283. package/dist/types/src/blueprints/functions/invoke.d.ts +0 -21
  284. package/dist/types/src/blueprints/functions/invoke.d.ts.map +0 -1
  285. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts.map +0 -1
  286. package/dist/types/src/blueprints/functions/read.d.ts +0 -21
  287. package/dist/types/src/blueprints/functions/read.d.ts.map +0 -1
  288. package/dist/types/src/blueprints/functions/update.d.ts +0 -26
  289. package/dist/types/src/blueprints/functions/update.d.ts.map +0 -1
  290. package/dist/types/src/blueprints/index.d.ts +0 -2
  291. package/dist/types/src/blueprints/index.d.ts.map +0 -1
  292. package/dist/types/src/blueprints/script-blueprint.d.ts +0 -4
  293. package/dist/types/src/blueprints/script-blueprint.d.ts.map +0 -1
  294. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -6
  295. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  296. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts +0 -8
  297. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +0 -1
  298. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts.map +0 -1
  299. package/dist/types/src/components/ScriptPluginSettings/index.d.ts +0 -2
  300. package/dist/types/src/components/ScriptPluginSettings/index.d.ts.map +0 -1
  301. package/dist/types/src/containers/ScriptProperties/BlueprintEditor.d.ts +0 -7
  302. package/dist/types/src/containers/ScriptProperties/BlueprintEditor.d.ts.map +0 -1
  303. package/src/blueprints/functions/update.ts +0 -68
  304. package/src/blueprints/index.ts +0 -5
  305. package/src/capabilities/blueprint-definition.ts +0 -19
  306. package/src/components/ScriptPluginSettings/ScriptPluginSettings.tsx +0 -42
  307. package/src/components/ScriptPluginSettings/index.ts +0 -5
  308. /package/dist/lib/neutral/{chunk-BKXYHCJ6.mjs.map → chunk-KSVKXCTX.mjs.map} +0 -0
  309. /package/dist/lib/neutral/{blueprints → skills}/index.mjs.map +0 -0
  310. /package/dist/types/src/{blueprints → skills}/functions/create.d.ts +0 -0
  311. /package/dist/types/src/{blueprints → skills}/functions/index.d.ts +0 -0
  312. /package/dist/types/src/{blueprints → skills}/functions/install-function.d.ts +0 -0
  313. /package/dist/types/src/{blueprints → skills}/functions/query-deployed-functions.d.ts +0 -0
  314. /package/src/{blueprints → skills}/functions/delete.ts +0 -0
  315. /package/src/{blueprints → skills}/functions/index.ts +0 -0
  316. /package/src/{blueprints → skills}/functions/install-function.ts +0 -0
  317. /package/src/{blueprints → skills}/functions/invoke.ts +0 -0
  318. /package/src/{blueprints → skills}/functions/query-deployed-functions.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/index.ts", "../../../../src/components/NotebookStack/NotebookMenu.tsx", "../../../../src/components/NotebookStack/NotebookStack.tsx", "../../../../src/components/NotebookStack/NotebookCell.tsx", "../../../../src/components/TypescriptEditor/TypescriptEditor.tsx", "../../../../src/components/QueryEditor/QueryEditor.tsx", "../../../../src/components/ScriptToolbar/ScriptToolbar.tsx", "../../../../src/components/TestPanel/TestPanel.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport * from './NotebookStack';\nexport * from './QueryEditor';\nexport * from './ScriptToolbar';\nexport * from './TestPanel';\nexport * from './TypescriptEditor';\n\nexport const ScriptPluginSettings: ComponentType<any> = lazy(() => import('./ScriptPluginSettings'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DropdownMenu, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\nimport { type Notebook } from '#types';\n\nexport type NotebookMenuProps = {\n cell?: Notebook.Cell;\n onCellInsert?: (type: Notebook.CellType, after: string | undefined) => void;\n onCellDelete?: (id: string) => void;\n};\n\n// TODO(burdon): Better way to organize menu?\nexport const NotebookMenu = ({ cell, onCellInsert, onCellDelete }: NotebookMenuProps) => {\n const { t } = useTranslation(meta.id);\n return (\n <DropdownMenu.Portal>\n <DropdownMenu.Content>\n <DropdownMenu.Viewport>\n <DropdownMenu.Item onClick={() => onCellInsert?.('script', cell?.id)}>\n {t('notebook-cell-insert-script.label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('prompt', cell?.id)}>\n {t('notebook-cell-insert-prompt.label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('query', cell?.id)}>\n {t('notebook-cell-insert-query.label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('markdown', cell?.id)}>\n {t('notebook-cell-insert-markdown.label')}\n </DropdownMenu.Item>\n {cell && onCellDelete && (\n <DropdownMenu.Item onClick={() => onCellDelete?.(cell.id)}>\n {t('notebook-cell-delete.label')}\n </DropdownMenu.Item>\n )}\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DropdownMenu, IconButton, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { Stack, StackItem, type StackProps } from '@dxos/react-ui-stack';\n\nimport { meta } from '#meta';\nimport { type Notebook } from '#types';\n\nimport { type TypescriptEditorProps } from '../TypescriptEditor';\nimport { NotebookCell, type NotebookCellProps } from './NotebookCell';\nimport { NotebookMenu } from './NotebookMenu';\n\nconst minSectionHeight = 'min-h-[16rem]';\n\nexport type NotebookStackProps = ThemedClassName<\n {\n notebook?: Notebook.Notebook;\n onRearrange?: StackProps['onRearrange'];\n } & (Pick<NotebookSectionProps, 'db' | 'graph' | 'promptResults' | 'onCellInsert' | 'onCellDelete'> &\n Pick<TypescriptEditorProps, 'env'>)\n>;\n\n// TODO(burdon): Option for narrow rail (with compact buttons that align with first button in toolbar).\nexport const NotebookStack = composable<HTMLDivElement, NotebookStackProps>(\n ({ notebook, onRearrange, db, graph, promptResults, onCellInsert, onCellDelete, env, ...props }, forwardedRef) => {\n const sectionProps = { db, graph, promptResults, onCellInsert, onCellDelete, env };\n return (\n <Stack\n {...composableProps(props)}\n orientation='vertical'\n size='contain'\n rail\n onRearrange={onRearrange}\n ref={forwardedRef}\n >\n {notebook?.cells.map((cell, i) => (\n <NotebookSection key={i} cell={cell} {...sectionProps} />\n ))}\n </Stack>\n );\n },\n);\n\ntype NotebookSectionProps = NotebookCellProps;\n\nconst NotebookSection = ({\n cell,\n db,\n env,\n promptResults,\n onCellInsert,\n onCellDelete,\n ...props\n}: NotebookSectionProps) => {\n const { t } = useTranslation(meta.id);\n const resizable = cell.type === 'query';\n\n return (\n <StackItem.Root role='section' item={cell} draggable classNames={resizable && minSectionHeight}>\n <StackItem.Heading classNames='h-full p-1 justify-between dx-attention-surface'>\n <StackItem.DragHandle asChild>\n <IconButton variant='ghost' icon='ph--dots-six-vertical--regular' iconOnly label='Drag handle' />\n </StackItem.DragHandle>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton\n variant='ghost'\n icon='ph--dots-three--regular'\n iconOnly\n label={t('notebook-cell-insert.label')}\n />\n </DropdownMenu.Trigger>\n <NotebookMenu cell={cell} onCellInsert={onCellInsert} onCellDelete={onCellDelete} />\n </DropdownMenu.Root>\n {resizable && <StackItem.ResizeHandle />}\n </StackItem.Heading>\n\n {/* TODO(burdon): Move drag preview to outer stack (uniformly). */}\n <StackItem.DragPreview>\n {({ item: cell }) => (\n <StackItem.Content classNames='overflow-visible bg-group-surface border border-subdued-separator'>\n <NotebookCell db={db} cell={cell} env={env} dragging />\n </StackItem.Content>\n )}\n </StackItem.DragPreview>\n\n <StackItem.Content classNames='overflow-visible'>\n <NotebookCell db={db} cell={cell} env={env} promptResults={promptResults} {...props} />\n </StackItem.Content>\n </StackItem.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\nimport { type Database, Obj } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-client';\nimport { invariant } from '@dxos/invariant';\nimport { TemplateEditor } from '@dxos/plugin-assistant/components';\nimport { useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-components';\nimport { Editor, type EditorViewProps } from '@dxos/react-ui-editor';\nimport {\n type BasicExtensionsOptions,\n createBasicExtensions,\n createDataExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n decorateMarkdown,\n} from '@dxos/ui-editor';\nimport { mx } from '@dxos/ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '#meta';\nimport { type Notebook } from '#types';\n\nimport { type ComputeGraph } from '../../notebook';\nimport { TypescriptEditor, type TypescriptEditorProps } from '../TypescriptEditor';\nimport { type NotebookMenuProps } from './NotebookMenu';\n\nconst editorStyles = 'p-2 ps-3';\nconst valueStyles = 'p-1 ps-3';\n\nexport type NotebookCellProps = {\n db?: Database.Database;\n graph?: ComputeGraph;\n dragging?: boolean;\n cell: Notebook.Cell;\n promptResults?: Record<string, string>;\n} & (Pick<NotebookMenuProps, 'onCellInsert' | 'onCellDelete'> & Pick<TypescriptEditorProps, 'env'>);\n\n// TODO(burdon): Show evaluation errors.\nexport const NotebookCell = ({ db, graph, dragging, cell, promptResults, env }: NotebookCellProps) => {\n const { t } = useTranslation(meta.id);\n\n const extensions = useMemo(() => {\n return cell.source?.target\n ? [\n createDataExtensions({\n id: cell.id,\n text: createDocAccessor(cell.source.target, ['content']),\n }),\n ].filter(isNonNullable)\n : [];\n }, [cell.source?.target]);\n\n const explorerGraph = cell.graph?.target;\n\n const handleQueryChange = useCallback<NonNullable<QueryEditorProps['onChange']>>(\n (value: string) => {\n invariant(cell.source?.target);\n Obj.update(cell.source.target, (obj) => {\n obj.content = value;\n });\n },\n [cell],\n );\n\n switch (cell.type) {\n case 'markdown':\n if (!cell.source?.target) {\n return null;\n }\n\n return (\n <NotebookTextEditor\n id={cell.id}\n classNames={editorStyles}\n initialValue={cell.source.target.content}\n extensions={extensions}\n />\n );\n\n case 'script':\n if (!cell.source?.target) {\n return null;\n }\n\n return (\n <>\n <TypescriptEditor\n id={cell.id}\n role='section'\n classNames={editorStyles}\n initialValue={cell.source.target.content}\n extensions={extensions}\n env={env}\n options={{\n placeholder: t('notebook-cell.placeholder'),\n highlightActiveLine: false,\n lineNumbers: false,\n }}\n />\n <NotebookCellValue cell={cell} graph={graph} />\n </>\n );\n\n case 'query':\n if (!cell.source?.target) {\n return null;\n }\n\n // TODO(burdon): Remove app-framework deps (via render prop).\n return (\n <div className={mx('h-full overflow-hidden grid', explorerGraph && !dragging && 'grid-rows-[min-content_1fr]')}>\n <QueryEditor\n id={cell.id}\n classNames={[editorStyles, 'border-b border-subdued-separator']}\n db={db}\n value={cell.source.target.content}\n onChange={handleQueryChange}\n />\n {explorerGraph && !dragging && (\n <Surface.Surface\n type={AppSurface.Section}\n limit={1}\n data={{ subject: explorerGraph, attendableId: cell.id }}\n />\n )}\n </div>\n );\n\n // TODO(burdon): Use streaming response from Chat.\n case 'prompt':\n if (!cell.prompt?.target) {\n return null;\n }\n\n return (\n <>\n <TemplateEditor\n id={cell.id}\n source={cell.prompt.target.instructions}\n lineNumbers={false}\n classNames={editorStyles}\n />\n <NotebookPromptResult cell={cell} promptResults={promptResults} />\n </>\n );\n\n default:\n return null;\n }\n};\n\nconst NotebookCellValue = ({ cell, graph }: NotebookCellProps) => {\n const name = graph?.getExpressions()[cell.id]?.name;\n const value = graph?.getValue(cell.id);\n if (value == null) {\n return null;\n }\n\n return (\n <div\n className={mx(\n 'flex w-full bg-group-surface border-y border-subdued-separator text-description font-mono',\n valueStyles,\n )}\n >\n {name && (\n <>\n <span className='text-success-text'>{name}</span>\n <span className='text-description'>&nbsp;=&nbsp;</span>\n </>\n )}\n <span>{value}</span>\n </div>\n );\n};\n\nconst NotebookPromptResult = ({ cell, promptResults }: NotebookCellProps) => {\n if (!cell.prompt) {\n return null;\n }\n\n const value = promptResults?.[cell.prompt.uri];\n if (value == null) {\n return null;\n }\n\n return (\n <div className={mx('flex w-full bg-group-surface text-description border-y border-subdued-separator', valueStyles)}>\n <NotebookTextEditor readOnly value={value} />\n </div>\n );\n};\n\nconst NotebookTextEditor = ({\n extensions: extensionsProp,\n readOnly,\n ...props\n}: EditorViewProps & Pick<BasicExtensionsOptions, 'readOnly'>) => {\n const { t } = useTranslation(meta.id);\n const { themeMode } = useThemeContext();\n const extensions = useMemo(() => {\n return [\n createBasicExtensions({\n placeholder: t('notebook-markdown.placeholder'),\n readOnly,\n }),\n createThemeExtensions({ themeMode, syntaxHighlighting: true }),\n createMarkdownExtensions(),\n decorateMarkdown(),\n extensionsProp,\n ].filter(isNonNullable);\n }, [extensionsProp]);\n\n return (\n <Editor.Root>\n <Editor.View {...props} extensions={extensions} selectionEnd />\n </Editor.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { autocompletion, completionKeymap } from '@codemirror/autocomplete';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { HighlightStyle } from '@codemirror/language';\nimport { lintKeymap } from '@codemirror/lint';\nimport { Prec } from '@codemirror/state';\nimport { keymap } from '@codemirror/view';\nimport { tags } from '@lezer/highlight';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\nimport { type VirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport { continueKeymap } from '@valtown/codemirror-continue';\nimport { type HoverInfo, tsAutocomplete, tsFacet, tsHover, tsLinter, tsSync } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { type ThemeMode, type ThemedClassName, useThemeContext } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { type UseTextEditorProps, useTextEditor } from '@dxos/react-ui-editor';\nimport { Domino } from '@dxos/ui';\nimport {\n type BasicExtensionsOptions,\n InputModeExtensions,\n createBasicExtensions,\n createThemeExtensions,\n defaultStyles,\n} from '@dxos/ui-editor';\nimport { type EditorInputMode } from '@dxos/ui-editor/types';\nimport { isNonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = ThemedClassName<\n {\n id: string;\n role?: string;\n inputMode?: EditorInputMode;\n toolbar?: boolean;\n env?: VirtualTypeScriptEnvironment;\n options?: BasicExtensionsOptions;\n } & Pick<UseTextEditorProps, 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>\n>;\n\nexport const TypescriptEditor = composable<HTMLDivElement, TypescriptEditorProps>(\n (\n {\n classNames,\n id,\n role = 'article',\n inputMode = 'vscode',\n env,\n options,\n initialValue,\n extensions,\n scrollTo,\n selection,\n ...props\n },\n forwardedRef,\n ) => {\n const { themeMode } = useThemeContext();\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n initialValue,\n selection,\n scrollTo,\n extensions: [\n extensions,\n createBasicExtensions({\n highlightActiveLine: true,\n indentWithTab: true,\n lineNumbers: true,\n lineWrapping: false,\n scrollPastEnd: role !== 'section',\n search: true,\n ...options,\n }),\n createThemeExtensions({\n monospace: true,\n themeMode,\n syntaxHighlighting: true,\n }),\n\n InputModeExtensions[inputMode],\n javascript({ typescript: true }),\n autocompletion({ override: env ? [tsAutocomplete()] : undefined }),\n\n // Continues block comments when pressing Enter.\n Prec.high(keymap.of(continueKeymap)),\n keymap.of(completionKeymap),\n keymap.of(lintKeymap),\n\n // https://github.com/val-town/codemirror-ts\n env && [\n // TODO(burdon): Fix type.\n tsFacet.of({ env: env as any, path: `./src/${id}.ts` }),\n tsSync(),\n tsLinter(),\n tsHover({ renderTooltip: createTooltipRenderer(themeMode) }),\n ],\n ].filter(isNonNullable),\n }),\n [themeMode, id, extensions, inputMode, selection, scrollTo, env],\n );\n\n return (\n <div {...composableProps(props, { classNames, ...focusAttributes })} ref={composeRefs(parentRef, forwardedRef)} />\n );\n },\n);\n\n// TODO(burdon): Factor out (react-ui-editor).\nconst createTooltipRenderer = (themeMode: ThemeMode) => {\n const theme = HighlightStyle.define(themeMode === 'dark' ? defaultStyles.dark : defaultStyles.light);\n\n const classFromKind = (_kind: string) => {\n // E.g., localName, methodName, parameterName, etc.\n const kind = _kind.endsWith('Name') ? 'name' : _kind;\n const validTag = kind in tags;\n if (!validTag) {\n return '';\n }\n\n const tag = tags[kind as keyof typeof tags];\n if (typeof tag === 'function') {\n return '';\n }\n\n return theme.style([tag]) ?? '';\n };\n\n return (info: HoverInfo) => {\n const children =\n info.quickInfo?.displayParts?.map(({ kind, text }) =>\n Domino.of('span').classNames(classFromKind(kind)).text(text),\n ) ?? [];\n return {\n dom: Domino.of('div')\n .classNames('xs:max-w-80 max-w-lg p-1 bg-base-surface rounded-sm border border-separator')\n .append(...children).root,\n };\n };\n};\n\nexport default TypescriptEditor;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useState } from 'react';\nimport { ModuleResolutionKind, ScriptTarget } from 'typescript';\n\nimport queryApi from '@dxos/echo-query/api.d.ts?raw';\nimport { useAsyncEffect } from '@dxos/react-ui';\n\nimport { Compiler } from '../../compiler';\nimport { TypescriptEditor, type TypescriptEditorProps } from '../TypescriptEditor';\n\nconst GLOBALS = `\n namespace QueryAPI {\n ${queryApi}\n }\n\n declare global {\n const Query: typeof QueryAPI.Query;\n const Filter: typeof QueryAPI.Filter;\n const Order: typeof QueryAPI.Order;\n }\n\n export {};\n`;\n\nexport type QueryEditorProps = Omit<TypescriptEditorProps, 'env'>;\n\nexport const QueryEditor = (props: QueryEditorProps) => {\n const [compiler, setCompiler] = useState<Compiler>();\n\n useAsyncEffect(async () => {\n const compiler = new Compiler({\n lib: ['ES5'],\n target: ScriptTarget.ES2022,\n // Avoid `@typescript/vfs`'s deprecated `node10` default (rejected by TS 6).\n moduleResolution: ModuleResolutionKind.Bundler,\n });\n await compiler.initialize(GLOBALS);\n setCompiler(compiler);\n }, []);\n\n if (!compiler) {\n return null;\n }\n\n return <TypescriptEditor {...props} env={compiler.environment} />;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport React, { useMemo } from 'react';\n\nimport { type Script } from '@dxos/compute';\nimport { ElevationProvider, useTranslation } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { type ActionGraphProps, Menu, MenuRootProps, createGapSeparator, useMenuActions } from '@dxos/react-ui-menu';\n\nimport {\n type CreateDeployOptions,\n type ScriptToolbarStateStore,\n createDeploy,\n createFormat,\n createTemplateSelect,\n useDeployDeps,\n} from '#hooks';\nimport { meta } from '#meta';\n\nexport type ScriptToolbarProps = Pick<MenuRootProps, 'attendableId'> & {\n script: Script.Script;\n state: ScriptToolbarStateStore;\n};\n\nexport const ScriptToolbar = composable<HTMLDivElement, ScriptToolbarProps>(\n ({ script, attendableId, role, state, ...props }, forwardedRef) => {\n const { t } = useTranslation(meta.id);\n const options = useDeployDeps({ script });\n const menuCreator = useMemo(\n () => createToolbarActions({ state, script, t, ...options }),\n [state, script, options, t],\n );\n const menuActions = useMenuActions(menuCreator);\n\n return (\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <Menu.Root {...menuActions} attendableId={attendableId}>\n <Menu.Toolbar {...composableProps(props)} ref={forwardedRef} />\n </Menu.Root>\n </ElevationProvider>\n );\n },\n);\n\nconst createToolbarActions = ({ state, script, ...options }: CreateDeployOptions): Atom.Atom<ActionGraphProps> =>\n Atom.make((get) => {\n // Subscribe to state changes.\n get(state.atom);\n const templateSelect = createTemplateSelect(script);\n const format = createFormat(script);\n const gap = createGapSeparator();\n const deploy = createDeploy({ state, script, ...options });\n return {\n nodes: [...templateSelect.nodes, ...format.nodes, ...gap.nodes, ...deploy.nodes],\n edges: [...templateSelect.edges, ...format.edges, ...gap.edges, ...deploy.edges],\n };\n });\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef, useRef, useState } from 'react';\n\nimport { log } from '@dxos/log';\nimport { Avatar, Icon, Input, ScrollArea, type ThemedClassName, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { JsonHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { mx } from '@dxos/ui-theme';\n\nimport { meta } from '#meta';\n\ntype State = 'pending';\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 onInvoke?: (input: unknown) => Promise<unknown>;\n}>;\n\n// TODO(burdon): Need persistent history (currently lost when switching tabs).\nexport const TestPanel = composable<HTMLDivElement, TestPanelProps>(\n ({ classNames, onInvoke, ...props }, forwardedRef) => {\n const { t } = useTranslation(meta.id);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [input, setInput] = 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 handleClear = () => {\n setInput('');\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 setHistory((history) => [...history, { type: 'response', text, data, error } satisfies Message]);\n setState(null);\n handleScroll();\n };\n\n const handleRequest = async (input: string) => {\n if (!onInvoke) {\n handleResponse({ error: new Error('Function not deployed') });\n return;\n }\n\n let data: unknown = input;\n let displayText = 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 displayText = JSON.stringify(data, null, 2);\n } catch (err) {\n handleResponse({ error: new Error('Invalid JSON input') });\n return;\n }\n }\n\n try {\n setState('pending');\n setInput('');\n setHistory((history) => [...history, { type: 'request', text: displayText }]);\n setTimeout(handleScroll);\n\n const result = await onInvoke(data);\n\n if (typeof result === 'string') {\n handleResponse({ text: result });\n } else {\n handleResponse({ data: result });\n }\n } catch (err: any) {\n const error = err instanceof Error ? err : new Error(String(err));\n handleResponse({ error });\n log.catch(err);\n }\n };\n\n return (\n <div\n {...composableProps(props, { classNames: ['flex flex-col h-full overflow-hidden', classNames] })}\n ref={forwardedRef}\n >\n {/* TODO(burdon): Replace with Thread. */}\n <MessageThread ref={scrollerRef} state={state} 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 icon='ph--play--regular' label='Execute' iconOnly onClick={() => handleRequest(input)} />\n <Toolbar.IconButton icon='ph--trash--regular' label='Clear' iconOnly onClick={handleClear} />\n </Toolbar.Root>\n </div>\n );\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};\n\nconst MessageThread = forwardRef<HTMLDivElement, MessageThreadProps>(\n ({ state, history }: MessageThreadProps, forwardedRef) => {\n return (\n <ScrollArea.Root orientation='vertical' classNames='h-full' ref={forwardedRef}>\n <ScrollArea.Viewport classNames='gap-6 p-2'>\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 {state === 'pending' && (\n <div className='grid grid-cols-[2rem_1fr_2rem]'>\n <div className='p-1'>\n <Icon icon='ph--spinner--regular' size={6} classNames='animate-spin' />\n </div>\n </div>\n )}\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n );\n },\n);\n\nconst MessageItem = ({ classNames, message }: ThemedClassName<{ message: Message }>) => {\n const { type, text, data, error } = message;\n const wrapper = 'p-1 px-2 rounded-md bg-hover-surface 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 text-error-text')}>{String(error)}</div>}\n\n {text !== undefined && (\n <div className={mx(wrapper, type === 'request' && 'bg-primary-500 dark:bg-primary-600')}>\n {text || '\\u00D8'}\n </div>\n )}\n\n {data && <JsonHighlighter data={data} classNames={mx(wrapper, 'text-xs')} />}\n </div>\n );\n};\n\nconst RobotAvatar = () => (\n <Avatar.Root>\n <Avatar.Content size={6} variant='circle' icon='ph--drone--regular' />\n </Avatar.Root>\n);\n"],
5
- "mappings": "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",
6
- "names": ["lazy", "React", "DropdownMenu", "useTranslation", "meta", "NotebookMenu", "cell", "onCellInsert", "onCellDelete", "t", "id", "Portal", "Content", "Viewport", "Item", "onClick", "Arrow", "React", "DropdownMenu", "IconButton", "useTranslation", "composable", "composableProps", "Stack", "StackItem", "meta", "React", "useCallback", "useMemo", "Surface", "AppSurface", "Obj", "createDocAccessor", "invariant", "TemplateEditor", "useThemeContext", "useTranslation", "QueryEditor", "Editor", "createBasicExtensions", "createDataExtensions", "createMarkdownExtensions", "createThemeExtensions", "decorateMarkdown", "mx", "isNonNullable", "meta", "autocompletion", "completionKeymap", "javascript", "HighlightStyle", "lintKeymap", "Prec", "keymap", "tags", "composeRefs", "continueKeymap", "tsAutocomplete", "tsFacet", "tsHover", "tsLinter", "tsSync", "React", "useThemeContext", "composable", "composableProps", "useTextEditor", "Domino", "InputModeExtensions", "createBasicExtensions", "createThemeExtensions", "defaultStyles", "isNonNullable", "TypescriptEditor", "classNames", "id", "role", "inputMode", "env", "options", "initialValue", "extensions", "scrollTo", "selection", "props", "forwardedRef", "themeMode", "parentRef", "focusAttributes", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "scrollPastEnd", "search", "monospace", "syntaxHighlighting", "typescript", "override", "undefined", "high", "of", "path", "renderTooltip", "createTooltipRenderer", "filter", "div", "ref", "theme", "define", "dark", "light", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tag", "style", "info", "children", "quickInfo", "displayParts", "map", "text", "dom", "append", "root", "editorStyles", "NotebookCell", "extensions", "useMemo", "cell", "target", "createDataExtensions", "createDocAccessor", "isNonNullable", "source", "explorerGraph", "invariant", "Obj", "obj", "content", "value", "initialValue", "React", "classNames", "env", "options", "highlightActiveLine", "lineNumbers", "graph", "QueryEditor", "id", "db", "onChange", "dragging", "type", "AppSurface", "limit", "data", "subject", "attendableId", "prompt", "instructions", "promptResults", "getValue", "name", "className", "span", "NotebookPromptResult", "NotebookTextEditor", "readOnly", "useThemeContext", "meta", "createBasicExtensions", "createThemeExtensions", "syntaxHighlighting", "createMarkdownExtensions", "decorateMarkdown", "extensionsProp", "filter", "selectionEnd", "minSectionHeight", "NotebookStack", "composable", "notebook", "onRearrange", "db", "graph", "promptResults", "onCellInsert", "onCellDelete", "env", "props", "forwardedRef", "sectionProps", "React", "Stack", "composableProps", "orientation", "size", "rail", "ref", "cells", "map", "cell", "i", "NotebookSection", "key", "t", "useTranslation", "meta", "id", "resizable", "type", "StackItem", "Root", "role", "item", "draggable", "classNames", "Heading", "DragHandle", "asChild", "IconButton", "variant", "icon", "iconOnly", "label", "DropdownMenu", "Trigger", "NotebookMenu", "ResizeHandle", "DragPreview", "Content", "NotebookCell", "dragging", "React", "useState", "ModuleResolutionKind", "ScriptTarget", "queryApi", "useAsyncEffect", "GLOBALS", "queryApi", "QueryEditor", "props", "compiler", "setCompiler", "useState", "useAsyncEffect", "Compiler", "lib", "target", "ScriptTarget", "ES2022", "moduleResolution", "ModuleResolutionKind", "Bundler", "initialize", "React", "TypescriptEditor", "env", "environment", "Atom", "React", "useMemo", "ElevationProvider", "useTranslation", "composable", "composableProps", "Menu", "createGapSeparator", "useMenuActions", "createDeploy", "createFormat", "createTemplateSelect", "useDeployDeps", "meta", "ScriptToolbar", "script", "attendableId", "role", "state", "props", "forwardedRef", "t", "id", "options", "menuCreator", "createToolbarActions", "menuActions", "elevation", "Root", "Toolbar", "ref", "make", "get", "atom", "templateSelect", "format", "gap", "deploy", "nodes", "edges", "React", "forwardRef", "useRef", "useState", "log", "Avatar", "Icon", "Input", "ScrollArea", "Toolbar", "useTranslation", "composable", "composableProps", "JsonHighlighter", "mx", "meta", "__dxlog_file", "inputRef", "input", "setInput", "setState", "history", "setHistory", "handleScroll", "current", "handleResponse", "text", "data", "error", "handleRequest", "charAt", "validJsonString", "displayText", "stringify", "err", "setTimeout", "result", "catch", "classNames", "ref", "scrollerRef", "state", "autoFocus", "placeholder", "value", "onChange", "ev", "onKeyDown", "icon", "iconOnly", "onClick", "MessageThread", "forwardedRef", "message", "i", "className", "MessageItem", "div", "wrapper", "String", "undefined", "type", "RobotAvatar", "ScriptPluginSettings", "lazy"]
3
+ "sources": ["../../../../src/components/NotebookStack/NotebookMenu.tsx", "../../../../src/components/NotebookStack/NotebookStack.tsx", "../../../../src/components/NotebookStack/NotebookCell.tsx", "../../../../src/components/TypescriptEditor/TypescriptEditor.tsx", "../../../../src/components/QueryEditor/QueryEditor.tsx", "../../../../src/components/ScriptToolbar/ScriptToolbar.tsx", "../../../../src/components/TestPanel/TestPanel.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DropdownMenu, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\nimport { type Notebook } from '#types';\n\nexport type NotebookMenuProps = {\n cell?: Notebook.Cell;\n onCellInsert?: (type: Notebook.CellType, after: string | undefined) => void;\n onCellDelete?: (id: string) => void;\n};\n\n// TODO(burdon): Better way to organize menu?\nexport const NotebookMenu = ({ cell, onCellInsert, onCellDelete }: NotebookMenuProps) => {\n const { t } = useTranslation(meta.profile.key);\n return (\n <DropdownMenu.Portal>\n <DropdownMenu.Content>\n <DropdownMenu.Viewport>\n <DropdownMenu.Item onClick={() => onCellInsert?.('script', cell?.id)}>\n {t('notebook-cell-insert-script.label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('prompt', cell?.id)}>\n {t('notebook-cell-insert-prompt.label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('query', cell?.id)}>\n {t('notebook-cell-insert-query.label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('markdown', cell?.id)}>\n {t('notebook-cell-insert-markdown.label')}\n </DropdownMenu.Item>\n {cell && onCellDelete && (\n <DropdownMenu.Item onClick={() => onCellDelete?.(cell.id)}>\n {t('notebook-cell-delete.label')}\n </DropdownMenu.Item>\n )}\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { DropdownMenu, IconButton, ScrollArea, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { Mosaic, type MosaicEventHandler, type MosaicTileProps } from '@dxos/react-ui-mosaic';\nimport { mx } from '@dxos/ui-theme';\nimport { arrayMove } from '@dxos/util';\n\nimport { meta } from '#meta';\nimport { type Notebook } from '#types';\n\nimport { type TypescriptEditorProps } from '../TypescriptEditor';\nimport { NotebookCell, type NotebookCellProps } from './NotebookCell';\nimport { NotebookMenu } from './NotebookMenu';\n\nconst minSectionHeight = 'min-h-[16rem]';\n\nconst getCellId = (cell: Notebook.Cell) => cell.id;\n\nexport type NotebookStackProps = ThemedClassName<\n {\n notebook?: Notebook.Notebook;\n } & (Pick<NotebookSectionProps, 'db' | 'graph' | 'promptResults' | 'onCellInsert' | 'onCellDelete'> &\n Pick<TypescriptEditorProps, 'env'>)\n>;\n\nexport const NotebookStack = composable<HTMLDivElement, NotebookStackProps>(\n ({ notebook, db, graph, promptResults, onCellInsert, onCellDelete, env, ...props }, forwardedRef) => {\n const [viewport, setViewport] = useState<HTMLElement | null>(null);\n\n // Stable Tile identity: an inline component is a new type each render, so Mosaic would unmount and\n // remount every cell (losing editor state) whenever this component re-renders.\n const Tile = useCallback(\n (tileProps: MosaicTileProps<Notebook.Cell>) => (\n <NotebookSection\n {...tileProps}\n db={db}\n graph={graph}\n promptResults={promptResults}\n onCellInsert={onCellInsert}\n onCellDelete={onCellDelete}\n env={env}\n />\n ),\n [db, graph, promptResults, onCellInsert, onCellDelete, env],\n );\n\n // Reorder cells in place; placeholder/tile locations are 1-based with half-step placeholders between\n // tiles, so the floor of the drop location is the destination array index (see Mosaic.Stack).\n const eventHandler = useMemo<MosaicEventHandler<Notebook.Cell>>(\n () => ({\n id: notebook?.id ?? 'notebook',\n // Only the notebook's own cells are droppable; onDrop only reorders within this notebook.\n canDrop: ({ source }) => !!notebook && notebook.cells.some((cell) => cell.id === source.id),\n onDrop: ({ source, target }) => {\n if (!notebook || !target) {\n return;\n }\n\n const to =\n target.type === 'tile' || target.type === 'placeholder'\n ? target.location\n : target.type === 'container'\n ? notebook.cells.length\n : -1;\n const insertIndex = typeof to === 'number' && to >= 0 ? Math.floor(to) : -1;\n if (insertIndex < 0) {\n return;\n }\n\n Obj.update(notebook, (notebook) => {\n const from = notebook.cells.findIndex((cell) => cell.id === source.id);\n if (from !== -1) {\n arrayMove(notebook.cells, from, insertIndex);\n }\n });\n },\n }),\n [notebook],\n );\n\n return (\n <Mosaic.Root ref={forwardedRef}>\n <Mosaic.Container asChild orientation='vertical' autoScroll={viewport} eventHandler={eventHandler}>\n <ScrollArea.Root orientation='vertical' padding {...composableProps(props)}>\n <ScrollArea.Viewport ref={setViewport}>\n <Mosaic.Stack orientation='vertical' items={notebook?.cells ?? []} getId={getCellId} Tile={Tile} />\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n </Mosaic.Container>\n </Mosaic.Root>\n );\n },\n);\n\ntype NotebookSectionProps = MosaicTileProps<Notebook.Cell> &\n Pick<NotebookCellProps, 'db' | 'graph' | 'promptResults' | 'onCellInsert' | 'onCellDelete' | 'env'>;\n\n// TODO(burdon): Option for narrow rail (with compact buttons that align with first button in toolbar).\n// TODO(burdon): Reinstate a Mosaic-native resize affordance for query cells (currently a fixed min-height).\nconst NotebookSection = ({\n data: cell,\n db,\n env,\n graph,\n promptResults,\n onCellInsert,\n onCellDelete,\n ...tileProps\n}: NotebookSectionProps) => {\n const { t } = useTranslation(meta.profile.key);\n const resizable = cell.type === 'query';\n const [dragHandle, setDragHandle] = useState<HTMLButtonElement | null>(null);\n\n return (\n <Mosaic.Tile\n {...tileProps}\n data={cell}\n dragHandle={dragHandle}\n classNames={mx(\n 'grid grid-cols-[min-content_1fr] overflow-visible border border-subdued-separator',\n resizable && minSectionHeight,\n )}\n >\n {/* Side rail */}\n <div className='flex flex-col p-1 border-e border-subdued-separator dx-attention-surface'>\n <IconButton\n ref={setDragHandle}\n variant='ghost'\n icon='ph--dots-six-vertical--regular'\n iconOnly\n label='Drag handle'\n />\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton\n variant='ghost'\n icon='ph--dots-three--regular'\n iconOnly\n label={t('notebook-cell-insert.label')}\n />\n </DropdownMenu.Trigger>\n <NotebookMenu cell={cell} onCellInsert={onCellInsert} onCellDelete={onCellDelete} />\n </DropdownMenu.Root>\n </div>\n\n <NotebookCell db={db} cell={cell} env={env} graph={graph} promptResults={promptResults} />\n </Mosaic.Tile>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\nimport { type Database, Obj } from '@dxos/echo';\nimport { Doc } from '@dxos/echo-doc';\nimport { invariant } from '@dxos/invariant';\nimport { TemplateEditor } from '@dxos/plugin-routine/components';\nimport { useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-components';\nimport { Editor, type EditorViewProps } from '@dxos/react-ui-editor';\nimport {\n type BasicExtensionsOptions,\n createBasicExtensions,\n createDataExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n decorateMarkdown,\n} from '@dxos/ui-editor';\nimport { mx } from '@dxos/ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '#meta';\nimport { type Notebook } from '#types';\n\nimport { type ComputeGraph } from '../../notebook';\nimport { TypescriptEditor, type TypescriptEditorProps } from '../TypescriptEditor';\nimport { type NotebookMenuProps } from './NotebookMenu';\n\nconst editorStyles = 'p-2 ps-3';\nconst valueStyles = 'p-1 ps-3';\n\nexport type NotebookCellProps = {\n db?: Database.Database;\n graph?: ComputeGraph;\n dragging?: boolean;\n cell: Notebook.Cell;\n promptResults?: Record<string, string>;\n} & (Pick<NotebookMenuProps, 'onCellInsert' | 'onCellDelete'> & Pick<TypescriptEditorProps, 'env'>);\n\n// TODO(burdon): Show evaluation errors.\nexport const NotebookCell = ({ db, graph, dragging, cell, promptResults, env }: NotebookCellProps) => {\n const { t } = useTranslation(meta.profile.key);\n\n const extensions = useMemo(() => {\n return cell.source?.target\n ? [createDataExtensions({ id: cell.id, text: Doc.createAccessor(cell.source.target, ['content']) })]\n : [];\n }, [cell.source?.target]);\n\n const explorerGraph = cell.graph?.target;\n\n const handleQueryChange = useCallback<NonNullable<QueryEditorProps['onChange']>>(\n (value: string) => {\n invariant(cell.source?.target);\n Obj.update(cell.source.target, (obj) => {\n obj.content = value;\n });\n },\n [cell],\n );\n\n switch (cell.type) {\n case 'markdown':\n if (!cell.source?.target) {\n return null;\n }\n\n return (\n <NotebookTextEditor\n id={cell.id}\n classNames={editorStyles}\n initialValue={cell.source.target.content}\n extensions={extensions}\n />\n );\n\n case 'script':\n if (!cell.source?.target) {\n return null;\n }\n\n return (\n <div className='flex flex-col divide-y divide-subdued-separator'>\n <TypescriptEditor\n id={cell.id}\n role='section'\n classNames={editorStyles}\n initialValue={cell.source.target.content}\n extensions={extensions}\n env={env}\n options={{\n placeholder: t('notebook-cell.placeholder'),\n highlightActiveLine: false,\n lineNumbers: false,\n }}\n />\n <NotebookCellValue cell={cell} graph={graph} />\n </div>\n );\n\n case 'query':\n if (!cell.source?.target) {\n return null;\n }\n\n // TODO(burdon): Remove app-framework deps (via render prop).\n return (\n <div className={mx('h-full overflow-hidden grid', explorerGraph && !dragging && 'grid-rows-[min-content_1fr]')}>\n <QueryEditor\n id={cell.id}\n classNames={editorStyles}\n db={db}\n value={cell.source.target.content}\n onChange={handleQueryChange}\n />\n {explorerGraph && !dragging && (\n <Surface.Surface\n type={AppSurface.Section}\n limit={1}\n data={{ subject: explorerGraph, attendableId: cell.id }}\n />\n )}\n </div>\n );\n\n // TODO(burdon): Use streaming response from Chat.\n case 'prompt':\n if (!cell.prompt?.target) {\n return null;\n }\n\n return (\n <>\n <TemplateEditor id={cell.id} source={cell.prompt.target.text} lineNumbers={false} classNames={editorStyles} />\n <NotebookPromptResult cell={cell} promptResults={promptResults} />\n </>\n );\n\n default:\n return null;\n }\n};\n\nconst NotebookCellValue = ({ cell, graph }: NotebookCellProps) => {\n const name = graph?.getExpressions()[cell.id]?.name;\n const value = graph?.getValue(cell.id);\n if (value == null) {\n return null;\n }\n\n return (\n <div className={mx('flex w-full bg-group-surface text-description font-mono', valueStyles)}>\n {name && (\n <>\n <span className='text-success-text'>{name}</span>\n <span className='text-description'>&nbsp;=&nbsp;</span>\n </>\n )}\n <span>{value}</span>\n </div>\n );\n};\n\nconst NotebookPromptResult = ({ cell, promptResults }: NotebookCellProps) => {\n if (!cell.prompt) {\n return null;\n }\n\n const value = promptResults?.[cell.prompt.uri];\n if (value == null) {\n return null;\n }\n\n return (\n <div className={mx('flex w-full bg-group-surface text-description border-y border-subdued-separator', valueStyles)}>\n <NotebookTextEditor readOnly value={value} />\n </div>\n );\n};\n\nconst NotebookTextEditor = ({\n extensions: extensionsProp,\n readOnly,\n ...props\n}: EditorViewProps & Pick<BasicExtensionsOptions, 'readOnly'>) => {\n const { t } = useTranslation(meta.profile.key);\n const { themeMode } = useThemeContext();\n const extensions = useMemo(() => {\n return [\n createThemeExtensions({ themeMode, syntaxHighlighting: true }),\n createBasicExtensions({ placeholder: t('notebook-markdown.placeholder'), readOnly }),\n createMarkdownExtensions(),\n decorateMarkdown(),\n extensionsProp,\n ].filter(isNonNullable);\n }, [extensionsProp, readOnly, themeMode, t]);\n\n return (\n <Editor.Root>\n <Editor.View classNames='border' {...props} extensions={extensions} selectionEnd />\n </Editor.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { autocompletion, completionKeymap } from '@codemirror/autocomplete';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { HighlightStyle } from '@codemirror/language';\nimport { lintKeymap } from '@codemirror/lint';\nimport { Prec } from '@codemirror/state';\nimport { keymap } from '@codemirror/view';\nimport { tags } from '@lezer/highlight';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\nimport { type VirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport { continueKeymap } from '@valtown/codemirror-continue';\nimport { type HoverInfo, tsAutocomplete, tsFacet, tsHover, tsLinter, tsSync } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { type ThemedClassName, type ThemeMode, useThemeContext } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { type UseTextEditorProps, useTextEditor } from '@dxos/react-ui-editor';\nimport { Domino } from '@dxos/ui';\nimport {\n type BasicExtensionsOptions,\n InputModeExtensions,\n createBasicExtensions,\n createThemeExtensions,\n defaultStyles,\n} from '@dxos/ui-editor';\nimport { type EditorInputMode } from '@dxos/ui-editor/types';\nimport { isNonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = ThemedClassName<\n {\n id: string;\n role?: string;\n inputMode?: EditorInputMode;\n toolbar?: boolean;\n env?: VirtualTypeScriptEnvironment;\n options?: BasicExtensionsOptions;\n } & Pick<UseTextEditorProps, 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>\n>;\n\nexport const TypescriptEditor = composable<HTMLDivElement, TypescriptEditorProps>(\n (\n {\n classNames,\n id,\n role = 'article',\n inputMode = 'vscode',\n env,\n options,\n initialValue,\n extensions,\n scrollTo,\n selection,\n ...props\n },\n forwardedRef,\n ) => {\n const { themeMode } = useThemeContext();\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n initialValue,\n selection,\n scrollTo,\n extensions: [\n extensions,\n createThemeExtensions({\n monospace: true,\n themeMode,\n syntaxHighlighting: true,\n }),\n createBasicExtensions({\n highlightActiveLine: true,\n indentWithTab: true,\n lineNumbers: true,\n lineWrapping: false,\n scrollPastEnd: role === 'article',\n search: true,\n ...options,\n }),\n\n InputModeExtensions[inputMode],\n javascript({ typescript: true }),\n autocompletion({ override: env ? [tsAutocomplete()] : undefined }),\n\n // Continues block comments when pressing Enter.\n Prec.high(keymap.of(continueKeymap)),\n keymap.of(completionKeymap),\n keymap.of(lintKeymap),\n\n // https://github.com/val-town/codemirror-ts\n env && [\n // TODO(burdon): Fix type.\n tsFacet.of({ env: env as any, path: `./src/${id}.ts` }),\n tsSync(),\n tsLinter(),\n tsHover({ renderTooltip: createTooltipRenderer(themeMode) }),\n ],\n ].filter(isNonNullable),\n }),\n [themeMode, id, extensions, inputMode, selection, scrollTo, env],\n );\n\n return (\n <div {...composableProps(props, { classNames, ...focusAttributes })} ref={composeRefs(parentRef, forwardedRef)} />\n );\n },\n);\n\n// TODO(burdon): Factor out (react-ui-editor).\nconst createTooltipRenderer = (themeMode: ThemeMode) => {\n const theme = HighlightStyle.define(themeMode === 'dark' ? defaultStyles.dark : defaultStyles.light);\n\n const classFromKind = (_kind: string) => {\n // E.g., localName, methodName, parameterName, etc.\n const kind = _kind.endsWith('Name') ? 'name' : _kind;\n const validTag = kind in tags;\n if (!validTag) {\n return '';\n }\n\n const tag = tags[kind as keyof typeof tags];\n if (typeof tag === 'function') {\n return '';\n }\n\n return theme.style([tag]) ?? '';\n };\n\n return (info: HoverInfo) => {\n const children =\n info.quickInfo?.displayParts?.map(({ kind, text }) =>\n Domino.of('span').classNames(classFromKind(kind)).text(text),\n ) ?? [];\n return {\n dom: Domino.of('div')\n .classNames('xs:max-w-80 max-w-lg p-1 bg-base-surface rounded-sm border border-separator')\n .append(...children).root,\n };\n };\n};\n\nexport default TypescriptEditor;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useState } from 'react';\nimport { ModuleResolutionKind, ScriptTarget } from 'typescript';\n\nimport queryApi from '@dxos/echo-query/api.d.ts?raw';\nimport { useAsyncEffect } from '@dxos/react-ui';\n\nimport { Compiler } from '../../compiler';\nimport { TypescriptEditor, type TypescriptEditorProps } from '../TypescriptEditor';\n\nconst GLOBALS = `\n namespace QueryAPI {\n ${queryApi}\n }\n\n declare global {\n const Query: typeof QueryAPI.Query;\n const Filter: typeof QueryAPI.Filter;\n const Order: typeof QueryAPI.Order;\n }\n\n export {};\n`;\n\nexport type QueryEditorProps = Omit<TypescriptEditorProps, 'env'>;\n\nexport const QueryEditor = (props: QueryEditorProps) => {\n const [compiler, setCompiler] = useState<Compiler>();\n\n useAsyncEffect(async () => {\n const compiler = new Compiler({\n lib: ['ES5'],\n target: ScriptTarget.ES2022,\n // Avoid `@typescript/vfs`'s deprecated `node10` default (rejected by TS 6).\n moduleResolution: ModuleResolutionKind.Bundler,\n });\n await compiler.initialize(GLOBALS);\n setCompiler(compiler);\n }, []);\n\n if (!compiler) {\n return null;\n }\n\n return <TypescriptEditor {...props} env={compiler.environment} />;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport React, { useMemo } from 'react';\n\nimport { AppSurface } from '@dxos/app-toolkit/ui';\nimport { type Script } from '@dxos/compute';\nimport { ElevationProvider, useTranslation } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { type ActionGraphProps, Menu, MenuRootProps, createGapSeparator, useMenuActions } from '@dxos/react-ui-menu';\n\nimport {\n type CreateDeployOptions,\n type ScriptToolbarStateStore,\n createDeploy,\n createFormat,\n createTemplateSelect,\n useDeployDeps,\n} from '#hooks';\nimport { meta } from '#meta';\n\nexport type ScriptToolbarProps = Pick<MenuRootProps, 'attendableId'> & {\n script: Script.Script;\n state: ScriptToolbarStateStore;\n};\n\nexport const ScriptToolbar = composable<HTMLDivElement, ScriptToolbarProps>(\n ({ script, attendableId, role, state, ...props }, forwardedRef) => {\n const { t } = useTranslation(meta.profile.key);\n const options = useDeployDeps({ script });\n const menuCreator = useMemo(\n () => createToolbarActions({ state, script, t, ...options }),\n [state, script, options, t],\n );\n const menuActions = useMenuActions(menuCreator);\n\n return (\n <ElevationProvider elevation={role === AppSurface.Section.role ? 'positioned' : 'base'}>\n <Menu.Root {...menuActions} attendableId={attendableId}>\n <Menu.Toolbar {...composableProps(props)} ref={forwardedRef} />\n </Menu.Root>\n </ElevationProvider>\n );\n },\n);\n\nconst createToolbarActions = ({ state, script, ...options }: CreateDeployOptions): Atom.Atom<ActionGraphProps> =>\n Atom.make((get) => {\n // Subscribe to state changes.\n get(state.atom);\n const templateSelect = createTemplateSelect(script);\n const format = createFormat(script);\n const gap = createGapSeparator();\n const deploy = createDeploy({ state, script, ...options });\n return {\n nodes: [...templateSelect.nodes, ...format.nodes, ...gap.nodes, ...deploy.nodes],\n edges: [...templateSelect.edges, ...format.edges, ...gap.edges, ...deploy.edges],\n };\n });\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef, useRef, useState } from 'react';\n\nimport { log } from '@dxos/log';\nimport { Avatar, Icon, Input, ScrollArea, type ThemedClassName, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { JsonHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { mx } from '@dxos/ui-theme';\n\nimport { meta } from '#meta';\n\ntype State = 'pending';\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 onInvoke?: (input: unknown) => Promise<unknown>;\n}>;\n\n// TODO(burdon): Need persistent history (currently lost when switching tabs).\nexport const TestPanel = composable<HTMLDivElement, TestPanelProps>(\n ({ classNames, onInvoke, ...props }, forwardedRef) => {\n const { t } = useTranslation(meta.profile.key);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [input, setInput] = 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 handleClear = () => {\n setInput('');\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 setHistory((history) => [...history, { type: 'response', text, data, error } satisfies Message]);\n setState(null);\n handleScroll();\n };\n\n const handleRequest = async (input: string) => {\n if (!onInvoke) {\n handleResponse({ error: new Error('Function not deployed') });\n return;\n }\n\n let data: unknown = input;\n let displayText = 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 displayText = JSON.stringify(data, null, 2);\n } catch (err) {\n handleResponse({ error: new Error('Invalid JSON input') });\n return;\n }\n }\n\n try {\n setState('pending');\n setInput('');\n setHistory((history) => [...history, { type: 'request', text: displayText }]);\n setTimeout(handleScroll);\n\n const result = await onInvoke(data);\n\n if (typeof result === 'string') {\n handleResponse({ text: result });\n } else {\n handleResponse({ data: result });\n }\n } catch (err: any) {\n const error = err instanceof Error ? err : new Error(String(err));\n handleResponse({ error });\n log.catch(err);\n }\n };\n\n return (\n <div\n {...composableProps(props, { classNames: ['flex flex-col h-full overflow-hidden', classNames] })}\n ref={forwardedRef}\n >\n {/* TODO(burdon): Replace with Thread. */}\n <MessageThread ref={scrollerRef} state={state} 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 icon='ph--play--regular' label='Execute' iconOnly onClick={() => handleRequest(input)} />\n <Toolbar.IconButton icon='ph--trash--regular' label='Clear' iconOnly onClick={handleClear} />\n </Toolbar.Root>\n </div>\n );\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};\n\nconst MessageThread = forwardRef<HTMLDivElement, MessageThreadProps>(\n ({ state, history }: MessageThreadProps, forwardedRef) => {\n return (\n <ScrollArea.Root orientation='vertical' classNames='h-full' ref={forwardedRef}>\n <ScrollArea.Viewport classNames='gap-6 p-2'>\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 {state === 'pending' && (\n <div className='grid grid-cols-[2rem_1fr_2rem]'>\n <div className='p-1'>\n <Icon icon='ph--spinner--regular' size={6} classNames='animate-spin' />\n </div>\n </div>\n )}\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n );\n },\n);\n\nconst MessageItem = ({ classNames, message }: ThemedClassName<{ message: Message }>) => {\n const { type, text, data, error } = message;\n const wrapper = 'p-1 px-2 rounded-md bg-hover-surface 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 text-error-text')}>{String(error)}</div>}\n\n {text !== undefined && (\n <div className={mx(wrapper, type === 'request' && 'bg-primary-500 dark:bg-primary-600')}>\n {text || '\\u00D8'}\n </div>\n )}\n\n {data && <JsonHighlighter data={data} classNames={mx(wrapper, 'text-xs')} />}\n </div>\n );\n};\n\nconst RobotAvatar = () => (\n <Avatar.Root>\n <Avatar.Content size={6} variant='circle' icon='ph--drone--regular' />\n </Avatar.Root>\n);\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "DropdownMenu", "useTranslation", "meta", "NotebookMenu", "cell", "onCellInsert", "onCellDelete", "t", "profile", "key", "Portal", "Content", "Viewport", "Item", "onClick", "id", "Arrow", "React", "useCallback", "useMemo", "useState", "Obj", "DropdownMenu", "IconButton", "ScrollArea", "useTranslation", "composable", "composableProps", "Mosaic", "mx", "arrayMove", "meta", "React", "useCallback", "useMemo", "Surface", "AppSurface", "Obj", "Doc", "invariant", "TemplateEditor", "useThemeContext", "useTranslation", "QueryEditor", "Editor", "createBasicExtensions", "createDataExtensions", "createMarkdownExtensions", "createThemeExtensions", "decorateMarkdown", "mx", "isNonNullable", "meta", "autocompletion", "completionKeymap", "javascript", "HighlightStyle", "lintKeymap", "Prec", "keymap", "tags", "composeRefs", "continueKeymap", "tsAutocomplete", "tsFacet", "tsHover", "tsLinter", "tsSync", "React", "useThemeContext", "composable", "composableProps", "useTextEditor", "Domino", "InputModeExtensions", "createBasicExtensions", "createThemeExtensions", "defaultStyles", "isNonNullable", "TypescriptEditor", "classNames", "id", "role", "inputMode", "env", "options", "initialValue", "extensions", "scrollTo", "selection", "props", "forwardedRef", "themeMode", "parentRef", "focusAttributes", "monospace", "syntaxHighlighting", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "scrollPastEnd", "search", "typescript", "override", "undefined", "high", "of", "path", "renderTooltip", "createTooltipRenderer", "filter", "div", "ref", "theme", "define", "dark", "light", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tag", "style", "info", "children", "quickInfo", "displayParts", "map", "text", "dom", "append", "root", "editorStyles", "NotebookCell", "extensions", "useMemo", "cell", "target", "createDataExtensions", "createAccessor", "source", "explorerGraph", "invariant", "Obj", "obj", "content", "value", "initialValue", "React", "TypescriptEditor", "id", "classNames", "env", "options", "highlightActiveLine", "lineNumbers", "graph", "QueryEditor", "db", "onChange", "dragging", "type", "AppSurface", "limit", "data", "subject", "attendableId", "prompt", "promptResults", "getValue", "name", "className", "span", "NotebookPromptResult", "NotebookTextEditor", "readOnly", "useThemeContext", "meta", "createThemeExtensions", "syntaxHighlighting", "createBasicExtensions", "createMarkdownExtensions", "decorateMarkdown", "extensionsProp", "filter", "isNonNullable", "themeMode", "t", "selectionEnd", "minSectionHeight", "getCellId", "cell", "id", "NotebookStack", "composable", "notebook", "db", "graph", "promptResults", "onCellInsert", "onCellDelete", "env", "props", "forwardedRef", "viewport", "setViewport", "useState", "Tile", "useCallback", "tileProps", "React", "NotebookSection", "eventHandler", "useMemo", "canDrop", "source", "cells", "some", "onDrop", "target", "to", "type", "location", "length", "insertIndex", "Math", "floor", "Obj", "update", "from", "findIndex", "arrayMove", "Mosaic", "Root", "ref", "Container", "asChild", "orientation", "autoScroll", "ScrollArea", "padding", "composableProps", "Viewport", "Stack", "items", "getId", "data", "t", "useTranslation", "meta", "profile", "key", "resizable", "dragHandle", "setDragHandle", "classNames", "mx", "div", "className", "IconButton", "variant", "icon", "iconOnly", "label", "DropdownMenu", "Trigger", "NotebookMenu", "NotebookCell", "React", "useState", "ModuleResolutionKind", "ScriptTarget", "queryApi", "useAsyncEffect", "GLOBALS", "queryApi", "QueryEditor", "props", "compiler", "setCompiler", "useState", "useAsyncEffect", "Compiler", "lib", "target", "ScriptTarget", "ES2022", "moduleResolution", "ModuleResolutionKind", "Bundler", "initialize", "React", "TypescriptEditor", "env", "environment", "Atom", "React", "useMemo", "AppSurface", "ElevationProvider", "useTranslation", "composable", "composableProps", "Menu", "createGapSeparator", "useMenuActions", "createDeploy", "createFormat", "createTemplateSelect", "useDeployDeps", "meta", "ScriptToolbar", "script", "attendableId", "role", "state", "props", "forwardedRef", "t", "profile", "key", "options", "menuCreator", "createToolbarActions", "menuActions", "elevation", "Section", "Root", "Toolbar", "ref", "make", "get", "atom", "templateSelect", "format", "gap", "deploy", "nodes", "edges", "React", "forwardRef", "useRef", "useState", "log", "Avatar", "Icon", "Input", "ScrollArea", "Toolbar", "useTranslation", "composable", "composableProps", "JsonHighlighter", "mx", "meta", "__dxlog_file", "inputRef", "input", "setInput", "setState", "history", "setHistory", "handleScroll", "current", "handleResponse", "text", "data", "error", "handleRequest", "charAt", "validJsonString", "displayText", "stringify", "err", "setTimeout", "result", "catch", "classNames", "ref", "scrollerRef", "state", "autoFocus", "placeholder", "value", "onChange", "ev", "onKeyDown", "icon", "iconOnly", "onClick", "MessageThread", "forwardedRef", "message", "i", "className", "MessageItem", "div", "wrapper", "String", "undefined", "type", "RobotAvatar"]
7
7
  }
@@ -2,16 +2,18 @@ import "../chunk-J5LGTIGS.mjs";
2
2
 
3
3
  // src/containers/index.ts
4
4
  import { lazy } from "react";
5
- var DeploymentDialog = lazy(() => import("../DeploymentDialog-M3AFYQHC.mjs"));
6
- var NotebookArticle = lazy(() => import("../NotebookArticle-NV4AHOOS.mjs"));
7
- var ScriptArticle = lazy(() => import("../ScriptArticle-QW26LOKU.mjs"));
8
- var ScriptProperties = lazy(() => import("../ScriptProperties-RLXNAN3N.mjs"));
5
+ var DeploymentDialog = lazy(() => import("../DeploymentDialog-7OIIL7LB.mjs"));
6
+ var NotebookArticle = lazy(() => import("../NotebookArticle-AOBB3XGD.mjs"));
7
+ var ScriptArticle = lazy(() => import("../ScriptArticle-I3DOJARR.mjs"));
8
+ var ScriptProperties = lazy(() => import("../ScriptProperties-RHDQGMGT.mjs"));
9
+ var ScriptSettings = lazy(() => import("../ScriptSettings-NS3ZY7ZR.mjs"));
9
10
  var TestContainer = lazy(() => import("../TestContainer-AFVTBYSJ.mjs"));
10
11
  export {
11
12
  DeploymentDialog,
12
13
  NotebookArticle,
13
14
  ScriptArticle,
14
15
  ScriptProperties,
16
+ ScriptSettings,
15
17
  TestContainer
16
18
  };
17
19
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/containers/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const DeploymentDialog: ComponentType<any> = lazy(() => import('./DeploymentDialog'));\nexport const NotebookArticle: ComponentType<any> = lazy(() => import('./NotebookArticle'));\nexport const ScriptArticle: ComponentType<any> = lazy(() => import('./ScriptArticle'));\nexport const ScriptProperties: ComponentType<any> = lazy(() => import('./ScriptProperties'));\nexport const TestContainer: ComponentType<any> = lazy(() => import('./TestContainer'));\n"],
5
- "mappings": ";;;AAIA,SAA6BA,YAAY;AAElC,IAAMC,mBAAuCD,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAME,kBAAsCF,KAAK,MAAM,OAAO,iCAAA,CAAA;AAC9D,IAAMG,gBAAoCH,KAAK,MAAM,OAAO,+BAAA,CAAA;AAC5D,IAAMI,mBAAuCJ,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAMK,gBAAoCL,KAAK,MAAM,OAAO,+BAAA,CAAA;",
6
- "names": ["lazy", "DeploymentDialog", "NotebookArticle", "ScriptArticle", "ScriptProperties", "TestContainer"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const DeploymentDialog: ComponentType<any> = lazy(() => import('./DeploymentDialog'));\nexport const NotebookArticle: ComponentType<any> = lazy(() => import('./NotebookArticle'));\nexport const ScriptArticle: ComponentType<any> = lazy(() => import('./ScriptArticle'));\nexport const ScriptProperties: ComponentType<any> = lazy(() => import('./ScriptProperties'));\nexport const ScriptSettings: ComponentType<any> = lazy(() => import('./ScriptSettings'));\nexport const TestContainer: ComponentType<any> = lazy(() => import('./TestContainer'));\n"],
5
+ "mappings": ";;;AAIA,SAA6BA,YAAY;AAElC,IAAMC,mBAAuCD,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAME,kBAAsCF,KAAK,MAAM,OAAO,iCAAA,CAAA;AAC9D,IAAMG,gBAAoCH,KAAK,MAAM,OAAO,+BAAA,CAAA;AAC5D,IAAMI,mBAAuCJ,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAMK,iBAAqCL,KAAK,MAAM,OAAO,gCAAA,CAAA;AAC7D,IAAMM,gBAAoCN,KAAK,MAAM,OAAO,+BAAA,CAAA;",
6
+ "names": ["lazy", "DeploymentDialog", "NotebookArticle", "ScriptArticle", "ScriptProperties", "ScriptSettings", "TestContainer"]
7
7
  }
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  Create
3
- } from "./chunk-TRKXIP2Q.mjs";
3
+ } from "./chunk-6DOWVKIW.mjs";
4
4
  import "./chunk-J5LGTIGS.mjs";
5
5
 
6
- // src/blueprints/functions/create.ts
6
+ // src/skills/functions/create.ts
7
7
  import * as Effect from "effect/Effect";
8
8
  import { CollectionModel } from "@dxos/app-toolkit";
9
- import { Script, Operation } from "@dxos/compute";
9
+ import { Operation, Script } from "@dxos/compute";
10
10
  import { Database, Obj, Ref } from "@dxos/echo";
11
11
  var create_default = Create.pipe(Operation.withHandler(Effect.fn(function* ({ name, source, templateId }) {
12
12
  let scriptSource = source ?? "";
@@ -43,4 +43,4 @@ var findTemplate = (templateId) => Effect.promise(async () => {
43
43
  export {
44
44
  create_default as default
45
45
  };
46
- //# sourceMappingURL=create-AAA53WDL.mjs.map
46
+ //# sourceMappingURL=create-SGHWWTET.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/blueprints/functions/create.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { CollectionModel } from '@dxos/app-toolkit';\nimport { Script, Operation } from '@dxos/compute';\nimport { Database, Obj, Ref } from '@dxos/echo';\n\nimport { Create } from './definitions';\n\nexport default Create.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ name, source, templateId }) {\n let scriptSource = source ?? '';\n\n if (templateId) {\n const template = yield* findTemplate(templateId);\n if (template) {\n scriptSource = template.source;\n }\n }\n\n const script = Script.make({ name, source: scriptSource });\n const { db } = yield* Database.Service;\n db.add(script);\n\n const fn = Obj.make(Operation.PersistentOperation, {\n [Obj.Meta]: { version: '0.0.0' },\n name,\n source: Ref.make(script),\n });\n yield* CollectionModel.add({ object: fn });\n\n return {\n function: Obj.getURI(fn),\n };\n }),\n ),\n);\n\nconst findTemplate = (templateId: string) =>\n Effect.promise(async () => {\n const { templates } = await import('../../templates');\n return templates.find((template) => template.id === templateId);\n });\n"],
5
- "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,uBAAuB;AAChC,SAASC,QAAQC,iBAAiB;AAClC,SAASC,UAAUC,KAAKC,WAAW;AAInC,IAAA,iBAAeC,OAAOC,KACpBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,MAAMC,QAAQC,WAAU,GAAE;AAC/C,MAAIC,eAAeF,UAAU;AAE7B,MAAIC,YAAY;AACd,UAAME,WAAW,OAAOC,aAAaH,UAAAA;AACrC,QAAIE,UAAU;AACZD,qBAAeC,SAASH;IAC1B;EACF;AAEA,QAAMK,SAASC,OAAOC,KAAK;IAAER;IAAMC,QAAQE;EAAa,CAAA;AACxD,QAAM,EAAEM,GAAE,IAAK,OAAOC,SAASC;AAC/BF,KAAGG,IAAIN,MAAAA;AAEP,QAAMP,MAAKc,IAAIL,KAAKX,UAAUiB,qBAAqB;IACjD,CAACD,IAAIE,IAAI,GAAG;MAAEC,SAAS;IAAQ;IAC/BhB;IACAC,QAAQgB,IAAIT,KAAKF,MAAAA;EACnB,CAAA;AACA,SAAOY,gBAAgBN,IAAI;IAAEO,QAAQpB;EAAG,CAAA;AAExC,SAAO;IACLqB,UAAUP,IAAIQ,OAAOtB,GAAAA;EACvB;AACF,CAAA,CAAA,CAAA;AAIJ,IAAMM,eAAe,CAACH,eACboB,eAAQ,YAAA;AACb,QAAM,EAAEC,UAAS,IAAK,MAAM,OAAO,uBAAA;AACnC,SAAOA,UAAUC,KAAK,CAACpB,aAAaA,SAASqB,OAAOvB,UAAAA;AACtD,CAAA;",
6
- "names": ["Effect", "CollectionModel", "Script", "Operation", "Database", "Obj", "Ref", "Create", "pipe", "Operation", "withHandler", "fn", "name", "source", "templateId", "scriptSource", "template", "findTemplate", "script", "Script", "make", "db", "Database", "Service", "add", "Obj", "PersistentOperation", "Meta", "version", "Ref", "CollectionModel", "object", "function", "getURI", "promise", "templates", "find", "id"]
3
+ "sources": ["../../../src/skills/functions/create.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { CollectionModel } from '@dxos/app-toolkit';\nimport { Operation, Script } from '@dxos/compute';\nimport { Database, Obj, Ref } from '@dxos/echo';\n\nimport { Create } from './definitions';\n\nexport default Create.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ name, source, templateId }) {\n let scriptSource = source ?? '';\n\n if (templateId) {\n const template = yield* findTemplate(templateId);\n if (template) {\n scriptSource = template.source;\n }\n }\n\n const script = Script.make({ name, source: scriptSource });\n const { db } = yield* Database.Service;\n db.add(script);\n\n const fn = Obj.make(Operation.PersistentOperation, {\n [Obj.Meta]: { version: '0.0.0' },\n name,\n source: Ref.make(script),\n });\n yield* CollectionModel.add({ object: fn });\n\n return {\n function: Obj.getURI(fn),\n };\n }),\n ),\n);\n\nconst findTemplate = (templateId: string) =>\n Effect.promise(async () => {\n const { templates } = await import('../../templates');\n return templates.find((template) => template.id === templateId);\n });\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,uBAAuB;AAChC,SAASC,WAAWC,cAAc;AAClC,SAASC,UAAUC,KAAKC,WAAW;AAInC,IAAA,iBAAeC,OAAOC,KACpBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,MAAMC,QAAQC,WAAU,GAAE;AAC/C,MAAIC,eAAeF,UAAU;AAE7B,MAAIC,YAAY;AACd,UAAME,WAAW,OAAOC,aAAaH,UAAAA;AACrC,QAAIE,UAAU;AACZD,qBAAeC,SAASH;IAC1B;EACF;AAEA,QAAMK,SAASC,OAAOC,KAAK;IAAER;IAAMC,QAAQE;EAAa,CAAA;AACxD,QAAM,EAAEM,GAAE,IAAK,OAAOC,SAASC;AAC/BF,KAAGG,IAAIN,MAAAA;AAEP,QAAMP,MAAKc,IAAIL,KAAKX,UAAUiB,qBAAqB;IACjD,CAACD,IAAIE,IAAI,GAAG;MAAEC,SAAS;IAAQ;IAC/BhB;IACAC,QAAQgB,IAAIT,KAAKF,MAAAA;EACnB,CAAA;AACA,SAAOY,gBAAgBN,IAAI;IAAEO,QAAQpB;EAAG,CAAA;AAExC,SAAO;IACLqB,UAAUP,IAAIQ,OAAOtB,GAAAA;EACvB;AACF,CAAA,CAAA,CAAA;AAIJ,IAAMM,eAAe,CAACH,eACboB,eAAQ,YAAA;AACb,QAAM,EAAEC,UAAS,IAAK,MAAM,OAAO,uBAAA;AACnC,SAAOA,UAAUC,KAAK,CAACpB,aAAaA,SAASqB,OAAOvB,UAAAA;AACtD,CAAA;",
6
+ "names": ["Effect", "CollectionModel", "Operation", "Script", "Database", "Obj", "Ref", "Create", "pipe", "Operation", "withHandler", "fn", "name", "source", "templateId", "scriptSource", "template", "findTemplate", "script", "Script", "make", "db", "Database", "Service", "add", "Obj", "PersistentOperation", "Meta", "version", "Ref", "CollectionModel", "object", "function", "getURI", "promise", "templates", "find", "id"]
7
7
  }
@@ -19,7 +19,6 @@ var create_object_default = Capability.makeModule(Effect.fnUntraced(function* ()
19
19
  return yield* Operation.invoke(SpaceOperation.AddObject, {
20
20
  object,
21
21
  target: options.target,
22
- hidden: true,
23
22
  targetNodeId: options.targetNodeId
24
23
  });
25
24
  })
@@ -32,7 +31,6 @@ var create_object_default = Capability.makeModule(Effect.fnUntraced(function* ()
32
31
  return yield* Operation.invoke(SpaceOperation.AddObject, {
33
32
  object,
34
33
  target: options.target,
35
- hidden: true,
36
34
  targetNodeId: options.targetNodeId
37
35
  });
38
36
  })
@@ -42,4 +40,4 @@ var create_object_default = Capability.makeModule(Effect.fnUntraced(function* ()
42
40
  export {
43
41
  create_object_default as default
44
42
  };
45
- //# sourceMappingURL=create-object-FZM5ASWM.mjs.map
43
+ //# sourceMappingURL=create-object-QW66KQWS.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/create-object.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation, Script } from '@dxos/compute';\nimport { Type } from '@dxos/echo';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\n\nimport { ScriptOperation } from '#types';\nimport { Notebook } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n return [\n Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Type.getTypename(Script.Script),\n inputSchema: ScriptOperation.ScriptProps,\n createObject: (props, options) =>\n Effect.gen(function* () {\n const { object } = yield* Operation.invoke(ScriptOperation.CreateScript, props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n }),\n }),\n Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Type.getTypename(Notebook.Notebook),\n inputSchema: ScriptOperation.NotebookProps,\n createObject: (props, options) =>\n Effect.gen(function* () {\n const object = Notebook.make(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n }),\n }),\n ];\n }),\n);\n"],
5
- "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,WAAWC,cAAc;AAClC,SAASC,YAAY;AACrB,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAElC,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AAEzB,IAAA,wBAAeP,WAAWQ,WACjBC,kBAAW,aAAA;AAChB,SAAO;IACLT,WAAWU,YAAYL,kBAAkBM,mBAAmB;MAC1DC,IAAIT,KAAKU,YAAYX,OAAOA,MAAM;MAClCY,aAAaR,gBAAgBS;MAC7BC,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,cAAM,EAAEC,OAAM,IAAK,OAAOnB,UAAUoB,OAAOf,gBAAgBgB,cAAcL,KAAAA;AACzE,eAAO,OAAOhB,UAAUoB,OAAOjB,eAAemB,WAAW;UACvDH;UACAI,QAAQN,QAAQM;UAChBC,QAAQ;UACRC,cAAcR,QAAQQ;QACxB,CAAA;MACF,CAAA;IACJ,CAAA;IACA1B,WAAWU,YAAYL,kBAAkBM,mBAAmB;MAC1DC,IAAIT,KAAKU,YAAYN,SAASA,QAAQ;MACtCO,aAAaR,gBAAgBqB;MAC7BX,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,cAAMC,SAASb,SAASqB,KAAKX,KAAAA;AAC7B,eAAO,OAAOhB,UAAUoB,OAAOjB,eAAemB,WAAW;UACvDH;UACAI,QAAQN,QAAQM;UAChBC,QAAQ;UACRC,cAAcR,QAAQQ;QACxB,CAAA;MACF,CAAA;IACJ,CAAA;;AAEJ,CAAA,CAAA;",
6
- "names": ["Effect", "Capability", "Operation", "Script", "Type", "SpaceOperation", "SpaceCapabilities", "ScriptOperation", "Notebook", "makeModule", "fnUntraced", "contributes", "CreateObjectEntry", "id", "getTypename", "inputSchema", "ScriptProps", "createObject", "props", "options", "gen", "object", "invoke", "CreateScript", "AddObject", "target", "hidden", "targetNodeId", "NotebookProps", "make"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation, Script } from '@dxos/compute';\nimport { Type } from '@dxos/echo';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\n\nimport { ScriptOperation } from '#types';\nimport { Notebook } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n return [\n Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Type.getTypename(Script.Script),\n inputSchema: ScriptOperation.ScriptProps,\n createObject: (props, options) =>\n Effect.gen(function* () {\n const { object } = yield* Operation.invoke(ScriptOperation.CreateScript, props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n targetNodeId: options.targetNodeId,\n });\n }),\n }),\n Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Type.getTypename(Notebook.Notebook),\n inputSchema: ScriptOperation.NotebookProps,\n createObject: (props, options) =>\n Effect.gen(function* () {\n const object = Notebook.make(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n targetNodeId: options.targetNodeId,\n });\n }),\n }),\n ];\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,WAAWC,cAAc;AAClC,SAASC,YAAY;AACrB,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAElC,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AAEzB,IAAA,wBAAeP,WAAWQ,WACjBC,kBAAW,aAAA;AAChB,SAAO;IACLT,WAAWU,YAAYL,kBAAkBM,mBAAmB;MAC1DC,IAAIT,KAAKU,YAAYX,OAAOA,MAAM;MAClCY,aAAaR,gBAAgBS;MAC7BC,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,cAAM,EAAEC,OAAM,IAAK,OAAOnB,UAAUoB,OAAOf,gBAAgBgB,cAAcL,KAAAA;AACzE,eAAO,OAAOhB,UAAUoB,OAAOjB,eAAemB,WAAW;UACvDH;UACAI,QAAQN,QAAQM;UAChBC,cAAcP,QAAQO;QACxB,CAAA;MACF,CAAA;IACJ,CAAA;IACAzB,WAAWU,YAAYL,kBAAkBM,mBAAmB;MAC1DC,IAAIT,KAAKU,YAAYN,SAASA,QAAQ;MACtCO,aAAaR,gBAAgBoB;MAC7BV,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,cAAMC,SAASb,SAASoB,KAAKV,KAAAA;AAC7B,eAAO,OAAOhB,UAAUoB,OAAOjB,eAAemB,WAAW;UACvDH;UACAI,QAAQN,QAAQM;UAChBC,cAAcP,QAAQO;QACxB,CAAA;MACF,CAAA;IACJ,CAAA;;AAEJ,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "Operation", "Script", "Type", "SpaceOperation", "SpaceCapabilities", "ScriptOperation", "Notebook", "makeModule", "fnUntraced", "contributes", "CreateObjectEntry", "id", "getTypename", "inputSchema", "ScriptProps", "createObject", "props", "options", "gen", "object", "invoke", "CreateScript", "AddObject", "target", "targetNodeId", "NotebookProps", "make"]
7
7
  }
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  ScriptOperation_exports
3
- } from "./chunk-HABDH5SS.mjs";
3
+ } from "./chunk-652CIABA.mjs";
4
4
  import {
5
5
  templates
6
- } from "./chunk-PHKPB5JN.mjs";
6
+ } from "./chunk-WAGQ77UQ.mjs";
7
7
  import "./chunk-J5LGTIGS.mjs";
8
8
 
9
9
  // src/operations/create-script.ts
10
10
  import { Octokit } from "@octokit/core";
11
11
  import * as Effect from "effect/Effect";
12
- import { Script, Operation } from "@dxos/compute";
12
+ import { Operation, Script } from "@dxos/compute";
13
13
  var handler = ScriptOperation_exports.CreateScript.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ name, gistUrl, initialTemplateId }) {
14
14
  let source = templates[0].source;
15
15
  let scriptName = name;
@@ -42,4 +42,4 @@ var create_script_default = handler;
42
42
  export {
43
43
  create_script_default as default
44
44
  };
45
- //# sourceMappingURL=create-script-P46JOEHH.mjs.map
45
+ //# sourceMappingURL=create-script-CIEJOBIU.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/operations/create-script.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Octokit } from '@octokit/core';\nimport * as Effect from 'effect/Effect';\n\nimport { Script, Operation } from '@dxos/compute';\n\nimport { templates } from '../templates';\nimport { ScriptOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof ScriptOperation.CreateScript> = ScriptOperation.CreateScript.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ name, gistUrl, initialTemplateId }) {\n let source = templates[0].source;\n let scriptName = name;\n\n const gistId = gistUrl?.split('/').at(-1);\n if (gistId) {\n const octokit = new Octokit();\n const response = yield* Effect.promise(() =>\n octokit.request('GET /gists/{gist_id}', {\n gist_id: gistId,\n }),\n );\n const gistContent = Object.values(response.data.files ?? {})[0]?.content;\n if (gistContent) {\n source = gistContent;\n }\n }\n\n if (initialTemplateId) {\n const template = templates.find((template) => template.id === initialTemplateId);\n if (template) {\n source = template.source;\n scriptName = scriptName || template.name;\n }\n }\n\n return { object: Script.make({ name: scriptName, source }) };\n }),\n ),\n);\n\nexport default handler;\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,eAAe;AACxB,YAAYC,YAAY;AAExB,SAASC,QAAQC,iBAAiB;AAKlC,IAAMC,UAAsEC,wBAAgBC,aAAaC,KACvGC,UAAUC,YACDC,kBAAW,WAAW,EAAEC,MAAMC,SAASC,kBAAiB,GAAE;AAC/D,MAAIC,SAASC,UAAU,CAAA,EAAGD;AAC1B,MAAIE,aAAaL;AAEjB,QAAMM,SAASL,SAASM,MAAM,GAAA,EAAKC,GAAG,EAAC;AACvC,MAAIF,QAAQ;AACV,UAAMG,UAAU,IAAIC,QAAAA;AACpB,UAAMC,WAAW,OAAcC,eAAQ,MACrCH,QAAQI,QAAQ,wBAAwB;MACtCC,SAASR;IACX,CAAA,CAAA;AAEF,UAAMS,cAAcC,OAAOC,OAAON,SAASO,KAAKC,SAAS,CAAC,CAAA,EAAG,CAAA,GAAIC;AACjE,QAAIL,aAAa;AACfZ,eAASY;IACX;EACF;AAEA,MAAIb,mBAAmB;AACrB,UAAMmB,WAAWjB,UAAUkB,KAAK,CAACD,cAAaA,UAASE,OAAOrB,iBAAAA;AAC9D,QAAImB,UAAU;AACZlB,eAASkB,SAASlB;AAClBE,mBAAaA,cAAcgB,SAASrB;IACtC;EACF;AAEA,SAAO;IAAEwB,QAAQC,OAAOC,KAAK;MAAE1B,MAAMK;MAAYF;IAAO,CAAA;EAAG;AAC7D,CAAA,CAAA,CAAA;AAIJ,IAAA,wBAAeV;",
6
- "names": ["Octokit", "Effect", "Script", "Operation", "handler", "ScriptOperation", "CreateScript", "pipe", "Operation", "withHandler", "fnUntraced", "name", "gistUrl", "initialTemplateId", "source", "templates", "scriptName", "gistId", "split", "at", "octokit", "Octokit", "response", "promise", "request", "gist_id", "gistContent", "Object", "values", "data", "files", "content", "template", "find", "id", "object", "Script", "make"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Octokit } from '@octokit/core';\nimport * as Effect from 'effect/Effect';\n\nimport { Operation, Script } from '@dxos/compute';\n\nimport { templates } from '../templates';\nimport { ScriptOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof ScriptOperation.CreateScript> = ScriptOperation.CreateScript.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ name, gistUrl, initialTemplateId }) {\n let source = templates[0].source;\n let scriptName = name;\n\n const gistId = gistUrl?.split('/').at(-1);\n if (gistId) {\n const octokit = new Octokit();\n const response = yield* Effect.promise(() =>\n octokit.request('GET /gists/{gist_id}', {\n gist_id: gistId,\n }),\n );\n const gistContent = Object.values(response.data.files ?? {})[0]?.content;\n if (gistContent) {\n source = gistContent;\n }\n }\n\n if (initialTemplateId) {\n const template = templates.find((template) => template.id === initialTemplateId);\n if (template) {\n source = template.source;\n scriptName = scriptName || template.name;\n }\n }\n\n return { object: Script.make({ name: scriptName, source }) };\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;;;AAIA,SAASA,eAAe;AACxB,YAAYC,YAAY;AAExB,SAASC,WAAWC,cAAc;AAKlC,IAAMC,UAAsEC,wBAAgBC,aAAaC,KACvGC,UAAUC,YACDC,kBAAW,WAAW,EAAEC,MAAMC,SAASC,kBAAiB,GAAE;AAC/D,MAAIC,SAASC,UAAU,CAAA,EAAGD;AAC1B,MAAIE,aAAaL;AAEjB,QAAMM,SAASL,SAASM,MAAM,GAAA,EAAKC,GAAG,EAAC;AACvC,MAAIF,QAAQ;AACV,UAAMG,UAAU,IAAIC,QAAAA;AACpB,UAAMC,WAAW,OAAcC,eAAQ,MACrCH,QAAQI,QAAQ,wBAAwB;MACtCC,SAASR;IACX,CAAA,CAAA;AAEF,UAAMS,cAAcC,OAAOC,OAAON,SAASO,KAAKC,SAAS,CAAC,CAAA,EAAG,CAAA,GAAIC;AACjE,QAAIL,aAAa;AACfZ,eAASY;IACX;EACF;AAEA,MAAIb,mBAAmB;AACrB,UAAMmB,WAAWjB,UAAUkB,KAAK,CAACD,cAAaA,UAASE,OAAOrB,iBAAAA;AAC9D,QAAImB,UAAU;AACZlB,eAASkB,SAASlB;AAClBE,mBAAaA,cAAcgB,SAASrB;IACtC;EACF;AAEA,SAAO;IAAEwB,QAAQC,OAAOC,KAAK;MAAE1B,MAAMK;MAAYF;IAAO,CAAA;EAAG;AAC7D,CAAA,CAAA,CAAA;AAIJ,IAAA,wBAAeV;",
6
+ "names": ["Octokit", "Effect", "Operation", "Script", "handler", "ScriptOperation", "CreateScript", "pipe", "Operation", "withHandler", "fnUntraced", "name", "gistUrl", "initialTemplateId", "source", "templates", "scriptName", "gistId", "split", "at", "octokit", "Octokit", "response", "promise", "request", "gist_id", "gistContent", "Object", "values", "data", "files", "content", "template", "find", "id", "object", "Script", "make"]
7
7
  }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  Delete
3
- } from "./chunk-TRKXIP2Q.mjs";
3
+ } from "./chunk-6DOWVKIW.mjs";
4
4
  import "./chunk-J5LGTIGS.mjs";
5
5
 
6
- // src/blueprints/functions/delete.ts
6
+ // src/skills/functions/delete.ts
7
7
  import * as Effect from "effect/Effect";
8
8
  import { Operation } from "@dxos/compute";
9
9
  import { Database } from "@dxos/echo";
@@ -18,4 +18,4 @@ var delete_default = Delete.pipe(Operation.withHandler(Effect.fn(function* ({ fu
18
18
  export {
19
19
  delete_default as default
20
20
  };
21
- //# sourceMappingURL=delete-HCQIQFVP.mjs.map
21
+ //# sourceMappingURL=delete-72RXVLVI.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/blueprints/functions/delete.ts"],
3
+ "sources": ["../../../src/skills/functions/delete.ts"],
4
4
  "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database } from '@dxos/echo';\n\nimport { Delete } from './definitions';\n\nexport default Delete.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ function: fn }) {\n const { db } = yield* Database.Service;\n const loaded = yield* Database.load(fn);\n if (loaded.source?.target) {\n db.remove(loaded.source.target);\n }\n db.remove(loaded);\n }),\n ),\n);\n"],
5
5
  "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AAIzB,IAAA,iBAAeC,OAAOC,KACpBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,UAAUD,IAAE,GAAE;AACnC,QAAM,EAAEE,GAAE,IAAK,OAAOC,SAASC;AAC/B,QAAMC,SAAS,OAAOF,SAASG,KAAKN,GAAAA;AACpC,MAAIK,OAAOE,QAAQC,QAAQ;AACzBN,OAAGO,OAAOJ,OAAOE,OAAOC,MAAM;EAChC;AACAN,KAAGO,OAAOJ,MAAAA;AACZ,CAAA,CAAA,CAAA;",
6
6
  "names": ["Effect", "Operation", "Database", "Delete", "pipe", "Operation", "withHandler", "fn", "function", "db", "Database", "Service", "loaded", "load", "source", "target", "remove"]
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  Deploy
3
- } from "./chunk-TRKXIP2Q.mjs";
3
+ } from "./chunk-6DOWVKIW.mjs";
4
4
  import "./chunk-J5LGTIGS.mjs";
5
5
 
6
- // src/blueprints/functions/deploy.ts
6
+ // src/skills/functions/deploy.ts
7
7
  import * as Effect from "effect/Effect";
8
8
  import wasmUrl from "esbuild-wasm/esbuild.wasm?url";
9
9
  import { ClientService } from "@dxos/client";
@@ -15,7 +15,7 @@ import { bundleFunction, initializeBundler } from "@dxos/functions-runtime/bundl
15
15
  import { FunctionsServiceClient, incrementSemverPatch } from "@dxos/functions-runtime/edge";
16
16
  import { FunctionRuntimeKind } from "@dxos/protocols";
17
17
  import { getSpace } from "@dxos/react-client/echo";
18
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/blueprints/functions/deploy.ts";
18
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/skills/functions/deploy.ts";
19
19
  var deploy_default = Deploy.pipe(Operation.withHandler(Effect.fn(function* ({ function: fn2 }) {
20
20
  const loaded = yield* Database.load(fn2);
21
21
  const client = yield* ClientService;
@@ -38,9 +38,13 @@ var deploy_default = Deploy.pipe(Operation.withHandler(Effect.fn(function* ({ fu
38
38
  }
39
39
  const existingFunctionId = getUserFunctionIdInMetadata(Obj.getMeta(loaded));
40
40
  const currentVersion = Obj.getMeta(loaded).version;
41
+ const identity = client.halo.identity.get();
42
+ if (!identity) {
43
+ return yield* Effect.fail(new Error("Identity not available."));
44
+ }
41
45
  const functionsService = FunctionsServiceClient.fromClient(client);
42
- const newFunction = yield* Effect.promise(() => functionsService.deploy(Context.default(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 39 }), {
43
- ownerPublicKey: space.key,
46
+ const newFunction = yield* Effect.promise(() => functionsService.deploy(Context.default(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 43 }), {
47
+ ownerUri: identity.did,
44
48
  version: currentVersion ? incrementSemverPatch(currentVersion) : "0.0.1",
45
49
  functionId: existingFunctionId,
46
50
  entryPoint: buildResult.entryPoint,
@@ -60,4 +64,4 @@ var deploy_default = Deploy.pipe(Operation.withHandler(Effect.fn(function* ({ fu
60
64
  export {
61
65
  deploy_default as default
62
66
  };
63
- //# sourceMappingURL=deploy-7JVMMHSH.mjs.map
67
+ //# sourceMappingURL=deploy-PJTJAQZY.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/skills/functions/deploy.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport wasmUrl from 'esbuild-wasm/esbuild.wasm?url';\n\nimport { ClientService } from '@dxos/client';\nimport { Operation, Script } from '@dxos/compute';\nimport { Context } from '@dxos/context';\nimport { Database, Obj } from '@dxos/echo';\nimport { getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { bundleFunction, initializeBundler } from '@dxos/functions-runtime/bundler';\nimport { FunctionsServiceClient, incrementSemverPatch } from '@dxos/functions-runtime/edge';\nimport { FunctionRuntimeKind } from '@dxos/protocols';\nimport { getSpace } from '@dxos/react-client/echo';\n\nimport { Deploy } from './definitions';\n\nexport default Deploy.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ function: fn }) {\n const loaded = yield* Database.load(fn);\n const client = yield* ClientService;\n if (!loaded.source) {\n return yield* Effect.fail(new Error('Function has no source script.'));\n }\n const script = (yield* Database.load(loaded.source)) as Script.Script;\n\n const space = getSpace(loaded);\n if (!space || !script.source?.target?.content) {\n return yield* Effect.fail(new Error('Script source or space not available'));\n }\n\n yield* Effect.promise(() => initializeBundler({ wasmUrl }));\n const buildResult = yield* Effect.promise(() => bundleFunction({ source: script.source!.target!.content }));\n if ('error' in buildResult) {\n return yield* Effect.fail(buildResult.error ?? new Error('Bundle creation failed'));\n }\n\n const existingFunctionId = getUserFunctionIdInMetadata(Obj.getMeta(loaded));\n const currentVersion = Obj.getMeta(loaded).version;\n\n const identity = client.halo.identity.get();\n if (!identity) {\n return yield* Effect.fail(new Error('Identity not available.'));\n }\n\n const functionsService = FunctionsServiceClient.fromClient(client);\n const newFunction = yield* Effect.promise(() =>\n functionsService.deploy(Context.default(), {\n ownerUri: identity.did,\n version: currentVersion ? incrementSemverPatch(currentVersion) : '0.0.1',\n functionId: existingFunctionId,\n entryPoint: buildResult.entryPoint,\n assets: buildResult.assets,\n runtime: FunctionRuntimeKind.enums.WORKER_LOADER,\n }),\n );\n\n Operation.setFrom(loaded, newFunction);\n\n Obj.update(script, (script) => {\n script.changed = false;\n });\n\n const edgeFunctionId = getUserFunctionIdInMetadata(Obj.getMeta(loaded));\n return {\n function: Obj.getURI(loaded),\n functionUrl: edgeFunctionId\n ? `${client.config.values.runtime?.services?.edge?.url ?? ''}/functions/${edgeFunctionId}`\n : undefined,\n };\n }),\n ),\n);\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,aAAa;AAEpB,SAASC,qBAAqB;AAC9B,SAASC,iBAAyB;AAClC,SAASC,eAAe;AACxB,SAASC,UAAUC,WAAW;AAC9B,SAASC,mCAAmC;AAC5C,SAASC,gBAAgBC,yBAAyB;AAClD,SAASC,wBAAwBC,4BAA4B;AAC7D,SAASC,2BAA2B;AACpC,SAASC,gBAAgB;AAIzB,IAAA,eAAeC;IAIT,iBAAMC,OAAS,KAAOC,UAAAA,YAAAA,UAAAA,WAAAA,EAAAA,UAAAA,IAAAA,GAAAA;AACtB,QAAKC,SAAOC,OAAQ,SAAA,KAAAC,GAAA;QAClB,SAAO,OAAOC;AAChB,MAAA,CAAA,OAAA,QAAA;AACA,WAAMC,OAAiBC,YAAAA,IAASC,MAAKN,gCAAa,CAAA;EAElD;AACA,QAAKO,SAAUH,OAAOH,SAAQO,KAAAA,OAAQC,MAAS;QAC7C,QAAO,SAAON,MAAW;AAC3B,MAAA,CAAA,SAAA,CAAA,OAAA,QAAA,QAAA,SAAA;AAEA,WAAOA,OAAe,YAAMO,IAAAA,MAAAA,sCAAkB,CAAA;;SAAU,eAAA,MAAA,kBAAA;IAClDC;;QAAkG,cAAA,OAAA,eAAA,MAAA,eAAA;IACpG,QAAWA,OAAAA,OAAa,OAAA;EAC1B,CAAA,CAAA;AACF,MAAA,WAAA,aAAA;AAEA,WAAMC,OAAAA,YAAqBC,YAAAA,SAAAA,IAA4BC,MAAIC,wBAAQf,CAAAA;EACnE;AAEA,QAAMgB,qBAAkBC,4BAAiB,IAAA,QAAA,MAAA,CAAA;AACzC,QAAKD,iBAAU,IAAA,QAAA,MAAA,EAAA;QACb,WAAO,OAAOb,KAAW,SAAKe,IAAM;AACtC,MAAA,CAAA,UAAA;AAEA,WAAMC,OAAmBC,YAAAA,IAAAA,MAAAA,yBAAkCtB,CAAAA;EAC3D;2BAEckB,uBAAY,WAAA,MAAA;sBACbK,OAAiBC,eAAAA,MAAAA,iBAAqBD,OAAAA,QAAkB,QAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,GAAA,CAAA,GAAA;IACjEE,UAAAA,SAAYX;IACZY,SAAAA,iBAAwBA,qBAAU,cAAA,IAAA;IAClCC,YAAQd;IACRe,YAASC,YAAAA;IACX,QAAA,YAAA;IAGFC,SAAiB,oBAASC,MAAAA;EAEtBC,CAAAA,CAAAA;YACF1B,QAAc,QAAG,WAAA;AACnB,MAAA,OAAA,QAAA,CAAAA,YAAA;AAEA,IAAAA,QAAM2B,UAAAA;EACN,CAAA;QACEC,iBAAcC,4BAAOjC,IAAAA,QAAAA,MAAAA,CAAAA;SACrBkC;IAGF,UAAA,IAAA,OAAA,MAAA;IAGJ,aAAA,iBAAA,GAAA,OAAA,OAAA,OAAA,SAAA,UAAA,MAAA,OAAA,EAAA,cAAA,cAAA,KAAA;;;",
6
+ "names": ["Effect", "wasmUrl", "ClientService", "Operation", "Context", "Database", "Obj", "getUserFunctionIdInMetadata", "bundleFunction", "initializeBundler", "FunctionsServiceClient", "incrementSemverPatch", "FunctionRuntimeKind", "getSpace", "Deploy", "client", "ClientService", "loaded", "source", "fn", "Effect", "script", "Database", "load", "space", "target", "content", "initializeBundler", "buildResult", "existingFunctionId", "getUserFunctionIdInMetadata", "Obj", "getMeta", "identity", "halo", "Error", "functionsService", "FunctionsServiceClient", "currentVersion", "incrementSemverPatch", "functionId", "entryPoint", "assets", "runtime", "FunctionRuntimeKind", "Operation", "newFunction", "update", "edgeFunctionId", "function", "getURI", "functionUrl"]
7
+ }
@@ -2,10 +2,10 @@ import {
2
2
  deployScript,
3
3
  getFunctionUrl,
4
4
  isScriptDeployed
5
- } from "../chunk-VXDJH6OL.mjs";
5
+ } from "../chunk-INFWOSTM.mjs";
6
6
  import {
7
7
  templates
8
- } from "../chunk-PHKPB5JN.mjs";
8
+ } from "../chunk-WAGQ77UQ.mjs";
9
9
  import "../chunk-J5LGTIGS.mjs";
10
10
 
11
11
  // src/hooks/deploy.ts
@@ -27,7 +27,7 @@ var createDeploy = ({ state, script, space, fn, client, existingFunctionId, t })
27
27
  label: value.error ?? [
28
28
  "no-error.label",
29
29
  {
30
- ns: meta.id
30
+ ns: meta.profile.key
31
31
  }
32
32
  ],
33
33
  icon: "ph--warning-circle--regular",
@@ -57,7 +57,7 @@ var createDeploy = ({ state, script, space, fn, client, existingFunctionId, t })
57
57
  label: [
58
58
  value.deploying ? "publishing.label" : "deploy.label",
59
59
  {
60
- ns: meta.id
60
+ ns: meta.profile.key
61
61
  }
62
62
  ],
63
63
  icon: value.deploying ? "ph--spinner-gap--regular" : "ph--cloud-arrow-up--regular",
@@ -73,7 +73,7 @@ var createDeploy = ({ state, script, space, fn, client, existingFunctionId, t })
73
73
  label: [
74
74
  "copy-link.label",
75
75
  {
76
- ns: meta.id
76
+ ns: meta.profile.key
77
77
  }
78
78
  ],
79
79
  icon: "ph--link--regular",
@@ -189,7 +189,7 @@ var createFormat = (script) => {
189
189
  label: [
190
190
  "format.label",
191
191
  {
192
- ns: meta2.id
192
+ ns: meta2.profile.key
193
193
  }
194
194
  ],
195
195
  icon: "ph--magic-wand--regular"