@nocobase/plugin-ai 2.2.0-beta.17 → 2.2.0-beta.18

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 (68) hide show
  1. package/dist/ai/docs/nocobase/ai-dev/watermark-plugin.md +2 -0
  2. package/dist/ai/docs/nocobase/api/cli/api/resource/create.md +4 -3
  3. package/dist/ai/docs/nocobase/plugin-development/build.md +10 -4
  4. package/dist/ai/docs/nocobase/plugin-development/client/appendix/faq.md +1 -1
  5. package/dist/ai/docs/nocobase/plugin-development/client/examples/custom-action.md +2 -0
  6. package/dist/ai/docs/nocobase/plugin-development/client/examples/custom-block.md +2 -0
  7. package/dist/ai/docs/nocobase/plugin-development/client/examples/custom-field.md +2 -0
  8. package/dist/ai/docs/nocobase/plugin-development/client/examples/fullstack-plugin.md +2 -0
  9. package/dist/ai/docs/nocobase/plugin-development/client/examples/settings-page.md +2 -0
  10. package/dist/ai/docs/nocobase/plugin-development/common/i18n.md +3 -3
  11. package/dist/ai/docs/nocobase/plugin-development/server/cache.md +1 -1
  12. package/dist/ai/docs/nocobase/plugin-development/server/collections.md +0 -6
  13. package/dist/ai/docs/nocobase/plugin-development/server/command.md +2 -2
  14. package/dist/ai/docs/nocobase/plugin-development/server/context.md +2 -2
  15. package/dist/ai/docs/nocobase/plugin-development/server/i18n.md +4 -4
  16. package/dist/ai/docs/nocobase/plugin-development/write-your-first-plugin.md +91 -43
  17. package/dist/ai/docs/nocobase/users-permissions/sync/index.md +8 -1
  18. package/dist/ai/docs/nocobase/users-permissions/sync/sources/dingtalk.md +138 -0
  19. package/dist/ai/docs/nocobase/users-permissions/sync/sources/ldap.md +87 -0
  20. package/dist/client/{705.19b642db34de438a.js → 705.a4fe26945d175e8a.js} +1 -1
  21. package/dist/client/index.js +3 -3
  22. package/dist/client-v2/420.a5b929a5e7f330be.js +10 -0
  23. package/dist/client-v2/{705.8dc34d43f02f322c.js → 705.f2e1b26a3f000075.js} +1 -1
  24. package/dist/client-v2/ai-employees/chatbox/hooks/reasoning-stream.d.ts +10 -0
  25. package/dist/client-v2/ai-employees/chatbox/stores/chat-box.d.ts +0 -2
  26. package/dist/client-v2/index.js +3 -3
  27. package/dist/client-v2/llm-providers/forms.d.ts +2 -0
  28. package/dist/client-v2/llm-providers/index.d.ts +1 -0
  29. package/dist/client-v2/models/ai-employees/AIEmployeeShortcutModel.d.ts +1 -0
  30. package/dist/client-v2/repositories/AIConfigRepository.d.ts +2 -0
  31. package/dist/externalVersion.js +18 -16
  32. package/dist/locale/en-US.json +3 -4
  33. package/dist/locale/zh-CN.json +3 -4
  34. package/dist/node_modules/@langchain/mistralai/package.json +1 -1
  35. package/dist/node_modules/@langchain/xai/package.json +1 -1
  36. package/dist/node_modules/fs-extra/package.json +1 -1
  37. package/dist/node_modules/jsonrepair/package.json +1 -1
  38. package/dist/node_modules/just-bash/package.json +1 -1
  39. package/dist/node_modules/nodejs-snowflake/package.json +1 -1
  40. package/dist/node_modules/openai/package.json +1 -1
  41. package/dist/node_modules/zod/package.json +1 -1
  42. package/dist/server/ai-employees/ai-employee.js +40 -24
  43. package/dist/server/ai-employees/reasoning-stream-state.d.ts +23 -0
  44. package/dist/server/ai-employees/reasoning-stream-state.js +63 -0
  45. package/dist/server/llm-providers/common/reasoning.js +18 -10
  46. package/dist/{client-v2/ai-employees/chatbox/components/DebugPanel.d.ts → server/llm-providers/deepseek/index.d.ts} +2 -2
  47. package/dist/server/llm-providers/deepseek/index.js +32 -0
  48. package/dist/server/llm-providers/deepseek/provider.d.ts +57 -0
  49. package/dist/server/llm-providers/deepseek/provider.js +320 -0
  50. package/dist/server/llm-providers/deepseek/reasoning.d.ts +83 -0
  51. package/dist/server/llm-providers/deepseek/reasoning.js +285 -0
  52. package/dist/server/llm-providers/mistral.d.ts +1 -1
  53. package/dist/server/llm-providers/provider.d.ts +1 -0
  54. package/dist/server/llm-providers/provider.js +3 -0
  55. package/dist/server/llm-providers/shengsuanyun.d.ts +29 -0
  56. package/dist/server/llm-providers/shengsuanyun.js +114 -0
  57. package/dist/server/manager/ai-manager.d.ts +3 -0
  58. package/dist/server/manager/ai-manager.js +7 -2
  59. package/dist/server/plugin.js +2 -0
  60. package/dist/server/types/ai-message.type.d.ts +4 -0
  61. package/dist/swagger/index.d.ts +6 -0
  62. package/dist/swagger/schemas.d.ts +6 -0
  63. package/dist/swagger/schemas.js +6 -0
  64. package/package.json +2 -2
  65. package/dist/client-v2/420.b2aedb1ff71fca0e.js +0 -10
  66. package/dist/client-v2/debug-logger.d.ts +0 -52
  67. package/dist/server/llm-providers/deepseek.d.ts +0 -40
  68. package/dist/server/llm-providers/deepseek.js +0 -174
