@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,27 +1,27 @@
1
1
  import {
2
+ getAccessCredential,
2
3
  useDeployState,
3
4
  useToolbarState
4
- } from "./chunk-E7DXDICD.mjs";
5
- import {
6
- getAccessCredential
7
- } from "./chunk-JO2O7W6J.mjs";
5
+ } from "./chunk-5JSNQYZZ.mjs";
8
6
  import {
9
7
  meta
10
- } from "./chunk-EZVXV6DA.mjs";
8
+ } from "./chunk-EB6AXFXO.mjs";
11
9
 
12
10
  // src/components/Settings/ScriptObjectSettings.tsx
13
11
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
14
12
  import { Octokit } from "@octokit/core";
15
13
  import React, { useCallback, useState } from "react";
16
14
  import { ToolId } from "@dxos/ai";
17
- import { SettingsAction, createIntent, useIntentDispatcher } from "@dxos/app-framework";
15
+ import { SettingsAction, createIntent } from "@dxos/app-framework";
16
+ import { useIntentDispatcher } from "@dxos/app-framework/react";
18
17
  import { Blueprint, Template } from "@dxos/blueprints";
19
- import { FunctionType, getInvocationUrl, getUserFunctionIdInMetadata } from "@dxos/functions";
18
+ import { Function, getUserFunctionIdInMetadata } from "@dxos/functions";
19
+ import { getInvocationUrl } from "@dxos/functions-runtime";
20
20
  import { log } from "@dxos/log";
21
21
  import { useClient } from "@dxos/react-client";
