windmill-components 1.677.1 → 1.687.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/CiTestResults.svelte +64 -0
- package/package/components/CiTestResults.svelte.d.ts +7 -0
- package/package/components/CompareWorkspaces.svelte +626 -418
- 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 +20 -3
- 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/FlowStatusViewerInner.svelte +269 -220
- package/package/components/FlowTimeline.svelte +1 -1
- package/package/components/FolderEditor.svelte +189 -4
- package/package/components/ForkWorkspaceBanner.svelte +82 -11
- package/package/components/GlobalUserOffboardingModal.svelte +293 -0
- package/package/components/GlobalUserOffboardingModal.svelte.d.ts +10 -0
- package/package/components/InstanceSettings.svelte +22 -3
- package/package/components/Login.svelte +22 -10
- 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/QueueAlerts.svelte +10 -10
- package/package/components/ResourcePicker.svelte +2 -2
- package/package/components/ScriptBuilder.svelte +52 -11
- package/package/components/ScriptEditor.svelte +1 -3
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ShareModal.svelte +236 -98
- 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/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +4 -2
- package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +12 -0
- package/package/components/assets/AssetsDropdownButton.svelte +1 -1
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +1 -1
- 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/AIChatManager.svelte.js +2 -2
- 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.js +129 -1
- package/package/components/copilot/chat/app/core.test.js +192 -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/flow/FlowAIChat.svelte +55 -76
- package/package/components/copilot/chat/flow/core.d.ts +13 -3
- package/package/components/copilot/chat/flow/core.js +467 -116
- package/package/components/copilot/chat/flow/helperUtils.d.ts +19 -0
- package/package/components/copilot/chat/flow/helperUtils.js +68 -0
- package/package/components/copilot/chat/flow/helperUtils.test.js +116 -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/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/shared.d.ts +1 -2
- package/package/components/copilot/chat/shared.js +94 -52
- package/package/components/copilot/chat/tokenUsage.d.ts +23 -0
- package/package/components/copilot/chat/tokenUsage.js +42 -0
- package/package/components/copilot/lib.d.ts +5 -1
- package/package/components/copilot/lib.js +21 -5
- 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/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/FlowModuleDeleteAfterUse.svelte +15 -7
- package/package/components/flows/content/FlowSettings.svelte +29 -0
- 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 +6 -1
- 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 +70 -227
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +0 -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 -5
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +2 -29
- package/package/components/git_sync/PullWorkspaceModal.svelte +6 -7
- package/package/components/graph/FlowGraphV2.svelte +2 -2
- package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -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 +5 -2
- package/package/components/home/HomeConnectDrawer.svelte +125 -0
- package/package/components/home/HomeConnectDrawer.svelte.d.ts +5 -0
- 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 +42 -8
- package/package/components/offboarding-utils.d.ts +11 -0
- package/package/components/offboarding-utils.js +100 -0
- package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -1
- package/package/components/raw_apps/RawAppEditor.svelte +27 -0
- 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/RawAppYamlEditor.svelte +81 -0
- package/package/components/raw_apps/RawAppYamlEditor.svelte.d.ts +20 -0
- package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
- package/package/components/runs/runsFilter.d.ts +1 -1
- package/package/components/script_builder.d.ts +1 -1
- package/package/components/select/Select.svelte +2 -1
- package/package/components/select/Select.svelte.d.ts +1 -0
- package/package/components/settings/CreateToken.svelte +113 -64
- package/package/components/settings/CreateToken.svelte.d.ts +3 -0
- package/package/components/settings/WorkspaceUserSettings.svelte +34 -28
- package/package/components/sidebar/SidebarContent.svelte +58 -2
- package/package/components/sidebar/WorkspaceMenu.svelte +8 -4
- package/package/components/triggers/AddTriggersButton.svelte +11 -0
- package/package/components/triggers/PermissionedAsLine.svelte +37 -3
- package/package/components/triggers/PermissionedAsLine.svelte.d.ts +6 -0
- package/package/components/triggers/TriggersEditor.svelte +5 -1
- package/package/components/triggers/TriggersWrapper.svelte +10 -0
- package/package/components/triggers/email/EmailTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/http/RouteEditorConfigSection.svelte +15 -7
- package/package/components/triggers/http/RouteEditorInner.svelte +14 -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 +13 -11
- package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +13 -11
- 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 +13 -11
- package/package/components/triggers/postgres/PostgresTriggerEditor.svelte.d.ts +4 -3
- package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +13 -11
- package/package/components/triggers/sqs/SqsTriggerEditor.svelte.d.ts +4 -3
- package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/triggers.svelte.js +1 -0
- package/package/components/triggers/utils.js +27 -6
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +13 -11
- 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/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/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 +485 -19
- package/package/gen/schemas.gen.js +489 -20
- package/package/gen/services.gen.d.ts +229 -2
- package/package/gen/services.gen.js +463 -1
- package/package/gen/types.gen.d.ts +866 -29
- package/package/githubApp.js +5 -1
- package/package/hubPaths.json +1 -4
- package/package/infer.js +13 -1
- package/package/infer.svelte.js +10 -1
- 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 +14 -0
- package/package/stores.d.ts +4 -0
- package/package/stores.js +1 -0
- package/package/system_prompts/prompts.d.ts +4 -3
- package/package/system_prompts/prompts.js +270 -20
- package/package/templates/ci_test_bun.ts.template +19 -0
- package/package/templates/ci_test_python.py.template +18 -0
- package/package/utils_workspace_deploy.d.ts +8 -8
- package/package/utils_workspace_deploy.js +86 -420
- package/package.json +3 -3
- 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/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/{flows/agentToolUtils.test.d.ts → copilot/chat/flow/utils.test.d.ts} +0 -0
package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.tsx
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import React, { useState, useEffect } from 'react'
|
|
2
|
-
import { backend } from 'wmill'
|
|
3
|
-
import { ProductList } from './components/ProductList'
|
|
4
|
-
import { Cart } from './components/Cart'
|
|
5
|
-
|
|
6
|
-
export interface Product {
|
|
7
|
-
id: string
|
|
8
|
-
name: string
|
|
9
|
-
price: number
|
|
10
|
-
image: string
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface CartItem {
|
|
14
|
-
product: Product
|
|
15
|
-
quantity: number
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const App = () => {
|
|
19
|
-
const [products, setProducts] = useState<Product[]>([])
|
|
20
|
-
const [cartItems, setCartItems] = useState<CartItem[]>([])
|
|
21
|
-
const [total, setTotal] = useState(0)
|
|
22
|
-
const [loading, setLoading] = useState(true)
|
|
23
|
-
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
loadProducts()
|
|
26
|
-
}, [])
|
|
27
|
-
|
|
28
|
-
useEffect(() => {
|
|
29
|
-
updateTotal()
|
|
30
|
-
}, [cartItems])
|
|
31
|
-
|
|
32
|
-
const loadProducts = async () => {
|
|
33
|
-
setLoading(true)
|
|
34
|
-
const data = await backend.getProducts()
|
|
35
|
-
setProducts(data)
|
|
36
|
-
setLoading(false)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const updateTotal = async () => {
|
|
40
|
-
if (cartItems.length === 0) {
|
|
41
|
-
setTotal(0)
|
|
42
|
-
return
|
|
43
|
-
}
|
|
44
|
-
const newTotal = await backend.calculateTotal({ items: cartItems })
|
|
45
|
-
setTotal(newTotal)
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const handleAddToCart = async (product: Product) => {
|
|
49
|
-
const updatedCart = await backend.addToCart({
|
|
50
|
-
cart: cartItems,
|
|
51
|
-
product
|
|
52
|
-
})
|
|
53
|
-
setCartItems(updatedCart)
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const handleRemoveFromCart = async (productId: string) => {
|
|
57
|
-
const updatedCart = await backend.removeFromCart({
|
|
58
|
-
cart: cartItems,
|
|
59
|
-
productId
|
|
60
|
-
})
|
|
61
|
-
setCartItems(updatedCart)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (loading) {
|
|
65
|
-
return <div className="p-8 text-center">Loading products...</div>
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return (
|
|
69
|
-
<div className="flex h-screen">
|
|
70
|
-
<div className="flex-1 p-6 overflow-auto">
|
|
71
|
-
<h1 className="text-2xl font-bold mb-6">Shop</h1>
|
|
72
|
-
<ProductList products={products} onAddToCart={handleAddToCart} />
|
|
73
|
-
</div>
|
|
74
|
-
<div className="w-80 border-l bg-gray-50 p-6">
|
|
75
|
-
<Cart items={cartItems} total={total} onRemoveItem={handleRemoveFromCart} />
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
78
|
-
)
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export default App
|
package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.tsx
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import React, { useState } from 'react'
|
|
2
|
-
import { backend } from 'wmill'
|
|
3
|
-
|
|
4
|
-
const CounterApp = () => {
|
|
5
|
-
const [count, setCount] = useState(0)
|
|
6
|
-
|
|
7
|
-
const increment = async () => {
|
|
8
|
-
const newCount = await backend.incrementCounter({ currentCount: count })
|
|
9
|
-
setCount(newCount)
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const decrement = async () => {
|
|
13
|
-
const newCount = await backend.decrementCounter({ currentCount: count })
|
|
14
|
-
setCount(newCount)
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return (
|
|
18
|
-
<div className="p-4">
|
|
19
|
-
<h1 className="text-2xl font-bold mb-4">Counter: {count}</h1>
|
|
20
|
-
<div className="flex gap-2">
|
|
21
|
-
<button
|
|
22
|
-
onClick={decrement}
|
|
23
|
-
className="px-4 py-2 bg-red-500 text-white rounded hover:bg-red-600"
|
|
24
|
-
>
|
|
25
|
-
Decrement
|
|
26
|
-
</button>
|
|
27
|
-
<button
|
|
28
|
-
onClick={increment}
|
|
29
|
-
className="px-4 py-2 bg-green-500 text-white rounded hover:bg-green-600"
|
|
30
|
-
>
|
|
31
|
-
Increment
|
|
32
|
-
</button>
|
|
33
|
-
</div>
|
|
34
|
-
</div>
|
|
35
|
-
)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export default CounterApp
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { VariantConfig } from '../../shared';
|
|
2
|
-
/**
|
|
3
|
-
* Baseline variant - uses the production system prompt and all tools.
|
|
4
|
-
* This is the default configuration that matches the actual app chat implementation.
|
|
5
|
-
*/
|
|
6
|
-
export declare const BASELINE_VARIANT: VariantConfig;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Baseline variant - uses the production system prompt and all tools.
|
|
3
|
-
* This is the default configuration that matches the actual app chat implementation.
|
|
4
|
-
*/
|
|
5
|
-
export const BASELINE_VARIANT = {
|
|
6
|
-
name: 'baseline',
|
|
7
|
-
description: 'Production configuration with default system prompt and all tools',
|
|
8
|
-
systemPrompt: { type: 'default' },
|
|
9
|
-
tools: { type: 'default' }
|
|
10
|
-
};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { VariantConfig } from '../../shared';
|
|
2
|
-
/**
|
|
3
|
-
* Streamlined variant - removes batch-fetch tools and uses simplified instructions.
|
|
4
|
-
* Forces the model to read individual files before making changes.
|
|
5
|
-
*/
|
|
6
|
-
export declare const STREAMLINED_VARIANT: VariantConfig;
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { getAppTools } from '../../../app/core';
|
|
2
|
-
// Tool names to remove (batch-fetch tools)
|
|
3
|
-
const TOOLS_TO_REMOVE = ['get_files', 'get_frontend_files', 'get_backend_runnables'];
|
|
4
|
-
/**
|
|
5
|
-
* Build the streamlined tools by filtering out batch-fetch tools.
|
|
6
|
-
*/
|
|
7
|
-
function buildStreamlinedTools() {
|
|
8
|
-
const defaultTools = getAppTools();
|
|
9
|
-
return defaultTools.filter((t) => !TOOLS_TO_REMOVE.includes(t.def.function.name));
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Streamlined system prompt - simplified instructions focused on:
|
|
13
|
-
* 1. Reading relevant files first
|
|
14
|
-
* 2. Making changes with appropriate tools
|
|
15
|
-
* 3. Using lint at the end to fix errors
|
|
16
|
-
*/
|
|
17
|
-
const STREAMLINED_SYSTEM_PROMPT = `You are a helpful assistant that creates and edits apps on the Windmill platform. Apps are defined as a collection of files that contains both the frontend and the backend.
|
|
18
|
-
|
|
19
|
-
## App Structure
|
|
20
|
-
|
|
21
|
-
### Frontend
|
|
22
|
-
- The frontend is bundled using esbuild with entrypoint \`index.tsx\`
|
|
23
|
-
- Frontend files are managed separately from backend runnables
|
|
24
|
-
- The \`wmill.d.ts\` file is generated automatically from the backend runnables shape
|
|
25
|
-
|
|
26
|
-
### Backend
|
|
27
|
-
Backend runnables can be of different types:
|
|
28
|
-
- **inline**: Custom code written directly in the app (TypeScript/Bun or Python)
|
|
29
|
-
- **script**: Reference to a workspace script by path
|
|
30
|
-
- **flow**: Reference to a workspace flow by path
|
|
31
|
-
- **hubscript**: Reference to a hub script by path
|
|
32
|
-
|
|
33
|
-
Frontend calls backend using \`await backend.<runnable_key>(args...)\`.
|
|
34
|
-
|
|
35
|
-
For inline scripts, the code must have a \`main\` function as its entrypoint.
|
|
36
|
-
|
|
37
|
-
## Available Tools
|
|
38
|
-
|
|
39
|
-
### File Management
|
|
40
|
-
- \`list_frontend_files()\`: List all frontend file paths (use this first to see what exists)
|
|
41
|
-
- \`get_frontend_file(path)\`: Get content of a specific frontend file
|
|
42
|
-
- \`set_frontend_file(path, content)\`: Create or update a frontend file. Returns lint diagnostics.
|
|
43
|
-
- \`delete_frontend_file(path)\`: Delete a frontend file
|
|
44
|
-
- \`list_backend_runnables()\`: List all backend runnable keys and names (use this first to see what exists)
|
|
45
|
-
- \`get_backend_runnable(key)\`: Get full configuration of a specific backend runnable
|
|
46
|
-
- \`set_backend_runnable(key, name, type, ...)\`: Create or update a backend runnable. Returns lint diagnostics.
|
|
47
|
-
- \`delete_backend_runnable(key)\`: Delete a backend runnable
|
|
48
|
-
|
|
49
|
-
### Linting
|
|
50
|
-
- \`lint()\`: Lint all files. Returns errors/warnings grouped by frontend/backend.
|
|
51
|
-
|
|
52
|
-
### Discovery
|
|
53
|
-
- \`search_workspace(query, type)\`: Search workspace scripts and flows
|
|
54
|
-
- \`search_hub_scripts(query)\`: Search hub scripts
|
|
55
|
-
|
|
56
|
-
## Backend Runnable Configuration
|
|
57
|
-
|
|
58
|
-
When creating a backend runnable with \`set_backend_runnable\`:
|
|
59
|
-
|
|
60
|
-
1. **For inline scripts** (type: "inline"):
|
|
61
|
-
\`\`\`
|
|
62
|
-
{
|
|
63
|
-
key: "myFunction",
|
|
64
|
-
name: "Does something useful",
|
|
65
|
-
type: "inline",
|
|
66
|
-
inlineScript: {
|
|
67
|
-
language: "bun", // or "python3"
|
|
68
|
-
content: "export async function main(arg1: string) { return result; }"
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
\`\`\`
|
|
72
|
-
|
|
73
|
-
2. **For workspace scripts** (type: "script"):
|
|
74
|
-
\`\`\`
|
|
75
|
-
{
|
|
76
|
-
key: "sendEmail",
|
|
77
|
-
name: "Send email via SMTP",
|
|
78
|
-
type: "script",
|
|
79
|
-
path: "f/folder/send_email",
|
|
80
|
-
staticInputs: { smtp_server: "mail.example.com" } // optional pre-filled inputs
|
|
81
|
-
}
|
|
82
|
-
\`\`\`
|
|
83
|
-
|
|
84
|
-
3. **For workspace flows** (type: "flow"):
|
|
85
|
-
\`\`\`
|
|
86
|
-
{
|
|
87
|
-
key: "processOrder",
|
|
88
|
-
name: "Process customer order",
|
|
89
|
-
type: "flow",
|
|
90
|
-
path: "f/folder/process_order_flow"
|
|
91
|
-
}
|
|
92
|
-
\`\`\`
|
|
93
|
-
|
|
94
|
-
4. **For hub scripts** (type: "hubscript"):
|
|
95
|
-
\`\`\`
|
|
96
|
-
{
|
|
97
|
-
key: "slackMessage",
|
|
98
|
-
name: "Send Slack message",
|
|
99
|
-
type: "hubscript",
|
|
100
|
-
path: "hub/123/slack/send_message"
|
|
101
|
-
}
|
|
102
|
-
\`\`\`
|
|
103
|
-
|
|
104
|
-
## Instructions
|
|
105
|
-
|
|
106
|
-
1. Start by reading relevant files to understand the current state
|
|
107
|
-
2. Make changes using the appropriate tools
|
|
108
|
-
3. Use \`lint()\` at the end to check for and fix any errors
|
|
109
|
-
|
|
110
|
-
Windmill expects all backend runnable calls to use an object parameter structure. For example for:
|
|
111
|
-
\`\`\`typescript
|
|
112
|
-
export async function main(arg1: string, arg2: string, arg3: number, arg4: { field1: string, field2: number }) {
|
|
113
|
-
...
|
|
114
|
-
}
|
|
115
|
-
\`\`\`
|
|
116
|
-
|
|
117
|
-
You would call it like this:
|
|
118
|
-
\`\`\`typescript
|
|
119
|
-
await backend.myFunction({ arg1: 'value1', arg2: 'value2', arg3: 3, arg4: { field1: 'value1', field2: 2 } })
|
|
120
|
-
\`\`\`
|
|
121
|
-
If the runnable has no parameters, you can call it without an object:
|
|
122
|
-
\`\`\`typescript
|
|
123
|
-
await backend.myFunction()
|
|
124
|
-
\`\`\`
|
|
125
|
-
|
|
126
|
-
When you are using the windmill-client, do not forget that as id for variables or resources, those are path that are of the form 'u/<user>/<name>' or 'f/<folder>/<name>'.
|
|
127
|
-
`;
|
|
128
|
-
/**
|
|
129
|
-
* Streamlined variant - removes batch-fetch tools and uses simplified instructions.
|
|
130
|
-
* Forces the model to read individual files before making changes.
|
|
131
|
-
*/
|
|
132
|
-
export const STREAMLINED_VARIANT = {
|
|
133
|
-
name: 'streamlined',
|
|
134
|
-
description: 'No batch tools - forces reading individual files before making changes',
|
|
135
|
-
systemPrompt: { type: 'custom', content: STREAMLINED_SYSTEM_PROMPT },
|
|
136
|
-
tools: { type: 'custom', tools: buildStreamlinedTools() }
|
|
137
|
-
};
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"summary": "",
|
|
3
|
-
"value": {
|
|
4
|
-
"modules": [
|
|
5
|
-
{
|
|
6
|
-
"id": "fetch_users",
|
|
7
|
-
"value": {
|
|
8
|
-
"type": "rawscript",
|
|
9
|
-
"language": "bun",
|
|
10
|
-
"content": "export async function main() {\n return [\n { id: 1, name: \"Alice\", role: \"admin\", active: true },\n { id: 2, name: \"Bob\", role: \"user\", active: false },\n { id: 4, name: \"Dana\", role: \"moderator\", active: true },\n { id: 3, name: \"Charlie\", role: \"user\", active: true },\n ];\n}",
|
|
11
|
-
"input_transforms": {}
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"id": "filter_active_users",
|
|
16
|
-
"value": {
|
|
17
|
-
"type": "rawscript",
|
|
18
|
-
"language": "bun",
|
|
19
|
-
"content": "export async function main(users) {\n return users.filter(user => user.active);\n}",
|
|
20
|
-
"input_transforms": {
|
|
21
|
-
"users": {
|
|
22
|
-
"type": "javascript",
|
|
23
|
-
"expr": "results.fetch_users"
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"id": "loop_users",
|
|
30
|
-
"value": {
|
|
31
|
-
"type": "forloopflow",
|
|
32
|
-
"iterator": {
|
|
33
|
-
"type": "javascript",
|
|
34
|
-
"expr": "results.filter_active_users"
|
|
35
|
-
},
|
|
36
|
-
"skip_failures": false,
|
|
37
|
-
"modules": [
|
|
38
|
-
{
|
|
39
|
-
"id": "branch_user_role",
|
|
40
|
-
"value": {
|
|
41
|
-
"type": "branchone",
|
|
42
|
-
"branches": [
|
|
43
|
-
{
|
|
44
|
-
"summary": "Admin Action",
|
|
45
|
-
"expr": "flow_input.iter.value.role === 'admin'",
|
|
46
|
-
"modules": [
|
|
47
|
-
{
|
|
48
|
-
"id": "admin_action",
|
|
49
|
-
"value": {
|
|
50
|
-
"type": "rawscript",
|
|
51
|
-
"language": "bun",
|
|
52
|
-
"content": "export async function main(user) {\n return `Admin action taken for ${user.name}`;\n}",
|
|
53
|
-
"input_transforms": {
|
|
54
|
-
"user": {
|
|
55
|
-
"type": "javascript",
|
|
56
|
-
"expr": "flow_input.iter.value"
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
]
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
"summary": "User Action",
|
|
65
|
-
"expr": "flow_input.iter.value.role === 'user'",
|
|
66
|
-
"modules": [
|
|
67
|
-
{
|
|
68
|
-
"id": "user_action",
|
|
69
|
-
"value": {
|
|
70
|
-
"type": "rawscript",
|
|
71
|
-
"language": "bun",
|
|
72
|
-
"content": "export async function main(user) {\n return `User action taken for ${user.name}`;\n}",
|
|
73
|
-
"input_transforms": {
|
|
74
|
-
"user": {
|
|
75
|
-
"type": "javascript",
|
|
76
|
-
"expr": "flow_input.iter.value"
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
]
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
"summary": "Moderator Action",
|
|
85
|
-
"expr": "flow_input.iter.value.role === 'moderator'",
|
|
86
|
-
"modules": [
|
|
87
|
-
{
|
|
88
|
-
"id": "moderator_action",
|
|
89
|
-
"value": {
|
|
90
|
-
"type": "rawscript",
|
|
91
|
-
"language": "bun",
|
|
92
|
-
"content": "export async function main(user) { return `Moderator action taken for ${user.name}`; }",
|
|
93
|
-
"input_transforms": {
|
|
94
|
-
"user": {
|
|
95
|
-
"type": "javascript",
|
|
96
|
-
"expr": "flow_input.iter.value"
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
]
|
|
102
|
-
}
|
|
103
|
-
],
|
|
104
|
-
"default": []
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
],
|
|
108
|
-
"parallel": false,
|
|
109
|
-
"squash": false
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"id": "return_actions",
|
|
114
|
-
"value": {
|
|
115
|
-
"type": "rawscript",
|
|
116
|
-
"language": "bun",
|
|
117
|
-
"content": "export async function main(actions) {\n return actions;\n}",
|
|
118
|
-
"input_transforms": {
|
|
119
|
-
"actions": {
|
|
120
|
-
"type": "javascript",
|
|
121
|
-
"expr": "results.loop_users"
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
]
|
|
127
|
-
},
|
|
128
|
-
"schema": {
|
|
129
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
130
|
-
"properties": {},
|
|
131
|
-
"required": [],
|
|
132
|
-
"type": "object"
|
|
133
|
-
}
|
|
134
|
-
}
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"summary": "E-commerce Order Processing Pipeline",
|
|
3
|
-
"value": {
|
|
4
|
-
"modules": [
|
|
5
|
-
{
|
|
6
|
-
"id": "validate_order",
|
|
7
|
-
"value": {
|
|
8
|
-
"type": "rawscript",
|
|
9
|
-
"language": "bun",
|
|
10
|
-
"content": "export async function main(items: { name: string; price: number; quantity: number }[]) {\n const invalid = items.filter(item => item.price <= 0 || item.quantity <= 0);\n return { valid: invalid.length === 0, invalidItems: invalid };\n}",
|
|
11
|
-
"input_transforms": {
|
|
12
|
-
"items": {
|
|
13
|
-
"type": "javascript",
|
|
14
|
-
"expr": "flow_input.items"
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"id": "calculate_total",
|
|
21
|
-
"value": {
|
|
22
|
-
"type": "rawscript",
|
|
23
|
-
"language": "bun",
|
|
24
|
-
"content": "export async function main(items: { name: string; price: number; quantity: number }[]) {\n const subtotal = items.reduce((sum, item) => sum + item.price * item.quantity, 0);\n const tax = subtotal * 0.08;\n return { subtotal, tax, total: subtotal + tax };\n}",
|
|
25
|
-
"input_transforms": {
|
|
26
|
-
"items": {
|
|
27
|
-
"type": "javascript",
|
|
28
|
-
"expr": "flow_input.items"
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"id": "check_inventory",
|
|
35
|
-
"value": {
|
|
36
|
-
"type": "forloopflow",
|
|
37
|
-
"iterator": {
|
|
38
|
-
"type": "javascript",
|
|
39
|
-
"expr": "flow_input.items"
|
|
40
|
-
},
|
|
41
|
-
"skip_failures": false,
|
|
42
|
-
"parallel": true,
|
|
43
|
-
"modules": [
|
|
44
|
-
{
|
|
45
|
-
"id": "check_item_stock",
|
|
46
|
-
"value": {
|
|
47
|
-
"type": "rawscript",
|
|
48
|
-
"language": "bun",
|
|
49
|
-
"content": "export async function main(item: { name: string; quantity: number }) {\n // Mock inventory check - items with even quantity are in stock\n const inStock = item.quantity % 2 === 0 || item.quantity < 5;\n return { name: item.name, requested: item.quantity, inStock, available: inStock ? item.quantity : 0 };\n}",
|
|
50
|
-
"input_transforms": {
|
|
51
|
-
"item": {
|
|
52
|
-
"type": "javascript",
|
|
53
|
-
"expr": "flow_input.iter.value"
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
]
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
"id": "process_inventory_result",
|
|
63
|
-
"value": {
|
|
64
|
-
"type": "branchone",
|
|
65
|
-
"branches": [
|
|
66
|
-
{
|
|
67
|
-
"summary": "All items in stock - create shipment",
|
|
68
|
-
"expr": "results.check_inventory.every(item => item.inStock)",
|
|
69
|
-
"modules": [
|
|
70
|
-
{
|
|
71
|
-
"id": "create_shipment",
|
|
72
|
-
"value": {
|
|
73
|
-
"type": "rawscript",
|
|
74
|
-
"language": "bun",
|
|
75
|
-
"content": "export async function main(shipping_address: string, total: number) {\n return {\n shipment_id: `SHIP-${Date.now()}`,\n status: 'created',\n address: shipping_address,\n total,\n estimated_delivery: '3-5 business days'\n };\n}",
|
|
76
|
-
"input_transforms": {
|
|
77
|
-
"shipping_address": {
|
|
78
|
-
"type": "javascript",
|
|
79
|
-
"expr": "flow_input.shipping_address"
|
|
80
|
-
},
|
|
81
|
-
"total": {
|
|
82
|
-
"type": "javascript",
|
|
83
|
-
"expr": "results.calculate_total.total"
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
]
|
|
89
|
-
}
|
|
90
|
-
],
|
|
91
|
-
"default": [
|
|
92
|
-
{
|
|
93
|
-
"id": "create_backorder",
|
|
94
|
-
"value": {
|
|
95
|
-
"type": "rawscript",
|
|
96
|
-
"language": "bun",
|
|
97
|
-
"content": "export async function main(inventory_results: { name: string; inStock: boolean }[]) {\n const outOfStock = inventory_results.filter(item => !item.inStock);\n return {\n backorder_id: `BO-${Date.now()}`,\n status: 'backorder',\n unavailable_items: outOfStock.map(item => item.name),\n message: 'Some items are out of stock. We will notify you when available.'\n };\n}",
|
|
98
|
-
"input_transforms": {
|
|
99
|
-
"inventory_results": {
|
|
100
|
-
"type": "javascript",
|
|
101
|
-
"expr": "results.check_inventory"
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
]
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
"id": "send_confirmation",
|
|
111
|
-
"value": {
|
|
112
|
-
"type": "rawscript",
|
|
113
|
-
"language": "bun",
|
|
114
|
-
"content": "export async function main(customer_email: string, order_result: any) {\n // Mock email sending\n return {\n email_sent: true,\n to: customer_email,\n subject: order_result.shipment_id ? 'Order Confirmed' : 'Order Update - Backorder',\n sent_at: new Date().toISOString()\n };\n}",
|
|
115
|
-
"input_transforms": {
|
|
116
|
-
"customer_email": {
|
|
117
|
-
"type": "javascript",
|
|
118
|
-
"expr": "flow_input.customer_email"
|
|
119
|
-
},
|
|
120
|
-
"order_result": {
|
|
121
|
-
"type": "javascript",
|
|
122
|
-
"expr": "results.process_inventory_result"
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
"id": "return_summary",
|
|
129
|
-
"value": {
|
|
130
|
-
"type": "rawscript",
|
|
131
|
-
"language": "bun",
|
|
132
|
-
"content": "export async function main(validation: any, totals: any, order_result: any, confirmation: any) {\n return {\n order_valid: validation.valid,\n totals,\n order_status: order_result.shipment_id ? 'shipped' : 'backorder',\n order_id: order_result.shipment_id || order_result.backorder_id,\n confirmation_sent: confirmation.email_sent\n };\n}",
|
|
133
|
-
"input_transforms": {
|
|
134
|
-
"validation": {
|
|
135
|
-
"type": "javascript",
|
|
136
|
-
"expr": "results.validate_order"
|
|
137
|
-
},
|
|
138
|
-
"totals": {
|
|
139
|
-
"type": "javascript",
|
|
140
|
-
"expr": "results.calculate_total"
|
|
141
|
-
},
|
|
142
|
-
"order_result": {
|
|
143
|
-
"type": "javascript",
|
|
144
|
-
"expr": "results.process_inventory_result"
|
|
145
|
-
},
|
|
146
|
-
"confirmation": {
|
|
147
|
-
"type": "javascript",
|
|
148
|
-
"expr": "results.send_confirmation"
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
]
|
|
154
|
-
},
|
|
155
|
-
"schema": {
|
|
156
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
157
|
-
"type": "object",
|
|
158
|
-
"properties": {
|
|
159
|
-
"items": {
|
|
160
|
-
"type": "array",
|
|
161
|
-
"description": "Array of order items",
|
|
162
|
-
"items": {
|
|
163
|
-
"type": "object",
|
|
164
|
-
"properties": {
|
|
165
|
-
"name": { "type": "string" },
|
|
166
|
-
"price": { "type": "number" },
|
|
167
|
-
"quantity": { "type": "integer" }
|
|
168
|
-
},
|
|
169
|
-
"required": ["name", "price", "quantity"]
|
|
170
|
-
}
|
|
171
|
-
},
|
|
172
|
-
"customer_email": {
|
|
173
|
-
"type": "string",
|
|
174
|
-
"description": "Customer email address"
|
|
175
|
-
},
|
|
176
|
-
"shipping_address": {
|
|
177
|
-
"type": "string",
|
|
178
|
-
"description": "Shipping address"
|
|
179
|
-
}
|
|
180
|
-
},
|
|
181
|
-
"required": ["items", "customer_email", "shipping_address"]
|
|
182
|
-
}
|
|
183
|
-
}
|