windmill-components 1.550.0 → 1.555.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.
Files changed (268) hide show
  1. package/package/aiStore.d.ts +13 -0
  2. package/package/aiStore.js +70 -0
  3. package/package/common.d.ts +2 -1
  4. package/package/components/AIProviderPicker.svelte +25 -8
  5. package/package/components/ArgEnum.svelte +3 -2
  6. package/package/components/ArgEnum.svelte.d.ts +1 -0
  7. package/package/components/ArgInput.svelte +235 -174
  8. package/package/components/ArgInput.svelte.d.ts +4 -1
  9. package/package/components/ArrayTypeNarrowing.svelte +38 -32
  10. package/package/components/AutoscalingEvents.svelte +21 -5
  11. package/package/components/AutoscalingEvents.svelte.d.ts +4 -18
  12. package/package/components/DateTimeInput.svelte +8 -6
  13. package/package/components/DeployButton.svelte +1 -1
  14. package/package/components/Dev.svelte +6 -4
  15. package/package/components/EditableSchemaForm.svelte +7 -6
  16. package/package/components/Editor.svelte +2 -1
  17. package/package/components/EditorSettings.svelte +5 -5
  18. package/package/components/EditorSettings.svelte.d.ts +4 -18
  19. package/package/components/FakeMonacoPlaceHolder.svelte +4 -2
  20. package/package/components/FakeMonacoPlaceHolder.svelte.d.ts +1 -0
  21. package/package/components/FieldHeader.svelte +5 -7
  22. package/package/components/FirstStepInputs.svelte +1 -1
  23. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  24. package/package/components/FlowPlugConnect.svelte +8 -2
  25. package/package/components/FlowPlugConnect.svelte.d.ts +1 -0
  26. package/package/components/FlowPreviewContent.svelte +113 -92
  27. package/package/components/FlowPreviewContent.svelte.d.ts +3 -3
  28. package/package/components/FlowStatusViewer.svelte +3 -2
  29. package/package/components/FlowStatusViewerInner.svelte +1 -1
  30. package/package/components/FolderEditor.svelte +6 -7
  31. package/package/components/GroupEditor.svelte +148 -141
  32. package/package/components/GroupEditor.svelte.d.ts +5 -4
  33. package/package/components/InputTransformForm.svelte +88 -82
  34. package/package/components/InputTransformSchemaForm.svelte +5 -4
  35. package/package/components/InstanceSetting.svelte +17 -9
  36. package/package/components/JsonEditor.svelte +18 -9
  37. package/package/components/JsonEditor.svelte.d.ts +1 -1
  38. package/package/components/JsonInputs.svelte +1 -1
  39. package/package/components/ModulePreviewForm.svelte +23 -19
  40. package/package/components/NumberTypeNarrowing.svelte +32 -16
  41. package/package/components/ObjectStoreConfigSettings.svelte +27 -19
  42. package/package/components/Path.svelte +2 -8
  43. package/package/components/Path.svelte.d.ts +1 -1
  44. package/package/components/ResourceEditor.svelte +3 -10
  45. package/package/components/ResourcePicker.svelte +85 -72
  46. package/package/components/ResourcePicker.svelte.d.ts +2 -0
  47. package/package/components/RunChart.svelte +1 -1
  48. package/package/components/RunForm.svelte +11 -7
  49. package/package/components/S3ArrayHelperButton.svelte +12 -6
  50. package/package/components/S3ArrayHelperButton.svelte.d.ts +1 -0
  51. package/package/components/S3FilePicker.svelte +1 -1
  52. package/package/components/SchemaForm.svelte +18 -10
  53. package/package/components/SchemaForm.svelte.d.ts +7 -1
  54. package/package/components/SchemaFormWithArgPicker.svelte +1 -1
  55. package/package/components/ScriptBuilder.svelte +2 -2
  56. package/package/components/ScriptEditor.svelte +4 -3
  57. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  58. package/package/components/ShareModal.svelte +4 -4
  59. package/package/components/SimpleEditor.svelte +6 -2
  60. package/package/components/SimpleEditor.svelte.d.ts +3 -0
  61. package/package/components/StringTypeNarrowing.svelte +5 -1
  62. package/package/components/SuperadminSettingsInner.svelte +3 -3
  63. package/package/components/TemplateEditor.svelte +18 -9
  64. package/package/components/Toast.svelte +2 -7
  65. package/package/components/Toast.svelte.d.ts +4 -18
  66. package/package/components/Toggle.svelte +17 -7
  67. package/package/components/ToggleHubWorkspaceQuick.svelte +3 -3
  68. package/package/components/WorkerGroup.svelte +2 -14
  69. package/package/components/apps/components/buttons/AppButton.svelte +57 -39
  70. package/package/components/apps/components/display/dbtable/InsertRow.svelte +32 -2
  71. package/package/components/apps/components/display/dbtable/queries/insert.js +2 -1
  72. package/package/components/apps/components/display/dbtable/utils.d.ts +8 -8
  73. package/package/components/apps/components/display/table/utils.js +13 -3
  74. package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -3
  75. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -1
  76. package/package/components/apps/editor/AppEditorHeader.svelte +33 -271
  77. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +233 -0
  78. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +18 -0
  79. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +47 -0
  80. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +8 -0
  81. package/package/components/apps/editor/GridEditor.svelte +7 -2
  82. package/package/components/apps/editor/appDeploy.svelte.d.ts +1 -0
  83. package/package/components/apps/editor/appDeploy.svelte.js +6 -0
  84. package/package/components/apps/editor/appUtils.d.ts +1 -0
  85. package/package/components/apps/editor/appUtils.js +30 -1
  86. package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -1
  87. package/package/components/apps/editor/component/components.d.ts +3 -3
  88. package/package/components/apps/editor/component/components.js +1 -1
  89. package/package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
  90. package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +6 -4
  91. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  92. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  93. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  94. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +58 -8
  95. package/package/components/auditLogs/AuditLogsFilters.svelte +1 -1
  96. package/package/components/common/ResizeTransitionWrapper.svelte +39 -0
  97. package/package/components/common/ResizeTransitionWrapper.svelte.d.ts +12 -0
  98. package/package/components/common/badge/CountBadge.svelte +29 -0
  99. package/package/components/common/badge/CountBadge.svelte.d.ts +8 -0
  100. package/package/components/common/button/Button.svelte +1 -0
  101. package/package/components/common/button/ConnectionButton.svelte +6 -1
  102. package/package/components/common/button/ConnectionButton.svelte.d.ts +2 -0
  103. package/package/components/common/button/RefreshButton.svelte +8 -4
  104. package/package/components/common/button/RefreshButton.svelte.d.ts +3 -0
  105. package/package/components/common/calendarPicker/CalendarPicker.svelte +1 -1
  106. package/package/components/common/fileInput/FileInput.svelte +7 -6
  107. package/package/components/common/fileUpload/S3ArgInput.svelte +11 -9
  108. package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +1 -0
  109. package/package/components/common/popup/PopupV2.svelte +6 -0
  110. package/package/components/common/toggleButton-v2/ToggleButton.svelte +17 -26
  111. package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +16 -30
  112. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
  113. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +3 -3
  114. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  115. package/package/components/copilot/CodeCompletionStatus.svelte +2 -1
  116. package/package/components/copilot/CronGen.svelte +1 -1
  117. package/package/components/copilot/FlowInlineScriptAIButton.svelte +2 -2
  118. package/package/components/copilot/IteratorGen.svelte +30 -25
  119. package/package/components/copilot/IteratorGen.svelte.d.ts +8 -7
  120. package/package/components/copilot/MetadataGen.svelte +4 -3
  121. package/package/components/copilot/PredicateGen.svelte +15 -12
  122. package/package/components/copilot/PredicateGen.svelte.d.ts +5 -4
  123. package/package/components/copilot/RegexGen.svelte +1 -1
  124. package/package/components/copilot/ScriptFix.svelte +1 -1
  125. package/package/components/copilot/ScriptGen.svelte +2 -1
  126. package/package/components/copilot/StepGenQuick.svelte +15 -16
  127. package/package/components/copilot/StepGenQuick.svelte.d.ts +14 -13
  128. package/package/components/copilot/StepInputGen.svelte +50 -36
  129. package/package/components/copilot/StepInputGen.svelte.d.ts +13 -10
  130. package/package/components/copilot/StepInputsGen.svelte +18 -19
  131. package/package/components/copilot/StepInputsGen.svelte.d.ts +4 -18
  132. package/package/components/copilot/autocomplete/Autocompletor.js +1 -1
  133. package/package/components/copilot/autocomplete/request.js +1 -1
  134. package/package/components/copilot/chat/AIChat.svelte +2 -1
  135. package/package/components/copilot/chat/AIChatManager.svelte.js +2 -1
  136. package/package/components/copilot/chat/AiChatLayout.svelte +2 -1
  137. package/package/components/copilot/chat/ProviderModelSelector.svelte +10 -9
  138. package/package/components/copilot/chat/ProviderModelSelector.svelte.d.ts +2 -17
  139. package/package/components/copilot/chat/flow/FlowAIButton.svelte +1 -1
  140. package/package/components/copilot/chat/script/core.js +2 -1
  141. package/package/components/copilot/chat/shared.js +2 -1
  142. package/package/components/copilot/lib.js +2 -1
  143. package/package/components/details/DetailPageLayout.svelte +3 -2
  144. package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
  145. package/package/components/flows/CreateActionsFlow.svelte +1 -1
  146. package/package/components/flows/FlowChatInterface.svelte +404 -0
  147. package/package/components/flows/FlowChatInterface.svelte.d.ts +19 -0
  148. package/package/components/flows/FlowChatMessage.svelte +41 -0
  149. package/package/components/flows/FlowChatMessage.svelte.d.ts +9 -0
  150. package/package/components/flows/FlowConversationsSidebar.svelte +213 -0
  151. package/package/components/flows/FlowConversationsSidebar.svelte.d.ts +15 -0
  152. package/package/components/flows/FlowEditor.svelte.d.ts +1 -1
  153. package/package/components/flows/FlowModuleIcon.svelte +10 -10
  154. package/package/components/flows/common/FlowCard.svelte +10 -2
  155. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  156. package/package/components/flows/common/FlowCardHeader.svelte +2 -1
  157. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  158. package/package/components/flows/content/DynamicInputHelpBox.svelte +4 -4
  159. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -1
  160. package/package/components/flows/content/FlowInput.svelte +381 -259
  161. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -1
  162. package/package/components/flows/content/FlowInputsQuick.svelte +55 -34
  163. package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +2 -2
  164. package/package/components/flows/content/FlowModuleComponent.svelte +5 -10
  165. package/package/components/flows/flowInfers.d.ts +60 -0
  166. package/package/components/flows/flowInfers.js +72 -66
  167. package/package/components/flows/{flowStore.d.ts → flowStore.svelte.d.ts} +1 -0
  168. package/package/components/flows/header/FlowPreviewButtons.svelte +1 -1
  169. package/package/components/flows/map/FlowErrorHandlerItem.svelte +4 -2
  170. package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
  171. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
  172. package/package/components/flows/map/FlowModuleSchemaMap.svelte +5 -2
  173. package/package/components/flows/map/FlowStickyNode.svelte +2 -2
  174. package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
  175. package/package/components/flows/map/InsertModuleButton.svelte +5 -2
  176. package/package/components/flows/map/InsertModuleButton.svelte.d.ts +4 -3
  177. package/package/components/flows/map/InsertModuleInner.svelte +3 -1
  178. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +2 -2
  179. package/package/components/flows/map/VirtualItem.svelte +1 -2
  180. package/package/components/flows/pickers/PickHubScriptQuick.svelte +8 -3
  181. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
  182. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +15 -12
  183. package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -15
  184. package/package/components/graph/FlowGraphV2.svelte +2 -1
  185. package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
  186. package/package/components/graph/graphBuilder.svelte.d.ts +2 -0
  187. package/package/components/graph/graphBuilder.svelte.js +1 -0
  188. package/package/components/graph/renderers/edges/BaseEdge.svelte +1 -0
  189. package/package/components/graph/renderers/nodes/InputNode.svelte +13 -2
  190. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +2 -27
  191. package/package/components/instanceSettings.js +17 -0
  192. package/package/components/progressBar/ProgressBar.svelte +1 -1
  193. package/package/components/raw_apps/FileEditorIcon.svelte +1 -1
  194. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +4 -18
  195. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +2 -8
  196. package/package/components/raw_apps/RawAppBackgroundRunner.svelte.d.ts +4 -18
  197. package/package/components/raw_apps/RawAppEditor.svelte +6 -7
  198. package/package/components/raw_apps/RawAppEditorHeader.svelte +48 -301
  199. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +18 -19
  200. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +10 -16
  201. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +13 -13
  202. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +8 -11
  203. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -2
  204. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +0 -1
  205. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +7 -13
  206. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +8 -8
  207. package/package/components/raw_apps/RawAppPreview.svelte +3 -7
  208. package/package/components/raw_apps/RawAppPreview.svelte.d.ts +5 -19
  209. package/package/components/raw_apps/utils.d.ts +1 -1
  210. package/package/components/raw_apps/utils.js +3 -3
  211. package/package/components/runs/RunOption.svelte +2 -2
  212. package/package/components/runs/RunsFilter.svelte +15 -12
  213. package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
  214. package/package/components/schema/EditableSchemaDrawer.svelte +19 -18
  215. package/package/components/schema/FlowPropertyEditor.svelte +9 -2
  216. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  217. package/package/components/schema/PropertyEditor.svelte +22 -26
  218. package/package/components/schema/SchemaFormDND.svelte +3 -2
  219. package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
  220. package/package/components/select/DraggableTags.svelte +2 -2
  221. package/package/components/select/MultiSelect.svelte +14 -8
  222. package/package/components/select/Select.svelte +12 -5
  223. package/package/components/select/Select.svelte.d.ts +11 -0
  224. package/package/components/select/SelectDropdown.svelte +98 -46
  225. package/package/components/select/SelectDropdown.svelte.d.ts +10 -0
  226. package/package/components/select/utils.svelte.js +2 -0
  227. package/package/components/settings/CreateToken.svelte +76 -49
  228. package/package/components/settings/WorkspaceUserSettings.svelte +20 -17
  229. package/package/components/sidebar/CriticalAlertTable.svelte +2 -1
  230. package/package/components/sidebar/Linkify.svelte +14 -0
  231. package/package/components/sidebar/Linkify.svelte.d.ts +5 -0
  232. package/package/components/sidebar/WorkspaceMenu.svelte +8 -3
  233. package/package/components/table/tableUtils.js +1 -1
  234. package/package/components/text_input/TextInput.svelte +30 -0
  235. package/package/components/text_input/TextInput.svelte.d.ts +17 -0
  236. package/package/components/triggers/TriggersEditor.svelte +11 -1
  237. package/package/components/triggers/triggers.svelte.d.ts +1 -1
  238. package/package/components/triggers/triggers.svelte.js +8 -4
  239. package/package/components/tutorials/FlowBuilderTutorialErrorHandler.svelte +2 -2
  240. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +3 -0
  241. package/package/components/tutorials/FlowBuilderTutorialSimpleFlow.svelte +49 -17
  242. package/package/components/tutorials/Tutorial.svelte +9 -0
  243. package/package/components/tutorials/Tutorial.svelte.d.ts +1 -0
  244. package/package/components/tutorials/app/AppTutorial.svelte +41 -57
  245. package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte +3 -5
  246. package/package/components/tutorials/app/ConnectionTutorial.svelte +2 -2
  247. package/package/components/tutorials/utils.js +2 -154
  248. package/package/components/vscode.js +16 -8
  249. package/package/components/workspaceSettings/AISettings.svelte +4 -3
  250. package/package/components/workspaceSettings/CreateWorkspace.svelte +2 -2
  251. package/package/components/workspaceSettings/DucklakeSettings.svelte +64 -7
  252. package/package/components/workspaceSettings/StorageSettings.svelte +24 -26
  253. package/package/editorUtils.d.ts +1 -1
  254. package/package/gen/core/OpenAPI.js +1 -1
  255. package/package/gen/schemas.gen.d.ts +82 -1
  256. package/package/gen/schemas.gen.js +82 -1
  257. package/package/gen/services.gen.d.ts +175 -1
  258. package/package/gen/services.gen.js +345 -2
  259. package/package/gen/types.gen.d.ts +1324 -549
  260. package/package/script_helpers.js +5 -5
  261. package/package/services/JobManager.js +4 -2
  262. package/package/stores.d.ts +4 -13
  263. package/package/stores.js +5 -68
  264. package/package/toast.js +2 -1
  265. package/package/utils.d.ts +1 -0
  266. package/package/utils.js +3 -0
  267. package/package.json +3 -3
  268. /package/package/components/flows/{flowStore.js → flowStore.svelte.js} +0 -0
