@dxos/plugin-script 0.8.4-main.ead640a → 0.8.4-main.effb148878
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/README.md +15 -13
- package/dist/lib/neutral/DeploymentDialog-M3AFYQHC.mjs +114 -0
- package/dist/lib/neutral/DeploymentDialog-M3AFYQHC.mjs.map +7 -0
- package/dist/lib/{browser/NotebookContainer-LVGRPFY3.mjs → neutral/NotebookArticle-NV4AHOOS.mjs} +313 -233
- package/dist/lib/neutral/NotebookArticle-NV4AHOOS.mjs.map +7 -0
- package/dist/lib/neutral/ScriptArticle-UBT27SB6.mjs +79 -0
- 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/neutral/TestContainer-AFVTBYSJ.mjs +44 -0
- 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/neutral/blueprint-definition-T33SBPP2.mjs +15 -0
- package/dist/lib/neutral/blueprint-definition-T33SBPP2.mjs.map +7 -0
- package/dist/lib/neutral/blueprints/index.mjs +10 -0
- 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/neutral/chunk-2REUEDUA.mjs +56 -0
- package/dist/lib/neutral/chunk-2REUEDUA.mjs.map +7 -0
- package/dist/lib/neutral/chunk-4H6UOE5J.mjs +123 -0
- package/dist/lib/neutral/chunk-4H6UOE5J.mjs.map +7 -0
- package/dist/lib/neutral/chunk-6XGGYOY2.mjs +36 -0
- package/dist/lib/neutral/chunk-6XGGYOY2.mjs.map +7 -0
- package/dist/lib/neutral/chunk-GD5SNDAA.mjs +8 -0
- package/dist/lib/neutral/chunk-GD5SNDAA.mjs.map +7 -0
- package/dist/lib/neutral/chunk-GYQPDUTK.mjs +105 -0
- package/dist/lib/neutral/chunk-GYQPDUTK.mjs.map +7 -0
- package/dist/lib/neutral/chunk-HJ4BY42S.mjs +8 -0
- package/dist/lib/neutral/chunk-HJ4BY42S.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-VXDJH6OL.mjs +150 -0
- package/dist/lib/neutral/chunk-VXDJH6OL.mjs.map +7 -0
- package/dist/lib/neutral/chunk-WEIU4BCS.mjs +52 -0
- package/dist/lib/neutral/chunk-WEIU4BCS.mjs.map +7 -0
- package/dist/lib/neutral/chunk-Y3O3YZSE.mjs +345 -0
- package/dist/lib/neutral/chunk-Y3O3YZSE.mjs.map +7 -0
- package/dist/lib/neutral/compiler-ODK4UA2N.mjs +101 -0
- package/dist/lib/neutral/compiler-ODK4UA2N.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +722 -0
- 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-32MZYUAA.mjs +46 -0
- package/dist/lib/neutral/create-32MZYUAA.mjs.map +7 -0
- package/dist/lib/neutral/create-object-FZM5ASWM.mjs +45 -0
- package/dist/lib/neutral/create-object-FZM5ASWM.mjs.map +7 -0
- package/dist/lib/neutral/create-script-6HWJMXMD.mjs +45 -0
- package/dist/lib/neutral/create-script-6HWJMXMD.mjs.map +7 -0
- package/dist/lib/neutral/delete-475DHFZO.mjs +21 -0
- package/dist/lib/neutral/delete-475DHFZO.mjs.map +7 -0
- package/dist/lib/neutral/deploy-VMPGXUR2.mjs +63 -0
- package/dist/lib/neutral/deploy-VMPGXUR2.mjs.map +7 -0
- package/dist/lib/neutral/hooks/index.mjs +369 -0
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +41 -0
- package/dist/lib/neutral/inspect-invocations-IHZDHE27.mjs +59 -0
- package/dist/lib/neutral/inspect-invocations-IHZDHE27.mjs.map +7 -0
- package/dist/lib/neutral/install-function-UJWJMTZY.mjs +49 -0
- package/dist/lib/neutral/install-function-UJWJMTZY.mjs.map +7 -0
- package/dist/lib/neutral/invoke-M7J6LRZB.mjs +32 -0
- package/dist/lib/neutral/invoke-M7J6LRZB.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-MOATB7ZI.mjs +18 -0
- package/dist/lib/neutral/operation-handler-MOATB7ZI.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-MZUBGLJG.mjs +34 -0
- package/dist/lib/neutral/query-deployed-functions-MZUBGLJG.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-DPK6XU2Y.mjs +120 -0
- package/dist/lib/neutral/react-surface-DPK6XU2Y.mjs.map +7 -0
- package/dist/lib/neutral/read-LWLI7RB2.mjs +26 -0
- package/dist/lib/neutral/read-LWLI7RB2.mjs.map +7 -0
- package/dist/lib/neutral/settings-VJBW4OMK.mjs +30 -0
- package/dist/lib/neutral/settings-VJBW4OMK.mjs.map +7 -0
- package/dist/lib/{browser → neutral}/templates/index.mjs +2 -1
- package/dist/lib/neutral/translations.mjs +105 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +17 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/lib/neutral/update-HTFIQY2Z.mjs +63 -0
- package/dist/lib/neutral/update-HTFIQY2Z.mjs.map +7 -0
- package/dist/types/src/ScriptPlugin.d.ts +3 -1
- 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 +135 -0
- package/dist/types/src/blueprints/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/delete.d.ts +17 -0
- package/dist/types/src/blueprints/functions/delete.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/deploy.d.ts +21 -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 +28 -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 +21 -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 +21 -0
- package/dist/types/src/blueprints/functions/read.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/update.d.ts +26 -0
- package/dist/types/src/blueprints/functions/update.d.ts.map +1 -0
- package/dist/types/src/blueprints/index.d.ts +2 -0
- package/dist/types/src/blueprints/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/script-blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/artifact-definition.d.ts +3 -2
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/compiler.d.ts +3 -1
- package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
- 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 -7
- 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.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +3 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +5 -2
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/compiler/compiler.d.ts +1 -1
- package/dist/types/src/compiler/compiler.d.ts.map +1 -1
- package/dist/types/src/components/FramePanel/FramePanel.d.ts +12 -0
- package/dist/types/src/components/FramePanel/FramePanel.d.ts.map +1 -0
- package/dist/types/src/components/FramePanel/index.d.ts +2 -0
- package/dist/types/src/components/FramePanel/index.d.ts.map +1 -0
- package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +5 -4
- 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 +5 -3
- package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +221 -229
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
- package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
- package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
- package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
- package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
- package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
- package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
- package/dist/types/src/components/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 +10 -9
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +221 -229
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/TestPanel/TestPanel.d.ts +4 -2
- package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
- package/dist/types/src/components/TestPanel/index.d.ts +0 -1
- package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +6 -2
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +3 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +6 -5
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/constants.d.ts +2 -0
- package/dist/types/src/constants.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.d.ts +2 -4
- package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -0
- package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts +240 -0
- package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -0
- package/dist/types/src/containers/DeploymentDialog/index.d.ts +2 -0
- package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -0
- 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 +6 -0
- package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -0
- 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 +2 -0
- package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -0
- package/dist/types/src/containers/TestContainer/TestContainer.d.ts +8 -0
- package/dist/types/src/containers/TestContainer/TestContainer.d.ts.map +1 -0
- package/dist/types/src/containers/TestContainer/index.d.ts +2 -0
- package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +7 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/e2e/ai.test.d.ts +2 -0
- package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
- package/dist/types/src/e2e/deploy.test.d.ts +2 -0
- package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
- package/dist/types/src/hooks/deploy.d.ts +27 -30
- package/dist/types/src/hooks/deploy.d.ts.map +1 -1
- package/dist/types/src/hooks/format.d.ts +5 -4
- package/dist/types/src/hooks/format.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +1 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/template.d.ts +7 -16
- package/dist/types/src/hooks/template.d.ts.map +1 -1
- package/dist/types/src/hooks/useCompiler.d.ts +7 -0
- package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
- package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
- package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
- package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/notebook/compute-graph.d.ts +58 -0
- package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
- package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
- package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
- package/dist/types/src/notebook/eval.d.ts +1 -1
- package/dist/types/src/notebook/eval.d.ts.map +1 -1
- package/dist/types/src/notebook/index.d.ts +1 -1
- package/dist/types/src/notebook/index.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 +5 -0
- package/dist/types/src/operations/create-script.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +3 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- 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 +7 -0
- package/dist/types/src/templates/anthropic.d.ts.map +1 -0
- package/dist/types/src/templates/chat.d.ts.map +1 -1
- package/dist/types/src/templates/chess-bot.d.ts +14 -0
- package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
- package/dist/types/src/templates/commentary.d.ts +15 -0
- package/dist/types/src/templates/commentary.d.ts.map +1 -0
- 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 +5 -1
- package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
- package/dist/types/src/templates/forex.d.ts +5 -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 +33 -24
- package/dist/types/src/templates/index.d.ts.map +1 -1
- package/dist/types/src/templates/ping.d.ts +2 -4
- 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/simulator.test.d.ts +2 -0
- package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
- 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 -91
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Notebook.d.ts +117 -0
- package/dist/types/src/types/Notebook.d.ts.map +1 -0
- 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 +5 -2
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +2 -0
- package/dist/types/src/types/types.d.ts.map +1 -0
- package/dist/types/src/util/deploy.d.ts +4 -4
- package/dist/types/src/util/deploy.d.ts.map +1 -1
- package/dist/types/src/util/functions.d.ts +3 -3
- package/dist/types/src/util/functions.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +185 -102
- package/src/ScriptPlugin.node.ts +21 -0
- package/src/ScriptPlugin.test.ts +31 -0
- package/src/ScriptPlugin.tsx +24 -100
- package/src/ScriptPlugin.workerd.ts +18 -0
- package/src/blueprints/functions/create.ts +47 -0
- package/src/blueprints/functions/definitions.ts +332 -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/index.ts +5 -0
- package/src/blueprints/script-blueprint.ts +55 -0
- package/src/capabilities/app-graph-builder.ts +40 -58
- package/src/capabilities/artifact-definition.ts +99 -98
- package/src/capabilities/blueprint-definition.ts +13 -24
- package/src/capabilities/compiler.ts +100 -23
- package/src/capabilities/create-object.ts +49 -0
- package/src/capabilities/index.ts +13 -9
- package/src/capabilities/node.ts +16 -0
- package/src/capabilities/operation-handler.ts +21 -0
- package/src/capabilities/react-surface.tsx +120 -92
- package/src/capabilities/settings.ts +26 -14
- package/src/compiler/compiler.ts +21 -3
- package/src/components/{FrameContainer/FrameContainer.tsx → FramePanel/FramePanel.tsx} +8 -7
- package/src/components/{FrameContainer → FramePanel}/index.ts +1 -1
- package/src/components/NotebookStack/NotebookCell.tsx +100 -91
- package/src/components/NotebookStack/NotebookMenu.tsx +7 -7
- package/src/components/NotebookStack/NotebookStack.stories.tsx +34 -13
- package/src/components/NotebookStack/NotebookStack.tsx +40 -22
- package/src/components/QueryEditor/QueryEditor.stories.tsx +96 -0
- package/src/components/QueryEditor/QueryEditor.tsx +49 -0
- package/src/components/QueryEditor/index.ts +5 -0
- 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 +44 -22
- package/src/components/ScriptToolbar/ScriptToolbar.tsx +43 -48
- package/src/components/TestPanel/TestPanel.tsx +125 -185
- package/src/components/TestPanel/index.ts +0 -1
- package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +26 -19
- package/src/components/TypescriptEditor/TypescriptEditor.tsx +74 -71
- package/src/components/index.ts +6 -7
- package/src/constants.ts +7 -0
- package/src/containers/DeploymentDialog/DeploymentDialog.stories.tsx +63 -0
- package/src/containers/DeploymentDialog/DeploymentDialog.tsx +99 -0
- package/src/containers/DeploymentDialog/index.ts +5 -0
- package/src/containers/NotebookArticle/NotebookArticle.stories.tsx +85 -0
- package/src/containers/NotebookArticle/NotebookArticle.tsx +255 -0
- package/src/containers/NotebookArticle/index.ts +5 -0
- package/src/containers/ScriptArticle/ScriptArticle.stories.tsx +107 -0
- package/src/containers/ScriptArticle/ScriptArticle.tsx +85 -0
- 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 +24 -0
- package/src/containers/ScriptProperties/index.ts +5 -0
- package/src/containers/TestContainer/TestContainer.tsx +44 -0
- package/src/containers/TestContainer/index.ts +5 -0
- package/src/containers/index.ts +11 -0
- package/src/e2e/ai.test.ts +93 -0
- package/src/e2e/deploy.test.ts +66 -0
- package/src/hooks/deploy.ts +47 -37
- package/src/hooks/format.ts +10 -5
- package/src/hooks/index.ts +1 -0
- package/src/hooks/template.ts +23 -26
- package/src/hooks/useCompiler.ts +25 -0
- package/src/hooks/useCreateAndDeployScriptTemplates.ts +15 -16
- package/src/hooks/useToolbarState.ts +29 -4
- package/src/index.ts +2 -4
- package/src/meta.ts +15 -6
- package/src/notebook/compute-graph.test.ts +82 -0
- package/src/notebook/{notebook.ts → compute-graph.ts} +66 -19
- package/src/notebook/eval.ts +1 -1
- package/src/notebook/index.ts +1 -1
- package/src/notebook/vfs-parser.ts +10 -3
- package/src/operations/create-script.ts +46 -0
- package/src/operations/index.ts +7 -0
- package/src/plugin.ts +11 -0
- package/src/templates/anthropic.ts +49 -0
- package/src/templates/chat.ts +1 -1
- package/src/templates/chess-bot.ts +63 -0
- package/src/templates/commentary.ts +248 -0
- package/src/templates/data-generator.ts +2 -2
- package/src/templates/discord.ts +5 -5
- package/src/templates/forex-effect.ts +35 -29
- package/src/templates/forex.ts +27 -17
- package/src/templates/gmail.ts +7 -8
- package/src/templates/index.ts +31 -18
- package/src/templates/ping.ts +22 -5
- package/src/testing/index.ts +2 -1
- package/src/testing/simulator.test.ts +39 -0
- package/src/testing/test-notebook.ts +71 -0
- package/src/testing/test-script.ts +28 -0
- package/src/translations.ts +89 -88
- package/src/types/Notebook.ts +42 -0
- package/src/types/ScriptCapabilities.ts +18 -0
- package/src/types/ScriptEvents.ts +11 -0
- package/src/types/ScriptOperation.ts +42 -0
- package/src/types/Settings.ts +20 -0
- package/src/types/index.ts +6 -2
- package/src/types/types.ts +5 -0
- package/src/util/deploy.ts +33 -41
- package/src/util/functions.ts +35 -30
- package/src/vite-env.d.ts +2 -0
- package/dist/lib/browser/DeploymentDialog-65TWT6S5.mjs +0 -13
- package/dist/lib/browser/NotebookContainer-LVGRPFY3.mjs.map +0 -7
- package/dist/lib/browser/ScriptContainer-LRTRN7JW.mjs +0 -149
- package/dist/lib/browser/ScriptContainer-LRTRN7JW.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-DPYULSME.mjs +0 -65
- package/dist/lib/browser/app-graph-builder-DPYULSME.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs +0 -28
- package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs.map +0 -7
- package/dist/lib/browser/chunk-5CYLWXRH.mjs +0 -89
- package/dist/lib/browser/chunk-5CYLWXRH.mjs.map +0 -7
- package/dist/lib/browser/chunk-75LH4EUR.mjs +0 -326
- package/dist/lib/browser/chunk-75LH4EUR.mjs.map +0 -7
- package/dist/lib/browser/chunk-E7DXDICD.mjs +0 -282
- package/dist/lib/browser/chunk-E7DXDICD.mjs.map +0 -7
- package/dist/lib/browser/chunk-EZVXV6DA.mjs +0 -26
- package/dist/lib/browser/chunk-EZVXV6DA.mjs.map +0 -7
- package/dist/lib/browser/chunk-I3QSGUFJ.mjs +0 -646
- package/dist/lib/browser/chunk-I3QSGUFJ.mjs.map +0 -7
- package/dist/lib/browser/chunk-JO2O7W6J.mjs +0 -254
- package/dist/lib/browser/chunk-JO2O7W6J.mjs.map +0 -7
- package/dist/lib/browser/chunk-N6M34EUC.mjs +0 -112
- package/dist/lib/browser/chunk-N6M34EUC.mjs.map +0 -7
- package/dist/lib/browser/chunk-NM4WQS4F.mjs +0 -153
- package/dist/lib/browser/chunk-NM4WQS4F.mjs.map +0 -7
- package/dist/lib/browser/chunk-OKXN2N7M.mjs +0 -15
- package/dist/lib/browser/chunk-OKXN2N7M.mjs.map +0 -7
- package/dist/lib/browser/chunk-ST3ACVUC.mjs +0 -88
- package/dist/lib/browser/chunk-ST3ACVUC.mjs.map +0 -7
- package/dist/lib/browser/compiler-G2N2CG63.mjs +0 -98
- package/dist/lib/browser/compiler-G2N2CG63.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -281
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-JLU7DVLQ.mjs +0 -105
- package/dist/lib/browser/intent-resolver-JLU7DVLQ.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/react-surface-76SDTUYG.mjs +0 -127
- package/dist/lib/browser/react-surface-76SDTUYG.mjs.map +0 -7
- package/dist/lib/browser/settings-ERFKVNUK.mjs +0 -25
- package/dist/lib/browser/settings-ERFKVNUK.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -13
- package/dist/lib/node-esm/DeploymentDialog-I63ZC2HH.mjs +0 -14
- package/dist/lib/node-esm/NotebookContainer-QY5NJGJI.mjs +0 -684
- package/dist/lib/node-esm/NotebookContainer-QY5NJGJI.mjs.map +0 -7
- package/dist/lib/node-esm/ScriptContainer-SVXCSLNH.mjs +0 -150
- package/dist/lib/node-esm/ScriptContainer-SVXCSLNH.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs +0 -66
- package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs +0 -30
- package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2GVTWESW.mjs +0 -90
- package/dist/lib/node-esm/chunk-2GVTWESW.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4X375PGY.mjs +0 -90
- package/dist/lib/node-esm/chunk-4X375PGY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-67OVZHI3.mjs +0 -327
- package/dist/lib/node-esm/chunk-67OVZHI3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-C2ORIPKH.mjs +0 -154
- package/dist/lib/node-esm/chunk-C2ORIPKH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NUXZQQ6P.mjs +0 -16
- package/dist/lib/node-esm/chunk-NUXZQQ6P.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OG2SIKHE.mjs +0 -28
- package/dist/lib/node-esm/chunk-OG2SIKHE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SMFPSKQT.mjs +0 -647
- package/dist/lib/node-esm/chunk-SMFPSKQT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VRSDE4CI.mjs +0 -114
- package/dist/lib/node-esm/chunk-VRSDE4CI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VZAFGLD7.mjs +0 -283
- package/dist/lib/node-esm/chunk-VZAFGLD7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-YW36TZ7K.mjs +0 -255
- package/dist/lib/node-esm/chunk-YW36TZ7K.mjs.map +0 -7
- package/dist/lib/node-esm/compiler-PLDAZ5GJ.mjs +0 -99
- package/dist/lib/node-esm/compiler-PLDAZ5GJ.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -282
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-SFGTIFOG.mjs +0 -106
- package/dist/lib/node-esm/intent-resolver-SFGTIFOG.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/react-surface-SHEBNW4R.mjs +0 -128
- package/dist/lib/node-esm/react-surface-SHEBNW4R.mjs.map +0 -7
- package/dist/lib/node-esm/settings-5TYXQ42N.mjs +0 -26
- package/dist/lib/node-esm/settings-5TYXQ42N.mjs.map +0 -7
- package/dist/lib/node-esm/templates/index.mjs +0 -10
- package/dist/lib/node-esm/types/index.mjs +0 -14
- package/dist/types/src/capabilities/capabilities.d.ts +0 -5
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +0 -1
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +0 -251
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +0 -1
- package/dist/types/src/components/DeploymentDialog/index.d.ts +0 -4
- package/dist/types/src/components/DeploymentDialog/index.d.ts.map +0 -1
- package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +0 -12
- package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +0 -1
- package/dist/types/src/components/FrameContainer/frame.d.ts +0 -2
- package/dist/types/src/components/FrameContainer/frame.d.ts.map +0 -1
- package/dist/types/src/components/FrameContainer/index.d.ts +0 -2
- package/dist/types/src/components/FrameContainer/index.d.ts.map +0 -1
- package/dist/types/src/components/NotebookContainer.d.ts +0 -10
- package/dist/types/src/components/NotebookContainer.d.ts.map +0 -1
- package/dist/types/src/components/NotebookContainer.stories.d.ts +0 -248
- package/dist/types/src/components/NotebookContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/ScriptContainer.d.ts +0 -12
- package/dist/types/src/components/ScriptContainer.d.ts.map +0 -1
- package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +0 -8
- package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +0 -6
- package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +0 -1
- package/dist/types/src/components/Settings/index.d.ts +0 -3
- package/dist/types/src/components/Settings/index.d.ts.map +0 -1
- package/dist/types/src/components/TestPanel/TestContainer.d.ts +0 -8
- package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +0 -1
- package/dist/types/src/events.d.ts +0 -4
- package/dist/types/src/events.d.ts.map +0 -1
- package/dist/types/src/notebook/notebook.d.ts +0 -35
- package/dist/types/src/notebook/notebook.d.ts.map +0 -1
- package/dist/types/src/notebook/notebook.test.d.ts +0 -2
- package/dist/types/src/notebook/notebook.test.d.ts.map +0 -1
- package/dist/types/src/templates/chess.d.ts +0 -3
- package/dist/types/src/templates/chess.d.ts.map +0 -1
- package/dist/types/src/testing/data.d.ts +0 -19
- package/dist/types/src/testing/data.d.ts.map +0 -1
- package/dist/types/src/types/actions.d.ts +0 -66
- package/dist/types/src/types/actions.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts +0 -61
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/capabilities/capabilities.ts +0 -12
- package/src/capabilities/intent-resolver.ts +0 -87
- package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +0 -53
- package/src/components/DeploymentDialog/DeploymentDialog.tsx +0 -106
- package/src/components/DeploymentDialog/index.ts +0 -9
- package/src/components/FrameContainer/frame.html +0 -25
- package/src/components/FrameContainer/frame.tsx +0 -51
- package/src/components/NotebookContainer.stories.tsx +0 -32
- package/src/components/NotebookContainer.tsx +0 -124
- package/src/components/ScriptContainer.tsx +0 -69
- package/src/components/Settings/ScriptObjectSettings.tsx +0 -286
- package/src/components/Settings/ScriptPluginSettings.tsx +0 -61
- package/src/components/Settings/index.ts +0 -6
- package/src/components/TestPanel/TestContainer.tsx +0 -27
- package/src/events.ts +0 -11
- package/src/notebook/notebook.test.ts +0 -70
- package/src/templates/chess.ts +0 -49
- package/src/testing/data.ts +0 -47
- package/src/types/actions.ts +0 -53
- package/src/types/schema.ts +0 -48
- /package/dist/lib/{browser/templates → neutral/blueprints}/index.mjs.map +0 -0
- /package/dist/lib/{browser/DeploymentDialog-65TWT6S5.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/DeploymentDialog-I63ZC2HH.mjs.map → neutral/meta.mjs.map} +0 -0
- /package/dist/lib/{node-esm/templates → neutral/operations}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/types → neutral/templates}/index.mjs.map +0 -0
package/src/util/deploy.ts
CHANGED
|
@@ -3,30 +3,26 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type Client } from '@dxos/client';
|
|
6
|
+
import { Script, Operation } from '@dxos/compute';
|
|
7
|
+
import { Context } from '@dxos/context';
|
|
6
8
|
import { Obj, Ref } from '@dxos/echo';
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
getUserFunctionIdInMetadata,
|
|
11
|
-
setUserFunctionIdInMetadata,
|
|
12
|
-
} from '@dxos/functions';
|
|
13
|
-
import { Bundler } from '@dxos/functions/bundler';
|
|
14
|
-
import { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions/edge';
|
|
9
|
+
import { getUserFunctionIdInMetadata } from '@dxos/functions';
|
|
10
|
+
import { bundleFunction } from '@dxos/functions-runtime/bundler';
|
|
11
|
+
import { FunctionsServiceClient, incrementSemverPatch } from '@dxos/functions-runtime/edge';
|
|
15
12
|
import { log } from '@dxos/log';
|
|
13
|
+
import { FunctionRuntimeKind } from '@dxos/protocols';
|
|
16
14
|
import { type Space } from '@dxos/react-client/echo';
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export const isScriptDeployed = ({ script, fn }: { script: ScriptType; fn: any }): boolean => {
|
|
16
|
+
export const isScriptDeployed = ({ script, fn }: { script: Script.Script; fn: any }): boolean => {
|
|
21
17
|
const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
|
|
22
18
|
return Boolean(existingFunctionId) && !script.changed;
|
|
23
19
|
};
|
|
24
20
|
|
|
25
21
|
type DeployScriptProps = {
|
|
26
|
-
script:
|
|
22
|
+
script: Script.Script;
|
|
27
23
|
client: Client;
|
|
28
24
|
space: Space;
|
|
29
|
-
fn?:
|
|
25
|
+
fn?: Operation.PersistentOperation;
|
|
30
26
|
existingFunctionId?: string;
|
|
31
27
|
};
|
|
32
28
|
|
|
@@ -48,32 +44,30 @@ export const deployScript = async ({
|
|
|
48
44
|
}
|
|
49
45
|
|
|
50
46
|
try {
|
|
51
|
-
const
|
|
52
|
-
|
|
47
|
+
const buildResult = await bundleFunction({
|
|
48
|
+
source: script.source!.target!.content,
|
|
49
|
+
});
|
|
53
50
|
if ('error' in buildResult) {
|
|
54
51
|
throw buildResult.error || new Error('Bundle creation failed');
|
|
55
52
|
}
|
|
56
53
|
|
|
57
|
-
const
|
|
58
|
-
|
|
54
|
+
const functionsServiceClient = FunctionsServiceClient.fromClient(client);
|
|
55
|
+
const newFunction = await functionsServiceClient.deploy(Context.default(), {
|
|
56
|
+
// TODO(dmaretskyi): Space key or identity key.
|
|
59
57
|
ownerPublicKey: space.key,
|
|
60
|
-
version: fn ? incrementSemverPatch(fn.version) : '0.0.1',
|
|
58
|
+
version: fn ? incrementSemverPatch(Obj.getMeta(fn).version ?? '0.0.0') : '0.0.1',
|
|
61
59
|
functionId: existingFunctionId,
|
|
62
60
|
entryPoint: buildResult.entryPoint,
|
|
63
|
-
assets:
|
|
61
|
+
assets: buildResult.assets,
|
|
62
|
+
runtime: FunctionRuntimeKind.enums.WORKER_LOADER,
|
|
64
63
|
});
|
|
65
64
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);
|
|
71
|
-
script.changed = false;
|
|
72
|
-
updateFunctionMetadata(script, storedFunction, meta, functionId);
|
|
73
|
-
|
|
74
|
-
setUserFunctionIdInMetadata(Obj.getMeta(storedFunction), functionId);
|
|
65
|
+
const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, newFunction);
|
|
66
|
+
Obj.update(script, (script) => {
|
|
67
|
+
script.changed = false;
|
|
68
|
+
});
|
|
75
69
|
|
|
76
|
-
return { success: true, functionId };
|
|
70
|
+
return { success: true, functionId: getUserFunctionIdInMetadata(Obj.getMeta(storedFunction)) };
|
|
77
71
|
} catch (err: any) {
|
|
78
72
|
log.catch(err);
|
|
79
73
|
return { success: false, error: err };
|
|
@@ -83,7 +77,7 @@ export const deployScript = async ({
|
|
|
83
77
|
/**
|
|
84
78
|
* Validate inputs for script deployment.
|
|
85
79
|
*/
|
|
86
|
-
const validateDeployInputs = (script:
|
|
80
|
+
const validateDeployInputs = (script: Script.Script, space: Space): Error | null => {
|
|
87
81
|
if (!script.source || !space) {
|
|
88
82
|
return new Error('Script source or space not available');
|
|
89
83
|
}
|
|
@@ -92,19 +86,17 @@ const validateDeployInputs = (script: ScriptType, space: Space): Error | null =>
|
|
|
92
86
|
|
|
93
87
|
const createOrUpdateFunctionInSpace = (
|
|
94
88
|
space: Space,
|
|
95
|
-
fn:
|
|
96
|
-
script:
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
): FunctionType => {
|
|
89
|
+
fn: Operation.PersistentOperation | undefined,
|
|
90
|
+
script: Script.Script,
|
|
91
|
+
newFunction: Operation.PersistentOperation,
|
|
92
|
+
): Operation.PersistentOperation => {
|
|
100
93
|
if (fn) {
|
|
101
|
-
fn
|
|
102
|
-
fn.version = version;
|
|
94
|
+
Operation.setFrom(fn, newFunction);
|
|
103
95
|
return fn;
|
|
104
96
|
} else {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
return
|
|
97
|
+
Obj.update(newFunction, (newFunction) => {
|
|
98
|
+
newFunction.source = Ref.make(script);
|
|
99
|
+
});
|
|
100
|
+
return space.db.add(newFunction);
|
|
109
101
|
}
|
|
110
102
|
};
|
package/src/util/functions.ts
CHANGED
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { type
|
|
5
|
+
import { type Operation, Script } from '@dxos/compute';
|
|
6
|
+
import { Obj } from '@dxos/echo';
|
|
7
|
+
import { getUserFunctionIdInMetadata } from '@dxos/functions';
|
|
8
|
+
import { getInvocationUrl } from '@dxos/functions-runtime';
|
|
6
9
|
import { type PublicKey } from '@dxos/keys';
|
|
7
10
|
import { log } from '@dxos/log';
|
|
8
11
|
import { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';
|
|
9
|
-
|
|
12
|
+
|
|
10
13
|
/**
|
|
11
14
|
* Get the function URL for a given script and client configuration
|
|
12
15
|
*/
|
|
@@ -15,53 +18,55 @@ export const getFunctionUrl = ({
|
|
|
15
18
|
fn,
|
|
16
19
|
edgeUrl,
|
|
17
20
|
}: {
|
|
18
|
-
script:
|
|
21
|
+
script: Script.Script;
|
|
19
22
|
fn: any;
|
|
20
23
|
edgeUrl: string;
|
|
21
24
|
}): string | undefined => {
|
|
22
|
-
const
|
|
23
|
-
const existingFunctionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
|
|
25
|
+
const spaceId = Obj.getDatabase(script)?.spaceId;
|
|
26
|
+
const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
|
|
24
27
|
|
|
25
28
|
if (!existingFunctionId) {
|
|
26
29
|
return undefined;
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
return getInvocationUrl(existingFunctionId, edgeUrl, {
|
|
30
|
-
spaceId
|
|
33
|
+
spaceId,
|
|
31
34
|
});
|
|
32
35
|
};
|
|
33
36
|
|
|
34
37
|
export const updateFunctionMetadata = (
|
|
35
|
-
script:
|
|
36
|
-
storedFunction:
|
|
38
|
+
script: Script.Script,
|
|
39
|
+
storedFunction: Operation.PersistentOperation,
|
|
37
40
|
meta: any,
|
|
38
41
|
functionId: string,
|
|
39
42
|
) => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
Obj.update(storedFunction, (storedFunction) => {
|
|
44
|
+
if (script.description !== undefined && script.description.trim() !== '') {
|
|
45
|
+
storedFunction.description = script.description;
|
|
46
|
+
} else if (meta.description) {
|
|
47
|
+
storedFunction.description = meta.description;
|
|
48
|
+
} else {
|
|
49
|
+
log.verbose('no description in function metadata', { functionId });
|
|
50
|
+
}
|
|
47
51
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
if (meta.inputSchema) {
|
|
53
|
+
storedFunction.inputSchema = meta.inputSchema;
|
|
54
|
+
} else {
|
|
55
|
+
log.verbose('no input schema in function metadata', { functionId });
|
|
56
|
+
}
|
|
53
57
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
if (meta.outputSchema) {
|
|
59
|
+
storedFunction.outputSchema = meta.outputSchema;
|
|
60
|
+
} else {
|
|
61
|
+
log.verbose('no output schema in function metadata', { functionId });
|
|
62
|
+
}
|
|
59
63
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
if (meta.key) {
|
|
65
|
+
Obj.getMeta(storedFunction).key = meta.key;
|
|
66
|
+
} else {
|
|
67
|
+
log.verbose('no key in function metadata', { functionId });
|
|
68
|
+
}
|
|
69
|
+
});
|
|
65
70
|
};
|
|
66
71
|
|
|
67
72
|
export const getAccessCredential = (identityKey: PublicKey): Credential => {
|
package/src/vite-env.d.ts
CHANGED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DEPLOYMENT_DIALOG,
|
|
3
|
-
DeploymentDialog_default
|
|
4
|
-
} from "./chunk-NM4WQS4F.mjs";
|
|
5
|
-
import "./chunk-JO2O7W6J.mjs";
|
|
6
|
-
import "./chunk-5CYLWXRH.mjs";
|
|
7
|
-
import "./chunk-ST3ACVUC.mjs";
|
|
8
|
-
import "./chunk-EZVXV6DA.mjs";
|
|
9
|
-
export {
|
|
10
|
-
DEPLOYMENT_DIALOG,
|
|
11
|
-
DeploymentDialog_default as default
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=DeploymentDialog-65TWT6S5.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/NotebookContainer.tsx", "../../../src/notebook/notebook.ts", "../../../src/notebook/eval.ts", "../../../src/notebook/vfs-parser.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Ref } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { Assistant } from '@dxos/plugin-assistant';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { DropdownMenu, IconButton, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { DataType } from '@dxos/schema';\n\nimport { meta } from '../meta';\nimport { ComputeGraph } from '../notebook';\nimport { type Notebook } from '../types';\n\nimport { NotebookMenu, NotebookStack, type NotebookStackProps } from './NotebookStack';\nimport { type TypescriptEditorProps } from './TypescriptEditor';\n\n// TODO(burdon): Support calling named deployed functions (as with sheet).\n\nexport type NotebookContainerProps = {\n role?: string;\n notebook?: Notebook.Notebook;\n} & Pick<TypescriptEditorProps, 'env'>;\n\nexport const NotebookContainer = ({ notebook, env }: NotebookContainerProps) => {\n const { t } = useTranslation(meta.id);\n const space = getSpace(notebook);\n const graph = useMemo(() => notebook && new ComputeGraph(notebook), [notebook]);\n\n // TODO(burdon): Cache values in context (preserve when switched).\n const handleCompute = useCallback(() => {\n graph?.evaluate();\n }, [graph]);\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 const cell = notebook.cells.splice(from, 1)[0];\n if (cell) {\n notebook.cells.splice(to, 0, cell);\n }\n }\n },\n [notebook],\n );\n\n const handleCellInsert = useCallback<NonNullable<NotebookStackProps['onCellInsert']>>(\n (type, after) => {\n invariant(notebook);\n const cell: Notebook.Cell = { id: crypto.randomUUID(), type };\n switch (type) {\n case 'markdown':\n case 'script':\n case 'query': {\n cell.script = Ref.make(DataType.makeText());\n break;\n }\n\n case 'prompt': {\n if (space) {\n cell.chat = Ref.make(Assistant.makeChat({ queue: space.queues.create() }));\n }\n break;\n }\n }\n\n const idx = after ? notebook.cells.findIndex((cell) => cell.id === after) : notebook.cells.length;\n notebook.cells.splice(idx, 0, cell);\n },\n [space, 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 notebook.cells.splice(idx, 1);\n }\n },\n [notebook],\n );\n\n return (\n <StackItem.Content toolbar>\n <Toolbar.Root textBlockWidth>\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-green-500'\n onClick={handleCompute}\n />\n </Toolbar.Root>\n <div role='none' className='flex bs-full overflow-hidden -mis-[1px] -mie-[1px]'>\n <NotebookStack\n classNames='container-max-width border-l border-r border-subduedSeparator'\n space={space}\n notebook={notebook}\n graph={graph}\n env={env}\n onRearrange={handleRearrange}\n onCellInsert={handleCellInsert}\n onCellDelete={handleCellDelete}\n />\n </div>\n </StackItem.Content>\n );\n};\n\nexport default NotebookContainer;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Signal, signal } from '@preact/signals-core';\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 */\nexport class ComputeGraph {\n private readonly _parser = new VirtualTypeScriptParser();\n\n private _expressions = signal<Record<string, ParsedExpression>>({});\n private _values = signal<Record<string, any>>({});\n\n constructor(private readonly _notebook: Notebook.Notebook) {}\n\n /**\n * Parsed expressions by cell ID.\n */\n get expressions(): Signal<Record<string, ParsedExpression>> {\n return this._expressions;\n }\n\n /**\n * Computed values by cell ID.\n */\n get values(): Signal<Record<string, any>> {\n return this._values;\n }\n\n /**\n * Compute values.\n */\n evaluate() {\n // Parse expressions.\n const { expressions, dependencyGraph } = this.parse();\n this._values.value = {};\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)?.script?.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 = evalScript(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 = evalScript(cellSource, valuesByName);\n valuesByCellId[cellId] = result;\n }\n } catch (error) {\n log.error('error evaluating cell', { cellId, error });\n }\n }\n\n this._values.value = valuesByCellId;\n return valuesByCellId;\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.script?.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._expressions.value = 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 = (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"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "useCallback", "useMemo", "Ref", "invariant", "Assistant", "getSpace", "DropdownMenu", "IconButton", "Toolbar", "useTranslation", "StackItem", "DataType", "signal", "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", "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", "ts", "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", "compilerOptions", "target", "ScriptTarget", "ES2020", "module", "ModuleKind", "ESNext", "strict", "esModuleInterop", "skipLibCheck", "forceConsistentCasingInfilenames", "jsx", "JsxEmit", "React", "noLib", "ComputeGraph", "expressions", "_expressions", "values", "_values", "evaluate", "dependencyGraph", "parse", "value", "cellExpressions", "Map", "Object", "entries", "forEach", "id", "expr", "set", "evaluationOrder", "topologicalSort", "keys", "valuesByName", "valuesByCellId", "cellId", "get", "log", "error", "cellSource", "_notebook", "cells", "find", "cell", "script", "target", "content", "name", "undefined", "equalIndex", "indexOf", "rhs", "substring", "trim", "endsWith", "slice", "result", "evalScript", "filter", "type", "reduce", "acc", "text", "parsed", "_parser", "parseExpression", "buildDependencyGraph", "nodes", "dependencies", "visited", "Set", "visit", "node", "has", "add", "deps", "dep", "push", "nameToCellId", "graph", "references", "length", "dependencyCellIds", "map", "ref", "_define_property", "VirtualTypeScriptParser", "signal", "NotebookContainer", "notebook", "env", "t", "useTranslation", "meta", "id", "space", "getSpace", "graph", "useMemo", "ComputeGraph", "handleCompute", "useCallback", "evaluate", "handleRearrange", "source", "target", "invariant", "from", "cells", "findIndex", "cell", "to", "splice", "handleCellInsert", "type", "after", "crypto", "randomUUID", "script", "Ref", "make", "DataType", "makeText", "chat", "Assistant", "makeChat", "queue", "queues", "create", "idx", "length", "handleCellDelete", "StackItem", "Content", "toolbar", "Toolbar", "Root", "textBlockWidth", "DropdownMenu", "Trigger", "asChild", "IconButton", "icon", "iconOnly", "label", "NotebookMenu", "onCellInsert", "classNames", "onClick", "div", "role", "className", "NotebookStack", "onRearrange", "onCellDelete"]
|
|
7
|
-
}
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createDeploy,
|
|
3
|
-
createFormat,
|
|
4
|
-
createTemplateSelect,
|
|
5
|
-
useDeployDeps,
|
|
6
|
-
useDeployState,
|
|
7
|
-
useToolbarState
|
|
8
|
-
} from "./chunk-E7DXDICD.mjs";
|
|
9
|
-
import {
|
|
10
|
-
TypescriptEditor
|
|
11
|
-
} from "./chunk-N6M34EUC.mjs";
|
|
12
|
-
import "./chunk-JO2O7W6J.mjs";
|
|
13
|
-
import "./chunk-5CYLWXRH.mjs";
|
|
14
|
-
import "./chunk-ST3ACVUC.mjs";
|
|
15
|
-
import {
|
|
16
|
-
meta
|
|
17
|
-
} from "./chunk-EZVXV6DA.mjs";
|
|
18
|
-
|
|
19
|
-
// src/components/ScriptContainer.tsx
|
|
20
|
-
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
21
|
-
import React2, { useMemo as useMemo2 } from "react";
|
|
22
|
-
import { createDocAccessor, getSpace } from "@dxos/react-client/echo";
|
|
23
|
-
import { useIdentity } from "@dxos/react-client/halo";
|
|
24
|
-
import { createDataExtensions, listener, stackItemContentEditorClassNames } from "@dxos/react-ui-editor";
|
|
25
|
-
import { StackItem } from "@dxos/react-ui-stack";
|
|
26
|
-
|
|
27
|
-
// src/components/ScriptToolbar/ScriptToolbar.tsx
|
|
28
|
-
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
29
|
-
import { Rx } from "@effect-rx/rx-react";
|
|
30
|
-
import React, { useMemo } from "react";
|
|
31
|
-
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
32
|
-
import { ElevationProvider, useTranslation } from "@dxos/react-ui";
|
|
33
|
-
import { MenuProvider, ToolbarMenu, createGapSeparator, rxFromSignal, useMenuActions } from "@dxos/react-ui-menu";
|
|
34
|
-
var ScriptToolbar = ({ script, role, state, classNames }) => {
|
|
35
|
-
var _effect = _useSignals();
|
|
36
|
-
try {
|
|
37
|
-
const { t } = useTranslation(meta.id);
|
|
38
|
-
const options = useDeployDeps({
|
|
39
|
-
script
|
|
40
|
-
});
|
|
41
|
-
const menu = useMemo(() => createToolbarActions({
|
|
42
|
-
state,
|
|
43
|
-
script,
|
|
44
|
-
t,
|
|
45
|
-
...options
|
|
46
|
-
}), [
|
|
47
|
-
state,
|
|
48
|
-
script,
|
|
49
|
-
options,
|
|
50
|
-
t
|
|
51
|
-
]);
|
|
52
|
-
const actions = useMenuActions(menu);
|
|
53
|
-
return /* @__PURE__ */ React.createElement(ElevationProvider, {
|
|
54
|
-
elevation: role === "section" ? "positioned" : "base"
|
|
55
|
-
}, /* @__PURE__ */ React.createElement(MenuProvider, {
|
|
56
|
-
...actions,
|
|
57
|
-
attendableId: fullyQualifiedId(script)
|
|
58
|
-
}, /* @__PURE__ */ React.createElement(ToolbarMenu, {
|
|
59
|
-
classNames
|
|
60
|
-
})));
|
|
61
|
-
} finally {
|
|
62
|
-
_effect.f();
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
var createToolbarActions = ({ state, script, ...options }) => Rx.make((get) => get(rxFromSignal(() => {
|
|
66
|
-
const templateSelect = createTemplateSelect(script);
|
|
67
|
-
const format = createFormat(script);
|
|
68
|
-
const gap = createGapSeparator();
|
|
69
|
-
const deploy = createDeploy({
|
|
70
|
-
state,
|
|
71
|
-
script,
|
|
72
|
-
...options
|
|
73
|
-
});
|
|
74
|
-
return {
|
|
75
|
-
nodes: [
|
|
76
|
-
...templateSelect.nodes,
|
|
77
|
-
...format.nodes,
|
|
78
|
-
...gap.nodes,
|
|
79
|
-
...deploy.nodes
|
|
80
|
-
],
|
|
81
|
-
edges: [
|
|
82
|
-
...templateSelect.edges,
|
|
83
|
-
...format.edges,
|
|
84
|
-
...gap.edges,
|
|
85
|
-
...deploy.edges
|
|
86
|
-
]
|
|
87
|
-
};
|
|
88
|
-
})));
|
|
89
|
-
|
|
90
|
-
// src/components/ScriptContainer.tsx
|
|
91
|
-
var ScriptContainer = ({ role, script, settings = {
|
|
92
|
-
editorInputMode: "vscode"
|
|
93
|
-
}, env }) => {
|
|
94
|
-
var _effect = _useSignals2();
|
|
95
|
-
try {
|
|
96
|
-
const identity = useIdentity();
|
|
97
|
-
const space = getSpace(script);
|
|
98
|
-
const state = useToolbarState();
|
|
99
|
-
useDeployState({
|
|
100
|
-
state,
|
|
101
|
-
script
|
|
102
|
-
});
|
|
103
|
-
const extensions = useMemo2(() => script.source.target ? [
|
|
104
|
-
listener({
|
|
105
|
-
onChange: (text) => {
|
|
106
|
-
if (script.source.target?.content !== text) {
|
|
107
|
-
script.changed = true;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}),
|
|
111
|
-
createDataExtensions({
|
|
112
|
-
id: script.id,
|
|
113
|
-
text: createDocAccessor(script.source.target, [
|
|
114
|
-
"content"
|
|
115
|
-
]),
|
|
116
|
-
space,
|
|
117
|
-
identity
|
|
118
|
-
})
|
|
119
|
-
] : [], [
|
|
120
|
-
identity,
|
|
121
|
-
space,
|
|
122
|
-
script,
|
|
123
|
-
script.source.target
|
|
124
|
-
]);
|
|
125
|
-
return /* @__PURE__ */ React2.createElement(StackItem.Content, {
|
|
126
|
-
toolbar: true
|
|
127
|
-
}, /* @__PURE__ */ React2.createElement(ScriptToolbar, {
|
|
128
|
-
state,
|
|
129
|
-
role,
|
|
130
|
-
script
|
|
131
|
-
}), /* @__PURE__ */ React2.createElement(TypescriptEditor, {
|
|
132
|
-
id: script.id,
|
|
133
|
-
env,
|
|
134
|
-
initialValue: script.source?.target?.content,
|
|
135
|
-
extensions,
|
|
136
|
-
classNames: stackItemContentEditorClassNames(role),
|
|
137
|
-
inputMode: settings.editorInputMode,
|
|
138
|
-
toolbar: true
|
|
139
|
-
}));
|
|
140
|
-
} finally {
|
|
141
|
-
_effect.f();
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
var ScriptContainer_default = ScriptContainer;
|
|
145
|
-
export {
|
|
146
|
-
ScriptContainer,
|
|
147
|
-
ScriptContainer_default as default
|
|
148
|
-
};
|
|
149
|
-
//# sourceMappingURL=ScriptContainer-LRTRN7JW.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ScriptContainer.tsx", "../../../src/components/ScriptToolbar/ScriptToolbar.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { createDocAccessor, getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { useDeployState, useToolbarState } from '../hooks';\nimport { type ScriptSettings } from '../types';\n\nimport { ScriptToolbar } from './ScriptToolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\n\nexport type ScriptEditorProps = {\n role: string;\n script: ScriptType;\n settings?: ScriptSettings;\n} & Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptContainer = ({ role, script, settings = { editorInputMode: 'vscode' }, env }: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n const state = useToolbarState();\n useDeployState({ state, script });\n\n const extensions = useMemo(\n () =>\n script.source.target\n ? [\n listener({\n onChange: (text) => {\n if (script.source.target?.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: createDocAccessor(script.source.target, ['content']),\n space,\n identity,\n }),\n ]\n : [],\n [identity, space, script, script.source.target],\n );\n\n return (\n <StackItem.Content toolbar>\n <ScriptToolbar state={state} role={role} script={script} />\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n classNames={stackItemContentEditorClassNames(role)}\n inputMode={settings.editorInputMode}\n toolbar\n />\n </StackItem.Content>\n );\n};\n\nexport default ScriptContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { ElevationProvider, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport {\n type ActionGraphProps,\n MenuProvider,\n ToolbarMenu,\n createGapSeparator,\n rxFromSignal,\n useMenuActions,\n} from '@dxos/react-ui-menu';\n\nimport {\n type CreateDeployOptions,\n type ScriptToolbarState,\n createDeploy,\n createFormat,\n createTemplateSelect,\n useDeployDeps,\n} from '../../hooks';\nimport { meta } from '../../meta';\n\nexport type ScriptToolbarProps = ThemedClassName<{\n role?: string;\n script: ScriptType;\n state: ScriptToolbarState;\n}>;\n\nexport const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbarProps) => {\n const { t } = useTranslation(meta.id);\n const options = useDeployDeps({ script });\n const menu = useMemo(() => createToolbarActions({ state, script, t, ...options }), [state, script, options, t]);\n const actions = useMenuActions(menu);\n\n return (\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <MenuProvider {...actions} attendableId={fullyQualifiedId(script)}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n </ElevationProvider>\n );\n};\n\nconst createToolbarActions = ({ state, script, ...options }: CreateDeployOptions): Rx.Rx<ActionGraphProps> =>\n Rx.make((get) =>\n get(\n rxFromSignal(() => {\n const templateSelect = createTemplateSelect(script);\n const format = createFormat(script);\n const gap = createGapSeparator();\n const deploy = createDeploy({ state, script, ...options });\n return {\n nodes: [...templateSelect.nodes, ...format.nodes, ...gap.nodes, ...deploy.nodes],\n edges: [...templateSelect.edges, ...format.edges, ...gap.edges, ...deploy.edges],\n };\n }),\n ),\n );\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAIA,OAAOA,UAASC,WAAAA,gBAAe;AAG/B,SAASC,mBAAmBC,gBAAgB;AAC5C,SAASC,mBAAmB;AAC5B,SAASC,sBAAsBC,UAAUC,wCAAwC;AACjF,SAASC,iBAAiB;;;;ACN1B,SAASC,UAAU;AACnB,OAAOC,SAASC,eAAe;AAG/B,SAASC,wBAAwB;AACjC,SAASC,mBAAyCC,sBAAsB;AACxE,SAEEC,cACAC,aACAC,oBACAC,cACAC,sBACK;AAkBA,IAAMC,gBAAgB,CAAC,EAAEC,QAAQC,MAAMC,OAAOC,WAAU,MAAsB;;;AACnF,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMC,UAAUC,cAAc;MAAET;IAAO,CAAA;AACvC,UAAMU,OAAOC,QAAQ,MAAMC,qBAAqB;MAAEV;MAAOF;MAAQI;MAAG,GAAGI;IAAQ,CAAA,GAAI;MAACN;MAAOF;MAAQQ;MAASJ;KAAE;AAC9G,UAAMS,UAAUC,eAAeJ,IAAAA;AAE/B,WACE,sBAAA,cAACK,mBAAAA;MAAkBC,WAAWf,SAAS,YAAY,eAAe;OAChE,sBAAA,cAACgB,cAAAA;MAAc,GAAGJ;MAASK,cAAcC,iBAAiBnB,MAAAA;OACxD,sBAAA,cAACoB,aAAAA;MAAYjB;;;;;AAIrB;AAEA,IAAMS,uBAAuB,CAAC,EAAEV,OAAOF,QAAQ,GAAGQ,QAAAA,MAChDa,GAAGC,KAAK,CAACC,QACPA,IACEC,aAAa,MAAA;AACX,QAAMC,iBAAiBC,qBAAqB1B,MAAAA;AAC5C,QAAM2B,SAASC,aAAa5B,MAAAA;AAC5B,QAAM6B,MAAMC,mBAAAA;AACZ,QAAMC,SAASC,aAAa;IAAE9B;IAAOF;IAAQ,GAAGQ;EAAQ,CAAA;AACxD,SAAO;IACLyB,OAAO;SAAIR,eAAeQ;SAAUN,OAAOM;SAAUJ,IAAII;SAAUF,OAAOE;;IAC1EC,OAAO;SAAIT,eAAeS;SAAUP,OAAOO;SAAUL,IAAIK;SAAUH,OAAOG;;EAC5E;AACF,CAAA,CAAA,CAAA;;;ADtCC,IAAMC,kBAAkB,CAAC,EAAEC,MAAMC,QAAQC,WAAW;EAAEC,iBAAiB;AAAS,GAAGC,IAAG,MAAqB;;;AAChH,UAAMC,WAAWC,YAAAA;AACjB,UAAMC,QAAQC,SAASP,MAAAA;AACvB,UAAMQ,QAAQC,gBAAAA;AACdC,mBAAe;MAAEF;MAAOR;IAAO,CAAA;AAE/B,UAAMW,aAAaC,SACjB,MACEZ,OAAOa,OAAOC,SACV;MACEC,SAAS;QACPC,UAAU,CAACC,SAAAA;AACT,cAAIjB,OAAOa,OAAOC,QAAQI,YAAYD,MAAM;AAC1CjB,mBAAOmB,UAAU;UACnB;QACF;MACF,CAAA;MACAC,qBAAqB;QACnBC,IAAIrB,OAAOqB;QACXJ,MAAMK,kBAAkBtB,OAAOa,OAAOC,QAAQ;UAAC;SAAU;QACzDR;QACAF;MACF,CAAA;QAEF,CAAA,GACN;MAACA;MAAUE;MAAON;MAAQA,OAAOa,OAAOC;KAAO;AAGjD,WACE,gBAAAS,OAAA,cAACC,UAAUC,SAAO;MAACC,SAAAA;OACjB,gBAAAH,OAAA,cAACI,eAAAA;MAAcnB;MAAcT;MAAYC;QACzC,gBAAAuB,OAAA,cAACK,kBAAAA;MACCP,IAAIrB,OAAOqB;MACXlB;MACA0B,cAAc7B,OAAOa,QAAQC,QAAQI;MACrCP;MACAmB,YAAYC,iCAAiChC,IAAAA;MAC7CiC,WAAW/B,SAASC;MACpBwB,SAAAA;;;;;AAIR;AAEA,IAAA,0BAAe5B;",
|
|
6
|
-
"names": ["React", "useMemo", "createDocAccessor", "getSpace", "useIdentity", "createDataExtensions", "listener", "stackItemContentEditorClassNames", "StackItem", "Rx", "React", "useMemo", "fullyQualifiedId", "ElevationProvider", "useTranslation", "MenuProvider", "ToolbarMenu", "createGapSeparator", "rxFromSignal", "useMenuActions", "ScriptToolbar", "script", "role", "state", "classNames", "t", "useTranslation", "meta", "id", "options", "useDeployDeps", "menu", "useMemo", "createToolbarActions", "actions", "useMenuActions", "ElevationProvider", "elevation", "MenuProvider", "attendableId", "fullyQualifiedId", "ToolbarMenu", "Rx", "make", "get", "rxFromSignal", "templateSelect", "createTemplateSelect", "format", "createFormat", "gap", "createGapSeparator", "deploy", "createDeploy", "nodes", "edges", "ScriptContainer", "role", "script", "settings", "editorInputMode", "env", "identity", "useIdentity", "space", "getSpace", "state", "useToolbarState", "useDeployState", "extensions", "useMemo", "source", "target", "listener", "onChange", "text", "content", "changed", "createDataExtensions", "id", "createDocAccessor", "React", "StackItem", "Content", "toolbar", "ScriptToolbar", "TypescriptEditor", "initialValue", "classNames", "stackItemContentEditorClassNames", "inputMode"]
|
|
7
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
meta
|
|
3
|
-
} from "./chunk-EZVXV6DA.mjs";
|
|
4
|
-
|
|
5
|
-
// src/capabilities/app-graph-builder.ts
|
|
6
|
-
import { Rx } from "@effect-rx/rx-react";
|
|
7
|
-
import * as Function from "effect/Function";
|
|
8
|
-
import * as Option from "effect/Option";
|
|
9
|
-
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
10
|
-
import { Obj } from "@dxos/echo";
|
|
11
|
-
import { ScriptType } from "@dxos/functions";
|
|
12
|
-
import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
|
|
13
|
-
import { createExtension } from "@dxos/plugin-graph";
|
|
14
|
-
var app_graph_builder_default = ((context) => contributes(Capabilities.AppGraphBuilder, [
|
|
15
|
-
createExtension({
|
|
16
|
-
id: `${meta.id}/execute`,
|
|
17
|
-
connector: (node) => Rx.make((get) => Function.pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(ScriptType, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
|
|
18
|
-
{
|
|
19
|
-
id: [
|
|
20
|
-
node2.id,
|
|
21
|
-
"execute"
|
|
22
|
-
].join(ATTENDABLE_PATH_SEPARATOR),
|
|
23
|
-
type: PLANK_COMPANION_TYPE,
|
|
24
|
-
data: "execute",
|
|
25
|
-
properties: {
|
|
26
|
-
label: [
|
|
27
|
-
"script test label",
|
|
28
|
-
{
|
|
29
|
-
ns: meta.id
|
|
30
|
-
}
|
|
31
|
-
],
|
|
32
|
-
icon: "ph--terminal--regular",
|
|
33
|
-
disposition: "hidden"
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
]), Option.getOrElse(() => [])))
|
|
37
|
-
}),
|
|
38
|
-
createExtension({
|
|
39
|
-
id: `${meta.id}/logs`,
|
|
40
|
-
connector: (node) => Rx.make((get) => Function.pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(ScriptType, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
|
|
41
|
-
{
|
|
42
|
-
id: [
|
|
43
|
-
node2.id,
|
|
44
|
-
"logs"
|
|
45
|
-
].join(ATTENDABLE_PATH_SEPARATOR),
|
|
46
|
-
type: PLANK_COMPANION_TYPE,
|
|
47
|
-
data: "logs",
|
|
48
|
-
properties: {
|
|
49
|
-
label: [
|
|
50
|
-
"script logs label",
|
|
51
|
-
{
|
|
52
|
-
ns: meta.id
|
|
53
|
-
}
|
|
54
|
-
],
|
|
55
|
-
icon: "ph--clock-countdown--regular",
|
|
56
|
-
disposition: "hidden"
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
]), Option.getOrElse(() => [])))
|
|
60
|
-
})
|
|
61
|
-
]));
|
|
62
|
-
export {
|
|
63
|
-
app_graph_builder_default as default
|
|
64
|
-
};
|
|
65
|
-
//# sourceMappingURL=app-graph-builder-DPYULSME.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { createExtension } from '@dxos/plugin-graph';\n\nimport { meta } from '../meta';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${meta.id}/execute`,\n connector: (node) =>\n Rx.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(ScriptType, node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'execute'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'execute',\n properties: {\n label: ['script test label', { ns: meta.id }],\n icon: 'ph--terminal--regular',\n disposition: 'hidden',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n createExtension({\n id: `${meta.id}/logs`,\n connector: (node) =>\n Rx.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(ScriptType, node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'logs'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'logs',\n properties: {\n label: ['script logs label', { ns: meta.id }],\n icon: 'ph--clock-countdown--regular',\n disposition: 'hidden',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,SAASA,UAAU;AACnB,YAAYC,cAAc;AAC1B,YAAYC,YAAY;AAExB,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,WAAW;AACpB,SAASC,kBAAkB;AAC3B,SAASC,2BAA2BC,4BAA4B;AAChE,SAASC,uBAAuB;AAIhC,IAAA,6BAAe,CAACC,YACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,GAAGC,KAAK,CAACC,QACEC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUM,IAAIC,WAAWC,YAAYR,MAAKS,IAAI,IAAWC,YAAKV,KAAAA,IAAeW,YAAI,CAAA,GAC1FC,WAAI,CAACZ,UAAS;MACnB;QACEH,IAAI;UAACG,MAAKH;UAAI;UAAWgB,KAAKC,yBAAAA;QAC9BC,MAAMC;QACNP,MAAM;QACNQ,YAAY;UACVC,OAAO;YAAC;YAAqB;cAAEC,IAAIrB,KAAKD;YAAG;;UAC3CuB,MAAM;UACNC,aAAa;QACf;MACF;KACD,GACMC,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;EACA1B,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,GAAGC,KAAK,CAACC,QACEC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUM,IAAIC,WAAWC,YAAYR,MAAKS,IAAI,IAAWC,YAAKV,KAAAA,IAAeW,YAAI,CAAA,GAC1FC,WAAI,CAACZ,UAAS;MACnB;QACEH,IAAI;UAACG,MAAKH;UAAI;UAAQgB,KAAKC,yBAAAA;QAC3BC,MAAMC;QACNP,MAAM;QACNQ,YAAY;UACVC,OAAO;YAAC;YAAqB;cAAEC,IAAIrB,KAAKD;YAAG;;UAC3CuB,MAAM;UACNC,aAAa;QACf;MACF;KACD,GACMC,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
|
|
6
|
-
"names": ["Rx", "Function", "Option", "Capabilities", "contributes", "Obj", "ScriptType", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "createExtension", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "meta", "connector", "node", "Rx", "make", "get", "pipe", "flatMap", "Obj", "instanceOf", "ScriptType", "data", "some", "none", "map", "join", "ATTENDABLE_PATH_SEPARATOR", "type", "PLANK_COMPANION_TYPE", "properties", "label", "ns", "icon", "disposition", "getOrElse"]
|
|
7
|
-
}
|