windmill-components 1.677.0 → 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/flowStore.svelte.d.ts +1 -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/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
- 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/MqttEditorConfigSection.svelte.d.ts +1 -1
- 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 +1172 -164
- package/package/gen/schemas.gen.js +1168 -157
- package/package/gen/services.gen.d.ts +511 -6
- package/package/gen/services.gen.js +1023 -23
- package/package/gen/types.gen.d.ts +2278 -151
- 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_deployable.d.ts +11 -7
- package/package/utils_workspace_deploy.d.ts +8 -8
- package/package/utils_workspace_deploy.js +86 -420
- package/package.json +4 -4
- 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
|
@@ -11,6 +11,7 @@ export const SPECIAL_MODULE_IDS = {
|
|
|
11
11
|
};
|
|
12
12
|
import { get } from 'svelte/store';
|
|
13
13
|
import { workspaceStore } from '../../../stores';
|
|
14
|
+
import { findModuleInModules } from '../../flows/flowTree';
|
|
14
15
|
import { z } from 'zod';
|
|
15
16
|
import { ScriptService, FlowService, JobService } from '../../../gen';
|
|
16
17
|
import uFuzzy from '@leeoniya/ufuzzy';
|
|
@@ -45,6 +46,51 @@ function prettifyCodeArguments(content) {
|
|
|
45
46
|
codeContent = codeContent.replace(/\\\\/g, '\\');
|
|
46
47
|
return codeContent;
|
|
47
48
|
}
|
|
49
|
+
function decodeEscapedToolString(content) {
|
|
50
|
+
return content
|
|
51
|
+
.replace(/\\n/g, '\n')
|
|
52
|
+
.replace(/\\t/g, '\t')
|
|
53
|
+
.replace(/\\"/g, '"')
|
|
54
|
+
.replace(/\\\\/g, '\\');
|
|
55
|
+
}
|
|
56
|
+
function extractJsonStringProperty(content, property) {
|
|
57
|
+
const propertyKey = `"${property}"`;
|
|
58
|
+
const propertyIndex = content.indexOf(propertyKey);
|
|
59
|
+
if (propertyIndex === -1) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
let cursor = propertyIndex + propertyKey.length;
|
|
63
|
+
while (cursor < content.length && /\s/.test(content[cursor] ?? '')) {
|
|
64
|
+
cursor++;
|
|
65
|
+
}
|
|
66
|
+
if (content[cursor] !== ':') {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
cursor++;
|
|
70
|
+
while (cursor < content.length && /\s/.test(content[cursor] ?? '')) {
|
|
71
|
+
cursor++;
|
|
72
|
+
}
|
|
73
|
+
if (content[cursor] !== '"') {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
const start = cursor + 1;
|
|
77
|
+
let escaped = false;
|
|
78
|
+
for (let index = start; index < content.length; index++) {
|
|
79
|
+
const char = content[index];
|
|
80
|
+
if (escaped) {
|
|
81
|
+
escaped = false;
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (char === '\\') {
|
|
85
|
+
escaped = true;
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (char === '"') {
|
|
89
|
+
return content.slice(start, index);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return content.slice(start);
|
|
93
|
+
}
|
|
48
94
|
// Prettify function for set_module_code - extracts code from moduleId/code JSON
|
|
49
95
|
function prettifySetModuleCode(content) {
|
|
50
96
|
let codeContent = content;
|
|
@@ -56,19 +102,37 @@ function prettifySetModuleCode(content) {
|
|
|
56
102
|
}
|
|
57
103
|
}
|
|
58
104
|
catch {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
codeContent = codeMatch[1];
|
|
105
|
+
const extractedCode = extractJsonStringProperty(content, 'code');
|
|
106
|
+
if (extractedCode !== undefined) {
|
|
107
|
+
codeContent = extractedCode;
|
|
63
108
|
}
|
|
64
109
|
}
|
|
65
110
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
111
|
+
return decodeEscapedToolString(codeContent);
|
|
112
|
+
}
|
|
113
|
+
function prettifyPatchReplacement(content) {
|
|
114
|
+
let newString;
|
|
115
|
+
if (typeof content === 'string' && content.trim().startsWith('{')) {
|
|
116
|
+
try {
|
|
117
|
+
const parsed = JSON.parse(content);
|
|
118
|
+
if (typeof parsed.new_string === 'string') {
|
|
119
|
+
newString = parsed.new_string;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
newString = extractJsonStringProperty(content, 'new_string');
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (newString === undefined) {
|
|
127
|
+
return content;
|
|
128
|
+
}
|
|
129
|
+
return decodeEscapedToolString(newString);
|
|
130
|
+
}
|
|
131
|
+
function prettifyPatchFlowJson(content) {
|
|
132
|
+
return prettifyPatchReplacement(content);
|
|
133
|
+
}
|
|
134
|
+
function prettifyPatchFile(content) {
|
|
135
|
+
return prettifyPatchReplacement(content);
|
|
72
136
|
}
|
|
73
137
|
// Prettify function for module value JSON - extracts the 'value' property and formats it
|
|
74
138
|
function prettifyModuleValue(content) {
|
|
@@ -128,6 +192,8 @@ function prettifyModuleValue(content) {
|
|
|
128
192
|
export const TOOL_PRETTIFY_MAP = {
|
|
129
193
|
edit_code: prettifyCodeArguments,
|
|
130
194
|
set_module_code: prettifySetModuleCode,
|
|
195
|
+
patch_flow_json: prettifyPatchFlowJson,
|
|
196
|
+
patch_file: prettifyPatchFile,
|
|
131
197
|
add_module: prettifyModuleValue,
|
|
132
198
|
modify_module: prettifyModuleValue
|
|
133
199
|
};
|
|
@@ -148,37 +214,6 @@ export const extractAllModules = (modules) => {
|
|
|
148
214
|
return [m];
|
|
149
215
|
});
|
|
150
216
|
};
|
|
151
|
-
export const findModuleById = (modules, moduleId) => {
|
|
152
|
-
for (const module of modules) {
|
|
153
|
-
if (module.id === moduleId) {
|
|
154
|
-
return module;
|
|
155
|
-
}
|
|
156
|
-
if (module.value.type === 'forloopflow' || module.value.type === 'whileloopflow') {
|
|
157
|
-
const found = findModuleById(module.value.modules, moduleId);
|
|
158
|
-
if (found) {
|
|
159
|
-
return found;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
if (module.value.type === 'branchall') {
|
|
163
|
-
const allModules = module.value.branches.flatMap((b) => b.modules);
|
|
164
|
-
const found = findModuleById(allModules, moduleId);
|
|
165
|
-
if (found) {
|
|
166
|
-
return found;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
if (module.value.type === 'branchone') {
|
|
170
|
-
const allModules = [
|
|
171
|
-
...module.value.branches.flatMap((b) => b.modules),
|
|
172
|
-
...module.value.default
|
|
173
|
-
];
|
|
174
|
-
const found = findModuleById(allModules, moduleId);
|
|
175
|
-
if (found) {
|
|
176
|
-
return found;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
return undefined;
|
|
181
|
-
};
|
|
182
217
|
const applyCodePieceToCodeContext = (codePieces, codeContext) => {
|
|
183
218
|
let code = codeContext.split('\n');
|
|
184
219
|
let shiftOffset = 0;
|
|
@@ -203,12 +238,12 @@ export function applyCodePiecesToFlowModules(codePieces, flowModules) {
|
|
|
203
238
|
const modifiedModules = JSON.parse(JSON.stringify(flowModules));
|
|
204
239
|
// Apply code pieces to each module
|
|
205
240
|
for (const [moduleId, pieces] of moduleCodePieces) {
|
|
206
|
-
const module =
|
|
241
|
+
const module = findModuleInModules(modifiedModules, moduleId);
|
|
207
242
|
if (module && module.value.type === 'rawscript' && module.value.content) {
|
|
208
243
|
module.value.content = applyCodePieceToCodeContext(pieces, module.value.content);
|
|
209
244
|
}
|
|
210
245
|
}
|
|
211
|
-
return
|
|
246
|
+
return modifiedModules;
|
|
212
247
|
}
|
|
213
248
|
export function buildContextString(selectedContext) {
|
|
214
249
|
const dbTemplate = `- {title}: SCHEMA: \n{schema}\n`;
|
|
@@ -398,6 +433,7 @@ export function createToolDef(zodSchema, name, description, { strict = true } =
|
|
|
398
433
|
delete parameters.$schema;
|
|
399
434
|
if (!parameters.required)
|
|
400
435
|
parameters.required = [];
|
|
436
|
+
normalizeToolParameterSchema(parameters);
|
|
401
437
|
return {
|
|
402
438
|
type: 'function',
|
|
403
439
|
function: {
|
|
@@ -446,9 +482,9 @@ export const createSearchHubScriptsTool = (withContent = false) => ({
|
|
|
446
482
|
}
|
|
447
483
|
});
|
|
448
484
|
/**
|
|
449
|
-
* Recursively
|
|
485
|
+
* Recursively normalizes JSON Schema quirks that specific providers reject.
|
|
450
486
|
*/
|
|
451
|
-
function
|
|
487
|
+
function normalizeToolParameterSchema(schema) {
|
|
452
488
|
if (!schema || typeof schema !== 'object') {
|
|
453
489
|
return;
|
|
454
490
|
}
|
|
@@ -459,22 +495,29 @@ function removeNullFormats(schema) {
|
|
|
459
495
|
// Recurse into properties
|
|
460
496
|
if (schema.properties && typeof schema.properties === 'object') {
|
|
461
497
|
for (const key of Object.keys(schema.properties)) {
|
|
462
|
-
|
|
498
|
+
normalizeToolParameterSchema(schema.properties[key]);
|
|
463
499
|
}
|
|
464
500
|
}
|
|
465
501
|
// Recurse into items (for arrays)
|
|
466
502
|
if (schema.items) {
|
|
467
|
-
|
|
503
|
+
if (Array.isArray(schema.items)) {
|
|
504
|
+
for (const item of schema.items) {
|
|
505
|
+
normalizeToolParameterSchema(item);
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
else {
|
|
509
|
+
normalizeToolParameterSchema(schema.items);
|
|
510
|
+
}
|
|
468
511
|
}
|
|
469
512
|
// Recurse into additionalProperties if it's an object schema
|
|
470
513
|
if (schema.additionalProperties && typeof schema.additionalProperties === 'object') {
|
|
471
|
-
|
|
514
|
+
normalizeToolParameterSchema(schema.additionalProperties);
|
|
472
515
|
}
|
|
473
516
|
// Recurse into allOf, anyOf, oneOf
|
|
474
517
|
for (const key of ['allOf', 'anyOf', 'oneOf']) {
|
|
475
518
|
if (Array.isArray(schema[key])) {
|
|
476
519
|
for (const subSchema of schema[key]) {
|
|
477
|
-
|
|
520
|
+
normalizeToolParameterSchema(subSchema);
|
|
478
521
|
}
|
|
479
522
|
}
|
|
480
523
|
}
|
|
@@ -489,8 +532,8 @@ export async function buildSchemaForTool(toolDef, schemaBuilder) {
|
|
|
489
532
|
throw new Error(`Invalid flow inputs schema: ${invalidProperties.join(', ')}`);
|
|
490
533
|
}
|
|
491
534
|
toolDef.function.parameters = { ...schema, additionalProperties: false };
|
|
492
|
-
// recursively
|
|
493
|
-
|
|
535
|
+
// recursively normalize provider-incompatible schema fragments
|
|
536
|
+
normalizeToolParameterSchema(toolDef.function.parameters);
|
|
494
537
|
// OPEN AI models don't support strict mode well with schema with complex properties, so we disable it
|
|
495
538
|
const model = getCurrentModel();
|
|
496
539
|
if (model.provider === 'openai' || model.provider === 'azure_openai') {
|
|
@@ -689,7 +732,6 @@ export function formatScriptLintResult(lintResult) {
|
|
|
689
732
|
}
|
|
690
733
|
return response;
|
|
691
734
|
}
|
|
692
|
-
// ============= Workspace Runnables Search =============
|
|
693
735
|
export class WorkspaceRunnablesSearch {
|
|
694
736
|
uf;
|
|
695
737
|
scriptsWorkspace = undefined;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface ChatTokenUsage {
|
|
2
|
+
prompt: number;
|
|
3
|
+
completion: number;
|
|
4
|
+
total: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function emptyChatTokenUsage(): ChatTokenUsage;
|
|
7
|
+
export declare function addChatTokenUsage(total: ChatTokenUsage, usage: ChatTokenUsage | null | undefined): ChatTokenUsage;
|
|
8
|
+
export declare function anthropicUsageToChatTokenUsage(usage: {
|
|
9
|
+
input_tokens?: number | null;
|
|
10
|
+
output_tokens?: number | null;
|
|
11
|
+
cache_creation_input_tokens?: number | null;
|
|
12
|
+
cache_read_input_tokens?: number | null;
|
|
13
|
+
} | null | undefined): ChatTokenUsage;
|
|
14
|
+
export declare function openAIResponsesUsageToChatTokenUsage(usage: {
|
|
15
|
+
input_tokens?: number | null;
|
|
16
|
+
output_tokens?: number | null;
|
|
17
|
+
total_tokens?: number | null;
|
|
18
|
+
} | null | undefined): ChatTokenUsage;
|
|
19
|
+
export declare function openAICompletionsUsageToChatTokenUsage(usage: {
|
|
20
|
+
prompt_tokens?: number | null;
|
|
21
|
+
completion_tokens?: number | null;
|
|
22
|
+
total_tokens?: number | null;
|
|
23
|
+
} | null | undefined): ChatTokenUsage;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export function emptyChatTokenUsage() {
|
|
2
|
+
return { prompt: 0, completion: 0, total: 0 };
|
|
3
|
+
}
|
|
4
|
+
export function addChatTokenUsage(total, usage) {
|
|
5
|
+
if (!usage) {
|
|
6
|
+
return total;
|
|
7
|
+
}
|
|
8
|
+
return {
|
|
9
|
+
prompt: total.prompt + usage.prompt,
|
|
10
|
+
completion: total.completion + usage.completion,
|
|
11
|
+
total: total.total + usage.total
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export function anthropicUsageToChatTokenUsage(usage) {
|
|
15
|
+
const prompt = (usage?.input_tokens ?? 0) +
|
|
16
|
+
(usage?.cache_creation_input_tokens ?? 0) +
|
|
17
|
+
(usage?.cache_read_input_tokens ?? 0);
|
|
18
|
+
const completion = usage?.output_tokens ?? 0;
|
|
19
|
+
return {
|
|
20
|
+
prompt,
|
|
21
|
+
completion,
|
|
22
|
+
total: prompt + completion
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function openAIResponsesUsageToChatTokenUsage(usage) {
|
|
26
|
+
const prompt = usage?.input_tokens ?? 0;
|
|
27
|
+
const completion = usage?.output_tokens ?? 0;
|
|
28
|
+
return {
|
|
29
|
+
prompt,
|
|
30
|
+
completion,
|
|
31
|
+
total: usage?.total_tokens ?? prompt + completion
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function openAICompletionsUsageToChatTokenUsage(usage) {
|
|
35
|
+
const prompt = usage?.prompt_tokens ?? 0;
|
|
36
|
+
const completion = usage?.completion_tokens ?? 0;
|
|
37
|
+
return {
|
|
38
|
+
prompt,
|
|
39
|
+
completion,
|
|
40
|
+
total: usage?.total_tokens ?? prompt + completion
|
|
41
|
+
};
|
|
42
|
+
}
|
|
@@ -7,6 +7,7 @@ import { type Writable } from 'svelte/store';
|
|
|
7
7
|
import { type Script } from '../../gen';
|
|
8
8
|
import { type Tool, type ToolCallbacks } from './chat/shared';
|
|
9
9
|
import type { Stream } from 'openai/core/streaming.mjs';
|
|
10
|
+
import { type ChatTokenUsage } from './chat/tokenUsage';
|
|
10
11
|
export declare const SUPPORTED_LANGUAGES: Set<string>;
|
|
11
12
|
interface AIProviderDetails {
|
|
12
13
|
label: string;
|
|
@@ -103,7 +104,10 @@ export declare function parseOpenAICompletion(completion: Stream<ChatCompletionC
|
|
|
103
104
|
}, messages: ChatCompletionMessageParam[], addedMessages: ChatCompletionMessageParam[], tools: Tool<any>[], helpers: any, _abortController?: AbortController, // unused, for signature compatibility with parseAnthropicCompletion
|
|
104
105
|
options?: {
|
|
105
106
|
workspace?: string;
|
|
106
|
-
}): Promise<
|
|
107
|
+
}): Promise<{
|
|
108
|
+
shouldContinue: boolean;
|
|
109
|
+
tokenUsage: ChatTokenUsage;
|
|
110
|
+
}>;
|
|
107
111
|
export declare function getResponseFromEvent(part: OpenAI.Chat.Completions.ChatCompletionChunk): string;
|
|
108
112
|
export declare function copilot(scriptOptions: CopilotOptions, generatedCode: Writable<string>, abortController: AbortController, generatedExplanation?: Writable<string>): Promise<string>;
|
|
109
113
|
export {};
|
|
@@ -11,6 +11,7 @@ import { getNonStreamingOpenAIResponsesCompletion, getOpenAIResponsesCompletionS
|
|
|
11
11
|
import { convertOpenAIToAnthropicMessages } from './chat/anthropic';
|
|
12
12
|
import { generateRandomString } from '../../utils';
|
|
13
13
|
import { copilotInfo, getCurrentModel } from '../../aiStore';
|
|
14
|
+
import { emptyChatTokenUsage, openAICompletionsUsageToChatTokenUsage } from './chat/tokenUsage';
|
|
14
15
|
export const SUPPORTED_LANGUAGES = new Set(Object.keys(GEN_CONFIG.prompts));
|
|
15
16
|
const OPENAI_MODELS = [
|
|
16
17
|
'gpt-5',
|
|
@@ -309,7 +310,7 @@ export function createOpenAIProxyClient(baseURL) {
|
|
|
309
310
|
baseURL,
|
|
310
311
|
apiKey: 'fake-key',
|
|
311
312
|
defaultHeaders: {
|
|
312
|
-
Authorization:
|
|
313
|
+
Authorization: OpenAPI.TOKEN ? `Bearer ${OpenAPI.TOKEN}` : ''
|
|
313
314
|
},
|
|
314
315
|
dangerouslyAllowBrowser: true
|
|
315
316
|
});
|
|
@@ -318,7 +319,8 @@ export function createAnthropicProxyClient(baseURL) {
|
|
|
318
319
|
return new Anthropic({
|
|
319
320
|
baseURL,
|
|
320
321
|
apiKey: 'fake-key',
|
|
321
|
-
dangerouslyAllowBrowser: true
|
|
322
|
+
dangerouslyAllowBrowser: true,
|
|
323
|
+
defaultHeaders: OpenAPI.TOKEN ? { Authorization: `Bearer ${OpenAPI.TOKEN}` } : undefined
|
|
322
324
|
});
|
|
323
325
|
}
|
|
324
326
|
class WorkspacedAIClients {
|
|
@@ -653,7 +655,17 @@ export async function getCompletion(messages, abortController, tools, options) {
|
|
|
653
655
|
}
|
|
654
656
|
// Use Completions API for other providers
|
|
655
657
|
const client = options?.openaiClient ?? workspaceAIClients.getOpenaiClient();
|
|
656
|
-
const
|
|
658
|
+
const completionConfig = (provider === 'openai' || provider === 'azure_openai' || provider === 'googleai') &&
|
|
659
|
+
config.stream
|
|
660
|
+
? {
|
|
661
|
+
...config,
|
|
662
|
+
stream_options: {
|
|
663
|
+
...(config.stream_options ?? {}),
|
|
664
|
+
include_usage: true
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
: config;
|
|
668
|
+
const completion = client.chat.completions.create(completionConfig, {
|
|
657
669
|
signal: abortController.signal,
|
|
658
670
|
headers: {
|
|
659
671
|
'X-Provider': provider
|
|
@@ -675,8 +687,12 @@ export async function parseOpenAICompletion(completion, callbacks, messages, add
|
|
|
675
687
|
options) {
|
|
676
688
|
const finalToolCalls = {};
|
|
677
689
|
let malformedFunctionCallError = false;
|
|
690
|
+
let tokenUsage = emptyChatTokenUsage();
|
|
678
691
|
let answer = '';
|
|
679
692
|
for await (const chunk of completion) {
|
|
693
|
+
if ('usage' in chunk && chunk.usage) {
|
|
694
|
+
tokenUsage = openAICompletionsUsageToChatTokenUsage(chunk.usage);
|
|
695
|
+
}
|
|
680
696
|
if (!('choices' in chunk && chunk.choices.length > 0 && 'delta' in chunk.choices[0])) {
|
|
681
697
|
continue;
|
|
682
698
|
}
|
|
@@ -835,9 +851,9 @@ options) {
|
|
|
835
851
|
addedMessages.push(toolResponse);
|
|
836
852
|
}
|
|
837
853
|
else {
|
|
838
|
-
return false;
|
|
854
|
+
return { shouldContinue: false, tokenUsage };
|
|
839
855
|
}
|
|
840
|
-
return true;
|
|
856
|
+
return { shouldContinue: true, tokenUsage };
|
|
841
857
|
}
|
|
842
858
|
export function getResponseFromEvent(part) {
|
|
843
859
|
return part.choices?.[0]?.delta?.content || '';
|