22
22
  import { Filter, Ref, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
23
23
  import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from "@dxos/react-ui";
24
- import { DataType } from "@dxos/schema";
24
+ import { AccessToken } from "@dxos/types";
25
25
  import { kebabize } from "@dxos/util";
26
26
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/Settings/ScriptObjectSettings.tsx";
27
27
  var ScriptObjectSettings = ({ object }) => {
@@ -58,7 +58,7 @@ var BlueprintEditor = ({ object }) => {
58
58
  try {
59
59
  const { t } = useTranslation(meta.id);
60
60
  const space = getSpace(object);
61
- const [fn] = useQuery(space, Filter.type(FunctionType, {
61
+ const [fn] = useQuery(space, Filter.type(Function.Function, {
62
62
  source: Ref.make(object)
63
63
  }));
64
64
  const blueprints = useQuery(space, Filter.type(Blueprint.Blueprint));
@@ -156,7 +156,7 @@ var Binding = ({ object }) => {
156
156
  const { t } = useTranslation(meta.id);
157
157
  const client = useClient();
158
158
  const space = getSpace(object);
159
- const [fn] = useQuery(space, Filter.type(FunctionType, {
159
+ const [fn] = useQuery(space, Filter.type(Function.Function, {
160
160
  source: Ref.make(object)
161
161
  }));
162
162
  const functionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
@@ -214,7 +214,7 @@ var Publishing = ({ object }) => {
214
214
  const { t } = useTranslation(meta.id);
215
215
  const { dispatchPromise: dispatch } = useIntentDispatcher();
216
216
  const space = getSpace(object);
217
- const [githubToken] = useQuery(space, Filter.type(DataType.AccessToken, {
217
+ const [githubToken] = useQuery(space, Filter.type(AccessToken.AccessToken, {
218
218
  source: "github.com"
219
219
  }));
220
220
  const gistKey = getMeta(object).keys.find(({ source }) => source === "github.com");
@@ -237,7 +237,7 @@ var Publishing = ({ object }) => {
237
237
  } catch (err) {
238
238
  log.catch(err, void 0, {
239
239
  F: __dxlog_file,
240
- L: 222,
240
+ L: 228,
241
241
  S: void 0,
242
242
  C: (f, a) => f(...a)
243
243
  });
@@ -482,7 +482,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
482
482
  if (err.name !== "AbortError") {
483
483
  log2.catch(err, void 0, {
484
484
  F: __dxlog_file2,
485
- L: 147,
485
+ L: 162,
486
486
  S: void 0,
487
487
  C: (f, a) => f(...a)
488
488
  });
@@ -496,7 +496,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
496
496
  });
497
497
  log2.catch(err, void 0, {
498
498
  F: __dxlog_file2,
499
- L: 154,
499
+ L: 169,
500
500
  S: void 0,
501
501
  C: (f, a) => f(...a)
502
502
  });
@@ -506,32 +506,32 @@ var TestPanel = ({ classNames, functionUrl }) => {
506
506
  }
507
507
  };
508
508
  return /* @__PURE__ */ React3.createElement("div", {
509
- className: mx("flex flex-col h-full overflow-hidden", classNames)
509
+ className: mx("flex flex-col bs-full overflow-hidden", classNames)
510
510
  }, /* @__PURE__ */ React3.createElement(MessageThread, {
511
511
  ref: scrollerRef,
512
512
  state,
513
513
  result,
514
514
  history
515
- }), /* @__PURE__ */ React3.createElement(Toolbar.Root, {
516
- classNames: "p-2"
517
- }, /* @__PURE__ */ React3.createElement(Input2.Root, null, /* @__PURE__ */ React3.createElement(Input2.TextInput, {
515
+ }), /* @__PURE__ */ React3.createElement(Toolbar.Root, null, /* @__PURE__ */ React3.createElement(Input2.Root, null, /* @__PURE__ */ React3.createElement(Input2.TextInput, {
518
516
  ref: inputRef,
519
517
  autoFocus: true,
520
518
  placeholder: t("function request placeholder"),
521
519
  value: input,
522
520
  onChange: (ev) => setInput(ev.target.value),
523
521
  onKeyDown: (ev) => ev.key === "Enter" && handleRequest(input)
524
- })), /* @__PURE__ */ React3.createElement(Toolbar.Button, {
525
- onClick: () => handleRequest(input)
526
- }, /* @__PURE__ */ React3.createElement(Icon, {
522
+ })), /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
527
523
  icon: "ph--play--regular",
528
- size: 4
529
- })), /* @__PURE__ */ React3.createElement(Toolbar.Button, {
530
- onClick: () => state ? handleStop() : handleClear()
531
- }, /* @__PURE__ */ React3.createElement(Icon, {
524
+ size: 4,
525
+ label: "Execute",
526
+ iconOnly: true,
527
+ onClick: () => handleRequest(input)
528
+ }), /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
532
529
  icon: state ? "ph--stop--regular" : "ph--trash--regular",
533
- size: 4
534
- }))));
530
+ size: 4,
531
+ label: state ? "Stop" : "Clear",
532
+ iconOnly: true,
533
+ onClick: () => state ? handleStop() : handleClear()
534
+ })));
535
535
  } finally {
536
536
  _effect.f();
537
537
  }
@@ -541,7 +541,7 @@ var MessageThread = /* @__PURE__ */ forwardRef(({ state, history, result }, forw
541
541
  try {
542
542
  return /* @__PURE__ */ React3.createElement("div", {
543
543
  ref: forwardedRef,
544
- className: "flex flex-col gap-6 h-full p-2 overflow-x-hidden overflow-y-auto"
544
+ className: "flex flex-col gap-6 bs-full p-2 overflow-x-hidden overflow-y-auto"
545
545
  }, history.map((message, i) => /* @__PURE__ */ React3.createElement("div", {
546
546
  key: i,
547
547
  className: "grid grid-cols-[2rem_1fr_2rem]"
@@ -579,7 +579,7 @@ var MessageItem = ({ classNames, message }) => {
579
579
  var _effect = _useSignals3();
580
580
  try {
581
581
  const { type, text, data, error } = message;
582
- const wrapper = "p-1 px-2 rounded-md bg-hoverSurface overflow-auto";
582
+ const wrapper = "p-1 pli-2 rounded-md bg-hoverSurface overflow-auto";
583
583
  return /* @__PURE__ */ React3.createElement("div", {
584
584
  className: mx("flex", type === "request" ? "ml-[1rem] justify-end" : "mr-[1rem]", classNames)
585
585
  }, error && /* @__PURE__ */ React3.createElement("div", {
@@ -629,9 +629,9 @@ var TestContainer = ({ script }) => {
629
629
 
630
630
  // src/components/index.ts
631
631
  import { lazy } from "react";
632
- var ScriptContainer = lazy(() => import("./ScriptContainer-LRTRN7JW.mjs"));
633
- var DeploymentDialog = lazy(() => import("./DeploymentDialog-65TWT6S5.mjs"));
634
- var NotebookContainer = lazy(() => import("./NotebookContainer-LVGRPFY3.mjs"));
632
+ var ScriptContainer = lazy(() => import("./ScriptContainer-3JQSTDFZ.mjs"));
633
+ var DeploymentDialog = lazy(() => import("./DeploymentDialog-MZX4T77L.mjs"));
634
+ var NotebookContainer = lazy(() => import("./NotebookContainer-S6GUYCUE.mjs"));
635
635
 
636
636
  export {
637
637
  ScriptObjectSettings,
@@ -643,4 +643,4 @@ export {
643
643
  DeploymentDialog,
644
644
  NotebookContainer
645
645
  };
646
- //# sourceMappingURL=chunk-I3QSGUFJ.mjs.map
646
+ //# sourceMappingURL=chunk-JRF6FHYQ.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
+ }
@@ -1,47 +1,53 @@
1
1
  import {
2
2
  templates
3
- } from "./chunk-ST3ACVUC.mjs";
3
+ } from "./chunk-2G2NA6DQ.mjs";
4
4
  import {
5
5
  meta
6
- } from "./chunk-EZVXV6DA.mjs";
6
+ } from "./chunk-EB6AXFXO.mjs";
7
+ import {
8
+ __export
9
+ } from "./chunk-J5LGTIGS.mjs";
7
10
 
8
11
  // src/types/actions.ts
9
12
  import * as Schema2 from "effect/Schema";
10
13
  import { SpaceSchema } from "@dxos/client/echo";
11
- import { ScriptType } from "@dxos/functions";
14
+ import { Script } from "@dxos/functions";
12
15
 
13
- // src/types/schema.ts
16
+ // src/types/Notebook.ts
17
+ var Notebook_exports = {};
18
+ __export(Notebook_exports, {
19
+ Cell: () => Cell,
20
+ Notebook: () => Notebook,
21
+ make: () => make
22
+ });
14
23
  import * as Schema from "effect/Schema";
24
+ import { Prompt } from "@dxos/blueprints";
15
25
  import { Obj, Type } from "@dxos/echo";
26
+ import { FormAnnotation } from "@dxos/echo/internal";
16
27
  import { LabelAnnotation } from "@dxos/echo/internal";
17
- import { Assistant } from "@dxos/plugin-assistant/types";
18
- import { EditorInputMode } from "@dxos/react-ui-editor";
19
- import { DataType } from "@dxos/schema";
20
- (function(Notebook2) {
21
- Notebook2.Cell = Schema.Struct({
22
- id: Schema.String,
23
- type: Schema.String,
24
- script: Schema.optional(Type.Ref(DataType.Text)),
25
- view: Schema.optional(Type.Ref(DataType.View)),
26
- chat: Schema.optional(Type.Ref(Assistant.Chat))
27
- }).pipe(Schema.mutable);
28
- Notebook2.Notebook = Schema.Struct({
29
- name: Schema.optional(Schema.String),
30
- cells: Schema.mutable(Schema.Array(Notebook2.Cell))
31
- }).pipe(Type.Obj({
32
- typename: "dxos.org/type/Notebook",
33
- version: "0.1.0"
34
- }), LabelAnnotation.set([
35
- "name"
36
- ]));
37
- Notebook2.make = (props = {
38
- cells: []
39
- }) => Obj.make(Notebook2.Notebook, props);
40
- })(Notebook || (Notebook = {}));
41
- var ScriptSettings = Schema.mutable(Schema.Struct({
42
- editorInputMode: EditorInputMode
43
- }));
44
- var Notebook;
28
+ import { Text, View } from "@dxos/schema";
29
+ var Cell_ = Schema.Struct({
30
+ id: Schema.String,
31
+ type: Schema.String,
32
+ name: Schema.optional(Schema.String),
33
+ // TODO(burdon): Union type.
34
+ source: Schema.optional(Type.Ref(Text.Text)),
35
+ prompt: Schema.optional(Type.Ref(Prompt.Prompt)),
36
+ view: Schema.optional(Type.Ref(View.View))
37
+ }).pipe(Schema.mutable);
38
+ var Cell = Cell_;
39
+ var Notebook = Schema.Struct({
40
+ name: Schema.String.pipe(Schema.optional),
41
+ cells: Cell.pipe(Schema.Array, Schema.mutable, FormAnnotation.set(false))
42
+ }).pipe(Type.Obj({
43
+ typename: "dxos.org/type/Notebook",
44
+ version: "0.1.0"
45
+ }), LabelAnnotation.set([
46
+ "name"
47
+ ]));
48
+ var make = (props = {
49
+ cells: []
50
+ }) => Obj.make(Notebook, props);
45
51
 
46
52
  // src/types/actions.ts
47
53
  (function(ScriptAction2) {
@@ -60,7 +66,7 @@ var Notebook;
60
66
  space: SpaceSchema
61
67
  })),
62
68
  output: Schema2.Struct({
63
- object: ScriptType
69
+ object: Script.Script
64
70
  })
65
71
  }) {
66
72
  }
@@ -73,7 +79,7 @@ var Notebook;
73
79
  space: SpaceSchema
74
80
  })),
75
81
  output: Schema2.Struct({
76
- object: Notebook.Notebook
82
+ object: Notebook
77
83
  })
78
84
  }) {
79
85
  }
@@ -81,9 +87,16 @@ var Notebook;
81
87
  })(ScriptAction || (ScriptAction = {}));
82
88
  var ScriptAction;
83
89
 
90
+ // src/types/types.ts
91
+ import * as Schema3 from "effect/Schema";
92
+ import { EditorInputMode } from "@dxos/react-ui-editor";
93
+ var ScriptSettings = Schema3.mutable(Schema3.Struct({
94
+ editorInputMode: EditorInputMode
95
+ }));
96
+
84
97
  export {
85
- ScriptSettings,
86
- Notebook,
87
- ScriptAction
98
+ Notebook_exports,
99
+ ScriptAction,
100
+ ScriptSettings
88
101
  };
89
- //# sourceMappingURL=chunk-5CYLWXRH.mjs.map
102
+ //# sourceMappingURL=chunk-LNNCD2H4.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/actions.ts", "../../../src/types/Notebook.ts", "../../../src/types/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { Script } from '@dxos/functions';\n\nimport { meta } from '../meta';\nimport { templates } from '../templates';\n\nimport * as Notebook from './Notebook';\n\nexport namespace ScriptAction {\n export const ScriptProps = Schema.Struct({\n name: Schema.optional(Schema.String),\n // TODO(wittjosiah): Placeholder annotation?\n gistUrl: Schema.optional(Schema.String.annotations({ title: 'Import from Gist (url)' })),\n initialTemplateId: Schema.Literal(...templates.map(({ id }) => id)).pipe(\n Schema.annotations({ title: 'Template' }),\n Schema.optional,\n ),\n });\n\n export class CreateScript extends Schema.TaggedClass<CreateScript>()(`${meta.id}/action/create-script`, {\n input: Schema.extend(\n ScriptProps,\n Schema.Struct({\n space: SpaceSchema,\n }),\n ),\n output: Schema.Struct({\n object: Script.Script,\n }),\n }) {}\n\n export const NotebookProps = Schema.Struct({\n name: Schema.optional(Schema.String),\n });\n\n export class CreateNotebook extends Schema.TaggedClass<CreateNotebook>()(`${meta.id}/action/create-notebook`, {\n input: Schema.extend(\n NotebookProps,\n Schema.Struct({\n space: SpaceSchema,\n }),\n ),\n output: Schema.Struct({\n object: Notebook.Notebook,\n }),\n }) {}\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Prompt } from '@dxos/blueprints';\nimport { Obj, Type } from '@dxos/echo';\nimport { FormAnnotation } from '@dxos/echo/internal';\nimport { LabelAnnotation } from '@dxos/echo/internal';\nimport { Text, View } from '@dxos/schema';\n\nexport type CellType = 'markdown' | 'script' | 'query' | 'prompt' | 'view';\n\nconst Cell_ = Schema.Struct({\n id: Schema.String,\n type: Schema.String,\n name: Schema.optional(Schema.String),\n // TODO(burdon): Union type.\n source: Schema.optional(Type.Ref(Text.Text)),\n prompt: Schema.optional(Type.Ref(Prompt.Prompt)),\n view: Schema.optional(Type.Ref(View.View)),\n}).pipe(Schema.mutable);\nexport interface Cell extends Schema.Schema.Type<typeof Cell_> {}\nexport interface Cell_Encoded extends Schema.Schema.Encoded<typeof Cell_> {}\nexport const Cell: Schema.Schema<Cell, Cell_Encoded> = Cell_;\n\nexport const Notebook = Schema.Struct({\n name: Schema.String.pipe(Schema.optional),\n cells: Cell.pipe(Schema.Array, Schema.mutable, FormAnnotation.set(false)),\n}).pipe(\n Type.Obj({\n typename: 'dxos.org/type/Notebook',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n);\n\nexport type Notebook = Schema.Schema.Type<typeof Notebook>;\n\nexport const make = (props: Obj.MakeProps<typeof Notebook> = { cells: [] }) => Obj.make(Notebook, props);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { EditorInputMode } from '@dxos/react-ui-editor';\n\nexport const ScriptSettings = Schema.mutable(\n Schema.Struct({\n editorInputMode: EditorInputMode,\n }),\n);\n\nexport type ScriptSettings = Schema.Schema.Type<typeof ScriptSettings>;\n"],
5
+ "mappings": ";;;;;;;;;;;AAIA,YAAYA,aAAY;AAExB,SAASC,mBAAmB;AAC5B,SAASC,cAAc;;;ACPvB;;;;;;AAIA,YAAYC,YAAY;AAExB,SAASC,cAAc;AACvB,SAASC,KAAKC,YAAY;AAC1B,SAASC,sBAAsB;AAC/B,SAASC,uBAAuB;AAChC,SAASC,MAAMC,YAAY;AAI3B,IAAMC,QAAeC,cAAO;EAC1BC,IAAWC;EACXC,MAAaD;EACbE,MAAaC,gBAAgBH,aAAM;;EAEnCI,QAAeD,gBAASE,KAAKC,IAAIC,KAAKA,IAAI,CAAA;EAC1CC,QAAeL,gBAASE,KAAKC,IAAIG,OAAOA,MAAM,CAAA;EAC9CC,MAAaP,gBAASE,KAAKC,IAAIK,KAAKA,IAAI,CAAA;AAC1C,CAAA,EAAGC,KAAYC,cAAO;AAGf,IAAMC,OAA0CjB;AAEhD,IAAMkB,WAAkBjB,cAAO;EACpCI,MAAaF,cAAOY,KAAYT,eAAQ;EACxCa,OAAOF,KAAKF,KAAYK,cAAcJ,gBAASK,eAAeC,IAAI,KAAA,CAAA;AACpE,CAAA,EAAGP,KACDP,KAAKe,IAAI;EACPC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBJ,IAAI;EAAC;CAAO,CAAA;AAKvB,IAAMK,OAAO,CAACC,QAAwC;EAAET,OAAO,CAAA;AAAG,MAAMI,IAAII,KAAKT,UAAUU,KAAAA;;;UD1BjFC,eAAAA;gBACFC,cAAqBC,eAAO;IACvCC,MAAaC,iBAAgBC,cAAM;;IAEnCC,SAAgBF,iBAAgBC,eAAOE,YAAY;MAAEC,OAAO;IAAyB,CAAA,CAAA;IACrFC,mBAA0BC,gBAAO,GAAIC,UAAUC,IAAI,CAAC,EAAEC,GAAE,MAAOA,EAAAA,CAAAA,EAAKC,KAC3DP,oBAAY;MAAEC,OAAO;IAAW,CAAA,GAChCJ,gBAAQ;EAEnB,CAAA;EAEO,MAAMW,qBAA4BC,oBAAW,EAAiB,GAAGC,KAAKJ,EAAE,yBAAyB;IACtGK,OAAcC,eAAMnB,cAClBC,aACOC,eAAO;MACZkB,OAAOC;IACT,CAAA,CAAA;IAEFC,QAAepB,eAAO;MACpBqB,QAAQC,OAAOA;IACjB,CAAA;EACF,CAAA,EAAA;EAAI;gBAVST,eAAAA;gBAYAU,gBAAuBvB,eAAO;IACzCC,MAAaC,iBAAgBC,cAAM;EACrC,CAAA;EAEO,MAAMqB,uBAA8BV,oBAAW,EAAmB,GAAGC,KAAKJ,EAAE,2BAA2B;IAC5GK,OAAcC,eAAMnB,cAClByB,eACOvB,eAAO;MACZkB,OAAOC;IACT,CAAA,CAAA;IAEFC,QAAepB,eAAO;MACpBqB,QAAiBI;IACnB,CAAA;EACF,CAAA,EAAA;EAAI;gBAVSD,iBAAAA;AAWf,GAtCiB1B,iBAAAA,eAAAA,CAAAA,EAAAA;;;;AEVjB,YAAY4B,aAAY;AAExB,SAASC,uBAAuB;AAEzB,IAAMC,iBAAwBC,gBAC5BC,eAAO;EACZC,iBAAiBC;AACnB,CAAA,CAAA;",
6
+ "names": ["Schema", "SpaceSchema", "Script", "Schema", "Prompt", "Obj", "Type", "FormAnnotation", "LabelAnnotation", "Text", "View", "Cell_", "Struct", "id", "String", "type", "name", "optional", "source", "Type", "Ref", "Text", "prompt", "Prompt", "view", "View", "pipe", "mutable", "Cell", "Notebook", "cells", "Array", "FormAnnotation", "set", "Obj", "typename", "version", "LabelAnnotation", "make", "props", "ScriptAction", "ScriptProps", "Struct", "name", "optional", "String", "gistUrl", "annotations", "title", "initialTemplateId", "Literal", "templates", "map", "id", "pipe", "CreateScript", "TaggedClass", "meta", "input", "extend", "space", "SpaceSchema", "output", "object", "Script", "NotebookProps", "CreateNotebook", "Notebook", "Schema", "EditorInputMode", "ScriptSettings", "mutable", "Struct", "editorInputMode", "EditorInputMode"]
7
+ }
@@ -14,7 +14,7 @@ import { Domino, useThemeContext } from "@dxos/react-ui";
14
14
  import { InputModeExtensions, createBasicExtensions, createThemeExtensions, defaultStyles, useTextEditor } from "@dxos/react-ui-editor";
15
15
  import { mx } from "@dxos/react-ui-theme";
16
16
  import { isNonNullable } from "@dxos/util";
17
- var TypescriptEditor = ({ classNames, id, role = "article", inputMode = "vscode", toolbar, env, options, initialValue, extensions, scrollTo, selection }) => {
17
+ var TypescriptEditor = ({ classNames, id, role = "article", inputMode = "vscode", env, options, initialValue, extensions, scrollTo, selection }) => {
18
18
  var _effect = _useSignals();
19
19
  try {
20
20
  const { themeMode } = useThemeContext();
@@ -30,12 +30,12 @@ var TypescriptEditor = ({ classNames, id, role = "article", inputMode = "vscode"
30
30
  indentWithTab: true,
31
31
  lineNumbers: true,
32
32
  lineWrapping: false,
33
- monospace: true,
34
33
  scrollPastEnd: role !== "section",
35
34
  search: true,
36
35
  ...options
37
36
  }),
38
37
  createThemeExtensions({
38
+ monospace: true,
39
39
  themeMode,
40
40
  syntaxHighlighting: true
41
41
  }),
@@ -75,7 +75,6 @@ var TypescriptEditor = ({ classNames, id, role = "article", inputMode = "vscode"
75
75
  ]);
76
76
  return /* @__PURE__ */ React.createElement("div", {
77
77
  ref: parentRef,
78
- "data-toolbar": toolbar ? "enabled" : "disabled",
79
78
  className: mx(classNames),
80
79
  ...focusAttributes
81
80
  });
@@ -109,4 +108,4 @@ var createTooltipRenderer = (themeMode) => {
109
108
  export {
110
109
  TypescriptEditor
111
110
  };
112
- //# sourceMappingURL=chunk-N6M34EUC.mjs.map
111
+ //# sourceMappingURL=chunk-M6KJPUJK.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
+ }