@dxos/plugin-script 0.8.4-main.7996785055 → 0.8.4-main.8baae0fced
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/LICENSE +102 -5
- package/dist/lib/{browser/DeploymentDialog-LGEGIX64.mjs → neutral/DeploymentDialog-6DBF3V6C.mjs} +15 -27
- package/dist/lib/neutral/DeploymentDialog-6DBF3V6C.mjs.map +7 -0
- package/dist/lib/{browser/NotebookContainer-CC3G32Q5.mjs → neutral/NotebookArticle-VBBVX4BW.mjs} +48 -135
- package/dist/lib/neutral/NotebookArticle-VBBVX4BW.mjs.map +7 -0
- package/dist/lib/{browser/ScriptContainer-Z3MCPN2D.mjs → neutral/ScriptArticle-UBT27SB6.mjs} +10 -26
- package/dist/lib/neutral/ScriptArticle-UBT27SB6.mjs.map +7 -0
- package/dist/lib/neutral/ScriptPlugin.mjs +39 -0
- package/dist/lib/neutral/ScriptPlugin.mjs.map +7 -0
- package/dist/lib/neutral/ScriptPlugin.node.mjs +27 -0
- package/dist/lib/neutral/ScriptPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/ScriptPlugin.workerd.mjs +21 -0
- package/dist/lib/neutral/ScriptPlugin.workerd.mjs.map +7 -0
- package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs +31 -0
- package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs.map +7 -0
- package/dist/lib/neutral/ScriptProperties-RLXNAN3N.mjs +297 -0
- package/dist/lib/neutral/ScriptProperties-RLXNAN3N.mjs.map +7 -0
- package/dist/lib/{browser/TestContainer-ACNQMKVU.mjs → neutral/TestContainer-AFVTBYSJ.mjs} +9 -26
- package/dist/lib/neutral/TestContainer-AFVTBYSJ.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-builder-7AWFCEQF.mjs +52 -0
- package/dist/lib/neutral/app-graph-builder-7AWFCEQF.mjs.map +7 -0
- package/dist/lib/{browser/blueprint-definition-MC264VR5.mjs → neutral/blueprint-definition-T33SBPP2.mjs} +4 -6
- package/dist/lib/neutral/blueprint-definition-T33SBPP2.mjs.map +7 -0
- package/dist/lib/{browser → neutral}/blueprints/index.mjs +3 -1
- package/dist/lib/neutral/capabilities/index.mjs +21 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/node.mjs +17 -0
- package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
- package/dist/lib/{node-esm/chunk-JGN7TDJH.mjs → neutral/chunk-2REUEDUA.mjs} +10 -23
- package/dist/lib/neutral/chunk-2REUEDUA.mjs.map +7 -0
- package/dist/lib/{browser/chunk-37XPSUAH.mjs → neutral/chunk-436PZKYX.mjs} +2 -1
- package/dist/lib/neutral/chunk-436PZKYX.mjs.map +7 -0
- package/dist/lib/neutral/chunk-4OWPUMGN.mjs +8 -0
- package/dist/lib/neutral/chunk-4OWPUMGN.mjs.map +7 -0
- package/dist/lib/neutral/chunk-A4LRH25S.mjs +105 -0
- package/dist/lib/neutral/chunk-A4LRH25S.mjs.map +7 -0
- package/dist/lib/neutral/chunk-BDRB6ZX2.mjs +52 -0
- package/dist/lib/neutral/chunk-BDRB6ZX2.mjs.map +7 -0
- package/dist/lib/neutral/chunk-BMO5VOKL.mjs +125 -0
- package/dist/lib/neutral/chunk-BMO5VOKL.mjs.map +7 -0
- package/dist/lib/neutral/chunk-MI6X5CTJ.mjs +336 -0
- package/dist/lib/neutral/chunk-MI6X5CTJ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-SNUWHNEW.mjs +8 -0
- package/dist/lib/neutral/chunk-SNUWHNEW.mjs.map +7 -0
- package/dist/lib/{browser/chunk-E6BQ4P6L.mjs → neutral/chunk-VXDJH6OL.mjs} +21 -50
- package/dist/lib/neutral/chunk-VXDJH6OL.mjs.map +7 -0
- package/dist/lib/{browser/compiler-MZKFKYCG.mjs → neutral/compiler-ODK4UA2N.mjs} +24 -21
- package/dist/lib/neutral/compiler-ODK4UA2N.mjs.map +7 -0
- package/dist/lib/{node-esm/chunk-SV742UH7.mjs → neutral/components/index.mjs} +75 -97
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +17 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/create-ZUHIXCBS.mjs +46 -0
- package/dist/lib/neutral/create-ZUHIXCBS.mjs.map +7 -0
- package/dist/lib/neutral/create-object-F2NWICFV.mjs +44 -0
- package/dist/lib/neutral/create-object-F2NWICFV.mjs.map +7 -0
- package/dist/lib/{browser/create-script-Z7J4HDV2.mjs → neutral/create-script-H5S4AO47.mjs} +6 -8
- package/dist/lib/neutral/create-script-H5S4AO47.mjs.map +7 -0
- package/dist/lib/neutral/delete-PAUWA2QM.mjs +21 -0
- package/dist/lib/neutral/delete-PAUWA2QM.mjs.map +7 -0
- package/dist/lib/neutral/deploy-M73G7HMP.mjs +63 -0
- package/dist/lib/neutral/deploy-M73G7HMP.mjs.map +7 -0
- package/dist/lib/{browser/chunk-DBEYGFVF.mjs → neutral/hooks/index.mjs} +49 -80
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +41 -0
- package/dist/lib/neutral/inspect-invocations-UO27IPCL.mjs +59 -0
- package/dist/lib/neutral/inspect-invocations-UO27IPCL.mjs.map +7 -0
- package/dist/lib/neutral/install-function-MSWSC244.mjs +49 -0
- package/dist/lib/neutral/install-function-MSWSC244.mjs.map +7 -0
- package/dist/lib/neutral/invoke-V6XYXKLD.mjs +32 -0
- package/dist/lib/neutral/invoke-V6XYXKLD.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +10 -0
- package/dist/lib/neutral/operation-handler-KIZ7XZ5G.mjs +18 -0
- package/dist/lib/neutral/operation-handler-KIZ7XZ5G.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +8 -0
- package/dist/lib/neutral/plugin.mjs +16 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/query-deployed-functions-4MMKQ6BR.mjs +34 -0
- package/dist/lib/neutral/query-deployed-functions-4MMKQ6BR.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-K4SSUR57.mjs +120 -0
- package/dist/lib/neutral/react-surface-K4SSUR57.mjs.map +7 -0
- package/dist/lib/neutral/read-FFOSK6A3.mjs +26 -0
- package/dist/lib/neutral/read-FFOSK6A3.mjs.map +7 -0
- package/dist/lib/{browser/settings-BV3KXROF.mjs → neutral/settings-VJBW4OMK.mjs} +6 -11
- package/dist/lib/neutral/settings-VJBW4OMK.mjs.map +7 -0
- package/dist/lib/{browser → neutral}/templates/index.mjs +1 -1
- package/dist/lib/neutral/translations.mjs +104 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +17 -0
- package/dist/lib/neutral/update-PJS5GG3Y.mjs +63 -0
- package/dist/lib/neutral/update-PJS5GG3Y.mjs.map +7 -0
- package/dist/types/src/ScriptPlugin.d.ts +1 -0
- package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
- package/dist/types/src/ScriptPlugin.node.d.ts +4 -0
- package/dist/types/src/ScriptPlugin.node.d.ts.map +1 -0
- package/dist/types/src/ScriptPlugin.test.d.ts +2 -0
- package/dist/types/src/ScriptPlugin.test.d.ts.map +1 -0
- package/dist/types/src/ScriptPlugin.workerd.d.ts +4 -0
- package/dist/types/src/ScriptPlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/create.d.ts +11 -0
- package/dist/types/src/blueprints/functions/create.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/definitions.d.ts +129 -0
- package/dist/types/src/blueprints/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/delete.d.ts +16 -0
- package/dist/types/src/blueprints/functions/delete.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/deploy.d.ts +20 -0
- package/dist/types/src/blueprints/functions/deploy.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/inspect-invocations.d.ts +27 -0
- package/dist/types/src/blueprints/functions/inspect-invocations.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/install-function.d.ts +11 -0
- package/dist/types/src/blueprints/functions/install-function.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/invoke.d.ts +20 -0
- package/dist/types/src/blueprints/functions/invoke.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts +13 -0
- package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/read.d.ts +20 -0
- package/dist/types/src/blueprints/functions/read.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/update.d.ts +25 -0
- package/dist/types/src/blueprints/functions/update.d.ts.map +1 -0
- package/dist/types/src/blueprints/script-blueprint.d.ts +2 -2
- package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/compiler.d.ts +6 -0
- package/dist/types/src/capabilities/compiler.d.ts.map +1 -0
- package/dist/types/src/capabilities/create-object.d.ts +16 -0
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +19 -6
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/node.d.ts +18 -0
- package/dist/types/src/capabilities/node.d.ts.map +1 -0
- package/dist/types/src/capabilities/{operation-handler/operation-handler.d.ts → operation-handler.d.ts} +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +2 -5
- package/dist/types/src/capabilities/settings.d.ts.map +1 -0
- package/dist/types/src/compiler/compiler.d.ts.map +1 -1
- package/dist/types/src/components/FramePanel/FramePanel.d.ts.map +1 -1
- package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +1 -1
- package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
- package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +1 -1
- package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -1
- package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +2 -6
- package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +219 -231
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
- package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -1
- package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts +8 -0
- package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +1 -0
- package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts +241 -0
- package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/ScriptPluginSettings/index.d.ts +2 -0
- package/dist/types/src/components/ScriptPluginSettings/index.d.ts.map +1 -0
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +3 -7
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +219 -231
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/TestPanel/TestPanel.d.ts +1 -5
- package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +3 -6
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +1 -5
- 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/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
- package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts +219 -231
- package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/DeploymentDialog/index.d.ts +1 -2
- package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -1
- package/dist/types/src/containers/NotebookArticle/NotebookArticle.d.ts +7 -0
- package/dist/types/src/containers/NotebookArticle/NotebookArticle.d.ts.map +1 -0
- package/dist/types/src/containers/NotebookArticle/NotebookArticle.stories.d.ts +7 -0
- package/dist/types/src/containers/NotebookArticle/NotebookArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/NotebookArticle/index.d.ts +2 -0
- package/dist/types/src/containers/NotebookArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/ScriptArticle/ScriptArticle.d.ts +10 -0
- package/dist/types/src/containers/ScriptArticle/ScriptArticle.d.ts.map +1 -0
- package/dist/types/src/containers/ScriptArticle/ScriptArticle.stories.d.ts +242 -0
- package/dist/types/src/containers/ScriptArticle/ScriptArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ScriptArticle/index.d.ts +2 -0
- package/dist/types/src/containers/ScriptArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/ScriptProperties/BlueprintEditor.d.ts +7 -0
- package/dist/types/src/containers/ScriptProperties/BlueprintEditor.d.ts.map +1 -0
- package/dist/types/src/containers/ScriptProperties/FunctionBinding.d.ts +7 -0
- package/dist/types/src/containers/ScriptProperties/FunctionBinding.d.ts.map +1 -0
- package/dist/types/src/containers/ScriptProperties/FunctionPublishing.d.ts +7 -0
- package/dist/types/src/containers/ScriptProperties/FunctionPublishing.d.ts.map +1 -0
- package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +4 -5
- package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -1
- package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts +242 -0
- package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ScriptProperties/index.d.ts +1 -2
- package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -1
- package/dist/types/src/containers/TestContainer/TestContainer.d.ts +1 -1
- package/dist/types/src/containers/TestContainer/TestContainer.d.ts.map +1 -1
- package/dist/types/src/containers/TestContainer/index.d.ts +1 -2
- package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +2 -4
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/hooks/deploy.d.ts +14 -5
- package/dist/types/src/hooks/deploy.d.ts.map +1 -1
- package/dist/types/src/hooks/format.d.ts +1 -1
- package/dist/types/src/hooks/format.d.ts.map +1 -1
- package/dist/types/src/hooks/template.d.ts +1 -1
- package/dist/types/src/hooks/template.d.ts.map +1 -1
- package/dist/types/src/hooks/useCompiler.d.ts.map +1 -1
- package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
- package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -4
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/notebook/compute-graph.d.ts +1 -1
- package/dist/types/src/notebook/compute-graph.d.ts.map +1 -1
- package/dist/types/src/notebook/eval.d.ts.map +1 -1
- package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -1
- package/dist/types/src/operations/create-script.d.ts +3 -3
- package/dist/types/src/operations/create-script.d.ts.map +1 -1
- package/dist/types/src/operations/index.d.ts +1 -2
- package/dist/types/src/operations/index.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/templates/anthropic.d.ts +1 -1
- package/dist/types/src/templates/anthropic.d.ts.map +1 -1
- package/dist/types/src/templates/chat.d.ts.map +1 -1
- package/dist/types/src/templates/chess-bot.d.ts +5 -11
- package/dist/types/src/templates/chess-bot.d.ts.map +1 -1
- package/dist/types/src/templates/commentary.d.ts +5 -11
- package/dist/types/src/templates/commentary.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/email.d.ts.map +1 -1
- package/dist/types/src/templates/forex-effect.d.ts +1 -1
- package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
- package/dist/types/src/templates/forex.d.ts +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 +29 -29
- package/dist/types/src/templates/index.d.ts.map +1 -1
- package/dist/types/src/templates/ping.d.ts +1 -1
- package/dist/types/src/templates/ping.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +2 -1
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/test-notebook.d.ts +3 -0
- package/dist/types/src/testing/test-notebook.d.ts.map +1 -0
- package/dist/types/src/testing/test-script.d.ts +7 -0
- package/dist/types/src/testing/test-script.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +222 -94
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Notebook.d.ts +37 -29
- package/dist/types/src/types/Notebook.d.ts.map +1 -1
- package/dist/types/src/types/ScriptCapabilities.d.ts +6 -0
- package/dist/types/src/types/ScriptCapabilities.d.ts.map +1 -0
- package/dist/types/src/types/ScriptEvents.d.ts +3 -0
- package/dist/types/src/types/ScriptEvents.d.ts.map +1 -0
- package/dist/types/src/types/ScriptOperation.d.ts +29 -0
- package/dist/types/src/types/ScriptOperation.d.ts.map +1 -0
- package/dist/types/src/types/Settings.d.ts +7 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +4 -3
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +1 -5
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util/deploy.d.ts +1 -2
- package/dist/types/src/util/deploy.d.ts.map +1 -1
- package/dist/types/src/util/functions.d.ts +1 -2
- package/dist/types/src/util/functions.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +153 -113
- package/src/ScriptPlugin.node.ts +21 -0
- package/src/ScriptPlugin.test.ts +31 -0
- package/src/ScriptPlugin.tsx +9 -56
- package/src/ScriptPlugin.workerd.ts +18 -0
- package/src/blueprints/functions/create.ts +47 -0
- package/src/blueprints/functions/definitions.ts +323 -0
- package/src/blueprints/functions/delete.ts +23 -0
- package/src/blueprints/functions/deploy.ts +71 -0
- package/src/blueprints/functions/index.ts +19 -0
- package/src/blueprints/functions/inspect-invocations.ts +56 -0
- package/src/blueprints/functions/install-function.ts +56 -0
- package/src/blueprints/functions/invoke.ts +34 -0
- package/src/blueprints/functions/query-deployed-functions.ts +35 -0
- package/src/blueprints/functions/read.ts +29 -0
- package/src/blueprints/functions/update.ts +68 -0
- package/src/blueprints/script-blueprint.ts +32 -5
- package/src/capabilities/{app-graph-builder/app-graph-builder.ts → app-graph-builder.ts} +13 -22
- package/src/capabilities/{artifact-definition/artifact-definition.ts → artifact-definition.ts} +4 -5
- package/src/capabilities/{blueprint-definition/blueprint-definition.ts → blueprint-definition.ts} +3 -1
- package/src/capabilities/{compiler/compiler.ts → compiler.ts} +17 -9
- package/src/capabilities/create-object.ts +48 -0
- package/src/capabilities/index.ts +14 -6
- package/src/capabilities/node.ts +16 -0
- package/src/capabilities/operation-handler.ts +21 -0
- package/src/capabilities/react-surface.tsx +130 -0
- package/src/capabilities/{settings/settings.ts → settings.ts} +4 -4
- package/src/compiler/compiler.ts +12 -1
- package/src/components/NotebookStack/NotebookCell.tsx +22 -11
- package/src/components/NotebookStack/NotebookMenu.tsx +7 -7
- package/src/components/NotebookStack/NotebookStack.stories.tsx +4 -4
- package/src/components/NotebookStack/NotebookStack.tsx +4 -4
- package/src/components/QueryEditor/QueryEditor.stories.tsx +3 -3
- package/src/components/QueryEditor/QueryEditor.tsx +3 -1
- package/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.tsx +32 -0
- package/src/components/ScriptPluginSettings/ScriptPluginSettings.tsx +42 -0
- package/src/components/ScriptPluginSettings/index.ts +5 -0
- package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +6 -6
- package/src/components/ScriptToolbar/ScriptToolbar.tsx +4 -4
- package/src/components/TestPanel/TestPanel.tsx +5 -9
- package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +3 -3
- package/src/components/TypescriptEditor/TypescriptEditor.tsx +2 -2
- package/src/components/index.ts +4 -0
- package/src/constants.ts +1 -1
- package/src/containers/DeploymentDialog/DeploymentDialog.stories.tsx +4 -4
- package/src/containers/DeploymentDialog/DeploymentDialog.tsx +14 -13
- package/src/containers/DeploymentDialog/index.ts +1 -3
- package/src/containers/{NotebookContainer/NotebookContainer.stories.tsx → NotebookArticle/NotebookArticle.stories.tsx} +15 -14
- package/src/containers/{NotebookContainer/NotebookContainer.tsx → NotebookArticle/NotebookArticle.tsx} +32 -45
- package/src/containers/NotebookArticle/index.ts +5 -0
- package/src/containers/ScriptArticle/ScriptArticle.stories.tsx +107 -0
- package/src/containers/{ScriptContainer/ScriptContainer.tsx → ScriptArticle/ScriptArticle.tsx} +12 -12
- package/src/containers/ScriptArticle/index.ts +5 -0
- package/src/containers/ScriptProperties/BlueprintEditor.tsx +102 -0
- package/src/containers/ScriptProperties/FunctionBinding.tsx +83 -0
- package/src/containers/ScriptProperties/FunctionPublishing.tsx +121 -0
- package/src/containers/ScriptProperties/ScriptProperties.stories.tsx +76 -0
- package/src/containers/ScriptProperties/ScriptProperties.tsx +12 -21
- package/src/containers/ScriptProperties/index.ts +1 -3
- package/src/containers/TestContainer/TestContainer.tsx +7 -8
- package/src/containers/TestContainer/index.ts +1 -3
- package/src/containers/index.ts +2 -4
- package/src/e2e/ai.test.ts +2 -2
- package/src/e2e/deploy.test.ts +3 -2
- package/src/hooks/deploy.ts +8 -7
- package/src/hooks/format.ts +4 -4
- package/src/hooks/template.ts +6 -5
- package/src/hooks/useCompiler.ts +3 -2
- package/src/hooks/useCreateAndDeployScriptTemplates.ts +4 -3
- package/src/index.ts +2 -5
- package/src/meta.ts +1 -0
- package/src/notebook/compute-graph.test.ts +7 -7
- package/src/notebook/compute-graph.ts +1 -1
- package/src/notebook/vfs-parser.ts +10 -3
- package/src/operations/create-script.ts +3 -4
- package/src/operations/index.ts +2 -7
- package/src/plugin.ts +11 -0
- package/src/templates/anthropic.ts +1 -1
- package/src/templates/chess-bot.ts +11 -9
- package/src/templates/commentary.ts +27 -22
- package/src/templates/discord.ts +1 -1
- package/src/templates/forex-effect.ts +1 -1
- package/src/templates/forex.ts +1 -1
- package/src/templates/gmail.ts +1 -1
- package/src/templates/ping.ts +1 -1
- package/src/testing/index.ts +2 -1
- package/src/testing/simulator.test.ts +3 -4
- package/src/testing/{data.ts → test-notebook.ts} +11 -12
- package/src/testing/test-script.ts +28 -0
- package/src/translations.ts +86 -89
- package/src/types/Notebook.ts +3 -3
- package/src/types/ScriptCapabilities.ts +18 -0
- package/src/types/ScriptEvents.ts +11 -0
- package/src/{operations/definitions.ts → types/ScriptOperation.ts} +5 -3
- package/src/types/Settings.ts +20 -0
- package/src/types/index.ts +5 -3
- package/src/types/types.ts +1 -11
- package/src/util/deploy.ts +7 -7
- package/src/util/functions.ts +11 -11
- package/dist/lib/browser/DeploymentDialog-LGEGIX64.mjs.map +0 -7
- package/dist/lib/browser/NotebookContainer-CC3G32Q5.mjs.map +0 -7
- package/dist/lib/browser/ScriptContainer-Z3MCPN2D.mjs.map +0 -7
- package/dist/lib/browser/ScriptObjectSettings-LST7DUAN.mjs +0 -297
- package/dist/lib/browser/ScriptObjectSettings-LST7DUAN.mjs.map +0 -7
- package/dist/lib/browser/ScriptPluginSettings-IKWRISC3.mjs +0 -55
- package/dist/lib/browser/ScriptPluginSettings-IKWRISC3.mjs.map +0 -7
- package/dist/lib/browser/ScriptProperties-ZCRTZTAK.mjs +0 -28
- package/dist/lib/browser/ScriptProperties-ZCRTZTAK.mjs.map +0 -7
- package/dist/lib/browser/TestContainer-ACNQMKVU.mjs.map +0 -7
- package/dist/lib/browser/access-token-created-ZHVVOEL7.mjs +0 -36
- package/dist/lib/browser/access-token-created-ZHVVOEL7.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-QPXX4YK5.mjs +0 -63
- package/dist/lib/browser/app-graph-builder-QPXX4YK5.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-MC264VR5.mjs.map +0 -7
- package/dist/lib/browser/chunk-37XPSUAH.mjs.map +0 -7
- package/dist/lib/browser/chunk-4XJSGCAS.mjs +0 -742
- package/dist/lib/browser/chunk-4XJSGCAS.mjs.map +0 -7
- package/dist/lib/browser/chunk-7JI376EM.mjs +0 -20
- package/dist/lib/browser/chunk-7JI376EM.mjs.map +0 -7
- package/dist/lib/browser/chunk-ATTZUDT7.mjs +0 -67
- package/dist/lib/browser/chunk-ATTZUDT7.mjs.map +0 -7
- package/dist/lib/browser/chunk-BHRCZLLU.mjs +0 -105
- package/dist/lib/browser/chunk-BHRCZLLU.mjs.map +0 -7
- package/dist/lib/browser/chunk-CMHREENI.mjs +0 -8
- package/dist/lib/browser/chunk-CMHREENI.mjs.map +0 -7
- package/dist/lib/browser/chunk-DBEYGFVF.mjs.map +0 -7
- package/dist/lib/browser/chunk-E6BQ4P6L.mjs.map +0 -7
- package/dist/lib/browser/chunk-GB2HL4ZE.mjs +0 -26
- package/dist/lib/browser/chunk-GB2HL4ZE.mjs.map +0 -7
- package/dist/lib/browser/chunk-NQJRENSK.mjs +0 -75
- package/dist/lib/browser/chunk-NQJRENSK.mjs.map +0 -7
- package/dist/lib/browser/chunk-QLFFA4Y4.mjs +0 -52
- package/dist/lib/browser/chunk-QLFFA4Y4.mjs.map +0 -7
- package/dist/lib/browser/chunk-X44CJ7F5.mjs +0 -11
- package/dist/lib/browser/chunk-X44CJ7F5.mjs.map +0 -7
- package/dist/lib/browser/compiler-MZKFKYCG.mjs.map +0 -7
- package/dist/lib/browser/create-script-Z7J4HDV2.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -268
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/operation-handler-76AHUB5G.mjs +0 -18
- package/dist/lib/browser/operation-handler-76AHUB5G.mjs.map +0 -7
- package/dist/lib/browser/operations/index.mjs +0 -14
- package/dist/lib/browser/react-surface-2VVUIV66.mjs +0 -145
- package/dist/lib/browser/react-surface-2VVUIV66.mjs.map +0 -7
- package/dist/lib/browser/settings-BV3KXROF.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -15
- package/dist/lib/node-esm/DeploymentDialog-XSP2EDU2.mjs +0 -125
- package/dist/lib/node-esm/DeploymentDialog-XSP2EDU2.mjs.map +0 -7
- package/dist/lib/node-esm/NotebookContainer-LNWMJD2D.mjs +0 -851
- package/dist/lib/node-esm/NotebookContainer-LNWMJD2D.mjs.map +0 -7
- package/dist/lib/node-esm/ScriptContainer-TSU4DBGA.mjs +0 -96
- package/dist/lib/node-esm/ScriptContainer-TSU4DBGA.mjs.map +0 -7
- package/dist/lib/node-esm/ScriptObjectSettings-OGY7X3UE.mjs +0 -298
- package/dist/lib/node-esm/ScriptObjectSettings-OGY7X3UE.mjs.map +0 -7
- package/dist/lib/node-esm/ScriptPluginSettings-HIUSAHCP.mjs +0 -56
- package/dist/lib/node-esm/ScriptPluginSettings-HIUSAHCP.mjs.map +0 -7
- package/dist/lib/node-esm/ScriptProperties-I6SC4P3R.mjs +0 -29
- package/dist/lib/node-esm/ScriptProperties-I6SC4P3R.mjs.map +0 -7
- package/dist/lib/node-esm/TestContainer-WKISNRNU.mjs +0 -62
- package/dist/lib/node-esm/TestContainer-WKISNRNU.mjs.map +0 -7
- package/dist/lib/node-esm/access-token-created-7CGU7FXD.mjs +0 -37
- package/dist/lib/node-esm/access-token-created-7CGU7FXD.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-GNGOYXIU.mjs +0 -64
- package/dist/lib/node-esm/app-graph-builder-GNGOYXIU.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-DTRGTRZA.mjs +0 -18
- package/dist/lib/node-esm/blueprint-definition-DTRGTRZA.mjs.map +0 -7
- package/dist/lib/node-esm/blueprints/index.mjs +0 -9
- package/dist/lib/node-esm/chunk-2NGQCFVE.mjs +0 -28
- package/dist/lib/node-esm/chunk-2NGQCFVE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4YAEFFW2.mjs +0 -12
- package/dist/lib/node-esm/chunk-4YAEFFW2.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-C3GH2SDF.mjs +0 -76
- package/dist/lib/node-esm/chunk-C3GH2SDF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CKYUNEE5.mjs +0 -10
- package/dist/lib/node-esm/chunk-CKYUNEE5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JGN7TDJH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-L3JLWXB5.mjs +0 -33
- package/dist/lib/node-esm/chunk-L3JLWXB5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-L55OBVT5.mjs +0 -53
- package/dist/lib/node-esm/chunk-L55OBVT5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-P4Q2BPBB.mjs +0 -22
- package/dist/lib/node-esm/chunk-P4Q2BPBB.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-RN2SMYCL.mjs +0 -401
- package/dist/lib/node-esm/chunk-RN2SMYCL.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-RTM3D4T5.mjs +0 -181
- package/dist/lib/node-esm/chunk-RTM3D4T5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SV742UH7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-Y5VWHRVU.mjs +0 -107
- package/dist/lib/node-esm/chunk-Y5VWHRVU.mjs.map +0 -7
- package/dist/lib/node-esm/compiler-QBWP7ERK.mjs +0 -99
- package/dist/lib/node-esm/compiler-QBWP7ERK.mjs.map +0 -7
- package/dist/lib/node-esm/create-script-TAJHVROB.mjs +0 -48
- package/dist/lib/node-esm/create-script-TAJHVROB.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -269
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/operation-handler-OUROH3T7.mjs +0 -19
- package/dist/lib/node-esm/operation-handler-OUROH3T7.mjs.map +0 -7
- package/dist/lib/node-esm/operations/index.mjs +0 -15
- package/dist/lib/node-esm/react-surface-OJ55GFCP.mjs +0 -146
- package/dist/lib/node-esm/react-surface-OJ55GFCP.mjs.map +0 -7
- package/dist/lib/node-esm/settings-2TK3XPLD.mjs +0 -36
- package/dist/lib/node-esm/settings-2TK3XPLD.mjs.map +0 -7
- package/dist/lib/node-esm/templates/index.mjs +0 -11
- package/dist/lib/node-esm/templates/index.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -16
- package/dist/lib/node-esm/types/index.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +0 -1
- package/dist/types/src/capabilities/artifact-definition/index.d.ts +0 -3
- package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +0 -6
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +0 -1
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts +0 -3
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/compiler/compiler.d.ts +0 -6
- package/dist/types/src/capabilities/compiler/compiler.d.ts.map +0 -1
- package/dist/types/src/capabilities/compiler/index.d.ts +0 -3
- package/dist/types/src/capabilities/compiler/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/operation-handler/index.d.ts +0 -4
- package/dist/types/src/capabilities/operation-handler/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings/index.d.ts +0 -7
- package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
- package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts +0 -7
- package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts.map +0 -1
- package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts +0 -7
- package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts.map +0 -1
- package/dist/types/src/containers/NotebookContainer/index.d.ts +0 -3
- package/dist/types/src/containers/NotebookContainer/index.d.ts.map +0 -1
- package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts +0 -10
- package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts.map +0 -1
- package/dist/types/src/containers/ScriptContainer/index.d.ts +0 -3
- package/dist/types/src/containers/ScriptContainer/index.d.ts.map +0 -1
- package/dist/types/src/containers/ScriptObjectSettings/ScriptObjectSettings.d.ts +0 -7
- package/dist/types/src/containers/ScriptObjectSettings/ScriptObjectSettings.d.ts.map +0 -1
- package/dist/types/src/containers/ScriptObjectSettings/index.d.ts +0 -3
- package/dist/types/src/containers/ScriptObjectSettings/index.d.ts.map +0 -1
- package/dist/types/src/containers/ScriptPluginSettings/ScriptPluginSettings.d.ts +0 -8
- package/dist/types/src/containers/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +0 -1
- package/dist/types/src/containers/ScriptPluginSettings/index.d.ts +0 -3
- package/dist/types/src/containers/ScriptPluginSettings/index.d.ts.map +0 -1
- package/dist/types/src/operations/access-token-created.d.ts +0 -5
- package/dist/types/src/operations/access-token-created.d.ts.map +0 -1
- package/dist/types/src/operations/definitions.d.ts +0 -28
- package/dist/types/src/operations/definitions.d.ts.map +0 -1
- package/dist/types/src/testing/data.d.ts +0 -3
- package/dist/types/src/testing/data.d.ts.map +0 -1
- package/dist/types/src/types/capabilities.d.ts +0 -12
- package/dist/types/src/types/capabilities.d.ts.map +0 -1
- package/dist/types/src/types/events.d.ts +0 -5
- package/dist/types/src/types/events.d.ts.map +0 -1
- package/src/capabilities/app-graph-builder/index.ts +0 -7
- package/src/capabilities/artifact-definition/index.ts +0 -7
- package/src/capabilities/blueprint-definition/index.ts +0 -7
- package/src/capabilities/compiler/index.ts +0 -7
- package/src/capabilities/operation-handler/index.ts +0 -11
- package/src/capabilities/operation-handler/operation-handler.ts +0 -16
- package/src/capabilities/react-surface/index.ts +0 -7
- package/src/capabilities/react-surface/react-surface.tsx +0 -138
- package/src/capabilities/settings/index.ts +0 -7
- package/src/containers/NotebookContainer/index.ts +0 -7
- package/src/containers/ScriptContainer/index.ts +0 -7
- package/src/containers/ScriptObjectSettings/ScriptObjectSettings.tsx +0 -295
- package/src/containers/ScriptObjectSettings/index.ts +0 -7
- package/src/containers/ScriptPluginSettings/ScriptPluginSettings.tsx +0 -66
- package/src/containers/ScriptPluginSettings/index.ts +0 -7
- package/src/operations/access-token-created.ts +0 -36
- package/src/types/capabilities.ts +0 -17
- package/src/types/events.ts +0 -11
- /package/dist/lib/{browser → neutral}/blueprints/index.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
- /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
- /package/dist/lib/{browser/operations → neutral}/index.mjs.map +0 -0
- /package/dist/lib/{browser/templates/index.mjs.map → neutral/meta.mjs.map} +0 -0
- /package/dist/lib/{browser/types → neutral/operations}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/blueprints → neutral/templates}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/operations → neutral/types}/index.mjs.map +0 -0
- /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
- /package/dist/types/src/capabilities/{artifact-definition/artifact-definition.d.ts → artifact-definition.d.ts} +0 -0
- /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
package/src/util/deploy.ts
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type Client } from '@dxos/client';
|
|
6
|
+
import { Script, Operation } from '@dxos/compute';
|
|
6
7
|
import { Context } from '@dxos/context';
|
|
7
8
|
import { Obj, Ref } from '@dxos/echo';
|
|
8
|
-
import {
|
|
9
|
-
import { Operation } from '@dxos/operation';
|
|
9
|
+
import { getUserFunctionIdInMetadata } from '@dxos/functions';
|
|
10
10
|
import { bundleFunction } from '@dxos/functions-runtime/bundler';
|
|
11
11
|
import { FunctionsServiceClient, incrementSemverPatch } from '@dxos/functions-runtime/edge';
|
|
12
12
|
import { log } from '@dxos/log';
|
|
@@ -55,7 +55,7 @@ export const deployScript = async ({
|
|
|
55
55
|
const newFunction = await functionsServiceClient.deploy(Context.default(), {
|
|
56
56
|
// TODO(dmaretskyi): Space key or identity key.
|
|
57
57
|
ownerPublicKey: space.key,
|
|
58
|
-
version: fn ? incrementSemverPatch(fn.version) : '0.0.1',
|
|
58
|
+
version: fn ? incrementSemverPatch(Obj.getMeta(fn).version ?? '0.0.0') : '0.0.1',
|
|
59
59
|
functionId: existingFunctionId,
|
|
60
60
|
entryPoint: buildResult.entryPoint,
|
|
61
61
|
assets: buildResult.assets,
|
|
@@ -63,8 +63,8 @@ export const deployScript = async ({
|
|
|
63
63
|
});
|
|
64
64
|
|
|
65
65
|
const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, newFunction);
|
|
66
|
-
Obj.
|
|
67
|
-
|
|
66
|
+
Obj.update(script, (script) => {
|
|
67
|
+
script.changed = false;
|
|
68
68
|
});
|
|
69
69
|
|
|
70
70
|
return { success: true, functionId: getUserFunctionIdInMetadata(Obj.getMeta(storedFunction)) };
|
|
@@ -94,8 +94,8 @@ const createOrUpdateFunctionInSpace = (
|
|
|
94
94
|
Operation.setFrom(fn, newFunction);
|
|
95
95
|
return fn;
|
|
96
96
|
} else {
|
|
97
|
-
Obj.
|
|
98
|
-
|
|
97
|
+
Obj.update(newFunction, (newFunction) => {
|
|
98
|
+
newFunction.source = Ref.make(script);
|
|
99
99
|
});
|
|
100
100
|
return space.db.add(newFunction);
|
|
101
101
|
}
|
package/src/util/functions.ts
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { type Operation, Script } from '@dxos/compute';
|
|
5
6
|
import { Obj } from '@dxos/echo';
|
|
6
|
-
import {
|
|
7
|
-
import { type Operation } from '@dxos/operation';
|
|
7
|
+
import { getUserFunctionIdInMetadata } from '@dxos/functions';
|
|
8
8
|
import { getInvocationUrl } from '@dxos/functions-runtime';
|
|
9
9
|
import { type PublicKey } from '@dxos/keys';
|
|
10
10
|
import { log } from '@dxos/log';
|
|
11
11
|
import { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';
|
|
12
|
-
|
|
12
|
+
|
|
13
13
|
/**
|
|
14
14
|
* Get the function URL for a given script and client configuration
|
|
15
15
|
*/
|
|
@@ -22,7 +22,7 @@ export const getFunctionUrl = ({
|
|
|
22
22
|
fn: any;
|
|
23
23
|
edgeUrl: string;
|
|
24
24
|
}): string | undefined => {
|
|
25
|
-
const
|
|
25
|
+
const spaceId = Obj.getDatabase(script)?.spaceId;
|
|
26
26
|
const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
|
|
27
27
|
|
|
28
28
|
if (!existingFunctionId) {
|
|
@@ -30,7 +30,7 @@ export const getFunctionUrl = ({
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
return getInvocationUrl(existingFunctionId, edgeUrl, {
|
|
33
|
-
spaceId
|
|
33
|
+
spaceId,
|
|
34
34
|
});
|
|
35
35
|
};
|
|
36
36
|
|
|
@@ -40,29 +40,29 @@ export const updateFunctionMetadata = (
|
|
|
40
40
|
meta: any,
|
|
41
41
|
functionId: string,
|
|
42
42
|
) => {
|
|
43
|
-
Obj.
|
|
43
|
+
Obj.update(storedFunction, (storedFunction) => {
|
|
44
44
|
if (script.description !== undefined && script.description.trim() !== '') {
|
|
45
|
-
|
|
45
|
+
storedFunction.description = script.description;
|
|
46
46
|
} else if (meta.description) {
|
|
47
|
-
|
|
47
|
+
storedFunction.description = meta.description;
|
|
48
48
|
} else {
|
|
49
49
|
log.verbose('no description in function metadata', { functionId });
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
if (meta.inputSchema) {
|
|
53
|
-
|
|
53
|
+
storedFunction.inputSchema = meta.inputSchema;
|
|
54
54
|
} else {
|
|
55
55
|
log.verbose('no input schema in function metadata', { functionId });
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
if (meta.outputSchema) {
|
|
59
|
-
|
|
59
|
+
storedFunction.outputSchema = meta.outputSchema;
|
|
60
60
|
} else {
|
|
61
61
|
log.verbose('no output schema in function metadata', { functionId });
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
if (meta.key) {
|
|
65
|
-
|
|
65
|
+
Obj.getMeta(storedFunction).key = meta.key;
|
|
66
66
|
} else {
|
|
67
67
|
log.verbose('no key in function metadata', { functionId });
|
|
68
68
|
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/DeploymentDialog/DeploymentDialog.tsx", "../../../src/containers/DeploymentDialog/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useEffect, useMemo } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { Button, Dialog, useTranslation } from '@dxos/react-ui';\nimport { type AccessToken } from '@dxos/types';\n\nimport { useCreateAndDeployScriptTemplates } from '../../hooks';\nimport { meta } from '../../meta';\nimport { type Template } from '../../templates';\n\n// TODO(ZaymonFC):\n// - Show activity and feedback to the user.\n// - Only take an array of templateIds and get the name from the data.\n// - Pending / onError states.\n\nexport type DeploymentDialogProps = {\n accessToken: AccessToken.AccessToken;\n scriptTemplates: Template[];\n};\n\nexport const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDialogProps) => {\n const { t } = useTranslation(meta.id);\n const space = useMemo(() => getSpace(accessToken), [accessToken]);\n\n // TODO(ZaymonFC): Thinking further. All of this should get moved to intents to run async in the background.\n // Deployment shouldn't be tied to the lifecycle of the dialogue component.\n const { handleCreateAndDeployScripts, status } = useCreateAndDeployScriptTemplates(space, scriptTemplates);\n const { invokePromise } = useOperationInvoker();\n\n useEffect(() => {\n if (status === 'success') {\n // TODO(ZaymonFC): We can probably re-use this toast for normal script deployment.\n void invokePromise(LayoutOperation.AddToast, {\n id: `${meta.id}.deployment-success`,\n icon: 'ph--check--regular',\n duration: Infinity,\n title: ['script deployment toast label', { ns: meta.id, count: scriptTemplates.length }],\n description: ['script deployment toast description', { ns: meta.id, count: scriptTemplates.length }],\n closeLabel: ['script deployment toast close label', { ns: meta.id, count: scriptTemplates.length }],\n });\n void invokePromise(LayoutOperation.UpdateDialog, { state: false });\n }\n if (status === 'error') {\n void invokePromise(LayoutOperation.UpdateDialog, { state: false });\n void invokePromise(LayoutOperation.AddToast, {\n id: `${meta.id}.deployment-error`,\n icon: 'ph--warning--regular',\n duration: Infinity,\n title: ['script deployment error toast label', { ns: meta.id, count: scriptTemplates.length }],\n description: ['script deployment error toast description', { ns: meta.id, count: scriptTemplates.length }],\n closeLabel: ['script deployment error toast close label', { ns: meta.id, count: scriptTemplates.length }],\n });\n }\n }, [status, invokePromise]);\n\n return (\n <Dialog.Content>\n <Dialog.Header>\n <Dialog.Title>{t('deployment dialog title')}</Dialog.Title>\n <Dialog.Close asChild>\n <Dialog.CloseIconButton />\n </Dialog.Close>\n </Dialog.Header>\n <Dialog.Body>\n <p>\n {t('deployment dialog scripts found message', {\n count: scriptTemplates.length,\n })}\n </p>\n <ul className='pt-2'>\n {scriptTemplates.map((template) => {\n return <li key={template.id}>{template.name}</li>;\n })}\n </ul>\n </Dialog.Body>\n <Dialog.ActionBar>\n <Dialog.Close asChild>\n <Button disabled={status === 'pending'}>{t('deployment dialog skip button label')}</Button>\n </Dialog.Close>\n <Button variant='primary' onClick={handleCreateAndDeployScripts} disabled={status === 'pending'}>\n {status === 'pending'\n ? t('deployment dialog deploy functions pending button label', {\n count: scriptTemplates.length,\n })\n : t('deployment dialog deploy functions button label', {\n count: scriptTemplates.length,\n })}\n </Button>\n </Dialog.ActionBar>\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { DeploymentDialog } from './DeploymentDialog';\n\nexport default DeploymentDialog;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "useEffect", "useMemo", "useOperationInvoker", "LayoutOperation", "getSpace", "Button", "Dialog", "useTranslation", "DeploymentDialog", "accessToken", "scriptTemplates", "t", "useTranslation", "meta", "id", "space", "useMemo", "getSpace", "handleCreateAndDeployScripts", "status", "useCreateAndDeployScriptTemplates", "invokePromise", "useOperationInvoker", "useEffect", "LayoutOperation", "AddToast", "icon", "duration", "Infinity", "title", "ns", "count", "length", "description", "closeLabel", "UpdateDialog", "state", "Dialog", "Content", "Header", "Title", "Close", "asChild", "CloseIconButton", "Body", "p", "ul", "className", "map", "template", "li", "key", "name", "ActionBar", "Button", "disabled", "variant", "onClick", "DeploymentDialog"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/NotebookContainer/NotebookContainer.tsx", "../../../src/notebook/compute-graph.ts", "../../../src/notebook/eval.ts", "../../../src/notebook/vfs-parser.ts", "../../../src/containers/NotebookContainer/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { RegistryContext } from '@effect-atom/atom-react';\nimport * as Cause from 'effect/Cause';\nimport * as Effect from 'effect/Effect';\nimport * as Exit from 'effect/Exit';\nimport type * as Types from 'effect/Types';\nimport React, { useCallback, useContext, useMemo, useState } from 'react';\n\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { AgentPrompt } from '@dxos/assistant-toolkit';\nimport { Blueprint, Prompt } from '@dxos/blueprints';\nimport { Filter, Obj, Query, Ref } from '@dxos/echo';\nimport { QueryBuilder } from '@dxos/echo-query';\nimport { FunctionInvocationService, TracingService } from '@dxos/functions';\nimport { Operation } from '@dxos/operation';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport { useComputeRuntimeCallback } from '@dxos/plugin-automation';\nimport { Graph } from '@dxos/plugin-explorer/types';\nimport { DropdownMenu, IconButton, Panel, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport { Text, ViewModel } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { NotebookMenu, NotebookStack, type NotebookStackProps, type TypescriptEditorProps } from '../../components';\nimport { meta } from '../../meta';\nimport { ComputeGraph } from '../../notebook';\nimport { type Notebook } from '../../types';\n\nconst INCLUDE_BLUEPRINTS = [\n 'org.dxos.blueprint.assistant',\n 'org.dxos.blueprint.database',\n 'org.dxos.blueprint.markdown',\n];\n\n// TODO(burdon): Support calling named deployed functions (as with sheet).\n\nexport type NotebookContainerProps = SurfaceComponentProps<Notebook.Notebook, Pick<TypescriptEditorProps, 'env'>>;\n\nexport const NotebookContainer = ({ role, subject: notebook, attendableId, env }: NotebookContainerProps) => {\n const { t } = useTranslation(meta.id);\n const registry = useContext(RegistryContext);\n const db = Obj.getDatabase(notebook);\n const { hasAttention } = useAttention(attendableId);\n\n // TODO(burdon): Consolidate execution and state (with graph).\n // Generalize ComputeGraph evaluation function (using effects).\n const graph = useMemo(() => notebook && new ComputeGraph(notebook, registry), [notebook, registry]);\n\n const [queryValues, setQueryValues] = useState<Record<string, any>>({});\n const handleExecQueries = useCallback(async () => {\n invariant(db);\n\n const builder = new QueryBuilder();\n for (const cell of notebook?.cells ?? []) {\n if (cell.type === 'query') {\n if (cell.source?.target) {\n const source = cell.source.target.content;\n const { name, filter } = builder.build(source);\n if (filter) {\n const ast = Query.select(filter).ast;\n const graph = cell.graph?.target;\n if (!graph) {\n const { view } = await ViewModel.makeFromDatabase({ db });\n const newGraph = Graph.make({ query: { ast }, view });\n Obj.change(notebook!, (obj) => {\n const c = obj.cells.find((c) => c.id === cell.id);\n if (c) {\n c.graph = Ref.make(newGraph);\n c.name = name;\n }\n });\n } else {\n Obj.change(graph, (obj) => {\n obj.query.ast = ast as Obj.Mutable<typeof ast>;\n });\n }\n }\n }\n\n if (cell.name && cell.graph?.target) {\n const graph = Obj.getSnapshot(cell.graph?.target);\n const query = Query.fromAst(graph.query.ast);\n const objects = await db.query(query).run();\n const objectIds = objects?.map((obj) => obj.id);\n setQueryValues((prev) => ({ ...prev, [cell.name!]: objectIds }));\n }\n }\n }\n }, [db, notebook, graph]);\n\n const [promptResults, setPromptResults] = useState<Record<string, string>>({});\n const handleExecPrompts = useComputeRuntimeCallback(\n db?.spaceId,\n Effect.fnUntraced(function* () {\n invariant(graph);\n\n const prompts =\n notebook?.cells\n .filter((cell) => cell.type === 'prompt')\n .map((cell) => cell.prompt)\n .filter(isNonNullable) ?? [];\n\n for (const prompt of prompts) {\n yield* runPrompt({\n prompt,\n input: { ...queryValues, ...graph.getValuesByName() },\n onResult: (result) =>\n setPromptResults((prev) => ({\n ...prev,\n [prompt.dxn.toString()]: result,\n })),\n });\n }\n }),\n [notebook, graph, queryValues],\n );\n\n // TODO(burdon): Cache values in context (preserve when switched).\n const handleCompute = useCallback(async () => {\n // TODO(burdon): Generalize executors (dependencies).\n await graph?.evaluate();\n await handleExecQueries();\n await handleExecPrompts();\n }, [graph, handleExecQueries, handleExecPrompts]);\n\n const handleRearrange = useCallback<NonNullable<NotebookStackProps['onRearrange']>>(\n (source, target) => {\n invariant(notebook);\n const from = notebook.cells.findIndex((cell) => cell.id === source.id);\n const to = notebook.cells.findIndex((cell) => cell.id === target.id);\n if (from != null && to != null) {\n Obj.change(notebook, (obj) => {\n const cell = obj.cells.splice(from, 1)[0];\n if (cell) {\n obj.cells.splice(to, 0, cell);\n }\n });\n }\n },\n [notebook],\n );\n\n const handleCellInsert = useCallback<NonNullable<NotebookStackProps['onCellInsert']>>(\n async (type, after) => {\n invariant(notebook);\n const cell: Types.Mutable<Notebook.Cell> = { id: crypto.randomUUID(), type };\n switch (type) {\n case 'markdown':\n case 'script':\n case 'query': {\n cell.source = Ref.make(Text.make());\n break;\n }\n\n case 'prompt': {\n if (db) {\n const objects = await db.query(Query.select(Filter.type(Blueprint.Blueprint))).run();\n const blueprints = objects\n .filter((blueprint) => INCLUDE_BLUEPRINTS.includes(blueprint.key))\n .map((blueprint) => Ref.make(blueprint));\n cell.prompt = Ref.make(Prompt.make({ instructions: '', blueprints }));\n }\n break;\n }\n }\n\n const idx = after ? notebook.cells.findIndex((cell) => cell.id === after) : notebook.cells.length;\n Obj.change(notebook, (obj) => {\n obj.cells.splice(idx, 0, cell);\n });\n },\n [db, notebook],\n );\n\n const handleCellDelete = useCallback<NonNullable<NotebookStackProps['onCellDelete']>>(\n (id) => {\n invariant(notebook);\n const idx = notebook.cells.findIndex((cell) => cell.id === id);\n if (idx !== -1) {\n Obj.change(notebook, (obj) => {\n obj.cells.splice(idx, 1);\n });\n }\n },\n [notebook],\n );\n\n return (\n <Panel.Root role={role} className='dx-document'>\n <Panel.Toolbar asChild>\n <Toolbar.Root disabled={!hasAttention}>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton icon='ph--plus--regular' iconOnly label={t('notebook cell insert label')} />\n </DropdownMenu.Trigger>\n <NotebookMenu onCellInsert={handleCellInsert} />\n </DropdownMenu.Root>\n <Toolbar.IconButton\n icon='ph--play--fill'\n iconOnly\n label={t('compute label')}\n classNames='text-success-text'\n onClick={handleCompute}\n />\n </Toolbar.Root>\n </Panel.Toolbar>\n <Panel.Content asChild>\n <NotebookStack\n db={db}\n notebook={notebook}\n graph={graph}\n env={env}\n promptResults={promptResults}\n onRearrange={handleRearrange}\n onCellInsert={handleCellInsert}\n onCellDelete={handleCellDelete}\n />\n </Panel.Content>\n </Panel.Root>\n );\n};\n\n// TODO(wittjosiah): Factor out. Copied from PromptArticle in plugin-assistant.\nconst runPrompt = Effect.fn(function* ({\n prompt,\n input,\n onResult,\n}: {\n prompt: Ref.Ref<Prompt.Prompt>;\n input: Record<string, any>;\n onResult: (result: string) => void;\n}) {\n const inputData: Operation.Definition.Input<typeof AgentPrompt> = { prompt, input };\n const tracer = yield* TracingService;\n const trace = yield* tracer.traceInvocationStart({\n target: undefined,\n payload: {\n data: {},\n },\n });\n\n // Invoke the function.\n const result = yield* FunctionInvocationService.invokeFunction(AgentPrompt, inputData).pipe(\n Effect.provide(trace.invocationTraceQueue ? TracingService.layerInvocation(trace) : TracingService.layerNoop),\n Effect.exit,\n );\n\n Exit.match(result, {\n onFailure: (cause) => {\n const error = Cause.prettyErrors(cause)[0];\n log.error(error.message, error.cause ?? error.stack);\n onResult(error.message);\n },\n onSuccess: (result: any) => {\n onResult(result.note);\n },\n });\n\n yield* tracer.traceInvocationEnd({\n trace,\n // TODO(dmaretskyi): Might miss errors.\n exception: Exit.isFailure(result) ? Cause.prettyErrors(result.cause)[0] : undefined,\n });\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom, type Registry } from '@effect-atom/atom-react';\n\nimport { log } from '@dxos/log';\n\nimport { type Notebook } from '../types';\n\nimport { evalScript } from './eval';\nimport { type ParsedExpression, VirtualTypeScriptParser } from './vfs-parser';\n\n/**\n * Compute graph that evaluates the notebook cells.\n */\n// TODO(burdon): Reconcile with @dxos/conductor.\nexport class ComputeGraph {\n private readonly _parser = new VirtualTypeScriptParser();\n\n private _expressionsAtom = Atom.make<Record<string, ParsedExpression>>({});\n private _valuesByCellIdAtom = Atom.make<Record<string, any>>({});\n private _valuesByNameAtom = Atom.make<Record<string, any>>({});\n\n constructor(\n private readonly _notebook: Notebook.Notebook,\n private readonly _registry: Registry.Registry,\n ) {}\n\n /**\n * Atom for parsed expressions by cell ID.\n */\n get expressions(): Atom.Atom<Record<string, ParsedExpression>> {\n return this._expressionsAtom;\n }\n\n /**\n * Get current expressions by cell ID.\n */\n getExpressions(): Record<string, ParsedExpression> {\n return this._registry.get(this._expressionsAtom);\n }\n\n /**\n * Atom for computed values by cell ID.\n */\n get values(): Atom.Atom<Record<string, any>> {\n return this._valuesByCellIdAtom;\n }\n\n /**\n * Get computed values by cell ID.\n */\n getValues(): Record<string, any> {\n return this._registry.get(this._valuesByCellIdAtom);\n }\n\n /**\n * Atom for computed values by name.\n */\n get valuesByName(): Atom.Atom<Record<string, any>> {\n return this._valuesByNameAtom;\n }\n\n /**\n * Get current values by name.\n */\n getValuesByName(): Record<string, any> {\n return this._registry.get(this._valuesByNameAtom);\n }\n\n /**\n * Get computed value by cell ID.\n */\n getValue(cellId: string): any {\n return this._registry.get(this._valuesByCellIdAtom)[cellId];\n }\n\n /**\n * Compute values.\n */\n async evaluate() {\n // Parse expressions.\n const { expressions, dependencyGraph } = this.parse();\n this._registry.set(this._valuesByCellIdAtom, {});\n this._registry.set(this._valuesByNameAtom, {});\n\n // Create a map of cell IDs to expressions for easy lookup.\n const cellExpressions = new Map<string, ParsedExpression>();\n Object.entries(expressions).forEach(([id, expr]) => {\n cellExpressions.set(id, expr);\n });\n\n // Topological sort to determine evaluation order.\n const evaluationOrder = this.topologicalSort(Object.keys(expressions), dependencyGraph);\n\n // Values by reference name.\n const valuesByName: Record<string, any> = {};\n const valuesByCellId: Record<string, any> = {};\n\n // Evaluate cells in dependency order.\n for (const cellId of evaluationOrder) {\n const expr = cellExpressions.get(cellId);\n if (!expr) {\n log.error('no expression for cell', { cellId });\n continue;\n }\n\n const cellSource = this._notebook.cells.find((cell) => cell.id === cellId)?.source?.target?.content;\n if (!cellSource) {\n log.error('no source for cell', { cellId });\n continue;\n }\n\n try {\n // For assignments or declarations, evaluate and store the value.\n if (expr.name && expr.value !== undefined) {\n // If the parser extracted a literal value, use it directly.\n valuesByName[expr.name] = expr.value;\n valuesByCellId[cellId] = expr.value;\n } else if (expr.name) {\n // For non-literal assignments, we need to evaluate the expression.\n // The parser identifies it's an assignment, so we can extract the RHS.\n const equalIndex = cellSource.indexOf('=');\n if (equalIndex !== -1) {\n // Find the actual assignment operator (not in strings or other contexts).\n let rhs = cellSource.substring(equalIndex + 1).trim();\n\n // Handle semicolon at the end.\n if (rhs.endsWith(';')) {\n rhs = rhs.slice(0, -1).trim();\n }\n\n const result = await this.eval(rhs, valuesByName);\n valuesByName[expr.name] = result;\n if (typeof result !== 'function') {\n valuesByCellId[cellId] = result;\n }\n }\n } else {\n // For expressions without assignment, just evaluate.\n const result = await this.eval(cellSource, valuesByName);\n valuesByCellId[cellId] = result;\n }\n } catch (error) {\n // TODO(burdon): Set error state.\n log.error('error evaluating cell', { cellId, error });\n }\n }\n\n this._registry.set(this._valuesByCellIdAtom, valuesByCellId);\n this._registry.set(this._valuesByNameAtom, valuesByName);\n return valuesByCellId;\n }\n\n private async eval(source: string, values: Record<string, any>) {\n return evalScript(source, values);\n }\n\n /**\n * Parse expressions.\n */\n parse() {\n const expressions = this._notebook.cells\n .filter((cell) => cell.type === 'script')\n .reduce<Record<string, ParsedExpression>>((acc, cell) => {\n const text = cell.source?.target?.content.trim();\n if (text) {\n const parsed = this._parser.parseExpression(text);\n acc[cell.id] = parsed;\n }\n\n return acc;\n }, {});\n\n // Build dependency graph.\n const dependencyGraph = this.buildDependencyGraph(expressions);\n this._registry.set(this._expressionsAtom, expressions);\n return { expressions, dependencyGraph };\n }\n\n private topologicalSort(nodes: string[], dependencies: Record<string, string[]>): string[] {\n const visited = new Set<string>();\n const result: string[] = [];\n\n const visit = (node: string) => {\n if (visited.has(node)) {\n return;\n }\n\n visited.add(node);\n\n // Visit dependencies first.\n const deps = dependencies[node] || [];\n deps.forEach((dep) => visit(dep));\n result.push(node);\n };\n\n // Visit all nodes.\n nodes.forEach((node) => visit(node));\n return result;\n }\n\n private buildDependencyGraph(expressions: Record<string, ParsedExpression>): Record<string, string[]> {\n // Create a map of variable names to their cell IDs.\n const nameToCellId = new Map<string, string>();\n Object.entries(expressions).forEach(([id, expr]) => {\n if (expr.name) {\n nameToCellId.set(expr.name, id);\n }\n });\n\n // Build the dependency graph using cell IDs.\n const graph: Record<string, string[]> = {};\n Object.entries(expressions).forEach(([id, expr]) => {\n if (expr.references && expr.references.length > 0) {\n // Map variable references to cell IDs.\n const dependencyCellIds = expr.references\n .map((ref) => nameToCellId.get(ref))\n .filter((cellId): cellId is string => cellId !== undefined && cellId !== id);\n\n if (dependencyCellIds.length > 0) {\n graph[id] = dependencyCellIds;\n }\n }\n });\n\n return graph;\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { trim } from '@dxos/util';\n\n/**\n * Evaluate the script (with dependencies as arguments).\n */\nexport const evalScript = async (code: string, deps: Record<string, any> = {}) => {\n // Create a sandboxed environment that blocks access to window and document.\n const sandbox = {\n ...deps,\n\n // Block access to global objects.\n console: undefined,\n document: undefined,\n global: undefined,\n globalThis: undefined,\n self: undefined,\n window: undefined,\n\n // Allow some safe globals.\n Array,\n Boolean,\n Date,\n Error,\n JSON,\n Map,\n Math,\n Number,\n Object,\n Promise,\n RegExp,\n Set,\n String,\n\n // Functions.\n isFinite,\n isNaN,\n parseFloat,\n parseInt,\n\n // Note: undefined and null are not included as they are keywords, not variables.\n };\n\n // Create function with all sandbox keys as parameters.\n const sandboxKeys = Object.keys(sandbox);\n const sandboxValues = Object.values(sandbox);\n\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n const fn = new Function(\n ...sandboxKeys,\n trim`\n 'use strict';\n return ${code};\n `,\n );\n\n return fn(...sandboxValues);\n};\n\n/**\n * Globals.\n */\nexport const builtIns = new Set([\n // Types.\n 'Array',\n 'Date',\n 'Error',\n 'JSON',\n 'Map',\n 'Math',\n 'Number',\n 'Object',\n 'Promise',\n 'RegExp',\n 'Set',\n 'String',\n\n // Functions.\n 'isFinite',\n 'isNaN',\n 'parseFloat',\n 'parseInt',\n]);\n\n/**\n * Default system definitions.\n */\nexport const systemDefinitions = trim`\n interface Array<T> { length: number; [n: number]: T; }\n interface Boolean {}\n interface Function {}\n interface IArguments {}\n interface Number {}\n interface Object {}\n interface RegExp {}\n interface String { length: number; }\n\n interface CallableFunction extends Function {}\n interface NewableFunction extends Function {}\n\n declare var console: { log(...args: any[]): void };\n`;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createSystem, createVirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport ts from 'typescript';\n\nimport { invariant } from '@dxos/invariant';\n\nimport { builtIns, systemDefinitions } from './eval';\n\n/**\n * Default system definitions.\n */\nconst systemFiles: VirtualFile[] = [\n {\n filename: '/lib.d.ts',\n content: systemDefinitions,\n },\n];\n\nexport type ParsedExpression = {\n name?: string;\n type?: 'function' | 'variable' | 'class' | 'interface';\n value?: any;\n valueType?: string;\n parameters?: Array<{ name: string; type: string }>;\n returnType?: string;\n references?: string[];\n};\n\nexport type VirtualFile = {\n filename: string;\n content: string;\n};\n\n/**\n * TypeScript parser using Virtual File System for browser compatibility.\n * This provides full TypeScript analysis including type information.\n */\nexport class VirtualTypeScriptParser {\n protected compilerOptions: ts.CompilerOptions = {\n target: ts.ScriptTarget.ES2020,\n module: ts.ModuleKind.ESNext,\n strict: true,\n esModuleInterop: true,\n skipLibCheck: true,\n forceConsistentCasingInfilenames: true,\n jsx: ts.JsxEmit.React,\n noLib: true, // Don't automatically include default lib files.\n };\n\n /**\n * Parse a single expression or statement.\n */\n parseExpression(input: string): ParsedExpression {\n invariant(input.trim() !== '', 'input must not be empty');\n const files: VirtualFile[] = [{ filename: '/temp.ts', content: input }];\n const analysis = this.analyzeFiles(files);\n\n // If no declarations found, check for standalone expression references.\n if (analysis.length === 0) {\n const sourcefilename = '/temp.ts';\n const env = this.createEnvironment([{ filename: sourcefilename, content: input }]);\n const sourceFile = env.getSourceFile(sourcefilename);\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n if (sourceFile && typeChecker) {\n // Check for assignment expressions.\n const assignmentInfo = this.findAssignmentExpression(sourceFile, typeChecker);\n if (assignmentInfo) {\n return assignmentInfo;\n }\n\n const references = this.findAllReferences(sourceFile, typeChecker);\n return { references };\n }\n }\n\n return analysis[0];\n }\n\n /**\n * Analyze multiple files with full type information.\n */\n analyzeFiles(files: VirtualFile[]): ParsedExpression[] {\n const env = this.createEnvironment(files);\n const results: ParsedExpression[] = [];\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n // Analyze each file.\n files.forEach((file) => {\n const sourceFile = env.getSourceFile(file.filename);\n if (!sourceFile || !typeChecker) return;\n\n const fileResults = this.analyzeSourceFile(sourceFile, typeChecker);\n results.push(...fileResults);\n });\n\n return results;\n }\n\n /**\n * Analyze a source file with type information.\n */\n protected analyzeSourceFile(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker): ParsedExpression[] {\n const results: ParsedExpression[] = [];\n\n const visit = (node: ts.Node) => {\n // Function declarations.\n if (ts.isFunctionDeclaration(node) && node.name) {\n const symbol = typeChecker.getSymbolAtLocation(node.name);\n const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, node);\n const signature = type && typeChecker.getSignaturesOfType(type, ts.SignatureKind.Call)[0];\n\n results.push({\n name: node.name.text,\n type: 'function',\n parameters: this.extractParameters(signature, typeChecker),\n returnType: signature ? typeChecker.typeToString(signature.getReturnType()) : 'any',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n // Variable declarations.\n else if (ts.isVariableStatement(node)) {\n node.declarationList.declarations.forEach((declaration) => {\n if (ts.isIdentifier(declaration.name)) {\n const symbol = typeChecker.getSymbolAtLocation(declaration.name);\n const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, declaration);\n\n let kind: 'function' | 'variable' = 'variable';\n let parameters: Array<{ name: string; type: string }> | undefined;\n let returnType: string | undefined;\n let value: any;\n\n // Get the type string.\n const typeString = type ? typeChecker.typeToString(type) : 'any';\n\n // Check if it's a function.\n if (declaration.initializer) {\n if (ts.isArrowFunction(declaration.initializer) || ts.isFunctionExpression(declaration.initializer)) {\n kind = 'function';\n const funcType = typeChecker.getTypeAtLocation(declaration.initializer);\n const signature = typeChecker.getSignaturesOfType(funcType, ts.SignatureKind.Call)[0];\n if (signature) {\n parameters = this.extractParameters(signature, typeChecker);\n returnType = typeChecker.typeToString(signature.getReturnType());\n }\n } else {\n // Extract literal values\n if (ts.isNumericLiteral(declaration.initializer)) {\n value = Number(declaration.initializer.text);\n } else if (ts.isStringLiteral(declaration.initializer)) {\n value = declaration.initializer.text;\n }\n }\n }\n\n // Find references in the initializer only.\n const refs = declaration.initializer\n ? this.findReferences(declaration.initializer, sourceFile, typeChecker)\n : [];\n\n results.push({\n name: declaration.name.text,\n type: kind,\n valueType: typeString,\n value,\n parameters,\n returnType,\n references: refs,\n });\n }\n });\n }\n\n // Class declarations.\n else if (ts.isClassDeclaration(node) && node.name) {\n results.push({\n name: node.name.text,\n type: 'class',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n // Interface declarations.\n else if (ts.isInterfaceDeclaration(node)) {\n results.push({\n name: node.name.text,\n type: 'interface',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return results;\n }\n\n /**\n * Extract parameter information from a signature.\n */\n private extractParameters(\n signature: ts.Signature | undefined,\n typeChecker: ts.TypeChecker,\n ): Array<{ name: string; type: string }> {\n if (!signature) return [];\n\n return signature.parameters.map((param) => ({\n name: param.getName(),\n type: typeChecker.typeToString(typeChecker.getTypeOfSymbolAtLocation(param, param.valueDeclaration!)),\n }));\n }\n\n /**\n * Find all references to variables used in a node.\n */\n private findReferences(node: ts.Node, _sourceFile: ts.SourceFile, _typeChecker: ts.TypeChecker): string[] {\n const references = new Set<string>();\n const localSymbols = new Set<string>();\n\n // First, collect local symbols (parameters, local variables).\n const collectLocalSymbols = (node: ts.Node) => {\n if (ts.isFunctionDeclaration(node) || ts.isArrowFunction(node) || ts.isFunctionExpression(node)) {\n node.parameters.forEach((param) => {\n if (ts.isIdentifier(param.name)) {\n localSymbols.add(param.name.text);\n }\n });\n }\n\n if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name)) {\n localSymbols.add(node.name.text);\n }\n\n ts.forEachChild(node, collectLocalSymbols);\n };\n\n collectLocalSymbols(node);\n\n // Then find all identifier references.\n const findRefs = (node: ts.Node) => {\n if (ts.isIdentifier(node)) {\n // Skip if it's a local symbol.\n if (!localSymbols.has(node.text)) {\n // Check if it's a reference (not a declaration).\n const parent = node.parent;\n const isDeclaration =\n (ts.isVariableDeclaration(parent) && parent.name === node) ||\n (ts.isFunctionDeclaration(parent) && parent.name === node) ||\n (ts.isParameter(parent) && parent.name === node);\n\n if (!isDeclaration && !this.isBuiltIn(node.text)) {\n references.add(node.text);\n }\n }\n }\n ts.forEachChild(node, findRefs);\n };\n\n findRefs(node);\n return Array.from(references);\n }\n\n /**\n * Check if a name is a built-in global.\n */\n protected isBuiltIn(name: string): boolean {\n return builtIns.has(name);\n }\n\n /**\n * Find assignment expressions in a source file.\n */\n private findAssignmentExpression(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker): ParsedExpression | null {\n let result: ParsedExpression | null = null;\n\n const visit = (node: ts.Node) => {\n if (ts.isExpressionStatement(node) && ts.isBinaryExpression(node.expression)) {\n const expr = node.expression;\n if (expr.operatorToken.kind === ts.SyntaxKind.EqualsToken && ts.isIdentifier(expr.left)) {\n const type = typeChecker.getTypeAtLocation(expr.right);\n const typeString = typeChecker.typeToString(type);\n\n // Get the literal value if it's a literal.\n let value: any;\n if (ts.isNumericLiteral(expr.right)) {\n value = Number(expr.right.text);\n } else if (ts.isStringLiteral(expr.right)) {\n value = expr.right.text;\n }\n\n // Find references in the right-hand side.\n const references = this.findReferences(expr.right, sourceFile, typeChecker);\n\n result = {\n name: expr.left.text,\n type: 'variable',\n valueType: typeString,\n value,\n references,\n };\n }\n }\n if (!result) {\n ts.forEachChild(node, visit);\n }\n };\n\n visit(sourceFile);\n return result;\n }\n\n /**\n * Find all identifier references in a source file.\n */\n protected findAllReferences(sourceFile: ts.SourceFile, _typeChecker: ts.TypeChecker): string[] {\n const references = new Set<string>();\n\n const visit = (node: ts.Node) => {\n if (ts.isIdentifier(node)) {\n // Skip if it's a declaration.\n const parent = node.parent;\n const isDeclaration =\n (ts.isVariableDeclaration(parent) && parent.name === node) ||\n (ts.isFunctionDeclaration(parent) && parent.name === node) ||\n (ts.isParameter(parent) && parent.name === node);\n\n // Skip if it's the left-hand side of an assignment.\n const isAssignmentTarget =\n ts.isBinaryExpression(parent) &&\n parent.operatorToken.kind === ts.SyntaxKind.EqualsToken &&\n parent.left === node;\n\n if (!isDeclaration && !isAssignmentTarget && !this.isBuiltIn(node.text)) {\n references.add(node.text);\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return Array.from(references);\n }\n\n protected createEnvironment(files: VirtualFile[]) {\n const allFiles = [...systemFiles, ...files];\n\n const fileMap = new Map<string, string>();\n allFiles.forEach(({ filename, content }) => {\n fileMap.set(filename, content);\n });\n\n const system = createSystem(fileMap);\n return createVirtualTypeScriptEnvironment(\n system,\n allFiles.map(({ filename }) => filename),\n ts,\n this.compilerOptions,\n );\n }\n}\n\n/**\n * Notebook-specific parser with dependency analysis.\n */\nexport class NotebookVirtualParser extends VirtualTypeScriptParser {\n /**\n * Analyze notebook cells with full type checking.\n */\n analyzeNotebook(cells: Array<{ id: string; code: string }>) {\n // Create cumulative environment where each cell can see previous cells.\n const cumulativeCode: string[] = [];\n const cellAnalysis: Map<\n string,\n {\n exports: ParsedExpression[];\n imports: string[];\n errors: ts.Diagnostic[];\n }\n > = new Map();\n\n cells.forEach((cell) => {\n // Create files for all cells up to current.\n const files: VirtualFile[] = [];\n\n // Add previous cells as context.\n if (cumulativeCode.length > 0) {\n files.push({\n filename: '/context.ts',\n content: cumulativeCode.join('\\n'),\n });\n }\n\n // Add current cell.\n const filename = `/cell/${cell.id}.ts`;\n files.push({\n filename,\n content: cell.code,\n });\n\n // Create environment.\n const env = this.createEnvironment(files);\n\n // Get diagnostics (errors).\n const diagnostics = env.languageService.getSemanticDiagnostics(filename);\n\n // Analyze current cell.\n const sourceFile = env.getSourceFile(filename);\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n if (sourceFile && typeChecker) {\n const exports = this.analyzeSourceFile(sourceFile, typeChecker);\n\n // Find all references in the current cell.\n const allRefs = new Set<string>();\n exports.forEach((exp) => {\n exp.references?.forEach((ref) => allRefs.add(ref));\n });\n\n // Also check for references not in exports (e.g., console.log(y)).\n const additionalRefs = this.findAllReferences(sourceFile, typeChecker);\n additionalRefs.forEach((ref) => allRefs.add(ref));\n\n // Determine which references are imports from previous cells.\n const previousExports = new Set<string>();\n for (const [_prevCellId, prevAnalysis] of cellAnalysis) {\n prevAnalysis.exports.forEach((exp) => {\n if (exp.name) previousExports.add(exp.name);\n });\n }\n\n const imports = Array.from(allRefs).filter((ref) => previousExports.has(ref));\n\n cellAnalysis.set(cell.id, {\n exports,\n imports,\n errors: diagnostics,\n });\n }\n\n // Add current cell code to cumulative.\n cumulativeCode.push(cell.code);\n });\n\n return cellAnalysis;\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { NotebookContainer } from './NotebookContainer';\n\nexport default NotebookContainer;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["RegistryContext", "Cause", "Effect", "Exit", "React", "useCallback", "useContext", "useMemo", "useState", "AgentPrompt", "Blueprint", "Prompt", "Filter", "Obj", "Query", "Ref", "QueryBuilder", "FunctionInvocationService", "TracingService", "invariant", "log", "useComputeRuntimeCallback", "Graph", "DropdownMenu", "IconButton", "Panel", "Toolbar", "useTranslation", "useAttention", "Text", "ViewModel", "isNonNullable", "Atom", "log", "trim", "evalScript", "code", "deps", "sandbox", "console", "undefined", "document", "global", "globalThis", "self", "window", "Array", "Boolean", "Date", "Error", "JSON", "Map", "Math", "Number", "Object", "Promise", "RegExp", "Set", "String", "isFinite", "isNaN", "parseFloat", "parseInt", "sandboxKeys", "keys", "sandboxValues", "values", "fn", "Function", "trim", "builtIns", "systemDefinitions", "createSystem", "createVirtualTypeScriptEnvironment", "ts", "invariant", "systemFiles", "filename", "content", "systemDefinitions", "VirtualTypeScriptParser", "compilerOptions", "target", "ts", "ScriptTarget", "ES2020", "module", "ModuleKind", "ESNext", "strict", "esModuleInterop", "skipLibCheck", "forceConsistentCasingInfilenames", "jsx", "JsxEmit", "React", "noLib", "parseExpression", "input", "invariant", "trim", "files", "analysis", "analyzeFiles", "length", "sourcefilename", "env", "createEnvironment", "sourceFile", "getSourceFile", "typeChecker", "languageService", "getProgram", "getTypeChecker", "assignmentInfo", "findAssignmentExpression", "references", "findAllReferences", "results", "forEach", "file", "fileResults", "analyzeSourceFile", "push", "visit", "node", "isFunctionDeclaration", "name", "symbol", "getSymbolAtLocation", "type", "getTypeOfSymbolAtLocation", "signature", "getSignaturesOfType", "SignatureKind", "Call", "text", "parameters", "extractParameters", "returnType", "typeToString", "getReturnType", "findReferences", "isVariableStatement", "declarationList", "declarations", "declaration", "isIdentifier", "kind", "value", "typeString", "initializer", "isArrowFunction", "isFunctionExpression", "funcType", "getTypeAtLocation", "isNumericLiteral", "Number", "isStringLiteral", "refs", "valueType", "isClassDeclaration", "isInterfaceDeclaration", "forEachChild", "map", "param", "getName", "valueDeclaration", "_sourceFile", "_typeChecker", "Set", "localSymbols", "collectLocalSymbols", "add", "isVariableDeclaration", "findRefs", "has", "parent", "isDeclaration", "isParameter", "isBuiltIn", "Array", "from", "builtIns", "result", "isExpressionStatement", "isBinaryExpression", "expression", "expr", "operatorToken", "SyntaxKind", "EqualsToken", "left", "right", "isAssignmentTarget", "allFiles", "fileMap", "Map", "set", "system", "createSystem", "createVirtualTypeScriptEnvironment", "ComputeGraph", "_parser", "VirtualTypeScriptParser", "_expressionsAtom", "Atom", "make", "_valuesByCellIdAtom", "_valuesByNameAtom", "_notebook", "_registry", "expressions", "getExpressions", "get", "values", "getValues", "valuesByName", "getValuesByName", "getValue", "cellId", "evaluate", "dependencyGraph", "parse", "set", "cellExpressions", "Map", "Object", "entries", "forEach", "id", "expr", "evaluationOrder", "topologicalSort", "keys", "valuesByCellId", "log", "error", "cellSource", "cells", "find", "cell", "source", "target", "content", "name", "value", "undefined", "equalIndex", "indexOf", "rhs", "substring", "trim", "endsWith", "slice", "result", "eval", "evalScript", "filter", "type", "reduce", "acc", "text", "parsed", "parseExpression", "buildDependencyGraph", "nodes", "dependencies", "visited", "Set", "visit", "node", "has", "add", "deps", "dep", "push", "nameToCellId", "graph", "references", "length", "dependencyCellIds", "map", "ref", "INCLUDE_BLUEPRINTS", "NotebookContainer", "role", "subject", "notebook", "attendableId", "env", "t", "useTranslation", "meta", "id", "registry", "useContext", "RegistryContext", "db", "Obj", "getDatabase", "hasAttention", "useAttention", "graph", "useMemo", "ComputeGraph", "queryValues", "setQueryValues", "useState", "handleExecQueries", "useCallback", "invariant", "builder", "QueryBuilder", "cell", "cells", "type", "source", "target", "content", "name", "filter", "build", "ast", "Query", "select", "view", "ViewModel", "makeFromDatabase", "newGraph", "Graph", "make", "query", "change", "obj", "c", "find", "Ref", "getSnapshot", "fromAst", "objects", "run", "objectIds", "map", "prev", "promptResults", "setPromptResults", "handleExecPrompts", "useComputeRuntimeCallback", "spaceId", "fnUntraced", "prompts", "prompt", "isNonNullable", "runPrompt", "input", "getValuesByName", "onResult", "result", "dxn", "toString", "handleCompute", "evaluate", "handleRearrange", "from", "findIndex", "to", "splice", "handleCellInsert", "after", "crypto", "randomUUID", "Text", "Filter", "Blueprint", "blueprints", "blueprint", "includes", "key", "Prompt", "instructions", "idx", "length", "handleCellDelete", "Panel", "Root", "className", "Toolbar", "asChild", "disabled", "DropdownMenu", "Trigger", "IconButton", "icon", "iconOnly", "label", "NotebookMenu", "onCellInsert", "classNames", "onClick", "Content", "NotebookStack", "onRearrange", "onCellDelete", "fn", "inputData", "tracer", "TracingService", "trace", "traceInvocationStart", "undefined", "payload", "data", "FunctionInvocationService", "invokeFunction", "AgentPrompt", "pipe", "provide", "invocationTraceQueue", "layerInvocation", "layerNoop", "exit", "Exit", "match", "onFailure", "cause", "error", "prettyErrors", "log", "message", "stack", "onSuccess", "note", "traceInvocationEnd", "exception", "isFailure", "NotebookContainer"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/ScriptContainer/ScriptContainer.tsx", "../../../src/containers/ScriptContainer/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { Obj } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { type Script } from '@dxos/functions';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Panel } from '@dxos/react-ui';\nimport { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/ui-editor';\n\nimport { ScriptToolbar, TypescriptEditor, type TypescriptEditorProps } from '../../components';\nimport { useDeployState, useToolbarState } from '../../hooks';\nimport { type ScriptSettings } from '../../types';\n\nexport type ScriptEditorProps = SurfaceComponentProps<\n Script.Script,\n {\n settings?: ScriptSettings;\n } & Pick<TypescriptEditorProps, 'env'>\n>;\n\nexport const ScriptContainer = ({\n role,\n attendableId,\n subject: script,\n settings = { editorInputMode: 'vscode' },\n env,\n}: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n const state = useToolbarState();\n useDeployState({ script, state });\n\n const extensions = useMemo(() => {\n if (!script.source.target) {\n return [];\n }\n\n return [\n createDataExtensions({\n id: script.id,\n text: createDocAccessor(script.source.target, ['content']),\n messenger: space,\n identity,\n }),\n listener({\n onChange: ({ text }) => {\n if (script.source.target?.content !== text) {\n Obj.change(script, (obj) => {\n obj.changed = true;\n });\n }\n },\n }),\n ];\n }, [identity, space, script, script.source.target]);\n\n if (!extensions.length) {\n return null;\n }\n\n return (\n <Panel.Root role={role}>\n <Panel.Toolbar asChild>\n <ScriptToolbar script={script} attendableId={attendableId} state={state} role={role} />\n </Panel.Toolbar>\n <Panel.Content asChild>\n <TypescriptEditor\n classNames={stackItemContentEditorClassNames(role)}\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n inputMode={settings.editorInputMode}\n toolbar\n />\n </Panel.Content>\n </Panel.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ScriptContainer } from './ScriptContainer';\n\nexport default ScriptContainer;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAIA,OAAOA,SAASC,eAAe;AAG/B,SAASC,WAAW;AACpB,SAASC,yBAAyB;AAElC,SAASC,gBAAgB;AACzB,SAASC,mBAAmB;AAC5B,SAASC,aAAa;AACtB,SAASC,sBAAsBC,UAAUC,wCAAwC;AAa1E,IAAMC,kBAAkB,CAAC,EAC9BC,MACAC,cACAC,SAASC,QACTC,WAAW;EAAEC,iBAAiB;AAAS,GACvCC,IAAG,MACe;AAClB,QAAMC,WAAWC,YAAAA;AACjB,QAAMC,QAAQC,SAASP,MAAAA;AACvB,QAAMQ,QAAQC,gBAAAA;AACdC,iBAAe;IAAEV;IAAQQ;EAAM,CAAA;AAE/B,QAAMG,aAAaC,QAAQ,MAAA;AACzB,QAAI,CAACZ,OAAOa,OAAOC,QAAQ;AACzB,aAAO,CAAA;IACT;AAEA,WAAO;MACLC,qBAAqB;QACnBC,IAAIhB,OAAOgB;QACXC,MAAMC,kBAAkBlB,OAAOa,OAAOC,QAAQ;UAAC;SAAU;QACzDK,WAAWb;QACXF;MACF,CAAA;MACAgB,SAAS;QACPC,UAAU,CAAC,EAAEJ,KAAI,MAAE;AACjB,cAAIjB,OAAOa,OAAOC,QAAQQ,YAAYL,MAAM;AAC1CM,gBAAIC,OAAOxB,QAAQ,CAACyB,QAAAA;AAClBA,kBAAIC,UAAU;YAChB,CAAA;UACF;QACF;MACF,CAAA;;EAEJ,GAAG;IAACtB;IAAUE;IAAON;IAAQA,OAAOa,OAAOC;GAAO;AAElD,MAAI,CAACH,WAAWgB,QAAQ;AACtB,WAAO;EACT;AAEA,SACE,sBAAA,cAACC,MAAMC,MAAI;IAAChC;KACV,sBAAA,cAAC+B,MAAME,SAAO;IAACC,SAAAA;KACb,sBAAA,cAACC,eAAAA;IAAchC;IAAgBF;IAA4BU;IAAcX;OAE3E,sBAAA,cAAC+B,MAAMK,SAAO;IAACF,SAAAA;KACb,sBAAA,cAACG,kBAAAA;IACCC,YAAYC,iCAAiCvC,IAAAA;IAC7CmB,IAAIhB,OAAOgB;IACXb;IACAkC,cAAcrC,OAAOa,QAAQC,QAAQQ;IACrCX;IACA2B,WAAWrC,SAASC;IACpBqC,SAAAA;;AAKV;;;AC9EA,IAAA,0BAAeC;",
|
|
6
|
-
"names": ["React", "useMemo", "Obj", "createDocAccessor", "getSpace", "useIdentity", "Panel", "createDataExtensions", "listener", "stackItemContentEditorClassNames", "ScriptContainer", "role", "attendableId", "subject", "script", "settings", "editorInputMode", "env", "identity", "useIdentity", "space", "getSpace", "state", "useToolbarState", "useDeployState", "extensions", "useMemo", "source", "target", "createDataExtensions", "id", "text", "createDocAccessor", "messenger", "listener", "onChange", "content", "Obj", "change", "obj", "changed", "length", "Panel", "Root", "Toolbar", "asChild", "ScriptToolbar", "Content", "TypescriptEditor", "classNames", "stackItemContentEditorClassNames", "initialValue", "inputMode", "toolbar", "ScriptContainer"]
|
|
7
|
-
}
|
|
@@ -1,297 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
meta
|
|
3
|
-
} from "./chunk-37XPSUAH.mjs";
|
|
4
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
5
|
-
|
|
6
|
-
// src/containers/ScriptObjectSettings/ScriptObjectSettings.tsx
|
|
7
|
-
import { Octokit } from "@octokit/core";
|
|
8
|
-
import React, { useCallback, useState } from "react";
|
|
9
|
-
import { ToolId } from "@dxos/ai";
|
|
10
|
-
import { useOperationInvoker } from "@dxos/app-framework/ui";
|
|
11
|
-
import { SettingsOperation } from "@dxos/app-toolkit";
|
|
12
|
-
import { Blueprint, Template } from "@dxos/blueprints";
|
|
13
|
-
import { Filter, Obj, Ref } from "@dxos/echo";
|
|
14
|
-
import { getUserFunctionIdInMetadata } from "@dxos/functions";
|
|
15
|
-
import { Operation } from "@dxos/operation";
|
|
16
|
-
import { getInvocationUrl } from "@dxos/functions-runtime";
|
|
17
|
-
import { log } from "@dxos/log";
|
|
18
|
-
import { useClient } from "@dxos/react-client";
|
|
19
|
-
import { useQuery } from "@dxos/react-client/echo";
|
|
20
|
-
import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from "@dxos/react-ui";
|
|
21
|
-
import { AccessToken } from "@dxos/types";
|
|
22
|
-
import { kebabize } from "@dxos/util";
|
|
23
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/containers/ScriptObjectSettings/ScriptObjectSettings.tsx";
|
|
24
|
-
var ScriptObjectSettings = ({ object }) => {
|
|
25
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Binding, {
|
|
26
|
-
object
|
|
27
|
-
}), /* @__PURE__ */ React.createElement(BlueprintEditor, {
|
|
28
|
-
object
|
|
29
|
-
}), /* @__PURE__ */ React.createElement(Publishing, {
|
|
30
|
-
object
|
|
31
|
-
}));
|
|
32
|
-
};
|
|
33
|
-
var BlueprintEditor = ({ object }) => {
|
|
34
|
-
const { t } = useTranslation(meta.id);
|
|
35
|
-
const db = Obj.getDatabase(object);
|
|
36
|
-
const [fn] = useQuery(db, Filter.type(Operation.PersistentOperation, {
|
|
37
|
-
source: Ref.make(object)
|
|
38
|
-
}));
|
|
39
|
-
const blueprints = useQuery(db, Filter.type(Blueprint.Blueprint));
|
|
40
|
-
const [creating, setCreating] = useState(false);
|
|
41
|
-
const [instructions, setInstructions] = useState(`You can run the script "${object.name ?? "script"}".`);
|
|
42
|
-
const blueprintKey = `org.dxos.blueprint.${kebabize(object.name ?? "script")}`;
|
|
43
|
-
const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);
|
|
44
|
-
useAsyncEffect(async () => {
|
|
45
|
-
if (!existingBlueprint) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
const source = await existingBlueprint.instructions.source.load();
|
|
49
|
-
setInstructions(source.content ?? "");
|
|
50
|
-
}, [
|
|
51
|
-
existingBlueprint
|
|
52
|
-
]);
|
|
53
|
-
const handleSave = useCallback(async () => {
|
|
54
|
-
if (!db) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
setCreating(true);
|
|
58
|
-
try {
|
|
59
|
-
if (existingBlueprint) {
|
|
60
|
-
const text = await existingBlueprint.instructions.source.load();
|
|
61
|
-
Obj.change(text, (obj) => {
|
|
62
|
-
obj.content = instructions;
|
|
63
|
-
});
|
|
64
|
-
if (fn?.key) {
|
|
65
|
-
const toolId = ToolId.make(fn.key);
|
|
66
|
-
if (!existingBlueprint.tools?.includes(toolId)) {
|
|
67
|
-
Obj.change(existingBlueprint, (obj) => {
|
|
68
|
-
obj.tools = [
|
|
69
|
-
...obj.tools ?? [],
|
|
70
|
-
toolId
|
|
71
|
-
];
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
} else if (fn?.key) {
|
|
76
|
-
db.add(Blueprint.make({
|
|
77
|
-
key: blueprintKey,
|
|
78
|
-
name: object.name ?? "Script",
|
|
79
|
-
instructions: Template.make({
|
|
80
|
-
source: instructions
|
|
81
|
-
}),
|
|
82
|
-
tools: [
|
|
83
|
-
ToolId.make(fn.key)
|
|
84
|
-
]
|
|
85
|
-
}));
|
|
86
|
-
}
|
|
87
|
-
await db.flush();
|
|
88
|
-
} finally {
|
|
89
|
-
setCreating(false);
|
|
90
|
-
}
|
|
91
|
-
}, [
|
|
92
|
-
db,
|
|
93
|
-
existingBlueprint,
|
|
94
|
-
fn,
|
|
95
|
-
blueprintKey,
|
|
96
|
-
object.name,
|
|
97
|
-
instructions
|
|
98
|
-
]);
|
|
99
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
100
|
-
className: "flex flex-col gap-4 my-form-padding"
|
|
101
|
-
}, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", null, t("blueprint editor label", {
|
|
102
|
-
default: "Blueprint"
|
|
103
|
-
})), /* @__PURE__ */ React.createElement("p", {
|
|
104
|
-
className: "text-description text-sm"
|
|
105
|
-
}, t("blueprint editor description", {
|
|
106
|
-
default: "Create a blueprint that exposes this script as a tool."
|
|
107
|
-
}))), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
|
|
108
|
-
role: "none",
|
|
109
|
-
className: "flex flex-col gap-1"
|
|
110
|
-
}, /* @__PURE__ */ React.createElement(Input.Label, null, t("blueprint instructions label", {
|
|
111
|
-
default: "Instructions"
|
|
112
|
-
})), /* @__PURE__ */ React.createElement(Input.TextArea, {
|
|
113
|
-
placeholder: t("blueprint instructions placeholder", {
|
|
114
|
-
default: "Describe how this tool should be used."
|
|
115
|
-
}),
|
|
116
|
-
rows: 6,
|
|
117
|
-
value: instructions,
|
|
118
|
-
onChange: (event) => setInstructions(event.target.value),
|
|
119
|
-
classNames: "resize-y"
|
|
120
|
-
}))), /* @__PURE__ */ React.createElement("div", {
|
|
121
|
-
className: "flex justify-end gap-2"
|
|
122
|
-
}, /* @__PURE__ */ React.createElement(Button, {
|
|
123
|
-
disabled: !existingBlueprint && !fn?.key || creating,
|
|
124
|
-
onClick: handleSave
|
|
125
|
-
}, t(creating ? "creating label" : "create blueprint label", {
|
|
126
|
-
default: creating ? "Creating\u2026" : "Create blueprint"
|
|
127
|
-
}))));
|
|
128
|
-
};
|
|
129
|
-
var Binding = ({ object }) => {
|
|
130
|
-
const { t } = useTranslation(meta.id);
|
|
131
|
-
const client = useClient();
|
|
132
|
-
const db = Obj.getDatabase(object);
|
|
133
|
-
const [fn] = useQuery(db, Filter.type(Operation.PersistentOperation, {
|
|
134
|
-
source: Ref.make(object)
|
|
135
|
-
}));
|
|
136
|
-
const functionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
|
|
137
|
-
const functionUrl = functionId && getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? "", {
|
|
138
|
-
spaceId: db?.spaceId
|
|
139
|
-
});
|
|
140
|
-
const [binding, setBinding] = useControlledState(fn?.binding ?? "");
|
|
141
|
-
const handleBindingChange = useCallback((event) => {
|
|
142
|
-
setBinding(event.target.value);
|
|
143
|
-
}, [
|
|
144
|
-
setBinding
|
|
145
|
-
]);
|
|
146
|
-
const handleBindingBlur = useCallback(() => {
|
|
147
|
-
if (fn) {
|
|
148
|
-
Obj.change(fn, (obj) => {
|
|
149
|
-
obj.binding = binding;
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
}, [
|
|
153
|
-
fn,
|
|
154
|
-
binding
|
|
155
|
-
]);
|
|
156
|
-
if (!fn) {
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
160
|
-
role: "form",
|
|
161
|
-
className: "flex flex-col gap-2 my-form-padding"
|
|
162
|
-
}, /* @__PURE__ */ React.createElement("h2", null, t("remote function settings heading")), functionUrl && /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
|
|
163
|
-
role: "none",
|
|
164
|
-
className: "flex flex-col gap-1"
|
|
165
|
-
}, /* @__PURE__ */ React.createElement(Input.Label, null, t("function url label")), /* @__PURE__ */ React.createElement("div", {
|
|
166
|
-
role: "none",
|
|
167
|
-
className: "flex gap-1"
|
|
168
|
-
}, /* @__PURE__ */ React.createElement(Input.TextInput, {
|
|
169
|
-
disabled: true,
|
|
170
|
-
value: functionUrl,
|
|
171
|
-
onChange: (event) => {
|
|
172
|
-
Obj.change(fn, (obj) => {
|
|
173
|
-
obj.name = event.target.value;
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
}), /* @__PURE__ */ React.createElement(Clipboard.IconButton, {
|
|
177
|
-
value: functionUrl
|
|
178
|
-
})))), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
|
|
179
|
-
role: "none",
|
|
180
|
-
className: "flex flex-col gap-1"
|
|
181
|
-
}, /* @__PURE__ */ React.createElement(Input.Label, null, t("function binding label")), /* @__PURE__ */ React.createElement(Input.TextInput, {
|
|
182
|
-
placeholder: t("function binding placeholder"),
|
|
183
|
-
value: binding,
|
|
184
|
-
onChange: handleBindingChange,
|
|
185
|
-
onBlur: handleBindingBlur
|
|
186
|
-
}))));
|
|
187
|
-
};
|
|
188
|
-
var Publishing = ({ object }) => {
|
|
189
|
-
const { t } = useTranslation(meta.id);
|
|
190
|
-
const { invokePromise } = useOperationInvoker();
|
|
191
|
-
const db = Obj.getDatabase(object);
|
|
192
|
-
const [githubToken] = useQuery(db, Filter.type(AccessToken.AccessToken, {
|
|
193
|
-
source: "github.com"
|
|
194
|
-
}));
|
|
195
|
-
const gistKey = Obj.getMeta(object).keys.find(({ source }) => source === "github.com");
|
|
196
|
-
const [gistUrl, setGistUrl] = useState();
|
|
197
|
-
useAsyncEffect(async () => {
|
|
198
|
-
const token = githubToken?.token;
|
|
199
|
-
const gistId = gistKey?.id;
|
|
200
|
-
if (!token || !gistId) {
|
|
201
|
-
setGistUrl(void 0);
|
|
202
|
-
return;
|
|
203
|
-
}
|
|
204
|
-
try {
|
|
205
|
-
const octokit = new Octokit({
|
|
206
|
-
auth: githubToken.token
|
|
207
|
-
});
|
|
208
|
-
const response = await octokit.request("GET /gists/{gist_id}", {
|
|
209
|
-
gist_id: gistId
|
|
210
|
-
});
|
|
211
|
-
setGistUrl(response.data.html_url);
|
|
212
|
-
} catch (err) {
|
|
213
|
-
log.catch(err, void 0, {
|
|
214
|
-
F: __dxlog_file,
|
|
215
|
-
L: 225,
|
|
216
|
-
S: void 0,
|
|
217
|
-
C: (f, a) => f(...a)
|
|
218
|
-
});
|
|
219
|
-
setGistUrl(void 0);
|
|
220
|
-
}
|
|
221
|
-
}, [
|
|
222
|
-
githubToken,
|
|
223
|
-
gistKey
|
|
224
|
-
]);
|
|
225
|
-
const handleOpenTokenManager = useCallback(() => invokePromise(SettingsOperation.Open, {
|
|
226
|
-
plugin: "org.dxos.plugin.token-manager"
|
|
227
|
-
}), [
|
|
228
|
-
invokePromise
|
|
229
|
-
]);
|
|
230
|
-
const [publishing, setPublishing] = useState(false);
|
|
231
|
-
const handlePublish = useCallback(async () => {
|
|
232
|
-
setPublishing(true);
|
|
233
|
-
const octokit = new Octokit({
|
|
234
|
-
auth: githubToken.token
|
|
235
|
-
});
|
|
236
|
-
const source = await object.source.load();
|
|
237
|
-
const filename = object.name ? kebabize(object.name) : "composer-script";
|
|
238
|
-
const files = {
|
|
239
|
-
[`${filename}.ts`]: {
|
|
240
|
-
content: source.content
|
|
241
|
-
}
|
|
242
|
-
};
|
|
243
|
-
try {
|
|
244
|
-
const meta2 = Obj.getMeta(object);
|
|
245
|
-
const githubKey = meta2.keys.find(({ source: source2 }) => source2 === "github.com");
|
|
246
|
-
const gistId = githubKey?.id;
|
|
247
|
-
if (gistId) {
|
|
248
|
-
await octokit.request("PATCH /gists/{gist_id}", {
|
|
249
|
-
gist_id: gistId,
|
|
250
|
-
files
|
|
251
|
-
});
|
|
252
|
-
} else {
|
|
253
|
-
const response = await octokit.request("POST /gists", {
|
|
254
|
-
public: true,
|
|
255
|
-
files
|
|
256
|
-
});
|
|
257
|
-
const gistId2 = response.data.id;
|
|
258
|
-
if (gistId2) {
|
|
259
|
-
Obj.change(object, (obj) => {
|
|
260
|
-
Obj.getMeta(obj).keys.push({
|
|
261
|
-
source: "github.com",
|
|
262
|
-
id: gistId2
|
|
263
|
-
});
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
} finally {
|
|
268
|
-
setPublishing(false);
|
|
269
|
-
}
|
|
270
|
-
}, [
|
|
271
|
-
object,
|
|
272
|
-
githubToken
|
|
273
|
-
]);
|
|
274
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
275
|
-
className: "flex flex-col gap-4 my-form-padding"
|
|
276
|
-
}, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", null, t("script publish settings label")), /* @__PURE__ */ React.createElement("p", {
|
|
277
|
-
className: "text-description text-sm"
|
|
278
|
-
}, t("script publish settings description"))), !githubToken && /* @__PURE__ */ React.createElement("div", {
|
|
279
|
-
className: "flex flex-col gap-2"
|
|
280
|
-
}, /* @__PURE__ */ React.createElement("span", null, t("no github token label")), /* @__PURE__ */ React.createElement(Button, {
|
|
281
|
-
onClick: handleOpenTokenManager
|
|
282
|
-
}, t("open token manager label"))), githubToken && /* @__PURE__ */ React.createElement("div", {
|
|
283
|
-
className: "flex justify-end gap-2"
|
|
284
|
-
}, gistUrl && /* @__PURE__ */ React.createElement(Clipboard.IconButton, {
|
|
285
|
-
value: gistUrl
|
|
286
|
-
}), /* @__PURE__ */ React.createElement(Button, {
|
|
287
|
-
disabled: publishing,
|
|
288
|
-
onClick: handlePublish
|
|
289
|
-
}, t(publishing ? "publishing label" : "publish label"))));
|
|
290
|
-
};
|
|
291
|
-
|
|
292
|
-
// src/containers/ScriptObjectSettings/index.ts
|
|
293
|
-
var ScriptObjectSettings_default = ScriptObjectSettings;
|
|
294
|
-
export {
|
|
295
|
-
ScriptObjectSettings_default as default
|
|
296
|
-
};
|
|
297
|
-
//# sourceMappingURL=ScriptObjectSettings-LST7DUAN.mjs.map
|