@@ -1,33 +1,38 @@
1
- <script lang="ts">import { Check, Loader2, Wand2 } from 'lucide-svelte';
1
+ <script lang="ts" module>export function stepInputGenButtonClasses(selected) {
2
+ return twMerge('text-violet-500 dark:text-violet-400 border', selected
3
+ ? 'bg-green-50 hover:bg-green-50 dark:bg-green-400/15 dark:hover:bg-green-400/15 text-green-800 border-green-200 dark:border-green-300/60 dark:text-green-400 '
4
+ : 'hover:bg-violet-50 border-violet-100 dark:hover:bg-violet-400/15 dark:border-violet-400/20');
5
+ }
6
+ </script>
7
+
8
+ <script lang="ts">import { run } from 'svelte/legacy';
9
+ import { Check, Loader2, Wand2 } from 'lucide-svelte';
2
10
  import Button from '../common/button/Button.svelte';
3
11
  import { getNonStreamingCompletion } from './lib';
4
12
  import { sendUserToast } from '../../toast';
5
13
  import ManualPopover from '../ManualPopover.svelte';
6
- import { createEventDispatcher, getContext } from 'svelte';
14
+ import { createEventDispatcher, getContext, untrack } from 'svelte';
7
15
  import YAML from 'yaml';
8
16
  import { sliceModules } from '../flows/flowStateUtils.svelte';
