@dxos/plugin-script 0.8.4-main.2c6827d → 0.8.4-main.3c1ae3b
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-FIHD4UVK.mjs +15 -0
- package/dist/lib/browser/{NotebookContainer-RTESC4OV.mjs → NotebookContainer-GL2Z5I5Q.mjs} +26 -26
- package/dist/lib/browser/NotebookContainer-GL2Z5I5Q.mjs.map +7 -0
- package/dist/lib/browser/{ScriptContainer-T2BAZDJ4.mjs → ScriptContainer-F4OK3OG6.mjs} +9 -7
- package/dist/lib/browser/ScriptContainer-F4OK3OG6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-4M7U2WVT.mjs → chunk-2SXDKBM7.mjs} +7 -7
- package/dist/lib/browser/chunk-2SXDKBM7.mjs.map +7 -0
- package/dist/lib/browser/{chunk-M6KJPUJK.mjs → chunk-6X7QVTRB.mjs} +4 -3
- package/dist/lib/browser/{chunk-M6KJPUJK.mjs.map → chunk-6X7QVTRB.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-3IJASGG5.mjs → chunk-75RTLLH4.mjs} +2 -2
- package/dist/lib/browser/{chunk-GAFCKEII.mjs → chunk-7WFISUBY.mjs} +11 -10
- package/dist/lib/browser/chunk-7WFISUBY.mjs.map +7 -0
- package/dist/lib/browser/{chunk-LNNCD2H4.mjs → chunk-MQHBMJLH.mjs} +7 -6
- package/dist/lib/browser/chunk-MQHBMJLH.mjs.map +7 -0
- package/dist/lib/browser/{chunk-2G2NA6DQ.mjs → chunk-S22N3BUR.mjs} +5 -5
- package/dist/lib/browser/chunk-S22N3BUR.mjs.map +7 -0
- package/dist/lib/browser/{chunk-5JSNQYZZ.mjs → chunk-UGDRMROB.mjs} +147 -122
- package/dist/lib/browser/chunk-UGDRMROB.mjs.map +7 -0
- package/dist/lib/browser/compiler-2HV5KXV4.mjs +143 -0
- package/dist/lib/browser/compiler-2HV5KXV4.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +40 -58
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/{intent-resolver-AFJ575VK.mjs → intent-resolver-3B4ESSCU.mjs} +9 -8
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-QEQ3QUQA.mjs → react-surface-ASV2KBRA.mjs} +15 -15
- package/dist/lib/browser/react-surface-ASV2KBRA.mjs.map +7 -0
- package/dist/lib/browser/{settings-LNLSTZM4.mjs → settings-4NKLTJTT.mjs} +3 -3
- package/dist/lib/browser/templates/index.mjs +1 -1
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/{DeploymentDialog-GL5AUWMR.mjs → DeploymentDialog-5EN2KZE5.mjs} +6 -5
- package/dist/lib/node-esm/{NotebookContainer-SVD3A3D6.mjs → NotebookContainer-7RCEXND7.mjs} +26 -26
- package/dist/lib/node-esm/NotebookContainer-7RCEXND7.mjs.map +7 -0
- package/dist/lib/node-esm/{ScriptContainer-2CE3H3JJ.mjs → ScriptContainer-763IAKOD.mjs} +9 -7
- package/dist/lib/node-esm/ScriptContainer-763IAKOD.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-57JA6XL5.mjs → chunk-2S43VHAM.mjs} +5 -5
- package/dist/lib/node-esm/chunk-2S43VHAM.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-NNHWLRHT.mjs → chunk-32AMTGGN.mjs} +7 -6
- package/dist/lib/node-esm/chunk-32AMTGGN.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-IQTBVH4L.mjs → chunk-4VVV5L5A.mjs} +147 -122
- package/dist/lib/node-esm/chunk-4VVV5L5A.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-RIE676OW.mjs → chunk-535YDI5V.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-HDKR5WCD.mjs → chunk-6H4FYMCX.mjs} +4 -3
- package/dist/lib/node-esm/{chunk-HDKR5WCD.mjs.map → chunk-6H4FYMCX.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-KJKZ4KNO.mjs → chunk-DKS2EQW6.mjs} +11 -10
- package/dist/lib/node-esm/chunk-DKS2EQW6.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-YRTA4EHU.mjs → chunk-NQN3JE2R.mjs} +7 -7
- package/dist/lib/node-esm/chunk-NQN3JE2R.mjs.map +7 -0
- package/dist/lib/node-esm/compiler-KPEZKEHC.mjs +144 -0
- package/dist/lib/node-esm/compiler-KPEZKEHC.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +40 -58
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{intent-resolver-A5VVK746.mjs → intent-resolver-GIACMXI4.mjs} +9 -8
- package/dist/lib/{browser/intent-resolver-AFJ575VK.mjs.map → node-esm/intent-resolver-GIACMXI4.mjs.map} +1 -1
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-U77YT7VF.mjs → react-surface-NXBO7VYB.mjs} +15 -15
- package/dist/lib/node-esm/react-surface-NXBO7VYB.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-IUFMOCXY.mjs → settings-PW5NXWLW.mjs} +3 -3
- package/dist/lib/node-esm/templates/index.mjs +1 -1
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/compiler/compiler.d.ts +1 -1
- package/dist/types/src/compiler/compiler.d.ts.map +1 -1
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +3 -0
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.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.map +1 -1
- package/dist/types/src/components/NotebookContainer.stories.d.ts +3 -0
- package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +3 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
- package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
- package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
- package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
- package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
- package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
- package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
- package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +3 -0
- 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/e2e/deploy.test.d.ts +2 -0
- package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
- package/dist/types/src/hooks/deploy.d.ts +3 -21
- package/dist/types/src/hooks/deploy.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +1 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useCompiler.d.ts +7 -0
- package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
- package/dist/types/src/templates/chess.d.ts +6 -1
- package/dist/types/src/templates/chess.d.ts.map +1 -1
- package/dist/types/src/templates/forex-effect.d.ts +4 -1
- package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
- package/dist/types/src/templates/forex.d.ts +4 -1
- package/dist/types/src/templates/forex.d.ts.map +1 -1
- package/dist/types/src/testing/deploy.test.d.ts +2 -0
- package/dist/types/src/testing/deploy.test.d.ts.map +1 -0
- package/dist/types/src/testing/simulator.test.d.ts +2 -0
- package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +2 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Notebook.d.ts +7 -7
- package/dist/types/src/types/Notebook.d.ts.map +1 -1
- package/dist/types/src/types/actions.d.ts +3 -3
- package/dist/types/src/util/deploy.d.ts.map +1 -1
- package/dist/types/src/util/functions.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +63 -59
- package/src/ScriptPlugin.tsx +13 -28
- package/src/capabilities/artifact-definition.ts +11 -11
- package/src/capabilities/compiler.ts +66 -16
- package/src/capabilities/react-surface.tsx +5 -6
- package/src/compiler/compiler.ts +10 -3
- package/src/components/FrameContainer/FrameContainer.tsx +3 -1
- package/src/components/NotebookContainer.tsx +14 -17
- package/src/components/NotebookStack/NotebookCell.tsx +6 -4
- package/src/components/QueryEditor/QueryEditor.stories.tsx +89 -0
- package/src/components/QueryEditor/QueryEditor.tsx +47 -0
- package/src/components/QueryEditor/index.ts +5 -0
- package/src/components/ScriptContainer.tsx +3 -2
- package/src/components/Settings/ScriptObjectSettings.tsx +5 -4
- package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +1 -1
- package/src/components/TypescriptEditor/TypescriptEditor.tsx +2 -2
- package/src/e2e/deploy.test.ts +64 -0
- package/src/hooks/deploy.ts +3 -2
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useCompiler.ts +23 -0
- package/src/templates/chess.ts +9 -8
- package/src/templates/data-generator.ts +1 -1
- package/src/templates/forex-effect.ts +22 -27
- package/src/templates/forex.ts +7 -6
- package/src/testing/deploy.test.ts +63 -0
- package/src/testing/simulator.test.ts +40 -0
- package/src/translations.ts +2 -0
- package/src/types/Notebook.ts +5 -4
- package/src/util/deploy.ts +18 -28
- package/src/util/functions.ts +3 -2
- package/src/vite-env.d.ts +2 -0
- package/dist/lib/browser/DeploymentDialog-MZX4T77L.mjs +0 -14
- package/dist/lib/browser/NotebookContainer-RTESC4OV.mjs.map +0 -7
- package/dist/lib/browser/ScriptContainer-T2BAZDJ4.mjs.map +0 -7
- package/dist/lib/browser/chunk-2G2NA6DQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-4M7U2WVT.mjs.map +0 -7
- package/dist/lib/browser/chunk-5JSNQYZZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-GAFCKEII.mjs.map +0 -7
- package/dist/lib/browser/chunk-LNNCD2H4.mjs.map +0 -7
- package/dist/lib/browser/compiler-4KHRSX7J.mjs +0 -86
- package/dist/lib/browser/compiler-4KHRSX7J.mjs.map +0 -7
- package/dist/lib/browser/react-surface-QEQ3QUQA.mjs.map +0 -7
- package/dist/lib/node-esm/NotebookContainer-SVD3A3D6.mjs.map +0 -7
- package/dist/lib/node-esm/ScriptContainer-2CE3H3JJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-57JA6XL5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-IQTBVH4L.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KJKZ4KNO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NNHWLRHT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-YRTA4EHU.mjs.map +0 -7
- package/dist/lib/node-esm/compiler-DU5NQISX.mjs +0 -87
- package/dist/lib/node-esm/compiler-DU5NQISX.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-U77YT7VF.mjs.map +0 -7
- /package/dist/lib/browser/{DeploymentDialog-MZX4T77L.mjs.map → DeploymentDialog-FIHD4UVK.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-3IJASGG5.mjs.map → chunk-75RTLLH4.mjs.map} +0 -0
- /package/dist/lib/{node-esm/intent-resolver-A5VVK746.mjs.map → browser/intent-resolver-3B4ESSCU.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-LNLSTZM4.mjs.map → settings-4NKLTJTT.mjs.map} +0 -0
- /package/dist/lib/node-esm/{DeploymentDialog-GL5AUWMR.mjs.map → DeploymentDialog-5EN2KZE5.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-RIE676OW.mjs.map → chunk-535YDI5V.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-IUFMOCXY.mjs.map → settings-PW5NXWLW.mjs.map} +0 -0
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
getAccessCredential,
|
|
4
4
|
useDeployState,
|
|
5
5
|
useToolbarState
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-4VVV5L5A.mjs";
|
|
7
7
|
import {
|
|
8
8
|
meta
|
|
9
9
|
} from "./chunk-IBV2DR36.mjs";
|
|
@@ -16,11 +16,12 @@ import { ToolId } from "@dxos/ai";
|
|
|
16
16
|
import { SettingsAction, createIntent } from "@dxos/app-framework";
|
|
17
17
|
import { useIntentDispatcher } from "@dxos/app-framework/react";
|
|
18
18
|
import { Blueprint, Template } from "@dxos/blueprints";
|
|
19
|
+
import { Filter, Obj, Ref } from "@dxos/echo";
|
|
19
20
|
import { Function, getUserFunctionIdInMetadata } from "@dxos/functions";
|
|
20
21
|
import { getInvocationUrl } from "@dxos/functions-runtime";
|
|
21
22
|
import { log } from "@dxos/log";
|
|
22
23
|
import { useClient } from "@dxos/react-client";
|
|
23
|
-
import {
|
|
24
|
+
import { getSpace, useQuery } from "@dxos/react-client/echo";
|
|
24
25
|
import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from "@dxos/react-ui";
|
|
25
26
|
import { AccessToken } from "@dxos/types";
|
|
26
27
|
import { kebabize } from "@dxos/util";
|
|
@@ -160,7 +161,7 @@ var Binding = ({ object }) => {
|
|
|
160
161
|
const [fn] = useQuery(space, Filter.type(Function.Function, {
|
|
161
162
|
source: Ref.make(object)
|
|
162
163
|
}));
|
|
163
|
-
const functionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
|
|
164
|
+
const functionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
|
|
164
165
|
const functionUrl = functionId && getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? "", {
|
|
165
166
|
spaceId: space?.id
|
|
166
167
|
});
|
|
@@ -218,7 +219,7 @@ var Publishing = ({ object }) => {
|
|
|
218
219
|
const [githubToken] = useQuery(space, Filter.type(AccessToken.AccessToken, {
|
|
219
220
|
source: "github.com"
|
|
220
221
|
}));
|
|
221
|
-
const gistKey = getMeta(object).keys.find(({ source }) => source === "github.com");
|
|
222
|
+
const gistKey = Obj.getMeta(object).keys.find(({ source }) => source === "github.com");
|
|
222
223
|
const [gistUrl, setGistUrl] = useState();
|
|
223
224
|
useAsyncEffect(async () => {
|
|
224
225
|
const token = githubToken?.token;
|
|
@@ -238,7 +239,7 @@ var Publishing = ({ object }) => {
|
|
|
238
239
|
} catch (err) {
|
|
239
240
|
log.catch(err, void 0, {
|
|
240
241
|
F: __dxlog_file,
|
|
241
|
-
L:
|
|
242
|
+
L: 229,
|
|
242
243
|
S: void 0,
|
|
243
244
|
C: (f, a) => f(...a)
|
|
244
245
|
});
|
|
@@ -265,7 +266,7 @@ var Publishing = ({ object }) => {
|
|
|
265
266
|
}
|
|
266
267
|
};
|
|
267
268
|
try {
|
|
268
|
-
const meta2 = getMeta(object);
|
|
269
|
+
const meta2 = Obj.getMeta(object);
|
|
269
270
|
const githubKey = meta2.keys.find(({ source: source2 }) => source2 === "github.com");
|
|
270
271
|
const gistId = githubKey?.id;
|
|
271
272
|
if (gistId) {
|
|
@@ -630,9 +631,9 @@ var TestContainer = ({ script }) => {
|
|
|
630
631
|
|
|
631
632
|
// src/components/index.ts
|
|
632
633
|
import { lazy } from "react";
|
|
633
|
-
var ScriptContainer = lazy(() => import("./ScriptContainer-
|
|
634
|
-
var DeploymentDialog = lazy(() => import("./DeploymentDialog-
|
|
635
|
-
var NotebookContainer = lazy(() => import("./NotebookContainer-
|
|
634
|
+
var ScriptContainer = lazy(() => import("./ScriptContainer-763IAKOD.mjs"));
|
|
635
|
+
var DeploymentDialog = lazy(() => import("./DeploymentDialog-5EN2KZE5.mjs"));
|
|
636
|
+
var NotebookContainer = lazy(() => import("./NotebookContainer-7RCEXND7.mjs"));
|
|
636
637
|
|
|
637
638
|
export {
|
|
638
639
|
ScriptObjectSettings,
|
|
@@ -644,4 +645,4 @@ export {
|
|
|
644
645
|
DeploymentDialog,
|
|
645
646
|
NotebookContainer
|
|
646
647
|
};
|
|
647
|
-
//# sourceMappingURL=chunk-
|
|
648
|
+
//# sourceMappingURL=chunk-DKS2EQW6.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 { Filter, Obj, Ref } from '@dxos/echo';\nimport { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { getInvocationUrl } from '@dxos/functions-runtime';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { 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(Obj.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 = Obj.getMeta(object).keys.find(({ source }) => source === 'github.com');\n const [gistUrl, setGistUrl] = useState<string | undefined>();\n\n useAsyncEffect(async () => {\n const token = githubToken?.token;\n const gistId = gistKey?.id;\n if (!token || !gistId) {\n setGistUrl(undefined);\n return;\n }\n\n try {\n const octokit = new Octokit({ auth: githubToken.token });\n const response = await octokit.request('GET /gists/{gist_id}', {\n gist_id: gistId,\n });\n setGistUrl(response.data.html_url);\n } catch (err) {\n log.catch(err);\n setGistUrl(undefined);\n }\n }, [githubToken, gistKey]);\n\n const handleOpenTokenManager = useCallback(\n () =>\n 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 = Obj.getMeta(object);\n const githubKey = meta.keys.find(({ source }) => source === 'github.com');\n const gistId = githubKey?.id;\n if (gistId) {\n await octokit.request('PATCH /gists/{gist_id}', {\n gist_id: gistId,\n files,\n });\n } else {\n const response = await octokit.request('POST /gists', {\n public: true,\n files,\n });\n 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", "Filter", "Obj", "Ref", "Function", "getUserFunctionIdInMetadata", "getInvocationUrl", "log", "useClient", "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", "Obj", "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,7 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
TypescriptEditor
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-6H4FYMCX.mjs";
|
|
5
5
|
import {
|
|
6
6
|
meta
|
|
7
7
|
} from "./chunk-IBV2DR36.mjs";
|
|
@@ -40,9 +40,9 @@ import { Stack, StackItem } from "@dxos/react-ui-stack";
|
|
|
40
40
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
41
41
|
import React2, { useCallback, useMemo } from "react";
|
|
42
42
|
import { Surface } from "@dxos/app-framework/react";
|
|
43
|
+
import { createDocAccessor } from "@dxos/echo-db";
|
|
43
44
|
import { invariant } from "@dxos/invariant";
|
|
44
45
|
import { TemplateEditor } from "@dxos/plugin-assistant";
|
|
45
|
-
import { createDocAccessor } from "@dxos/react-client/echo";
|
|
46
46
|
import { useThemeContext, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
47
47
|
import { QueryEditor } from "@dxos/react-ui-components";
|
|
48
48
|
import { EditorContent, createBasicExtensions, createDataExtensions, createMarkdownExtensions, createThemeExtensions, decorateMarkdown } from "@dxos/react-ui-editor";
|
|
@@ -67,7 +67,7 @@ var NotebookCell = ({ space, graph, dragging, cell, promptResults, env }) => {
|
|
|
67
67
|
}, [
|
|
68
68
|
cell.source?.target
|
|
69
69
|
]);
|
|
70
|
-
const
|
|
70
|
+
const explorerGraph = cell.graph?.target;
|
|
71
71
|
const handleQueryChange = useCallback((value) => {
|
|
72
72
|
invariant(cell.source?.target, void 0, {
|
|
73
73
|
F: __dxlog_file,
|
|
@@ -118,7 +118,7 @@ var NotebookCell = ({ space, graph, dragging, cell, promptResults, env }) => {
|
|
|
118
118
|
return null;
|
|
119
119
|
}
|
|
120
120
|
return /* @__PURE__ */ React2.createElement("div", {
|
|
121
|
-
className: mx("bs-full overflow-hidden grid",
|
|
121
|
+
className: mx("bs-full overflow-hidden grid", explorerGraph && !dragging && "grid-rows-[min-content_1fr]")
|
|
122
122
|
}, /* @__PURE__ */ React2.createElement(QueryEditor, {
|
|
123
123
|
id: cell.id,
|
|
124
124
|
classNames: [
|
|
@@ -128,11 +128,11 @@ var NotebookCell = ({ space, graph, dragging, cell, promptResults, env }) => {
|
|
|
128
128
|
db: space?.db,
|
|
129
129
|
value: cell.source.target.content,
|
|
130
130
|
onChange: handleQueryChange
|
|
131
|
-
}),
|
|
131
|
+
}), explorerGraph && !dragging && /* @__PURE__ */ React2.createElement(Surface, {
|
|
132
132
|
role: "section",
|
|
133
133
|
limit: 1,
|
|
134
134
|
data: {
|
|
135
|
-
subject:
|
|
135
|
+
subject: explorerGraph
|
|
136
136
|
}
|
|
137
137
|
}));
|
|
138
138
|
// TODO(burdon): Use streaming response from Chat.
|
|
@@ -302,4 +302,4 @@ export {
|
|
|
302
302
|
NotebookMenu,
|
|
303
303
|
NotebookStack
|
|
304
304
|
};
|
|
305
|
-
//# sourceMappingURL=chunk-
|
|
305
|
+
//# sourceMappingURL=chunk-NQN3JE2R.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/NotebookStack/NotebookMenu.tsx", "../../../src/components/NotebookStack/NotebookStack.tsx", "../../../src/components/NotebookStack/NotebookCell.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DropdownMenu, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../../meta';\nimport { type Notebook } from '../../types';\n\nexport type NotebookMenuProps = {\n cell?: Notebook.Cell;\n onCellInsert?: (type: Notebook.CellType, after: string | undefined) => void;\n onCellDelete?: (id: string) => void;\n};\n\n// TODO(burdon): Better way to organize menu?\nexport const NotebookMenu = ({ cell, onCellInsert, onCellDelete }: NotebookMenuProps) => {\n const { t } = useTranslation(meta.id);\n return (\n <DropdownMenu.Portal>\n <DropdownMenu.Content>\n <DropdownMenu.Viewport>\n <DropdownMenu.Item onClick={() => onCellInsert?.('script', cell?.id)}>\n {t('notebook cell insert script label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('prompt', cell?.id)}>\n {t('notebook cell insert prompt label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('query', cell?.id)}>\n {t('notebook cell insert query label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('markdown', cell?.id)}>\n {t('notebook cell insert markdown label')}\n </DropdownMenu.Item>\n {cell && onCellDelete && (\n <DropdownMenu.Item onClick={() => onCellDelete?.(cell.id)}>\n {t('notebook cell delete label')}\n </DropdownMenu.Item>\n )}\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DropdownMenu, IconButton, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport { Stack, StackItem, type StackProps } from '@dxos/react-ui-stack';\n\nimport { meta } from '../../meta';\nimport { type Notebook } from '../../types';\nimport { type TypescriptEditorProps } from '../TypescriptEditor';\n\nimport { NotebookCell, type NotebookCellProps } from './NotebookCell';\nimport { NotebookMenu } from './NotebookMenu';\n\nconst minSectionHeight = 'min-bs-[16rem]';\n\nexport type NotebookStackProps = ThemedClassName<\n {\n notebook?: Notebook.Notebook;\n onRearrange?: StackProps['onRearrange'];\n } & (Pick<NotebookSectionProps, 'space' | 'graph' | 'promptResults' | 'onCellInsert' | 'onCellDelete'> &\n Pick<TypescriptEditorProps, 'env'>)\n>;\n\n// TODO(burdon): Option for narrow rail (with compact buttons that align with first button in toolbar).\nexport const NotebookStack = ({ classNames, notebook, onRearrange, ...props }: NotebookStackProps) => {\n return (\n <Stack classNames={classNames} orientation='vertical' size='contain' rail onRearrange={onRearrange}>\n {notebook?.cells.map((cell, i) => (\n <NotebookSection key={i} cell={cell} {...props} />\n ))}\n </Stack>\n );\n};\n\ntype NotebookSectionProps = NotebookCellProps;\n\nconst NotebookSection = ({\n cell,\n space,\n env,\n promptResults,\n onCellInsert,\n onCellDelete,\n ...props\n}: NotebookSectionProps) => {\n const { t } = useTranslation(meta.id);\n const resizable = cell.type === 'query';\n\n return (\n <StackItem.Root role='section' item={cell} draggable classNames={resizable && minSectionHeight}>\n <StackItem.Heading classNames='bs-full p-1 justify-between attention-surface'>\n <StackItem.DragHandle asChild>\n <IconButton variant='ghost' icon='ph--dots-six-vertical--regular' iconOnly label='Drag handle' />\n </StackItem.DragHandle>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton\n variant='ghost'\n icon='ph--dots-three--regular'\n iconOnly\n label={t('notebook cell insert label')}\n />\n </DropdownMenu.Trigger>\n <NotebookMenu cell={cell} onCellInsert={onCellInsert} onCellDelete={onCellDelete} />\n </DropdownMenu.Root>\n {resizable && <StackItem.ResizeHandle />}\n </StackItem.Heading>\n\n {/* TODO(burdon): Move drag preview to outer stack (uniformly). */}\n <StackItem.DragPreview>\n {({ item: cell }) => (\n <StackItem.Content classNames='overflow-visible bg-groupSurface border border-subduedSeparator'>\n <NotebookCell space={space} cell={cell} env={env} dragging />\n </StackItem.Content>\n )}\n </StackItem.DragPreview>\n\n <StackItem.Content classNames='overflow-visible'>\n <NotebookCell space={space} cell={cell} env={env} promptResults={promptResults} {...props} />\n </StackItem.Content>\n </StackItem.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Surface } from '@dxos/app-framework/react';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { TemplateEditor } from '@dxos/plugin-assistant';\nimport { type Space } from '@dxos/react-client/echo';\nimport { useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-components';\nimport {\n type BasicExtensionsOptions,\n EditorContent,\n type EditorContentProps,\n createBasicExtensions,\n createDataExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n decorateMarkdown,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '../../meta';\nimport { type ComputeGraph } from '../../notebook';\nimport { type Notebook } from '../../types';\nimport { TypescriptEditor, type TypescriptEditorProps } from '../TypescriptEditor';\n\nimport { type NotebookMenuProps } from './NotebookMenu';\n\nconst editorStyles = 'p-2 pis-3';\nconst valueStyles = 'p-1 pis-3';\n\nexport type NotebookCellProps = {\n space?: Space;\n graph?: ComputeGraph;\n dragging?: boolean;\n cell: Notebook.Cell;\n promptResults?: Record<string, string>;\n} & (Pick<NotebookMenuProps, 'onCellInsert' | 'onCellDelete'> & Pick<TypescriptEditorProps, 'env'>);\n\n// TODO(burdon): Show evaluation errors.\nexport const NotebookCell = ({ space, graph, dragging, cell, promptResults, env }: NotebookCellProps) => {\n const { t } = useTranslation(meta.id);\n\n const extensions = useMemo(() => {\n return cell.source?.target\n ? [\n createDataExtensions({\n id: cell.id,\n text: createDocAccessor(cell.source.target, ['content']),\n }),\n ].filter(isNonNullable)\n : [];\n }, [cell.source?.target]);\n\n const explorerGraph = cell.graph?.target;\n\n const handleQueryChange = useCallback<NonNullable<QueryEditorProps['onChange']>>(\n (value: string) => {\n invariant(cell.source?.target);\n cell.source.target.content = value;\n },\n [cell],\n );\n\n switch (cell.type) {\n case 'markdown':\n if (!cell.source?.target) {\n return null;\n }\n\n return (\n <NotebookTextEditor\n id={cell.id}\n classNames={editorStyles}\n initialValue={cell.source.target.content}\n extensions={extensions}\n />\n );\n\n case 'script':\n if (!cell.source?.target) {\n return null;\n }\n\n return (\n <>\n <TypescriptEditor\n id={cell.id}\n role='section'\n classNames={editorStyles}\n initialValue={cell.source.target.content}\n extensions={extensions}\n env={env}\n options={{\n placeholder: t('notebook cell placeholder'),\n highlightActiveLine: false,\n lineNumbers: false,\n }}\n />\n <NotebookCellValue cell={cell} graph={graph} />\n </>\n );\n\n case 'query':\n if (!cell.source?.target) {\n return null;\n }\n\n // TODO(burdon): Remove app-framework deps (via render prop).\n return (\n <div\n className={mx('bs-full overflow-hidden grid', explorerGraph && !dragging && 'grid-rows-[min-content_1fr]')}\n >\n <QueryEditor\n id={cell.id}\n classNames={[editorStyles, 'border-be border-subduedSeparator']}\n db={space?.db}\n value={cell.source.target.content}\n onChange={handleQueryChange}\n />\n {explorerGraph && !dragging && <Surface role='section' limit={1} data={{ subject: explorerGraph }} />}\n </div>\n );\n\n // TODO(burdon): Use streaming response from Chat.\n case 'prompt':\n if (!cell.prompt?.target) {\n return null;\n }\n\n return (\n <>\n <TemplateEditor\n id={cell.id}\n template={cell.prompt.target.instructions}\n lineNumbers={false}\n classNames={editorStyles}\n />\n <NotebookPromptResult cell={cell} promptResults={promptResults} />\n </>\n );\n\n default:\n return null;\n }\n};\n\nconst NotebookCellValue = ({ cell, graph }: NotebookCellProps) => {\n const name = graph?.expressions.value[cell.id]?.name;\n const value = graph?.getValue(cell.id);\n if (value == null) {\n return null;\n }\n\n return (\n <div\n className={mx(\n 'flex is-full bg-groupSurface border-t border-subduedSeparator text-description font-mono',\n valueStyles,\n )}\n >\n {name && (\n <>\n <span className='text-successText'>{name}</span>\n <span className='text-description'> = </span>\n </>\n )}\n <span>{value}</span>\n </div>\n );\n};\n\nconst NotebookPromptResult = ({ cell, promptResults }: NotebookCellProps) => {\n if (!cell.prompt) {\n return null;\n }\n\n const value = promptResults?.[cell.prompt.dxn.toString()];\n if (value == null) {\n return null;\n }\n\n return (\n <div className={mx('flex is-full bg-groupSurface text-description border-t border-subduedSeparator', valueStyles)}>\n <NotebookTextEditor readOnly value={value} />\n </div>\n );\n};\n\nconst NotebookTextEditor = ({\n extensions: extensionsParam,\n readOnly,\n ...props\n}: EditorContentProps & Pick<BasicExtensionsOptions, 'readOnly'>) => {\n const { t } = useTranslation(meta.id);\n const { themeMode } = useThemeContext();\n const extensions = useMemo(() => {\n return [\n createBasicExtensions({\n placeholder: t('notebook markdown placeholder'),\n readOnly,\n }),\n createThemeExtensions({ themeMode, syntaxHighlighting: true }),\n createMarkdownExtensions(),\n decorateMarkdown(),\n extensionsParam,\n ].filter(isNonNullable);\n }, [extensionsParam]);\n\n return <EditorContent {...props} extensions={extensions} selectionEnd />;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "DropdownMenu", "useTranslation", "NotebookMenu", "cell", "onCellInsert", "onCellDelete", "t", "useTranslation", "meta", "id", "DropdownMenu", "Portal", "Content", "Viewport", "Item", "onClick", "Arrow", "React", "DropdownMenu", "IconButton", "useTranslation", "Stack", "StackItem", "React", "useCallback", "useMemo", "Surface", "createDocAccessor", "invariant", "TemplateEditor", "useThemeContext", "useTranslation", "QueryEditor", "EditorContent", "createBasicExtensions", "createDataExtensions", "createMarkdownExtensions", "createThemeExtensions", "decorateMarkdown", "mx", "isNonNullable", "editorStyles", "valueStyles", "NotebookCell", "space", "graph", "dragging", "cell", "promptResults", "env", "t", "useTranslation", "meta", "id", "extensions", "useMemo", "source", "target", "createDataExtensions", "text", "createDocAccessor", "filter", "isNonNullable", "explorerGraph", "handleQueryChange", "useCallback", "value", "invariant", "content", "type", "React", "NotebookTextEditor", "classNames", "initialValue", "TypescriptEditor", "role", "options", "placeholder", "highlightActiveLine", "lineNumbers", "NotebookCellValue", "div", "className", "mx", "QueryEditor", "db", "onChange", "Surface", "limit", "data", "subject", "prompt", "TemplateEditor", "template", "instructions", "NotebookPromptResult", "name", "expressions", "getValue", "span", "dxn", "toString", "readOnly", "extensionsParam", "props", "themeMode", "useThemeContext", "createBasicExtensions", "createThemeExtensions", "syntaxHighlighting", "createMarkdownExtensions", "decorateMarkdown", "EditorContent", "selectionEnd", "minSectionHeight", "NotebookStack", "classNames", "notebook", "onRearrange", "props", "React", "Stack", "orientation", "size", "rail", "cells", "map", "cell", "i", "NotebookSection", "key", "space", "env", "promptResults", "onCellInsert", "onCellDelete", "t", "useTranslation", "meta", "id", "resizable", "type", "StackItem", "Root", "role", "item", "draggable", "Heading", "DragHandle", "asChild", "IconButton", "variant", "icon", "iconOnly", "label", "DropdownMenu", "Trigger", "NotebookMenu", "ResizeHandle", "DragPreview", "Content", "NotebookCell", "dragging"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
ScriptCapabilities
|
|
4
|
+
} from "./chunk-55JZVM6K.mjs";
|
|
5
|
+
import "./chunk-IBV2DR36.mjs";
|
|
6
|
+
import "./chunk-HSLMI22Q.mjs";
|
|
7
|
+
|
|
8
|
+
// src/capabilities/compiler.ts
|
|
9
|
+
import * as FetchHttpClient from "@effect/platform/FetchHttpClient";
|
|
10
|
+
import * as HttpClient from "@effect/platform/HttpClient";
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import * as Schedule from "effect/Schedule";
|
|
13
|
+
import * as Schema from "effect/Schema";
|
|
14
|
+
import wasmUrl from "esbuild-wasm/esbuild.wasm?url";
|
|
15
|
+
import * as ts2 from "typescript";
|
|
16
|
+
import { contributes } from "@dxos/app-framework";
|
|
17
|
+
import { initializeBundler } from "@dxos/functions-runtime/bundler";
|
|
18
|
+
import { trim } from "@dxos/util";
|
|
19
|
+
|
|
20
|
+
// src/compiler/compiler.ts
|
|
21
|
+
import { createDefaultMapFromCDN, createSystem, createVirtualTypeScriptEnvironment } from "@typescript/vfs";
|
|
22
|
+
import ts from "typescript";
|
|
23
|
+
import { invariant } from "@dxos/invariant";
|
|
24
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/compiler/compiler.ts";
|
|
25
|
+
var GLOBALS = "globals.d.ts";
|
|
26
|
+
var defaultOptions = {
|
|
27
|
+
lib: [
|
|
28
|
+
"DOM",
|
|
29
|
+
"es2022"
|
|
30
|
+
],
|
|
31
|
+
target: ts.ScriptTarget.ES2022
|
|
32
|
+
};
|
|
33
|
+
var Compiler = class {
|
|
34
|
+
_options;
|
|
35
|
+
_env;
|
|
36
|
+
_fsMap;
|
|
37
|
+
constructor(_options = defaultOptions) {
|
|
38
|
+
this._options = _options;
|
|
39
|
+
}
|
|
40
|
+
async initialize(globals) {
|
|
41
|
+
if (this._env) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this._fsMap = await createDefaultMapFromCDN(this._options, "5.7.2", true, ts);
|
|
45
|
+
if (globals) {
|
|
46
|
+
this._fsMap.set(GLOBALS, globals);
|
|
47
|
+
}
|
|
48
|
+
const rootFiles = globals ? [
|
|
49
|
+
GLOBALS
|
|
50
|
+
] : [];
|
|
51
|
+
const system = createSystem(this._fsMap);
|
|
52
|
+
this._env = createVirtualTypeScriptEnvironment(system, rootFiles, ts, this._options);
|
|
53
|
+
}
|
|
54
|
+
get environment() {
|
|
55
|
+
invariant(this._env, "Compiler environment not initialized.", {
|
|
56
|
+
F: __dxlog_file,
|
|
57
|
+
L: 46,
|
|
58
|
+
S: this,
|
|
59
|
+
A: [
|
|
60
|
+
"this._env",
|
|
61
|
+
"'Compiler environment not initialized.'"
|
|
62
|
+
]
|
|
63
|
+
});
|
|
64
|
+
return this._env;
|
|
65
|
+
}
|
|
66
|
+
setFile(fileName, content) {
|
|
67
|
+
invariant(this._fsMap, "File system map not initialized.", {
|
|
68
|
+
F: __dxlog_file,
|
|
69
|
+
L: 51,
|
|
70
|
+
S: this,
|
|
71
|
+
A: [
|
|
72
|
+
"this._fsMap",
|
|
73
|
+
"'File system map not initialized.'"
|
|
74
|
+
]
|
|
75
|
+
});
|
|
76
|
+
this.environment.createFile(fileName, content);
|
|
77
|
+
}
|
|
78
|
+
compile(fileName) {
|
|
79
|
+
return this.environment.languageService.getEmitOutput(fileName);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
// src/capabilities/compiler.ts
|
|
84
|
+
var SCRIPT_PACKAGES_BUCKET = "https://pub-5745ae82e450484aa28f75fc6a175935.r2.dev/dev/";
|
|
85
|
+
var DECLARATION_EXTS = [
|
|
86
|
+
".d.ts",
|
|
87
|
+
".d.mts"
|
|
88
|
+
];
|
|
89
|
+
var NO_TYPES = true;
|
|
90
|
+
var compiler_default = (async () => {
|
|
91
|
+
await initializeBundler({
|
|
92
|
+
wasmUrl
|
|
93
|
+
});
|
|
94
|
+
const runtimeModules = await Effect.runPromise(fetchRuntimeModules().pipe(Effect.provide(FetchHttpClient.layer)));
|
|
95
|
+
const compiler = new Compiler({
|
|
96
|
+
skipLibCheck: true,
|
|
97
|
+
moduleResolution: ts2.ModuleResolutionKind.Bundler,
|
|
98
|
+
allowImportingTsExtensions: true,
|
|
99
|
+
noEmit: true,
|
|
100
|
+
strict: true,
|
|
101
|
+
esModuleInterop: true,
|
|
102
|
+
paths: Object.fromEntries(runtimeModules.map((mod) => [
|
|
103
|
+
mod.moduleName,
|
|
104
|
+
[
|
|
105
|
+
`./src/${mod.filename}`
|
|
106
|
+
]
|
|
107
|
+
]))
|
|
108
|
+
});
|
|
109
|
+
await compiler.initialize(trim`
|
|
110
|
+
declare module 'https://*';
|
|
111
|
+
${NO_TYPES ? "" : 'declare module "*";'}
|
|
112
|
+
`);
|
|
113
|
+
if (!NO_TYPES) {
|
|
114
|
+
for (const mod of runtimeModules) {
|
|
115
|
+
compiler.setFile(`/src/${mod.filename}`, mod.content);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return contributes(ScriptCapabilities.Compiler, compiler);
|
|
119
|
+
});
|
|
120
|
+
var fetchRuntimeModules = Effect.fnUntraced(function* () {
|
|
121
|
+
const manifest = yield* HttpClient.get(new URL("manifest.json", SCRIPT_PACKAGES_BUCKET)).pipe(Effect.flatMap((_) => _.json), Effect.flatMap(Schema.decodeUnknown(Schema.Struct({
|
|
122
|
+
files: Schema.Array(Schema.String)
|
|
123
|
+
}))));
|
|
124
|
+
const declarationFiles = manifest.files.filter((file) => DECLARATION_EXTS.some((ext) => file.endsWith(ext)));
|
|
125
|
+
let fetched = 0;
|
|
126
|
+
const modules = yield* Effect.forEach(declarationFiles, Effect.fnUntraced(function* (file) {
|
|
127
|
+
const response = yield* HttpClient.get(new URL(file, SCRIPT_PACKAGES_BUCKET)).pipe(Effect.retry(Schedule.exponential(1e3).pipe(Schedule.compose(Schedule.recurs(3)))));
|
|
128
|
+
const content = yield* response.text;
|
|
129
|
+
fetched++;
|
|
130
|
+
const moduleName = file.replace(/\.d\.(ts|mts)$/, "");
|
|
131
|
+
return {
|
|
132
|
+
moduleName,
|
|
133
|
+
filename: file,
|
|
134
|
+
content
|
|
135
|
+
};
|
|
136
|
+
}, Effect.retry(Schedule.exponential(1e3).pipe(Schedule.compose(Schedule.recurs(3))))), {
|
|
137
|
+
concurrency: 20
|
|
138
|
+
});
|
|
139
|
+
return modules;
|
|
140
|
+
});
|
|
141
|
+
export {
|
|
142
|
+
compiler_default as default
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=compiler-KPEZKEHC.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/compiler.ts", "../../../src/compiler/compiler.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as FetchHttpClient from '@effect/platform/FetchHttpClient';\nimport * as HttpClient from '@effect/platform/HttpClient';\nimport * as Effect from 'effect/Effect';\nimport * as Schedule from 'effect/Schedule';\nimport * as Schema from 'effect/Schema';\nimport wasmUrl from 'esbuild-wasm/esbuild.wasm?url';\nimport * as ts from 'typescript';\n\nimport { contributes } from '@dxos/app-framework';\nimport { initializeBundler } from '@dxos/functions-runtime/bundler';\nimport { trim } from '@dxos/util';\n\nimport { Compiler } from '../compiler';\n\nimport { ScriptCapabilities } from './capabilities';\n\nconst SCRIPT_PACKAGES_BUCKET = 'https://pub-5745ae82e450484aa28f75fc6a175935.r2.dev/dev/';\nconst DECLARATION_EXTS = ['.d.ts', '.d.mts'];\nconst NO_TYPES = true; // Types temopararly disabled due to compiler erorrs.\n\nexport default async () => {\n await initializeBundler({ wasmUrl });\n\n const runtimeModules = await Effect.runPromise(fetchRuntimeModules().pipe(Effect.provide(FetchHttpClient.layer)));\n\n const compiler = new Compiler({\n skipLibCheck: true,\n moduleResolution: ts.ModuleResolutionKind.Bundler,\n allowImportingTsExtensions: true,\n noEmit: true,\n strict: true,\n esModuleInterop: true,\n paths: Object.fromEntries(runtimeModules.map((mod) => [mod.moduleName, [`./src/${mod.filename}`]])),\n });\n\n await compiler.initialize(trim`\n declare module 'https://*';\n ${NO_TYPES ? '' : 'declare module \"*\";'}\n `);\n if (!NO_TYPES) {\n for (const mod of runtimeModules) {\n compiler.setFile(`/src/${mod.filename}`, mod.content);\n }\n }\n\n return contributes(ScriptCapabilities.Compiler, compiler);\n};\n\nconst fetchRuntimeModules = Effect.fnUntraced(function* () {\n const manifest = yield* HttpClient.get(new URL('manifest.json', SCRIPT_PACKAGES_BUCKET)).pipe(\n Effect.flatMap((_) => _.json),\n Effect.flatMap(Schema.decodeUnknown(Schema.Struct({ files: Schema.Array(Schema.String) }))),\n );\n\n const declarationFiles = manifest.files.filter((file) => DECLARATION_EXTS.some((ext) => file.endsWith(ext)));\n\n let fetched = 0;\n const modules = yield* Effect.forEach(\n declarationFiles,\n Effect.fnUntraced(\n function* (file) {\n const response = yield* HttpClient.get(new URL(file, SCRIPT_PACKAGES_BUCKET)).pipe(\n Effect.retry(Schedule.exponential(1_000).pipe(Schedule.compose(Schedule.recurs(3)))),\n );\n const content = yield* response.text;\n fetched++;\n\n const moduleName = file.replace(/\\.d\\.(ts|mts)$/, '');\n return {\n moduleName,\n filename: file,\n content,\n };\n },\n Effect.retry(Schedule.exponential(1_000).pipe(Schedule.compose(Schedule.recurs(3)))),\n ),\n { concurrency: 20 },\n );\n return modules;\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n type VirtualTypeScriptEnvironment,\n createDefaultMapFromCDN,\n createSystem,\n createVirtualTypeScriptEnvironment,\n} from '@typescript/vfs';\nimport ts from 'typescript';\n\nimport { invariant } from '@dxos/invariant';\n\nconst GLOBALS = 'globals.d.ts';\n\nconst defaultOptions: ts.CompilerOptions = {\n lib: ['DOM', 'es2022'],\n target: ts.ScriptTarget.ES2022,\n};\n\nexport class Compiler {\n private _env: VirtualTypeScriptEnvironment | undefined;\n private _fsMap: Map<string, string> | undefined;\n\n constructor(private readonly _options: ts.CompilerOptions = defaultOptions) {}\n\n async initialize(globals?: string): Promise<void> {\n if (this._env) {\n return;\n }\n\n // TODO(wittjosiah): Figure out how to get workers working in plugin packages.\n // https://github.com/val-town/codemirror-ts?tab=readme-ov-file#setup-worker\n this._fsMap = await createDefaultMapFromCDN(this._options, '5.7.2', true, ts);\n if (globals) {\n this._fsMap.set(GLOBALS, globals);\n }\n\n const rootFiles = globals ? [GLOBALS] : [];\n const system = createSystem(this._fsMap);\n this._env = createVirtualTypeScriptEnvironment(system, rootFiles, ts, this._options);\n }\n\n get environment() {\n invariant(this._env, 'Compiler environment not initialized.');\n return this._env;\n }\n\n setFile(fileName: string, content: string): void {\n invariant(this._fsMap, 'File system map not initialized.');\n this.environment.createFile(fileName, content);\n }\n\n compile(fileName: string): ts.EmitOutput {\n return this.environment.languageService.getEmitOutput(fileName);\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["FetchHttpClient", "HttpClient", "Effect", "Schedule", "Schema", "wasmUrl", "ts", "contributes", "initializeBundler", "trim", "createDefaultMapFromCDN", "createSystem", "createVirtualTypeScriptEnvironment", "ts", "invariant", "GLOBALS", "defaultOptions", "lib", "target", "ScriptTarget", "ES2022", "Compiler", "_env", "_fsMap", "_options", "initialize", "globals", "set", "rootFiles", "system", "environment", "setFile", "fileName", "content", "createFile", "compile", "languageService", "getEmitOutput", "SCRIPT_PACKAGES_BUCKET", "DECLARATION_EXTS", "NO_TYPES", "initializeBundler", "wasmUrl", "runtimeModules", "runPromise", "fetchRuntimeModules", "pipe", "provide", "layer", "compiler", "Compiler", "skipLibCheck", "moduleResolution", "ModuleResolutionKind", "Bundler", "allowImportingTsExtensions", "noEmit", "strict", "esModuleInterop", "paths", "Object", "fromEntries", "map", "mod", "moduleName", "filename", "initialize", "trim", "setFile", "content", "contributes", "ScriptCapabilities", "fnUntraced", "manifest", "get", "URL", "flatMap", "_", "json", "decodeUnknown", "Struct", "files", "Array", "String", "declarationFiles", "filter", "file", "some", "ext", "endsWith", "fetched", "modules", "forEach", "response", "retry", "exponential", "compose", "recurs", "text", "replace", "concurrency"]
|
|
7
|
+
}
|
|
@@ -8,59 +8,48 @@ import {
|
|
|
8
8
|
ScriptProperties,
|
|
9
9
|
TestContainer,
|
|
10
10
|
TestPanel
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-DKS2EQW6.mjs";
|
|
12
12
|
import {
|
|
13
13
|
NotebookMenu,
|
|
14
14
|
NotebookStack
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import {
|
|
17
|
-
ScriptCapabilities
|
|
18
|
-
} from "./chunk-55JZVM6K.mjs";
|
|
15
|
+
} from "./chunk-NQN3JE2R.mjs";
|
|
19
16
|
import {
|
|
20
17
|
DEPLOYMENT_DIALOG
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-535YDI5V.mjs";
|
|
19
|
+
import "./chunk-6H4FYMCX.mjs";
|
|
23
20
|
import {
|
|
21
|
+
AppGraphBuilder,
|
|
22
|
+
BlueprintDefinition,
|
|
23
|
+
Compiler,
|
|
24
|
+
IntentResolver,
|
|
25
|
+
ReactSurface,
|
|
26
|
+
ScriptEvents,
|
|
27
|
+
ScriptSettings,
|
|
24
28
|
deployScript,
|
|
25
29
|
getAccessCredential,
|
|
26
30
|
getFunctionUrl,
|
|
27
31
|
isScriptDeployed,
|
|
28
32
|
updateFunctionMetadata
|
|
29
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-4VVV5L5A.mjs";
|
|
30
34
|
import {
|
|
31
35
|
Notebook_exports,
|
|
32
36
|
ScriptAction
|
|
33
|
-
} from "./chunk-
|
|
34
|
-
import "./chunk-
|
|
37
|
+
} from "./chunk-32AMTGGN.mjs";
|
|
38
|
+
import "./chunk-2S43VHAM.mjs";
|
|
39
|
+
import {
|
|
40
|
+
ScriptCapabilities
|
|
41
|
+
} from "./chunk-55JZVM6K.mjs";
|
|
35
42
|
import {
|
|
36
43
|
defaultScriptsForIntegration,
|
|
37
44
|
meta
|
|
38
45
|
} from "./chunk-IBV2DR36.mjs";
|
|
39
46
|
import "./chunk-HSLMI22Q.mjs";
|
|
40
47
|
|
|
41
|
-
// src/capabilities/index.ts
|
|
42
|
-
import { lazy } from "@dxos/app-framework";
|
|
43
|
-
var AppGraphBuilder = lazy(() => import("./app-graph-builder-NCVLUL5R.mjs"));
|
|
44
|
-
var BlueprintDefinition = lazy(() => import("./blueprint-definition-5R6YCSZZ.mjs"));
|
|
45
|
-
var Compiler = lazy(() => import("./compiler-DU5NQISX.mjs"));
|
|
46
|
-
var IntentResolver = lazy(() => import("./intent-resolver-A5VVK746.mjs"));
|
|
47
|
-
var ReactSurface = lazy(() => import("./react-surface-U77YT7VF.mjs"));
|
|
48
|
-
var ScriptSettings = lazy(() => import("./settings-IUFMOCXY.mjs"));
|
|
49
|
-
|
|
50
48
|
// src/ScriptPlugin.tsx
|
|
51
49
|
import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from "@dxos/app-framework";
|
|
52
50
|
import { Ref } from "@dxos/echo";
|
|
53
51
|
import { Script as Script2 } from "@dxos/functions";
|
|
54
|
-
import { ClientEvents } from "@dxos/plugin-client";
|
|
55
|
-
import { SpaceCapabilities } from "@dxos/plugin-space";
|
|
56
|
-
import { defineObjectForm } from "@dxos/plugin-space/types";
|
|
57
|
-
|
|
58
|
-
// src/events.ts
|
|
59
|
-
import { defineEvent } from "@dxos/app-framework";
|
|
60
|
-
(function(ScriptEvents2) {
|
|
61
|
-
ScriptEvents2.SetupCompiler = defineEvent(`${meta.id}/event/setup-compiler`);
|
|
62
|
-
})(ScriptEvents || (ScriptEvents = {}));
|
|
63
|
-
var ScriptEvents;
|
|
52
|
+
import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
|
|
64
53
|
|
|
65
54
|
// src/translations.ts
|
|
66
55
|
import { Script } from "@dxos/functions";
|
|
@@ -74,7 +63,8 @@ var translations = [
|
|
|
74
63
|
"typename label_other": "Scripts",
|
|
75
64
|
"object name placeholder": "New script",
|
|
76
65
|
"rename object label": "Rename script",
|
|
77
|
-
"delete object label": "Delete script"
|
|
66
|
+
"delete object label": "Delete script",
|
|
67
|
+
"object deleted label": "Script deleted"
|
|
78
68
|
},
|
|
79
69
|
[Notebook_exports.Notebook.typename]: {
|
|
80
70
|
"typename label": "Notebook",
|
|
@@ -83,7 +73,8 @@ var translations = [
|
|
|
83
73
|
"typename label_other": "Notebooks",
|
|
84
74
|
"object name placeholder": "New notebook",
|
|
85
75
|
"rename object label": "Rename notebook",
|
|
86
|
-
"delete object label": "Delete notebook"
|
|
76
|
+
"delete object label": "Delete notebook",
|
|
77
|
+
"object deleted label": "Notebook deleted"
|
|
87
78
|
},
|
|
88
79
|
[meta.id]: {
|
|
89
80
|
"plugin name": "Scripts",
|
|
@@ -188,14 +179,26 @@ var ScriptPlugin = definePlugin(meta, () => [
|
|
|
188
179
|
// TODO(wittjosiah): Move out of metadata.
|
|
189
180
|
loadReferences: async (script) => await Ref.Array.loadAll([
|
|
190
181
|
script.source
|
|
191
|
-
])
|
|
182
|
+
]),
|
|
183
|
+
inputSchema: ScriptAction.ScriptProps,
|
|
184
|
+
createObjectIntent: (props, options) => createIntent(ScriptAction.CreateScript, {
|
|
185
|
+
...props,
|
|
186
|
+
space: options.space
|
|
187
|
+
}),
|
|
188
|
+
addToCollectionOnCreate: true
|
|
192
189
|
}
|
|
193
190
|
}),
|
|
194
191
|
contributes(Capabilities.Metadata, {
|
|
195
192
|
id: Notebook_exports.Notebook.typename,
|
|
196
193
|
metadata: {
|
|
197
194
|
icon: "ph--notebook--regular",
|
|
198
|
-
iconHue: "sky"
|
|
195
|
+
iconHue: "sky",
|
|
196
|
+
inputSchema: ScriptAction.NotebookProps,
|
|
197
|
+
createObjectIntent: (props, options) => createIntent(ScriptAction.CreateNotebook, {
|
|
198
|
+
...props,
|
|
199
|
+
space: options.space
|
|
200
|
+
}),
|
|
201
|
+
addToCollectionOnCreate: true
|
|
199
202
|
}
|
|
200
203
|
})
|
|
201
204
|
]
|
|
@@ -206,36 +209,15 @@ var ScriptPlugin = definePlugin(meta, () => [
|
|
|
206
209
|
activate: AppGraphBuilder
|
|
207
210
|
}),
|
|
208
211
|
defineModule({
|
|
209
|
-
id: `${meta.id}/module/
|
|
212
|
+
id: `${meta.id}/module/schema`,
|
|
210
213
|
activatesOn: ClientEvents.SetupSchema,
|
|
211
|
-
activate: () => contributes(
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
getIntent: (props, options) => createIntent(ScriptAction.CreateScript, {
|
|
215
|
-
...props,
|
|
216
|
-
space: options.space
|
|
217
|
-
})
|
|
218
|
-
}))
|
|
219
|
-
}),
|
|
220
|
-
defineModule({
|
|
221
|
-
id: `${meta.id}/module/notebook/object-form`,
|
|
222
|
-
activatesOn: ClientEvents.SetupSchema,
|
|
223
|
-
activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
|
|
224
|
-
objectSchema: Notebook_exports.Notebook,
|
|
225
|
-
formSchema: ScriptAction.NotebookProps,
|
|
226
|
-
getIntent: (props, options) => createIntent(ScriptAction.CreateNotebook, {
|
|
227
|
-
...props,
|
|
228
|
-
space: options.space
|
|
229
|
-
})
|
|
230
|
-
}))
|
|
214
|
+
activate: () => contributes(ClientCapabilities.Schema, [
|
|
215
|
+
Script2.Script
|
|
216
|
+
])
|
|
231
217
|
}),
|
|
232
218
|
defineModule({
|
|
233
219
|
id: `${meta.id}/module/react-surface`,
|
|
234
220
|
activatesOn: Events.SetupReactSurface,
|
|
235
|
-
// TODO(wittjosiah): Should occur before the script editor is loaded when surfaces activation is more granular.
|
|
236
|
-
activatesBefore: [
|
|
237
|
-
ScriptEvents.SetupCompiler
|
|
238
|
-
],
|
|
239
221
|
activate: ReactSurface
|
|
240
222
|
}),
|
|
241
223
|
defineModule({
|