@nocobase/plugin-ai 2.2.0-alpha.2 → 2.2.0-alpha.4

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 (53) hide show
  1. package/dist/ai/docs/nocobase/api/cli/env/auth.md +53 -5
  2. package/dist/ai/docs/nocobase/ops-management/version-control/index.md +1 -0
  3. package/dist/client/559.9f97ebcdb0bd6231.js +10 -0
  4. package/dist/client/{604.de96f3ec4d471afd.js → 604.89c674f35b52b4ef.js} +1 -1
  5. package/dist/client/index.js +3 -3
  6. package/dist/client/llm-providers/mistral/ModelSettings.d.ts +10 -0
  7. package/dist/client/llm-providers/mistral/index.d.ts +10 -0
  8. package/dist/client/llm-services/utils.d.ts +5 -0
  9. package/dist/externalVersion.js +16 -16
  10. package/dist/locale/en-US.json +1 -0
  11. package/dist/locale/zh-CN.json +1 -0
  12. package/dist/node_modules/@langchain/mistralai/LICENSE +21 -0
  13. package/dist/node_modules/@langchain/mistralai/dist/_virtual/rolldown_runtime.cjs +25 -0
  14. package/dist/node_modules/@langchain/mistralai/dist/chat_models.cjs +859 -0
  15. package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.cts +541 -0
  16. package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.ts +541 -0
  17. package/dist/node_modules/@langchain/mistralai/dist/chat_models.js +857 -0
  18. package/dist/node_modules/@langchain/mistralai/dist/embeddings.cjs +140 -0
  19. package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.cts +116 -0
  20. package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.ts +116 -0
  21. package/dist/node_modules/@langchain/mistralai/dist/embeddings.js +139 -0
  22. package/dist/node_modules/@langchain/mistralai/dist/index.cjs +21 -0
  23. package/dist/node_modules/@langchain/mistralai/dist/index.d.cts +4 -0
  24. package/dist/node_modules/@langchain/mistralai/dist/index.d.ts +4 -0
  25. package/dist/node_modules/@langchain/mistralai/dist/index.js +5 -0
  26. package/dist/node_modules/@langchain/mistralai/dist/llms.cjs +275 -0
  27. package/dist/node_modules/@langchain/mistralai/dist/llms.d.cts +147 -0
  28. package/dist/node_modules/@langchain/mistralai/dist/llms.d.ts +147 -0
  29. package/dist/node_modules/@langchain/mistralai/dist/llms.js +274 -0
  30. package/dist/node_modules/@langchain/mistralai/dist/utils.cjs +61 -0
  31. package/dist/node_modules/@langchain/mistralai/dist/utils.js +59 -0
  32. package/dist/node_modules/@langchain/mistralai/package.json +1 -0
  33. package/dist/node_modules/@langchain/xai/dist/index.cjs +2 -2
  34. package/dist/node_modules/@langchain/xai/package.json +1 -1
  35. package/dist/node_modules/fs-extra/package.json +1 -1
  36. package/dist/node_modules/jsonrepair/package.json +1 -1
  37. package/dist/node_modules/just-bash/package.json +1 -1
  38. package/dist/node_modules/nodejs-snowflake/package.json +1 -1
  39. package/dist/node_modules/openai/package.json +1 -1
  40. package/dist/node_modules/zod/package.json +1 -1
  41. package/dist/server/ai-employees/ai-employee.js +7 -5
  42. package/dist/server/ai-employees/middleware/conversation.d.ts +2 -0
  43. package/dist/server/ai-employees/middleware/conversation.js +2 -1
  44. package/dist/server/ai-employees/utils.d.ts +3 -1
  45. package/dist/server/ai-employees/utils.js +2 -0
  46. package/dist/server/llm-providers/mistral.d.ts +62 -0
  47. package/dist/server/llm-providers/mistral.js +265 -0
  48. package/dist/server/llm-providers/provider.d.ts +6 -2
  49. package/dist/server/llm-providers/provider.js +27 -14
  50. package/dist/server/plugin.js +2 -0
  51. package/dist/server/workflow/nodes/employee/index.js +91 -45
  52. package/package.json +3 -2
  53. package/dist/client/559.a0f2f1cc2be3c039.js +0 -10
@@ -1,17 +1,19 @@
1
1
  ---
2
2
  title: "nb env auth"
3
- description: "nb env auth command reference: run OAuth login for a saved NocoBase env."
4
- keywords: "nb env auth,NocoBase CLI,OAuth,login,authentication"
3
+ description: "nb env auth command reference: authenticate a saved NocoBase env with basic, token, or OAuth authentication."
4
+ keywords: "nb env auth,NocoBase CLI,basic,token,OAuth,login,authentication"
5
5
  ---
6
6
 
7
7
  # nb env auth
8
8
 
9
- Run OAuth login for a selected env. When the env name is omitted, the current env is used.
9
+ Authenticate a saved NocoBase env again, or update the authentication information saved for it. When the env name is omitted, the current env is used.
10
+
11
+ `nb env auth` supports three authentication methods: `basic`, `token`, and `oauth`. If `--auth-type` is omitted, the CLI first infers the method from the authentication options you pass. If it still cannot infer the method, it uses the authentication method already saved in the env.
10
12
 
11
13
  ## Usage
12
14
 
13
15
  ```bash
14
- nb env auth [name]
16
+ nb env auth [name] [flags]
15
17
  ```
16
18
 
17
19
  ## Parameters
@@ -19,19 +21,65 @@ nb env auth [name]
19
21
  | Parameter | Type | Description |
20
22
  | --- | --- | --- |
21
23
  | `[name]` | string | Configured environment name to sign in to; uses the current env if omitted |
24
+ | `--auth-type`, `-a` | string | Authentication method: `basic`, `token`, or `oauth` |
25
+ | `--access-token`, `-t` | string | API key or access token used with `token` authentication |
26
+ | `--username` | string | Username used with `basic` authentication; prompted in TTY when omitted |
27
+ | `--password` | string | Password used with `basic` authentication; prompted in TTY when omitted |
28
+
29
+ ## Compatibility options
30
+
31
+ | Option | Type | Description |
32
+ | --- | --- | --- |
33
+ | `--env`, `-e` | string | Environment name, equivalent to `[name]`. This hidden option is kept for compatibility with other commands; normally the positional argument is enough |
22
34
 
23
35
  ## Notes
24
36
 
25
- Internally, this command uses the PKCE flow: start a local callback server, open the browser for authorization, exchange the token, and save it to the config file.
37
+ The authentication methods work as follows:
38
+
39
+ - `basic`: sign in to NocoBase with a username and password, then save the returned access token and username
40
+ - `token`: save the API key or access token passed through `--access-token`
41
+ - `oauth`: start the browser authentication flow, then save the access token after authentication finishes
42
+
43
+ In an interactive terminal, the CLI prompts for `--auth-type`, `--username`, `--password`, or `--access-token` when needed. In non-interactive mode, `basic` authentication requires both `--username` and `--password`.
44
+
45
+ `oauth` authentication first tries Device Authorization Grant. When the OAuth server supports this flow, the command prints a verification URL and user code, then polls until the browser approval is complete. This works on remote or headless servers because it does not require a local callback listener.
46
+
47
+ If the OAuth server does not expose a device authorization endpoint, the command falls back to the PKCE loopback flow: start a local callback server, open the browser for authorization, exchange the token, and save it to the config file.
48
+
49
+ After authentication succeeds, the CLI automatically runs `nb env update <name>` to re-sync the env state.
50
+
51
+ ## Limits
52
+
53
+ - `[name]` and `--env` cannot provide different environment names at the same time
54
+ - `--access-token` cannot be used with `--username` or `--password`
55
+ - `--auth-type oauth` cannot be used with `--access-token`, `--username`, or `--password`
56
+ - `--auth-type token` cannot be used with `--username` or `--password`
57
+ - `--auth-type basic` cannot be used with `--access-token`
58
+ - `--access-token`, `--username`, and `--password` cannot be empty after they are provided
26
59
 
27
60
  ## Examples
28
61
 
29
62
  ```bash
63
+ # Authenticate the current env with the saved authentication method
30
64
  nb env auth
65
+
66
+ # Authenticate a specific env
31
67
  nb env auth prod
68
+
69
+ # Use OAuth browser login
70
+ nb env auth prod --auth-type oauth
71
+
72
+ # Sign in with username and password
73
+ nb env auth prod --auth-type basic --username admin --password secret
74
+
75
+ # Save an API key or access token
76
+ nb env auth prod --auth-type token --access-token <api-key>
32
77
  ```