9
17
  import { dfs } from '../flows/dfs';
10
18
  import { yamlStringifyExceptKeys } from './utils';
11
- import { copilotInfo, stepInputCompletionEnabled } from '../../stores';
19
+ import { stepInputCompletionEnabled } from '../../stores';
12
20
  import FlowCopilotInputsModal from './FlowCopilotInputsModal.svelte';
13
21
  import { twMerge } from 'tailwind-merge';
14
- import { createDispatcherIfMounted } from '../../createDispatcherIfMounted';
15
- let generatedContent = '';
16
- let loading = false;
17
- export let focused = false;
18
- export let arg;
19
- export let schemaProperty;
20
- export let pickableProperties = undefined;
21
- export let argName;
22
- export let showPopup;
23
- let empty = false;
24
- $: empty =
25
- Object.keys(arg ?? {}).length === 0 ||
26
- (arg.type === 'static' && !arg.value) ||
27
- (arg.type === 'javascript' && !arg.expr);
28
- let btnFocused = false;
22
+ import { copilotInfo } from '../../aiStore';
23
+ let generatedContent = $state('');
24
+ let loading = $state(false);
25
+ let { focused = false, arg, schemaProperty, pickableProperties = undefined, argName, showPopup, btnClass = '' } = $props();
26
+ let empty = $state(false);
27
+ run(() => {
28
+ empty =
29
+ Object.keys(arg ?? {}).length === 0 ||
30
+ (arg.type === 'static' && !arg.value) ||
31
+ (arg.type === 'javascript' && !arg.expr);
32
+ });
33
+ let btnFocused = $state(false);
29
34
  let abortController = new AbortController();
