@dxos/plugin-script 0.8.4-main.406dc2a → 0.8.4-main.548089c

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 (233) hide show
  1. package/dist/lib/browser/DeploymentDialog-MZX4T77L.mjs +14 -0
  2. package/dist/lib/browser/{NotebookContainer-LVGRPFY3.mjs → NotebookContainer-S6GUYCUE.mjs} +216 -82
  3. package/dist/lib/browser/NotebookContainer-S6GUYCUE.mjs.map +7 -0
  4. package/dist/lib/browser/{ScriptContainer-LRTRN7JW.mjs → ScriptContainer-3JQSTDFZ.mjs} +16 -18
  5. package/dist/lib/browser/ScriptContainer-3JQSTDFZ.mjs.map +7 -0
  6. package/dist/lib/browser/{app-graph-builder-DPYULSME.mjs → app-graph-builder-2WR2ATTJ.mjs} +7 -6
  7. package/dist/lib/browser/app-graph-builder-2WR2ATTJ.mjs.map +7 -0
  8. package/dist/lib/browser/{blueprint-definition-ET5KZ46I.mjs → blueprint-definition-6PZWZM2Y.mjs} +3 -1
  9. package/dist/lib/browser/{chunk-ST3ACVUC.mjs → chunk-2G2NA6DQ.mjs} +2 -2
  10. package/dist/lib/browser/{chunk-ST3ACVUC.mjs.map → chunk-2G2NA6DQ.mjs.map} +1 -1
  11. package/dist/lib/browser/{chunk-NM4WQS4F.mjs → chunk-3IJASGG5.mjs} +12 -10
  12. package/dist/lib/browser/chunk-3IJASGG5.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-5JSNQYZZ.mjs +517 -0
  14. package/dist/lib/browser/chunk-5JSNQYZZ.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-EZVXV6DA.mjs → chunk-EB6AXFXO.mjs} +7 -2
  16. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  18. package/dist/lib/browser/{chunk-I3QSGUFJ.mjs → chunk-JRF6FHYQ.mjs} +33 -33
  19. package/dist/lib/browser/chunk-JRF6FHYQ.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-5CYLWXRH.mjs → chunk-LNNCD2H4.mjs} +51 -38
  21. package/dist/lib/browser/chunk-LNNCD2H4.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-N6M34EUC.mjs → chunk-M6KJPUJK.mjs} +3 -4
  23. package/dist/lib/browser/chunk-M6KJPUJK.mjs.map +7 -0
  24. package/dist/lib/browser/{chunk-75LH4EUR.mjs → chunk-RXLF2X2R.mjs} +58 -80
  25. package/dist/lib/browser/chunk-RXLF2X2R.mjs.map +7 -0
  26. package/dist/lib/browser/{chunk-OKXN2N7M.mjs → chunk-UOQ6NCH3.mjs} +2 -2
  27. package/dist/lib/browser/{compiler-G2N2CG63.mjs → compiler-4KHRSX7J.mjs} +11 -23
  28. package/dist/lib/browser/compiler-4KHRSX7J.mjs.map +7 -0
  29. package/dist/lib/browser/index.mjs +27 -33
  30. package/dist/lib/browser/index.mjs.map +3 -3
  31. package/dist/lib/browser/{intent-resolver-JLU7DVLQ.mjs → intent-resolver-PUMSYKVB.mjs} +19 -20
  32. package/dist/lib/browser/intent-resolver-PUMSYKVB.mjs.map +7 -0
  33. package/dist/lib/browser/meta.json +1 -1
  34. package/dist/lib/browser/{react-surface-76SDTUYG.mjs → react-surface-DLRMWFTN.mjs} +22 -21
  35. package/dist/lib/browser/react-surface-DLRMWFTN.mjs.map +7 -0
  36. package/dist/lib/browser/{settings-ERFKVNUK.mjs → settings-LNLSTZM4.mjs} +5 -4
  37. package/dist/lib/browser/templates/index.mjs +2 -1
  38. package/dist/lib/browser/types/index.mjs +6 -5
  39. package/dist/lib/node-esm/DeploymentDialog-GL5AUWMR.mjs +15 -0
  40. package/dist/lib/node-esm/DeploymentDialog-GL5AUWMR.mjs.map +7 -0
  41. package/dist/lib/node-esm/{NotebookContainer-QY5NJGJI.mjs → NotebookContainer-RTUHQN25.mjs} +216 -82
  42. package/dist/lib/node-esm/NotebookContainer-RTUHQN25.mjs.map +7 -0
  43. package/dist/lib/node-esm/{ScriptContainer-SVXCSLNH.mjs → ScriptContainer-SSLISMLS.mjs} +16 -18
  44. package/dist/lib/node-esm/ScriptContainer-SSLISMLS.mjs.map +7 -0
  45. package/dist/lib/node-esm/{app-graph-builder-UXJGHXSL.mjs → app-graph-builder-NCVLUL5R.mjs} +7 -6
  46. package/dist/lib/node-esm/app-graph-builder-NCVLUL5R.mjs.map +7 -0
  47. package/dist/lib/node-esm/{blueprint-definition-AIYFOT7Q.mjs → blueprint-definition-5R6YCSZZ.mjs} +2 -1
  48. package/dist/lib/{browser/blueprint-definition-ET5KZ46I.mjs.map → node-esm/blueprint-definition-5R6YCSZZ.mjs.map} +1 -1
  49. package/dist/lib/node-esm/{chunk-NUXZQQ6P.mjs → chunk-55JZVM6K.mjs} +2 -2
  50. package/dist/lib/node-esm/{chunk-2GVTWESW.mjs → chunk-57JA6XL5.mjs} +2 -2
  51. package/dist/lib/node-esm/{chunk-2GVTWESW.mjs.map → chunk-57JA6XL5.mjs.map} +1 -1
  52. package/dist/lib/node-esm/{chunk-SMFPSKQT.mjs → chunk-ASPYIAYG.mjs} +33 -33
  53. package/dist/lib/node-esm/chunk-ASPYIAYG.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-VRSDE4CI.mjs → chunk-HDKR5WCD.mjs} +3 -4
  55. package/dist/lib/node-esm/chunk-HDKR5WCD.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  57. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-OG2SIKHE.mjs → chunk-IBV2DR36.mjs} +7 -2
  59. package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-IQTBVH4L.mjs +518 -0
  61. package/dist/lib/node-esm/chunk-IQTBVH4L.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-4X375PGY.mjs → chunk-NNHWLRHT.mjs} +51 -38
  63. package/dist/lib/node-esm/chunk-NNHWLRHT.mjs.map +7 -0
  64. package/dist/lib/node-esm/{chunk-67OVZHI3.mjs → chunk-Q5XB7DD4.mjs} +58 -80
  65. package/dist/lib/node-esm/chunk-Q5XB7DD4.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-C2ORIPKH.mjs → chunk-RIE676OW.mjs} +12 -10
  67. package/dist/lib/node-esm/chunk-RIE676OW.mjs.map +7 -0
  68. package/dist/lib/node-esm/{compiler-PLDAZ5GJ.mjs → compiler-DU5NQISX.mjs} +11 -23
  69. package/dist/lib/node-esm/compiler-DU5NQISX.mjs.map +7 -0
  70. package/dist/lib/node-esm/index.mjs +27 -33
  71. package/dist/lib/node-esm/index.mjs.map +3 -3
  72. package/dist/lib/node-esm/{intent-resolver-SFGTIFOG.mjs → intent-resolver-JK7J6JQB.mjs} +19 -20
  73. package/dist/lib/node-esm/intent-resolver-JK7J6JQB.mjs.map +7 -0
  74. package/dist/lib/node-esm/meta.json +1 -1
  75. package/dist/lib/node-esm/{react-surface-SHEBNW4R.mjs → react-surface-BPQLLTT4.mjs} +22 -21
  76. package/dist/lib/node-esm/react-surface-BPQLLTT4.mjs.map +7 -0
  77. package/dist/lib/node-esm/{settings-5TYXQ42N.mjs → settings-IUFMOCXY.mjs} +5 -4
  78. package/dist/lib/{browser/settings-ERFKVNUK.mjs.map → node-esm/settings-IUFMOCXY.mjs.map} +1 -1
  79. package/dist/lib/node-esm/templates/index.mjs +2 -1
  80. package/dist/lib/node-esm/types/index.mjs +6 -5
  81. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  82. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  85. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +2 -2
  86. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  87. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +0 -3
  88. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  89. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +1 -1
  90. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  91. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -1
  92. package/dist/types/src/components/NotebookContainer.stories.d.ts +7 -4
  93. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -1
  94. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +2 -1
  95. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  96. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +1 -1
  97. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  98. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +0 -3
  99. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  100. package/dist/types/src/components/ScriptContainer.d.ts +2 -2
  101. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  102. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +5 -6
  103. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  104. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +1 -4
  105. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  106. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +2 -2
  107. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  108. package/dist/types/src/components/TestPanel/TestContainer.d.ts +2 -2
  109. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  110. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  111. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +1 -1
  112. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  113. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +1 -1
  114. package/dist/types/src/hooks/deploy.d.ts +8 -7
  115. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  116. package/dist/types/src/hooks/format.d.ts +2 -2
  117. package/dist/types/src/hooks/format.d.ts.map +1 -1
  118. package/dist/types/src/hooks/template.d.ts +4 -14
  119. package/dist/types/src/hooks/template.d.ts.map +1 -1
  120. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  121. package/dist/types/src/meta.d.ts.map +1 -1
  122. package/dist/types/src/notebook/{notebook.d.ts → compute-graph.d.ts} +13 -3
  123. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
  124. package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
  125. package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
  126. package/dist/types/src/notebook/eval.d.ts +1 -1
  127. package/dist/types/src/notebook/eval.d.ts.map +1 -1
  128. package/dist/types/src/notebook/index.d.ts +1 -1
  129. package/dist/types/src/notebook/index.d.ts.map +1 -1
  130. package/dist/types/src/testing/data.d.ts +2 -18
  131. package/dist/types/src/testing/data.d.ts.map +1 -1
  132. package/dist/types/src/translations.d.ts +2 -3
  133. package/dist/types/src/translations.d.ts.map +1 -1
  134. package/dist/types/src/types/Notebook.d.ts +31 -0
  135. package/dist/types/src/types/Notebook.d.ts.map +1 -0
  136. package/dist/types/src/types/actions.d.ts +5 -17
  137. package/dist/types/src/types/actions.d.ts.map +1 -1
  138. package/dist/types/src/types/index.d.ts +2 -1
  139. package/dist/types/src/types/index.d.ts.map +1 -1
  140. package/dist/types/src/types/types.d.ts +6 -0
  141. package/dist/types/src/types/types.d.ts.map +1 -0
  142. package/dist/types/src/util/deploy.d.ts +4 -4
  143. package/dist/types/src/util/deploy.d.ts.map +1 -1
  144. package/dist/types/src/util/functions.d.ts +3 -3
  145. package/dist/types/src/util/functions.d.ts.map +1 -1
  146. package/dist/types/tsconfig.tsbuildinfo +1 -1
  147. package/package.json +61 -56
  148. package/src/ScriptPlugin.tsx +6 -10
  149. package/src/capabilities/app-graph-builder.ts +6 -6
  150. package/src/capabilities/artifact-definition.ts +1 -2
  151. package/src/capabilities/compiler.ts +1 -1
  152. package/src/capabilities/intent-resolver.ts +6 -7
  153. package/src/capabilities/react-surface.tsx +13 -12
  154. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +8 -3
  155. package/src/components/DeploymentDialog/DeploymentDialog.tsx +30 -13
  156. package/src/components/FrameContainer/FrameContainer.tsx +1 -1
  157. package/src/components/NotebookContainer.stories.tsx +58 -7
  158. package/src/components/NotebookContainer.tsx +150 -11
  159. package/src/components/NotebookStack/NotebookCell.tsx +63 -66
  160. package/src/components/NotebookStack/NotebookStack.stories.tsx +24 -2
  161. package/src/components/NotebookStack/NotebookStack.tsx +12 -5
  162. package/src/components/ScriptContainer.tsx +3 -3
  163. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +6 -6
  164. package/src/components/ScriptToolbar/ScriptToolbar.tsx +12 -12
  165. package/src/components/Settings/ScriptObjectSettings.tsx +21 -10
  166. package/src/components/TestPanel/TestContainer.tsx +2 -2
  167. package/src/components/TestPanel/TestPanel.tsx +36 -13
  168. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +1 -1
  169. package/src/components/TypescriptEditor/TypescriptEditor.tsx +6 -11
  170. package/src/hooks/deploy.ts +6 -6
  171. package/src/hooks/format.ts +2 -2
  172. package/src/hooks/template.ts +5 -15
  173. package/src/hooks/useCreateAndDeployScriptTemplates.ts +8 -4
  174. package/src/meta.ts +6 -2
  175. package/src/notebook/{notebook.test.ts → compute-graph.test.ts} +19 -19
  176. package/src/notebook/{notebook.ts → compute-graph.ts} +32 -9
  177. package/src/notebook/eval.ts +1 -1
  178. package/src/notebook/index.ts +1 -1
  179. package/src/templates/gmail.ts +1 -2
  180. package/src/testing/data.ts +34 -9
  181. package/src/translations.ts +2 -3
  182. package/src/types/Notebook.ts +41 -0
  183. package/src/types/actions.ts +3 -3
  184. package/src/types/index.ts +2 -1
  185. package/src/types/types.ts +15 -0
  186. package/src/util/deploy.ts +13 -17
  187. package/src/util/functions.ts +5 -4
  188. package/dist/lib/browser/DeploymentDialog-65TWT6S5.mjs +0 -13
  189. package/dist/lib/browser/NotebookContainer-LVGRPFY3.mjs.map +0 -7
  190. package/dist/lib/browser/ScriptContainer-LRTRN7JW.mjs.map +0 -7
  191. package/dist/lib/browser/app-graph-builder-DPYULSME.mjs.map +0 -7
  192. package/dist/lib/browser/chunk-5CYLWXRH.mjs.map +0 -7
  193. package/dist/lib/browser/chunk-75LH4EUR.mjs.map +0 -7
  194. package/dist/lib/browser/chunk-E7DXDICD.mjs +0 -282
  195. package/dist/lib/browser/chunk-E7DXDICD.mjs.map +0 -7
  196. package/dist/lib/browser/chunk-EZVXV6DA.mjs.map +0 -7
  197. package/dist/lib/browser/chunk-I3QSGUFJ.mjs.map +0 -7
  198. package/dist/lib/browser/chunk-JO2O7W6J.mjs +0 -254
  199. package/dist/lib/browser/chunk-JO2O7W6J.mjs.map +0 -7
  200. package/dist/lib/browser/chunk-N6M34EUC.mjs.map +0 -7
  201. package/dist/lib/browser/chunk-NM4WQS4F.mjs.map +0 -7
  202. package/dist/lib/browser/compiler-G2N2CG63.mjs.map +0 -7
  203. package/dist/lib/browser/intent-resolver-JLU7DVLQ.mjs.map +0 -7
  204. package/dist/lib/browser/react-surface-76SDTUYG.mjs.map +0 -7
  205. package/dist/lib/node-esm/DeploymentDialog-I63ZC2HH.mjs +0 -14
  206. package/dist/lib/node-esm/NotebookContainer-QY5NJGJI.mjs.map +0 -7
  207. package/dist/lib/node-esm/ScriptContainer-SVXCSLNH.mjs.map +0 -7
  208. package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs.map +0 -7
  209. package/dist/lib/node-esm/chunk-4X375PGY.mjs.map +0 -7
  210. package/dist/lib/node-esm/chunk-67OVZHI3.mjs.map +0 -7
  211. package/dist/lib/node-esm/chunk-C2ORIPKH.mjs.map +0 -7
  212. package/dist/lib/node-esm/chunk-OG2SIKHE.mjs.map +0 -7
  213. package/dist/lib/node-esm/chunk-SMFPSKQT.mjs.map +0 -7
  214. package/dist/lib/node-esm/chunk-VRSDE4CI.mjs.map +0 -7
  215. package/dist/lib/node-esm/chunk-VZAFGLD7.mjs +0 -283
  216. package/dist/lib/node-esm/chunk-VZAFGLD7.mjs.map +0 -7
  217. package/dist/lib/node-esm/chunk-YW36TZ7K.mjs +0 -255
  218. package/dist/lib/node-esm/chunk-YW36TZ7K.mjs.map +0 -7
  219. package/dist/lib/node-esm/compiler-PLDAZ5GJ.mjs.map +0 -7
  220. package/dist/lib/node-esm/intent-resolver-SFGTIFOG.mjs.map +0 -7
  221. package/dist/lib/node-esm/react-surface-SHEBNW4R.mjs.map +0 -7
  222. package/dist/types/src/notebook/notebook.d.ts.map +0 -1
  223. package/dist/types/src/notebook/notebook.test.d.ts +0 -2
  224. package/dist/types/src/notebook/notebook.test.d.ts.map +0 -1
  225. package/dist/types/src/types/schema.d.ts +0 -61
  226. package/dist/types/src/types/schema.d.ts.map +0 -1
  227. package/src/types/schema.ts +0 -48
  228. /package/dist/lib/browser/{DeploymentDialog-65TWT6S5.mjs.map → DeploymentDialog-MZX4T77L.mjs.map} +0 -0
  229. /package/dist/lib/{node-esm/blueprint-definition-AIYFOT7Q.mjs.map → browser/blueprint-definition-6PZWZM2Y.mjs.map} +0 -0
  230. /package/dist/lib/{node-esm/DeploymentDialog-I63ZC2HH.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
  231. /package/dist/lib/browser/{chunk-OKXN2N7M.mjs.map → chunk-UOQ6NCH3.mjs.map} +0 -0
  232. /package/dist/lib/{node-esm/settings-5TYXQ42N.mjs.map → browser/settings-LNLSTZM4.mjs.map} +0 -0
  233. /package/dist/lib/node-esm/{chunk-NUXZQQ6P.mjs.map → chunk-55JZVM6K.mjs.map} +0 -0
@@ -1,28 +1,28 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
+ getAccessCredential,
3
4
  useDeployState,
4
5
  useToolbarState
5
- } from "./chunk-VZAFGLD7.mjs";
6
- import {
7
- getAccessCredential
8
- } from "./chunk-YW36TZ7K.mjs";
6
+ } from "./chunk-IQTBVH4L.mjs";
9
7
  import {
10
8
  meta
11
- } from "./chunk-OG2SIKHE.mjs";
9
+ } from "./chunk-IBV2DR36.mjs";
12
10
 
