windmill-components 1.677.1 → 1.695.0
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/package/components/AppConnectInner.svelte +6 -0
- package/package/components/ArgInput.svelte +2 -0
- package/package/components/AutoscalingConfigEditor.svelte +18 -4
- package/package/components/CiTestResults.svelte +64 -0
- package/package/components/CiTestResults.svelte.d.ts +7 -0
- package/package/components/CompareWorkspaces.svelte +741 -484
- package/package/components/DBManager.svelte +35 -4
- package/package/components/DBManager.svelte.d.ts +2 -0
- package/package/components/DBManagerContent.svelte +3 -1
- package/package/components/DBManagerContent.svelte.d.ts +3 -0
- package/package/components/DBManagerDrawer.svelte +145 -3
- package/package/components/DBTableEditor.svelte +14 -4
- package/package/components/DatatablePicker.svelte +2 -5
- package/package/components/DatatableSchemaDiff.svelte +531 -0
- package/package/components/DatatableSchemaDiff.svelte.d.ts +29 -0
- package/package/components/DedicatedWorkersSelector.svelte +4 -2
- package/package/components/DefaultTagsInner.svelte +42 -2
- package/package/components/DeployWorkspaceDrawer.svelte +1 -1
- package/package/components/Dev.svelte +407 -74
- package/package/components/EditableSchemaForm.svelte +4 -0
- package/package/components/Editor.svelte +1 -1
- package/package/components/EditorBar.svelte +1 -1
- package/package/components/EditorBar.svelte.d.ts +1 -1
- package/package/components/ErrorOrRecoveryHandler.svelte +2 -2
- package/package/components/FlowPreviewContent.svelte +32 -30
- package/package/components/FlowRestartButton.svelte +143 -61
- package/package/components/FlowRestartButton.svelte.d.ts +37 -0
- package/package/components/FlowStatusViewer.svelte +15 -1
- package/package/components/FlowStatusViewer.svelte.d.ts +10 -2
- package/package/components/FlowStatusViewerInner.svelte +270 -222
- package/package/components/FlowStatusViewerInner.svelte.d.ts +6 -2
- package/package/components/FlowTimeline.svelte +1 -1
- package/package/components/FolderEditor.svelte +189 -4
- package/package/components/ForkConflictModal.svelte +57 -0
- package/package/components/ForkConflictModal.svelte.d.ts +3 -0
- package/package/components/ForkWorkspaceBanner.svelte +82 -11
- package/package/components/GitRepoViewer.svelte +251 -97
- package/package/components/GlobalUserOffboardingModal.svelte +293 -0
- package/package/components/GlobalUserOffboardingModal.svelte.d.ts +10 -0
- package/package/components/InputTransformSchemaForm.svelte +1 -1
- package/package/components/InstanceSettings.svelte +58 -19
- package/package/components/Login.svelte +133 -36
- package/package/components/Login.svelte.d.ts +1 -0
- package/package/components/ModuleTest.svelte +2 -1
- package/package/components/NoMainFuncBadge.svelte +1 -1
- package/package/components/OffboardItemsBox.svelte +56 -0
- package/package/components/OffboardItemsBox.svelte.d.ts +12 -0
- package/package/components/OffboardReassignControls.svelte +47 -0
- package/package/components/OffboardReassignControls.svelte.d.ts +20 -0
- package/package/components/OffboardWorkspaceSection.svelte +110 -0
- package/package/components/OffboardWorkspaceSection.svelte.d.ts +24 -0
- package/package/components/OnBehalfOfSelector.svelte +21 -3
- package/package/components/OnBehalfOfSelector.svelte.d.ts +7 -0
- package/package/components/Path.svelte +7 -1
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/QueueAlerts.svelte +10 -10
- package/package/components/ResourcePicker.svelte +2 -2
- package/package/components/RunsPage.svelte +2 -1
- package/package/components/S3FilePickerInner.svelte +89 -89
- package/package/components/ScriptBuilder.svelte +52 -11
- package/package/components/ScriptEditor.svelte +19 -8
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ShareModal.svelte +236 -98
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SuperadminSettingsInner.svelte +362 -315
- package/package/components/UserOffboardingModal.svelte +238 -0
- package/package/components/UserOffboardingModal.svelte.d.ts +10 -0
- package/package/components/WorkspaceDeployLayout.svelte +3 -3
- package/package/components/WorkspaceDeployLayout.svelte.d.ts +1 -0
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +3 -0
- package/package/components/apps/components/helpers/executeRunnable.js +2 -1
- package/package/components/apps/editor/AppReportsDrawerInner.svelte +1 -1
- package/package/components/apps/editor/appPolicy.js +2 -1
- package/package/components/apps/editor/commonAppUtils.d.ts +3 -0
- package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +7 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +4 -2
- package/package/components/apps/editor/inlineScriptsPanel/TagPopup.svelte +49 -0
- package/package/components/apps/editor/inlineScriptsPanel/TagPopup.svelte.d.ts +9 -0
- package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +12 -0
- package/package/components/apps/inputType.d.ts +1 -0
- package/package/components/apps/sharedTypes.d.ts +1 -0
- package/package/components/assets/AssetsDropdownButton.svelte +1 -1
- package/package/components/auditLogs/AuditLogsFilters.svelte +8 -3
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +1 -1
- package/package/components/common/fileUpload/S3ArgInput.svelte +12 -10
- package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +2 -0
- package/package/components/common/table/AppRow.svelte +3 -3
- package/package/components/common/table/FlowRow.svelte +3 -3
- package/package/components/common/table/RawAppRow.svelte +4 -4
- package/package/components/common/table/Row.svelte +6 -2
- package/package/components/common/table/ScriptRow.svelte +11 -3
- package/package/components/copilot/chat/AIChatDisplay.svelte +5 -36
- package/package/components/copilot/chat/AIChatInput.svelte +56 -47
- package/package/components/copilot/chat/AIChatManager.svelte.js +50 -48
- package/package/components/copilot/chat/ContextElementBadge.svelte +6 -4
- package/package/components/copilot/chat/anthropic.d.ts +7 -1
- package/package/components/copilot/chat/anthropic.js +5 -2
- package/package/components/copilot/chat/app/core.d.ts +12 -20
- package/package/components/copilot/chat/app/core.js +230 -159
- package/package/components/copilot/chat/app/core.test.js +417 -0
- package/package/components/copilot/chat/chatLoop.d.ts +3 -0
- package/package/components/copilot/chat/chatLoop.js +13 -5
- package/package/components/copilot/chat/context.js +44 -0
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +57 -76
- package/package/components/copilot/chat/flow/core.d.ts +14 -3
- package/package/components/copilot/chat/flow/core.js +494 -116
- package/package/components/copilot/chat/flow/helperUtils.d.ts +22 -0
- package/package/components/copilot/chat/flow/helperUtils.js +100 -0
- package/package/components/copilot/chat/flow/helperUtils.test.js +231 -0
- package/package/components/copilot/chat/flow/inlineScriptsUtils.d.ts +5 -24
- package/package/components/copilot/chat/flow/inlineScriptsUtils.js +30 -55
- package/package/components/copilot/chat/flow/openFlow.json +1 -1
- package/package/components/copilot/chat/flow/openFlowZod.gen.js +24 -0
- package/package/components/copilot/chat/flow/utils.test.js +59 -0
- package/package/components/copilot/chat/openai-responses.d.ts +7 -1
- package/package/components/copilot/chat/openai-responses.js +5 -2
- package/package/components/copilot/chat/script/core.js +3 -0
- package/package/components/copilot/chat/shared.d.ts +7 -2
- package/package/components/copilot/chat/shared.js +116 -53
- package/package/components/copilot/chat/shared.test.d.ts +1 -0
- package/package/components/copilot/chat/shared.test.js +412 -0
- package/package/components/copilot/chat/tokenUsage.d.ts +23 -0
- package/package/components/copilot/chat/tokenUsage.js +42 -0
- package/package/components/copilot/chat/workspaceTools.d.ts +7 -0
- package/package/components/copilot/chat/workspaceTools.js +239 -0
- package/package/components/copilot/chat/workspaceToolsZod.gen.d.ts +1295 -0
- package/package/components/copilot/chat/workspaceToolsZod.gen.js +424 -0
- package/package/components/copilot/lib.d.ts +5 -1
- package/package/components/copilot/lib.js +24 -6
- package/package/components/copilot/lib.test.d.ts +1 -0
- package/package/components/copilot/lib.test.js +19 -0
- package/package/components/copilot/modelConfig.d.ts +3 -0
- package/package/components/copilot/modelConfig.js +10 -0
- package/package/components/deploymentRequest/DeploymentRequestPanel.svelte +337 -0
- package/package/components/deploymentRequest/DeploymentRequestPanel.svelte.d.ts +15 -0
- package/package/components/details/CopyableCodeBlock.svelte +18 -8
- package/package/components/details/CopyableCodeBlock.svelte.d.ts +1 -0
- package/package/components/flows/FlowAssetsHandler.svelte +19 -21
- package/package/components/flows/FlowProgressBar.svelte +5 -2
- package/package/components/flows/agentToolTree.d.ts +17 -0
- package/package/components/flows/agentToolTree.js +114 -0
- package/package/components/flows/agentToolTree.test.d.ts +1 -0
- package/package/components/flows/agentToolTree.test.js +86 -0
- package/package/components/flows/agentToolUtils.d.ts +0 -5
- package/package/components/flows/agentToolUtils.js +0 -49
- package/package/components/flows/content/FlowLoop.svelte +7 -4
- package/package/components/flows/content/FlowModuleComponent.svelte +636 -599
- package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte +15 -7
- package/package/components/flows/content/FlowSettings.svelte +29 -0
- package/package/components/flows/conversations/FlowChatManager.svelte.js +21 -10
- package/package/components/flows/dfs.d.ts +6 -2
- package/package/components/flows/dfs.js +19 -11
- package/package/components/flows/flowDeleteController.d.ts +32 -0
- package/package/components/flows/flowDeleteController.js +54 -0
- package/package/components/flows/flowDeleteController.test.d.ts +1 -0
- package/package/components/flows/flowDeleteController.test.js +121 -0
- package/package/components/flows/flowDeleteUtils.d.ts +48 -0
- package/package/components/flows/flowDeleteUtils.js +150 -0
- package/package/components/flows/flowDeleteUtils.test.d.ts +1 -0
- package/package/components/flows/flowDeleteUtils.test.js +131 -0
- package/package/components/flows/flowDiff.d.ts +2 -47
- package/package/components/flows/flowDiff.js +16 -293
- package/package/components/flows/flowDiff.testUtils.d.ts +8 -0
- package/package/components/flows/flowDiff.testUtils.js +26 -0
- package/package/components/flows/flowDiffManager.svelte.js +20 -75
- package/package/components/flows/flowDiffManager.svelte.test.js +103 -2
- package/package/components/flows/flowExplorer.d.ts +4 -0
- package/package/components/flows/flowExplorer.js +7 -30
- package/package/components/flows/flowState.d.ts +1 -0
- package/package/components/flows/flowStateUtils.svelte.js +11 -2
- package/package/components/flows/flowTree.d.ts +91 -0
- package/package/components/flows/flowTree.js +326 -0
- package/package/components/flows/flowTree.test.d.ts +1 -0
- package/package/components/flows/flowTree.test.js +236 -0
- package/package/components/flows/map/FlowJobsMenu.svelte +36 -30
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +73 -229
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -2
- package/package/components/flows/pickers/PickHubScriptQuick.svelte +2 -2
- package/package/components/flows/previousResults.js +13 -41
- package/package/components/flows/previousResults.test.d.ts +1 -0
- package/package/components/flows/previousResults.test.js +65 -0
- package/package/components/flows/propPicker/OutputPicker.svelte +2 -1
- package/package/components/flows/propPicker/OutputPickerInner.svelte +41 -4
- package/package/components/flows/propPicker/StepHistory.svelte +9 -1
- package/package/components/git_sync/GitSyncContext.svelte.js +11 -7
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +2 -29
- package/package/components/git_sync/PullWorkspaceModal.svelte +6 -7
- package/package/components/graph/FlowGraphV2.svelte +8 -4
- package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -0
- package/package/components/graph/groupedModulesProxy.svelte.d.ts +10 -0
- package/package/components/graph/groupedModulesProxy.svelte.js +17 -1
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte +8 -2
- package/package/components/home/HomeConnectDrawer.svelte +125 -0
- package/package/components/home/HomeConnectDrawer.svelte.d.ts +5 -0
- package/package/components/home/deploy_ui.js +1 -1
- package/package/components/icons/AzureIcon.svelte +12 -25
- package/package/components/icons/AzureIcon.svelte.d.ts +3 -2
- package/package/components/icons/GithubIcon.svelte +4 -4
- package/package/components/icons/GithubIcon.svelte.d.ts +5 -2
- package/package/components/instanceSettings/ExternalJwtTokens.svelte +85 -0
- package/package/components/instanceSettings/ExternalJwtTokens.svelte.d.ts +12 -0
- package/package/components/instanceSettings/GhesAppSettings.svelte +17 -0
- package/package/components/instanceSettings/IndexerMemorySettings.svelte +56 -29
- package/package/components/instanceSettings/SecretBackendConfig.svelte +9 -2
- package/package/components/instanceSettings.d.ts +1 -0
- package/package/components/instanceSettings.js +66 -8
- package/package/components/mcp/McpScopeSelector.svelte +119 -9
- package/package/components/mcp/McpScopeSelector.svelte.d.ts +1 -0
- package/package/components/offboarding-utils.d.ts +11 -0
- package/package/components/offboarding-utils.js +102 -0
- package/package/components/progressBar/ProgressBar.svelte +9 -5
- package/package/components/progressBar/ProgressBar.svelte.d.ts +1 -0
- package/package/components/raw_apps/DeleteAfterUsePopup.svelte +52 -0
- package/package/components/raw_apps/DeleteAfterUsePopup.svelte.d.ts +9 -0
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +5 -1
- package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -1
- package/package/components/raw_apps/RawAppEditor.svelte +186 -102
- package/package/components/raw_apps/RawAppEditorHeader.svelte +6 -1
- package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +1 -0
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +9 -3
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +2 -1
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +1 -0
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +1 -0
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +48 -5
- package/package/components/raw_apps/RawAppSharedUiDrawer.svelte +129 -0
- package/package/components/raw_apps/RawAppSharedUiDrawer.svelte.d.ts +5 -0
- package/package/components/raw_apps/RawAppSidebar.svelte +12 -0
- package/package/components/raw_apps/RawAppYamlEditor.svelte +81 -0
- package/package/components/raw_apps/RawAppYamlEditor.svelte.d.ts +20 -0
- package/package/components/raw_apps/dataTableRefUtils.d.ts +7 -0
- package/package/components/raw_apps/dataTableRefUtils.js +34 -0
- package/package/components/raw_apps/dataTableRefUtils.test.d.ts +1 -0
- package/package/components/raw_apps/dataTableRefUtils.test.js +29 -0
- package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
- package/package/components/raw_apps/rawAppPolicy.d.ts +1 -0
- package/package/components/raw_apps/rawAppPolicy.js +17 -2
- package/package/components/resources/resourceTypesFilter.d.ts +19 -0
- package/package/components/resources/resourceTypesFilter.js +21 -0
- package/package/components/restartFromStepPath.d.ts +39 -0
- package/package/components/restartFromStepPath.js +89 -0
- package/package/components/runs/JobDetailFieldConfig.d.ts +1 -0
- package/package/components/runs/JobDetailFieldConfig.js +57 -10
- package/package/components/runs/JobDetailHeader.svelte +24 -3
- package/package/components/runs/runsFilter.d.ts +1 -1
- package/package/components/schema/FlowPropertyEditor.svelte +30 -1
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +5 -2
- package/package/components/script_builder.d.ts +1 -1
- package/package/components/search/GlobalSearchModal.svelte +8 -1
- package/package/components/select/Select.svelte +3 -2
- package/package/components/select/Select.svelte.d.ts +1 -0
- package/package/components/settings/CreateToken.svelte +91 -71
- package/package/components/settings/CreateToken.svelte.d.ts +3 -0
- package/package/components/settings/EditTokenScopesModal.svelte +57 -0
- package/package/components/settings/EditTokenScopesModal.svelte.d.ts +10 -0
- package/package/components/settings/ScopesPicker.svelte +43 -0
- package/package/components/settings/ScopesPicker.svelte.d.ts +11 -0
- package/package/components/settings/TokensTable.svelte +51 -15
- package/package/components/settings/WorkspaceUserSettings.svelte +34 -28
- package/package/components/sidebar/OperatorMenu.svelte +6 -0
- package/package/components/sidebar/SidebarContent.svelte +68 -2
- package/package/components/sidebar/WorkspaceMenu.svelte +8 -4
- package/package/components/triggers/AddTriggersButton.svelte +17 -0
- package/package/components/triggers/CaptureWrapper.svelte +19 -1
- package/package/components/triggers/PermissionedAsLine.svelte +37 -3
- package/package/components/triggers/PermissionedAsLine.svelte.d.ts +6 -0
- package/package/components/triggers/TriggerEditorToolbar.svelte.d.ts +1 -1
- package/package/components/triggers/TriggerModeToggle.svelte +36 -7
- package/package/components/triggers/TriggerModeToggle.svelte.d.ts +1 -1
- package/package/components/triggers/TriggerSuspendedJobsModal.svelte.d.ts +1 -1
- package/package/components/triggers/TriggersEditor.svelte +10 -2
- package/package/components/triggers/TriggersWrapper.svelte +20 -0
- package/package/components/triggers/azure/AzureCapture.svelte +41 -0
- package/package/components/triggers/azure/AzureCapture.svelte.d.ts +44 -0
- package/package/components/triggers/azure/AzureTriggerEditor.svelte +20 -0
- package/package/components/triggers/azure/AzureTriggerEditor.svelte.d.ts +9 -0
- package/package/components/triggers/azure/AzureTriggerEditorConfigSection.svelte +301 -0
- package/package/components/triggers/azure/AzureTriggerEditorConfigSection.svelte.d.ts +16 -0
- package/package/components/triggers/azure/AzureTriggerEditorInner.svelte +422 -0
- package/package/components/triggers/azure/AzureTriggerEditorInner.svelte.d.ts +25 -0
- package/package/components/triggers/azure/AzureTriggerPanel.svelte +55 -0
- package/package/components/triggers/azure/AzureTriggerPanel.svelte.d.ts +10 -0
- package/{dist/sharedUtils/components/triggers/kafka → package/components/triggers/azure}/utils.d.ts +1 -1
- package/package/components/triggers/azure/utils.js +56 -0
- package/package/components/triggers/email/EmailTriggerEditorInner.svelte +15 -11
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +22 -14
- package/package/components/triggers/http/RouteEditorConfigSection.svelte +15 -7
- package/package/components/triggers/http/RouteEditorInner.svelte +16 -14
- package/package/components/triggers/http/RoutesGenerator.svelte +6 -1
- package/package/components/triggers/http/RoutesPanel.svelte +1 -1
- package/package/components/triggers/http/utils.d.ts +1 -1
- package/package/components/triggers/http/utils.js +2 -2
- package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +22 -14
- package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +22 -14
- package/package/components/triggers/native/NativeTriggerEditor.svelte +3 -0
- package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte +118 -0
- package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte.d.ts +17 -0
- package/package/components/triggers/native/utils.js +14 -0
- package/package/components/triggers/nats/NatsTriggerEditor.svelte.d.ts +4 -3
- package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +22 -14
- package/package/components/triggers/postgres/PostgresTriggerEditor.svelte.d.ts +4 -3
- package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +22 -14
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +22 -14
- package/package/components/triggers/sqs/SqsTriggerEditor.svelte.d.ts +4 -3
- package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +22 -14
- package/package/components/triggers/triggers.svelte.d.ts +1 -0
- package/package/components/triggers/triggers.svelte.js +24 -1
- package/package/components/triggers/utils.js +47 -6
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +22 -14
- package/package/components/triggers.d.ts +1 -1
- package/package/components/useFolderDefaultPermissionedAs.svelte.d.ts +13 -0
- package/package/components/useFolderDefaultPermissionedAs.svelte.js +63 -0
- package/package/components/useNestedRestartState.svelte.d.ts +56 -0
- package/package/components/useNestedRestartState.svelte.js +320 -0
- package/package/components/workspaceSettings/CreateWorkspace.svelte +16 -677
- package/package/components/workspaceSettings/CreateWorkspaceInner.svelte +604 -0
- package/package/components/workspaceSettings/CreateWorkspaceInner.svelte.d.ts +7 -0
- package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +27 -25
- package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +46 -8
- package/package/components/workspaceSettings/DataTableSettings.svelte +27 -22
- package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
- package/package/components/workspaceSettings/ForkDatatableSection.svelte +228 -0
- package/package/components/workspaceSettings/ForkDatatableSection.svelte.d.ts +28 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +8 -2
- package/package/components/workspaceSettings/RulesetEditor.svelte +27 -2
- package/package/components/workspaceSettings/SharedUiSettings.svelte +175 -0
- package/package/components/workspaceSettings/SharedUiSettings.svelte.d.ts +3 -0
- package/package/components/workspaceSettings/VolumeStorageSettings.svelte +1 -1
- package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +17 -1
- package/package/consts.d.ts +3 -0
- package/package/consts.js +10 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +795 -59
- package/package/gen/schemas.gen.js +801 -60
- package/package/gen/services.gen.d.ts +475 -5
- package/package/gen/services.gen.js +976 -23
- package/package/gen/types.gen.d.ts +1865 -75
- package/package/githubApp.js +5 -1
- package/package/hubPaths.json +2 -8
- package/package/infer.d.ts +1 -1
- package/package/infer.js +50 -52
- package/package/infer.svelte.js +10 -1
- package/package/mcpEndpointTools.js +60 -4
- package/package/monaco_workers/sqlTypePlugin.worker.d.ts +10 -0
- package/package/monaco_workers/sqlTypePlugin.worker.js +39 -0
- package/package/script_helpers.d.ts +8 -2
- package/package/script_helpers.js +31 -0
- package/package/stores.d.ts +11 -0
- package/package/stores.js +6 -0
- package/package/system_prompts/index.d.ts +1 -0
- package/package/system_prompts/index.js +8 -0
- package/package/system_prompts/prompts.d.ts +17 -13
- package/package/system_prompts/prompts.js +921 -61
- package/package/templates/ci_test_bun.ts.template +27 -0
- package/package/templates/ci_test_python.py.template +26 -0
- package/package/utils/forkConflict.d.ts +26 -0
- package/package/utils/forkConflict.js +56 -0
- package/package/utils_deployable.d.ts +164 -121
- package/package/utils_deployable.js +61 -11
- package/package/utils_workspace_deploy.d.ts +8 -8
- package/package/utils_workspace_deploy.js +89 -421
- package/package.json +30 -6
- package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
- package/dist/sharedUtils/base.d.ts +0 -1
- package/dist/sharedUtils/cloud.d.ts +0 -1
- package/dist/sharedUtils/common.d.ts +0 -111
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
- package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
- package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
- package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
- package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
- package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
- package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
- package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
- package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
- package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
- package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
- package/dist/sharedUtils/components/apps/types.d.ts +0 -274
- package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
- package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
- package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
- package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
- package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
- package/dist/sharedUtils/components/common/index.d.ts +0 -24
- package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
- package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
- package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
- package/dist/sharedUtils/components/ducklake.d.ts +0 -1
- package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
- package/dist/sharedUtils/components/icons/index.d.ts +0 -101
- package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
- package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
- package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
- package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
- package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
- package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
- package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
- package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
- package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers.d.ts +0 -20
- package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
- package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
- package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
- package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
- package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
- package/dist/sharedUtils/gen/core/request.d.ts +0 -29
- package/dist/sharedUtils/gen/index.d.ts +0 -6
- package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
- package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
- package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
- package/dist/sharedUtils/history.svelte.d.ts +0 -9
- package/dist/sharedUtils/hub.d.ts +0 -49
- package/dist/sharedUtils/jsr.json +0 -6
- package/dist/sharedUtils/lib.d.ts +0 -5
- package/dist/sharedUtils/lib.es.js +0 -1588
- package/dist/sharedUtils/package.json +0 -12
- package/dist/sharedUtils/schema.d.ts +0 -3
- package/dist/sharedUtils/stores.d.ts +0 -97
- package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
- package/dist/sharedUtils/toast.d.ts +0 -8
- package/dist/sharedUtils/utils.d.ts +0 -265
- package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +0 -153
- package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +0 -21
- package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +0 -136
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.d.ts +0 -15
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -107
- package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +0 -50
- package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +0 -93
- package/package/components/copilot/chat/__tests__/app/appFixtureLoader.d.ts +0 -29
- package/package/components/copilot/chat/__tests__/app/appFixtureLoader.js +0 -134
- package/package/components/copilot/chat/__tests__/app/appResultsWriter.d.ts +0 -30
- package/package/components/copilot/chat/__tests__/app/appResultsWriter.js +0 -197
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.js +0 -9
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.js +0 -5
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.d.ts +0 -12
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.js +0 -14
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.d.ts +0 -8
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.js +0 -25
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.d.ts +0 -7
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.js +0 -5
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.d.ts +0 -8
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.js +0 -5
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.tsx +0 -26
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.tsx +0 -79
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.tsx +0 -46
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.tsx +0 -56
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.tsx +0 -59
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.d.ts +0 -16
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.tsx +0 -119
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.d.ts +0 -15
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.js +0 -14
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.d.ts +0 -14
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.js +0 -5
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.js +0 -41
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.d.ts +0 -15
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.js +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.d.ts +0 -9
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.tsx +0 -51
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.d.ts +0 -8
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.tsx +0 -27
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.d.ts +0 -8
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.tsx +0 -18
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.d.ts +0 -12
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.tsx +0 -81
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.d.ts +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.js +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.d.ts +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.js +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.d.ts +0 -2
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.tsx +0 -38
- package/package/components/copilot/chat/__tests__/app/variants/baseline.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/variants/baseline.js +0 -10
- package/package/components/copilot/chat/__tests__/app/variants/index.d.ts +0 -3
- package/package/components/copilot/chat/__tests__/app/variants/index.js +0 -3
- package/package/components/copilot/chat/__tests__/app/variants/streamlined.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/variants/streamlined.js +0 -137
- package/package/components/copilot/chat/__tests__/flow/expected/test1.json +0 -134
- package/package/components/copilot/chat/__tests__/flow/expected/test2.json +0 -183
- package/package/components/copilot/chat/__tests__/flow/expected/test3.json +0 -204
- package/package/components/copilot/chat/__tests__/flow/expected/test4.json +0 -175
- package/package/components/copilot/chat/__tests__/flow/expected/test5_modify_simple.json +0 -68
- package/package/components/copilot/chat/__tests__/flow/expected/test6_modify_medium.json +0 -142
- package/package/components/copilot/chat/__tests__/flow/expected/test7_modify_complex.json +0 -136
- package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +0 -294
- package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.d.ts +0 -17
- package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +0 -49
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.d.ts +0 -12
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -79
- package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +0 -50
- package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +0 -102
- package/package/components/copilot/chat/__tests__/flow/initial/test5_initial.json +0 -53
- package/package/components/copilot/chat/__tests__/flow/initial/test6_initial.json +0 -68
- package/package/components/copilot/chat/__tests__/flow/initial/test7_initial.json +0 -120
- package/package/components/copilot/chat/__tests__/flow/variants/baseline.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/flow/variants/baseline.js +0 -10
- package/package/components/copilot/chat/__tests__/flow/variants/index.d.ts +0 -3
- package/package/components/copilot/chat/__tests__/flow/variants/index.js +0 -3
- package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.d.ts +0 -15
- package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.js +0 -388
- package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +0 -45
- package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +0 -121
- package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +0 -28
- package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +0 -96
- package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.d.ts +0 -32
- package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.js +0 -130
- package/package/components/copilot/chat/__tests__/shared/baseVariants.d.ts +0 -45
- package/package/components/copilot/chat/__tests__/shared/baseVariants.js +0 -57
- package/package/components/copilot/chat/__tests__/shared/index.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/shared/index.js +0 -5
- package/package/components/copilot/chat/__tests__/shared/types.d.ts +0 -105
- package/package/components/copilot/chat/__tests__/shared/types.js +0 -9
- package/package/components/copilot/chat/flow/openFlowZod.js +0 -24
- package/package/components/copilot/chat/flow/utils.d.ts +0 -14
- package/package/components/copilot/chat/flow/utils.js +0 -108
- package/package/components/flows/agentToolUtils.test.js +0 -55
- /package/package/components/copilot/chat/{__tests__/app/appChat.eval.test.d.ts → app/core.test.d.ts} +0 -0
- /package/package/components/copilot/chat/{__tests__/flow/flowChat.eval.test.d.ts → flow/helperUtils.test.d.ts} +0 -0
- /package/package/components/copilot/chat/flow/{openFlowZod.d.ts → openFlowZod.gen.d.ts} +0 -0
- /package/package/components/{flows/agentToolUtils.test.d.ts → copilot/chat/flow/utils.test.d.ts} +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { FlowModule, FlowValue, OpenFlow, RawScript } from '../../../../gen';
|
|
2
|
+
import type { InlineScriptSession } from './inlineScriptsUtils';
|
|
3
|
+
type FlowLike = Pick<OpenFlow, 'value'> & {
|
|
4
|
+
schema?: Record<string, any>;
|
|
5
|
+
};
|
|
6
|
+
export type FlowGroup = NonNullable<FlowValue['groups']>[number];
|
|
7
|
+
export interface FlowJsonUpdate {
|
|
8
|
+
modules?: FlowModule[];
|
|
9
|
+
schema?: Record<string, any> | null;
|
|
10
|
+
preprocessorModule?: FlowModule | null;
|
|
11
|
+
failureModule?: FlowModule | null;
|
|
12
|
+
groups?: FlowGroup[] | null;
|
|
13
|
+
}
|
|
14
|
+
export interface FlowJsonUpdateResult {
|
|
15
|
+
emptyInlineScriptModuleIds: string[];
|
|
16
|
+
}
|
|
17
|
+
export declare function updateRawScriptModuleContent(flow: FlowLike, id: string, code: string): (FlowModule & {
|
|
18
|
+
value: RawScript;
|
|
19
|
+
}) | undefined;
|
|
20
|
+
export declare function validateFlowGroups(rawGroups: unknown, moduleIds?: Set<string>): FlowGroup[] | null;
|
|
21
|
+
export declare function applyFlowJsonUpdate(flow: FlowLike, inlineScriptSession: InlineScriptSession, { modules, schema, preprocessorModule, failureModule, groups }: FlowJsonUpdate): FlowJsonUpdateResult;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { forEachFlowModule } from '../../../flows/dfs';
|
|
2
|
+
import { findModuleInFlow } from '../../../flows/flowTree';
|
|
3
|
+
export function updateRawScriptModuleContent(flow, id, code) {
|
|
4
|
+
const module = findModuleInFlow(flow.value, id);
|
|
5
|
+
if (!module || module.value.type !== 'rawscript') {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
const rawScriptModule = module;
|
|
9
|
+
rawScriptModule.value.content = code;
|
|
10
|
+
return rawScriptModule;
|
|
11
|
+
}
|
|
12
|
+
export function validateFlowGroups(rawGroups, moduleIds) {
|
|
13
|
+
if (rawGroups == null) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
if (!Array.isArray(rawGroups)) {
|
|
17
|
+
throw new Error('Flow groups must be an array');
|
|
18
|
+
}
|
|
19
|
+
return rawGroups.map((group, index) => {
|
|
20
|
+
if (!group || typeof group !== 'object' || Array.isArray(group)) {
|
|
21
|
+
throw new Error(`Invalid group at index ${index}: must be an object`);
|
|
22
|
+
}
|
|
23
|
+
const g = group;
|
|
24
|
+
if (typeof g.start_id !== 'string' || !g.start_id) {
|
|
25
|
+
throw new Error(`Invalid group at index ${index}: start_id must be a non-empty string`);
|
|
26
|
+
}
|
|
27
|
+
if (typeof g.end_id !== 'string' || !g.end_id) {
|
|
28
|
+
throw new Error(`Invalid group at index ${index}: end_id must be a non-empty string`);
|
|
29
|
+
}
|
|
30
|
+
if (moduleIds) {
|
|
31
|
+
if (!moduleIds.has(g.start_id)) {
|
|
32
|
+
throw new Error(`Invalid group at index ${index}: start_id "${g.start_id}" does not match any flow module`);
|
|
33
|
+
}
|
|
34
|
+
if (!moduleIds.has(g.end_id)) {
|
|
35
|
+
throw new Error(`Invalid group at index ${index}: end_id "${g.end_id}" does not match any flow module`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return g;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
export function applyFlowJsonUpdate(flow, inlineScriptSession, { modules, schema, preprocessorModule, failureModule, groups }) {
|
|
42
|
+
const emptyInlineScriptModuleIds = new Set();
|
|
43
|
+
if (modules !== undefined) {
|
|
44
|
+
flow.value.modules = restoreFlowModules(modules, inlineScriptSession, emptyInlineScriptModuleIds);
|
|
45
|
+
}
|
|
46
|
+
if (schema !== undefined) {
|
|
47
|
+
flow.schema = schema ?? undefined;
|
|
48
|
+
}
|
|
49
|
+
if (preprocessorModule !== undefined) {
|
|
50
|
+
flow.value.preprocessor_module =
|
|
51
|
+
preprocessorModule === null
|
|
52
|
+
? undefined
|
|
53
|
+
: restoreFlowModule(preprocessorModule, inlineScriptSession, emptyInlineScriptModuleIds);
|
|
54
|
+
}
|
|
55
|
+
if (failureModule !== undefined) {
|
|
56
|
+
flow.value.failure_module =
|
|
57
|
+
failureModule === null
|
|
58
|
+
? undefined
|
|
59
|
+
: restoreFlowModule(failureModule, inlineScriptSession, emptyInlineScriptModuleIds);
|
|
60
|
+
}
|
|
61
|
+
if (groups !== undefined) {
|
|
62
|
+
flow.value.groups = groups == null || groups.length === 0 ? undefined : groups;
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
emptyInlineScriptModuleIds: Array.from(emptyInlineScriptModuleIds)
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function restoreFlowModules(modules, inlineScriptSession, emptyInlineScriptModuleIds) {
|
|
69
|
+
const restoredModules = inlineScriptSession.restoreInlineScriptReferences(modules);
|
|
70
|
+
replaceNewInlineScriptRefsWithEmptyCode(restoredModules, emptyInlineScriptModuleIds);
|
|
71
|
+
assertResolvedInlineScripts(restoredModules, inlineScriptSession);
|
|
72
|
+
return restoredModules;
|
|
73
|
+
}
|
|
74
|
+
function restoreFlowModule(module, inlineScriptSession, emptyInlineScriptModuleIds) {
|
|
75
|
+
const [restoredModule] = inlineScriptSession.restoreInlineScriptReferences([module]);
|
|
76
|
+
replaceNewInlineScriptRefsWithEmptyCode([restoredModule], emptyInlineScriptModuleIds);
|
|
77
|
+
assertResolvedInlineScripts([restoredModule], inlineScriptSession);
|
|
78
|
+
return restoredModule;
|
|
79
|
+
}
|
|
80
|
+
function assertResolvedInlineScripts(modules, inlineScriptSession) {
|
|
81
|
+
const unresolvedRefs = inlineScriptSession.findUnresolvedInlineScriptRefs(modules);
|
|
82
|
+
if (unresolvedRefs.length > 0) {
|
|
83
|
+
throw new Error(`Unresolved inline script references: ${unresolvedRefs.join(', ')}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function replaceNewInlineScriptRefsWithEmptyCode(modules, emptyInlineScriptModuleIds) {
|
|
87
|
+
function replaceInlineScriptRefWithEmptyCode(ownerId, content) {
|
|
88
|
+
const match = content.match(/^inline_script\.(.+)$/);
|
|
89
|
+
if (!match || match[1] !== ownerId) {
|
|
90
|
+
return content;
|
|
91
|
+
}
|
|
92
|
+
emptyInlineScriptModuleIds.add(ownerId);
|
|
93
|
+
return '';
|
|
94
|
+
}
|
|
95
|
+
forEachFlowModule(modules, (module) => {
|
|
96
|
+
if (module.value.type === 'rawscript' && module.value.content) {
|
|
97
|
+
module.value.content = replaceInlineScriptRefWithEmptyCode(module.id, module.value.content);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { applyFlowJsonUpdate, updateRawScriptModuleContent, validateFlowGroups } from './helperUtils';
|
|
3
|
+
import { createInlineScriptSession } from './inlineScriptsUtils';
|
|
4
|
+
vi.mock('../shared', () => ({
|
|
5
|
+
SPECIAL_MODULE_IDS: {
|
|
6
|
+
PREPROCESSOR: 'preprocessor',
|
|
7
|
+
FAILURE: 'failure'
|
|
8
|
+
}
|
|
9
|
+
}));
|
|
10
|
+
function makeRawScriptModule(id, content) {
|
|
11
|
+
return {
|
|
12
|
+
id,
|
|
13
|
+
summary: id,
|
|
14
|
+
value: {
|
|
15
|
+
type: 'rawscript',
|
|
16
|
+
language: 'bun',
|
|
17
|
+
content,
|
|
18
|
+
input_transforms: {}
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function makeAiAgentWithTool(agentId, toolId, toolContent) {
|
|
23
|
+
return {
|
|
24
|
+
id: agentId,
|
|
25
|
+
summary: agentId,
|
|
26
|
+
value: {
|
|
27
|
+
type: 'aiagent',
|
|
28
|
+
tools: [
|
|
29
|
+
{
|
|
30
|
+
id: toolId,
|
|
31
|
+
summary: toolId,
|
|
32
|
+
value: {
|
|
33
|
+
tool_type: 'flowmodule',
|
|
34
|
+
type: 'rawscript',
|
|
35
|
+
language: 'bun',
|
|
36
|
+
content: toolContent,
|
|
37
|
+
input_transforms: {}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
input_transforms: {}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
describe('applyFlowJsonUpdate', () => {
|
|
46
|
+
it('accepts new self-referenced inline scripts and initializes them as empty', () => {
|
|
47
|
+
const flow = {
|
|
48
|
+
value: {
|
|
49
|
+
modules: [makeRawScriptModule('process_data', 'existing code')]
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const inlineScriptSession = createInlineScriptSession();
|
|
53
|
+
inlineScriptSession.set('process_data', 'existing code');
|
|
54
|
+
const result = applyFlowJsonUpdate(flow, inlineScriptSession, {
|
|
55
|
+
modules: [
|
|
56
|
+
makeRawScriptModule('process_data', 'inline_script.process_data'),
|
|
57
|
+
makeRawScriptModule('validate_data', 'inline_script.validate_data')
|
|
58
|
+
]
|
|
59
|
+
});
|
|
60
|
+
const [processDataModule, validateDataModule] = flow.value.modules;
|
|
61
|
+
expect(result.emptyInlineScriptModuleIds).toEqual(['validate_data']);
|
|
62
|
+
expect(inlineScriptSession.has('validate_data')).toBe(false);
|
|
63
|
+
expect(processDataModule?.value.type).toBe('rawscript');
|
|
64
|
+
expect(processDataModule?.value.content).toBe('existing code');
|
|
65
|
+
expect(validateDataModule?.value.type).toBe('rawscript');
|
|
66
|
+
expect(validateDataModule?.value.content).toBe('');
|
|
67
|
+
});
|
|
68
|
+
it('still rejects unresolved inline script references that do not match the module id', () => {
|
|
69
|
+
const flow = {
|
|
70
|
+
value: {
|
|
71
|
+
modules: []
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const inlineScriptSession = createInlineScriptSession();
|
|
75
|
+
expect(() => applyFlowJsonUpdate(flow, inlineScriptSession, {
|
|
76
|
+
modules: [makeRawScriptModule('validate_data', 'inline_script.other_module')]
|
|
77
|
+
})).toThrow('Unresolved inline script references: other_module');
|
|
78
|
+
});
|
|
79
|
+
it('keeps the inline script session unchanged after a failed update so retries still warn', () => {
|
|
80
|
+
const flow = {
|
|
81
|
+
value: {
|
|
82
|
+
modules: [makeRawScriptModule('process_data', 'existing code')]
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const inlineScriptSession = createInlineScriptSession();
|
|
86
|
+
inlineScriptSession.set('process_data', 'existing code');
|
|
87
|
+
expect(() => applyFlowJsonUpdate(flow, inlineScriptSession, {
|
|
88
|
+
modules: [
|
|
89
|
+
makeRawScriptModule('validate_data', 'inline_script.validate_data'),
|
|
90
|
+
makeRawScriptModule('save_results', 'inline_script.other_module')
|
|
91
|
+
]
|
|
92
|
+
})).toThrow('Unresolved inline script references: other_module');
|
|
93
|
+
expect(inlineScriptSession.getAll()).toEqual({
|
|
94
|
+
process_data: 'existing code'
|
|
95
|
+
});
|
|
96
|
+
expect(flow.value.modules[0]?.value.content).toBe('existing code');
|
|
97
|
+
const result = applyFlowJsonUpdate(flow, inlineScriptSession, {
|
|
98
|
+
modules: [
|
|
99
|
+
makeRawScriptModule('process_data', 'inline_script.process_data'),
|
|
100
|
+
makeRawScriptModule('validate_data', 'inline_script.validate_data')
|
|
101
|
+
]
|
|
102
|
+
});
|
|
103
|
+
expect(result.emptyInlineScriptModuleIds).toEqual(['validate_data']);
|
|
104
|
+
expect(inlineScriptSession.has('validate_data')).toBe(false);
|
|
105
|
+
});
|
|
106
|
+
it('persists groups passed in the flow json update', () => {
|
|
107
|
+
const flow = {
|
|
108
|
+
value: {
|
|
109
|
+
modules: [
|
|
110
|
+
makeRawScriptModule('fetch_data', 'existing code'),
|
|
111
|
+
makeRawScriptModule('process_data', 'existing code')
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
const inlineScriptSession = createInlineScriptSession();
|
|
116
|
+
inlineScriptSession.set('fetch_data', 'existing code');
|
|
117
|
+
inlineScriptSession.set('process_data', 'existing code');
|
|
118
|
+
applyFlowJsonUpdate(flow, inlineScriptSession, {
|
|
119
|
+
groups: [
|
|
120
|
+
{
|
|
121
|
+
summary: 'Data Ingestion',
|
|
122
|
+
note: 'Fetches and processes data',
|
|
123
|
+
start_id: 'fetch_data',
|
|
124
|
+
end_id: 'process_data'
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
});
|
|
128
|
+
expect(flow.value.groups).toEqual([
|
|
129
|
+
{
|
|
130
|
+
summary: 'Data Ingestion',
|
|
131
|
+
note: 'Fetches and processes data',
|
|
132
|
+
start_id: 'fetch_data',
|
|
133
|
+
end_id: 'process_data'
|
|
134
|
+
}
|
|
135
|
+
]);
|
|
136
|
+
});
|
|
137
|
+
it('clears groups when an empty array is passed', () => {
|
|
138
|
+
const flow = {
|
|
139
|
+
value: {
|
|
140
|
+
modules: [],
|
|
141
|
+
groups: [
|
|
142
|
+
{
|
|
143
|
+
summary: 'existing',
|
|
144
|
+
start_id: 'a',
|
|
145
|
+
end_id: 'b'
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
const inlineScriptSession = createInlineScriptSession();
|
|
151
|
+
applyFlowJsonUpdate(flow, inlineScriptSession, { groups: [] });
|
|
152
|
+
expect(flow.value.groups).toBeUndefined();
|
|
153
|
+
});
|
|
154
|
+
it('clears groups when null is passed', () => {
|
|
155
|
+
const flow = {
|
|
156
|
+
value: {
|
|
157
|
+
modules: [],
|
|
158
|
+
groups: [
|
|
159
|
+
{
|
|
160
|
+
summary: 'existing',
|
|
161
|
+
start_id: 'a',
|
|
162
|
+
end_id: 'b'
|
|
163
|
+
}
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
const inlineScriptSession = createInlineScriptSession();
|
|
168
|
+
applyFlowJsonUpdate(flow, inlineScriptSession, { groups: null });
|
|
169
|
+
expect(flow.value.groups).toBeUndefined();
|
|
170
|
+
});
|
|
171
|
+
it('leaves groups untouched when not provided in the update', () => {
|
|
172
|
+
const existingGroups = [{ summary: 'existing', start_id: 'a', end_id: 'b' }];
|
|
173
|
+
const flow = {
|
|
174
|
+
value: {
|
|
175
|
+
modules: [makeRawScriptModule('a', 'existing code')],
|
|
176
|
+
groups: existingGroups
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
const inlineScriptSession = createInlineScriptSession();
|
|
180
|
+
inlineScriptSession.set('a', 'existing code');
|
|
181
|
+
applyFlowJsonUpdate(flow, inlineScriptSession, {
|
|
182
|
+
modules: [makeRawScriptModule('a', 'inline_script.a')]
|
|
183
|
+
});
|
|
184
|
+
expect(flow.value.groups).toEqual(existingGroups);
|
|
185
|
+
});
|
|
186
|
+
it('updates ai agent rawscript tools in place when changing module code', () => {
|
|
187
|
+
const flow = {
|
|
188
|
+
value: {
|
|
189
|
+
modules: [makeAiAgentWithTool('agent', 'sum', '')]
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
const updatedModule = updateRawScriptModuleContent(flow, 'sum', 'export async function main(numbers: number[]) { return 0 }');
|
|
193
|
+
expect(updatedModule?.value.content).toBe('export async function main(numbers: number[]) { return 0 }');
|
|
194
|
+
expect(flow.value.modules[0].value.tools[0].value.content).toBe('export async function main(numbers: number[]) { return 0 }');
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
describe('validateFlowGroups', () => {
|
|
198
|
+
it('returns null for null input', () => {
|
|
199
|
+
expect(validateFlowGroups(null)).toBeNull();
|
|
200
|
+
expect(validateFlowGroups(undefined)).toBeNull();
|
|
201
|
+
});
|
|
202
|
+
it('rejects non-array input', () => {
|
|
203
|
+
expect(() => validateFlowGroups({})).toThrow('Flow groups must be an array');
|
|
204
|
+
expect(() => validateFlowGroups('not an array')).toThrow('Flow groups must be an array');
|
|
205
|
+
});
|
|
206
|
+
it('rejects a group that is not an object', () => {
|
|
207
|
+
expect(() => validateFlowGroups(['nope'])).toThrow('Invalid group at index 0: must be an object');
|
|
208
|
+
});
|
|
209
|
+
it('rejects a group with a missing or non-string start_id', () => {
|
|
210
|
+
expect(() => validateFlowGroups([{ end_id: 'b' }])).toThrow('Invalid group at index 0: start_id must be a non-empty string');
|
|
211
|
+
expect(() => validateFlowGroups([{ start_id: '', end_id: 'b' }])).toThrow('Invalid group at index 0: start_id must be a non-empty string');
|
|
212
|
+
expect(() => validateFlowGroups([{ start_id: 42, end_id: 'b' }])).toThrow('Invalid group at index 0: start_id must be a non-empty string');
|
|
213
|
+
});
|
|
214
|
+
it('rejects a group with a missing end_id', () => {
|
|
215
|
+
expect(() => validateFlowGroups([{ start_id: 'a' }])).toThrow('Invalid group at index 0: end_id must be a non-empty string');
|
|
216
|
+
});
|
|
217
|
+
it('accepts a valid group with no moduleIds set', () => {
|
|
218
|
+
const result = validateFlowGroups([{ summary: 'G', start_id: 'a', end_id: 'b' }]);
|
|
219
|
+
expect(result).toEqual([{ summary: 'G', start_id: 'a', end_id: 'b' }]);
|
|
220
|
+
});
|
|
221
|
+
it('rejects start_id or end_id that are not in the moduleIds set', () => {
|
|
222
|
+
const moduleIds = new Set(['a', 'b']);
|
|
223
|
+
expect(() => validateFlowGroups([{ start_id: 'missing', end_id: 'b' }], moduleIds)).toThrow('Invalid group at index 0: start_id "missing" does not match any flow module');
|
|
224
|
+
expect(() => validateFlowGroups([{ start_id: 'a', end_id: 'missing' }], moduleIds)).toThrow('Invalid group at index 0: end_id "missing" does not match any flow module');
|
|
225
|
+
});
|
|
226
|
+
it('accepts groups whose ids are all in the moduleIds set', () => {
|
|
227
|
+
const moduleIds = new Set(['a', 'b', 'c']);
|
|
228
|
+
const result = validateFlowGroups([{ start_id: 'a', end_id: 'c', summary: 'G' }], moduleIds);
|
|
229
|
+
expect(result).toEqual([{ start_id: 'a', end_id: 'c', summary: 'G' }]);
|
|
230
|
+
});
|
|
231
|
+
});
|
|
@@ -1,31 +1,12 @@
|
|
|
1
1
|
import type { FlowModule } from '../../../../gen';
|
|
2
|
-
|
|
3
|
-
* Storage for inline scripts extracted from flow modules.
|
|
4
|
-
* Maps module IDs to their rawscript content for token-efficient transmission to AI.
|
|
5
|
-
*/
|
|
6
|
-
declare class InlineScriptStore {
|
|
7
|
-
private scripts;
|
|
2
|
+
export interface InlineScriptSession {
|
|
8
3
|
clear(): void;
|
|
9
4
|
set(moduleId: string, content: string): void;
|
|
10
5
|
get(moduleId: string): string | undefined;
|
|
11
6
|
has(moduleId: string): boolean;
|
|
12
7
|
getAll(): Record<string, string>;
|
|
8
|
+
extractAndReplaceInlineScripts(modules: FlowModule[]): FlowModule[];
|
|
9
|
+
restoreInlineScriptReferences(modules: FlowModule[]): FlowModule[];
|
|
10
|
+
findUnresolvedInlineScriptRefs(modules: FlowModule[]): string[];
|
|
13
11
|
}
|
|
14
|
-
export declare
|
|
15
|
-
/**
|
|
16
|
-
* Recursively extracts all rawscript content from flow modules and stores them.
|
|
17
|
-
* Replaces the content with references like "inline_script.{module_id}".
|
|
18
|
-
*/
|
|
19
|
-
export declare function extractAndReplaceInlineScripts(modules: FlowModule[]): FlowModule[];
|
|
20
|
-
/**
|
|
21
|
-
* Recursively restores inline script references back to their full content.
|
|
22
|
-
* If content matches pattern "inline_script.{id}", looks up and restores the original.
|
|
23
|
-
* If content doesn't match (new/modified script), keeps it as-is.
|
|
24
|
-
*/
|
|
25
|
-
export declare function restoreInlineScriptReferences(modules: FlowModule[]): FlowModule[];
|
|
26
|
-
/**
|
|
27
|
-
* Recursively finds any unresolved inline script references in flow modules.
|
|
28
|
-
* Returns array of module IDs that still have `inline_script.{id}` patterns.
|
|
29
|
-
*/
|
|
30
|
-
export declare function findUnresolvedInlineScriptRefs(modules: FlowModule[]): string[];
|
|
31
|
-
export {};
|
|
12
|
+
export declare function createInlineScriptSession(): InlineScriptSession;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Storage for inline scripts extracted from flow modules.
|
|
3
|
-
* Maps module IDs to their rawscript content for token-efficient transmission to AI.
|
|
4
|
-
*/
|
|
5
|
-
class InlineScriptStore {
|
|
1
|
+
class DefaultInlineScriptSession {
|
|
6
2
|
scripts = new Map();
|
|
7
3
|
clear() {
|
|
8
4
|
this.scripts.clear();
|
|
@@ -19,68 +15,69 @@ class InlineScriptStore {
|
|
|
19
15
|
getAll() {
|
|
20
16
|
return Object.fromEntries(this.scripts.entries());
|
|
21
17
|
}
|
|
18
|
+
extractAndReplaceInlineScripts(modules) {
|
|
19
|
+
return extractAndReplaceInlineScripts(modules, this);
|
|
20
|
+
}
|
|
21
|
+
restoreInlineScriptReferences(modules) {
|
|
22
|
+
return restoreInlineScriptReferences(modules, this);
|
|
23
|
+
}
|
|
24
|
+
findUnresolvedInlineScriptRefs(modules) {
|
|
25
|
+
return findUnresolvedInlineScriptRefs(modules);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export function createInlineScriptSession() {
|
|
29
|
+
return new DefaultInlineScriptSession();
|
|
22
30
|
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Recursively extracts all rawscript content from flow modules and stores them.
|
|
26
|
-
* Replaces the content with references like "inline_script.{module_id}".
|
|
27
|
-
*/
|
|
28
|
-
export function extractAndReplaceInlineScripts(modules) {
|
|
31
|
+
function extractAndReplaceInlineScripts(modules, session) {
|
|
29
32
|
if (!modules || !Array.isArray(modules)) {
|
|
30
33
|
return [];
|
|
31
34
|
}
|
|
32
35
|
return modules.map((module) => {
|
|
33
36
|
const newModule = { ...module };
|
|
34
37
|
if (newModule.value.type === 'rawscript' && newModule.value.content) {
|
|
35
|
-
|
|
36
|
-
inlineScriptStore.set(module.id, newModule.value.content);
|
|
37
|
-
// Replace with reference
|
|
38
|
+
session.set(module.id, newModule.value.content);
|
|
38
39
|
newModule.value = {
|
|
39
40
|
...newModule.value,
|
|
40
41
|
content: `inline_script.${module.id}`
|
|
41
42
|
};
|
|
42
43
|
}
|
|
43
44
|
else if (newModule.value.type === 'forloopflow' || newModule.value.type === 'whileloopflow') {
|
|
44
|
-
// Recursively process nested modules in loops
|
|
45
45
|
if (newModule.value.modules) {
|
|
46
46
|
newModule.value = {
|
|
47
47
|
...newModule.value,
|
|
48
|
-
modules: extractAndReplaceInlineScripts(newModule.value.modules)
|
|
48
|
+
modules: extractAndReplaceInlineScripts(newModule.value.modules, session)
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
else if (newModule.value.type === 'branchone') {
|
|
53
|
-
// Process branches and default modules
|
|
54
53
|
if (newModule.value.branches) {
|
|
55
54
|
newModule.value = {
|
|
56
55
|
...newModule.value,
|
|
57
56
|
branches: newModule.value.branches.map((branch) => ({
|
|
58
57
|
...branch,
|
|
59
|
-
modules: branch.modules ? extractAndReplaceInlineScripts(branch.modules) : []
|
|
58
|
+
modules: branch.modules ? extractAndReplaceInlineScripts(branch.modules, session) : []
|
|
60
59
|
}))
|
|
61
60
|
};
|
|
62
61
|
}
|
|
63
62
|
if (newModule.value.default) {
|
|
64
63
|
newModule.value = {
|
|
65
64
|
...newModule.value,
|
|
66
|
-
default: extractAndReplaceInlineScripts(newModule.value.default)
|
|
65
|
+
default: extractAndReplaceInlineScripts(newModule.value.default, session)
|
|
67
66
|
};
|
|
68
67
|
}
|
|
69
68
|
}
|
|
70
69
|
else if (newModule.value.type === 'branchall') {
|
|
71
|
-
// Process all branches
|
|
72
70
|
if (newModule.value.branches) {
|
|
73
71
|
newModule.value = {
|
|
74
72
|
...newModule.value,
|
|
75
73
|
branches: newModule.value.branches.map((branch) => ({
|
|
76
74
|
...branch,
|
|
77
|
-
modules: branch.modules ? extractAndReplaceInlineScripts(branch.modules) : []
|
|
75
|
+
modules: branch.modules ? extractAndReplaceInlineScripts(branch.modules, session) : []
|
|
78
76
|
}))
|
|
79
77
|
};
|
|
80
78
|
}
|
|
81
79
|
}
|
|
82
80
|
else if (newModule.value.type === 'aiagent') {
|
|
83
|
-
// Process AI agent tools
|
|
84
81
|
if (newModule.value.tools) {
|
|
85
82
|
newModule.value = {
|
|
86
83
|
...newModule.value,
|
|
@@ -92,7 +89,7 @@ export function extractAndReplaceInlineScripts(modules) {
|
|
|
92
89
|
tool.value.type === 'rawscript' &&
|
|
93
90
|
'content' in tool.value &&
|
|
94
91
|
tool.value.content) {
|
|
95
|
-
|
|
92
|
+
session.set(tool.id, tool.value.content);
|
|
96
93
|
return {
|
|
97
94
|
...tool,
|
|
98
95
|
value: {
|
|
@@ -109,73 +106,58 @@ export function extractAndReplaceInlineScripts(modules) {
|
|
|
109
106
|
return newModule;
|
|
110
107
|
});
|
|
111
108
|
}
|
|
112
|
-
|
|
113
|
-
* Recursively restores inline script references back to their full content.
|
|
114
|
-
* If content matches pattern "inline_script.{id}", looks up and restores the original.
|
|
115
|
-
* If content doesn't match (new/modified script), keeps it as-is.
|
|
116
|
-
*/
|
|
117
|
-
export function restoreInlineScriptReferences(modules) {
|
|
109
|
+
function restoreInlineScriptReferences(modules, session) {
|
|
118
110
|
return modules.map((module) => {
|
|
119
111
|
const newModule = { ...module };
|
|
120
112
|
if (newModule.value.type === 'rawscript' && newModule.value.content) {
|
|
121
|
-
const
|
|
122
|
-
// Check if it's a reference
|
|
123
|
-
const match = content.match(/^inline_script\.(.+)$/);
|
|
113
|
+
const match = newModule.value.content.match(/^inline_script\.(.+)$/);
|
|
124
114
|
if (match) {
|
|
125
|
-
const
|
|
126
|
-
const storedContent = inlineScriptStore.get(moduleId);
|
|
115
|
+
const storedContent = session.get(match[1]);
|
|
127
116
|
if (storedContent !== undefined) {
|
|
128
|
-
// Restore original content
|
|
129
117
|
newModule.value = {
|
|
130
118
|
...newModule.value,
|
|
131
119
|
content: storedContent
|
|
132
120
|
};
|
|
133
121
|
}
|
|
134
|
-
// If not found in store, keep the reference as-is (shouldn't happen normally)
|
|
135
122
|
}
|
|
136
|
-
// If not a reference, it's new/modified content - keep as-is
|
|
137
123
|
}
|
|
138
124
|
else if (newModule.value.type === 'forloopflow' || newModule.value.type === 'whileloopflow') {
|
|
139
|
-
// Recursively process nested modules in loops
|
|
140
125
|
if (newModule.value.modules) {
|
|
141
126
|
newModule.value = {
|
|
142
127
|
...newModule.value,
|
|
143
|
-
modules: restoreInlineScriptReferences(newModule.value.modules)
|
|
128
|
+
modules: restoreInlineScriptReferences(newModule.value.modules, session)
|
|
144
129
|
};
|
|
145
130
|
}
|
|
146
131
|
}
|
|
147
132
|
else if (newModule.value.type === 'branchone') {
|
|
148
|
-
// Process branches and default modules
|
|
149
133
|
if (newModule.value.branches) {
|
|
150
134
|
newModule.value = {
|
|
151
135
|
...newModule.value,
|
|
152
136
|
branches: newModule.value.branches.map((branch) => ({
|
|
153
137
|
...branch,
|
|
154
|
-
modules: branch.modules ? restoreInlineScriptReferences(branch.modules) : []
|
|
138
|
+
modules: branch.modules ? restoreInlineScriptReferences(branch.modules, session) : []
|
|
155
139
|
}))
|
|
156
140
|
};
|
|
157
141
|
}
|
|
158
142
|
if (newModule.value.default) {
|
|
159
143
|
newModule.value = {
|
|
160
144
|
...newModule.value,
|
|
161
|
-
default: restoreInlineScriptReferences(newModule.value.default)
|
|
145
|
+
default: restoreInlineScriptReferences(newModule.value.default, session)
|
|
162
146
|
};
|
|
163
147
|
}
|
|
164
148
|
}
|
|
165
149
|
else if (newModule.value.type === 'branchall') {
|
|
166
|
-
// Process all branches
|
|
167
150
|
if (newModule.value.branches) {
|
|
168
151
|
newModule.value = {
|
|
169
152
|
...newModule.value,
|
|
170
153
|
branches: newModule.value.branches.map((branch) => ({
|
|
171
154
|
...branch,
|
|
172
|
-
modules: branch.modules ? restoreInlineScriptReferences(branch.modules) : []
|
|
155
|
+
modules: branch.modules ? restoreInlineScriptReferences(branch.modules, session) : []
|
|
173
156
|
}))
|
|
174
157
|
};
|
|
175
158
|
}
|
|
176
159
|
}
|
|
177
160
|
else if (newModule.value.type === 'aiagent') {
|
|
178
|
-
// Process AI agent tools
|
|
179
161
|
if (newModule.value.tools) {
|
|
180
162
|
newModule.value = {
|
|
181
163
|
...newModule.value,
|
|
@@ -187,11 +169,9 @@ export function restoreInlineScriptReferences(modules) {
|
|
|
187
169
|
tool.value.type === 'rawscript' &&
|
|
188
170
|
'content' in tool.value &&
|
|
189
171
|
tool.value.content) {
|
|
190
|
-
const
|
|
191
|
-
const match = content.match(/^inline_script\.(.+)$/);
|
|
172
|
+
const match = tool.value.content.match(/^inline_script\.(.+)$/);
|
|
192
173
|
if (match) {
|
|
193
|
-
const
|
|
194
|
-
const storedContent = inlineScriptStore.get(toolId);
|
|
174
|
+
const storedContent = session.get(match[1]);
|
|
195
175
|
if (storedContent !== undefined) {
|
|
196
176
|
return {
|
|
197
177
|
...tool,
|
|
@@ -211,11 +191,7 @@ export function restoreInlineScriptReferences(modules) {
|
|
|
211
191
|
return newModule;
|
|
212
192
|
});
|
|
213
193
|
}
|
|
214
|
-
|
|
215
|
-
* Recursively finds any unresolved inline script references in flow modules.
|
|
216
|
-
* Returns array of module IDs that still have `inline_script.{id}` patterns.
|
|
217
|
-
*/
|
|
218
|
-
export function findUnresolvedInlineScriptRefs(modules) {
|
|
194
|
+
function findUnresolvedInlineScriptRefs(modules) {
|
|
219
195
|
const unresolvedRefs = [];
|
|
220
196
|
function checkModule(module) {
|
|
221
197
|
if (module.value.type === 'rawscript' && module.value.content) {
|
|
@@ -247,7 +223,6 @@ export function findUnresolvedInlineScriptRefs(modules) {
|
|
|
247
223
|
}
|
|
248
224
|
}
|
|
249
225
|
else if (module.value.type === 'aiagent') {
|
|
250
|
-
// Check AI agent tools
|
|
251
226
|
if (module.value.tools) {
|
|
252
227
|
for (const tool of module.value.tools) {
|
|
253
228
|
if (tool.value &&
|