@@ -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_client_v2=self.webpackChunk_nocobase_plugin_ai_client_v2||[]).push([["420"],{5887:function(e,t,r){r.r(t),r.d(t,{AIEmployeeActionModel:function(){return k},AIEmployeeButtonModel:function(){return o.uq},AIEmployeeShortcutModel:function(){return o.wq},getShortcutTaskIndexFromFieldPath:function(){return o.Ds},normalizeShortcutTasksSkillSettings:function(){return o.im},normalizeShortcutTaskSkillSettings:function(){return o.xi},AIEmployeeShortcutListModel:function(){return s},WorkContext:function(){return o.Zz}});var o=r(7317),n=r(9155),l=r.n(n),c=r(2059),i=r(7694);function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(f=function(){return!!e})()}var s=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,o,n;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return t=r,o=arguments,t=u(t),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,f()?Reflect.construct(t,o||[],u(this).constructor):t.apply(this,o)),(n="isNewModel")in e?Object.defineProperty(e,n,{value:!1,enumerable:!0,configurable:!0,writable:!0}):e[n]=!1,e}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&a(r,e),t=[{key:"render",value:function(){return l().createElement(c.Flex,{gap:"small"},l().createElement(i.DndProvider,null,this.mapSubModels("shortcuts",function(e){var t;return l().createElement(i.Droppable,{model:e,key:e.uid},l().createElement(i.FlowModelRenderer,{key:e.uid,model:e,showFlowSettings:!(null==(t=e.props)?void 0:t.builtIn),extraToolbarItems:[{key:"drag-handler",component:i.DragHandler,sort:1}]}))})))}}],function(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}(r.prototype,t),r}(i.FlowModel),p=r(3485),y=r(7176),b=r(4196),d=r(9488);function m(e,t,r,o,n,l,c){try{var i=e[l](c),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(o,n)}function v(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function O(e,t){return(O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(g=function(){return!!e})()}var w=function(e){var t=e.aiEmployee,r=c.theme.useToken().token;return l().createElement(c.Popover,{content:l().createElement(y.g,{aiEmployee:t}),placement:"leftTop"},l().createElement(c.Flex,{align:"center",style:{padding:"4px 2px"},gap:8},l().createElement(c.Avatar,{shape:"circle",size:36,src:(0,b.H)(t.avatar)}),l().createElement(c.Flex,{vertical:!0},l().createElement("div",{style:{fontSize:r.fontSizeSM,color:r.colorText,lineHeight:1.4}},t.nickname),l().createElement("div",{style:{fontSize:r.fontSizeSM,color:r.colorTextSecondary,lineHeight:1.4}},t.position))))},E="AIChatBoxBlockModel",j=function(e){for(var t,r=e;r;){if((null==(t=r)?void 0:t.use)===E||(null==t?void 0:t.constructor.name)===E)return r.uid;r=r.parent}},S=function(e){var t=j(e);return t?{defaultTaskChatBoxUid:t,tasks:[{chatBoxUid:t}]}:{}},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=h(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,g()?Reflect.construct(e,t||[],h(this).constructor):e.apply(this,t))}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&O(r,e),t=[{key:"defineChildren",value:function(e){var t;return(t=function(){var t,r;return function(e,t){var r,o,n,l={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(c,"next",{value:u(0)}),i(c,"throw",{value:u(1)}),i(c,"return",{value:u(2)}),"function"==typeof Symbol&&i(c,Symbol.iterator,{value:function(){return this}}),c;function u(i){return function(u){var a=[i,u];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,a[0]&&(l=0)),l;)try{if(r=1,o&&(n=2&a[0]?o.return:a[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,a[1])).done)return n;switch(o=0,n&&(a=[2&a[0],n.value]),a[0]){case 0:case 1:n=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,o=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!(n=(n=l.trys).length>0&&n[n.length-1])&&(6===a[0]||2===a[0])){l=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]<n[3])){l.label=a[1];break}if(6===a[0]&&l.label<n[1]){l.label=n[1],n=a;break}if(n&&l.label<n[2]){l.label=n[2],l.ops.push(a);break}n[2]&&l.ops.pop(),l.trys.pop();continue}a=t.call(e,l)}catch(e){a=[6,e],o=0}finally{r=n=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}}}(this,function(o){switch(o.label){case 0:return[4,e.aiConfigRepository.getAIEmployees()];case 1:return t=o.sent(),r=S(e.model),[2,null==t?void 0:t.filter(function(e){return(null==e?void 0:e.deprecated)!==!0&&(null==e?void 0:e.category)!=="developer"}).map(function(t){var o,n;return{key:t.username,label:l().createElement(w,{aiEmployee:t}),createModelOptions:{use:"AIEmployeeButtonModel",props:(o=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){v(e,t,r[t])})}return e}({aiEmployee:{username:t.username},context:{workContext:[{type:"flow-model",uid:e.model.uid}]}},r),n=n={auto:!1},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(n)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(n,e))}),o)}}})]}})},function(){var e=this,r=arguments;return new Promise(function(o,n){var l=t.apply(e,r);function c(e){m(l,o,n,c,i,"next",e)}function i(e){m(l,o,n,c,i,"throw",e)}c(void 0)})})()}}],function(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}(r,t),r}(p.ActionModel);v(k,"scene",p.ActionSceneEnum.all),k.define({label:(0,d.MZ)("AI employees"),sort:8e3}),p.CollectionActionGroupModel.registerActionModels({AIEmployeeActionModel:k}),p.RecordActionGroupModel.registerActionModels({AIEmployeeActionModel:k}),p.FormActionGroupModel.registerActionModels({AIEmployeeActionModel:k}),p.PopupSubTableFormActionGroupModel.registerActionModels({AIEmployeeActionModel:k})}}]);
@@ -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_client_v2=self.webpackChunk_nocobase_plugin_ai_client_v2||[]).push([["705"],{2951:function(e,t,n){n.d(t,{X:function(){return r}});function r(e){return null}},4893:function(e,t,n){n.d(t,{f:function(){return f}});var r=n(9155),l=n.n(r),o=n(7375),a=n(2059);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var o=[],a=!0,i=!1;try{for(l=l.call(e);!(a=(n=l.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==l.return||l.return()}finally{if(i)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(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 c=function(e){return Array.from({length:e},function(e,t){return String(t)})},s=function(e,t,n){var r=e.slice(),l=u(r.splice(t,1),1)[0];return r.splice(n,0,l),r},m=function(e,t,n){var r=Number(e);return Number.isNaN(r)?e:r===t?String(n):t<n&&r>t&&r<=n?String(r-1):t>n&&r>=n&&r<t?String(r+1):e},f=function(e){var t=e.value,n=e.onChange,i=e.defaultValue,f=e.getDefaultValue,d=e.addText,p=e.itemTitle,v=e.size,g=e.bordered,y=e.defaultOpenPanelCount,b=void 0===y?5:y,h=e.renderHeader,E=e.renderItem,S=a.theme.useToken().token,k=Array.isArray(t)?t:[],w=u((0,r.useState)(function(){return c(Math.min(k.length,b))}),2),A=w[0],j=w[1];(0,r.useEffect)(function(){j(function(e){var t=e.filter(function(e){return Number(e)<k.length});return t.length>0||0===k.length?t:c(Math.min(k.length,b))})},[b,k.length]);var x=(0,r.useMemo)(function(){return k.map(function(e,t){return{key:String(t),label:h?h(e,t):"".concat(p," ").concat(t+1),extra:l().createElement(a.Space,{size:4,onClick:function(e){return e.stopPropagation()}},l().createElement(a.Button,{type:"text",size:"small","aria-label":"move-up",icon:l().createElement(o.UpOutlined,null),disabled:0===t,onClick:function(){0!==t&&(null==n||n(s(k,t,t-1)),j(function(e){return e.map(function(e){return m(e,t,t-1)})}))}}),l().createElement(a.Button,{type:"text",size:"small","aria-label":"move-down",icon:l().createElement(o.DownOutlined,null),disabled:t===k.length-1,onClick:function(){t!==k.length-1&&(null==n||n(s(k,t,t+1)),j(function(e){return e.map(function(e){return m(e,t,t+1)})}))}}),l().createElement(a.Button,{type:"text",size:"small","aria-label":"delete",icon:l().createElement(o.DeleteOutlined,null),onClick:function(){var e=k.filter(function(e,n){return n!==t});null==n||n(e),j(function(n){var r;return r=e.length,n.filter(function(e){return Number(e)!==t}).map(function(e){var n=Number(e);return n>t?String(n-1):e}).filter(function(e){return Number(e)<r})})}})),children:E(e,t),forceRender:!0}})},[p,k,n,h,E]);return l().createElement(a.Flex,{vertical:!0,gap:"middle"},k.length>0?l().createElement(a.Collapse,{size:void 0===v?"small":v,bordered:void 0===g||g,activeKey:A,items:x,onChange:function(e){return j(Array.isArray(e)?e.map(String):[String(e)])}}):l().createElement(a.Empty,{style:{border:"".concat(S.lineWidth,"px dashed ").concat(S.colorBorder),borderRadius:S.borderRadiusLG,margin:0,padding:S.padding}}),l().createElement(a.Button,{block:!0,type:"dashed",icon:l().createElement(o.PlusOutlined,null),onClick:function(){var e=f?f():i,t=k.concat(e);null==n||n(t),j(function(e){return Array.from(new Set(e.concat(String(t.length-1))))})}},d))}},5208:function(e,t,n){n.d(t,{AIEmployeeFieldset:function(){return es}});var r=n(9155),l=n.n(r),o=n(2059),a=n(7375),i=n(5477),u=n(4221),c=n(9488),s=n(7694),m=n(1204),f=n(3617),d=(0,s.observer)(function(e){var t=e.value,n=e.onChange,o=(0,f.M)(),a=o.aiEmployees,i=(0,r.useMemo)(function(){return a.find(function(e){return e.username===t})},[a,t]);return(0,r.useEffect)(function(){o.getAIEmployees()},[o]),l().createElement(m.Y,{aiEmployees:a,currentEmployee:i,onSelect:function(e){return null==n?void 0:n(e.username)}})}),p=n(9180),v=n(5428);"u">typeof window&&void 0!==window.document&&window.document.createElement;let g=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[g.Translate.toString(e),g.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}});var y=n(197),b=n(293);function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function E(){var e,t,n=(e=["\n display: flex;\n width: 100%;\n\n .ant-select {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .ant-btn {\n flex-shrink: 0;\n margin-inline-start: -","px;\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n\n .ant-btn:hover,\n .ant-btn:focus {\n z-index: 2;\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return E=function(){return n},n}function S(e){if(Array.isArray(e)){var t=(function(e){if(Array.isArray(e))return e}(e)||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var l=[],o=!0,a=!1;try{for(r=r.call(e);!(o=(t=r.next()).done)&&(l.push(t.value),1!==l.length);o=!0);}catch(e){a=!0,n=e}finally{try{o||null==r.return||r.return()}finally{if(a)throw n}}return l}}(e)||function(e){if(e){if("string"==typeof e)return h(e,1);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 h(e,1)}}(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.")}())[0];return null==t?void 0:String(t)}return null==e?void 0:String(e)}function k(e){return e.isForeignKey||"context"===e.type?"users"===e.target:"users"===e.collectionName&&"id"===e.name}function w(e){var t,n=null!=(t=null==e?void 0:e.paths)?t:[];return n.length?"{{".concat(n.join("."),"}}"):""}function A(e){if("string"==typeof e){var t=e.trim().match(/^\{\{\s*(.+?)\s*\}\}$/);if(t)return t[1].split(".")}}function j(e){var t,n=e.value,r=e.onChange,a=o.theme.useToken().token,u="string"==typeof(t=S(n))&&t.includes("{{")?S(n):void 0,c=(0,y.useWorkflowVariableOptions)({types:[k]}),m=(0,i.css)(E(),a.lineWidth);return l().createElement(o.Space.Compact,{className:m},l().createElement(b.l,{manual:!1,fieldNames:{label:"nickname",value:"id"},service:{resource:"users"},value:u?void 0:n,onChange:function(e){return null==r?void 0:r(e)}}),l().createElement(s.FlowContextSelector,{value:u,metaTree:c,parseValueToPath:A,formatPathToValue:w,onlyLeafSelectable:!0,dropdownFooter:null,onChange:function(e){e&&(null==r||r(e))}}))}function x(){var e=(0,c.kj)();return l().createElement(o.Form.Item,{name:["config","userId"],label:e("Operator"),tooltip:e("Complete the task using operator permissions"),rules:[{required:!0}]},l().createElement(j,null))}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function C(e,t,n,r,l,o,a){try{var i=e[o](a),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,l)}function F(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function I(){var e=F(["\n width: 100%;\n padding: ","px;\n border: ","px dashed ",";\n "]);return I=function(){return e},e}function T(){var e=F(["\n width: 100%;\n "]);return T=function(){return e},e}function M(){var e=F(["\n width: 100%;\n\n &.ant-space.ant-space-horizontal {\n flex-wrap: nowrap;\n }\n\n > .ant-space-item:nth-child(2) {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .ant-form-item {\n margin-bottom: 0;\n }\n "]);return M=function(){return e},e}var z=l().createContext(null);function N(e){var t,n=e.value,r=e.onChange,a=o.theme.useToken().token,u=(0,i.css)(I(),a.paddingSM,a.lineWidth,a.colorBorder);return null===n||(void 0===n?"undefined":n&&"u">typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)!="object"||Array.isArray(n)?l().createElement(j,{value:n,onChange:function(e){return null==r?void 0:r(e)}}):l().createElement("div",{className:u},l().createElement(y.FilterDynamicComponent,{collection:"users",value:null!=(t=n.filter)?t:{},onChange:function(e){return null==r?void 0:r({filter:null!=e?e:{}})}}))}function P(e){var t,n,r=e.disabled,i=(0,c.kj)(),u=o.theme.useToken().token,s=l().useContext(z);return l().createElement(o.Button,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ref:r||null==s?void 0:s.setActivatorNodeRef,"aria-label":i("Drag sort"),disabled:r,icon:l().createElement(a.MenuOutlined,null),type:"text",size:"small"},r?{}:null==s?void 0:s.attributes,r?{}:null==s?void 0:s.listeners),n=n={style:{color:u.colorTextTertiary,cursor:r?"not-allowed":"grab"}},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function V(e){var t=e.children,n=e.className,r=e.disabled,a=e.id,i=(0,v.useSortable)({disabled:r,id:a}),u=i.attributes,c=i.isDragging,s=i.listeners,m=i.setActivatorNodeRef,f=i.setNodeRef,d=i.transform,p=i.transition,y=o.theme.useToken().token;return l().createElement(z.Provider,{value:{attributes:u,listeners:s,setActivatorNodeRef:m}},l().createElement(o.Space,{ref:f,align:"center",className:n,size:y.marginXXS,style:{position:c?"relative":void 0,zIndex:c?1:void 0,transform:g.Transform.toString(d),transition:p}},t))}function _(){var e,t=(0,c.kj)(),n=o.Form.useFormInstance(),u=o.theme.useToken().token,s=(0,p.useSensors)((0,p.useSensor)(p.PointerSensor,{activationConstraint:{distance:1}})),m=function(e){if(Array.isArray(e))return e}(e=(0,r.useState)(!1))||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var l=[],o=!0,a=!1;try{for(r=r.call(e);!(o=(t=r.next()).done)&&(l.push(t.value),2!==l.length);o=!0);}catch(e){a=!0,n=e}finally{try{o||null==r.return||r.return()}finally{if(a)throw n}}return l}}(e)||function(e){if(e){if("string"==typeof e)return O(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 O(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.")}(),f=m[0],d=m[1],g=o.Form.useWatch(["config","requiresApproval"],n),y=null!=g?g:n.getFieldValue(["config","requiresApproval"]);if(!(y&&"no_required"!==y))return null;var b=(0,i.css)(T()),h=(0,i.css)(M());return l().createElement(o.Form.Item,{label:t("Assignees"),required:!0},l().createElement(o.Form.List,{name:["config","assignees"],rules:[{validator:function(e,n){var r;return(r=function(){return function(e,t){var n,r,l,o={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(a,"next",{value:u(0)}),i(a,"throw",{value:u(1)}),i(a,"return",{value:u(2)}),"function"==typeof Symbol&&i(a,Symbol.iterator,{value:function(){return this}}),a;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(o=0)),o;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(l=(l=o.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){o.label=c[1];break}if(6===c[0]&&o.label<l[1]){o.label=l[1],l=c;break}if(l&&o.label<l[2]){o.label=l[2],o.ops.push(c);break}l[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(e){if(!Array.isArray(n)||0===n.length)throw Error(t("Assignees is required"));return[2]})},function(){var e=this,t=arguments;return new Promise(function(n,l){var o=r.apply(e,t);function a(e){C(o,n,l,a,i,"next",e)}function i(e){C(o,n,l,a,i,"throw",e)}a(void 0)})})()}}]},function(e,n,r){return l().createElement(o.Space,{direction:"vertical",className:b,size:u.marginXS},l().createElement(p.DndContext,{collisionDetection:p.closestCenter,sensors:s,onDragEnd:function(t){var r=t.active,l=t.over;if(l&&r.id!==l.id){var o=e.findIndex(function(e){return String(e.key)===String(r.id)}),a=e.findIndex(function(e){return String(e.key)===String(l.id)});o<0||a<0||n.move(o,a)}}},l().createElement(v.SortableContext,{items:e.map(function(e){return String(e.key)}),strategy:v.verticalListSortingStrategy},l().createElement(o.Space,{direction:"vertical",className:b,size:u.marginXS},e.map(function(t){return l().createElement(V,{key:t.key,className:h,disabled:e.length<2,id:String(t.key)},l().createElement(P,{disabled:e.length<2}),l().createElement(o.Form.Item,{name:[t.name],noStyle:!0},l().createElement(N,null)),l().createElement(o.Button,{type:"text",size:"small","aria-label":"delete",icon:l().createElement(a.DeleteOutlined,null),onClick:function(){return n.remove(t.name)}}))})))),l().createElement(o.Form.ErrorList,{errors:r.errors}),l().createElement(o.Popover,{trigger:"click",open:f,onOpenChange:d,placement:"bottom",content:l().createElement(o.Space,{direction:"vertical"},l().createElement(o.Button,{type:"text",onClick:function(){n.add(null),d(!1)}},t("Select users")),l().createElement(o.Button,{type:"text",onClick:function(){n.add({filter:{}}),d(!1)}},t("Query users")))},l().createElement(o.Button,{block:!0,type:"dashed","aria-label":t("Add assignee"),icon:l().createElement(a.PlusOutlined,null)},t("Add assignee"))))}))}function D(e){var t=e.value,n=e.onChange,a=(0,c.kj)(),i=!0===t?"human_decision":!1===t||null==t?"no_required":u.fd.includes(t)?t:"no_required";return(0,r.useEffect)(function(){t!==i&&(null==n||n(i))},[i,n,t]),l().createElement(o.Radio.Group,{value:i,onChange:function(e){return null==n?void 0:n(e.target.value)},options:[{label:l().createElement(o.Tooltip,{title:a("Do not initiate approval")},l().createElement("span",null,a("No required"))),value:"no_required"},{label:l().createElement(o.Tooltip,{title:a("Initiate approval when needed")},l().createElement("span",null,a("AI decision"))),value:"ai_decision"},{label:l().createElement(o.Tooltip,{title:a("Always initiate approval")},l().createElement("span",null,a("Human decision"))),value:"human_decision"}]})}function X(){var e=(0,c.kj)();return l().createElement(o.Form.Item,{name:["config","requiresApproval"],label:e("Approval & Notice"),tooltip:e("Configure whether task output should be sent to specified users for notification, carbon copy, or approval"),initialValue:"no_required"},l().createElement(D,null))}var L=n(2951),W=n(4893),q={type:"attachments"};function R(){var e,t=(0,c.kj)(),n=o.Form.useFormInstance(),a=(0,s.useFlowEngine)(),i=o.Form.useWatch(["config","files"],n),u=Array.isArray(e=null!=i?i:n.getFieldValue(["config","files"]))?e:[],m=(0,r.useMemo)(function(){var e,t,n,r,l,o,i,u;return(null!=(t=null!=(n=null==(u=null==(e=a.context.dataSourceManager)||null==(r=e.getDataSource)?void 0:r.call(e,"main"))||null==(l=u.getCollections)?void 0:l.call(u))?n:null==u||null==(i=u.collectionManager)||null==(o=i.getCollections)?void 0:o.call(i))?t:[]).filter(function(e){var t;return!e.hidden&&(null==(t=e.options)?void 0:t.template)==="file"&&e.name}).map(function(e){var t;return{label:null!=(t=e.title)?t:e.name,value:e.name}})},[a.context.dataSourceManager]),f=(0,r.useCallback)(function(e){n.setFieldValue(["config","files"],e)},[n]),d=(0,r.useCallback)(function(e,t){f(u.map(function(n,r){return r===e?function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},n,t):n}))},[u,f]);return l().createElement(l().Fragment,null,l().createElement(o.Form.Item,{name:["config","files"],noStyle:!0},l().createElement(L.X,null)),l().createElement(W.f,{value:u,onChange:f,defaultValue:q,getDefaultValue:function(){return{type:"attachments"}},addText:t("Add file"),itemTitle:t("Files"),renderHeader:function(e,n){return"".concat(t("Files")," ").concat(n+1)},renderItem:function(e,n){return l().createElement(l().Fragment,null,l().createElement(o.Form.Item,{label:t("Attachment Type"),required:!0},l().createElement(o.Select,{value:e.type,options:[{label:t("File (load via Attachment)"),value:"attachments"},{label:t("File (load via Files collection)"),value:"file_id"},{label:t("File (load via URL)"),value:"file_url"}],onChange:function(t){return d(n,{type:t,collection:"file_id"===t?e.collection:void 0})}})),"file_id"===e.type?l().createElement(o.Form.Item,{label:t("Collection"),required:!0},l().createElement(o.Select,{value:e.collection,options:m,onChange:function(e){return d(n,{collection:e})}})):null,l().createElement(o.Form.Item,{label:function(e,t){switch(t){case"attachments":return e("Attachment field");case"file_id":return e("ID");case"file_url":return e("URL");default:return e("Unknown")}}(t,e.type),required:!0},l().createElement(y.WorkflowVariableInput,{value:e.value,onChange:function(e){return d(n,{value:e})}})))}}))}function B(){var e=(0,c.kj)();return l().createElement(l().Fragment,null,l().createElement(o.Form.Item,{name:["config","message","system"],label:e("Background"),tooltip:e("Additional system prompt appended to the AI employee’s definition, used to refine instructions")},l().createElement(y.WorkflowVariableTextArea,{rows:10})),l().createElement(o.Form.Item,{name:["config","message","user"],label:e("Default user message"),tooltip:e("Enter the specific task description")},l().createElement(y.WorkflowVariableTextArea,{rows:10})))}var U=n(3734);function H(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var $=(0,s.observer)(function(e){var t=e.value,n=e.onChange,a=(0,c.kj)(),i=o.Form.useFormInstance(),u=o.Form.useWatch(["config","username"],i),s=(0,f.M)(),m="string"==typeof u?s.getAIEmployeesMap()[u]:void 0,d=s.llmServices,p=s.llmServicesLoading||s.aiEmployeesLoading;(0,r.useEffect)(function(){s.getLLMServices(),s.getAIEmployees()},[s]);var v=(0,r.useMemo)(function(){var e=new Set((0,U.lf)(m,(0,U.i2)(d)).map(function(e){return"".concat(e.llmService,":").concat(e.model)}));return d.map(function(t){return{label:t.llmServiceTitle,options:t.enabledModels.filter(function(n){return e.has("".concat(t.llmService,":").concat(n.value))}).map(function(e){return{label:"".concat(t.llmServiceTitle," / ").concat(e.label),value:"".concat(t.llmService,":").concat(e.value)}})}}).filter(function(e){return e.options.length>0})},[m,d]),g=(0,r.useMemo)(function(){return new Set(v.flatMap(function(e){return e.options.map(function(e){return e.value})}))},[v]),y=(null==t?void 0:t.llmService)&&t.model?"".concat(t.llmService,":").concat(t.model):void 0;return(0,r.useEffect)(function(){y&&!g.has(y)&&(null==n||n(null))},[n,g,y]),l().createElement(o.Select,{allowClear:!0,showSearch:!0,value:y,placeholder:a("Use default model"),options:v,loading:p,notFoundContent:p?l().createElement(o.Spin,{size:"small"}):null,optionFilterProp:"label",onChange:function(e){if(!e){null==n||n(null);return}var t,r=function(e){if(Array.isArray(e))return e}(t=e.split(":"))||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var l=[],o=!0,a=!1;try{for(r=r.call(e);!(o=(t=r.next()).done)&&(l.push(t.value),2!==l.length);o=!0);}catch(e){a=!0,n=e}finally{try{o||null==r.return||r.return()}finally{if(a)throw n}}return l}}(t)||function(e){if(e){if("string"==typeof e)return H(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 H(e,2)}}(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.")}(),l=r[0],o=r[1];null==n||n({llmService:l,model:o})}})});function G(){var e=(0,c.kj)();return l().createElement(o.Form.Item,{name:["config","model"],label:e("Model"),tooltip:e("Leave empty to use AI employee or global default model.")},l().createElement($,null))}function J(){var e,t,n=(e=["\n display: flex;\n flex-direction: column;\n row-gap: ","px;\n margin-bottom: ","px;\n\n .nb-ai-capability-label {\n display: inline-flex;\n align-items: center;\n column-gap: ","px;\n color: ",";\n font-size: ","px;\n font-weight: ",";\n line-height: ",";\n white-space: nowrap;\n }\n\n .nb-ai-capability-control {\n width: 100%;\n min-width: 0;\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return J=function(){return n},n}var Q="preset",K="custom",Y=function(e){return null!==e&&(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&!Array.isArray(e)},Z=function(e){return Y(e)&&"string"==typeof e.name};function ee(e){var t=e.title,n=e.description,r=(0,c.kj)(),a=o.theme.useToken().token,i=t?r(t):"",u=n?r(n):"";return l().createElement("div",{style:{display:"flex",flexDirection:"column",gap:a.marginXXS,width:"100%",minWidth:0,padding:"".concat(a.paddingXXS,"px 0")}},l().createElement("div",null,i),u?l().createElement(o.Typography.Text,{type:"secondary",style:{fontSize:a.fontSizeSM},ellipsis:{tooltip:u}},u):null)}var et=(0,s.observer)(function(e){var t=e.type,n=e.value,a=e.onChange,i=(0,c.kj)(),u=o.theme.useToken().token,s=o.Form.useFormInstance(),m=o.Form.useWatch(["config","username"],s),d=(0,f.M)(),p="string"==typeof m?d.getAIEmployeesMap()[m]:void 0,v=(0,r.useMemo)(function(){var e,n,r,l,o;return"skills"===t?null!=(l=null==p||null==(o=p.skillSettings)?void 0:o.skills)?l:[]:null!=(e=null==p||null==(r=p.skillSettings)||null==(n=r.tools)?void 0:n.map(function(e){return e.name}))?e:[]},[p,t]),g=(0,r.useMemo)(function(){return[{label:l().createElement(o.Tooltip,{title:i("skills"===t?"Use the AI employee's default skills for this task.":"Use the AI employee's default tools for this task.")},l().createElement("span",null,i("Preset"))),value:Q},{label:l().createElement(o.Tooltip,{title:i("skills"===t?"Select the specific skills this task is allowed to use.":"Select the specific tools this task is allowed to use.")},l().createElement("span",null,i("Custom"))),value:K}]},[i,t]),y=Array.isArray(n)?K:Q,h="skills"===t?"aiSkills":"aiTools";return(0,r.useEffect)(function(){d.getAIEmployees()},[d]),l().createElement(o.Space,{direction:"vertical",size:u.marginXXS,style:{width:"100%"}},l().createElement(o.Radio.Group,{value:y,onChange:function(e){if(e.target.value===Q){null==a||a(void 0);return}null==a||a(v)},options:g}),y===K?l().createElement(b.l,{key:"string"==typeof m?m:void 0,multiple:!0,value:n,onChange:function(e){null==a||a(null==e?void 0:e.filter(function(e){return v.includes(e)}))},manual:!1,popupMatchSelectWidth:!0,placeholder:i("skills"===t?"Leave empty to disable skills.":"Leave empty to disable tools."),fieldNames:{label:"title",value:"name"},service:{resource:h,action:"listBinding",params:{username:m}},optionFilter:Z,optionRender:function(e){var t=e.data;return Z(t)?l().createElement(ee,{title:t.title,description:t.description}):null}}):null)});function en(e){var t=e.name,n=e.label,r=e.tooltip,u=e.children,c=o.theme.useToken().token,s=(0,i.css)(J(),c.marginXXS,c.margin,c.marginXXS,c.colorText,c.fontSize,c.fontWeightStrong,c.lineHeight);return l().createElement("div",{className:s},l().createElement("span",{className:"nb-ai-capability-label"},n,l().createElement(o.Tooltip,{title:r},l().createElement(a.QuestionCircleOutlined,null))),l().createElement("div",{className:"nb-ai-capability-control"},l().createElement(o.Form.Item,{name:t,noStyle:!0},u)))}function er(){var e=(0,c.kj)();return l().createElement(l().Fragment,null,l().createElement(o.Form.Item,{name:["config","skillSettings","skillsVersion"],initialValue:2,hidden:!0},l().createElement(L.X,null)),l().createElement(o.Form.Item,{name:["config","skillSettings","toolsVersion"],initialValue:2,hidden:!0},l().createElement(L.X,null)),l().createElement(en,{name:["config","skillSettings","skills"],label:e("Skills"),tooltip:e("Configure the skills available to this task")},l().createElement(et,{type:"skills"})),l().createElement(en,{name:["config","skillSettings","tools"],label:e("Tools"),tooltip:e("Configure the tools available to this task")},l().createElement(et,{type:"tools"})))}function el(){var e=(0,c.kj)(),t=(0,r.useMemo)(function(){return JSON.stringify({type:"object",properties:{result:{title:e("Response result"),type:"string",description:"The text message sent to the user"}}},null,2)},[e]);return l().createElement(o.Form.Item,{name:["config","structuredOutput","schema"],label:e("Structured output"),tooltip:e("Define the data structure of the final output of the node"),initialValue:t,rules:[{required:!0}],extra:l().createElement(o.Space,{size:4},l().createElement("span",null,e("Syntax references")),l().createElement(o.Typography.Link,{href:"https://json-schema.org",target:"_blank",rel:"noreferrer"},"JSON Schema"))},l().createElement(y.WorkflowVariableJsonTextArea,{json5:!0,autoSize:{minRows:10}}))}var eo=(0,s.observer)(function(e){var t=e.value,n=e.onChange,a=(0,c.kj)(),i=o.Form.useFormInstance(),u=(0,f.M)(),s=o.Form.useWatch(["config","model"],i),m=(0,r.useMemo)(function(){var e=u.llmServices;return(null==s?void 0:s.llmService)?e.find(function(e){return e.llmService===s.llmService}):void 0},[u.llmServices,s]),d=!!s&&(null==m?void 0:m.supportWebSearch)===!1;return(0,r.useEffect)(function(){u.getLLMServices()},[u]),(0,r.useEffect)(function(){d&&t&&(null==n||n(!1))},[d,n,t]),l().createElement(o.Space,{direction:"vertical"},l().createElement(o.Switch,{checked:!!t,disabled:d,onChange:function(e){return null==n?void 0:n(e)}}),d?l().createElement(o.Typography.Text,{type:"secondary"},a("Web search not supported")):null)});function ea(){var e=(0,c.kj)();return l().createElement(o.Form.Item,{name:["config","webSearch"],label:e("Web search"),tooltip:e("Enable the LLM to use web search tools during task execution"),initialValue:!1},l().createElement(eo,null))}function ei(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function eu(){var e=ei(["\n .ant-form-item-control-input-content > .ant-select,\n .ant-form-item-control-input-content > .ant-space-compact {\n width: 100%;\n }\n "]);return eu=function(){return e},e}function ec(){var e=ei(["\n display: flex;\n align-items: center;\n column-gap: ","px;\n margin-bottom: ","px;\n\n .nb-ai-employee-inline-label {\n display: inline-flex;\n align-items: center;\n column-gap: ","px;\n color: ",";\n font-size: ","px;\n font-weight: ",";\n line-height: ",";\n }\n "]);return ec=function(){return e},e}function es(){var e=(0,c.kj)(),t=o.Form.useFormInstance(),n=o.theme.useToken().token,r=(0,i.css)(eu()),s=(0,i.css)(ec(),n.marginXS,n.margin,n.marginXXS,n.colorText,n.fontSize,n.fontWeightStrong,n.lineHeight);return l().createElement(o.Tabs,{items:[{key:"task",label:e("Task"),forceRender:!0,children:l().createElement("div",{className:r},l().createElement("div",{className:s},l().createElement("span",{className:"nb-ai-employee-inline-label"},e("AI employee"),l().createElement(o.Tooltip,{title:e("Choose the AI employee for this task")},l().createElement(a.QuestionCircleOutlined,null))),l().createElement(o.Form.Item,{name:["config","username"],initialValue:u.zw,noStyle:!0},l().createElement(d,{onChange:function(e){t.setFieldValue(["config","username"],e),t.setFieldValue(["config","skillSettings","skills"],void 0),t.setFieldValue(["config","skillSettings","tools"],void 0)}}))),l().createElement(G,null),l().createElement(x,null),l().createElement(B,null),l().createElement(o.Form.Item,{label:e("Attachments"),tooltip:e("Select the file or image to be sent to the LLM")},l().createElement(R,null)),l().createElement(er,null),l().createElement(ea,null))},{key:"feedback",label:e("Feedback & Notification"),forceRender:!0,children:l().createElement("div",{className:r},l().createElement(el,null),l().createElement(X,null),l().createElement(_,null))}]})}}}]);
10
+ "use strict";(self.webpackChunk_nocobase_plugin_ai_client_v2=self.webpackChunk_nocobase_plugin_ai_client_v2||[]).push([["705"],{2951:function(e,t,n){n.d(t,{X:function(){return r}});function r(e){return null}},4893:function(e,t,n){n.d(t,{f:function(){return f}});var r=n(9155),l=n.n(r),o=n(7375),a=n(2059);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var o=[],a=!0,i=!1;try{for(l=l.call(e);!(a=(n=l.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==l.return||l.return()}finally{if(i)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(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 c=function(e){return Array.from({length:e},function(e,t){return String(t)})},s=function(e,t,n){var r=e.slice(),l=u(r.splice(t,1),1)[0];return r.splice(n,0,l),r},m=function(e,t,n){var r=Number(e);return Number.isNaN(r)?e:r===t?String(n):t<n&&r>t&&r<=n?String(r-1):t>n&&r>=n&&r<t?String(r+1):e},f=function(e){var t=e.value,n=e.onChange,i=e.defaultValue,f=e.getDefaultValue,d=e.addText,p=e.itemTitle,v=e.size,g=e.bordered,y=e.defaultOpenPanelCount,b=void 0===y?5:y,h=e.renderHeader,E=e.renderItem,S=a.theme.useToken().token,k=Array.isArray(t)?t:[],w=u((0,r.useState)(function(){return c(Math.min(k.length,b))}),2),A=w[0],j=w[1];(0,r.useEffect)(function(){j(function(e){var t=e.filter(function(e){return Number(e)<k.length});return t.length>0||0===k.length?t:c(Math.min(k.length,b))})},[b,k.length]);var x=(0,r.useMemo)(function(){return k.map(function(e,t){return{key:String(t),label:h?h(e,t):"".concat(p," ").concat(t+1),extra:l().createElement(a.Space,{size:4,onClick:function(e){return e.stopPropagation()}},l().createElement(a.Button,{type:"text",size:"small","aria-label":"move-up",icon:l().createElement(o.UpOutlined,null),disabled:0===t,onClick:function(){0!==t&&(null==n||n(s(k,t,t-1)),j(function(e){return e.map(function(e){return m(e,t,t-1)})}))}}),l().createElement(a.Button,{type:"text",size:"small","aria-label":"move-down",icon:l().createElement(o.DownOutlined,null),disabled:t===k.length-1,onClick:function(){t!==k.length-1&&(null==n||n(s(k,t,t+1)),j(function(e){return e.map(function(e){return m(e,t,t+1)})}))}}),l().createElement(a.Button,{type:"text",size:"small","aria-label":"delete",icon:l().createElement(o.DeleteOutlined,null),onClick:function(){var e=k.filter(function(e,n){return n!==t});null==n||n(e),j(function(n){var r;return r=e.length,n.filter(function(e){return Number(e)!==t}).map(function(e){var n=Number(e);return n>t?String(n-1):e}).filter(function(e){return Number(e)<r})})}})),children:E(e,t),forceRender:!0}})},[p,k,n,h,E]);return l().createElement(a.Flex,{vertical:!0,gap:"middle"},k.length>0?l().createElement(a.Collapse,{size:void 0===v?"small":v,bordered:void 0===g||g,activeKey:A,items:x,onChange:function(e){return j(Array.isArray(e)?e.map(String):[String(e)])}}):l().createElement(a.Empty,{style:{border:"".concat(S.lineWidth,"px dashed ").concat(S.colorBorder),borderRadius:S.borderRadiusLG,margin:0,padding:S.padding}}),l().createElement(a.Button,{block:!0,type:"dashed",icon:l().createElement(o.PlusOutlined,null),onClick:function(){var e=f?f():i,t=k.concat(e);null==n||n(t),j(function(e){return Array.from(new Set(e.concat(String(t.length-1))))})}},d))}},5208:function(e,t,n){n.d(t,{AIEmployeeFieldset:function(){return em}});var r=n(9155),l=n.n(r),o=n(2059),a=n(7375),i=n(5477),u=n(4221),c=n(9488),s=n(7694),m=n(1204),f=n(3617),d=(0,s.observer)(function(e){var t=e.value,n=e.onChange,o=(0,f.M)(),a=o.aiEmployees,i=(0,r.useMemo)(function(){return a.find(function(e){return e.username===t})},[a,t]);return(0,r.useEffect)(function(){o.getAIEmployees()},[o]),l().createElement(m.Y,{aiEmployees:a,currentEmployee:i,onSelect:function(e){return null==n?void 0:n(e.username)}})}),p=n(9180),v=n(5428);"u">typeof window&&void 0!==window.document&&window.document.createElement;let g=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[g.Translate.toString(e),g.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}});var y=n(197),b=n(293);function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function E(){var e,t,n=(e=["\n display: flex;\n width: 100%;\n\n .ant-select {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .ant-btn {\n flex-shrink: 0;\n margin-inline-start: -","px;\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n\n .ant-btn:hover,\n .ant-btn:focus {\n z-index: 2;\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return E=function(){return n},n}function S(e){if(Array.isArray(e)){var t=(function(e){if(Array.isArray(e))return e}(e)||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var l=[],o=!0,a=!1;try{for(r=r.call(e);!(o=(t=r.next()).done)&&(l.push(t.value),1!==l.length);o=!0);}catch(e){a=!0,n=e}finally{try{o||null==r.return||r.return()}finally{if(a)throw n}}return l}}(e)||function(e){if(e){if("string"==typeof e)return h(e,1);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 h(e,1)}}(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.")}())[0];return null==t?void 0:String(t)}return null==e?void 0:String(e)}function k(e){return e.isForeignKey||"context"===e.type?"users"===e.target:"users"===e.collectionName&&"id"===e.name}function w(e){var t,n=null!=(t=null==e?void 0:e.paths)?t:[];return n.length?"{{".concat(n.join("."),"}}"):""}function A(e){if("string"==typeof e){var t=e.trim().match(/^\{\{\s*(.+?)\s*\}\}$/);if(t)return t[1].split(".")}}function j(e){var t,n=e.value,r=e.onChange,a=o.theme.useToken().token,u="string"==typeof(t=S(n))&&t.includes("{{")?S(n):void 0,c=(0,y.useWorkflowVariableOptions)({types:[k]}),m=(0,i.css)(E(),a.lineWidth);return l().createElement(o.Space.Compact,{className:m},l().createElement(b.l,{manual:!1,fieldNames:{label:"nickname",value:"id"},service:{resource:"users"},value:u?void 0:n,onChange:function(e){return null==r?void 0:r(e)}}),l().createElement(s.FlowContextSelector,{value:u,metaTree:c,parseValueToPath:A,formatPathToValue:w,onlyLeafSelectable:!0,dropdownFooter:null,onChange:function(e){e&&(null==r||r(e))}}))}function x(){var e=(0,c.kj)();return l().createElement(o.Form.Item,{name:["config","userId"],label:e("Operator"),tooltip:e("Complete the task using operator permissions"),rules:[{required:!0}]},l().createElement(j,null))}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function C(e,t,n,r,l,o,a){try{var i=e[o](a),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,l)}function F(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function I(){var e=F(["\n width: 100%;\n padding: ","px;\n border: ","px dashed ",";\n "]);return I=function(){return e},e}function T(){var e=F(["\n width: 100%;\n "]);return T=function(){return e},e}function M(){var e=F(["\n width: 100%;\n\n &.ant-space.ant-space-horizontal {\n flex-wrap: nowrap;\n }\n\n > .ant-space-item:nth-child(2) {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .ant-form-item {\n margin-bottom: 0;\n }\n "]);return M=function(){return e},e}var z=l().createContext(null);function N(e){var t,n=e.value,r=e.onChange,a=o.theme.useToken().token,u=(0,i.css)(I(),a.paddingSM,a.lineWidth,a.colorBorder);return null===n||(void 0===n?"undefined":n&&"u">typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)!="object"||Array.isArray(n)?l().createElement(j,{value:n,onChange:function(e){return null==r?void 0:r(e)}}):l().createElement("div",{className:u},l().createElement(y.FilterDynamicComponent,{collection:"users",value:null!=(t=n.filter)?t:{},onChange:function(e){return null==r?void 0:r({filter:null!=e?e:{}})}}))}function P(e){var t,n,r=e.disabled,i=(0,c.kj)(),u=o.theme.useToken().token,s=l().useContext(z);return l().createElement(o.Button,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ref:r||null==s?void 0:s.setActivatorNodeRef,"aria-label":i("Drag sort"),disabled:r,icon:l().createElement(a.MenuOutlined,null),type:"text",size:"small"},r?{}:null==s?void 0:s.attributes,r?{}:null==s?void 0:s.listeners),n=n={style:{color:u.colorTextTertiary,cursor:r?"not-allowed":"grab"}},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function V(e){var t=e.children,n=e.className,r=e.disabled,a=e.id,i=(0,v.useSortable)({disabled:r,id:a}),u=i.attributes,c=i.isDragging,s=i.listeners,m=i.setActivatorNodeRef,f=i.setNodeRef,d=i.transform,p=i.transition,y=o.theme.useToken().token;return l().createElement(z.Provider,{value:{attributes:u,listeners:s,setActivatorNodeRef:m}},l().createElement(o.Space,{ref:f,align:"center",className:n,size:y.marginXXS,style:{position:c?"relative":void 0,zIndex:c?1:void 0,transform:g.Transform.toString(d),transition:p}},t))}function _(){var e,t=(0,c.kj)(),n=o.Form.useFormInstance(),u=o.theme.useToken().token,s=(0,p.useSensors)((0,p.useSensor)(p.PointerSensor,{activationConstraint:{distance:1}})),m=function(e){if(Array.isArray(e))return e}(e=(0,r.useState)(!1))||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var l=[],o=!0,a=!1;try{for(r=r.call(e);!(o=(t=r.next()).done)&&(l.push(t.value),2!==l.length);o=!0);}catch(e){a=!0,n=e}finally{try{o||null==r.return||r.return()}finally{if(a)throw n}}return l}}(e)||function(e){if(e){if("string"==typeof e)return O(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 O(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.")}(),f=m[0],d=m[1],g=o.Form.useWatch(["config","requiresApproval"],n),y=null!=g?g:n.getFieldValue(["config","requiresApproval"]);if(!(y&&"no_required"!==y))return null;var b=(0,i.css)(T()),h=(0,i.css)(M());return l().createElement(o.Form.Item,{label:t("Assignees"),required:!0},l().createElement(o.Form.List,{name:["config","assignees"],rules:[{validator:function(e,n){var r;return(r=function(){return function(e,t){var n,r,l,o={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(a,"next",{value:u(0)}),i(a,"throw",{value:u(1)}),i(a,"return",{value:u(2)}),"function"==typeof Symbol&&i(a,Symbol.iterator,{value:function(){return this}}),a;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(o=0)),o;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(l=(l=o.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){o.label=c[1];break}if(6===c[0]&&o.label<l[1]){o.label=l[1],l=c;break}if(l&&o.label<l[2]){o.label=l[2],o.ops.push(c);break}l[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(e){if(!Array.isArray(n)||0===n.length)throw Error(t("Assignees is required"));return[2]})},function(){var e=this,t=arguments;return new Promise(function(n,l){var o=r.apply(e,t);function a(e){C(o,n,l,a,i,"next",e)}function i(e){C(o,n,l,a,i,"throw",e)}a(void 0)})})()}}]},function(e,n,r){return l().createElement(o.Space,{direction:"vertical",className:b,size:u.marginXS},l().createElement(p.DndContext,{collisionDetection:p.closestCenter,sensors:s,onDragEnd:function(t){var r=t.active,l=t.over;if(l&&r.id!==l.id){var o=e.findIndex(function(e){return String(e.key)===String(r.id)}),a=e.findIndex(function(e){return String(e.key)===String(l.id)});o<0||a<0||n.move(o,a)}}},l().createElement(v.SortableContext,{items:e.map(function(e){return String(e.key)}),strategy:v.verticalListSortingStrategy},l().createElement(o.Space,{direction:"vertical",className:b,size:u.marginXS},e.map(function(t){return l().createElement(V,{key:t.key,className:h,disabled:e.length<2,id:String(t.key)},l().createElement(P,{disabled:e.length<2}),l().createElement(o.Form.Item,{name:[t.name],noStyle:!0},l().createElement(N,null)),l().createElement(o.Button,{type:"text",size:"small","aria-label":"delete",icon:l().createElement(a.DeleteOutlined,null),onClick:function(){return n.remove(t.name)}}))})))),l().createElement(o.Form.ErrorList,{errors:r.errors}),l().createElement(o.Popover,{trigger:"click",open:f,onOpenChange:d,placement:"bottom",content:l().createElement(o.Space,{direction:"vertical"},l().createElement(o.Button,{type:"text",onClick:function(){n.add(null),d(!1)}},t("Select users")),l().createElement(o.Button,{type:"text",onClick:function(){n.add({filter:{}}),d(!1)}},t("Query users")))},l().createElement(o.Button,{block:!0,type:"dashed","aria-label":t("Add assignee"),icon:l().createElement(a.PlusOutlined,null)},t("Add assignee"))))}))}function D(e){var t=e.value,n=e.onChange,a=(0,c.kj)(),i=!0===t?"human_decision":!1===t||null==t?"no_required":u.fd.includes(t)?t:"no_required";return(0,r.useEffect)(function(){t!==i&&(null==n||n(i))},[i,n,t]),l().createElement(o.Radio.Group,{value:i,onChange:function(e){return null==n?void 0:n(e.target.value)},options:[{label:l().createElement(o.Tooltip,{title:a("Do not initiate approval")},l().createElement("span",null,a("No required"))),value:"no_required"},{label:l().createElement(o.Tooltip,{title:a("Initiate approval when needed")},l().createElement("span",null,a("AI decision"))),value:"ai_decision"},{label:l().createElement(o.Tooltip,{title:a("Always initiate approval")},l().createElement("span",null,a("Human decision"))),value:"human_decision"}]})}function X(){var e=(0,c.kj)();return l().createElement(o.Form.Item,{name:["config","requiresApproval"],label:e("Approval & Notice"),tooltip:e("Configure whether task output should be sent to specified users for notification, carbon copy, or approval"),initialValue:"no_required"},l().createElement(D,null))}var L=n(2951),W=n(4893),q={type:"attachments"};function R(){var e,t=(0,c.kj)(),n=o.Form.useFormInstance(),a=(0,s.useFlowEngine)(),i=o.Form.useWatch(["config","files"],n),u=Array.isArray(e=null!=i?i:n.getFieldValue(["config","files"]))?e:[],m=(0,r.useMemo)(function(){var e,t,n,r,l,o,i,u;return(null!=(t=null!=(n=null==(u=null==(e=a.context.dataSourceManager)||null==(r=e.getDataSource)?void 0:r.call(e,"main"))||null==(l=u.getCollections)?void 0:l.call(u))?n:null==u||null==(i=u.collectionManager)||null==(o=i.getCollections)?void 0:o.call(i))?t:[]).filter(function(e){var t;return!e.hidden&&(null==(t=e.options)?void 0:t.template)==="file"&&e.name}).map(function(e){var t;return{label:null!=(t=e.title)?t:e.name,value:e.name}})},[a.context.dataSourceManager]),f=(0,r.useCallback)(function(e){n.setFieldValue(["config","files"],e)},[n]),d=(0,r.useCallback)(function(e,t){f(u.map(function(n,r){return r===e?function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},n,t):n}))},[u,f]);return l().createElement(l().Fragment,null,l().createElement(o.Form.Item,{name:["config","files"],noStyle:!0},l().createElement(L.X,null)),l().createElement(W.f,{value:u,onChange:f,defaultValue:q,getDefaultValue:function(){return{type:"attachments"}},addText:t("Add file"),itemTitle:t("Files"),renderHeader:function(e,n){return"".concat(t("Files")," ").concat(n+1)},renderItem:function(e,n){return l().createElement(l().Fragment,null,l().createElement(o.Form.Item,{label:t("Attachment Type"),required:!0},l().createElement(o.Select,{value:e.type,options:[{label:t("File (load via Attachment)"),value:"attachments"},{label:t("File (load via Files collection)"),value:"file_id"},{label:t("File (load via URL)"),value:"file_url"}],onChange:function(t){return d(n,{type:t,collection:"file_id"===t?e.collection:void 0})}})),"file_id"===e.type?l().createElement(o.Form.Item,{label:t("Collection"),required:!0},l().createElement(o.Select,{value:e.collection,options:m,onChange:function(e){return d(n,{collection:e})}})):null,l().createElement(o.Form.Item,{label:function(e,t){switch(t){case"attachments":return e("Attachment field");case"file_id":return e("ID");case"file_url":return e("URL");default:return e("Unknown")}}(t,e.type),required:!0},l().createElement(y.WorkflowVariableInput,{value:e.value,onChange:function(e){return d(n,{value:e})}})))}}))}function B(){var e=(0,c.kj)();return l().createElement(l().Fragment,null,l().createElement(o.Form.Item,{name:["config","message","system"],label:e("Background"),tooltip:e("Additional system prompt appended to the AI employee’s definition, used to refine instructions")},l().createElement(y.WorkflowVariableTextArea,{rows:10})),l().createElement(o.Form.Item,{name:["config","message","user"],label:e("Default user message"),tooltip:e("Enter the specific task description")},l().createElement(y.WorkflowVariableTextArea,{rows:10})))}var U=n(3734);function H(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var $=(0,s.observer)(function(e){var t=e.value,n=e.onChange,a=(0,c.kj)(),i=o.Form.useFormInstance(),u=o.Form.useWatch(["config","username"],i),s=(0,f.M)(),m="string"==typeof u?s.getAIEmployeesMap()[u]:void 0,d=s.llmServices,p=s.llmServicesLoading||s.aiEmployeesLoading;(0,r.useEffect)(function(){s.getLLMServices(),s.getAIEmployees()},[s]);var v=(0,r.useMemo)(function(){var e=new Set((0,U.lf)(m,(0,U.i2)(d)).map(function(e){return"".concat(e.llmService,":").concat(e.model)}));return d.map(function(t){return{label:t.llmServiceTitle,options:t.enabledModels.filter(function(n){return e.has("".concat(t.llmService,":").concat(n.value))}).map(function(e){return{label:"".concat(t.llmServiceTitle," / ").concat(e.label),value:"".concat(t.llmService,":").concat(e.value)}})}}).filter(function(e){return e.options.length>0})},[m,d]),g=(0,r.useMemo)(function(){return new Set(v.flatMap(function(e){return e.options.map(function(e){return e.value})}))},[v]),y=(null==t?void 0:t.llmService)&&t.model?"".concat(t.llmService,":").concat(t.model):void 0;return(0,r.useEffect)(function(){y&&!g.has(y)&&(null==n||n(null))},[n,g,y]),l().createElement(o.Select,{allowClear:!0,showSearch:!0,value:y,placeholder:a("Use default model"),options:v,loading:p,notFoundContent:p?l().createElement(o.Spin,{size:"small"}):null,optionFilterProp:"label",onChange:function(e){if(!e){null==n||n(null);return}var t,r=function(e){if(Array.isArray(e))return e}(t=e.split(":"))||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var l=[],o=!0,a=!1;try{for(r=r.call(e);!(o=(t=r.next()).done)&&(l.push(t.value),2!==l.length);o=!0);}catch(e){a=!0,n=e}finally{try{o||null==r.return||r.return()}finally{if(a)throw n}}return l}}(t)||function(e){if(e){if("string"==typeof e)return H(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 H(e,2)}}(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.")}(),l=r[0],o=r[1];null==n||n({llmService:l,model:o})}})});function G(){var e=(0,c.kj)();return l().createElement(o.Form.Item,{name:["config","model"],label:e("Model"),tooltip:e("Leave empty to use AI employee or global default model.")},l().createElement($,null))}function J(){var e,t,n=(e=["\n display: flex;\n flex-direction: column;\n row-gap: ","px;\n margin-bottom: ","px;\n\n .nb-ai-capability-label {\n display: inline-flex;\n align-items: center;\n column-gap: ","px;\n color: ",";\n font-size: ","px;\n font-weight: ",";\n line-height: ",";\n white-space: nowrap;\n }\n\n .nb-ai-capability-control {\n width: 100%;\n min-width: 0;\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return J=function(){return n},n}var Q="preset",K="custom",Y=function(e){return null!==e&&(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&!Array.isArray(e)},Z=function(e){return Y(e)&&"string"==typeof e.name};function ee(e){var t=e.title,n=e.description,r=(0,c.kj)(),a=o.theme.useToken().token,i=t?r(t):"",u=n?r(n):"";return l().createElement("div",{style:{display:"flex",flexDirection:"column",gap:a.marginXXS,width:"100%",minWidth:0,padding:"".concat(a.paddingXXS,"px 0")}},l().createElement("div",null,i),u?l().createElement(o.Typography.Text,{type:"secondary",style:{fontSize:a.fontSizeSM},ellipsis:{tooltip:u}},u):null)}var et=(0,s.observer)(function(e){var t=e.type,n=e.value,a=e.onChange,i=(0,c.kj)(),u=o.theme.useToken().token,s=o.Form.useFormInstance(),m=o.Form.useWatch(["config","username"],s),d=(0,f.M)(),p="string"==typeof m?d.getAIEmployeesMap()[m]:void 0,v=(0,r.useMemo)(function(){var e,n,r,l,o;return"skills"===t?null!=(l=null==p||null==(o=p.skillSettings)?void 0:o.skills)?l:[]:null!=(e=null==p||null==(r=p.skillSettings)||null==(n=r.tools)?void 0:n.map(function(e){return e.name}))?e:[]},[p,t]),g=(0,r.useMemo)(function(){return[{label:l().createElement(o.Tooltip,{title:i("skills"===t?"Use the AI employee's default skills for this task.":"Use the AI employee's default tools for this task.")},l().createElement("span",null,i("Preset"))),value:Q},{label:l().createElement(o.Tooltip,{title:i("skills"===t?"Select the specific skills this task is allowed to use.":"Select the specific tools this task is allowed to use.")},l().createElement("span",null,i("Custom"))),value:K}]},[i,t]),y=Array.isArray(n)?K:Q,h="skills"===t?"aiSkills":"aiTools";return(0,r.useEffect)(function(){d.getAIEmployees()},[d]),l().createElement(o.Space,{direction:"vertical",size:u.marginXXS,style:{width:"100%"}},l().createElement(o.Radio.Group,{value:y,onChange:function(e){if(e.target.value===Q){null==a||a(void 0);return}null==a||a(v)},options:g}),y===K?l().createElement(b.l,{key:"string"==typeof m?m:void 0,multiple:!0,value:n,onChange:function(e){null==a||a(null==e?void 0:e.filter(function(e){return v.includes(e)}))},manual:!1,popupMatchSelectWidth:!0,placeholder:i("skills"===t?"Leave empty to disable skills.":"Leave empty to disable tools."),fieldNames:{label:"title",value:"name"},service:{resource:h,action:"listBinding",params:{username:m}},optionFilter:Z,optionRender:function(e){var t=e.data;return Z(t)?l().createElement(ee,{title:t.title,description:t.description}):null}}):null)});function en(e){var t=e.name,n=e.label,r=e.tooltip,u=e.children,c=o.theme.useToken().token,s=(0,i.css)(J(),c.marginXXS,c.margin,c.marginXXS,c.colorText,c.fontSize,c.fontWeightStrong,c.lineHeight);return l().createElement("div",{className:s},l().createElement("span",{className:"nb-ai-capability-label"},n,l().createElement(o.Tooltip,{title:r},l().createElement(a.QuestionCircleOutlined,null))),l().createElement("div",{className:"nb-ai-capability-control"},l().createElement(o.Form.Item,{name:t,noStyle:!0},u)))}function er(){var e=(0,c.kj)();return l().createElement(l().Fragment,null,l().createElement(o.Form.Item,{name:["config","skillSettings","skillsVersion"],initialValue:2,hidden:!0},l().createElement(L.X,null)),l().createElement(o.Form.Item,{name:["config","skillSettings","toolsVersion"],initialValue:2,hidden:!0},l().createElement(L.X,null)),l().createElement(en,{name:["config","skillSettings","skills"],label:e("Skills"),tooltip:e("Configure the skills available to this task")},l().createElement(et,{type:"skills"})),l().createElement(en,{name:["config","skillSettings","tools"],label:e("Tools"),tooltip:e("Configure the tools available to this task")},l().createElement(et,{type:"tools"})))}function el(){var e=(0,c.kj)(),t=(0,r.useMemo)(function(){return JSON.stringify({type:"object",properties:{result:{title:e("Response result"),type:"string",description:"The text message sent to the user"}}},null,2)},[e]);return l().createElement(o.Form.Item,{name:["config","structuredOutput","schema"],label:e("Structured output"),tooltip:e("Define the data structure of the final output of the node"),initialValue:t,rules:[{required:!0}],extra:l().createElement(o.Space,{size:4},l().createElement("span",null,e("Syntax references")),l().createElement(o.Typography.Link,{href:"https://json-schema.org",target:"_blank",rel:"noreferrer"},"JSON Schema"))},l().createElement(y.WorkflowVariableJsonTextArea,{json5:!0,autoSize:{minRows:10}}))}var eo=n(6905),ea=(0,s.observer)(function(e){var t=e.value,n=e.onChange,a=(0,c.kj)(),i=o.Form.useFormInstance(),u=(0,f.M)(),s=o.Form.useWatch(["config","model"],i),m=(0,r.useMemo)(function(){var e=u.llmServices;return(null==s?void 0:s.llmService)?e.find(function(e){return e.llmService===s.llmService}):void 0},[u.llmServices,s]),d=!!s&&!(0,eo.v)(m,s.model);return(0,r.useEffect)(function(){u.getLLMServices()},[u]),(0,r.useEffect)(function(){d&&t&&(null==n||n(!1))},[d,n,t]),l().createElement(o.Space,{direction:"vertical"},l().createElement(o.Switch,{checked:!!t,disabled:d,onChange:function(e){return null==n?void 0:n(e)}}),d?l().createElement(o.Typography.Text,{type:"secondary"},a("Web search not supported")):null)});function ei(){var e=(0,c.kj)();return l().createElement(o.Form.Item,{name:["config","webSearch"],label:e("Web search"),tooltip:e("Enable the LLM to use web search tools during task execution"),initialValue:!1},l().createElement(ea,null))}function eu(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function ec(){var e=eu(["\n .ant-form-item-control-input-content > .ant-select,\n .ant-form-item-control-input-content > .ant-space-compact {\n width: 100%;\n }\n "]);return ec=function(){return e},e}function es(){var e=eu(["\n display: flex;\n align-items: center;\n column-gap: ","px;\n margin-bottom: ","px;\n\n .nb-ai-employee-inline-label {\n display: inline-flex;\n align-items: center;\n column-gap: ","px;\n color: ",";\n font-size: ","px;\n font-weight: ",";\n line-height: ",";\n }\n "]);return es=function(){return e},e}function em(){var e=(0,c.kj)(),t=o.Form.useFormInstance(),n=o.theme.useToken().token,r=(0,i.css)(ec()),s=(0,i.css)(es(),n.marginXS,n.margin,n.marginXXS,n.colorText,n.fontSize,n.fontWeightStrong,n.lineHeight);return l().createElement(o.Tabs,{items:[{key:"task",label:e("Task"),forceRender:!0,children:l().createElement("div",{className:r},l().createElement("div",{className:s},l().createElement("span",{className:"nb-ai-employee-inline-label"},e("AI employee"),l().createElement(o.Tooltip,{title:e("Choose the AI employee for this task")},l().createElement(a.QuestionCircleOutlined,null))),l().createElement(o.Form.Item,{name:["config","username"],initialValue:u.zw,noStyle:!0},l().createElement(d,{onChange:function(e){t.setFieldValue(["config","username"],e),t.setFieldValue(["config","skillSettings","skills"],void 0),t.setFieldValue(["config","skillSettings","tools"],void 0)}}))),l().createElement(G,null),l().createElement(x,null),l().createElement(B,null),l().createElement(o.Form.Item,{label:e("Attachments"),tooltip:e("Select the file or image to be sent to the LLM")},l().createElement(R,null)),l().createElement(er,null),l().createElement(ei,null))},{key:"feedback",label:e("Feedback & Notification"),forceRender:!0,children:l().createElement("div",{className:r},l().createElement(el,null),l().createElement(X,null),l().createElement(_,null))}]})}}}]);
@@ -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
+ import type { Message } from '../../types';
10
+ export declare const applyReasoningStreamUpdate: (content: Message['content'], reasoningContent: string, reasoningStatus?: string) => Message['content'];
@@ -40,7 +40,6 @@ export declare class ChatBoxModel {
40
40
  chatBoxRef: React.MutableRefObject<HTMLDivElement | null> | null;
41
41
  showCodeHistory: boolean;
42
42
  model: ModelRef | null | undefined;
43
- showDebugPanel: boolean;
44
43
  readonly: boolean;
45
44
  constructor();
46
45
  get senderValue(): string;
@@ -73,7 +72,6 @@ export declare class ChatBoxModel {
73
72
  setSenderRef: (ref: React.MutableRefObject<GetRef<typeof Sender> | null> | null) => void;
74
73
  setShowCodeHistory: (show: boolean) => void;
75
74
  setModel: (model: ModelRef | null | undefined) => void;
76
- setShowDebugPanel: (show: boolean) => void;
77
75
  setReadonly: (readonly: boolean) => void;
78
76
  setShowSenderHint: (isShowSenderHint: boolean) => void;
79
77
  }