13
11
  // src/components/Settings/ScriptObjectSettings.tsx
14
12
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
15
13
  import { Octokit } from "@octokit/core";
16
14
  import React, { useCallback, useState } from "react";
17
15
  import { ToolId } from "@dxos/ai";
18
- import { SettingsAction, createIntent, useIntentDispatcher } from "@dxos/app-framework";
16
+ import { SettingsAction, createIntent } from "@dxos/app-framework";
17
+ import { useIntentDispatcher } from "@dxos/app-framework/react";
19
18
  import { Blueprint, Template } from "@dxos/blueprints";
20
- import { FunctionType, getInvocationUrl, getUserFunctionIdInMetadata } from "@dxos/functions";
19
+ import { Function, getUserFunctionIdInMetadata } from "@dxos/functions";
20
+ import { getInvocationUrl } from "@dxos/functions-runtime";
21
21
  import { log } from "@dxos/log";
22
22
  import { useClient } from "@dxos/react-client";
23
23
  import { Filter, Ref, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
24
24
  import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from "@dxos/react-ui";
25
- import { DataType } from "@dxos/schema";
25
+ import { AccessToken } from "@dxos/types";
26
26
  import { kebabize } from "@dxos/util";
27
27
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/Settings/ScriptObjectSettings.tsx";
28
28
  var ScriptObjectSettings = ({ object }) => {
@@ -59,7 +59,7 @@ var BlueprintEditor = ({ object }) => {
59
59
  try {
60
60
  const { t } = useTranslation(meta.id);
61
61
  const space = getSpace(object);
62
- const [fn] = useQuery(space, Filter.type(FunctionType, {
62
+ const [fn] = useQuery(space, Filter.type(Function.Function, {
63
63
  source: Ref.make(object)
64
64
  }));
65
65
  const blueprints = useQuery(space, Filter.type(Blueprint.Blueprint));
@@ -157,7 +157,7 @@ var Binding = ({ object }) => {
157
157
  const { t } = useTranslation(meta.id);
158
158
  const client = useClient();
159
159
  const space = getSpace(object);
160
- const [fn] = useQuery(space, Filter.type(FunctionType, {
160
+ const [fn] = useQuery(space, Filter.type(Function.Function, {
161
161
  source: Ref.make(object)
162
162
  }));
163
163
  const functionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
@@ -215,7 +215,7 @@ var Publishing = ({ object }) => {
215
215
  const { t } = useTranslation(meta.id);
216
216
  const { dispatchPromise: dispatch } = useIntentDispatcher();
217
217
  const space = getSpace(object);
218
- const [githubToken] = useQuery(space, Filter.type(DataType.AccessToken, {
218
+ const [githubToken] = useQuery(space, Filter.type(AccessToken.AccessToken, {
219
219
  source: "github.com"
220
220
  }));
221
221
  const gistKey = getMeta(object).keys.find(({ source }) => source === "github.com");
@@ -238,7 +238,7 @@ var Publishing = ({ object }) => {
238
238
  } catch (err) {
239
239
  log.catch(err, void 0, {
240
240
  F: __dxlog_file,
241
- L: 222,
241
+ L: 228,
242
242
  S: void 0,
243
243
  C: (f, a) => f(...a)
244
244
  });
@@ -483,7 +483,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
483
483
  if (err.name !== "AbortError") {
484
484
  log2.catch(err, void 0, {
485
485
  F: __dxlog_file2,
486
- L: 147,
486
+ L: 162,
487
487
  S: void 0,
488
488
  C: (f, a) => f(...a)
489
489
  });
@@ -497,7 +497,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
497
497
  });
498
498
  log2.catch(err, void 0, {
499
499
  F: __dxlog_file2,
500
- L: 154,
500
+ L: 169,
501
501
  S: void 0,
502
502
  C: (f, a) => f(...a)
503
503
  });
@@ -507,32 +507,32 @@ var TestPanel = ({ classNames, functionUrl }) => {
507
507
  }
508
508
  };
509
509
  return /* @__PURE__ */ React3.createElement("div", {
510
- className: mx("flex flex-col h-full overflow-hidden", classNames)
510
+ className: mx("flex flex-col bs-full overflow-hidden", classNames)
511
511
  }, /* @__PURE__ */ React3.createElement(MessageThread, {
512
512
  ref: scrollerRef,
513
513
  state,
514
514
  result,
515
515
  history
516
- }), /* @__PURE__ */ React3.createElement(Toolbar.Root, {
517
- classNames: "p-2"
518
- }, /* @__PURE__ */ React3.createElement(Input2.Root, null, /* @__PURE__ */ React3.createElement(Input2.TextInput, {
516
+ }), /* @__PURE__ */ React3.createElement(Toolbar.Root, null, /* @__PURE__ */ React3.createElement(Input2.Root, null, /* @__PURE__ */ React3.createElement(Input2.TextInput, {
519
517
  ref: inputRef,
520
518
  autoFocus: true,
521
519
  placeholder: t("function request placeholder"),
522
520
  value: input,
523
521
  onChange: (ev) => setInput(ev.target.value),
524
522
  onKeyDown: (ev) => ev.key === "Enter" && handleRequest(input)
525
- })), /* @__PURE__ */ React3.createElement(Toolbar.Button, {
526
- onClick: () => handleRequest(input)
527
- }, /* @__PURE__ */ React3.createElement(Icon, {
523
+ })), /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
528
524
  icon: "ph--play--regular",
529
- size: 4
530
- })), /* @__PURE__ */ React3.createElement(Toolbar.Button, {
531
- onClick: () => state ? handleStop() : handleClear()
532
- }, /* @__PURE__ */ React3.createElement(Icon, {
525
+ size: 4,
526
+ label: "Execute",
527
+ iconOnly: true,
528
+ onClick: () => handleRequest(input)
529
+ }), /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
533
530
  icon: state ? "ph--stop--regular" : "ph--trash--regular",
534
- size: 4
535
- }))));
531
+ size: 4,
532
+ label: state ? "Stop" : "Clear",
533
+ iconOnly: true,
534
+ onClick: () => state ? handleStop() : handleClear()
535
+ })));
536
536
  } finally {
537
537
  _effect.f();
538
538
  }
@@ -542,7 +542,7 @@ var MessageThread = /* @__PURE__ */ forwardRef(({ state, history, result }, forw
542
542
  try {
543
543
  return /* @__PURE__ */ React3.createElement("div", {
544
544
  ref: forwardedRef,
545
- className: "flex flex-col gap-6 h-full p-2 overflow-x-hidden overflow-y-auto"
545
+ className: "flex flex-col gap-6 bs-full p-2 overflow-x-hidden overflow-y-auto"
546
546
  }, history.map((message, i) => /* @__PURE__ */ React3.createElement("div", {
547
547
  key: i,
548
548
  className: "grid grid-cols-[2rem_1fr_2rem]"
@@ -580,7 +580,7 @@ var MessageItem = ({ classNames, message }) => {
580
580
  var _effect = _useSignals3();
581
581
  try {
582
582
  const { type, text, data, error } = message;
583
- const wrapper = "p-1 px-2 rounded-md bg-hoverSurface overflow-auto";
583
+ const wrapper = "p-1 pli-2 rounded-md bg-hoverSurface overflow-auto";
584
584
  return /* @__PURE__ */ React3.createElement("div", {
585
585
  className: mx("flex", type === "request" ? "ml-[1rem] justify-end" : "mr-[1rem]", classNames)
586
586
  }, error && /* @__PURE__ */ React3.createElement("div", {
@@ -630,9 +630,9 @@ var TestContainer = ({ script }) => {
630
630
 
631
631
  // src/components/index.ts
632
632
  import { lazy } from "react";
633
- var ScriptContainer = lazy(() => import("./ScriptContainer-SVXCSLNH.mjs"));
634
- var DeploymentDialog = lazy(() => import("./DeploymentDialog-I63ZC2HH.mjs"));
635
- var NotebookContainer = lazy(() => import("./NotebookContainer-QY5NJGJI.mjs"));
633
+ var ScriptContainer = lazy(() => import("./ScriptContainer-SSLISMLS.mjs"));
634
+ var DeploymentDialog = lazy(() => import("./DeploymentDialog-GL5AUWMR.mjs"));
635
+ var NotebookContainer = lazy(() => import("./NotebookContainer-RTUHQN25.mjs"));
636
636
 
637
637
  export {
638
638
  ScriptObjectSettings,
@@ -644,4 +644,4 @@ export {
644
644
  DeploymentDialog,
645
645
  NotebookContainer
646
646
  };
647
- //# sourceMappingURL=chunk-SMFPSKQT.mjs.map
647
+ //# sourceMappingURL=chunk-ASPYIAYG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/Settings/ScriptObjectSettings.tsx", "../../../src/components/Settings/ScriptPluginSettings.tsx", "../../../src/components/TestPanel/TestPanel.tsx", "../../../src/components/TestPanel/TestContainer.tsx", "../../../src/components/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Octokit } from '@octokit/core';\nimport React, { type ChangeEvent, useCallback, useState } from 'react';\n\nimport { ToolId } from '@dxos/ai';\nimport { SettingsAction, createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher } from '@dxos/app-framework/react';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { getInvocationUrl } from '@dxos/functions-runtime';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, Ref, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from '@dxos/react-ui';\nimport { AccessToken } from '@dxos/types';\nimport { kebabize } from '@dxos/util';\n\nimport { meta } from '../../meta';\n\nexport type ScriptObjectSettingsProps = {\n object: Script.Script;\n};\n\nexport const ScriptObjectSettings = ({ object }: ScriptObjectSettingsProps) => {\n return (\n <>\n <Binding object={object} />\n <BlueprintEditor object={object} />\n <Publishing object={object} />\n </>\n );\n};\n\nexport const ScriptProperties = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n return (\n <Input.Root>\n <Input.Label>{t('description label')}</Input.Label>\n <Input.TextInput\n placeholder={t('description placeholder')}\n value={object.description ?? ''}\n onChange={(event) => {\n object.description = event.target.value;\n }}\n />\n </Input.Root>\n );\n};\n\nconst BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const space = getSpace(object);\n const [fn] = useQuery(space, Filter.type(Function.Function, { source: Ref.make(object) }));\n const blueprints = useQuery(space, Filter.type(Blueprint.Blueprint));\n\n const [creating, setCreating] = useState(false);\n const [instructions, setInstructions] = useState<string>(`You can run the script \"${object.name ?? 'script'}\".`);\n const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? 'script')}`;\n const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);\n\n useAsyncEffect(async () => {\n if (!existingBlueprint) {\n return;\n }\n const source = await existingBlueprint.instructions.source.load();\n setInstructions(source.content ?? '');\n }, [existingBlueprint]);\n\n const handleSave = useCallback(async () => {\n if (!space) {\n return;\n }\n\n setCreating(true);\n try {\n if (existingBlueprint) {\n const text = await existingBlueprint.instructions.source.load();\n text.content = instructions;\n if (fn?.key) {\n const toolId = ToolId.make(fn.key);\n if (!existingBlueprint.tools?.includes(toolId)) {\n existingBlueprint.tools = [...(existingBlueprint.tools ?? []), toolId];\n }\n }\n } else if (fn?.key) {\n space.db.add(\n Blueprint.make({\n key: blueprintKey,\n name: object.name ?? 'Script',\n instructions: Template.make({\n source: instructions,\n }),\n tools: [ToolId.make(fn.key)],\n }),\n );\n }\n await space.db.flush();\n } finally {\n setCreating(false);\n }\n }, [space, existingBlueprint, fn, blueprintKey, object.name, instructions]);\n\n return (\n <div className='flex flex-col gap-4 mlb-cardSpacingBlock'>\n <div>\n <h2>{t('blueprint editor label', { default: 'Blueprint' })}</h2>\n <p className='text-description text-sm'>\n {t('blueprint editor description', {\n default: 'Create a blueprint that exposes this script as a tool.',\n })}\n </p>\n </div>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('blueprint instructions label', { default: 'Instructions' })}</Input.Label>\n <Input.TextArea\n placeholder={t('blueprint instructions placeholder', {\n default: 'Describe how this tool should be used.',\n })}\n rows={6}\n value={instructions}\n onChange={(event) => setInstructions(event.target.value)}\n classNames='resize-y'\n />\n </div>\n </Input.Root>\n <div className='flex justify-end gap-2'>\n <Button disabled={(!existingBlueprint && !fn?.key) || creating} onClick={handleSave}>\n {t(creating ? 'creating label' : 'create blueprint label', {\n default: creating ? 'Creating…' : 'Create blueprint',\n })}\n </Button>\n </div>\n </div>\n );\n};\n\nconst Binding = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n const space = getSpace(object);\n const [fn] = useQuery(space, Filter.type(Function.Function, { source: Ref.make(object) }));\n\n const functionId = fn && getUserFunctionIdInMetadata(getMeta(fn));\n const functionUrl =\n functionId &&\n getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: space?.id,\n });\n\n const [binding, setBinding] = useControlledState(fn?.binding ?? '');\n const handleBindingChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setBinding(event.target.value);\n },\n [setBinding],\n );\n\n const handleBindingBlur = useCallback(() => {\n fn.binding = binding;\n }, [fn, binding]);\n\n if (!fn || !functionUrl) {\n return null;\n }\n\n // TODO(burdon): Use form.\n return (\n <div role='form' className='flex flex-col gap-2 mlb-cardSpacingBlock'>\n <h2>{t('remote function settings heading')}</h2>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('function url label')}</Input.Label>\n <div role='none' className='flex gap-1'>\n <Input.TextInput\n disabled\n value={functionUrl}\n onChange={(event) => {\n fn.name = event.target.value;\n }}\n />\n <Clipboard.IconButton value={functionUrl} />\n </div>\n </div>\n </Input.Root>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('function binding label')}</Input.Label>\n <Input.TextInput\n placeholder={t('function binding placeholder')}\n value={binding}\n onChange={handleBindingChange}\n onBlur={handleBindingBlur}\n />\n </div>\n </Input.Root>\n </div>\n );\n};\n\n// TODO(burdon): Move to separate tab?\nconst Publishing = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const space = getSpace(object);\n const [githubToken] = useQuery(space, Filter.type(AccessToken.AccessToken, { source: 'github.com' }));\n const gistKey = getMeta(object).keys.find(({ source }) => source === 'github.com');\n const [gistUrl, setGistUrl] = useState<string | undefined>();\n\n useAsyncEffect(async () => {\n const token = githubToken?.token;\n const gistId = gistKey?.id;\n if (!token || !gistId) {\n setGistUrl(undefined);\n return;\n }\n\n try {\n const octokit = new Octokit({ auth: githubToken.token });\n const response = await octokit.request('GET /gists/{gist_id}', {\n gist_id: gistId,\n });\n setGistUrl(response.data.html_url);\n } catch (err) {\n log.catch(err);\n setGistUrl(undefined);\n }\n }, [githubToken, gistKey]);\n\n const handleOpenTokenManager = useCallback(\n () =>\n dispatch(\n createIntent(SettingsAction.Open, {\n plugin: 'dxos.org/plugin/token-manager',\n }),\n ),\n [],\n );\n\n const [publishing, setPublishing] = useState(false);\n const handlePublish = useCallback(async () => {\n setPublishing(true);\n const octokit = new Octokit({ auth: githubToken.token });\n const source = await object.source.load();\n const filename = object.name ? kebabize(object.name) : 'composer-script';\n const files = { [`${filename}.ts`]: { content: source.content } };\n\n try {\n // TODO(wittjosiah): Factor out to intent.\n const meta = getMeta(object);\n const githubKey = meta.keys.find(({ source }) => source === 'github.com');\n const gistId = githubKey?.id;\n if (gistId) {\n await octokit.request('PATCH /gists/{gist_id}', {\n gist_id: gistId,\n files,\n });\n } else {\n const response = await octokit.request('POST /gists', {\n public: true,\n files,\n });\n if (response.data.id) {\n meta.keys.push({ source: 'github.com', id: response.data.id });\n }\n }\n } finally {\n setPublishing(false);\n }\n }, [object, githubToken]);\n\n return (\n <div className='flex flex-col gap-4 mlb-cardSpacingBlock'>\n <div>\n <h2>{t('script publish settings label')}</h2>\n <p className='text-description text-sm'>{t('script publish settings description')}</p>\n </div>\n {!githubToken && (\n <div className='flex flex-col gap-2'>\n <span>{t('no github token label')}</span>\n <Button onClick={handleOpenTokenManager}>{t('open token manager label')}</Button>\n </div>\n )}\n {githubToken && (\n <div className='flex justify-end gap-2'>\n {gistUrl && <Clipboard.IconButton value={gistUrl} />}\n <Button disabled={publishing} onClick={handlePublish}>\n {t(publishing ? 'publishing label' : 'publish label')}\n </Button>\n </div>\n )}\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useClient } from '@dxos/react-client';\nimport { Button, Select, useTranslation } from '@dxos/react-ui';\nimport { type EditorInputMode, EditorInputModes } from '@dxos/react-ui-editor';\nimport { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';\n\nimport { meta } from '../../meta';\nimport { type ScriptSettings } from '../../types';\nimport { getAccessCredential } from '../../util';\n\nexport const ScriptPluginSettings = ({ settings }: { settings: ScriptSettings }) => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n\n // TODO(burdon): Check token.\n const handleAuthenticate = async () => {\n const { identityKey } = client.halo.identity.get()!;\n await client.halo.writeCredentials([getAccessCredential(identityKey)]);\n };\n\n return (\n <ControlPage>\n <ControlSection title={t('settings title', { ns: meta.id })}>\n <ControlGroup>\n {/* TODO(wittjosiah): Hide outside of dev environments. */}\n <ControlItemInput title={t('authenticate action label')}>\n <Button onClick={handleAuthenticate}>{t('authenticate button label')}</Button>\n </ControlItemInput>\n\n <ControlItemInput title={t('editor input mode label')}>\n <Select.Root\n value={settings.editorInputMode ?? 'default'}\n onValueChange={(value) => {\n settings.editorInputMode = value as EditorInputMode;\n }}\n >\n <Select.TriggerButton placeholder={t('select editor input mode placeholder')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {EditorInputModes.map((mode) => (\n <Select.Option key={mode} value={mode}>\n {t(`settings editor input mode ${mode} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n </ControlGroup>\n </ControlSection>\n </ControlPage>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef, useEffect, useRef, useState } from 'react';\n\nimport { log } from '@dxos/log';\nimport { Avatar, Icon, Input, type ThemedClassName, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { errorText, mx } from '@dxos/react-ui-theme';\n\nimport { meta } from '../../meta';\n\ntype State = 'pending' | 'responding';\n\n/**\n * Request or response.\n */\ntype Message = {\n type: 'request' | 'response';\n text?: string;\n data?: any;\n error?: Error;\n};\n\nexport type TestPanelProps = ThemedClassName<{\n functionUrl?: string;\n}>;\n\n// TODO(burdon): Need persistent history (currently lost when switching tabs)..\nexport const TestPanel = ({ classNames, functionUrl }: TestPanelProps) => {\n const { t } = useTranslation(meta.id);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [input, setInput] = useState('');\n const [result, setResult] = useState('');\n const [state, setState] = useState<State | null>(null);\n\n // TODO(burdon): Persistent history (thread).\n const [history, setHistory] = useState<Message[]>([]);\n\n const scrollerRef = useRef<HTMLDivElement>(null);\n const handleScroll = () => {\n if (scrollerRef.current) {\n scrollerRef.current.scrollTop = scrollerRef.current.scrollHeight;\n }\n };\n\n const controller = useRef<AbortController>(null);\n useEffect(() => {\n return () => {\n handleStop();\n };\n }, []);\n\n const handleStop = () => {\n controller.current?.abort('stop');\n controller.current = null;\n };\n\n const handleClear = () => {\n handleStop();\n setInput('');\n setResult('');\n setHistory([]);\n inputRef.current?.focus();\n };\n\n const handleResponse = ({\n text,\n data,\n error,\n }: {\n text?: string;\n data?: any;\n error?: Error;\n } = {}) => {\n controller.current = null;\n setHistory((history) => [...history, { type: 'response', text, data, error } satisfies Message]);\n setResult('');\n setState(null);\n handleScroll();\n };\n\n const handleRequest = async (input: string) => {\n // Returns a promise that resolves when a value has been received.\n try {\n setState('pending');\n\n let data = null;\n // Detect JSON input.\n if (input.charAt(0) === '{') {\n try {\n const validJsonString = input.replace(/'/g, '\"').replace(/([{,]\\s*)([a-zA-Z0-9_]+)(\\s*:)/g, '$1\"$2\"$3');\n data = JSON.parse(validJsonString);\n input = JSON.stringify(data, null, 2);\n } catch (err) {\n inputRef.current?.focus();\n return;\n }\n }\n\n setInput('');\n setResult('');\n setHistory((history) => [...history, { type: 'request', text: input }]);\n setTimeout(() => {\n handleScroll();\n });\n\n // Throws DOMException when aborted.\n controller.current = new AbortController();\n const response = await fetch(functionUrl!, {\n signal: controller.current.signal,\n method: 'POST',\n body: input,\n headers: {\n 'Content-Type': data ? 'application/json' : 'text/plain',\n },\n });\n\n // Check for error.\n if (!response.ok) {\n const text = await response.text();\n handleResponse({\n error: new Error(text || response.statusText || String(response.status)),\n });\n return;\n }\n\n // Check for JSON.\n const contentType = response.headers.get('content-type');\n if (contentType === 'application/json') {\n const data = await response.json();\n handleResponse({ data });\n return;\n }\n\n // Text (including streaming).\n setState('responding');\n let text = '';\n const reader = response.body!.getReader();\n const pump = async ({ done, value }: ReadableStreamReadResult<Uint8Array>): Promise<void> => {\n text = text + new TextDecoder().decode(value);\n if (!controller.current || done) {\n handleResponse({ text });\n return;\n }\n\n setResult(text);\n setTimeout(() => {\n handleScroll();\n });\n\n return reader.read().then(pump);\n };\n\n void reader\n .read()\n .then(pump)\n .catch((err) => {\n if (err.name !== 'AbortError') {\n log.catch(err);\n }\n });\n } catch (err: any) {\n if (err !== 'stop') {\n const error = err instanceof Error ? err : new Error(err);\n handleResponse({ error });\n log.catch(err);\n } else {\n handleResponse();\n }\n }\n };\n\n return (\n <div className={mx('flex flex-col bs-full overflow-hidden', classNames)}>\n {/* TODO(burdon): Replace with Thread. */}\n <MessageThread ref={scrollerRef} state={state} result={result} history={history} />\n {/* TODO(burdon): Replace with Form based on the function's input schema. */}\n <Toolbar.Root>\n <Input.Root>\n <Input.TextInput\n ref={inputRef}\n autoFocus\n placeholder={t('function request placeholder')}\n value={input}\n onChange={(ev) => setInput(ev.target.value)}\n onKeyDown={(ev) => ev.key === 'Enter' && handleRequest(input)}\n />\n </Input.Root>\n <Toolbar.IconButton\n icon='ph--play--regular'\n size={4}\n label='Execute'\n iconOnly\n onClick={() => handleRequest(input)}\n />\n <Toolbar.IconButton\n icon={state ? 'ph--stop--regular' : 'ph--trash--regular'}\n size={4}\n label={state ? 'Stop' : 'Clear'}\n iconOnly\n onClick={() => (state ? handleStop() : handleClear())}\n />\n </Toolbar.Root>\n </div>\n );\n};\n\n// TODO(burdon): Replace with thread?\n// TODO(burdon): Button to edit/re-run question.\ntype MessageThreadProps = {\n state: State | null;\n history: Message[];\n result: string;\n};\n\nconst MessageThread = forwardRef<HTMLDivElement, MessageThreadProps>(\n ({ state, history, result }: MessageThreadProps, forwardedRef) => {\n return (\n <div ref={forwardedRef} className='flex flex-col gap-6 bs-full p-2 overflow-x-hidden overflow-y-auto'>\n {history.map((message, i) => (\n <div key={i} className='grid grid-cols-[2rem_1fr_2rem]'>\n <div className='p-1'>{message.type === 'response' && <RobotAvatar />}</div>\n <div className='overflow-auto'>\n <MessageItem message={message} />\n </div>\n </div>\n ))}\n\n {result?.length > 0 && (\n <div className='grid grid-cols-[2rem_1fr_2rem]'>\n <div className='p-1'>\n {(state === 'pending' && <Icon icon='ph--spinner--regular' size={6} classNames='animate-spin' />) || (\n <Icon icon='ph--robot--regular' size={6} classNames='animate-[pulse_1s_ease-in-out_infinite]' />\n )}\n </div>\n <div className='overflow-auto'>\n <MessageItem message={{ type: 'response', text: result }} />\n </div>\n </div>\n )}\n </div>\n );\n },\n);\n\nconst MessageItem = ({ classNames, message }: ThemedClassName<{ message: Message }>) => {\n const { type, text, data, error } = message;\n const wrapper = 'p-1 pli-2 rounded-md bg-hoverSurface overflow-auto';\n return (\n <div className={mx('flex', type === 'request' ? 'ml-[1rem] justify-end' : 'mr-[1rem]', classNames)}>\n {error && <div className={mx(wrapper, 'whitespace-pre', errorText)}>{String(error)}</div>}\n\n {text !== undefined && (\n <div className={mx(wrapper, type === 'request' && 'bg-primary-400 dark:bg-primary-600')}>\n {text || '\\u00D8'}\n </div>\n )}\n\n {data && (\n <SyntaxHighlighter language='json' className={mx(wrapper, 'text-xs')}>\n {JSON.stringify(data, null, 2)}\n </SyntaxHighlighter>\n )}\n </div>\n );\n};\n\nconst RobotAvatar = () => (\n <Avatar.Root>\n <Avatar.Content size={6} variant='circle' icon='ph--robot--regular' />\n </Avatar.Root>\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Script } from '@dxos/functions';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { useDeployState, useToolbarState } from '../../hooks';\n\nimport { TestPanel } from './TestPanel';\n\nexport type TestContainerProps = {\n role: string;\n script: Script.Script;\n};\n\nexport const TestContainer = ({ script }: TestContainerProps) => {\n const state = useToolbarState();\n useDeployState({ state, script });\n return (\n <StackItem.Content>\n <TestPanel functionUrl={state.functionUrl} />\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './NotebookStack';\nexport * from './Settings';\nexport * from './TestPanel';\n\nexport { DEPLOYMENT_DIALOG } from './DeploymentDialog';\n\nexport const ScriptContainer = lazy(() => import('./ScriptContainer'));\nexport const DeploymentDialog = lazy(() => import('./DeploymentDialog'));\nexport const NotebookContainer = lazy(() => import('./NotebookContainer'));\n"],
5
+ "mappings": "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",
6
+ "names": ["Octokit", "React", "useCallback", "useState", "ToolId", "SettingsAction", "createIntent", "useIntentDispatcher", "Blueprint", "Template", "Function", "getUserFunctionIdInMetadata", "getInvocationUrl", "log", "useClient", "Filter", "Ref", "getMeta", "getSpace", "useQuery", "Button", "Clipboard", "Input", "useAsyncEffect", "useControlledState", "useTranslation", "AccessToken", "kebabize", "ScriptObjectSettings", "object", "Binding", "BlueprintEditor", "Publishing", "ScriptProperties", "t", "useTranslation", "meta", "id", "Input", "Root", "Label", "TextInput", "placeholder", "value", "description", "onChange", "event", "target", "space", "getSpace", "fn", "useQuery", "Filter", "type", "Function", "source", "Ref", "make", "blueprints", "Blueprint", "creating", "setCreating", "useState", "instructions", "setInstructions", "name", "blueprintKey", "kebabize", "existingBlueprint", "find", "bp", "key", "useAsyncEffect", "load", "content", "handleSave", "useCallback", "text", "toolId", "ToolId", "tools", "includes", "db", "add", "Template", "flush", "div", "className", "h2", "default", "p", "role", "TextArea", "rows", "classNames", "Button", "disabled", "onClick", "client", "useClient", "functionId", "getUserFunctionIdInMetadata", "getMeta", "functionUrl", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "spaceId", "binding", "setBinding", "useControlledState", "handleBindingChange", "handleBindingBlur", "Clipboard", "IconButton", "onBlur", "dispatchPromise", "dispatch", "useIntentDispatcher", "githubToken", "AccessToken", "gistKey", "keys", "gistUrl", "setGistUrl", "token", "gistId", "undefined", "octokit", "Octokit", "auth", "response", "request", "gist_id", "data", "html_url", "err", "log", "catch", "handleOpenTokenManager", "createIntent", "SettingsAction", "Open", "plugin", "publishing", "setPublishing", "handlePublish", "filename", "files", "githubKey", "public", "push", "span", "React", "useClient", "Button", "Select", "useTranslation", "EditorInputModes", "ControlGroup", "ControlItemInput", "ControlPage", "ControlSection", "ScriptPluginSettings", "settings", "t", "useTranslation", "meta", "id", "client", "useClient", "handleAuthenticate", "identityKey", "halo", "identity", "get", "writeCredentials", "getAccessCredential", "React", "ControlPage", "ControlSection", "title", "ns", "ControlGroup", "ControlItemInput", "Button", "onClick", "Select", "Root", "value", "editorInputMode", "onValueChange", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "EditorInputModes", "map", "mode", "Option", "key", "Arrow", "React", "forwardRef", "useEffect", "useRef", "useState", "log", "Avatar", "Icon", "Input", "Toolbar", "useTranslation", "SyntaxHighlighter", "errorText", "mx", "TestPanel", "classNames", "functionUrl", "t", "useTranslation", "meta", "id", "inputRef", "useRef", "input", "setInput", "useState", "result", "setResult", "state", "setState", "history", "setHistory", "scrollerRef", "handleScroll", "current", "scrollTop", "scrollHeight", "controller", "useEffect", "handleStop", "abort", "handleClear", "focus", "handleResponse", "text", "data", "error", "type", "handleRequest", "charAt", "validJsonString", "replace", "JSON", "parse", "stringify", "err", "setTimeout", "AbortController", "response", "fetch", "signal", "method", "body", "headers", "ok", "Error", "statusText", "String", "status", "contentType", "get", "json", "reader", "getReader", "pump", "done", "value", "TextDecoder", "decode", "read", "then", "catch", "name", "log", "React", "div", "className", "mx", "MessageThread", "ref", "Toolbar", "Root", "Input", "TextInput", "autoFocus", "placeholder", "onChange", "ev", "target", "onKeyDown", "key", "IconButton", "icon", "size", "label", "iconOnly", "onClick", "forwardRef", "forwardedRef", "map", "message", "i", "RobotAvatar", "MessageItem", "length", "Icon", "wrapper", "errorText", "undefined", "SyntaxHighlighter", "language", "Avatar", "Content", "variant", "React", "StackItem", "TestContainer", "script", "state", "useToolbarState", "useDeployState", "React", "StackItem", "Content", "TestPanel", "functionUrl", "lazy", "ScriptContainer", "lazy", "DeploymentDialog", "NotebookContainer"]
7
+ }
@@ -16,7 +16,7 @@ import { Domino, useThemeContext } from "@dxos/react-ui";
16
16
  import { InputModeExtensions, createBasicExtensions, createThemeExtensions, defaultStyles, useTextEditor } from "@dxos/react-ui-editor";
17
17
  import { mx } from "@dxos/react-ui-theme";
18
18
  import { isNonNullable } from "@dxos/util";
19
- var TypescriptEditor = ({ classNames, id, role = "article", inputMode = "vscode", toolbar, env, options, initialValue, extensions, scrollTo, selection }) => {
19
+ var TypescriptEditor = ({ classNames, id, role = "article", inputMode = "vscode", env, options, initialValue, extensions, scrollTo, selection }) => {
20
20
  var _effect = _useSignals();
21
21
  try {
22
22
  const { themeMode } = useThemeContext();
@@ -32,12 +32,12 @@ var TypescriptEditor = ({ classNames, id, role = "article", inputMode = "vscode"
32
32
  indentWithTab: true,
33
33
  lineNumbers: true,
34
34
  lineWrapping: false,
35
- monospace: true,
36
35
  scrollPastEnd: role !== "section",
37
36
  search: true,
38
37
  ...options
39
38
  }),
40
39
  createThemeExtensions({
40
+ monospace: true,
41
41
  themeMode,
42
42
  syntaxHighlighting: true
43
43
  }),
@@ -77,7 +77,6 @@ var TypescriptEditor = ({ classNames, id, role = "article", inputMode = "vscode"
77
77
  ]);
78
78
  return /* @__PURE__ */ React.createElement("div", {
79
79
  ref: parentRef,
80
- "data-toolbar": toolbar ? "enabled" : "disabled",
81
80
  className: mx(classNames),
82
81
  ...focusAttributes
83
82
  });
@@ -111,4 +110,4 @@ var createTooltipRenderer = (themeMode) => {
111
110
  export {
112
111
  TypescriptEditor
113
112
  };
114
- //# sourceMappingURL=chunk-VRSDE4CI.mjs.map
113
+ //# sourceMappingURL=chunk-HDKR5WCD.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/TypescriptEditor/TypescriptEditor.tsx"],
4
+ "sourcesContent": ["//\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 { 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 { Domino, type ThemeMode, type ThemedClassName, useThemeContext } from '@dxos/react-ui';\nimport {\n type BasicExtensionsOptions,\n type EditorInputMode,\n InputModeExtensions,\n type UseTextEditorProps,\n createBasicExtensions,\n createThemeExtensions,\n defaultStyles,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\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 = ({\n classNames,\n id,\n role = 'article',\n inputMode = 'vscode',\n env,\n options,\n initialValue,\n extensions,\n scrollTo,\n selection,\n}: TypescriptEditorProps) => {\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 InputModeExtensions[inputMode],\n\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 tsFacet.of({ env, path: `/src/${id}.ts` }),\n tsSync(),\n tsLinter(),\n tsHover({ renderTooltip: createTooltipRenderer(themeMode) }),\n ],\n ].filter(isNonNullable),\n }),\n [id, extensions, themeMode, inputMode, selection, scrollTo],\n );\n\n // TODO(brudon): Use react-ui-editor's Editor component.\n return <div ref={parentRef} className={mx(classNames)} {...focusAttributes} />;\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 return {\n dom: Domino.of('div')\n .classNames('xs:max-is-80 max-is-lg p-1 bg-baseSurface rounded border border-separator')\n .children(\n ...(info.quickInfo?.displayParts?.map(({ kind, text }) =>\n Domino.of('span').classNames(classFromKind(kind)).text(text),\n ) ?? []),\n )\n .build(),\n };\n };\n};\n\nexport default TypescriptEditor;\n"],
5
+ "mappings": ";;;;AAIA,SAASA,gBAAgBC,wBAAwB;AACjD,SAASC,kBAAkB;AAC3B,SAASC,sBAAsB;AAC/B,SAASC,kBAAkB;AAC3B,SAASC,YAAY;AACrB,SAASC,cAAc;AACvB,SAASC,YAAY;AAErB,SAASC,sBAAsB;AAC/B,SAAyBC,gBAAgBC,SAASC,SAASC,UAAUC,cAAc;AACnF,OAAOC,WAAW;AAElB,SAASC,QAA8CC,uBAAuB;AAC9E,SAGEC,qBAEAC,uBACAC,uBACAC,eACAC,qBACK;AACP,SAASC,UAAU;AACnB,SAASC,qBAAqB;AAavB,IAAMC,mBAAmB,CAAC,EAC/BC,YACAC,IACAC,OAAO,WACPC,YAAY,UACZC,KACAC,SACAC,cACAC,YACAC,UACAC,UAAS,MACa;;;AACtB,UAAM,EAAEC,UAAS,IAAKC,gBAAAA;AACtB,UAAM,EAAEC,WAAWC,gBAAe,IAAKC,cACrC,OAAO;MACLb;MACAK;MACAG;MACAD;MACAD,YAAY;QACVA;QACAQ,sBAAsB;UACpBC,qBAAqB;UACrBC,eAAe;UACfC,aAAa;UACbC,cAAc;UACdC,eAAelB,SAAS;UACxBmB,QAAQ;UACR,GAAGhB;QACL,CAAA;QACAiB,sBAAsB;UACpBC,WAAW;UACXb;UACAc,oBAAoB;QACtB,CAAA;QACAC,oBAAoBtB,SAAAA;QAEpBuB,WAAW;UAAEC,YAAY;QAAK,CAAA;QAC9BC,eAAe;UAAEC,UAAUzB,MAAM;YAAC0B,eAAAA;cAAoBC;QAAU,CAAA;;QAGhEC,KAAKC,KAAKC,OAAOC,GAAGC,cAAAA,CAAAA;QACpBF,OAAOC,GAAGE,gBAAAA;QACVH,OAAOC,GAAGG,UAAAA;;QAGVlC,OAAO;UACLmC,QAAQJ,GAAG;YAAE/B;YAAKoC,MAAM,QAAQvC,EAAAA;UAAQ,CAAA;UACxCwC,OAAAA;UACAC,SAAAA;UACAC,QAAQ;YAAEC,eAAeC,sBAAsBnC,SAAAA;UAAW,CAAA;;QAE5DoC,OAAOC,aAAAA;IACX,IACA;MAAC9C;MAAIM;MAAYG;MAAWP;MAAWM;MAAWD;KAAS;AAI7D,WAAO,sBAAA,cAACwC,OAAAA;MAAIC,KAAKrC;MAAWsC,WAAWC,GAAGnD,UAAAA;MAAc,GAAGa;;;;;AAC7D;AAGA,IAAMgC,wBAAwB,CAACnC,cAAAA;AAC7B,QAAM0C,QAAQC,eAAeC,OAAO5C,cAAc,SAAS6C,cAAcC,OAAOD,cAAcE,KAAK;AAEnG,QAAMC,gBAAgB,CAACC,UAAAA;AAErB,UAAMC,OAAOD,MAAME,SAAS,MAAA,IAAU,SAASF;AAC/C,UAAMG,WAAWF,QAAQG;AACzB,QAAI,CAACD,UAAU;AACb,aAAO;IACT;AAEA,UAAME,MAAMD,KAAKH,IAAAA;AACjB,QAAI,OAAOI,QAAQ,YAAY;AAC7B,aAAO;IACT;AAEA,WAAOZ,MAAMa,MAAM;MAACD;KAAI,KAAK;EAC/B;AAEA,SAAO,CAACE,SAAAA;AACN,WAAO;MACLC,KAAKC,OAAOjC,GAAG,KAAA,EACZnC,WAAW,2EAAA,EACXqE,SAAQ,GACHH,KAAKI,WAAWC,cAAcC,IAAI,CAAC,EAAEZ,MAAMa,KAAI,MACjDL,OAAOjC,GAAG,MAAA,EAAQnC,WAAW0D,cAAcE,IAAAA,CAAAA,EAAOa,KAAKA,IAAAA,CAAAA,KACpD,CAAA,CAAE,EAERC,MAAK;IACV;EACF;AACF;",
6
+ "names": ["autocompletion", "completionKeymap", "javascript", "HighlightStyle", "lintKeymap", "Prec", "keymap", "tags", "continueKeymap", "tsAutocomplete", "tsFacet", "tsHover", "tsLinter", "tsSync", "React", "Domino", "useThemeContext", "InputModeExtensions", "createBasicExtensions", "createThemeExtensions", "defaultStyles", "useTextEditor", "mx", "isNonNullable", "TypescriptEditor", "classNames", "id", "role", "inputMode", "env", "options", "initialValue", "extensions", "scrollTo", "selection", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "scrollPastEnd", "search", "createThemeExtensions", "monospace", "syntaxHighlighting", "InputModeExtensions", "javascript", "typescript", "autocompletion", "override", "tsAutocomplete", "undefined", "Prec", "high", "keymap", "of", "continueKeymap", "completionKeymap", "lintKeymap", "tsFacet", "path", "tsSync", "tsLinter", "tsHover", "renderTooltip", "createTooltipRenderer", "filter", "isNonNullable", "div", "ref", "className", "mx", "theme", "HighlightStyle", "define", "defaultStyles", "dark", "light", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tags", "tag", "style", "info", "dom", "Domino", "children", "quickInfo", "displayParts", "map", "text", "build"]
7
+ }
@@ -0,0 +1,11 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (target, all) => {
4
+ for (var name in all)
5
+ __defProp(target, name, { get: all[name], enumerable: true });
6
+ };
7
+
8
+ export {
9
+ __export
10
+ };
11
+ //# sourceMappingURL=chunk-HSLMI22Q.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,11 +1,16 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
3
  // src/meta.ts
4
+ import { trim } from "@dxos/util";
4
5
  var meta = {
5
6
  id: "dxos.org/plugin/script",
6
7
  name: "Scripts",
7
- description: "Scripts enable you to deploy custom functions that run on the edge. These functions can be referenced by your AI agent and called inside of cells in any Sheet. Use scripts to interact with API\u2019s or external data inside of Composer.",
8
+ description: trim`
9
+ Write and deploy custom JavaScript functions that extend your workspace capabilities.
10
+ Create AI agent tools, spreadsheet formulas, and automation scripts that integrate seamlessly with other plugins.
11
+ `,
8
12
  icon: "ph--code--regular",
13
+ iconHue: "sky",
9
14
  source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-explorer",
10
15
  tags: [
11
16
  "labs"
@@ -25,4 +30,4 @@ export {
25
30
  meta,
26
31
  defaultScriptsForIntegration
27
32
  };
28
- //# sourceMappingURL=chunk-OG2SIKHE.mjs.map
33
+ //# sourceMappingURL=chunk-IBV2DR36.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/script',\n name: 'Scripts',\n description: trim`\n Write and deploy custom JavaScript functions that extend your workspace capabilities.\n Create AI agent tools, spreadsheet formulas, and automation scripts that integrate seamlessly with other plugins.\n `,\n icon: 'ph--code--regular',\n iconHue: 'sky',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-explorer',\n tags: ['labs'],\n screenshots: ['https://dxos.network/plugin-details-scripts-dark.png'],\n};\n\n// TODO(ZaymonFC): Configure by scopes?\nexport const defaultScriptsForIntegration: Record<string, string[]> = {\n // TODO(wittjosiah): Also include content extraction scripts in the default set.\n 'gmail.com': ['dxos.org/script/gmail'],\n};\n"],
5
+ "mappings": ";;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAmB;EAC9BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,MAAM;IAAC;;EACPC,aAAa;IAAC;;AAChB;AAGO,IAAMC,+BAAyD;;EAEpE,aAAa;IAAC;;AAChB;",
6
+ "names": ["trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "tags", "screenshots", "defaultScriptsForIntegration"]
7
+ }