@dxos/plugin-script 0.8.4-main.c1de068 → 0.8.4-main.c4373fc
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.
- package/dist/lib/browser/DeploymentDialog-7FNPALCV.mjs +12 -0
- package/dist/lib/browser/NotebookContainer-ZSXYRRZB.mjs +578 -0
- package/dist/lib/browser/NotebookContainer-ZSXYRRZB.mjs.map +7 -0
- package/dist/lib/browser/ScriptContainer-24LLLTLB.mjs +149 -0
- package/dist/lib/browser/ScriptContainer-24LLLTLB.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-HLQ7K3BT.mjs → app-graph-builder-DPYULSME.mjs} +9 -8
- package/dist/lib/browser/app-graph-builder-DPYULSME.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs +28 -0
- package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs.map +7 -0
- package/dist/lib/browser/{chunk-3U6DTUH3.mjs → chunk-DXWTBOND.mjs} +26 -27
- package/dist/lib/browser/chunk-DXWTBOND.mjs.map +7 -0
- package/dist/lib/browser/{chunk-FMDXKOP7.mjs → chunk-ETFBQURU.mjs} +71 -50
- package/dist/lib/browser/chunk-ETFBQURU.mjs.map +7 -0
- package/dist/lib/browser/{chunk-QYAREHGH.mjs → chunk-EZVXV6DA.mjs} +3 -5
- package/dist/lib/browser/chunk-EZVXV6DA.mjs.map +7 -0
- package/dist/lib/browser/chunk-I3THDIT5.mjs +90 -0
- package/dist/lib/browser/chunk-I3THDIT5.mjs.map +7 -0
- package/dist/lib/browser/chunk-N6M34EUC.mjs +112 -0
- package/dist/lib/browser/chunk-N6M34EUC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-P4HQKUCP.mjs → chunk-NNYSARXK.mjs} +15 -15
- package/dist/lib/browser/chunk-NNYSARXK.mjs.map +7 -0
- package/dist/lib/browser/{chunk-5TVBECWH.mjs → chunk-OKXN2N7M.mjs} +2 -2
- package/dist/lib/browser/{chunk-FIM2MVNJ.mjs → chunk-SRSEZWDY.mjs} +159 -68
- package/dist/lib/browser/chunk-SRSEZWDY.mjs.map +7 -0
- package/dist/lib/browser/chunk-SWBZUZDX.mjs +80 -0
- package/dist/lib/browser/chunk-SWBZUZDX.mjs.map +7 -0
- package/dist/lib/browser/chunk-VFJJA4WR.mjs +88 -0
- package/dist/lib/browser/chunk-VFJJA4WR.mjs.map +7 -0
- package/dist/lib/browser/{compiler-CXCUA4UQ.mjs → compiler-G2N2CG63.mjs} +24 -8
- package/dist/lib/browser/compiler-G2N2CG63.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +96 -39
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-7B77IG3N.mjs → intent-resolver-FYZRLYNT.mjs} +30 -16
- package/dist/lib/browser/intent-resolver-FYZRLYNT.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-FYYXZA7C.mjs → react-surface-CFRYAL2P.mjs} +36 -13
- package/dist/lib/browser/react-surface-CFRYAL2P.mjs.map +7 -0
- package/dist/lib/browser/{settings-KCTBK5TY.mjs → settings-L3HCZRBP.mjs} +8 -8
- package/dist/lib/browser/settings-L3HCZRBP.mjs.map +7 -0
- package/dist/lib/browser/templates/index.mjs +1 -1
- package/dist/lib/browser/types/index.mjs +6 -4
- package/dist/lib/node-esm/{DeploymentDialog-3KPRWFE7.mjs → DeploymentDialog-AKAGR37W.mjs} +5 -5
- package/dist/lib/node-esm/NotebookContainer-2O3N3XPE.mjs +579 -0
- package/dist/lib/node-esm/NotebookContainer-2O3N3XPE.mjs.map +7 -0
- package/dist/lib/node-esm/ScriptContainer-IKOB6FHQ.mjs +150 -0
- package/dist/lib/node-esm/ScriptContainer-IKOB6FHQ.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-7EYIHWH4.mjs → app-graph-builder-UXJGHXSL.mjs} +9 -8
- package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs +30 -0
- package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-QKK3NDHW.mjs → chunk-5IKGUOMI.mjs} +15 -15
- package/dist/lib/node-esm/chunk-5IKGUOMI.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-RT43MACC.mjs → chunk-7MR2L4T3.mjs} +26 -27
- package/dist/lib/node-esm/chunk-7MR2L4T3.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-C33FKUSC.mjs +91 -0
- package/dist/lib/node-esm/chunk-C33FKUSC.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-35M3CHYE.mjs → chunk-NUXZQQ6P.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-AHXJ6NQU.mjs → chunk-OG2SIKHE.mjs} +3 -5
- package/dist/lib/node-esm/chunk-OG2SIKHE.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-OQGBKNYU.mjs +90 -0
- package/dist/lib/node-esm/chunk-OQGBKNYU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-7NMI4CEU.mjs → chunk-PMQ3D535.mjs} +159 -68
- package/dist/lib/node-esm/chunk-PMQ3D535.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-XJPK3IYI.mjs → chunk-U4CZGISN.mjs} +71 -50
- package/dist/lib/node-esm/chunk-U4CZGISN.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-VRSDE4CI.mjs +114 -0
- package/dist/lib/node-esm/chunk-VRSDE4CI.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-ZF5ULKED.mjs +81 -0
- package/dist/lib/node-esm/chunk-ZF5ULKED.mjs.map +7 -0
- package/dist/lib/node-esm/{compiler-EPFKQXPE.mjs → compiler-PLDAZ5GJ.mjs} +24 -8
- package/dist/lib/node-esm/compiler-PLDAZ5GJ.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +96 -39
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-FRZGS4TB.mjs → intent-resolver-6J3CFL5T.mjs} +30 -16
- package/dist/lib/node-esm/intent-resolver-6J3CFL5T.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-V32NWHKN.mjs → react-surface-NPKEO7SA.mjs} +36 -13
- package/dist/lib/node-esm/react-surface-NPKEO7SA.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-DXZ334A3.mjs → settings-YWGZP4EW.mjs} +8 -8
- package/dist/lib/node-esm/settings-YWGZP4EW.mjs.map +7 -0
- package/dist/lib/node-esm/templates/index.mjs +1 -1
- package/dist/lib/node-esm/types/index.mjs +6 -4
- package/dist/types/src/ScriptPlugin.d.ts +1 -1
- package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/artifact-definition.d.ts +1 -1
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/compiler.d.ts +1 -1
- package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +6 -6
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/compiler/compiler.d.ts.map +1 -1
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +2 -2
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +225 -13
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/DeploymentDialog/index.d.ts +1 -1
- package/dist/types/src/components/DeploymentDialog/index.d.ts.map +1 -1
- package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
- package/dist/types/src/components/NotebookContainer.d.ts +10 -0
- package/dist/types/src/components/NotebookContainer.d.ts.map +1 -0
- package/dist/types/src/components/NotebookContainer.stories.d.ts +231 -0
- package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +16 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +231 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -0
- package/dist/types/src/components/NotebookStack/index.d.ts +2 -0
- package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -0
- package/dist/types/src/components/ScriptContainer.d.ts +2 -2
- package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +227 -10
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +2 -2
- package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
- package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +4 -2
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +17 -4
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -4
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/hooks/deploy.d.ts +11 -10
- package/dist/types/src/hooks/deploy.d.ts.map +1 -1
- package/dist/types/src/hooks/template.d.ts.map +1 -1
- package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/notebook/index.d.ts +2 -0
- package/dist/types/src/notebook/index.d.ts.map +1 -0
- package/dist/types/src/notebook/notebook.d.ts +39 -0
- package/dist/types/src/notebook/notebook.d.ts.map +1 -0
- package/dist/types/src/notebook/notebook.test.d.ts +2 -0
- package/dist/types/src/notebook/notebook.test.d.ts.map +1 -0
- package/dist/types/src/notebook/vfs-parser.d.ts +74 -0
- package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -0
- package/dist/types/src/notebook/vfs-parser.test.d.ts +2 -0
- package/dist/types/src/notebook/vfs-parser.test.d.ts.map +1 -0
- package/dist/types/src/templates/chess.d.ts.map +1 -1
- package/dist/types/src/templates/data-generator.d.ts.map +1 -1
- package/dist/types/src/templates/discord.d.ts.map +1 -1
- package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
- package/dist/types/src/templates/forex.d.ts.map +1 -1
- package/dist/types/src/templates/gmail.d.ts.map +1 -1
- package/dist/types/src/testing/data.d.ts +10 -0
- package/dist/types/src/testing/data.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +2 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +21 -2
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/actions.d.ts +58 -0
- package/dist/types/src/types/actions.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +29 -32
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/util/deploy.d.ts +3 -3
- package/dist/types/src/util/deploy.d.ts.map +1 -1
- package/dist/types/src/util/functions.d.ts +5 -2
- package/dist/types/src/util/functions.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +73 -69
- package/src/ScriptPlugin.tsx +91 -69
- package/src/capabilities/app-graph-builder.ts +6 -5
- package/src/capabilities/artifact-definition.ts +8 -12
- package/src/capabilities/blueprint-definition.ts +30 -0
- package/src/capabilities/compiler.ts +2 -1
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/intent-resolver.ts +15 -8
- package/src/capabilities/react-surface.tsx +20 -7
- package/src/capabilities/settings.ts +3 -3
- package/src/compiler/compiler.ts +1 -1
- package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +34 -20
- package/src/components/DeploymentDialog/DeploymentDialog.tsx +16 -22
- package/src/components/DeploymentDialog/index.ts +1 -1
- package/src/components/FrameContainer/FrameContainer.tsx +3 -2
- package/src/components/NotebookContainer.stories.tsx +36 -0
- package/src/components/NotebookContainer.tsx +82 -0
- package/src/components/NotebookStack/NotebookStack.stories.tsx +36 -0
- package/src/components/NotebookStack/NotebookStack.tsx +113 -0
- package/src/components/NotebookStack/index.ts +5 -0
- package/src/components/ScriptContainer.tsx +4 -3
- package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +33 -17
- package/src/components/ScriptToolbar/ScriptToolbar.tsx +30 -23
- package/src/components/Settings/ScriptObjectSettings.tsx +111 -31
- package/src/components/Settings/ScriptPluginSettings.tsx +37 -47
- package/src/components/TestPanel/TestContainer.tsx +2 -1
- package/src/components/TestPanel/TestPanel.tsx +6 -6
- package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +84 -30
- package/src/components/TypescriptEditor/TypescriptEditor.tsx +32 -25
- package/src/components/index.ts +3 -0
- package/src/events.ts +2 -2
- package/src/hooks/deploy.ts +18 -19
- package/src/hooks/format.ts +2 -2
- package/src/hooks/template.ts +4 -3
- package/src/hooks/useCreateAndDeployScriptTemplates.ts +4 -3
- package/src/index.ts +1 -0
- package/src/meta.ts +2 -4
- package/src/notebook/index.ts +5 -0
- package/src/notebook/notebook.test.ts +38 -0
- package/src/notebook/notebook.ts +188 -0
- package/src/notebook/vfs-parser.test.ts +149 -0
- package/src/notebook/vfs-parser.ts +490 -0
- package/src/templates/chess.ts +3 -1
- package/src/templates/data-generator.ts +9 -3
- package/src/templates/discord.ts +12 -4
- package/src/templates/forex-effect.ts +7 -3
- package/src/templates/forex.ts +3 -1
- package/src/templates/gmail.ts +33 -62
- package/src/testing/data.ts +37 -0
- package/src/testing/index.ts +5 -0
- package/src/translations.ts +24 -4
- package/src/types/actions.ts +49 -0
- package/src/types/index.ts +1 -0
- package/src/types/schema.ts +24 -19
- package/src/util/deploy.ts +20 -33
- package/src/util/functions.ts +35 -6
- package/dist/lib/browser/DeploymentDialog-M4QIHTDR.mjs +0 -12
- package/dist/lib/browser/ScriptContainer-Z6SIGRRC.mjs +0 -262
- package/dist/lib/browser/ScriptContainer-Z6SIGRRC.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-HLQ7K3BT.mjs.map +0 -7
- package/dist/lib/browser/artifact-definition-24Q3IHOU.mjs +0 -249
- package/dist/lib/browser/artifact-definition-24Q3IHOU.mjs.map +0 -7
- package/dist/lib/browser/chunk-3U6DTUH3.mjs.map +0 -7
- package/dist/lib/browser/chunk-FIM2MVNJ.mjs.map +0 -7
- package/dist/lib/browser/chunk-FMDXKOP7.mjs.map +0 -7
- package/dist/lib/browser/chunk-IS4OG2UW.mjs +0 -39
- package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +0 -7
- package/dist/lib/browser/chunk-P4HQKUCP.mjs.map +0 -7
- package/dist/lib/browser/chunk-QYAREHGH.mjs.map +0 -7
- package/dist/lib/browser/chunk-R4R7VOFY.mjs +0 -88
- package/dist/lib/browser/chunk-R4R7VOFY.mjs.map +0 -7
- package/dist/lib/browser/compiler-CXCUA4UQ.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-7B77IG3N.mjs.map +0 -7
- package/dist/lib/browser/react-surface-FYYXZA7C.mjs.map +0 -7
- package/dist/lib/browser/settings-KCTBK5TY.mjs.map +0 -7
- package/dist/lib/node-esm/ScriptContainer-KPU75HHI.mjs +0 -263
- package/dist/lib/node-esm/ScriptContainer-KPU75HHI.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-7EYIHWH4.mjs.map +0 -7
- package/dist/lib/node-esm/artifact-definition-WAJFALUI.mjs +0 -250
- package/dist/lib/node-esm/artifact-definition-WAJFALUI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7NMI4CEU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AHXJ6NQU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-F5GFJ3PY.mjs +0 -90
- package/dist/lib/node-esm/chunk-F5GFJ3PY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JIPFLBYA.mjs +0 -40
- package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-QKK3NDHW.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-RT43MACC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XJPK3IYI.mjs.map +0 -7
- package/dist/lib/node-esm/compiler-EPFKQXPE.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-FRZGS4TB.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-V32NWHKN.mjs.map +0 -7
- package/dist/lib/node-esm/settings-DXZ334A3.mjs.map +0 -7
- /package/dist/lib/browser/{DeploymentDialog-M4QIHTDR.mjs.map → DeploymentDialog-7FNPALCV.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-5TVBECWH.mjs.map → chunk-OKXN2N7M.mjs.map} +0 -0
- /package/dist/lib/node-esm/{DeploymentDialog-3KPRWFE7.mjs.map → DeploymentDialog-AKAGR37W.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-35M3CHYE.mjs.map → chunk-NUXZQQ6P.mjs.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/DeploymentDialog/DeploymentDialog.tsx", "../../../src/components/DeploymentDialog/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useEffect, useMemo } from 'react';\n\nimport { LayoutAction, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';\nimport { type DataType } from '@dxos/schema';\n\nimport { useCreateAndDeployScriptTemplates } from '../../hooks/useCreateAndDeployScriptTemplates';\nimport { meta } from '../../meta';\nimport { type Template } from '../../templates';\n\nexport const DEPLOYMENT_DIALOG = `${meta.id}/deployment/dialog`;\n\n// TODO(ZaymonFC):\n// - Show activity and feedback to the user.\n// - Only take an array of templateIds and get the name from the data.\n// - Pending / onError states.\n\nexport type DeploymentDialogProps = {\n accessToken: DataType.AccessToken;\n scriptTemplates: Template[];\n};\n\nexport const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDialogProps) => {\n const { t } = useTranslation(meta.id);\n const space = useMemo(() => getSpace(accessToken), [accessToken]);\n\n // TODO(ZaymonFC): Thinking further. All of this should get moved to intents to run async in the background.\n // Deployment shouldn't be tied to the lifecycle of the dialogue component.\n const { handleCreateAndDeployScripts, status } = useCreateAndDeployScriptTemplates(space, scriptTemplates);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n useEffect(() => {\n if (status === 'success') {\n // TODO(ZaymonFC): We can probably re-use this toast for normal script deployment.\n void dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${meta.id}/deployment-success`,\n icon: 'ph--check--regular',\n duration: Infinity,\n title: ['script deployment toast label', { ns: meta.id, count: scriptTemplates.length }],\n description: ['script deployment toast description', { ns: meta.id, count: scriptTemplates.length }],\n closeLabel: ['script deployment toast close label', { ns: meta.id, count: scriptTemplates.length }],\n },\n }),\n );\n void dispatch(createIntent(LayoutAction.UpdateDialog, { part: 'dialog', options: { state: false } }));\n }\n if (status === 'error') {\n void dispatch(createIntent(LayoutAction.UpdateDialog, { part: 'dialog', options: { state: false } }));\n void dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${meta.id}/deployment-error`,\n icon: 'ph--warning--regular',\n duration: Infinity,\n title: ['script deployment error toast label', { ns: meta.id, count: scriptTemplates.length }],\n description: ['script deployment error toast description', { ns: meta.id, count: scriptTemplates.length }],\n closeLabel: ['script deployment error toast close label', { ns: meta.id, count: scriptTemplates.length }],\n },\n }),\n );\n }\n }, [status, dispatch]);\n\n return (\n <Dialog.Content>\n <div className='flex justify-between items-center'>\n <Dialog.Title>{t('deployment dialog title')}</Dialog.Title>\n <Dialog.Close asChild>\n <Button density='fine' variant='ghost'>\n <Icon icon='ph--x--regular' size={4} />\n </Button>\n </Dialog.Close>\n </div>\n <div role='none' className='plb-4'>\n {/* TODO: Implement deployment logic and UI. */}\n <p>{t('deployment dialog scripts found message', { count: scriptTemplates.length })}</p>\n <ul className='pbs-2'>\n {scriptTemplates.map((template) => {\n return <li key={template.id}>{template.name}</li>;\n })}\n </ul>\n </div>\n <div role='none' className='flex flex-row-reverse gap-1'>\n <Button variant='primary' onClick={handleCreateAndDeployScripts} disabled={status === 'pending'}>\n {status === 'pending'\n ? t('deployment dialog deploy functions pending button label', { count: scriptTemplates.length })\n : t('deployment dialog deploy functions button label', { count: scriptTemplates.length })}\n </Button>\n <Dialog.Close asChild disabled={status === 'pending'}>\n <Button disabled={status === 'pending'}>{t('deployment dialog skip button label')}</Button>\n </Dialog.Close>\n </div>\n </Dialog.Content>\n );\n};\n\nexport default DeploymentDialog;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { DEPLOYMENT_DIALOG, DeploymentDialog } from './DeploymentDialog';\n\nexport { DEPLOYMENT_DIALOG };\n\nexport default DeploymentDialog;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useEffect", "useMemo", "LayoutAction", "createIntent", "useIntentDispatcher", "getSpace", "Button", "Dialog", "Icon", "useTranslation", "DEPLOYMENT_DIALOG", "meta", "id", "DeploymentDialog", "accessToken", "scriptTemplates", "t", "useTranslation", "space", "useMemo", "getSpace", "handleCreateAndDeployScripts", "status", "useCreateAndDeployScriptTemplates", "dispatchPromise", "dispatch", "useIntentDispatcher", "useEffect", "createIntent", "LayoutAction", "AddToast", "part", "subject", "icon", "duration", "Infinity", "title", "ns", "count", "length", "description", "closeLabel", "UpdateDialog", "options", "state", "Dialog", "Content", "div", "className", "Title", "Close", "asChild", "Button", "density", "variant", "Icon", "size", "role", "p", "ul", "map", "template", "li", "key", "name", "onClick", "disabled", "DeploymentDialog"]
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
meta
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EZVXV6DA.mjs";
|
|
4
4
|
|
|
5
5
|
// src/capabilities/capabilities.ts
|
|
6
6
|
import { defineCapability } from "@dxos/app-framework";
|
|
@@ -12,4 +12,4 @@ var ScriptCapabilities;
|
|
|
12
12
|
export {
|
|
13
13
|
ScriptCapabilities
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=chunk-
|
|
15
|
+
//# sourceMappingURL=chunk-OKXN2N7M.mjs.map
|
|
@@ -1,29 +1,36 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useDeployState,
|
|
3
3
|
useToolbarState
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DXWTBOND.mjs";
|
|
5
|
+
import {
|
|
6
|
+
getAccessCredential
|
|
7
|
+
} from "./chunk-ETFBQURU.mjs";
|
|
5
8
|
import {
|
|
6
|
-
SCRIPT_PLUGIN,
|
|
7
9
|
meta
|
|
8
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-EZVXV6DA.mjs";
|
|
9
11
|
|
|
10
12
|
// src/components/Settings/ScriptObjectSettings.tsx
|
|
11
13
|
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
12
14
|
import { Octokit } from "@octokit/core";
|
|
13
|
-
import React, { useCallback,
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
15
|
+
import React, { useCallback, useState } from "react";
|
|
16
|
+
import { ToolId } from "@dxos/ai";
|
|
17
|
+
import { SettingsAction, createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
18
|
+
import { Blueprint, Template } from "@dxos/blueprints";
|
|
19
|
+
import { FunctionType, getInvocationUrl, getUserFunctionIdInMetadata } from "@dxos/functions";
|
|
16
20
|
import { log } from "@dxos/log";
|
|
17
21
|
import { useClient } from "@dxos/react-client";
|
|
18
|
-
import { Filter, getMeta, getSpace,
|
|
19
|
-
import { Button, Clipboard, Input, useControlledState, useTranslation } from "@dxos/react-ui";
|
|
22
|
+
import { Filter, Ref, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
|
|
23
|
+
import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from "@dxos/react-ui";
|
|
20
24
|
import { DataType } from "@dxos/schema";
|
|
25
|
+
import { kebabize } from "@dxos/util";
|
|
21
26
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/Settings/ScriptObjectSettings.tsx";
|
|
22
27
|
var ScriptObjectSettings = ({ object }) => {
|
|
23
28
|
var _effect = _useSignals();
|
|
24
29
|
try {
|
|
25
30
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Binding, {
|
|
26
31
|
object
|
|
32
|
+
}), /* @__PURE__ */ React.createElement(BlueprintEditor, {
|
|
33
|
+
object
|
|
27
34
|
}), /* @__PURE__ */ React.createElement(Publishing, {
|
|
28
35
|
object
|
|
29
36
|
}));
|
|
@@ -34,7 +41,7 @@ var ScriptObjectSettings = ({ object }) => {
|
|
|
34
41
|
var ScriptProperties = ({ object }) => {
|
|
35
42
|
var _effect = _useSignals();
|
|
36
43
|
try {
|
|
37
|
-
const { t } = useTranslation(
|
|
44
|
+
const { t } = useTranslation(meta.id);
|
|
38
45
|
return /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Label, null, t("description label")), /* @__PURE__ */ React.createElement(Input.TextInput, {
|
|
39
46
|
placeholder: t("description placeholder"),
|
|
40
47
|
value: object.description ?? "",
|
|
@@ -46,17 +53,114 @@ var ScriptProperties = ({ object }) => {
|
|
|
46
53
|
_effect.f();
|
|
47
54
|
}
|
|
48
55
|
};
|
|
56
|
+
var BlueprintEditor = ({ object }) => {
|
|
57
|
+
var _effect = _useSignals();
|
|
58
|
+
try {
|
|
59
|
+
const { t } = useTranslation(meta.id);
|
|
60
|
+
const space = getSpace(object);
|
|
61
|
+
const [fn] = useQuery(space, Filter.type(FunctionType, {
|
|
62
|
+
source: Ref.make(object)
|
|
63
|
+
}));
|
|
64
|
+
const blueprints = useQuery(space, Filter.type(Blueprint.Blueprint));
|
|
65
|
+
const [creating, setCreating] = useState(false);
|
|
66
|
+
const [instructions, setInstructions] = useState(`You can run the script "${object.name ?? "script"}".`);
|
|
67
|
+
const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? "script")}`;
|
|
68
|
+
const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);
|
|
69
|
+
useAsyncEffect(async () => {
|
|
70
|
+
if (!existingBlueprint) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const source = await existingBlueprint.instructions.source.load();
|
|
74
|
+
setInstructions(source.content ?? "");
|
|
75
|
+
}, [
|
|
76
|
+
existingBlueprint
|
|
77
|
+
]);
|
|
78
|
+
const handleSave = useCallback(async () => {
|
|
79
|
+
if (!space) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
setCreating(true);
|
|
83
|
+
try {
|
|
84
|
+
if (existingBlueprint) {
|
|
85
|
+
const text = await existingBlueprint.instructions.source.load();
|
|
86
|
+
text.content = instructions;
|
|
87
|
+
if (fn?.key) {
|
|
88
|
+
const toolId = ToolId.make(fn.key);
|
|
89
|
+
if (!existingBlueprint.tools?.includes(toolId)) {
|
|
90
|
+
existingBlueprint.tools = [
|
|
91
|
+
...existingBlueprint.tools ?? [],
|
|
92
|
+
toolId
|
|
93
|
+
];
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
} else if (fn?.key) {
|
|
97
|
+
space.db.add(Blueprint.make({
|
|
98
|
+
key: blueprintKey,
|
|
99
|
+
name: object.name ?? "Script",
|
|
100
|
+
instructions: Template.make({
|
|
101
|
+
source: instructions
|
|
102
|
+
}),
|
|
103
|
+
tools: [
|
|
104
|
+
ToolId.make(fn.key)
|
|
105
|
+
]
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
await space.db.flush();
|
|
109
|
+
} finally {
|
|
110
|
+
setCreating(false);
|
|
111
|
+
}
|
|
112
|
+
}, [
|
|
113
|
+
space,
|
|
114
|
+
existingBlueprint,
|
|
115
|
+
fn,
|
|
116
|
+
blueprintKey,
|
|
117
|
+
object.name,
|
|
118
|
+
instructions
|
|
119
|
+
]);
|
|
120
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
121
|
+
className: "flex flex-col gap-4 mlb-cardSpacingBlock"
|
|
122
|
+
}, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", null, t("blueprint editor label", {
|
|
123
|
+
default: "Blueprint"
|
|
124
|
+
})), /* @__PURE__ */ React.createElement("p", {
|
|
125
|
+
className: "text-description text-sm"
|
|
126
|
+
}, t("blueprint editor description", {
|
|
127
|
+
default: "Create a blueprint that exposes this script as a tool."
|
|
128
|
+
}))), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
|
|
129
|
+
role: "none",
|
|
130
|
+
className: "flex flex-col gap-1"
|
|
131
|
+
}, /* @__PURE__ */ React.createElement(Input.Label, null, t("blueprint instructions label", {
|
|
132
|
+
default: "Instructions"
|
|
133
|
+
})), /* @__PURE__ */ React.createElement(Input.TextArea, {
|
|
134
|
+
placeholder: t("blueprint instructions placeholder", {
|
|
135
|
+
default: "Describe how this tool should be used."
|
|
136
|
+
}),
|
|
137
|
+
rows: 6,
|
|
138
|
+
value: instructions,
|
|
139
|
+
onChange: (event) => setInstructions(event.target.value),
|
|
140
|
+
classNames: "resize-y"
|
|
141
|
+
}))), /* @__PURE__ */ React.createElement("div", {
|
|
142
|
+
className: "flex justify-end gap-2"
|
|
143
|
+
}, /* @__PURE__ */ React.createElement(Button, {
|
|
144
|
+
disabled: !existingBlueprint && !fn?.key || creating,
|
|
145
|
+
onClick: handleSave
|
|
146
|
+
}, t(creating ? "creating label" : "create blueprint label", {
|
|
147
|
+
default: creating ? "Creating\u2026" : "Create blueprint"
|
|
148
|
+
}))));
|
|
149
|
+
} finally {
|
|
150
|
+
_effect.f();
|
|
151
|
+
}
|
|
152
|
+
};
|
|
49
153
|
var Binding = ({ object }) => {
|
|
50
154
|
var _effect = _useSignals();
|
|
51
155
|
try {
|
|
52
|
-
const { t } = useTranslation(
|
|
156
|
+
const { t } = useTranslation(meta.id);
|
|
53
157
|
const client = useClient();
|
|
54
158
|
const space = getSpace(object);
|
|
55
159
|
const [fn] = useQuery(space, Filter.type(FunctionType, {
|
|
56
160
|
source: Ref.make(object)
|
|
57
161
|
}));
|
|
58
|
-
const
|
|
59
|
-
const functionUrl =
|
|
162
|
+
const functionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
|
|
163
|
+
const functionUrl = functionId && getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? "", {
|
|
60
164
|
spaceId: space?.id
|
|
61
165
|
});
|
|
62
166
|
const [binding, setBinding] = useControlledState(fn?.binding ?? "");
|
|
@@ -107,7 +211,7 @@ var Binding = ({ object }) => {
|
|
|
107
211
|
var Publishing = ({ object }) => {
|
|
108
212
|
var _effect = _useSignals();
|
|
109
213
|
try {
|
|
110
|
-
const { t } = useTranslation(
|
|
214
|
+
const { t } = useTranslation(meta.id);
|
|
111
215
|
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
112
216
|
const space = getSpace(object);
|
|
113
217
|
const [githubToken] = useQuery(space, Filter.type(DataType.AccessToken, {
|
|
@@ -115,33 +219,30 @@ var Publishing = ({ object }) => {
|
|
|
115
219
|
}));
|
|
116
220
|
const gistKey = getMeta(object).keys.find(({ source }) => source === "github.com");
|
|
117
221
|
const [gistUrl, setGistUrl] = useState();
|
|
118
|
-
|
|
222
|
+
useAsyncEffect(async () => {
|
|
119
223
|
const token = githubToken?.token;
|
|
120
224
|
const gistId = gistKey?.id;
|
|
121
225
|
if (!token || !gistId) {
|
|
122
226
|
setGistUrl(void 0);
|
|
123
227
|
return;
|
|
124
228
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
return () => clearTimeout(timeout);
|
|
229
|
+
try {
|
|
230
|
+
const octokit = new Octokit({
|
|
231
|
+
auth: githubToken.token
|
|
232
|
+
});
|
|
233
|
+
const response = await octokit.request("GET /gists/{gist_id}", {
|
|
234
|
+
gist_id: gistId
|
|
235
|
+
});
|
|
236
|
+
setGistUrl(response.data.html_url);
|
|
237
|
+
} catch (err) {
|
|
238
|
+
log.catch(err, void 0, {
|
|
239
|
+
F: __dxlog_file,
|
|
240
|
+
L: 222,
|
|
241
|
+
S: void 0,
|
|
242
|
+
C: (f, a) => f(...a)
|
|
243
|
+
});
|
|
244
|
+
setGistUrl(void 0);
|
|
245
|
+
}
|
|
145
246
|
}, [
|
|
146
247
|
githubToken,
|
|
147
248
|
gistKey
|
|
@@ -210,7 +311,6 @@ var Publishing = ({ object }) => {
|
|
|
210
311
|
_effect.f();
|
|
211
312
|
}
|
|
212
313
|
};
|
|
213
|
-
var kebabize = (str) => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? "-" : "") + $.toLowerCase());
|
|
214
314
|
|
|
215
315
|
// src/components/Settings/ScriptPluginSettings.tsx
|
|
216
316
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
@@ -218,7 +318,7 @@ import React2 from "react";
|
|
|
218
318
|
import { useClient as useClient2 } from "@dxos/react-client";
|
|
219
319
|
import { Button as Button2, Select, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
220
320
|
import { EditorInputModes } from "@dxos/react-ui-editor";
|
|
221
|
-
import {
|
|
321
|
+
import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
|
|
222
322
|
var ScriptPluginSettings = ({ settings }) => {
|
|
223
323
|
var _effect = _useSignals2();
|
|
224
324
|
try {
|
|
@@ -227,30 +327,19 @@ var ScriptPluginSettings = ({ settings }) => {
|
|
|
227
327
|
const handleAuthenticate = async () => {
|
|
228
328
|
const { identityKey } = client.halo.identity.get();
|
|
229
329
|
await client.halo.writeCredentials([
|
|
230
|
-
|
|
231
|
-
issuer: identityKey,
|
|
232
|
-
issuanceDate: /* @__PURE__ */ new Date(),
|
|
233
|
-
subject: {
|
|
234
|
-
id: identityKey,
|
|
235
|
-
assertion: {
|
|
236
|
-
"@type": "dxos.halo.credentials.ServiceAccess",
|
|
237
|
-
serverName: "hub.dxos.network",
|
|
238
|
-
serverKey: identityKey,
|
|
239
|
-
identityKey,
|
|
240
|
-
capabilities: [
|
|
241
|
-
"composer:beta"
|
|
242
|
-
]
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
330
|
+
getAccessCredential(identityKey)
|
|
246
331
|
]);
|
|
247
332
|
};
|
|
248
|
-
return /* @__PURE__ */ React2.createElement(
|
|
249
|
-
|
|
333
|
+
return /* @__PURE__ */ React2.createElement(ControlPage, null, /* @__PURE__ */ React2.createElement(ControlSection, {
|
|
334
|
+
title: t("settings title", {
|
|
335
|
+
ns: meta.id
|
|
336
|
+
})
|
|
337
|
+
}, /* @__PURE__ */ React2.createElement(ControlGroup, null, /* @__PURE__ */ React2.createElement(ControlItemInput, {
|
|
338
|
+
title: t("authenticate action label")
|
|
250
339
|
}, /* @__PURE__ */ React2.createElement(Button2, {
|
|
251
340
|
onClick: handleAuthenticate
|
|
252
|
-
}, t("authenticate button label"))), /* @__PURE__ */ React2.createElement(
|
|
253
|
-
|
|
341
|
+
}, t("authenticate button label"))), /* @__PURE__ */ React2.createElement(ControlItemInput, {
|
|
342
|
+
title: t("editor input mode label")
|
|
254
343
|
}, /* @__PURE__ */ React2.createElement(Select.Root, {
|
|
255
344
|
value: settings.editorInputMode ?? "default",
|
|
256
345
|
onValueChange: (value) => {
|
|
@@ -261,7 +350,7 @@ var ScriptPluginSettings = ({ settings }) => {
|
|
|
261
350
|
}), /* @__PURE__ */ React2.createElement(Select.Portal, null, /* @__PURE__ */ React2.createElement(Select.Content, null, /* @__PURE__ */ React2.createElement(Select.Viewport, null, EditorInputModes.map((mode) => /* @__PURE__ */ React2.createElement(Select.Option, {
|
|
262
351
|
key: mode,
|
|
263
352
|
value: mode
|
|
264
|
-
}, t(`settings editor input mode ${mode} label`)))))))));
|
|
353
|
+
}, t(`settings editor input mode ${mode} label`)))), /* @__PURE__ */ React2.createElement(Select.Arrow, null))))))));
|
|
265
354
|
} finally {
|
|
266
355
|
_effect.f();
|
|
267
356
|
}
|
|
@@ -269,7 +358,7 @@ var ScriptPluginSettings = ({ settings }) => {
|
|
|
269
358
|
|
|
270
359
|
// src/components/TestPanel/TestPanel.tsx
|
|
271
360
|
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
272
|
-
import React3, { forwardRef, useEffect
|
|
361
|
+
import React3, { forwardRef, useEffect, useRef, useState as useState2 } from "react";
|
|
273
362
|
import { log as log2 } from "@dxos/log";
|
|
274
363
|
import { Avatar, Icon, Input as Input2, Toolbar, useTranslation as useTranslation3 } from "@dxos/react-ui";
|
|
275
364
|
import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
|
|
@@ -278,7 +367,7 @@ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/component
|
|
|
278
367
|
var TestPanel = ({ classNames, functionUrl }) => {
|
|
279
368
|
var _effect = _useSignals3();
|
|
280
369
|
try {
|
|
281
|
-
const { t } = useTranslation3(
|
|
370
|
+
const { t } = useTranslation3(meta.id);
|
|
282
371
|
const inputRef = useRef(null);
|
|
283
372
|
const [input, setInput] = useState2("");
|
|
284
373
|
const [result, setResult] = useState2("");
|
|
@@ -290,15 +379,15 @@ var TestPanel = ({ classNames, functionUrl }) => {
|
|
|
290
379
|
scrollerRef.current.scrollTop = scrollerRef.current.scrollHeight;
|
|
291
380
|
}
|
|
292
381
|
};
|
|
293
|
-
const controller = useRef();
|
|
294
|
-
|
|
382
|
+
const controller = useRef(null);
|
|
383
|
+
useEffect(() => {
|
|
295
384
|
return () => {
|
|
296
385
|
handleStop();
|
|
297
386
|
};
|
|
298
387
|
}, []);
|
|
299
388
|
const handleStop = () => {
|
|
300
389
|
controller.current?.abort("stop");
|
|
301
|
-
controller.current =
|
|
390
|
+
controller.current = null;
|
|
302
391
|
};
|
|
303
392
|
const handleClear = () => {
|
|
304
393
|
handleStop();
|
|
@@ -308,7 +397,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
|
|
|
308
397
|
inputRef.current?.focus();
|
|
309
398
|
};
|
|
310
399
|
const handleResponse = ({ text, data, error } = {}) => {
|
|
311
|
-
controller.current =
|
|
400
|
+
controller.current = null;
|
|
312
401
|
setHistory((history2) => [
|
|
313
402
|
...history2,
|
|
314
403
|
{
|
|
@@ -499,7 +588,7 @@ var MessageItem = ({ classNames, message }) => {
|
|
|
499
588
|
className: mx(wrapper, type === "request" && "bg-primary-400 dark:bg-primary-600")
|
|
500
589
|
}, text || "\xD8"), data && /* @__PURE__ */ React3.createElement(SyntaxHighlighter, {
|
|
501
590
|
language: "json",
|
|
502
|
-
className: mx(wrapper, "
|
|
591
|
+
className: mx(wrapper, "text-xs")
|
|
503
592
|
}, JSON.stringify(data, null, 2)));
|
|
504
593
|
} finally {
|
|
505
594
|
_effect.f();
|
|
@@ -540,8 +629,9 @@ var TestContainer = ({ script }) => {
|
|
|
540
629
|
|
|
541
630
|
// src/components/index.ts
|
|
542
631
|
import { lazy } from "react";
|
|
543
|
-
var ScriptContainer = lazy(() => import("./ScriptContainer-
|
|
544
|
-
var DeploymentDialog = lazy(() => import("./DeploymentDialog-
|
|
632
|
+
var ScriptContainer = lazy(() => import("./ScriptContainer-24LLLTLB.mjs"));
|
|
633
|
+
var DeploymentDialog = lazy(() => import("./DeploymentDialog-7FNPALCV.mjs"));
|
|
634
|
+
var NotebookContainer = lazy(() => import("./NotebookContainer-ZSXYRRZB.mjs"));
|
|
545
635
|
|
|
546
636
|
export {
|
|
547
637
|
ScriptObjectSettings,
|
|
@@ -550,6 +640,7 @@ export {
|
|
|
550
640
|
TestPanel,
|
|
551
641
|
TestContainer,
|
|
552
642
|
ScriptContainer,
|
|
553
|
-
DeploymentDialog
|
|
643
|
+
DeploymentDialog,
|
|
644
|
+
NotebookContainer
|
|
554
645
|
};
|
|
555
|
-
//# sourceMappingURL=chunk-
|
|
646
|
+
//# sourceMappingURL=chunk-SRSEZWDY.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, useIntentDispatcher } from '@dxos/app-framework';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { FunctionType, type ScriptType, getInvocationUrl, getUserFunctionIdInMetadata } from '@dxos/functions';\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 { DataType } from '@dxos/schema';\nimport { kebabize } from '@dxos/util';\n\nimport { meta } from '../../meta';\n\nexport type ScriptObjectSettingsProps = {\n object: ScriptType;\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(FunctionType, { 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', { default: 'Create a blueprint that exposes this script as a tool.' })}\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', { default: 'Describe how this tool should be used.' })}\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(FunctionType, { 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(DataType.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 () => dispatch(createIntent(SettingsAction.Open, { plugin: 'dxos.org/plugin/token-manager' })),\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 = { type: 'request' | 'response'; text?: string; data?: any; error?: Error };\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 = ({ text, data, error }: { text?: string; data?: any; error?: Error } = {}) => {\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({ error: new Error(text || response.statusText || String(response.status)) });\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 h-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 classNames='p-2'>\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.Button onClick={() => handleRequest(input)}>\n <Icon icon='ph--play--regular' size={4} />\n </Toolbar.Button>\n <Toolbar.Button onClick={() => (state ? handleStop() : handleClear())}>\n <Icon icon={state ? 'ph--stop--regular' : 'ph--trash--regular'} size={4} />\n </Toolbar.Button>\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 h-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 px-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 ScriptType } 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: ScriptType;\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", "FunctionType", "getInvocationUrl", "getUserFunctionIdInMetadata", "log", "useClient", "Filter", "Ref", "getMeta", "getSpace", "useQuery", "Button", "Clipboard", "Input", "useAsyncEffect", "useControlledState", "useTranslation", "DataType", "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", "FunctionType", "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", "DataType", "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", "Button", "onClick", "Icon", "icon", "size", "forwardRef", "forwardedRef", "map", "message", "i", "RobotAvatar", "MessageItem", "length", "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
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-EZVXV6DA.mjs";
|
|
4
|
+
|
|
5
|
+
// src/types/actions.ts
|
|
6
|
+
import * as Schema2 from "effect/Schema";
|
|
7
|
+
import { SpaceSchema } from "@dxos/client/echo";
|
|
8
|
+
import { ScriptType } from "@dxos/functions";
|
|
9
|
+
|
|
10
|
+
// src/types/schema.ts
|
|
11
|
+
import * as Schema from "effect/Schema";
|
|
12
|
+
import { Obj, Type } from "@dxos/echo";
|
|
13
|
+
import { LabelAnnotation } from "@dxos/echo/internal";
|
|
14
|
+
import { EditorInputMode } from "@dxos/react-ui-editor";
|
|
15
|
+
import { DataType } from "@dxos/schema";
|
|
16
|
+
(function(Notebook2) {
|
|
17
|
+
Notebook2.Cell = Schema.Struct({
|
|
18
|
+
id: Schema.String,
|
|
19
|
+
script: Type.Ref(DataType.Text)
|
|
20
|
+
});
|
|
21
|
+
Notebook2.Notebook = Schema.Struct({
|
|
22
|
+
name: Schema.optional(Schema.String),
|
|
23
|
+
cells: Schema.mutable(Schema.Array(Notebook2.Cell))
|
|
24
|
+
}).pipe(Type.Obj({
|
|
25
|
+
typename: "dxos.org/type/Notebook",
|
|
26
|
+
version: "0.1.0"
|
|
27
|
+
}), LabelAnnotation.set([
|
|
28
|
+
"name"
|
|
29
|
+
]));
|
|
30
|
+
Notebook2.make = (props = {
|
|
31
|
+
cells: []
|
|
32
|
+
}) => Obj.make(Notebook2.Notebook, props);
|
|
33
|
+
})(Notebook || (Notebook = {}));
|
|
34
|
+
var ScriptSettings = Schema.mutable(Schema.Struct({
|
|
35
|
+
editorInputMode: EditorInputMode
|
|
36
|
+
}));
|
|
37
|
+
var Notebook;
|
|
38
|
+
|
|
39
|
+
// src/types/actions.ts
|
|
40
|
+
(function(ScriptAction2) {
|
|
41
|
+
ScriptAction2.ScriptProps = Schema2.Struct({
|
|
42
|
+
name: Schema2.optional(Schema2.String),
|
|
43
|
+
// TODO(wittjosiah): Placeholder annotation?
|
|
44
|
+
gistUrl: Schema2.optional(Schema2.String.annotations({
|
|
45
|
+
title: "Import from Gist (url)"
|
|
46
|
+
})),
|
|
47
|
+
initialTemplateId: Schema2.optional(Schema2.String)
|
|
48
|
+
});
|
|
49
|
+
class CreateScript extends Schema2.TaggedClass()(`${meta.id}/action/create-script`, {
|
|
50
|
+
input: Schema2.extend(ScriptAction2.ScriptProps, Schema2.Struct({
|
|
51
|
+
space: SpaceSchema
|
|
52
|
+
})),
|
|
53
|
+
output: Schema2.Struct({
|
|
54
|
+
object: ScriptType
|
|
55
|
+
})
|
|
56
|
+
}) {
|
|
57
|
+
}
|
|
58
|
+
ScriptAction2.CreateScript = CreateScript;
|
|
59
|
+
ScriptAction2.NotebookProps = Schema2.Struct({
|
|
60
|
+
name: Schema2.optional(Schema2.String)
|
|
61
|
+
});
|
|
62
|
+
class CreateNotebook extends Schema2.TaggedClass()(`${meta.id}/action/create-notebook`, {
|
|
63
|
+
input: Schema2.extend(ScriptAction2.NotebookProps, Schema2.Struct({
|
|
64
|
+
space: SpaceSchema
|
|
65
|
+
})),
|
|
66
|
+
output: Schema2.Struct({
|
|
67
|
+
object: Notebook.Notebook
|
|
68
|
+
})
|
|
69
|
+
}) {
|
|
70
|
+
}
|
|
71
|
+
ScriptAction2.CreateNotebook = CreateNotebook;
|
|
72
|
+
})(ScriptAction || (ScriptAction = {}));
|
|
73
|
+
var ScriptAction;
|
|
74
|
+
|
|
75
|
+
export {
|
|
76
|
+
ScriptSettings,
|
|
77
|
+
Notebook,
|
|
78
|
+
ScriptAction
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=chunk-SWBZUZDX.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/actions.ts", "../../../src/types/schema.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { ScriptType } from '@dxos/functions';\n\nimport { meta } from '../meta';\n\nimport { Notebook } from './schema';\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.optional(Schema.String),\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: ScriptType,\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 { Obj, Type } from '@dxos/echo';\nimport { LabelAnnotation } from '@dxos/echo/internal';\nimport { EditorInputMode } from '@dxos/react-ui-editor';\nimport { DataType } from '@dxos/schema';\n\nexport namespace Notebook {\n export const Cell = Schema.Struct({\n id: Schema.String,\n script: Type.Ref(DataType.Text),\n });\n\n export type Cell = Schema.Schema.Type<typeof Cell>;\n\n export const Notebook = Schema.Struct({\n name: Schema.optional(Schema.String),\n cells: Schema.mutable(Schema.Array(Cell)),\n }).pipe(\n Type.Obj({\n typename: 'dxos.org/type/Notebook',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n );\n\n export type Notebook = Schema.Schema.Type<typeof Notebook>;\n\n export const make = (props: Obj.MakeProps<typeof Notebook> = { cells: [] }) => Obj.make(Notebook, props);\n}\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,kBAAkB;;;ACH3B,YAAYC,YAAY;AAExB,SAASC,KAAKC,YAAY;AAC1B,SAASC,uBAAuB;AAChC,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;UAERC,WAAAA;YACFC,OAAcC,cAAO;IAChCC,IAAWC;IACXC,QAAQC,KAAKC,IAAIC,SAASC,IAAI;EAChC,CAAA;YAIaT,WAAkBE,cAAO;IACpCQ,MAAaC,gBAAgBP,aAAM;IACnCQ,OAAcC,eAAeC,aAAKd,UAACC,IAAAA,CAAAA;EACrC,CAAA,EAAGc,KACDT,KAAKU,IAAI;IACPC,UAAU;IACVC,SAAS;EACX,CAAA,GACAC,gBAAgBC,IAAI;IAAC;GAAO,CAAA;YAKjBC,OAAO,CAACC,QAAwC;IAAEV,OAAO,CAAA;EAAG,MAAMI,IAAIK,KAAIrB,UAACA,UAAUsB,KAAAA;AACpG,GAtBiBtB,aAAAA,WAAAA,CAAAA,EAAAA;AAwBV,IAAMuB,iBAAwBV,eAC5BX,cAAO;EACZsB,iBAAiBC;AACnB,CAAA,CAAA;;;;UDzBeC,eAAAA;gBACFC,cAAqBC,eAAO;IACvCC,MAAaC,iBAAgBC,cAAM;;IAEnCC,SAAgBF,iBAAgBC,eAAOE,YAAY;MAAEC,OAAO;IAAyB,CAAA,CAAA;IACrFC,mBAA0BL,iBAAgBC,cAAM;EAClD,CAAA;EAEO,MAAMK,qBAA4BC,oBAAW,EAAiB,GAAGC,KAAKC,EAAE,yBAAyB;IACtGC,OAAcC,eAAMf,cAClBC,aACOC,eAAO;MACZc,OAAOC;IACT,CAAA,CAAA;IAEFC,QAAehB,eAAO;MACpBiB,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBAVSV,eAAAA;gBAYAW,gBAAuBnB,eAAO;IACzCC,MAAaC,iBAAgBC,cAAM;EACrC,CAAA;EAEO,MAAMiB,uBAA8BX,oBAAW,EAAmB,GAAGC,KAAKC,EAAE,2BAA2B;IAC5GC,OAAcC,eAAMf,cAClBqB,eACOnB,eAAO;MACZc,OAAOC;IACT,CAAA,CAAA;IAEFC,QAAehB,eAAO;MACpBiB,QAAQI,SAASA;IACnB,CAAA;EACF,CAAA,EAAA;EAAI;gBAVSD,iBAAAA;AAWf,GAnCiBtB,iBAAAA,eAAAA,CAAAA,EAAAA;;",
|
|
6
|
+
"names": ["Schema", "SpaceSchema", "ScriptType", "Schema", "Obj", "Type", "LabelAnnotation", "EditorInputMode", "DataType", "Notebook", "Cell", "Struct", "id", "String", "script", "Type", "Ref", "DataType", "Text", "name", "optional", "cells", "mutable", "Array", "pipe", "Obj", "typename", "version", "LabelAnnotation", "set", "make", "props", "ScriptSettings", "editorInputMode", "EditorInputMode", "ScriptAction", "ScriptProps", "Struct", "name", "optional", "String", "gistUrl", "annotations", "title", "initialTemplateId", "CreateScript", "TaggedClass", "meta", "id", "input", "extend", "space", "SpaceSchema", "output", "object", "ScriptType", "NotebookProps", "CreateNotebook", "Notebook"]
|
|
7
|
+
}
|