30
- let newFlowInput = '';
35
+ let newFlowInput = $state('');
31
36
  const { flowStore, selectedId } = getContext('FlowEditorContext');
32
37
  const { stepInputsLoading, generatedExprs } = getContext('FlowCopilotContext') || {};
33
38
  function createFlowInput() {
@@ -132,7 +137,6 @@ export function onKeyUp(event) {
132
137
  }
133
138
  }
134
139
  const dispatch = createEventDispatcher();
135
- const dispatchIfMounted = createDispatcherIfMounted(dispatch);
136
140
  function cancel() {
137
141
  abortController.abort();
138
142
  generatedContent = '';
@@ -150,16 +154,28 @@ function cancelOnOutOfFocus() {
150
154
  }
151
155
  }, 150);
152
156
  }
153
- $: if (!focused) {
154
- cancelOnOutOfFocus();
155
- }
156
- $: if ($copilotInfo.enabled && $stepInputCompletionEnabled && focused) {
157
- automaticGeneration();
158
- }
159
- $: dispatchIfMounted('showExpr', generatedContent);
160
- $: dispatchIfMounted('showExpr', $generatedExprs?.[argName] || '');
161
- let out = true; // hack to prevent regenerating answer when accepting the answer due to mouseenter on new icon
162
- let openInputsModal = false;
157
+ $effect(() => {
158
+ if (!focused) {
159
+ untrack(() => {
160
+ cancelOnOutOfFocus();
161
+ });
162
+ }
163
+ });
164
+ $effect(() => {
165
+ if ($copilotInfo.enabled && $stepInputCompletionEnabled && focused) {
166
+ untrack(() => {
167
+ automaticGeneration();
168
+ });
169
+ }
170
+ });
171
+ $effect(() => {
172
+ dispatch('showExpr', generatedContent);
173
+ });
174
+ $effect(() => {
175
+ dispatch('showExpr', $generatedExprs?.[argName] || '');
176
+ });
177
+ let out = $state(true); // hack to prevent regenerating answer when accepting the answer due to mouseenter on new icon
178
+ let openInputsModal = $state(false);
163
179
  </script>
