@dxos/plugin-script 0.8.4-main.5ea62a8 → 0.8.4-main.ae835ea
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-E5NXT4UQ.mjs +14 -0
- package/dist/lib/browser/NotebookContainer-C36N7AFF.mjs +817 -0
- package/dist/lib/browser/NotebookContainer-C36N7AFF.mjs.map +7 -0
- package/dist/lib/browser/ScriptContainer-4YPRUM3C.mjs +148 -0
- package/dist/lib/browser/ScriptContainer-4YPRUM3C.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-IABOSTBK.mjs → app-graph-builder-LEOPGBJD.mjs} +10 -8
- package/dist/lib/browser/app-graph-builder-LEOPGBJD.mjs.map +7 -0
- package/dist/lib/browser/{blueprint-definition-AR7ITBCD.mjs → blueprint-definition-6PZWZM2Y.mjs} +5 -3
- package/dist/lib/{node-esm/blueprint-definition-TJY4TX6S.mjs.map → browser/blueprint-definition-6PZWZM2Y.mjs.map} +1 -1
- package/dist/lib/browser/chunk-5S5YQNJZ.mjs +304 -0
- package/dist/lib/browser/chunk-5S5YQNJZ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6CAH7VIE.mjs → chunk-A5K3TXYA.mjs} +20 -34
- package/dist/lib/browser/chunk-A5K3TXYA.mjs.map +7 -0
- package/dist/lib/browser/{chunk-QYAREHGH.mjs → chunk-EB6AXFXO.mjs} +8 -5
- package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +7 -0
- package/dist/lib/browser/chunk-HCURXADW.mjs +102 -0
- package/dist/lib/browser/chunk-HCURXADW.mjs.map +7 -0
- package/dist/lib/browser/{chunk-TH7GXPE3.mjs → chunk-HHTOAI2J.mjs} +126 -38
- package/dist/lib/browser/chunk-HHTOAI2J.mjs.map +7 -0
- package/dist/lib/browser/{chunk-YCZPTTFO.mjs → chunk-IQMYIWHG.mjs} +14 -14
- package/dist/lib/browser/chunk-IQMYIWHG.mjs.map +7 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/chunk-LI4P25M5.mjs +111 -0
- package/dist/lib/browser/chunk-LI4P25M5.mjs.map +7 -0
- package/dist/lib/browser/{chunk-NXKU3BNX.mjs → chunk-Q2DGRQRN.mjs} +47 -14
- package/dist/lib/browser/chunk-Q2DGRQRN.mjs.map +7 -0
- package/dist/lib/browser/chunk-ST3ACVUC.mjs +88 -0
- package/dist/lib/browser/chunk-ST3ACVUC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-5TVBECWH.mjs → chunk-UOQ6NCH3.mjs} +2 -2
- package/dist/lib/browser/{compiler-2HJH34GM.mjs → compiler-Q4UY2COU.mjs} +12 -24
- package/dist/lib/{node-esm/compiler-7SP27RA6.mjs.map → browser/compiler-Q4UY2COU.mjs.map} +2 -2
- package/dist/lib/browser/index.mjs +105 -41
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-YMK5SXVC.mjs → intent-resolver-AMMHATM7.mjs} +39 -23
- package/dist/lib/browser/intent-resolver-AMMHATM7.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-FEM5WWFH.mjs → react-surface-X4NATU6B.mjs} +43 -19
- package/dist/lib/browser/react-surface-X4NATU6B.mjs.map +7 -0
- package/dist/lib/browser/{settings-KCTBK5TY.mjs → settings-6UXY7F7D.mjs} +10 -8
- package/dist/lib/browser/settings-6UXY7F7D.mjs.map +7 -0
- package/dist/lib/browser/templates/index.mjs +2 -1
- package/dist/lib/browser/types/index.mjs +8 -4
- package/dist/lib/node-esm/DeploymentDialog-OSHHSEBH.mjs +15 -0
- package/dist/lib/node-esm/DeploymentDialog-OSHHSEBH.mjs.map +7 -0
- package/dist/lib/node-esm/NotebookContainer-FOVFGJQR.mjs +818 -0
- package/dist/lib/node-esm/NotebookContainer-FOVFGJQR.mjs.map +7 -0
- package/dist/lib/node-esm/ScriptContainer-EW24D5II.mjs +149 -0
- package/dist/lib/node-esm/ScriptContainer-EW24D5II.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-CQTTAYHP.mjs → app-graph-builder-XJ3MY5BM.mjs} +10 -8
- package/dist/lib/node-esm/app-graph-builder-XJ3MY5BM.mjs.map +7 -0
- package/dist/lib/node-esm/{blueprint-definition-TJY4TX6S.mjs → blueprint-definition-5R6YCSZZ.mjs} +4 -3
- package/dist/lib/{browser/blueprint-definition-AR7ITBCD.mjs.map → node-esm/blueprint-definition-5R6YCSZZ.mjs.map} +1 -1
- package/dist/lib/node-esm/chunk-2GVTWESW.mjs +90 -0
- package/dist/lib/node-esm/chunk-2GVTWESW.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-35M3CHYE.mjs → chunk-55JZVM6K.mjs} +2 -2
- package/dist/lib/node-esm/chunk-EJLYOSD7.mjs +113 -0
- package/dist/lib/node-esm/chunk-EJLYOSD7.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2GBESIHU.mjs → chunk-GA27XSEY.mjs} +20 -34
- package/dist/lib/node-esm/chunk-GA27XSEY.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-AHXJ6NQU.mjs → chunk-IBV2DR36.mjs} +8 -5
- package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-N2XLVOFB.mjs +103 -0
- package/dist/lib/node-esm/chunk-N2XLVOFB.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-M642JUOZ.mjs → chunk-O7HXE72S.mjs} +47 -14
- package/dist/lib/node-esm/chunk-O7HXE72S.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-6M2R2FQF.mjs → chunk-OZ6LCME4.mjs} +126 -38
- package/dist/lib/node-esm/chunk-OZ6LCME4.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-TUGLYZDT.mjs +305 -0
- package/dist/lib/node-esm/chunk-TUGLYZDT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ZA36GO4T.mjs → chunk-UEGPBCSF.mjs} +14 -14
- package/dist/lib/node-esm/chunk-UEGPBCSF.mjs.map +7 -0
- package/dist/lib/node-esm/{compiler-7SP27RA6.mjs → compiler-I6A4KE6E.mjs} +12 -24
- package/dist/lib/{browser/compiler-2HJH34GM.mjs.map → node-esm/compiler-I6A4KE6E.mjs.map} +2 -2
- package/dist/lib/node-esm/index.mjs +105 -41
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-SKRDYQCZ.mjs → intent-resolver-YKLZQR7U.mjs} +39 -23
- package/dist/lib/node-esm/intent-resolver-YKLZQR7U.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-AOKMDJR4.mjs → react-surface-LVGLBSTE.mjs} +43 -19
- package/dist/lib/node-esm/react-surface-LVGLBSTE.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-DXZ334A3.mjs → settings-O4EZPUE3.mjs} +10 -8
- package/dist/lib/node-esm/settings-O4EZPUE3.mjs.map +7 -0
- package/dist/lib/node-esm/templates/index.mjs +2 -1
- package/dist/lib/node-esm/types/index.mjs +8 -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.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +1 -1
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +110 -7
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.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 +251 -0
- package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -0
- package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +15 -0
- package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -0
- package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +9 -0
- package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +14 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +245 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -0
- package/dist/types/src/components/NotebookStack/index.d.ts +3 -0
- package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -0
- package/dist/types/src/components/ScriptContainer.d.ts +4 -4
- package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +5 -6
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +237 -2
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +2 -2
- 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 +2 -2
- 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 +3 -3
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -0
- 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 -11
- package/dist/types/src/hooks/deploy.d.ts.map +1 -1
- package/dist/types/src/hooks/format.d.ts +2 -2
- package/dist/types/src/hooks/format.d.ts.map +1 -1
- package/dist/types/src/hooks/template.d.ts +4 -14
- package/dist/types/src/hooks/template.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/compute-graph.d.ts +45 -0
- package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
- package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
- package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
- package/dist/types/src/notebook/eval.d.ts +13 -0
- package/dist/types/src/notebook/eval.d.ts.map +1 -0
- 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/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/templates/index.d.ts +43 -1
- package/dist/types/src/templates/index.d.ts.map +1 -1
- package/dist/types/src/templates/{echo.d.ts → ping.d.ts} +1 -1
- package/dist/types/src/templates/ping.d.ts.map +1 -0
- package/dist/types/src/testing/data.d.ts +3 -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 +29 -5
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Notebook.d.ts +31 -0
- package/dist/types/src/types/Notebook.d.ts.map +1 -0
- package/dist/types/src/types/actions.d.ts +54 -0
- package/dist/types/src/types/actions.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +3 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +6 -0
- package/dist/types/src/types/types.d.ts.map +1 -0
- package/dist/types/src/util/deploy.d.ts +4 -4
- package/dist/types/src/util/deploy.d.ts.map +1 -1
- package/dist/types/src/util/functions.d.ts +6 -3
- package/dist/types/src/util/functions.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +75 -68
- package/src/ScriptPlugin.tsx +88 -69
- package/src/capabilities/app-graph-builder.ts +7 -6
- package/src/capabilities/artifact-definition.ts +1 -1
- package/src/capabilities/intent-resolver.ts +20 -11
- package/src/capabilities/react-surface.tsx +25 -13
- package/src/capabilities/settings.ts +3 -3
- package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +11 -4
- package/src/components/DeploymentDialog/DeploymentDialog.tsx +11 -17
- package/src/components/NotebookContainer.stories.tsx +83 -0
- package/src/components/NotebookContainer.tsx +263 -0
- package/src/components/NotebookStack/NotebookCell.tsx +208 -0
- package/src/components/NotebookStack/NotebookMenu.tsx +47 -0
- package/src/components/NotebookStack/NotebookStack.stories.tsx +54 -0
- package/src/components/NotebookStack/NotebookStack.tsx +86 -0
- package/src/components/NotebookStack/index.ts +6 -0
- package/src/components/ScriptContainer.tsx +5 -5
- package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +22 -10
- package/src/components/ScriptToolbar/ScriptToolbar.tsx +24 -27
- package/src/components/Settings/ScriptObjectSettings.tsx +95 -11
- package/src/components/Settings/ScriptPluginSettings.tsx +4 -19
- package/src/components/TestPanel/TestContainer.tsx +2 -2
- package/src/components/TestPanel/TestPanel.tsx +7 -7
- package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +71 -16
- package/src/components/TypescriptEditor/TypescriptEditor.tsx +36 -34
- package/src/components/index.ts +3 -0
- package/src/events.ts +2 -2
- package/src/hooks/deploy.ts +14 -15
- package/src/hooks/format.ts +4 -4
- package/src/hooks/template.ts +6 -15
- package/src/hooks/useCreateAndDeployScriptTemplates.ts +5 -5
- package/src/index.ts +1 -0
- package/src/meta.ts +7 -5
- package/src/notebook/compute-graph.test.ts +70 -0
- package/src/notebook/compute-graph.ts +206 -0
- package/src/notebook/eval.ts +105 -0
- package/src/notebook/index.ts +5 -0
- package/src/notebook/vfs-parser.test.ts +149 -0
- package/src/notebook/vfs-parser.ts +451 -0
- package/src/templates/chess.ts +2 -0
- package/src/templates/data-generator.ts +2 -0
- package/src/templates/discord.ts +9 -1
- package/src/templates/forex-effect.ts +5 -1
- package/src/templates/forex.ts +2 -0
- package/src/templates/gmail.ts +21 -9
- package/src/templates/index.ts +6 -6
- package/src/testing/data.ts +72 -0
- package/src/testing/index.ts +5 -0
- package/src/translations.ts +32 -7
- package/src/types/Notebook.ts +41 -0
- package/src/types/actions.ts +53 -0
- package/src/types/index.ts +3 -1
- package/src/types/types.ts +15 -0
- package/src/util/deploy.ts +11 -15
- package/src/util/functions.ts +33 -4
- package/dist/lib/browser/DeploymentDialog-QZSTVNIS.mjs +0 -12
- package/dist/lib/browser/ScriptContainer-JUPCBUCP.mjs +0 -263
- package/dist/lib/browser/ScriptContainer-JUPCBUCP.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-IABOSTBK.mjs.map +0 -7
- package/dist/lib/browser/chunk-6CAH7VIE.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-NXKU3BNX.mjs.map +0 -7
- package/dist/lib/browser/chunk-QYAREHGH.mjs.map +0 -7
- package/dist/lib/browser/chunk-RNGIQIEJ.mjs +0 -88
- package/dist/lib/browser/chunk-RNGIQIEJ.mjs.map +0 -7
- package/dist/lib/browser/chunk-TH7GXPE3.mjs.map +0 -7
- package/dist/lib/browser/chunk-YCZPTTFO.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-YMK5SXVC.mjs.map +0 -7
- package/dist/lib/browser/react-surface-FEM5WWFH.mjs.map +0 -7
- package/dist/lib/browser/settings-KCTBK5TY.mjs.map +0 -7
- package/dist/lib/node-esm/DeploymentDialog-G6EHEPXN.mjs +0 -13
- package/dist/lib/node-esm/ScriptContainer-UXZUDQF6.mjs +0 -264
- package/dist/lib/node-esm/ScriptContainer-UXZUDQF6.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-CQTTAYHP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2GBESIHU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6M2R2FQF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AHXJ6NQU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GWHLP5LM.mjs +0 -90
- package/dist/lib/node-esm/chunk-GWHLP5LM.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-M642JUOZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZA36GO4T.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-SKRDYQCZ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-AOKMDJR4.mjs.map +0 -7
- package/dist/lib/node-esm/settings-DXZ334A3.mjs.map +0 -7
- package/dist/types/src/templates/echo.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts +0 -38
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/types/schema.ts +0 -37
- /package/dist/lib/browser/{DeploymentDialog-QZSTVNIS.mjs.map → DeploymentDialog-E5NXT4UQ.mjs.map} +0 -0
- /package/dist/lib/{node-esm/DeploymentDialog-G6EHEPXN.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-5TVBECWH.mjs.map → chunk-UOQ6NCH3.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-35M3CHYE.mjs.map → chunk-55JZVM6K.mjs.map} +0 -0
- /package/src/templates/{echo.ts → ping.ts} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
ScriptAction
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-N2XLVOFB.mjs";
|
|
5
5
|
|
|
6
6
|
// src/util/functions.ts
|
|
7
7
|
import { getInvocationUrl, getUserFunctionIdInMetadata } from "@dxos/functions";
|
|
@@ -28,7 +28,7 @@ var updateFunctionMetadata = (script, storedFunction, meta, functionId) => {
|
|
|
28
28
|
functionId
|
|
29
29
|
}, {
|
|
30
30
|
F: __dxlog_file,
|
|
31
|
-
L:
|
|
31
|
+
L: 45,
|
|
32
32
|
S: void 0,
|
|
33
33
|
C: (f, a) => f(...a)
|
|
34
34
|
});
|
|
@@ -40,7 +40,7 @@ var updateFunctionMetadata = (script, storedFunction, meta, functionId) => {
|
|
|
40
40
|
functionId
|
|
41
41
|
}, {
|
|
42
42
|
F: __dxlog_file,
|
|
43
|
-
L:
|
|
43
|
+
L: 51,
|
|
44
44
|
S: void 0,
|
|
45
45
|
C: (f, a) => f(...a)
|
|
46
46
|
});
|
|
@@ -52,19 +52,50 @@ var updateFunctionMetadata = (script, storedFunction, meta, functionId) => {
|
|
|
52
52
|
functionId
|
|
53
53
|
}, {
|
|
54
54
|
F: __dxlog_file,
|
|
55
|
-
L:
|
|
55
|
+
L: 57,
|
|
56
|
+
S: void 0,
|
|
57
|
+
C: (f, a) => f(...a)
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
if (meta.key) {
|
|
61
|
+
storedFunction.key = meta.key;
|
|
62
|
+
} else {
|
|
63
|
+
log.verbose("no key in function metadata", {
|
|
64
|
+
functionId
|
|
65
|
+
}, {
|
|
66
|
+
F: __dxlog_file,
|
|
67
|
+
L: 63,
|
|
56
68
|
S: void 0,
|
|
57
69
|
C: (f, a) => f(...a)
|
|
58
70
|
});
|
|
59
71
|
}
|
|
60
72
|
};
|
|
73
|
+
var getAccessCredential = (identityKey) => {
|
|
74
|
+
return {
|
|
75
|
+
issuer: identityKey,
|
|
76
|
+
issuanceDate: /* @__PURE__ */ new Date(),
|
|
77
|
+
subject: {
|
|
78
|
+
id: identityKey,
|
|
79
|
+
assertion: {
|
|
80
|
+
"@type": "dxos.halo.credentials.ServiceAccess",
|
|
81
|
+
serverName: "hub.dxos.network",
|
|
82
|
+
serverKey: identityKey,
|
|
83
|
+
identityKey,
|
|
84
|
+
capabilities: [
|
|
85
|
+
"composer:beta"
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
};
|
|
61
91
|
|
|
62
92
|
// src/util/deploy.ts
|
|
63
93
|
import { Obj, Ref } from "@dxos/echo";
|
|
64
|
-
import {
|
|
94
|
+
import { Function, getUserFunctionIdInMetadata as getUserFunctionIdInMetadata2, setUserFunctionIdInMetadata } from "@dxos/functions";
|
|
65
95
|
import { Bundler } from "@dxos/functions/bundler";
|
|
66
96
|
import { incrementSemverPatch, uploadWorkerFunction } from "@dxos/functions/edge";
|
|
67
97
|
import { log as log2 } from "@dxos/log";
|
|
98
|
+
import { isNode } from "@dxos/util";
|
|
68
99
|
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/util/deploy.ts";
|
|
69
100
|
var isScriptDeployed = ({ script, fn }) => {
|
|
70
101
|
const existingFunctionId = fn && getUserFunctionIdInMetadata2(Obj.getMeta(fn));
|
|
@@ -80,7 +111,7 @@ var deployScript = async ({ script, client, space, fn, existingFunctionId }) =>
|
|
|
80
111
|
}
|
|
81
112
|
try {
|
|
82
113
|
const bundler = new Bundler({
|
|
83
|
-
platform: "browser",
|
|
114
|
+
platform: isNode() ? "node" : "browser",
|
|
84
115
|
sandboxedModules: [],
|
|
85
116
|
remoteModules: {}
|
|
86
117
|
});
|
|
@@ -117,7 +148,7 @@ var deployScript = async ({ script, client, space, fn, existingFunctionId }) =>
|
|
|
117
148
|
} catch (err) {
|
|
118
149
|
log2.catch(err, void 0, {
|
|
119
150
|
F: __dxlog_file2,
|
|
120
|
-
L:
|
|
151
|
+
L: 74,
|
|
121
152
|
S: void 0,
|
|
122
153
|
C: (f, a) => f(...a)
|
|
123
154
|
});
|
|
@@ -139,7 +170,7 @@ var createOrUpdateFunctionInSpace = (space, fn, script, functionId, version) =>
|
|
|
139
170
|
fn.version = version;
|
|
140
171
|
return fn;
|
|
141
172
|
} else {
|
|
142
|
-
const fn2 =
|
|
173
|
+
const fn2 = Function.make({
|
|
143
174
|
name: script.name ?? "New Function",
|
|
144
175
|
version,
|
|
145
176
|
source: Ref.make(script)
|
|
@@ -151,11 +182,11 @@ var createOrUpdateFunctionInSpace = (space, fn, script, functionId, version) =>
|
|
|
151
182
|
};
|
|
152
183
|
|
|
153
184
|
// src/hooks/useCreateAndDeployScriptTemplates.ts
|
|
154
|
-
import
|
|
185
|
+
import * as Function2 from "effect/Function";
|
|
155
186
|
import { useCallback, useState } from "react";
|
|
156
187
|
import { chain, createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
157
188
|
import { Obj as Obj2 } from "@dxos/echo";
|
|
158
|
-
import {
|
|
189
|
+
import { Script } from "@dxos/functions";
|
|
159
190
|
import { invariant } from "@dxos/invariant";
|
|
160
191
|
import { SpaceAction } from "@dxos/plugin-space/types";
|
|
161
192
|
import { useClient } from "@dxos/react-client";
|
|
@@ -178,18 +209,18 @@ var useCreateAndDeployScriptTemplates = (space, scriptTemplates) => {
|
|
|
178
209
|
setStatus("pending");
|
|
179
210
|
setError(void 0);
|
|
180
211
|
const deploymentResults = await Promise.all(scriptTemplates.map(async (template) => {
|
|
181
|
-
const result = await dispatch(pipe(createIntent(ScriptAction.
|
|
212
|
+
const result = await dispatch(Function2.pipe(createIntent(ScriptAction.CreateScript, {
|
|
182
213
|
space,
|
|
183
214
|
initialTemplateId: template.id
|
|
184
215
|
}), chain(SpaceAction.AddObject, {
|
|
185
216
|
target: space
|
|
186
217
|
})));
|
|
187
|
-
invariant(Obj2.instanceOf(
|
|
218
|
+
invariant(Obj2.instanceOf(Script.Script, result.data?.object), void 0, {
|
|
188
219
|
F: __dxlog_file3,
|
|
189
220
|
L: 48,
|
|
190
221
|
S: void 0,
|
|
191
222
|
A: [
|
|
192
|
-
"Obj.instanceOf(
|
|
223
|
+
"Obj.instanceOf(Script.Script, result.data?.object)",
|
|
193
224
|
""
|
|
194
225
|
]
|
|
195
226
|
});
|
|
@@ -216,8 +247,10 @@ var useCreateAndDeployScriptTemplates = (space, scriptTemplates) => {
|
|
|
216
247
|
|
|
217
248
|
export {
|
|
218
249
|
getFunctionUrl,
|
|
250
|
+
updateFunctionMetadata,
|
|
251
|
+
getAccessCredential,
|
|
219
252
|
isScriptDeployed,
|
|
220
253
|
deployScript,
|
|
221
254
|
useCreateAndDeployScriptTemplates
|
|
222
255
|
};
|
|
223
|
-
//# sourceMappingURL=chunk-
|
|
256
|
+
//# sourceMappingURL=chunk-O7HXE72S.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util/functions.ts", "../../../src/util/deploy.ts", "../../../src/hooks/useCreateAndDeployScriptTemplates.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Function, type Script, getInvocationUrl, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { getMeta, getSpace } from '@dxos/react-client/echo';\n/**\n * Get the function URL for a given script and client configuration\n */\nexport const getFunctionUrl = ({\n script,\n fn,\n edgeUrl,\n}: {\n script: Script.Script;\n fn: any;\n edgeUrl: string;\n}): string | undefined => {\n const space = getSpace(script);\n const existingFunctionId = fn && getUserFunctionIdInMetadata(getMeta(fn));\n\n if (!existingFunctionId) {\n return undefined;\n }\n\n return getInvocationUrl(existingFunctionId, edgeUrl, {\n spaceId: space?.id,\n });\n};\n\nexport const updateFunctionMetadata = (\n script: Script.Script,\n storedFunction: Function.Function,\n meta: any,\n functionId: string,\n) => {\n if (script.description !== undefined && script.description.trim() !== '') {\n storedFunction.description = script.description;\n } else if (meta.description) {\n storedFunction.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n storedFunction.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n\n if (meta.outputSchema) {\n storedFunction.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n\n if (meta.key) {\n storedFunction.key = meta.key;\n } else {\n log.verbose('no key in function metadata', { functionId });\n }\n};\n\nexport const getAccessCredential = (identityKey: PublicKey): Credential => {\n return {\n issuer: identityKey,\n issuanceDate: new Date(),\n subject: {\n id: identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.ServiceAccess',\n serverName: 'hub.dxos.network',\n serverKey: identityKey,\n identityKey,\n capabilities: ['composer:beta'],\n },\n },\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Client } from '@dxos/client';\nimport { Obj, Ref } from '@dxos/echo';\nimport { Function, type Script, getUserFunctionIdInMetadata, setUserFunctionIdInMetadata } from '@dxos/functions';\nimport { Bundler } from '@dxos/functions/bundler';\nimport { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions/edge';\nimport { log } from '@dxos/log';\nimport { type Space } from '@dxos/react-client/echo';\nimport { isNode } from '@dxos/util';\n\nimport { updateFunctionMetadata } from './functions';\n\nexport const isScriptDeployed = ({ script, fn }: { script: Script.Script; fn: any }): boolean => {\n const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));\n return Boolean(existingFunctionId) && !script.changed;\n};\n\ntype DeployScriptProps = {\n script: Script.Script;\n client: Client;\n space: Space;\n fn?: Function.Function;\n existingFunctionId?: string;\n};\n\ntype DeployScriptResult = { success: boolean; error?: Error; functionId?: string };\n\n/**\n * Deploy a script to a space, handling bundling and uploading to the FaaS infrastructure.\n */\nexport const deployScript = async ({\n script,\n client,\n space,\n fn,\n existingFunctionId,\n}: DeployScriptProps): Promise<DeployScriptResult> => {\n const validationError = validateDeployInputs(script, space);\n if (validationError) {\n return { success: false, error: validationError };\n }\n\n try {\n const bundler = new Bundler({ platform: isNode() ? 'node' : 'browser', sandboxedModules: [], remoteModules: {} });\n const buildResult = await bundler.bundle({ source: script.source!.target!.content });\n if ('error' in buildResult) {\n throw buildResult.error || new Error('Bundle creation failed');\n }\n\n const { functionId, version, meta } = await uploadWorkerFunction({\n client,\n ownerPublicKey: space.key,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n entryPoint: buildResult.entryPoint,\n assets: { [buildResult.entryPoint]: buildResult.asset },\n });\n\n if (functionId === undefined || version === undefined) {\n throw new Error(`Upload didn't return expected data: ${JSON.stringify({ functionId, version })}`);\n }\n\n const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);\n script.changed = false;\n updateFunctionMetadata(script, storedFunction, meta, functionId);\n\n setUserFunctionIdInMetadata(Obj.getMeta(storedFunction), functionId);\n\n return { success: true, functionId };\n } catch (err: any) {\n log.catch(err);\n return { success: false, error: err };\n }\n};\n\n/**\n * Validate inputs for script deployment.\n */\nconst validateDeployInputs = (script: Script.Script, space: Space): Error | null => {\n if (!script.source || !space) {\n return new Error('Script source or space not available');\n }\n return null;\n};\n\nconst createOrUpdateFunctionInSpace = (\n space: Space,\n fn: Function.Function | undefined,\n script: Script.Script,\n functionId: string,\n version: string,\n): Function.Function => {\n if (fn) {\n fn.name = script.name ?? 'New Function';\n fn.version = version;\n return fn;\n } else {\n const fn = Function.make({ name: script.name ?? 'New Function', version, source: Ref.make(script) });\n space.db.add(fn);\n setUserFunctionIdInMetadata(Obj.getMeta(fn), functionId);\n return fn;\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport { useCallback, useState } from 'react';\n\nimport { chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { Script } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { useClient } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { type Template } from '../templates';\nimport { ScriptAction } from '../types';\nimport { deployScript } from '../util';\n\ntype DeploymentStatus = 'idle' | 'pending' | 'success' | 'error';\n\n/**\n * Hook for creating and deploying multiple script templates concurrently.\n *\n * Takes a space and an array of script template IDs, then provides a callback\n * function that creates each script from its template and deploys it to the space.\n * All creation / deployment operations run concurrently for improved performance.\n */\nexport const useCreateAndDeployScriptTemplates = (space: Space | undefined, scriptTemplates: Template[]) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const [status, setStatus] = useState<DeploymentStatus>('idle');\n const [error, setError] = useState<Error | undefined>(undefined);\n\n const handleCreateAndDeployScripts = useCallback(async () => {\n invariant(space);\n setStatus('pending');\n setError(undefined);\n\n const deploymentResults = await Promise.all(\n scriptTemplates.map(async (template) => {\n const result = await dispatch(\n Function.pipe(\n createIntent(ScriptAction.CreateScript, { space, initialTemplateId: template.id as any }),\n chain(SpaceAction.AddObject, { target: space }),\n ),\n );\n invariant(Obj.instanceOf(Script.Script, result.data?.object));\n\n return deployScript({ space, client, script: result.data.object });\n }),\n );\n\n const hasErrors = deploymentResults.some((result) => !result.success);\n setStatus(hasErrors ? 'error' : 'success');\n }, [space, dispatch, client, scriptTemplates]);\n\n // TODO(burdon): Return onCreateAndDeployScripts.\n return { handleCreateAndDeployScripts, status, error };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["getInvocationUrl", "getUserFunctionIdInMetadata", "log", "getMeta", "getSpace", "getFunctionUrl", "script", "fn", "edgeUrl", "space", "existingFunctionId", "undefined", "spaceId", "id", "updateFunctionMetadata", "storedFunction", "meta", "functionId", "description", "trim", "verbose", "inputSchema", "outputSchema", "key", "getAccessCredential", "identityKey", "issuer", "issuanceDate", "Date", "subject", "assertion", "serverName", "serverKey", "capabilities", "Obj", "Ref", "Function", "getUserFunctionIdInMetadata", "setUserFunctionIdInMetadata", "Bundler", "incrementSemverPatch", "uploadWorkerFunction", "log", "isNode", "isScriptDeployed", "script", "fn", "existingFunctionId", "getUserFunctionIdInMetadata", "Obj", "getMeta", "Boolean", "changed", "deployScript", "client", "space", "validationError", "validateDeployInputs", "success", "error", "bundler", "Bundler", "platform", "isNode", "sandboxedModules", "remoteModules", "buildResult", "bundle", "source", "target", "content", "Error", "functionId", "version", "meta", "uploadWorkerFunction", "ownerPublicKey", "key", "incrementSemverPatch", "entryPoint", "assets", "asset", "undefined", "JSON", "stringify", "storedFunction", "createOrUpdateFunctionInSpace", "updateFunctionMetadata", "setUserFunctionIdInMetadata", "err", "log", "catch", "name", "Function", "make", "Ref", "db", "add", "Function", "useCallback", "useState", "chain", "createIntent", "useIntentDispatcher", "Obj", "Script", "invariant", "SpaceAction", "useClient", "useCreateAndDeployScriptTemplates", "space", "scriptTemplates", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "status", "setStatus", "useState", "error", "setError", "undefined", "handleCreateAndDeployScripts", "useCallback", "invariant", "deploymentResults", "Promise", "all", "map", "template", "result", "pipe", "createIntent", "ScriptAction", "CreateScript", "initialTemplateId", "id", "chain", "SpaceAction", "AddObject", "target", "Obj", "instanceOf", "Script", "data", "object", "deployScript", "script", "hasErrors", "some", "success"]
|
|
7
|
+
}
|
|
@@ -2,29 +2,36 @@ import { createRequire } from 'node:module';const require = createRequire(import
|
|
|
2
2
|
import {
|
|
3
3
|
useDeployState,
|
|
4
4
|
useToolbarState
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-GA27XSEY.mjs";
|
|
6
|
+
import {
|
|
7
|
+
getAccessCredential
|
|
8
|
+
} from "./chunk-O7HXE72S.mjs";
|
|
6
9
|
import {
|
|
7
|
-
SCRIPT_PLUGIN,
|
|
8
10
|
meta
|
|
9
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IBV2DR36.mjs";
|
|
10
12
|
|
|
11
13
|
// src/components/Settings/ScriptObjectSettings.tsx
|
|
12
14
|
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
13
15
|
import { Octokit } from "@octokit/core";
|
|
14
16
|
import React, { useCallback, useState } from "react";
|
|
17
|
+
import { ToolId } from "@dxos/ai";
|
|
15
18
|
import { SettingsAction, createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
16
|
-
import {
|
|
19
|
+
import { Blueprint, Template } from "@dxos/blueprints";
|
|
20
|
+
import { Function, getInvocationUrl, getUserFunctionIdInMetadata } from "@dxos/functions";
|
|
17
21
|
import { log } from "@dxos/log";
|
|
18
22
|
import { useClient } from "@dxos/react-client";
|
|
19
23
|
import { Filter, Ref, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
|
|
20
24
|
import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from "@dxos/react-ui";
|
|
21
25
|
import { DataType } from "@dxos/schema";
|
|
26
|
+
import { kebabize } from "@dxos/util";
|
|
22
27
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/Settings/ScriptObjectSettings.tsx";
|
|
23
28
|
var ScriptObjectSettings = ({ object }) => {
|
|
24
29
|
var _effect = _useSignals();
|
|
25
30
|
try {
|
|
26
31
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Binding, {
|
|
27
32
|
object
|
|
33
|
+
}), /* @__PURE__ */ React.createElement(BlueprintEditor, {
|
|
34
|
+
object
|
|
28
35
|
}), /* @__PURE__ */ React.createElement(Publishing, {
|
|
29
36
|
object
|
|
30
37
|
}));
|
|
@@ -35,7 +42,7 @@ var ScriptObjectSettings = ({ object }) => {
|
|
|
35
42
|
var ScriptProperties = ({ object }) => {
|
|
36
43
|
var _effect = _useSignals();
|
|
37
44
|
try {
|
|
38
|
-
const { t } = useTranslation(
|
|
45
|
+
const { t } = useTranslation(meta.id);
|
|
39
46
|
return /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Label, null, t("description label")), /* @__PURE__ */ React.createElement(Input.TextInput, {
|
|
40
47
|
placeholder: t("description placeholder"),
|
|
41
48
|
value: object.description ?? "",
|
|
@@ -47,13 +54,110 @@ var ScriptProperties = ({ object }) => {
|
|
|
47
54
|
_effect.f();
|
|
48
55
|
}
|
|
49
56
|
};
|
|
57
|
+
var BlueprintEditor = ({ object }) => {
|
|
58
|
+
var _effect = _useSignals();
|
|
59
|
+
try {
|
|
60
|
+
const { t } = useTranslation(meta.id);
|
|
61
|
+
const space = getSpace(object);
|
|
62
|
+
const [fn] = useQuery(space, Filter.type(Function.Function, {
|
|
63
|
+
source: Ref.make(object)
|
|
64
|
+
}));
|
|
65
|
+
const blueprints = useQuery(space, Filter.type(Blueprint.Blueprint));
|
|
66
|
+
const [creating, setCreating] = useState(false);
|
|
67
|
+
const [instructions, setInstructions] = useState(`You can run the script "${object.name ?? "script"}".`);
|
|
68
|
+
const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? "script")}`;
|
|
69
|
+
const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);
|
|
70
|
+
useAsyncEffect(async () => {
|
|
71
|
+
if (!existingBlueprint) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const source = await existingBlueprint.instructions.source.load();
|
|
75
|
+
setInstructions(source.content ?? "");
|
|
76
|
+
}, [
|
|
77
|
+
existingBlueprint
|
|
78
|
+
]);
|
|
79
|
+
const handleSave = useCallback(async () => {
|
|
80
|
+
if (!space) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
setCreating(true);
|
|
84
|
+
try {
|
|
85
|
+
if (existingBlueprint) {
|
|
86
|
+
const text = await existingBlueprint.instructions.source.load();
|
|
87
|
+
text.content = instructions;
|
|
88
|
+
if (fn?.key) {
|
|
89
|
+
const toolId = ToolId.make(fn.key);
|
|
90
|
+
if (!existingBlueprint.tools?.includes(toolId)) {
|
|
91
|
+
existingBlueprint.tools = [
|
|
92
|
+
...existingBlueprint.tools ?? [],
|
|
93
|
+
toolId
|
|
94
|
+
];
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
} else if (fn?.key) {
|
|
98
|
+
space.db.add(Blueprint.make({
|
|
99
|
+
key: blueprintKey,
|
|
100
|
+
name: object.name ?? "Script",
|
|
101
|
+
instructions: Template.make({
|
|
102
|
+
source: instructions
|
|
103
|
+
}),
|
|
104
|
+
tools: [
|
|
105
|
+
ToolId.make(fn.key)
|
|
106
|
+
]
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
109
|
+
await space.db.flush();
|
|
110
|
+
} finally {
|
|
111
|
+
setCreating(false);
|
|
112
|
+
}
|
|
113
|
+
}, [
|
|
114
|
+
space,
|
|
115
|
+
existingBlueprint,
|
|
116
|
+
fn,
|
|
117
|
+
blueprintKey,
|
|
118
|
+
object.name,
|
|
119
|
+
instructions
|
|
120
|
+
]);
|
|
121
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
122
|
+
className: "flex flex-col gap-4 mlb-cardSpacingBlock"
|
|
123
|
+
}, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", null, t("blueprint editor label", {
|
|
124
|
+
default: "Blueprint"
|
|
125
|
+
})), /* @__PURE__ */ React.createElement("p", {
|
|
126
|
+
className: "text-description text-sm"
|
|
127
|
+
}, t("blueprint editor description", {
|
|
128
|
+
default: "Create a blueprint that exposes this script as a tool."
|
|
129
|
+
}))), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
|
|
130
|
+
role: "none",
|
|
131
|
+
className: "flex flex-col gap-1"
|
|
132
|
+
}, /* @__PURE__ */ React.createElement(Input.Label, null, t("blueprint instructions label", {
|
|
133
|
+
default: "Instructions"
|
|
134
|
+
})), /* @__PURE__ */ React.createElement(Input.TextArea, {
|
|
135
|
+
placeholder: t("blueprint instructions placeholder", {
|
|
136
|
+
default: "Describe how this tool should be used."
|
|
137
|
+
}),
|
|
138
|
+
rows: 6,
|
|
139
|
+
value: instructions,
|
|
140
|
+
onChange: (event) => setInstructions(event.target.value),
|
|
141
|
+
classNames: "resize-y"
|
|
142
|
+
}))), /* @__PURE__ */ React.createElement("div", {
|
|
143
|
+
className: "flex justify-end gap-2"
|
|
144
|
+
}, /* @__PURE__ */ React.createElement(Button, {
|
|
145
|
+
disabled: !existingBlueprint && !fn?.key || creating,
|
|
146
|
+
onClick: handleSave
|
|
147
|
+
}, t(creating ? "creating label" : "create blueprint label", {
|
|
148
|
+
default: creating ? "Creating\u2026" : "Create blueprint"
|
|
149
|
+
}))));
|
|
150
|
+
} finally {
|
|
151
|
+
_effect.f();
|
|
152
|
+
}
|
|
153
|
+
};
|
|
50
154
|
var Binding = ({ object }) => {
|
|
51
155
|
var _effect = _useSignals();
|
|
52
156
|
try {
|
|
53
|
-
const { t } = useTranslation(
|
|
157
|
+
const { t } = useTranslation(meta.id);
|
|
54
158
|
const client = useClient();
|
|
55
159
|
const space = getSpace(object);
|
|
56
|
-
const [fn] = useQuery(space, Filter.type(
|
|
160
|
+
const [fn] = useQuery(space, Filter.type(Function.Function, {
|
|
57
161
|
source: Ref.make(object)
|
|
58
162
|
}));
|
|
59
163
|
const functionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
|
|
@@ -108,7 +212,7 @@ var Binding = ({ object }) => {
|
|
|
108
212
|
var Publishing = ({ object }) => {
|
|
109
213
|
var _effect = _useSignals();
|
|
110
214
|
try {
|
|
111
|
-
const { t } = useTranslation(
|
|
215
|
+
const { t } = useTranslation(meta.id);
|
|
112
216
|
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
113
217
|
const space = getSpace(object);
|
|
114
218
|
const [githubToken] = useQuery(space, Filter.type(DataType.AccessToken, {
|
|
@@ -134,7 +238,7 @@ var Publishing = ({ object }) => {
|
|
|
134
238
|
} catch (err) {
|
|
135
239
|
log.catch(err, void 0, {
|
|
136
240
|
F: __dxlog_file,
|
|
137
|
-
L:
|
|
241
|
+
L: 222,
|
|
138
242
|
S: void 0,
|
|
139
243
|
C: (f, a) => f(...a)
|
|
140
244
|
});
|
|
@@ -208,7 +312,6 @@ var Publishing = ({ object }) => {
|
|
|
208
312
|
_effect.f();
|
|
209
313
|
}
|
|
210
314
|
};
|
|
211
|
-
var kebabize = (str) => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? "-" : "") + $.toLowerCase());
|
|
212
315
|
|
|
213
316
|
// src/components/Settings/ScriptPluginSettings.tsx
|
|
214
317
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
@@ -225,22 +328,7 @@ var ScriptPluginSettings = ({ settings }) => {
|
|
|
225
328
|
const handleAuthenticate = async () => {
|
|
226
329
|
const { identityKey } = client.halo.identity.get();
|
|
227
330
|
await client.halo.writeCredentials([
|
|
228
|
-
|
|
229
|
-
issuer: identityKey,
|
|
230
|
-
issuanceDate: /* @__PURE__ */ new Date(),
|
|
231
|
-
subject: {
|
|
232
|
-
id: identityKey,
|
|
233
|
-
assertion: {
|
|
234
|
-
"@type": "dxos.halo.credentials.ServiceAccess",
|
|
235
|
-
serverName: "hub.dxos.network",
|
|
236
|
-
serverKey: identityKey,
|
|
237
|
-
identityKey,
|
|
238
|
-
capabilities: [
|
|
239
|
-
"composer:beta"
|
|
240
|
-
]
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
331
|
+
getAccessCredential(identityKey)
|
|
244
332
|
]);
|
|
245
333
|
};
|
|
246
334
|
return /* @__PURE__ */ React2.createElement(ControlPage, null, /* @__PURE__ */ React2.createElement(ControlSection, {
|
|
@@ -280,7 +368,7 @@ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/component
|
|
|
280
368
|
var TestPanel = ({ classNames, functionUrl }) => {
|
|
281
369
|
var _effect = _useSignals3();
|
|
282
370
|
try {
|
|
283
|
-
const { t } = useTranslation3(
|
|
371
|
+
const { t } = useTranslation3(meta.id);
|
|
284
372
|
const inputRef = useRef(null);
|
|
285
373
|
const [input, setInput] = useState2("");
|
|
286
374
|
const [result, setResult] = useState2("");
|
|
@@ -292,7 +380,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
|
|
|
292
380
|
scrollerRef.current.scrollTop = scrollerRef.current.scrollHeight;
|
|
293
381
|
}
|
|
294
382
|
};
|
|
295
|
-
const controller = useRef();
|
|
383
|
+
const controller = useRef(null);
|
|
296
384
|
useEffect(() => {
|
|
297
385
|
return () => {
|
|
298
386
|
handleStop();
|
|
@@ -300,7 +388,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
|
|
|
300
388
|
}, []);
|
|
301
389
|
const handleStop = () => {
|
|
302
390
|
controller.current?.abort("stop");
|
|
303
|
-
controller.current =
|
|
391
|
+
controller.current = null;
|
|
304
392
|
};
|
|
305
393
|
const handleClear = () => {
|
|
306
394
|
handleStop();
|
|
@@ -310,7 +398,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
|
|
|
310
398
|
inputRef.current?.focus();
|
|
311
399
|
};
|
|
312
400
|
const handleResponse = ({ text, data, error } = {}) => {
|
|
313
|
-
controller.current =
|
|
401
|
+
controller.current = null;
|
|
314
402
|
setHistory((history2) => [
|
|
315
403
|
...history2,
|
|
316
404
|
{
|
|
@@ -425,9 +513,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
|
|
|
425
513
|
state,
|
|
426
514
|
result,
|
|
427
515
|
history
|
|
428
|
-
}), /* @__PURE__ */ React3.createElement(Toolbar.Root, {
|
|
429
|
-
classNames: "p-2"
|
|
430
|
-
}, /* @__PURE__ */ React3.createElement(Input2.Root, null, /* @__PURE__ */ React3.createElement(Input2.TextInput, {
|
|
516
|
+
}), /* @__PURE__ */ React3.createElement(Toolbar.Root, null, /* @__PURE__ */ React3.createElement(Input2.Root, null, /* @__PURE__ */ React3.createElement(Input2.TextInput, {
|
|
431
517
|
ref: inputRef,
|
|
432
518
|
autoFocus: true,
|
|
433
519
|
placeholder: t("function request placeholder"),
|
|
@@ -501,7 +587,7 @@ var MessageItem = ({ classNames, message }) => {
|
|
|
501
587
|
className: mx(wrapper, type === "request" && "bg-primary-400 dark:bg-primary-600")
|
|
502
588
|
}, text || "\xD8"), data && /* @__PURE__ */ React3.createElement(SyntaxHighlighter, {
|
|
503
589
|
language: "json",
|
|
504
|
-
className: mx(wrapper, "
|
|
590
|
+
className: mx(wrapper, "text-xs")
|
|
505
591
|
}, JSON.stringify(data, null, 2)));
|
|
506
592
|
} finally {
|
|
507
593
|
_effect.f();
|
|
@@ -542,8 +628,9 @@ var TestContainer = ({ script }) => {
|
|
|
542
628
|
|
|
543
629
|
// src/components/index.ts
|
|
544
630
|
import { lazy } from "react";
|
|
545
|
-
var ScriptContainer = lazy(() => import("./ScriptContainer-
|
|
546
|
-
var DeploymentDialog = lazy(() => import("./DeploymentDialog-
|
|
631
|
+
var ScriptContainer = lazy(() => import("./ScriptContainer-EW24D5II.mjs"));
|
|
632
|
+
var DeploymentDialog = lazy(() => import("./DeploymentDialog-OSHHSEBH.mjs"));
|
|
633
|
+
var NotebookContainer = lazy(() => import("./NotebookContainer-FOVFGJQR.mjs"));
|
|
547
634
|
|
|
548
635
|
export {
|
|
549
636
|
ScriptObjectSettings,
|
|
@@ -552,6 +639,7 @@ export {
|
|
|
552
639
|
TestPanel,
|
|
553
640
|
TestContainer,
|
|
554
641
|
ScriptContainer,
|
|
555
|
-
DeploymentDialog
|
|
642
|
+
DeploymentDialog,
|
|
643
|
+
NotebookContainer
|
|
556
644
|
};
|
|
557
|
-
//# sourceMappingURL=chunk-
|
|
645
|
+
//# sourceMappingURL=chunk-OZ6LCME4.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 { Function, type Script, 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: 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', { 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(Function.Function, { source: Ref.make(object) }));\n\n const functionId = fn && getUserFunctionIdInMetadata(getMeta(fn));\n const functionUrl =\n functionId &&\n getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: space?.id,\n });\n\n const [binding, setBinding] = useControlledState(fn?.binding ?? '');\n const handleBindingChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setBinding(event.target.value);\n },\n [setBinding],\n );\n\n const handleBindingBlur = useCallback(() => {\n fn.binding = binding;\n }, [fn, binding]);\n\n if (!fn || !functionUrl) {\n return null;\n }\n\n // TODO(burdon): Use form.\n return (\n <div role='form' className='flex flex-col gap-2 mlb-cardSpacingBlock'>\n <h2>{t('remote function settings heading')}</h2>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('function url label')}</Input.Label>\n <div role='none' className='flex gap-1'>\n <Input.TextInput\n disabled\n value={functionUrl}\n onChange={(event) => {\n fn.name = event.target.value;\n }}\n />\n <Clipboard.IconButton value={functionUrl} />\n </div>\n </div>\n </Input.Root>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('function binding label')}</Input.Label>\n <Input.TextInput\n placeholder={t('function binding placeholder')}\n value={binding}\n onChange={handleBindingChange}\n onBlur={handleBindingBlur}\n />\n </div>\n </Input.Root>\n </div>\n );\n};\n\n// TODO(burdon): Move to separate tab?\nconst Publishing = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const space = getSpace(object);\n const [githubToken] = useQuery(space, Filter.type(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>\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 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": ";;;;;;;;;;;;;;AAIA,SAASA,eAAe;AACxB,OAAOC,SAA2BC,aAAaC,gBAAgB;AAE/D,SAASC,cAAc;AACvB,SAASC,gBAAgBC,cAAcC,2BAA2B;AAClE,SAASC,WAAWC,gBAAgB;AACpC,SAASC,UAAuBC,kBAAkBC,mCAAmC;AACrF,SAASC,WAAW;AACpB,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,KAAKC,SAASC,UAAUC,gBAAgB;AACzD,SAASC,QAAQC,WAAWC,OAAOC,gBAAgBC,oBAAoBC,sBAAsB;AAC7F,SAASC,gBAAgB;AACzB,SAASC,gBAAgB;;AAQlB,IAAMC,uBAAuB,CAAC,EAAEC,OAAM,MAA6B;;;AACxE,WACE,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAACC,SAAAA;MAAQD;QACT,sBAAA,cAACE,iBAAAA;MAAgBF;QACjB,sBAAA,cAACG,YAAAA;MAAWH;;;;;AAGlB;AAEO,IAAMI,mBAAmB,CAAC,EAAEJ,OAAM,MAA6B;;;AACpE,UAAM,EAAEK,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,WACE,sBAAA,cAACC,MAAMC,MAAI,MACT,sBAAA,cAACD,MAAME,OAAK,MAAEN,EAAE,mBAAA,CAAA,GAChB,sBAAA,cAACI,MAAMG,WAAS;MACdC,aAAaR,EAAE,yBAAA;MACfS,OAAOd,OAAOe,eAAe;MAC7BC,UAAU,CAACC,UAAAA;AACTjB,eAAOe,cAAcE,MAAMC,OAAOJ;MACpC;;;;;AAIR;AAEA,IAAMZ,kBAAkB,CAAC,EAAEF,OAAM,MAA6B;;;AAC5D,UAAM,EAAEK,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMW,QAAQC,SAASpB,MAAAA;AACvB,UAAM,CAACqB,EAAAA,IAAMC,SAASH,OAAOI,OAAOC,KAAKC,SAASA,UAAU;MAAEC,QAAQC,IAAIC,KAAK5B,MAAAA;IAAQ,CAAA,CAAA;AACvF,UAAM6B,aAAaP,SAASH,OAAOI,OAAOC,KAAKM,UAAUA,SAAS,CAAA;AAElE,UAAM,CAACC,UAAUC,WAAAA,IAAeC,SAAS,KAAA;AACzC,UAAM,CAACC,cAAcC,eAAAA,IAAmBF,SAAiB,2BAA2BjC,OAAOoC,QAAQ,QAAA,IAAY;AAC/G,UAAMC,eAAe,sBAAsBC,SAAStC,OAAOoC,QAAQ,QAAA,CAAA;AACnE,UAAMG,oBAAoBV,WAAWW,KAAK,CAACC,OAAOA,GAAGC,QAAQL,YAAAA;AAE7DM,mBAAe,YAAA;AACb,UAAI,CAACJ,mBAAmB;AACtB;MACF;AACA,YAAMb,SAAS,MAAMa,kBAAkBL,aAAaR,OAAOkB,KAAI;AAC/DT,sBAAgBT,OAAOmB,WAAW,EAAA;IACpC,GAAG;MAACN;KAAkB;AAEtB,UAAMO,aAAaC,YAAY,YAAA;AAC7B,UAAI,CAAC5B,OAAO;AACV;MACF;AAEAa,kBAAY,IAAA;AACZ,UAAI;AACF,YAAIO,mBAAmB;AACrB,gBAAMS,OAAO,MAAMT,kBAAkBL,aAAaR,OAAOkB,KAAI;AAC7DI,eAAKH,UAAUX;AACf,cAAIb,IAAIqB,KAAK;AACX,kBAAMO,SAASC,OAAOtB,KAAKP,GAAGqB,GAAG;AACjC,gBAAI,CAACH,kBAAkBY,OAAOC,SAASH,MAAAA,GAAS;AAC9CV,gCAAkBY,QAAQ;mBAAKZ,kBAAkBY,SAAS,CAAA;gBAAKF;;YACjE;UACF;QACF,WAAW5B,IAAIqB,KAAK;AAClBvB,gBAAMkC,GAAGC,IACPxB,UAAUF,KAAK;YACbc,KAAKL;YACLD,MAAMpC,OAAOoC,QAAQ;YACrBF,cAAcqB,SAAS3B,KAAK;cAC1BF,QAAQQ;YACV,CAAA;YACAiB,OAAO;cAACD,OAAOtB,KAAKP,GAAGqB,GAAG;;UAC5B,CAAA,CAAA;QAEJ;AACA,cAAMvB,MAAMkC,GAAGG,MAAK;MACtB,UAAA;AACExB,oBAAY,KAAA;MACd;IACF,GAAG;MAACb;MAAOoB;MAAmBlB;MAAIgB;MAAcrC,OAAOoC;MAAMF;KAAa;AAE1E,WACE,sBAAA,cAACuB,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACD,OAAAA,MACC,sBAAA,cAACE,MAAAA,MAAItD,EAAE,0BAA0B;MAAEuD,SAAS;IAAY,CAAA,CAAA,GACxD,sBAAA,cAACC,KAAAA;MAAEH,WAAU;OACVrD,EAAE,gCAAgC;MAAEuD,SAAS;IAAyD,CAAA,CAAA,CAAA,GAG3G,sBAAA,cAACnD,MAAMC,MAAI,MACT,sBAAA,cAAC+C,OAAAA;MAAIK,MAAK;MAAOJ,WAAU;OACzB,sBAAA,cAACjD,MAAME,OAAK,MAAEN,EAAE,gCAAgC;MAAEuD,SAAS;IAAe,CAAA,CAAA,GAC1E,sBAAA,cAACnD,MAAMsD,UAAQ;MACblD,aAAaR,EAAE,sCAAsC;QAAEuD,SAAS;MAAyC,CAAA;MACzGI,MAAM;MACNlD,OAAOoB;MACPlB,UAAU,CAACC,UAAUkB,gBAAgBlB,MAAMC,OAAOJ,KAAK;MACvDmD,YAAW;UAIjB,sBAAA,cAACR,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACQ,QAAAA;MAAOC,UAAW,CAAC5B,qBAAqB,CAAClB,IAAIqB,OAAQX;MAAUqC,SAAStB;OACtEzC,EAAE0B,WAAW,mBAAmB,0BAA0B;MACzD6B,SAAS7B,WAAW,mBAAc;IACpC,CAAA,CAAA,CAAA,CAAA;;;;AAKV;AAEA,IAAM9B,UAAU,CAAC,EAAED,OAAM,MAA6B;;;AACpD,UAAM,EAAEK,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAM6D,SAASC,UAAAA;AACf,UAAMnD,QAAQC,SAASpB,MAAAA;AACvB,UAAM,CAACqB,EAAAA,IAAMC,SAASH,OAAOI,OAAOC,KAAKC,SAASA,UAAU;MAAEC,QAAQC,IAAIC,KAAK5B,MAAAA;IAAQ,CAAA,CAAA;AAEvF,UAAMuE,aAAalD,MAAMmD,4BAA4BC,QAAQpD,EAAAA,CAAAA;AAC7D,UAAMqD,cACJH,cACAI,iBAAiBJ,YAAYF,OAAOO,OAAOC,OAAOC,SAASC,UAAUC,MAAMC,OAAO,IAAI;MACpFC,SAAS/D,OAAOX;IAClB,CAAA;AAEF,UAAM,CAAC2E,SAASC,UAAAA,IAAcC,mBAAmBhE,IAAI8D,WAAW,EAAA;AAChE,UAAMG,sBAAsBvC,YAC1B,CAAC9B,UAAAA;AACCmE,iBAAWnE,MAAMC,OAAOJ,KAAK;IAC/B,GACA;MAACsE;KAAW;AAGd,UAAMG,oBAAoBxC,YAAY,MAAA;AACpC1B,SAAG8D,UAAUA;IACf,GAAG;MAAC9D;MAAI8D;KAAQ;AAEhB,QAAI,CAAC9D,MAAM,CAACqD,aAAa;AACvB,aAAO;IACT;AAGA,WACE,sBAAA,cAACjB,OAAAA;MAAIK,MAAK;MAAOJ,WAAU;OACzB,sBAAA,cAACC,MAAAA,MAAItD,EAAE,kCAAA,CAAA,GACP,sBAAA,cAACI,MAAMC,MAAI,MACT,sBAAA,cAAC+C,OAAAA;MAAIK,MAAK;MAAOJ,WAAU;OACzB,sBAAA,cAACjD,MAAME,OAAK,MAAEN,EAAE,oBAAA,CAAA,GAChB,sBAAA,cAACoD,OAAAA;MAAIK,MAAK;MAAOJ,WAAU;OACzB,sBAAA,cAACjD,MAAMG,WAAS;MACduD,UAAAA;MACArD,OAAO4D;MACP1D,UAAU,CAACC,UAAAA;AACTI,WAAGe,OAAOnB,MAAMC,OAAOJ;MACzB;QAEF,sBAAA,cAAC0E,UAAUC,YAAU;MAAC3E,OAAO4D;WAInC,sBAAA,cAACjE,MAAMC,MAAI,MACT,sBAAA,cAAC+C,OAAAA;MAAIK,MAAK;MAAOJ,WAAU;OACzB,sBAAA,cAACjD,MAAME,OAAK,MAAEN,EAAE,wBAAA,CAAA,GAChB,sBAAA,cAACI,MAAMG,WAAS;MACdC,aAAaR,EAAE,8BAAA;MACfS,OAAOqE;MACPnE,UAAUsE;MACVI,QAAQH;;;;;AAMpB;AAGA,IAAMpF,aAAa,CAAC,EAAEH,OAAM,MAA6B;;;AACvD,UAAM,EAAEK,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAM,EAAEmF,iBAAiBC,SAAQ,IAAKC,oBAAAA;AACtC,UAAM1E,QAAQC,SAASpB,MAAAA;AACvB,UAAM,CAAC8F,WAAAA,IAAexE,SAASH,OAAOI,OAAOC,KAAKuE,SAASC,aAAa;MAAEtE,QAAQ;IAAa,CAAA,CAAA;AAC/F,UAAMuE,UAAUxB,QAAQzE,MAAAA,EAAQkG,KAAK1D,KAAK,CAAC,EAAEd,OAAM,MAAOA,WAAW,YAAA;AACrE,UAAM,CAACyE,SAASC,UAAAA,IAAcnE,SAAAA;AAE9BU,mBAAe,YAAA;AACb,YAAM0D,QAAQP,aAAaO;AAC3B,YAAMC,SAASL,SAASzF;AACxB,UAAI,CAAC6F,SAAS,CAACC,QAAQ;AACrBF,mBAAWG,MAAAA;AACX;MACF;AAEA,UAAI;AACF,cAAMC,UAAU,IAAIC,QAAQ;UAAEC,MAAMZ,YAAYO;QAAM,CAAA;AACtD,cAAMM,WAAW,MAAMH,QAAQI,QAAQ,wBAAwB;UAC7DC,SAASP;QACX,CAAA;AACAF,mBAAWO,SAASG,KAAKC,QAAQ;MACnC,SAASC,KAAK;AACZC,YAAIC,MAAMF,KAAAA,QAAAA;;;;;;AACVZ,mBAAWG,MAAAA;MACb;IACF,GAAG;MAACT;MAAaG;KAAQ;AAEzB,UAAMkB,yBAAyBpE,YAC7B,MAAM6C,SAASwB,aAAaC,eAAeC,MAAM;MAAEC,QAAQ;IAAgC,CAAA,CAAA,GAC3F,CAAA,CAAE;AAGJ,UAAM,CAACC,YAAYC,aAAAA,IAAiBxF,SAAS,KAAA;AAC7C,UAAMyF,gBAAgB3E,YAAY,YAAA;AAChC0E,oBAAc,IAAA;AACd,YAAMjB,UAAU,IAAIC,QAAQ;QAAEC,MAAMZ,YAAYO;MAAM,CAAA;AACtD,YAAM3E,SAAS,MAAM1B,OAAO0B,OAAOkB,KAAI;AACvC,YAAM+E,WAAW3H,OAAOoC,OAAOE,SAAStC,OAAOoC,IAAI,IAAI;AACvD,YAAMwF,QAAQ;QAAE,CAAC,GAAGD,QAAAA,KAAa,GAAG;UAAE9E,SAASnB,OAAOmB;QAAQ;MAAE;AAEhE,UAAI;AAEF,cAAMtC,QAAOkE,QAAQzE,MAAAA;AACrB,cAAM6H,YAAYtH,MAAK2F,KAAK1D,KAAK,CAAC,EAAEd,QAAAA,QAAM,MAAOA,YAAW,YAAA;AAC5D,cAAM4E,SAASuB,WAAWrH;AAC1B,YAAI8F,QAAQ;AACV,gBAAME,QAAQI,QAAQ,0BAA0B;YAC9CC,SAASP;YACTsB;UACF,CAAA;QACF,OAAO;AACL,gBAAMjB,WAAW,MAAMH,QAAQI,QAAQ,eAAe;YACpDkB,QAAQ;YACRF;UACF,CAAA;AACA,cAAIjB,SAASG,KAAKtG,IAAI;AACpBD,YAAAA,MAAK2F,KAAK6B,KAAK;cAAErG,QAAQ;cAAclB,IAAImG,SAASG,KAAKtG;YAAG,CAAA;UAC9D;QACF;MACF,UAAA;AACEiH,sBAAc,KAAA;MAChB;IACF,GAAG;MAACzH;MAAQ8F;KAAY;AAExB,WACE,sBAAA,cAACrC,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACD,OAAAA,MACC,sBAAA,cAACE,MAAAA,MAAItD,EAAE,+BAAA,CAAA,GACP,sBAAA,cAACwD,KAAAA;MAAEH,WAAU;OAA4BrD,EAAE,qCAAA,CAAA,CAAA,GAE5C,CAACyF,eACA,sBAAA,cAACrC,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACsE,QAAAA,MAAM3H,EAAE,uBAAA,CAAA,GACT,sBAAA,cAAC6D,QAAAA;MAAOE,SAAS+C;OAAyB9G,EAAE,0BAAA,CAAA,CAAA,GAG/CyF,eACC,sBAAA,cAACrC,OAAAA;MAAIC,WAAU;OACZyC,WAAW,sBAAA,cAACX,UAAUC,YAAU;MAAC3E,OAAOqF;QACzC,sBAAA,cAACjC,QAAAA;MAAOC,UAAUqD;MAAYpD,SAASsD;OACpCrH,EAAEmH,aAAa,qBAAqB,eAAA,CAAA,CAAA,CAAA;;;;AAMjD;;;;ACzRA,OAAOS,YAAW;AAElB,SAASC,aAAAA,kBAAiB;AAC1B,SAASC,UAAAA,SAAQC,QAAQC,kBAAAA,uBAAsB;AAC/C,SAA+BC,wBAAwB;AACvD,SAASC,cAAcC,kBAAkBC,aAAaC,sBAAsB;AAMrE,IAAMC,uBAAuB,CAAC,EAAEC,SAAQ,MAAgC;;;AAC7E,UAAM,EAAEC,EAAC,IAAKC,gBAAeC,KAAKC,EAAE;AACpC,UAAMC,SAASC,WAAAA;AAGf,UAAMC,qBAAqB,YAAA;AACzB,YAAM,EAAEC,YAAW,IAAKH,OAAOI,KAAKC,SAASC,IAAG;AAChD,YAAMN,OAAOI,KAAKG,iBAAiB;QAACC,oBAAoBL,WAAAA;OAAa;IACvE;AAEA,WACE,gBAAAM,OAAA,cAACC,aAAAA,MACC,gBAAAD,OAAA,cAACE,gBAAAA;MAAeC,OAAOhB,EAAE,kBAAkB;QAAEiB,IAAIf,KAAKC;MAAG,CAAA;OACvD,gBAAAU,OAAA,cAACK,cAAAA,MAEC,gBAAAL,OAAA,cAACM,kBAAAA;MAAiBH,OAAOhB,EAAE,2BAAA;OACzB,gBAAAa,OAAA,cAACO,SAAAA;MAAOC,SAASf;OAAqBN,EAAE,2BAAA,CAAA,CAAA,GAG1C,gBAAAa,OAAA,cAACM,kBAAAA;MAAiBH,OAAOhB,EAAE,yBAAA;OACzB,gBAAAa,OAAA,cAACS,OAAOC,MAAI;MACVC,OAAOzB,SAAS0B,mBAAmB;MACnCC,eAAe,CAACF,UAAAA;AACdzB,iBAAS0B,kBAAkBD;MAC7B;OAEA,gBAAAX,OAAA,cAACS,OAAOK,eAAa;MAACC,aAAa5B,EAAE,sCAAA;QACrC,gBAAAa,OAAA,cAACS,OAAOO,QAAM,MACZ,gBAAAhB,OAAA,cAACS,OAAOQ,SAAO,MACb,gBAAAjB,OAAA,cAACS,OAAOS,UAAQ,MACbC,iBAAiBC,IAAI,CAACC,SACrB,gBAAArB,OAAA,cAACS,OAAOa,QAAM;MAACC,KAAKF;MAAMV,OAAOU;OAC9BlC,EAAE,8BAA8BkC,IAAAA,QAAY,CAAA,CAAA,CAAA,GAInD,gBAAArB,OAAA,cAACS,OAAOe,OAAK,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAS/B;;;;ACxDA,OAAOC,UAASC,YAAYC,WAAWC,QAAQC,YAAAA,iBAAgB;AAE/D,SAASC,OAAAA,YAAW;AACpB,SAASC,QAAQC,MAAMC,SAAAA,QAA6BC,SAASC,kBAAAA,uBAAsB;AACnF,SAASC,yBAAyB;AAClC,SAASC,WAAWC,UAAU;;AAgBvB,IAAMC,YAAY,CAAC,EAAEC,YAAYC,YAAW,MAAkB;;;AACnE,UAAM,EAAEC,EAAC,IAAKC,gBAAeC,KAAKC,EAAE;AAEpC,UAAMC,WAAWC,OAAyB,IAAA;AAC1C,UAAM,CAACC,OAAOC,QAAAA,IAAYC,UAAS,EAAA;AACnC,UAAM,CAACC,QAAQC,SAAAA,IAAaF,UAAS,EAAA;AACrC,UAAM,CAACG,OAAOC,QAAAA,IAAYJ,UAAuB,IAAA;AAGjD,UAAM,CAACK,SAASC,UAAAA,IAAcN,UAAoB,CAAA,CAAE;AAEpD,UAAMO,cAAcV,OAAuB,IAAA;AAC3C,UAAMW,eAAe,MAAA;AACnB,UAAID,YAAYE,SAAS;AACvBF,oBAAYE,QAAQC,YAAYH,YAAYE,QAAQE;MACtD;IACF;AAEA,UAAMC,aAAaf,OAAwB,IAAA;AAC3CgB,cAAU,MAAA;AACR,aAAO,MAAA;AACLC,mBAAAA;MACF;IACF,GAAG,CAAA,CAAE;AAEL,UAAMA,aAAa,MAAA;AACjBF,iBAAWH,SAASM,MAAM,MAAA;AAC1BH,iBAAWH,UAAU;IACvB;AAEA,UAAMO,cAAc,MAAA;AAClBF,iBAAAA;AACAf,eAAS,EAAA;AACTG,gBAAU,EAAA;AACVI,iBAAW,CAAA,CAAE;AACbV,eAASa,SAASQ,MAAAA;IACpB;AAEA,UAAMC,iBAAiB,CAAC,EAAEC,MAAMC,MAAMC,MAAK,IAAmD,CAAC,MAAC;AAC9FT,iBAAWH,UAAU;AACrBH,iBAAW,CAACD,aAAY;WAAIA;QAAS;UAAEiB,MAAM;UAAYH;UAAMC;UAAMC;QAAM;OAAoB;AAC/FnB,gBAAU,EAAA;AACVE,eAAS,IAAA;AACTI,mBAAAA;IACF;AAEA,UAAMe,gBAAgB,OAAOzB,WAAAA;AAE3B,UAAI;AACFM,iBAAS,SAAA;AAET,YAAIgB,OAAO;AAEX,YAAItB,OAAM0B,OAAO,CAAA,MAAO,KAAK;AAC3B,cAAI;AACF,kBAAMC,kBAAkB3B,OAAM4B,QAAQ,MAAM,GAAA,EAAKA,QAAQ,mCAAmC,UAAA;AAC5FN,mBAAOO,KAAKC,MAAMH,eAAAA;AAClB3B,YAAAA,SAAQ6B,KAAKE,UAAUT,MAAM,MAAM,CAAA;UACrC,SAASU,KAAK;AACZlC,qBAASa,SAASQ,MAAAA;AAClB;UACF;QACF;AAEAlB,iBAAS,EAAA;AACTG,kBAAU,EAAA;AACVI,mBAAW,CAACD,aAAY;aAAIA;UAAS;YAAEiB,MAAM;YAAWH,MAAMrB;UAAM;SAAE;AACtEiC,mBAAW,MAAA;AACTvB,uBAAAA;QACF,CAAA;AAGAI,mBAAWH,UAAU,IAAIuB,gBAAAA;AACzB,cAAMC,WAAW,MAAMC,MAAM3C,aAAc;UACzC4C,QAAQvB,WAAWH,QAAQ0B;UAC3BC,QAAQ;UACRC,MAAMvC;UACNwC,SAAS;YACP,gBAAgBlB,OAAO,qBAAqB;UAC9C;QACF,CAAA;AAGA,YAAI,CAACa,SAASM,IAAI;AAChB,gBAAMpB,QAAO,MAAMc,SAASd,KAAI;AAChCD,yBAAe;YAAEG,OAAO,IAAImB,MAAMrB,SAAQc,SAASQ,cAAcC,OAAOT,SAASU,MAAM,CAAA;UAAG,CAAA;AAC1F;QACF;AAGA,cAAMC,cAAcX,SAASK,QAAQO,IAAI,cAAA;AACzC,YAAID,gBAAgB,oBAAoB;AACtC,gBAAMxB,QAAO,MAAMa,SAASa,KAAI;AAChC5B,yBAAe;YAAEE,MAAAA;UAAK,CAAA;AACtB;QACF;AAGAhB,iBAAS,YAAA;AACT,YAAIe,OAAO;AACX,cAAM4B,SAASd,SAASI,KAAMW,UAAS;AACvC,cAAMC,OAAO,OAAO,EAAEC,MAAMC,MAAK,MAAwC;AACvEhC,iBAAOA,OAAO,IAAIiC,YAAAA,EAAcC,OAAOF,KAAAA;AACvC,cAAI,CAACvC,WAAWH,WAAWyC,MAAM;AAC/BhC,2BAAe;cAAEC;YAAK,CAAA;AACtB;UACF;AAEAjB,oBAAUiB,IAAAA;AACVY,qBAAW,MAAA;AACTvB,yBAAAA;UACF,CAAA;AAEA,iBAAOuC,OAAOO,KAAI,EAAGC,KAAKN,IAAAA;QAC5B;AAEA,aAAKF,OACFO,KAAI,EACJC,KAAKN,IAAAA,EACLO,MAAM,CAAC1B,QAAAA;AACN,cAAIA,IAAI2B,SAAS,cAAc;AAC7BC,YAAAA,KAAIF,MAAM1B,KAAAA,QAAAA;;;;;;UACZ;QACF,CAAA;MACJ,SAASA,KAAU;AACjB,YAAIA,QAAQ,QAAQ;AAClB,gBAAMT,QAAQS,eAAeU,QAAQV,MAAM,IAAIU,MAAMV,GAAAA;AACrDZ,yBAAe;YAAEG;UAAM,CAAA;AACvBqC,UAAAA,KAAIF,MAAM1B,KAAAA,QAAAA;;;;;;QACZ,OAAO;AACLZ,yBAAAA;QACF;MACF;IACF;AAEA,WACE,gBAAAyC,OAAA,cAACC,OAAAA;MAAIC,WAAWC,GAAG,wCAAwCxE,UAAAA;OAEzD,gBAAAqE,OAAA,cAACI,eAAAA;MAAcC,KAAKzD;MAAaJ;MAAcF;MAAgBI;QAE/D,gBAAAsD,OAAA,cAACM,QAAQC,MAAI,MACX,gBAAAP,OAAA,cAACQ,OAAMD,MAAI,MACT,gBAAAP,OAAA,cAACQ,OAAMC,WAAS;MACdJ,KAAKpE;MACLyE,WAAAA;MACAC,aAAa9E,EAAE,8BAAA;MACf2D,OAAOrD;MACPyE,UAAU,CAACC,OAAOzE,SAASyE,GAAGC,OAAOtB,KAAK;MAC1CuB,WAAW,CAACF,OAAOA,GAAGG,QAAQ,WAAWpD,cAAczB,KAAAA;SAG3D,gBAAA6D,OAAA,cAACM,QAAQW,QAAM;MAACC,SAAS,MAAMtD,cAAczB,KAAAA;OAC3C,gBAAA6D,OAAA,cAACmB,MAAAA;MAAKC,MAAK;MAAoBC,MAAM;SAEvC,gBAAArB,OAAA,cAACM,QAAQW,QAAM;MAACC,SAAS,MAAO1E,QAAQW,WAAAA,IAAeE,YAAAA;OACrD,gBAAA2C,OAAA,cAACmB,MAAAA;MAAKC,MAAM5E,QAAQ,sBAAsB;MAAsB6E,MAAM;;;;;AAKhF;AAUA,IAAMjB,gBAAgBkB,2BACpB,CAAC,EAAE9E,OAAOE,SAASJ,OAAM,GAAwBiF,iBAAAA;;;AAC/C,WACE,gBAAAvB,OAAA,cAACC,OAAAA;MAAII,KAAKkB;MAAcrB,WAAU;OAC/BxD,QAAQ8E,IAAI,CAACC,SAASC,MACrB,gBAAA1B,OAAA,cAACC,OAAAA;MAAIe,KAAKU;MAAGxB,WAAU;OACrB,gBAAAF,OAAA,cAACC,OAAAA;MAAIC,WAAU;OAAOuB,QAAQ9D,SAAS,cAAc,gBAAAqC,OAAA,cAAC2B,aAAAA,IAAAA,CAAAA,GACtD,gBAAA3B,OAAA,cAACC,OAAAA;MAAIC,WAAU;OACb,gBAAAF,OAAA,cAAC4B,aAAAA;MAAYH;WAKlBnF,QAAQuF,SAAS,KAChB,gBAAA7B,OAAA,cAACC,OAAAA;MAAIC,WAAU;OACb,gBAAAF,OAAA,cAACC,OAAAA;MAAIC,WAAU;OACX1D,UAAU,aAAa,gBAAAwD,OAAA,cAACmB,MAAAA;MAAKC,MAAK;MAAuBC,MAAM;MAAG1F,YAAW;UAC7E,gBAAAqE,OAAA,cAACmB,MAAAA;MAAKC,MAAK;MAAqBC,MAAM;MAAG1F,YAAW;SAGxD,gBAAAqE,OAAA,cAACC,OAAAA;MAAIC,WAAU;OACb,gBAAAF,OAAA,cAAC4B,aAAAA;MAAYH,SAAS;QAAE9D,MAAM;QAAYH,MAAMlB;MAAO;;;;;AAMnE,CAAA;AAGF,IAAMsF,cAAc,CAAC,EAAEjG,YAAY8F,QAAO,MAAyC;;;AACjF,UAAM,EAAE9D,MAAMH,MAAMC,MAAMC,MAAK,IAAK+D;AACpC,UAAMK,UAAU;AAChB,WACE,gBAAA9B,OAAA,cAACC,OAAAA;MAAIC,WAAWC,GAAG,QAAQxC,SAAS,YAAY,0BAA0B,aAAahC,UAAAA;OACpF+B,SAAS,gBAAAsC,OAAA,cAACC,OAAAA;MAAIC,WAAWC,GAAG2B,SAAS,kBAAkBC,SAAAA;OAAahD,OAAOrB,KAAAA,CAAAA,GAE3EF,SAASwE,UACR,gBAAAhC,OAAA,cAACC,OAAAA;MAAIC,WAAWC,GAAG2B,SAASnE,SAAS,aAAa,oCAAA;OAC/CH,QAAQ,MAAA,GAIZC,QACC,gBAAAuC,OAAA,cAACiC,mBAAAA;MAAkBC,UAAS;MAAOhC,WAAWC,GAAG2B,SAAS,SAAA;OACvD9D,KAAKE,UAAUT,MAAM,MAAM,CAAA,CAAA,CAAA;;;;AAKtC;AAEA,IAAMkE,cAAc,MAAA;;;WAClB,gBAAA3B,OAAA,cAACmC,OAAO5B,MAAI,MACV,gBAAAP,OAAA,cAACmC,OAAOC,SAAO;MAACf,MAAM;MAAGgB,SAAQ;MAASjB,MAAK;;;;;;;;;ACrPnD,OAAOkB,YAAW;AAGlB,SAASC,iBAAiB;AAWnB,IAAMC,gBAAgB,CAAC,EAAEC,OAAM,MAAsB;;;AAC1D,UAAMC,QAAQC,gBAAAA;AACdC,mBAAe;MAAEF;MAAOD;IAAO,CAAA;AAC/B,WACE,gBAAAI,OAAA,cAACC,UAAUC,SAAO,MAChB,gBAAAF,OAAA,cAACG,WAAAA;MAAUC,aAAaP,MAAMO;;;;;AAGpC;;;ACtBA,SAASC,YAAY;AAQd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,gCAAA,CAAA;AAC1C,IAAMC,mBAAmBD,KAAK,MAAM,OAAO,iCAAA,CAAA;AAC3C,IAAME,oBAAoBF,KAAK,MAAM,OAAO,kCAAA,CAAA;",
|
|
6
|
+
"names": ["Octokit", "React", "useCallback", "useState", "ToolId", "SettingsAction", "createIntent", "useIntentDispatcher", "Blueprint", "Template", "Function", "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", "Function", "source", "Ref", "make", "blueprints", "Blueprint", "creating", "setCreating", "useState", "instructions", "setInstructions", "name", "blueprintKey", "kebabize", "existingBlueprint", "find", "bp", "key", "useAsyncEffect", "load", "content", "handleSave", "useCallback", "text", "toolId", "ToolId", "tools", "includes", "db", "add", "Template", "flush", "div", "className", "h2", "default", "p", "role", "TextArea", "rows", "classNames", "Button", "disabled", "onClick", "client", "useClient", "functionId", "getUserFunctionIdInMetadata", "getMeta", "functionUrl", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "spaceId", "binding", "setBinding", "useControlledState", "handleBindingChange", "handleBindingBlur", "Clipboard", "IconButton", "onBlur", "dispatchPromise", "dispatch", "useIntentDispatcher", "githubToken", "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
|
+
}
|