33
78
 
79
+ For device authorization, follow the URL printed by the command and enter the displayed code in the browser.
80
+
34
81
  ## Related Commands
35
82
 
36
83
  - [`nb env add`](./add.md)
84
+ - [`nb env info`](./info.md)
37
85
  - [`nb env update`](./update.md)
@@ -1,4 +1,5 @@
1
1
  ---
2
+ pkg: '@nocobase/plugin-version-control'
2
3
  title: "Version control"
3
4
  description: "Version control plugin guide: automatically save versions during AI Builder sessions, create and restore versions manually, configure retention, set shortcuts, and include user collections in saved versions."
4
5
  keywords: "Version control,ops management,AI Builder,nocobase-revision,nb revision create,create version,restore version,NocoBase"
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunk_nocobase_plugin_ai=self.webpackChunk_nocobase_plugin_ai||[]).push([["559"],{6482:function(e,t,r){r.r(t),r.d(t,{Settings:function(){return z},useProviderSettingsForm:function(){return _},LLMServices:function(){return H},ProviderSelect:function(){return K}});var n=r(3342),o=r(9155),i=r.n(o),l=r(4442),a=r(3079),c=r(2059),s=r(7375),u={name:"llmServices",fields:[{name:"name",type:"uid",primaryKey:!0},{name:"title",type:"string",interface:"input",uiSchema:{title:'{{t("Title")}}',"x-component":"Input"}},{name:"provider",type:"string",interface:"select",uiSchema:{title:'{{t("Provider")}}',"x-component":"Select"}},{name:"options",type:"jsonb"},{name:"enabledModels",type:"json",defaultValue:{mode:"recommended",models:[]}},{name:"enabled",type:"boolean",defaultValue:!0},{name:"modelOptions",type:"jsonb",defaultValue:{temperature:1,topP:1,frequencyPenalty:0,presencePenalty:0}}]},p={type:"void",properties:{drawer:{type:"void",title:'{{ t("Add new") }}',"x-component":"Action.Drawer","x-decorator":"FormV2","x-use-decorator-props":"useCreateFormProps",properties:{provider:{type:"string","x-decorator":"FormItem",title:'{{ t("Provider") }}',"x-component":"ProviderSelect",required:!0},title:{type:"string","x-decorator":"FormItem",title:'{{ t("Title") }}',"x-component":"Input","x-reactions":{dependencies:["provider"],when:"{{!$self.modified}}",fulfill:{state:{value:"{{$getProviderLabel($deps[0])}}"},schema:{"x-visible":"{{!!$deps[0]}}"}}}},options:{type:"object","x-component":"Settings","x-reactions":{dependencies:["provider"],fulfill:{schema:{"x-visible":"{{!!$deps[0]}}"}}}},"options.baseURL":{type:"string","x-decorator":"FormItem",title:'{{ t("Base URL") }}',"x-component":"TextAreaWithGlobalScope","x-component-props":{placeholder:'{{ t("Base URL is optional, leave blank to use default (recommended)") }}'},"x-reactions":{dependencies:["provider"],fulfill:{schema:{"x-visible":"{{!!$deps[0]}}"}}}},enabledModels:{type:"object","x-decorator":"FormItem",title:'{{ t("Enabled Models") }}',"x-component":"EnabledModelsSelect","x-reactions":{dependencies:["provider"],fulfill:{schema:{"x-visible":"{{!!$deps[0]}}"}}}},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{testFlight:{type:"void","x-component":"LLMTestFlight","x-reactions":{dependencies:["provider"],fulfill:{schema:{"x-visible":"{{!!$deps[0]}}"}}}},cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-use-component-props":"useCancelActionProps"},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary"},"x-use-component-props":"useCreateActionProps"}}}}}}},d={type:"void",name:"llm-services",properties:{card:{type:"void","x-component":"CardItem","x-component-props":{heightMode:"fullHeight"},"x-decorator":"TableBlockProvider","x-decorator-props":{collection:"llmServices",action:"list",rowKey:"name",dragSort:!0,dragSortBy:"sort"},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:20}},properties:{refresh:{title:"{{t('Refresh')}}","x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},bulkDelete:{title:"{{t('Delete')}}","x-action":"destroy","x-component":"Action","x-use-component-props":"useBulkDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},add:{type:"void","x-component":"AddNew",title:"{{t('Add new')}}","x-align":"right"}}},table:{type:"array","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"}},properties:{column1:{type:"void",title:'{{ t("UID") }}',"x-component":"TableV2.Column",properties:{name:{type:"string","x-component":"Input","x-read-pretty":!0}}},column2:{type:"void",title:'{{ t("Title") }}',"x-component":"TableV2.Column",properties:{title:{type:"string","x-component":"Input","x-read-pretty":!0}}},column3:{type:"void",title:'{{ t("Provider") }}',"x-component":"TableV2.Column",properties:{provider:{type:"string","x-component":"Select","x-read-pretty":!0,enum:"{{ providers }}"}}},column4:{type:"void",title:'{{ t("Enabled") }}',"x-component":"TableV2.Column",properties:{enabled:{type:"boolean","x-component":"EnabledSwitch"}}},column5:{type:"void",title:'{{ t("Actions") }}',"x-decorator":"TableV2.Column.ActionBar","x-component":"TableV2.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{edit:{type:"void",title:'{{ t("Edit") }}',"x-action":"update","x-component":"Action.Link","x-component-props":{openMode:"drawer"},properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Drawer","x-decorator":"FormV2","x-use-decorator-props":"useEditFormProps",properties:{provider:{type:"string","x-decorator":"FormItem",title:'{{ t("Provider") }}',"x-component":"ProviderDisplay"},title:{type:"string","x-decorator":"FormItem",title:'{{ t("Title") }}',"x-component":"Input"},options:{type:"object","x-component":"Settings"},"options.baseURL":{type:"string","x-decorator":"FormItem",title:'{{ t("Base URL") }}',"x-component":"TextAreaWithGlobalScope","x-component-props":{placeholder:'{{ t("Base URL is optional, leave blank to use default (recommended)") }}'}},enabledModels:{type:"object","x-decorator":"FormItem",title:'{{ t("Enabled Models") }}',"x-component":"EnabledModelsSelect"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{testFlight:{type:"void","x-component":"LLMTestFlight"},cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-use-component-props":"useCancelActionProps"},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary"},"x-use-component-props":"useEditActionProps"}}}}}}},destroy:{type:"void",title:'{{ t("Delete") }}',"x-action":"destroy","x-component":"Action.Link","x-use-component-props":"useDestroyActionProps","x-component-props":{confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}}}}}}}}}}}},m=r(284),f=r(5230),y=r(9452),v=r(166),b=r(6759),x=r(5555),h={type:"object",properties:{temperature:{type:"number",title:'{{t("Temperature")}}',description:'{{t("Temperature description")}}',"x-decorator":"FormItem","x-component":"Slider","x-component-props":{min:0,max:2,step:.1},default:1},maxTokens:{type:"number",title:'{{t("Max tokens")}}',description:'{{t("Max completion tokens description")}}',"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{min:1,max:128e3,placeholder:'{{t("Leave empty for no limit")}}'}},topP:{type:"number",title:'{{t("Top P")}}',description:'{{t("Top P description")}}',"x-decorator":"FormItem","x-component":"Slider","x-component-props":{min:0,max:1,step:.1},default:1},frequencyPenalty:{type:"number",title:'{{t("Frequency penalty")}}',description:'{{t("Frequency penalty description")}}',"x-decorator":"FormItem","x-component":"Slider","x-component-props":{min:-2,max:2,step:.1},default:0},presencePenalty:{type:"number",title:'{{t("Presence penalty")}}',description:'{{t("Presence penalty description")}}',"x-decorator":"FormItem","x-component":"Slider","x-component-props":{min:-2,max:2,step:.1},default:0}}},g=function(){var e=(0,a.kj)();return i().createElement(c.Collapse,{bordered:!1,size:"small",style:{marginTop:16},items:[{key:"modelOptions",label:e("Model options"),forceRender:!0,children:i().createElement(n.SchemaComponent,{schema:h,scope:{t:e}})}]})},P=r(7330),S=r(1285);function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function w(e,t,r,n,o,i,l){try{var a=e[i](l),c=a.value}catch(e){r(e);return}a.done?t(c):Promise.resolve(c).then(n,o)}function k(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function l(e){w(i,n,o,l,a,"next",e)}function a(e){w(i,n,o,l,a,"throw",e)}l(void 0)})}}function C(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function E(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function M(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],l=!0,a=!1;try{for(o=o.call(e);!(l=(r=o.next()).done)&&(i.push(r.value),!t||i.length!==t);l=!0);}catch(e){a=!0,n=e}finally{try{l||null==o.return||o.return()}finally{if(a)throw n}}return i}}(e,t)||O(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){if(e){if("string"==typeof e)return A(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return A(e,t)}}function L(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),a=Object.defineProperty;return a(l,"next",{value:c(0)}),a(l,"throw",{value:c(1)}),a(l,"return",{value:c(2)}),"function"==typeof Symbol&&a(l,Symbol.iterator,{value:function(){return this}}),l;function c(a){return function(c){var s=[a,c];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=0,s[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,n=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}var I=(0,o.createContext)({autoOpen:!1,setAutoOpen:function(){}}),F=function(){return{form:(0,o.useMemo)(function(){return(0,y.createForm)({initialValues:{name:"v_".concat((0,v.uid)())}})},[])}},T=function(){var e=(0,n.useCollectionRecordData)();return{form:(0,o.useMemo)(function(){return(0,y.createForm)({initialValues:e})},[e])}},j=function(){var e=(0,n.useActionContext)().setVisible;return{type:"default",onClick:function(){e(!1)}}},D=function(){var e=(0,n.useActionContext)().setVisible,t=c.App.useApp().message,r=(0,f.useForm)(),o=(0,n.useDataBlockResource)(),i=(0,n.useDataBlockRequest)().refresh,l=(0,a.kj)(),s=(0,P.M)();return{type:"primary",onClick:function(){return k(function(){var n;return L(this,function(a){switch(a.label){case 0:return[4,r.submit()];case 1:return a.sent(),n=(0,S.Kr)(r.values),[4,o.create({values:n})];case 2:return a.sent(),i(),s.refreshLLMServices(),t.success(l("Saved successfully")),e(!1),[2]}})})()}}},B=function(){var e=(0,n.useActionContext)().setVisible,t=c.App.useApp().message,r=(0,f.useForm)(),o=(0,n.useDataBlockResource)(),i=(0,n.useDataBlockRequest)().refresh,l=(0,n.useCollection)().getFilterTargetKey(),s=(0,a.kj)(),u=(0,P.M)();return{type:"primary",onClick:function(){return k(function(){var n;return L(this,function(a){switch(a.label){case 0:return[4,r.submit()];case 1:return a.sent(),n=(0,S.Kr)(r.values),[4,o.update({values:n,filterByTk:n[l]})];case 2:return a.sent(),i(),u.refreshLLMServices(),t.success(s("Saved successfully")),e(!1),r.reset(),[2]}})})()}}},R={"google-genai":"Gemini",openai:"GPT","openai-completions":"Recommended for third-party OpenAI-compatible APIs (OpenRouter, Groq, Together AI, etc.)",anthropic:"Claude",deepseek:"DeepSeek",dashscope:"Qwen (Tongyi)",kimi:"Kimi",xai:"Grok models by xAI",ollama:"Local models",mimo:"Xiaomi MIMO",mistral:"Mistral models"},V=["google-genai","openai","anthropic","deepseek","dashscope","kimi","mistral","openai-completions","ollama"],q=function(){var e=(0,f.useField)(),t=(0,m.Pq)().find(function(t){return t.value===e.value});return i().createElement("span",null,(null==t?void 0:t.label)||e.value)},K=function(){var e=c.theme.useToken().token,t=(0,f.useField)(),r=(0,m.Pq)(),n=(0,a.kj)(),o=((function(e){if(Array.isArray(e))return A(e)})(r)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(r)||O(r)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).sort(function(e,t){var r=V.indexOf(e.value),n=V.indexOf(t.value);return(r<0?1/0:r)-(n<0?1/0:n)}).map(function(t){var r=R[t.value],o=r?n(r):"",l=t.supportedModel||[],a=[l.includes("LLM")?"LLM":null,l.includes("EMBEDDING")?"EMBEDDING":null].filter(Boolean);return{value:t.value,label:i().createElement("div",null,i().createElement("div",{style:{fontWeight:500}},t.label),i().createElement("div",{style:{fontSize:e.fontSizeSM,color:e.colorTextTertiary,lineHeight:1.4,display:"flex",alignItems:"center",justifyContent:"space-between",gap:e.marginXS}},i().createElement("span",null,o),i().createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:e.marginXXS,flexWrap:"wrap"}},a.map(function(e){return i().createElement(c.Tag,{key:e,bordered:!1,color:"default",style:{marginInlineEnd:0,paddingInline:6,lineHeight:"18px",height:18,fontSize:11}},e)})))),selectedLabel:t.label}});return i().createElement(c.Select,{value:t.value,onChange:function(e){return t.value=e},options:o,optionLabelProp:"selectedLabel",style:{width:"100%"},listHeight:400})},N=(0,f.observer)(function(){var e=(0,f.useField)(),t=(0,n.useCollectionRecordData)(),r=(0,n.useDataBlockResource)(),o=(0,n.useDataBlockRequest)().refresh,l=(0,n.useCollection)().getFilterTargetKey(),a=!1!==e.value,s=(0,P.M)();return i().createElement(c.Switch,{size:"small",checked:a,onChange:function(n){return k(function(){return L(this,function(i){switch(i.label){case 0:return e.value=n,[4,r.update({values:{enabled:n},filterByTk:t[l]})];case 1:return i.sent(),o(),s.refreshLLMServices(),[2]}})})()}})},{displayName:"EnabledSwitch"}),$=function(){var e=(0,n.useDestroyActionProps)(),t=(0,P.M)();return E(C({},e),{onClick:function(r,n){return k(function(){return L(this,function(o){switch(o.label){case 0:return[4,e.onClick(r,n)];case 1:return o.sent(),t.refreshLLMServices(),[2]}})})()}})},G=function(){var e=(0,n.useBulkDestroyActionProps)(),t=(0,P.M)();return E(C({},e),{onClick:function(r,n){return k(function(){return L(this,function(o){switch(o.label){case 0:return[4,e.onClick(r,n)];case 1:return o.sent(),t.refreshLLMServices(),[2]}})})()}})},U=function(){var e=(0,a.kj)(),t=M((0,o.useState)(!1),2),r=t[0],l=t[1],u=M((0,o.useState)(0),2),d=u[0],f=u[1],y=(0,m.Pq)(),v=(0,o.useContext)(I),h=v.autoOpen,P=v.setAutoOpen;return(0,o.useEffect)(function(){h&&(f(function(e){return e+1}),l(!0),P(!1),window.history.replaceState({},document.title))},[h,P]),i().createElement(n.ActionContextProvider,{value:{visible:r,setVisible:l}},i().createElement(c.Button,{icon:i().createElement(s.PlusOutlined,null),type:"primary",onClick:function(){f(function(e){return e+1}),l(!0)}},e("Add new")),i().createElement(n.SchemaComponent,{key:d,components:{LLMTestFlight:b.e,EnabledModelsSelect:x.uQ,ProviderSelect:K,ModelOptionsSettings:g},scope:{useCreateFormProps:F,providers:y,$getProviderLabel:function(e){var t=y.find(function(t){return t.value===e});return(null==t?void 0:t.label)||e}},schema:p}))},_=function(e){var t,r=(0,n.usePlugin)("ai").aiManager.llmProviders.get(e);return null==r||null==(t=r.components)?void 0:t.ProviderSettingsForm},z=(0,f.observer)(function(){var e=(0,f.useForm)(),t=(0,n.useCollectionRecordData)(),r=_(e.values.provider||t.provider);return r?i().createElement(r,null):null},{displayName:"LLMProviderSettings"}),H=function(){var e=(0,a.kj)(),t=M((0,o.useState)([]),2),r=t[0],c=t[1],s=(0,n.useAPIClient)(),p=(0,l.useLocation)(),y=M((0,o.useState)(!1),2),v=y[0],h=y[1];return(0,o.useEffect)(function(){var e=p.state;(null==e?void 0:e.autoOpenAddNew)&&h(!0)},[p.state]),(0,n.useRequest)(function(){return s.resource("ai").listLLMProviders().then(function(t){var r;return((null==t||null==(r=t.data)?void 0:r.data)||[]).map(function(t){return{key:t.name,label:f.Schema.compile(t.title||t.name,{t:e}),value:t.name,supportedModel:t.supportedModel}})})},{onSuccess:function(e){c(e)}}),i().createElement(I.Provider,{value:{autoOpen:v,setAutoOpen:h}},i().createElement(m.PL.Provider,{value:{providers:r}},i().createElement(n.ExtendCollectionsProvider,{collections:[u]},i().createElement(n.SchemaComponent,{schema:d,components:{AddNew:U,Settings:z,LLMTestFlight:b.e,EnabledModelsSelect:x.uQ,ProviderDisplay:q,ModelOptionsSettings:g,EnabledSwitch:N},scope:{t:e,providers:r,useEditFormProps:T,useCancelActionProps:j,useCreateActionProps:D,useEditActionProps:B,useDestroyActionProps:$,useBulkDestroyActionProps:G}}))))}},6759:function(e,t,r){r.d(t,{e:function(){return y}});var n=r(5230),o=r(3342),i=r(9155),l=r.n(i),a=r(2059),c=r(7375),s=r(1931),u=r(5555),p=r(3079),d=r(1285);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function f(e,t,r,n,o,i,l){try{var a=e[i](l),c=a.value}catch(e){r(e);return}a.done?t(c):Promise.resolve(c).then(n,o)}var y=(0,n.observer)(function(){var e,t=(0,p.kj)(),r=(0,n.useForm)(),y=(0,o.useAPIClient)(),v=a.App.useApp().message,b=function(e){if(Array.isArray(e))return e}(e=(0,i.useState)(!1))||function(e){var t,r,n=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(t=n.next()).done)&&(o.push(t.value),2!==o.length);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==n.return||n.return()}finally{if(l)throw r}}return o}}(e)||function(e){if(e){if("string"==typeof e)return m(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return m(e,2)}}(e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),x=b[0],h=b[1];return l().createElement(a.Tooltip,{title:t("Test connection with the configured API Key")},l().createElement(a.Button,{icon:l().createElement(c.RocketOutlined,null),loading:x,onClick:function(){var e;return(e=function(){var e,n,o,i,l,a,c,p,m;return function(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),a=Object.defineProperty;return a(l,"next",{value:c(0)}),a(l,"throw",{value:c(1)}),a(l,"return",{value:c(2)}),"function"==typeof Symbol&&a(l,Symbol.iterator,{value:function(){return this}}),l;function c(a){return function(c){var s=[a,c];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=0,s[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,n=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}(this,function(f){switch(f.label){case 0:if(n=(e=r.values).provider,o=e.options,i=e.enabledModels,"ollama"!==n&&!(null==o?void 0:o.apiKey))return v.warning(t("Please fill in the API Key first")),[2];if("recommended"===(l=(0,u.lf)(i)).mode){if(0===(c=(0,s.sN)(n)).length)return v.warning(t("Please configure enabled models first")),[2];a=c[0].value}else{if(0===l.models.length)return v.warning(t("Please configure enabled models first")),[2];a=l.models[0].value}h(!0),f.label=1;case 1:return f.trys.push([1,3,4,5]),[4,y.resource("ai").testFlight({values:{provider:n,options:(0,d.ot)(o),model:a}})];case 2:return 0!==(p=f.sent()).data.data.code?v.error(p.data.data.message||t("Failure")):v.success(t("Successful")),[3,5];case 3:return m=f.sent(),v.error(m.message||t("Failure")),[3,5];case 4:return h(!1),[7];case 5:return[2]}})},function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function l(e){f(i,n,o,l,a,"next",e)}function a(e){f(i,n,o,l,a,"throw",e)}l(void 0)})})()}},t("Test flight")))})},284:function(e,t,r){r.d(t,{PL:function(){return o},Pq:function(){return i}});var n=r(9155);(0,n.createContext)({provider:""}).displayName="LLMProvidersContext";var o=(0,n.createContext)({providers:[]});o.displayName="LLMProviderssContext";var i=function(){return(0,n.useContext)(o).providers}}}]);
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- "use strict";(self.webpackChunk_nocobase_plugin_ai=self.webpackChunk_nocobase_plugin_ai||[]).push([["604"],{9095:function(e,t,r){r.r(t),r.d(t,{DatasourceSettingPage:function(){return Y}});var n=r(9155),o=r.n(n),l=r(3342),a=r(7694),c=r(2059),i=r(7375),u=r(7768),s=r(6373),f=r(4943);function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function y(e,t,r,n,o,l,a){try{var c=e[l](a),i=c.value}catch(e){r(e);return}c.done?t(i):Promise.resolve(i).then(n,o)}function m(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var l=e.apply(t,r);function a(e){y(l,n,o,a,c,"next",e)}function c(e){y(l,n,o,a,c,"throw",e)}a(void 0)})}}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function d(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,c=!1;try{for(o=o.call(e);!(a=(r=o.next()).done)&&(l.push(r.value),!t||l.length!==t);a=!0);}catch(e){c=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(c)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){var r,n,o,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(a,"next",{value:i(0)}),c(a,"throw",{value:i(1)}),c(a,"return",{value:i(2)}),"function"==typeof Symbol&&c(a,Symbol.iterator,{value:function(){return this}}),a;function i(c){return function(i){var u=[c,i];if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(l=0)),l;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return l.label++,{value:u[1],done:!1};case 5:l.label++,n=u[1],u=[0];continue;case 7:u=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){l=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){l.label=u[1];break}if(6===u[0]&&l.label<o[1]){l.label=o[1],o=u;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(u);break}o[2]&&l.ops.pop(),l.trys.pop();continue}u=t.call(e,l)}catch(e){u=[6,e],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var g=(0,a.observable)({logic:"$and",items:[]}),w=function(){var e=(0,a.useFlowContext)(),t=e.view,r=t.Header,l=t.Footer,i=h(c.Form.useForm(),1)[0],u=h(c.Form.useForm(),1)[0],p=h(c.Form.useForm(),1)[0],y=h(c.Form.useForm(),1)[0],w=h(c.Form.useForm(),1)[0],O=h((0,n.useState)(0),2),E=O[0],j=O[1],S=h((0,n.useState)({}),2),P=S[0],x=S[1],F=h((0,n.useState)(null),2),k=F[0],C=F[1],D=function(){switch(E){case 0:return i;case 1:return u;case 2:return p;case 3:return y;case 4:return w;default:throw Error("Invalid step")}},I=function(){j(E-1)},T=[{title:e.t("Collection")},{title:e.t("Fields")},{title:e.t("Filter")},{title:e.t("Sort")},{title:e.t("Preview")}];return o().createElement(o().Fragment,null,o().createElement(f.CQ.Provider,{value:new f.kw(k)},o().createElement(r,{title:e.t("Add datasource")}),o().createElement(c.Space,{direction:"vertical",size:"small",style:{width:"100%"}},o().createElement(c.Steps,{current:E,items:T,size:"small"}),o().createElement(c.Divider,{dashed:!0}),o().createElement(c.Form.Provider,{onFormFinish:function(e,t){var r=t.values;if(x(function(e){return b({},e,r)}),"collectionSetting"===e){if(r.collection){var n=h(r.collection,2),o=n[0],l=n[1];x(function(e){return d(b({},e),{datasource:o,collectionName:l})})}}else"filterSetting"===e&&x(function(e){return d(b({},e),{filter:g})})}},o().createElement(s.zA,{form:i,onCollectionCascaderChange:function(t){if(t){var r=h(t,2),n=r[0],o=r[1];C(e.dataSourceManager.getCollection(n,o)),g.items=[],u.setFieldValue("fields",[])}},name:"collectionSetting",show:0===E}),o().createElement(s.SQ,{form:u,name:"fieldsSetting",show:1===E}),o().createElement(s.p8,{form:p,dataScope:g,name:"filterSetting",show:2===E}),o().createElement(s.Du,{form:y,name:"sortSetting",show:3===E})),o().createElement(s.lN,{formData:P,show:4===E})),o().createElement(l,null,o().createElement(c.Flex,{justify:"flex-end",align:"end"},o().createElement(c.Space,null,o().createElement(c.Button,{style:{margin:"0 8px"},onClick:function(){return I()},disabled:0===E},e.t("Previous")),E<T.length-1&&o().createElement(c.Button,{type:"primary",onClick:function(){return m(function(){var e;return v(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,(e=D()).validateFields()];case 1:return t.sent(),e.submit(),j(E+1),[3,3];case 2:return console.debug("Validation failed:",t.sent()),[3,3];case 3:return[2]}})})()}},e.t("Next")),E===T.length-1&&o().createElement(c.Button,{type:"primary",onClick:function(){return m(function(){var t;return v(this,function(r){switch(r.label){case 0:return[4,e.resource.create(P)];case 1:return r.sent(),e.message.success(e.t("Processing complete!")),null==(t=e.view)||t.close(),[2]}})})()}},e.t("Submit")))))))};function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function E(e,t,r,n,o,l,a){try{var c=e[l](a),i=c.value}catch(e){r(e);return}c.done?t(i):Promise.resolve(i).then(n,o)}function j(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function S(e,t){if(null==e)return{};var r,n,o,l={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,r=Reflect.ownKeys(Object(e));o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}if(l=function(e,t){if(null==e)return{};var r,n,o={},l=Object.getOwnPropertyNames(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}(e,t),Object.getOwnPropertySymbols)for(o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}function P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,c=!1;try{for(o=o.call(e);!(a=(r=o.next()).done)&&(l.push(r.value),!t||l.length!==t);a=!0);}catch(e){c=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(c)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return O(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return O(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var x=(0,a.observable)({logic:"$and",items:[]}),F=function(e){var t=e.children;return o().createElement(o().Fragment,null,t)},k=function(e){var t=e.record,r=(0,a.useFlowContext)(),l=r.view,i=l.Header,u=l.Footer,p=P(c.Form.useForm(),1)[0],y=P(c.Form.useForm(),1)[0],m=P(c.Form.useForm(),1)[0],b=P(c.Form.useForm(),1)[0],d=P((0,n.useState)({}),2),h=d[0],v=d[1],g=[p,y,m,b],w=P((0,n.useState)(null),2),O=w[0],k=w[1];(0,n.useEffect)(function(){v(t);var e,n=t.datasource,o=t.collectionName;k(r.dataSourceManager.getCollection(n,o)),p.setFieldsValue(t),p.setFieldValue("collection",[n,o]),y.setFieldValue("fields",t.fields),b.setFieldValue("sort",t.sort),x.items=(null==(e=t.filter)?void 0:e.items)||[]},[t]);var C=[{key:"Tab-0",label:r.t("Collection"),children:o().createElement(F,null,o().createElement(s.zA,{form:p,name:"collectionSetting",show:!0,disableCollectionCascader:!0}))},{key:"Tab-1",label:r.t("Fields"),children:o().createElement(F,null,o().createElement(s.SQ,{form:y,name:"fieldsSetting",show:!0}))},{key:"Tab-2",label:r.t("Filter"),children:o().createElement(F,null,o().createElement(s.p8,{form:m,dataScope:x,name:"filterSetting",show:!0}))},{key:"Tab-3",label:r.t("Sort"),children:o().createElement(F,null,o().createElement(s.Du,{form:b,name:"sortSetting",show:!0}))},{key:"Tab-4",label:r.t("Preview"),children:o().createElement(F,null,o().createElement(s.lN,{formData:h,show:!0}))}];return o().createElement(o().Fragment,null,o().createElement(f.CQ.Provider,{value:new f.kw(O)},o().createElement(i,{title:r.t("Edit datasource")}),o().createElement(c.Tabs,{defaultActiveKey:"Tab-0",items:C,onChange:function(){var e={},t=!0,r=!1,n=void 0;try{for(var o,l=g[Symbol.iterator]();!(t=(o=l.next()).done);t=!0){var a=o.value.getFieldsValue(),c=(a.collection,a.datasource,a.collectionName,S(a,["collection","datasource","collectionName"]));e=j({},e,c)}}catch(e){r=!0,n=e}finally{try{t||null==l.return||l.return()}finally{if(r)throw n}}e.filter=x,v(function(t){return j({},t,e)})}}),o().createElement(u,null,o().createElement(c.Flex,{justify:"flex-end",align:"end"},o().createElement(c.Space,null,r.view&&o().createElement(c.Button,{onClick:function(){r.view.close()}},r.t("Cancel")),o().createElement(c.Button,{type:"primary",onClick:function(){var e;return(e=function(){var e,n,o,l,a,c,i,u,s;return function(e,t){var r,n,o,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(a,"next",{value:i(0)}),c(a,"throw",{value:i(1)}),c(a,"return",{value:i(2)}),"function"==typeof Symbol&&c(a,Symbol.iterator,{value:function(){return this}}),a;function i(c){return function(i){var u=[c,i];if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(l=0)),l;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return l.label++,{value:u[1],done:!1};case 5:l.label++,n=u[1],u=[0];continue;case 7:u=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){l=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){l.label=u[1];break}if(6===u[0]&&l.label<o[1]){l.label=o[1],o=u;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(u);break}o[2]&&l.ops.pop(),l.trys.pop();continue}u=t.call(e,l)}catch(e){u=[6,e],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(f){switch(f.label){case 0:f.trys.push([0,10,,11]),e={},n=!0,o=!1,l=void 0,f.label=1;case 1:f.trys.push([1,6,7,8]),a=g[Symbol.iterator](),f.label=2;case 2:if(n=(c=a.next()).done)return[3,5];return[4,c.value.validateFields()];case 3:(i=f.sent()).collection,i.datasource,i.collectionName,u=S(i,["collection","datasource","collectionName"]),e=j({},e,u),f.label=4;case 4:return n=!0,[3,2];case 5:return[3,8];case 6:return s=f.sent(),o=!0,l=s,[3,8];case 7:try{n||null==a.return||a.return()}finally{if(o)throw l}return[7];case 8:return e.filter=x,[4,r.resource.update(t.id,e)];case 9:return f.sent(),r.message.success(r.t("Save datasource successfully")),r.view.close(),[3,11];case 10:return console.error("Validation failed:",f.sent()),[3,11];case 11:return[2]}})},function(){var t=this,r=arguments;return new Promise(function(n,o){var l=e.apply(t,r);function a(e){E(l,n,o,a,c,"next",e)}function c(e){E(l,n,o,a,c,"throw",e)}a(void 0)})})()}},r.t("Submit")))))))};function C(e,t,r,n,o,l,a){try{var c=e[l](a),i=c.value}catch(e){r(e);return}c.done?t(i):Promise.resolve(i).then(n,o)}function D(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var l=e.apply(t,r);function a(e){C(l,n,o,a,c,"next",e)}function c(e){C(l,n,o,a,c,"throw",e)}a(void 0)})}}function I(e,t){var r,n,o,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(a,"next",{value:i(0)}),c(a,"throw",{value:i(1)}),c(a,"return",{value:i(2)}),"function"==typeof Symbol&&c(a,Symbol.iterator,{value:function(){return this}}),a;function i(c){return function(i){var u=[c,i];if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(l=0)),l;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return l.label++,{value:u[1],done:!1};case 5:l.label++,n=u[1],u=[0];continue;case 7:u=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){l=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){l.label=u[1];break}if(6===u[0]&&l.label<o[1]){l.label=o[1],o=u;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(u);break}o[2]&&l.ops.pop(),l.trys.pop();continue}u=t.call(e,l)}catch(e){u=[6,e],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var T=c.Typography.Text,A=function(e){var t,r,n=e.children,l=function(e,t){if(null==e)return{};var r,n,o,l={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,r=Reflect.ownKeys(Object(e));o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}if(l=function(e,t){if(null==e)return{};var r,n,o={},l=Object.getOwnPropertyNames(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}(e,t),Object.getOwnPropertySymbols)for(o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}(e,["children"]),i=(0,a.useFlowContext)();return o().createElement(c.Button,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},l),r=r={onClick:function(){i.viewer.drawer({width:"50%",content:o().createElement(w,null)})}},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),n)},R=(0,a.observer)(function(){var e=(0,a.useFlowContext)(),t=e.resource.getData();return o().createElement(o().Fragment,null,0===t.length?o().createElement("div",{style:{display:"flex",flexDirection:"column",height:"80vh"}},o().createElement(c.Card,{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center"}},o().createElement(c.Empty,{image:c.Empty.PRESENTED_IMAGE_SIMPLE},o().createElement(A,{icon:o().createElement(i.PlusOutlined,null),type:"primary"},o().createElement("span",null,e.t("Create a new datasource")))))):o().createElement("div",{style:{width:"100%",overflowX:"auto",padding:8}},o().createElement(c.Space,{direction:"vertical",size:"large",style:{width:"100%",minWidth:1200}},o().createElement(c.Flex,{justify:"flex-end",align:"center"},o().createElement(c.Space,null,o().createElement(A,{icon:o().createElement(i.PlusOutlined,null),type:"primary"},o().createElement("span",null,e.t("Add datasource"))))),o().createElement(c.List,{grid:{gutter:16,column:4},dataSource:t,loading:e.resource.loading,pagination:{showSizeChanger:!1,total:e.resource.getMeta("count"),pageSize:e.resource.getPageSize(),onChange:function(t,r){e.resource.setPage(t),e.resource.setPageSize(r),e.resource.refresh()}},renderItem:function(t){return o().createElement(c.List.Item,null,o().createElement(c.Card,{hoverable:!0,variant:"borderless",style:{minWidth:300,display:"flex",flexDirection:"column"},onClick:function(){e.viewer.drawer({width:"50%",content:o().createElement(k,{record:t})})}},o().createElement(c.Card.Meta,{title:o().createElement(c.Flex,{justify:"space-between",align:"center"},o().createElement("span",null,t.title),o().createElement(c.Switch,{size:"small",defaultValue:t.enabled,onClick:function(r,n){return D(function(){return I(this,function(o){switch(o.label){case 0:return n.stopPropagation(),[4,e.resource.update(t.id,{enabled:r})];case 1:return o.sent(),[2]}})})()}})),description:o().createElement(c.Space,{style:{fontSize:13}},o().createElement(T,{type:"secondary"},e.t("Collection")),o().createElement(T,null,"".concat(t.datasource,"/").concat(t.collectionName)),o().createElement(c.Divider,{type:"vertical"}),o().createElement(T,{type:"secondary"},e.t("Limit")),o().createElement(T,null,t.limit))}),o().createElement("div",{style:{height:100,display:"flex",flexDirection:"column",flex:1,paddingTop:10}},o().createElement("div",{style:{width:"100%",height:90}},o().createElement(c.Typography.Paragraph,{type:"secondary",ellipsis:{rows:2}},t.description)),o().createElement("div",{style:{marginTop:"auto"}},o().createElement(c.Flex,{justify:"space-between",align:"center"},o().createElement(c.Space,{style:{fontSize:10}},o().createElement(T,{type:"secondary"},"".concat(e.t("Created at")," ").concat((0,u.dayjs)(t.createdAt).format("YYYY-MM-DD HH:mm:ss")))),o().createElement(c.Tooltip,{title:e.t("Delete")},o().createElement(c.Button,{type:"link",icon:o().createElement(i.DeleteOutlined,null),onClick:function(r){r.stopPropagation(),c.Modal.confirm({title:e.t("Confirm whether to delete"),icon:o().createElement(i.ExclamationCircleFilled,null),content:e.t("Are you sure delete this datasource?"),okText:e.t("Yes"),okType:"danger",cancelText:e.t("No"),onOk:function(){return D(function(){return I(this,function(r){switch(r.label){case 0:return[4,e.resource.destroy(t.id)];case 1:return r.sent(),e.message.success(e.t("Datasource deleted successfully")),[2]}})})()},onCancel:function(){}})}})))))))}}))))}),_=r(3079);function M(e,t,r,n,o,l,a){try{var c=e[l](a),i=c.value}catch(e){r(e);return}c.done?t(i):Promise.resolve(i).then(n,o)}function N(e,t,r){return(N="u">typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=z(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(r||e):o.value}})(e,t,r||e)}function z(e){return(z=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function B(e,t){return(B=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function V(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(V=function(){return!!e})()}var K=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(){var e,t;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return e=r,t=arguments,e=z(e),function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,V()?Reflect.construct(e,t||[],z(this).constructor):e.apply(this,t))}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&B(r,e),t=[{key:"onInit",value:function(e){var t=this;N(z(r.prototype),"onInit",this).call(this,e),this.context.defineMethod("t",function(e,r){var n,o;return t.context.i18n.t(e,(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r),o=o={ns:_.MF},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n))})}},{key:"render",value:function(){return o().createElement(R,null)}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(r.prototype,t),r}(a.FlowModel);K.registerFlow({key:"resourceSettings",steps:{initResource:{handler:function(e){var t;return(t=function(){var t;return function(e,t){var r,n,o,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(a,"next",{value:i(0)}),c(a,"throw",{value:i(1)}),c(a,"return",{value:i(2)}),"function"==typeof Symbol&&c(a,Symbol.iterator,{value:function(){return this}}),a;function i(c){return function(i){var u=[c,i];if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(l=0)),l;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return l.label++,{value:u[1],done:!1};case 5:l.label++,n=u[1],u=[0];continue;case 7:u=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){l=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){l.label=u[1];break}if(6===u[0]&&l.label<o[1]){l.label=o[1],o=u;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(u);break}o[2]&&l.ops.pop(),l.trys.pop();continue}u=t.call(e,l)}catch(e){u=[6,e],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:return e.useResource("MultiRecordResource"),(t=e.resource).setDataSourceKey(l.DEFAULT_DATA_SOURCE_KEY),t.setResourceName("aiContextDatasources"),t.setRequestParameters({sort:["-createdAt"]}),t.setPageSize(16),[4,t.refresh()];case 1:return r.sent(),[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,o){var l=t.apply(e,r);function a(e){M(l,n,o,a,c,"next",e)}function c(e){M(l,n,o,a,c,"throw",e)}a(void 0)})})()}}}});var Y=function(){var e=(0,l.useApp)().flowEngine.createModel({use:K});return o().createElement(a.FlowModelRenderer,{model:e})}}}]);
10
+ "use strict";(self.webpackChunk_nocobase_plugin_ai=self.webpackChunk_nocobase_plugin_ai||[]).push([["604"],{9095:function(e,t,r){r.r(t),r.d(t,{DatasourceSettingPage:function(){return W}});var n=r(9155),o=r.n(n),l=r(3342),a=r(7694),c=r(2059),i=r(7375),u=r(7768),s=r(6373),f=r(4943);function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function y(e,t,r,n,o,l,a){try{var c=e[l](a),i=c.value}catch(e){r(e);return}c.done?t(i):Promise.resolve(i).then(n,o)}function m(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var l=e.apply(t,r);function a(e){y(l,n,o,a,c,"next",e)}function c(e){y(l,n,o,a,c,"throw",e)}a(void 0)})}}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function d(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,c=!1;try{for(o=o.call(e);!(a=(r=o.next()).done)&&(l.push(r.value),!t||l.length!==t);a=!0);}catch(e){c=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(c)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){var r,n,o,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(a,"next",{value:i(0)}),c(a,"throw",{value:i(1)}),c(a,"return",{value:i(2)}),"function"==typeof Symbol&&c(a,Symbol.iterator,{value:function(){return this}}),a;function i(c){return function(i){var u=[c,i];if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(l=0)),l;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return l.label++,{value:u[1],done:!1};case 5:l.label++,n=u[1],u=[0];continue;case 7:u=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){l=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){l.label=u[1];break}if(6===u[0]&&l.label<o[1]){l.label=o[1],o=u;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(u);break}o[2]&&l.ops.pop(),l.trys.pop();continue}u=t.call(e,l)}catch(e){u=[6,e],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var g=(0,a.observable)({logic:"$and",items:[]}),w=function(){var e=(0,a.useFlowContext)(),t=e.view,r=t.Header,l=t.Footer,i=h(c.Form.useForm(),1)[0],u=h(c.Form.useForm(),1)[0],p=h(c.Form.useForm(),1)[0],y=h(c.Form.useForm(),1)[0],w=h(c.Form.useForm(),1)[0],O=h((0,n.useState)(0),2),E=O[0],j=O[1],S=h((0,n.useState)({}),2),P=S[0],x=S[1],k=h((0,n.useState)(null),2),F=k[0],C=k[1],D=function(){switch(E){case 0:return i;case 1:return u;case 2:return p;case 3:return y;case 4:return w;default:throw Error("Invalid step")}},T=function(){j(E-1)},I=[{title:e.t("Collection")},{title:e.t("Fields")},{title:e.t("Filter")},{title:e.t("Sort")},{title:e.t("Preview")}];return o().createElement(o().Fragment,null,o().createElement(f.CQ.Provider,{value:new f.kw(F)},o().createElement(r,{title:e.t("Add datasource")}),o().createElement(c.Space,{direction:"vertical",size:"small",style:{width:"100%"}},o().createElement(c.Steps,{current:E,items:I,size:"small"}),o().createElement(c.Divider,{dashed:!0}),o().createElement(c.Form.Provider,{onFormFinish:function(e,t){var r=t.values;if(x(function(e){return b({},e,r)}),"collectionSetting"===e){if(r.collection){var n=h(r.collection,2),o=n[0],l=n[1];x(function(e){return d(b({},e),{datasource:o,collectionName:l})})}}else"filterSetting"===e&&x(function(e){return d(b({},e),{filter:g})})}},o().createElement(s.zA,{form:i,onCollectionCascaderChange:function(t){if(t){var r=h(t,2),n=r[0],o=r[1];C(e.dataSourceManager.getCollection(n,o)),g.items=[],u.setFieldValue("fields",[])}},name:"collectionSetting",show:0===E}),o().createElement(s.SQ,{form:u,name:"fieldsSetting",show:1===E}),o().createElement(s.p8,{form:p,dataScope:g,name:"filterSetting",show:2===E}),o().createElement(s.Du,{form:y,name:"sortSetting",show:3===E})),o().createElement(s.lN,{formData:P,show:4===E})),o().createElement(l,null,o().createElement(c.Flex,{justify:"flex-end",align:"end"},o().createElement(c.Space,null,o().createElement(c.Button,{style:{margin:"0 8px"},onClick:function(){return T()},disabled:0===E},e.t("Previous")),E<I.length-1&&o().createElement(c.Button,{type:"primary",onClick:function(){return m(function(){var e;return v(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,(e=D()).validateFields()];case 1:return t.sent(),e.submit(),j(E+1),[3,3];case 2:return console.debug("Validation failed:",t.sent()),[3,3];case 3:return[2]}})})()}},e.t("Next")),E===I.length-1&&o().createElement(c.Button,{type:"primary",onClick:function(){return m(function(){var t;return v(this,function(r){switch(r.label){case 0:return[4,e.resource.create(P)];case 1:return r.sent(),e.message.success(e.t("Processing complete!")),null==(t=e.view)||t.close(),[2]}})})()}},e.t("Submit")))))))};function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function E(e,t,r,n,o,l,a){try{var c=e[l](a),i=c.value}catch(e){r(e);return}c.done?t(i):Promise.resolve(i).then(n,o)}function j(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function S(e,t){if(null==e)return{};var r,n,o,l={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,r=Reflect.ownKeys(Object(e));o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}if(l=function(e,t){if(null==e)return{};var r,n,o={},l=Object.getOwnPropertyNames(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}(e,t),Object.getOwnPropertySymbols)for(o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}function P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,c=!1;try{for(o=o.call(e);!(a=(r=o.next()).done)&&(l.push(r.value),!t||l.length!==t);a=!0);}catch(e){c=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(c)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return O(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return O(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var x=(0,a.observable)({logic:"$and",items:[]}),k=function(e){var t=e.children;return o().createElement(o().Fragment,null,t)},F=function(e){var t=e.record,r=(0,a.useFlowContext)(),l=r.view,i=l.Header,u=l.Footer,p=P(c.Form.useForm(),1)[0],y=P(c.Form.useForm(),1)[0],m=P(c.Form.useForm(),1)[0],b=P(c.Form.useForm(),1)[0],d=P((0,n.useState)({}),2),h=d[0],v=d[1],g=[p,y,m,b],w=P((0,n.useState)(null),2),O=w[0],F=w[1];(0,n.useEffect)(function(){v(t);var e,n=t.datasource,o=t.collectionName;F(r.dataSourceManager.getCollection(n,o)),p.setFieldsValue(t),p.setFieldValue("collection",[n,o]),y.setFieldValue("fields",t.fields),b.setFieldValue("sort",t.sort),x.items=(null==(e=t.filter)?void 0:e.items)||[]},[t]);var C=[{key:"Tab-0",label:r.t("Collection"),children:o().createElement(k,null,o().createElement(s.zA,{form:p,name:"collectionSetting",show:!0,disableCollectionCascader:!0}))},{key:"Tab-1",label:r.t("Fields"),children:o().createElement(k,null,o().createElement(s.SQ,{form:y,name:"fieldsSetting",show:!0}))},{key:"Tab-2",label:r.t("Filter"),children:o().createElement(k,null,o().createElement(s.p8,{form:m,dataScope:x,name:"filterSetting",show:!0}))},{key:"Tab-3",label:r.t("Sort"),children:o().createElement(k,null,o().createElement(s.Du,{form:b,name:"sortSetting",show:!0}))},{key:"Tab-4",label:r.t("Preview"),children:o().createElement(k,null,o().createElement(s.lN,{formData:h,show:!0}))}];return o().createElement(o().Fragment,null,o().createElement(f.CQ.Provider,{value:new f.kw(O)},o().createElement(i,{title:r.t("Edit datasource")}),o().createElement(c.Tabs,{defaultActiveKey:"Tab-0",items:C,onChange:function(){var e={},t=!0,r=!1,n=void 0;try{for(var o,l=g[Symbol.iterator]();!(t=(o=l.next()).done);t=!0){var a=o.value.getFieldsValue(),c=(a.collection,a.datasource,a.collectionName,S(a,["collection","datasource","collectionName"]));e=j({},e,c)}}catch(e){r=!0,n=e}finally{try{t||null==l.return||l.return()}finally{if(r)throw n}}e.filter=x,v(function(t){return j({},t,e)})}}),o().createElement(u,null,o().createElement(c.Flex,{justify:"flex-end",align:"end"},o().createElement(c.Space,null,r.view&&o().createElement(c.Button,{onClick:function(){r.view.close()}},r.t("Cancel")),o().createElement(c.Button,{type:"primary",onClick:function(){var e;return(e=function(){var e,n,o,l,a,c,i,u,s;return function(e,t){var r,n,o,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(a,"next",{value:i(0)}),c(a,"throw",{value:i(1)}),c(a,"return",{value:i(2)}),"function"==typeof Symbol&&c(a,Symbol.iterator,{value:function(){return this}}),a;function i(c){return function(i){var u=[c,i];if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(l=0)),l;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return l.label++,{value:u[1],done:!1};case 5:l.label++,n=u[1],u=[0];continue;case 7:u=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){l=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){l.label=u[1];break}if(6===u[0]&&l.label<o[1]){l.label=o[1],o=u;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(u);break}o[2]&&l.ops.pop(),l.trys.pop();continue}u=t.call(e,l)}catch(e){u=[6,e],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(f){switch(f.label){case 0:f.trys.push([0,10,,11]),e={},n=!0,o=!1,l=void 0,f.label=1;case 1:f.trys.push([1,6,7,8]),a=g[Symbol.iterator](),f.label=2;case 2:if(n=(c=a.next()).done)return[3,5];return[4,c.value.validateFields()];case 3:(i=f.sent()).collection,i.datasource,i.collectionName,u=S(i,["collection","datasource","collectionName"]),e=j({},e,u),f.label=4;case 4:return n=!0,[3,2];case 5:return[3,8];case 6:return s=f.sent(),o=!0,l=s,[3,8];case 7:try{n||null==a.return||a.return()}finally{if(o)throw l}return[7];case 8:return e.filter=x,[4,r.resource.update(t.id,e)];case 9:return f.sent(),r.message.success(r.t("Save datasource successfully")),r.view.close(),[3,11];case 10:return console.error("Validation failed:",f.sent()),[3,11];case 11:return[2]}})},function(){var t=this,r=arguments;return new Promise(function(n,o){var l=e.apply(t,r);function a(e){E(l,n,o,a,c,"next",e)}function c(e){E(l,n,o,a,c,"throw",e)}a(void 0)})})()}},r.t("Submit")))))))};function C(e,t,r,n,o,l,a){try{var c=e[l](a),i=c.value}catch(e){r(e);return}c.done?t(i):Promise.resolve(i).then(n,o)}function D(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var l=e.apply(t,r);function a(e){C(l,n,o,a,c,"next",e)}function c(e){C(l,n,o,a,c,"throw",e)}a(void 0)})}}function T(e,t){var r,n,o,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(a,"next",{value:i(0)}),c(a,"throw",{value:i(1)}),c(a,"return",{value:i(2)}),"function"==typeof Symbol&&c(a,Symbol.iterator,{value:function(){return this}}),a;function i(c){return function(i){var u=[c,i];if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(l=0)),l;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return l.label++,{value:u[1],done:!1};case 5:l.label++,n=u[1],u=[0];continue;case 7:u=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){l=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){l.label=u[1];break}if(6===u[0]&&l.label<o[1]){l.label=o[1],o=u;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(u);break}o[2]&&l.ops.pop(),l.trys.pop();continue}u=t.call(e,l)}catch(e){u=[6,e],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var I=c.Typography.Text,A=function(e){var t,r,n=e.children,l=function(e,t){if(null==e)return{};var r,n,o,l={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,r=Reflect.ownKeys(Object(e));o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}if(l=function(e,t){if(null==e)return{};var r,n,o={},l=Object.getOwnPropertyNames(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}(e,t),Object.getOwnPropertySymbols)for(o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}(e,["children"]),i=(0,a.useFlowContext)();return o().createElement(c.Button,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},l),r=r={onClick:function(){i.viewer.drawer({width:"50%",content:o().createElement(w,null)})}},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),n)},M=(0,a.observer)(function(){var e,t,r=(0,a.useFlowContext)(),n=c.theme.useToken().token,l=r.resource.getData(),s=null!=(e=r.resource.getMeta("count"))?e:l.length,f=r.resource.getPageSize()||16,p=null!=(t=r.resource.getPage())?t:1;return o().createElement(o().Fragment,null,0===l.length?o().createElement("div",{style:{display:"flex",flexDirection:"column",height:"80vh"}},o().createElement(c.Card,{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center"}},o().createElement(c.Empty,{image:c.Empty.PRESENTED_IMAGE_SIMPLE},o().createElement(A,{icon:o().createElement(i.PlusOutlined,null),type:"primary"},o().createElement("span",null,r.t("Create a new datasource")))))):o().createElement("div",{style:{width:"100%",padding:n.paddingXS}},o().createElement(c.Flex,{vertical:!0,gap:"large",style:{width:"100%",minWidth:0}},o().createElement(c.Flex,{justify:"flex-end",align:"center"},o().createElement(A,{icon:o().createElement(i.PlusOutlined,null),type:"primary"},o().createElement("span",null,r.t("Add datasource")))),o().createElement(c.Spin,{spinning:r.resource.loading},o().createElement("div",{style:{display:"grid",gap:n.margin,gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))"}},l.map(function(e){var t=(0,u.dayjs)(e.createdAt),l="".concat(r.t("Created at")," ").concat(t.format("YYYY-MM-DD HH:mm:ss"));return o().createElement(c.Card,{key:e.id,hoverable:!0,variant:"borderless",style:{height:"100%",minWidth:0},styles:{body:{display:"flex",flexDirection:"column",gap:n.margin,height:"100%",minWidth:0}},onClick:function(){r.viewer.drawer({width:"50%",content:o().createElement(F,{record:e})})}},o().createElement(c.Card.Meta,{title:o().createElement(c.Flex,{justify:"space-between",align:"center",gap:"small",style:{minWidth:0}},o().createElement(c.Typography.Text,{ellipsis:{tooltip:e.title},style:{flex:1,minWidth:0}},e.title),o().createElement(c.Switch,{size:"small",checked:e.enabled,onClick:function(t,n){return D(function(){return T(this,function(o){switch(o.label){case 0:return n.stopPropagation(),[4,r.resource.update(e.id,{enabled:t})];case 1:return o.sent(),[2]}})})()}})),description:o().createElement(c.Space,{size:n.marginXS,style:{flexWrap:"wrap",fontSize:n.fontSizeSM}},o().createElement(I,{type:"secondary"},r.t("Collection")),o().createElement(I,{ellipsis:{tooltip:"".concat(e.datasource,"/").concat(e.collectionName)}},"".concat(e.datasource,"/").concat(e.collectionName)),o().createElement(c.Divider,{type:"vertical"}),o().createElement(I,{type:"secondary"},r.t("Limit")),o().createElement(I,null,e.limit))}),o().createElement("div",{style:{minHeight:"calc(".concat(n.fontSize,"px * ").concat(n.lineHeight," * 2)")}},o().createElement(c.Typography.Paragraph,{type:"secondary",ellipsis:{rows:2},style:{marginBottom:0}},e.description)),o().createElement(c.Flex,{align:"center",gap:"small",justify:"space-between",style:{marginTop:"auto",minWidth:0}},o().createElement(c.Tooltip,{title:l},o().createElement(I,{"aria-label":l,type:"secondary",style:{flex:1,fontSize:n.fontSizeSM,minWidth:0},ellipsis:!0},"".concat(r.t("Created at")," ").concat(t.format("YYYY-MM-DD")))),o().createElement(c.Tooltip,{title:r.t("Delete")},o().createElement(c.Button,{type:"link",icon:o().createElement(i.DeleteOutlined,null),onClick:function(t){t.stopPropagation(),c.Modal.confirm({title:r.t("Confirm whether to delete"),icon:o().createElement(i.ExclamationCircleFilled,null),content:r.t("Are you sure delete this datasource?"),okText:r.t("Yes"),okType:"danger",cancelText:r.t("No"),onOk:function(){return D(function(){return T(this,function(t){switch(t.label){case 0:return[4,r.resource.destroy(e.id)];case 1:return t.sent(),r.message.success(r.t("Datasource deleted successfully")),[2]}})})()},onCancel:function(){}})}}))))}))),s>f&&o().createElement(c.Pagination,{current:p,pageSize:f,showSizeChanger:!1,style:{display:"flex",justifyContent:"flex-end"},total:s,onChange:function(e,t){r.resource.setPage(e),r.resource.setPageSize(t),r.resource.refresh()}}))))}),R=r(3079);function _(e,t,r,n,o,l,a){try{var c=e[l](a),i=c.value}catch(e){r(e);return}c.done?t(i):Promise.resolve(i).then(n,o)}function z(e,t,r){return(z="u">typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=N(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(r||e):o.value}})(e,t,r||e)}function N(e){return(N=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function B(e,t){return(B=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Y=function(){return!!e})()}var V=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(){var e,t;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return e=r,t=arguments,e=N(e),function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,Y()?Reflect.construct(e,t||[],N(this).constructor):e.apply(this,t))}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&B(r,e),t=[{key:"onInit",value:function(e){var t=this;z(N(r.prototype),"onInit",this).call(this,e),this.context.defineMethod("t",function(e,r){var n,o;return t.context.i18n.t(e,(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r),o=o={ns:R.MF},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n))})}},{key:"render",value:function(){return o().createElement(M,null)}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(r.prototype,t),r}(a.FlowModel);V.registerFlow({key:"resourceSettings",steps:{initResource:{handler:function(e){var t;return(t=function(){var t;return function(e,t){var r,n,o,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(a,"next",{value:i(0)}),c(a,"throw",{value:i(1)}),c(a,"return",{value:i(2)}),"function"==typeof Symbol&&c(a,Symbol.iterator,{value:function(){return this}}),a;function i(c){return function(i){var u=[c,i];if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(l=0)),l;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return l.label++,{value:u[1],done:!1};case 5:l.label++,n=u[1],u=[0];continue;case 7:u=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){l=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){l.label=u[1];break}if(6===u[0]&&l.label<o[1]){l.label=o[1],o=u;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(u);break}o[2]&&l.ops.pop(),l.trys.pop();continue}u=t.call(e,l)}catch(e){u=[6,e],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:return e.useResource("MultiRecordResource"),(t=e.resource).setDataSourceKey(l.DEFAULT_DATA_SOURCE_KEY),t.setResourceName("aiContextDatasources"),t.setRequestParameters({sort:["-createdAt"]}),t.setPageSize(16),[4,t.refresh()];case 1:return r.sent(),[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,o){var l=t.apply(e,r);function a(e){_(l,n,o,a,c,"next",e)}function c(e){_(l,n,o,a,c,"throw",e)}a(void 0)})})()}}}});var W=function(){var e=(0,l.useApp)().flowEngine.createModel({use:V});return o().createElement(a.FlowModelRenderer,{model:e})}}}]);