164
180
 
165
181
  {#if $copilotInfo.enabled && $stepInputCompletionEnabled}
@@ -179,10 +195,8 @@ let openInputsModal = false;
179
195
  size="xs"
180
196
  color="light"
181
197
  btnClasses={twMerge(
182
- 'text-violet-800 dark:text-violet-400 bg-violet-100 dark:bg-gray-700 dark:hover:bg-surface-hover',
183
- !loading && generatedContent.length > 0
184
- ? 'bg-green-100 text-green-800 hover:bg-green-100 dark:text-green-400 dark:bg-green-700 dark:hover:bg-green-700'
185
- : ''
198
+ stepInputGenButtonClasses(!loading && generatedContent.length > 0),
199
+ btnClass
186
200
  )}
187
201
  on:click={() => {
188
202
  if (!loading && generatedContent.length > 0) {
@@ -227,10 +241,10 @@ let openInputsModal = false;
227
241
  {/if}
228
242
  {/if}
229
243
  </Button>
230
- <svelte:fragment slot="content">
244
+ {#snippet content()}
231
245
  <div class="text-sm text-tertiary">
232
246
  {generatedContent || $generatedExprs?.[argName]}
233
247
  </div>
234
- </svelte:fragment>
248
+ {/snippet}
235
249
  </ManualPopover>
236
250
  {/if}
@@ -1,6 +1,16 @@
1
+ export declare function stepInputGenButtonClasses(selected: boolean): string;
1
2
  import type { InputTransform } from '../../gen';
2
3
  import type { PickableProperties } from '../flows/previousResults';
3
4
  import type { SchemaProperty } from '../../common';
5
+ interface Props {
6
+ focused?: boolean;
7
+ arg: InputTransform | any;
8
+ schemaProperty: SchemaProperty;
9
+ pickableProperties?: PickableProperties | undefined;
10
+ argName: string;
11
+ showPopup: boolean;
12
+ btnClass?: string;
13
+ }
4
14
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
5
15
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
6
16
  $$bindings?: Bindings;
@@ -14,20 +24,13 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
14
24
  };
15
25
  z_$$bindings?: Bindings;
16
26
  }
17
- declare const StepInputGen: $$__sveltets_2_IsomorphicComponent<{
18
- focused?: boolean;
19
- arg: InputTransform | any;
20
- schemaProperty: SchemaProperty;
21
- pickableProperties?: PickableProperties | undefined;
22
- argName: string;
23
- showPopup: boolean;
24
- onKeyUp?: (event: KeyboardEvent) => void;
25
- }, {
27
+ declare const StepInputGen: $$__sveltets_2_IsomorphicComponent<Props, {
26
28
  setExpr: CustomEvent<any>;
29
+ showExpr: CustomEvent<any>;
27
30
  } & {
28
31
  [evt: string]: CustomEvent<any>;
29
32
  }, {}, {
30
33
  onKeyUp: (event: KeyboardEvent) => void;
31
- }, string>;
34
+ }, "">;
32
35
  type StepInputGen = InstanceType<typeof StepInputGen>;
33
36
  export default StepInputGen;
@@ -8,20 +8,20 @@ import { getNonStreamingCompletion } from './lib';
8
8
  import { sendUserToast } from '../../toast';
9
9
  import Button from '../common/button/Button.svelte';
10
10
  import { Check, ExternalLink, Loader2, Wand2 } from 'lucide-svelte';
11
- import { copilotInfo, stepInputCompletionEnabled } from '../../stores';
11
+ import { stepInputCompletionEnabled } from '../../stores';
12
+ import { copilotInfo } from '../../aiStore';
12
13
  import Popover from '../meltComponents/Popover.svelte';
13
14
  import FlowCopilotInputsModal from './FlowCopilotInputsModal.svelte';
14
15
  import { twMerge } from 'tailwind-merge';
15
- let loading = false;
16
- export let pickableProperties = undefined;
17
- export let argNames = [];
18
- export let schema = undefined;
16
+ import { stepInputGenButtonClasses } from './StepInputGen.svelte';
17
+ let loading = $state(false);
18
+ let { pickableProperties = undefined, argNames = [], schema = undefined } = $props();
19
19
  const { flowStore, selectedId } = getContext('FlowEditorContext');
20
20
  const { exprsToSet, stepInputsLoading, generatedExprs } = getContext('FlowCopilotContext') || {};
21
21
  let generatedContent = '';
22
22
  let parsedInputs = [];
23
- let newFlowInputs = [];
24
- let abortController = new AbortController();
23
+ let newFlowInputs = $state([]);
24
+ let abortController = $state(new AbortController());
25
25
  async function generateStepInputs() {
26
26
  if (Object.keys($generatedExprs || {}).length > 0 || loading) {
27
27
  return;
@@ -135,8 +135,8 @@ function applyExprs() {
135
135
  openInputsModal = true;
136
136
  }
137
137
  }
138
- let out = true; // hack to prevent regenerating answer when accepting the answer due to mouseenter on new icon
139
- let openInputsModal = false;
138
+ let out = $state(true); // hack to prevent regenerating answer when accepting the answer due to mouseenter on new icon
139
+ let openInputsModal = $state(false);
140
140
  </script>
141
141
 
142
142
  <div class="flex flex-row justify-end">
@@ -151,11 +151,9 @@ let openInputsModal = false;
151
151
  <Button
152
152
  size="xs"
153
153
  color="light"
154
+ wrapperClasses="flex-1"
154
155
  btnClasses={twMerge(
155
- 'text-violet-800 dark:text-violet-400',
156
- !loading && Object.keys($generatedExprs || {}).length > 0
157
- ? 'bg-green-100 text-green-800 hover:bg-green-100 dark:text-green-400 dark:bg-green-700 dark:hover:bg-green-700'
158
- : ''
156
+ stepInputGenButtonClasses(!loading && Object.keys($generatedExprs || {}).length > 0)
159
157
  )}
160
158
  on:mouseenter={(ev) => {
161
159
  if (out) {
@@ -192,12 +190,13 @@ let openInputsModal = false;
192
190
  floatingConfig={{
193
191
  placement: 'top-end'
194
192
  }}
193
+ class="w-full"
195
194
  >
196
- <svelte:fragment slot="trigger">
195
+ {#snippet trigger()}
197
196
  <Button
198
197
  size="xs"
199
198
  color="light"
200
- btnClasses="text-violet-800 dark:text-violet-400"
199
+ btnClasses="text-violet-800 dark:text-violet-400 border border-violet-200 hover:bg-violet-50"
201
200
  nonCaptureEvent
202
201
  startIcon={{
203
202
  icon: Wand2
@@ -205,8 +204,8 @@ let openInputsModal = false;
205
204
  >
206
205
  Fill inputs
207
206
  </Button>
208
- </svelte:fragment>
209
- <svelte:fragment slot="content" let:close>
207
+ {/snippet}
208
+ {#snippet content({ close })}
210
209
  <div class="p-4">
211
210
  <p class="text-sm">
212
211
  {#if !$copilotInfo.enabled}
@@ -223,7 +222,7 @@ let openInputsModal = false;
223
222
  <a
224
223
  href="#user-settings"
225
224
  class="inline-flex flex-row items-center gap-1"
226
- on:click={() => {
225
+ onclick={() => {
227
226
  close()
228
227
  }}
229
228
  >
@@ -232,7 +231,7 @@ let openInputsModal = false;
232
231
  {/if}
233
232
  </p>
234
233
  </div>
235
- </svelte:fragment>
234
+ {/snippet}
236
235
  </Popover>
237
236
  {/if}
238
237
  </div>
@@ -1,26 +1,12 @@
1
1
  import type { PickableProperties } from '../flows/previousResults';
2
2
  import type { Schema } from '../../common';
3
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
4
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
- $$bindings?: Bindings;
6
- } & Exports;
7
- (internal: unknown, props: Props & {
8
- $$events?: Events;
9
- $$slots?: Slots;
10
- }): Exports & {
11
- $set?: any;
12
- $on?: any;
13
- };
14
- z_$$bindings?: Bindings;
15
- }
16
- declare const StepInputsGen: $$__sveltets_2_IsomorphicComponent<{
3
+ interface Props {
17
4
  pickableProperties?: PickableProperties | undefined;
18
5
  argNames?: string[];
19
6
  schema?: Schema | {
20
7
  properties?: Record<string, any>;
21
8
  } | undefined;
22
- }, {
23
- [evt: string]: CustomEvent<any>;
24
- }, {}, {}, string>;
25
- type StepInputsGen = InstanceType<typeof StepInputsGen>;
9
+ }
10
+ declare const StepInputsGen: import("svelte").Component<Props, {}, "">;
11
+ type StepInputsGen = ReturnType<typeof StepInputsGen>;
26
12
  export default StepInputsGen;
@@ -5,7 +5,7 @@ import { autocompleteRequest } from './request';
5
5
  import { FIM_MAX_TOKENS, getModelContextWindow } from '../lib';
6
6
  import { setGlobalCSS } from '../shared';
7
7
  import { get } from 'svelte/store';
8
- import { copilotInfo } from '../../../stores';
8
+ import { copilotInfo } from '../../../aiStore';
9
9
  // max ratio of completions to context window
10
10
  const COMPLETIONS_MAX_RATIO = 0.1;
11
11
  // hard limit to max number of completions to fetch details for, to avoid performance overhead
@@ -1,9 +1,9 @@
1
- import { copilotInfo } from '../../../stores';
2
1
  import { get } from 'svelte/store';
3
2
  import { getFimCompletion } from '../lib';
4
3
  import { getLangContext } from '../chat/script/core';
5
4
  import {} from '../../../gen/types.gen';
6
5
  import { getCommentSymbol } from '../utils';
6
+ import { copilotInfo } from '../../../aiStore';
7
7
  function comment(commentSymbol, text) {
8
8
  return text
9
9
  .split('\n')
@@ -1,11 +1,12 @@
1
1
  <script lang="ts">import AIChatDisplay from './AIChatDisplay.svelte';
2
2
  import { onDestroy, untrack } from 'svelte';
3
3
  import {} from '../../../gen';
4
- import { copilotInfo, copilotSessionModel, dbSchemas, userStore, workspaceStore } from '../../../stores';
4
+ import { dbSchemas, userStore, workspaceStore } from '../../../stores';
5
5
  import { aiChatManager, AIMode } from './AIChatManager.svelte';
6
6
  import { base } from '../../../base';
7
7
  import HideButton from '../../apps/editor/settingsPanel/HideButton.svelte';
8
8
  import { SUPPORTED_CHAT_SCRIPT_LANGUAGES } from './script/core';
9
+ import { copilotInfo, copilotSessionModel } from '../../../aiStore';
9
10
  const isAdmin = $derived($userStore?.is_admin || $userStore?.is_super_admin);
10
11
  const hasCopilot = $derived($copilotInfo.enabled);
11
12
  const disabled = $derived(!hasCopilot ||
@@ -13,11 +13,12 @@ import { dfs } from '../../flows/previousResults';
13
13
  import { getStringError } from './utils';
14
14
  import { untrack } from 'svelte';
15
15
  import { get } from 'svelte/store';
16
- import { getCurrentModel, copilotInfo } from '../../../stores';
16
+ import {} from '../../../stores';
17
17
  import { askTools, prepareAskSystemMessage, prepareAskUserMessage } from './ask/core';
18
18
  import { chatState, DEFAULT_SIZE, triggerablesByAi } from './sharedChatState.svelte';
19
19
  import { prepareApiSystemMessage, prepareApiUserMessage } from './api/core';
20
20
  import { getAnthropicCompletion, parseAnthropicCompletion } from './anthropic';
21
+ import { copilotInfo, getCurrentModel } from '../../../aiStore';
21
22
  // If the estimated token usage is greater than the model context window - the threshold, we delete the oldest message
22
23
  const MAX_TOKENS_THRESHOLD_PERCENTAGE = 0.05;
23
24
  const MAX_TOKENS_HARD_LIMIT = 5000;
@@ -2,8 +2,9 @@
2
2
  import { Pane, Splitpanes } from 'svelte-splitpanes';
3
3
  import AiChat from './AIChat.svelte';
4
4
  import { zIndexes } from '../../../zIndexes';
5
- import { loadCopilot, userStore, workspaceStore } from '../../../stores';
5
+ import { userStore, workspaceStore } from '../../../stores';
6
6
  import { chatState } from './sharedChatState.svelte';
7
+ import { loadCopilot } from '../../../aiStore';
7
8
  let { noPadding: noBorder = false, isCollapsed = false, children, onMenuOpen, disableAi } = $props();
8
9
  $effect(() => {
9
10
  if (disableAi) {
@@ -1,20 +1,21 @@
1
1
  <script lang="ts">import { ChevronDown } from 'lucide-svelte';
2
2
  import Popover from '../../meltComponents/Popover.svelte';
3
- import { COPILOT_SESSION_MODEL_SETTING_NAME, COPILOT_SESSION_PROVIDER_SETTING_NAME, copilotInfo, copilotSessionModel } from '../../../stores';
3
+ import { COPILOT_SESSION_MODEL_SETTING_NAME, COPILOT_SESSION_PROVIDER_SETTING_NAME } from '../../../stores';
4
4
  import { storeLocalSetting } from '../../../utils';
5
5
  import { twMerge } from 'tailwind-merge';
6
- $: providerModel = $copilotSessionModel ??
6
+ import { copilotInfo, copilotSessionModel } from '../../../aiStore';
7
+ let providerModel = $derived($copilotSessionModel ??
7
8
  $copilotInfo.defaultModel ??
8
9
  $copilotInfo.aiModels[0] ?? {
9
10
  model: 'No model',
10
11
  provider: 'No provider'
11
- };
12
- $: multipleModels = $copilotInfo.aiModels.length > 1;
12
+ });
13
+ let multipleModels = $derived($copilotInfo.aiModels.length > 1);
13
14
  </script>
14
15
 
15
16
  <div class="min-w-0">
16
17
  <Popover disablePopup={!multipleModels} class="max-w-full">
17
- <svelte:fragment slot="trigger">
18
+ {#snippet trigger()}
18
19
  <div class="text-tertiary text-xs flex flex-row items-center font-normal gap-0.5">
19
20
  <span class={`truncate ${multipleModels ? '' : 'pr-2'}`}>{providerModel.model}</span>
20
21
  {#if multipleModels}
@@ -23,8 +24,8 @@ $: multipleModels = $copilotInfo.aiModels.length > 1;
23
24
  </div>
24
25
  {/if}
25
26
  </div>
26
- </svelte:fragment>
27
- <svelte:fragment slot="content" let:close>
27
+ {/snippet}
28
+ {#snippet content({ close })}
28
29
  <div class="flex flex-col gap-1 p-1 min-w-24">
29
30
  {#each $copilotInfo.aiModels as providerModel}
30
31
  <button
@@ -32,7 +33,7 @@ $: multipleModels = $copilotInfo.aiModels.length > 1;
32
33
  'text-left text-xs hover:bg-surface-hover rounded-md p-1 font-normal',
33
34
  providerModel.model === $copilotSessionModel?.model && 'bg-surface-hover'
34
35
  )}
35
- on:click={() => {
36
+ onclick={() => {
36
37
  $copilotSessionModel = providerModel
37
38
  storeLocalSetting(COPILOT_SESSION_MODEL_SETTING_NAME, providerModel.model)
38
39
  storeLocalSetting(COPILOT_SESSION_PROVIDER_SETTING_NAME, providerModel.provider)
@@ -43,6 +44,6 @@ $: multipleModels = $copilotInfo.aiModels.length > 1;
43
44
  </button>
44
45
  {/each}
45
46
  </div>
46
- </svelte:fragment>
47
+ {/snippet}
47
48
  </Popover>
48
49
  </div>
@@ -1,18 +1,3 @@
1
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports & {
9
- $set?: any;
10
- $on?: any;
11
- };
12
- z_$$bindings?: Bindings;
13
- }
14
- declare const ProviderModelSelector: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
- [evt: string]: CustomEvent<any>;
16
- }, {}, {}, string>;
17
- type ProviderModelSelector = InstanceType<typeof ProviderModelSelector>;
1
+ declare const ProviderModelSelector: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type ProviderModelSelector = ReturnType<typeof ProviderModelSelector>;
18
3
  export default ProviderModelSelector;
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">import { base } from '../../../../base';
2
- import { copilotInfo } from '../../../../stores';
2
+ import { copilotInfo } from '../../../../aiStore';
3
3
  import Popover from '../../../meltComponents/Popover.svelte';
4
4
  import DarkPopover from '../../../Popover.svelte';
5
5
  import { ExternalLink } from 'lucide-svelte';
@@ -2,12 +2,13 @@ import { ResourceService, JobService } from '../../../../gen/services.gen';
2
2
  import { capitalize, isObject, toCamel } from '../../../../utils';
3
3
  import { get } from 'svelte/store';
4
4
  import { compile, phpCompile, pythonCompile } from '../../utils';
5
- import { dbSchemas, getCurrentModel } from '../../../../stores';
5
+ import { dbSchemas } from '../../../../stores';
6
6
  import { getDbSchemas } from '../../../apps/components/display/dbtable/utils';
7
7
  import { PYTHON_PREPROCESSOR_MODULE_CODE, TS_PREPROCESSOR_MODULE_CODE } from '../../../../script_helpers';
8
8
  import { createSearchHubScriptsTool, executeTestRun, buildTestRunArgs, buildContextString } from '../shared';
9
9
  import { setupTypeAcquisition } from '../../../../ata';
10
10
  import { getModelContextWindow } from '../../lib';
11
+ import { getCurrentModel } from '../../../../aiStore';
11
12
  // Score threshold for npm packages search filtering
12
13
  const SCORE_THRESHOLD = 1000;
13
14
  // percentage of the context window for documentation of npm packages
@@ -1,10 +1,11 @@
1
1
  import { get } from 'svelte/store';
2
- import { workspaceStore, getCurrentModel } from '../../../stores';
2
+ import { workspaceStore } from '../../../stores';
3
3
  import { zodToJsonSchema } from 'zod-to-json-schema';
4
4
  import { z } from 'zod';
5
5
  import { ScriptService, JobService } from '../../../gen';
6
6
  import { scriptLangToEditorLang } from '../../../scripts';
7
7
  import YAML from 'yaml';
8
+ import { getCurrentModel } from '../../../aiStore';
8
9
  export const extractAllModules = (modules) => {
9
10
  return modules.flatMap((m) => {
10
11
  if (m.value.type === 'forloopflow' || m.value.type === 'whileloopflow') {
@@ -1,4 +1,4 @@
1
- import { copilotInfo, getCurrentModel, workspaceStore } from '../../stores';
1
+ import { workspaceStore } from '../../stores';
2
2
  import { buildClientSchema, printSchema } from 'graphql';
3
3
  import OpenAI from 'openai';
4
4
  import Anthropic from '@anthropic-ai/sdk';
@@ -9,6 +9,7 @@ import { formatResourceTypes } from './utils';
9
9
  import { z } from 'zod';
10
10
  import { processToolCall } from './chat/shared';
11
11
  import { generateRandomString } from '../../utils';
12
+ import { copilotInfo, getCurrentModel } from '../../aiStore';
12
13
  export const SUPPORTED_LANGUAGES = new Set(Object.keys(GEN_CONFIG.prompts));
13
14
  const OPENAI_MODELS = [
14
15
  'gpt-5',
@@ -1,17 +1,18 @@
1
1
  <script lang="ts">import { Tabs, Tab, TabContent } from '../common';
2
2
  import { Pane, Splitpanes } from 'svelte-splitpanes';
3
3
  import DetailPageDetailPanel from './DetailPageDetailPanel.svelte';
4
- let { isOperator = false, flow_json = undefined, selected = $bindable(), header, form, scriptRender: script, save_inputs, flow_step, triggers } = $props();
4
+ let { isOperator = false, flow_json = undefined, selected = $bindable(), forceSmallScreen = false, header, form, scriptRender: script, save_inputs, flow_step, triggers } = $props();
5
5
  let mobileTab = $state('form');
6
6
  let clientWidth = $state(window.innerWidth);
7
7
  const script_render = $derived(script);
8
8
  const save_inputs_render = $derived(save_inputs);
9
9
  const flow_step_render = $derived(flow_step);
10
10
  const triggers_render = $derived(triggers);
11
+ const useDesktopLayout = $derived(clientWidth >= 768 && !forceSmallScreen);
11
12
  </script>
12
13
 
13
14
  <main class="h-screen w-full" bind:clientWidth>
14
- {#if clientWidth >= 768}
15
+ {#if useDesktopLayout}
15
16
  <div class="h-full w-full flex flex-col">
16
17
  {@render header?.()}
17
18
  <div class="grow min-h-0 w-full">
@@ -2,6 +2,7 @@ interface Props {
2
2
  isOperator?: boolean;
3
3
  flow_json?: any | undefined;
4
4
  selected: string;
5
+ forceSmallScreen?: boolean;
5
6
  header?: import('svelte').Snippet;
6
7
  form?: import('svelte').Snippet;
7
8
  scriptRender?: import('svelte').Snippet;
@@ -4,7 +4,7 @@ import BarsStaggered from '../icons/BarsStaggered.svelte';
4
4
  import { Button } from '../common';
5
5
  import Drawer from '../common/drawer/Drawer.svelte';
6
6
  import DrawerContent from '../common/drawer/DrawerContent.svelte';
7
- import { importFlowStore } from './flowStore';
7
+ import { importFlowStore } from './flowStore.svelte';
8
8
  import { Loader2, Plus } from 'lucide-svelte';
9
9
  import YAML from 'yaml';
10
10
  let drawer = $state(undefined);