plugin-agent-orchestrator 1.0.23 → 1.0.25

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.
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@ant-design/icons"),require("react"),require("antd"),require("@nocobase/client")):"function"==typeof define&&define.amd?define("plugin-agent-orchestrator",["@ant-design/icons","react","antd","@nocobase/client"],t):"object"==typeof exports?exports["plugin-agent-orchestrator"]=t(require("@ant-design/icons"),require("react"),require("antd"),require("@nocobase/client")):e["plugin-agent-orchestrator"]=t(e["@ant-design/icons"],e.react,e.antd,e["@nocobase/client"])}(self,function(e,t,r,n){return function(){"use strict";var a={375:function(t){t.exports=e},342:function(e){e.exports=n},59:function(e){e.exports=r},155:function(e){e.exports=t}},l={};function o(e){var t=l[e];if(void 0!==t)return t.exports;var r=l[e]={exports:{}};return a[e](r,r.exports,o),r.exports}o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,{a:t}),t},o.d=function(e,t){for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.g.importScripts&&(i=o.g.location+"");var i,u=o.g.document;if(!i&&u&&(u.currentScript&&"SCRIPT"===u.currentScript.tagName.toUpperCase()&&(i=u.currentScript.src),!i)){var c=u.getElementsByTagName("script");if(c.length)for(var s=c.length-1;s>-1&&(!i||!/^http(s?):/.test(i));)i=c[s--].src}if(!i)throw Error("Automatic publicPath is not supported in this browser");o.p=i.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var d={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var r=window.__webpack_public_path__||"";r&&("/"!==r.charAt(r.length-1)&&(r+="/"),e=r+"static/plugins/plugin-agent-orchestrator/dist/client/")}if(!e){var n=window.__nocobase_modern_client_prefix__||"v",a="/"+(n=String(n).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var l=window.location.pathname||"/",i=l.indexOf(a);e=i>=0?l.slice(0,i+1):"/"}e&&(e=e.replace(RegExp("/"+n+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/plugin-agent-orchestrator/dist/client/"}o.p=e}(),!function(){o.r(d),o.d(d,{useRunEventStream:function(){return tU},default:function(){return tB}});var e=o(342),t=o(155),r=o.n(t),n=o(59),a=o(375);function l(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 i(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e){if(e){if("string"==typeof e)return l(e,void 0);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 l(e,void 0)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var u=(0,t.createContext)({employees:[],employeeMap:new Map,toolNamesMap:new Map,loading:!1,refresh:function(){}}),c=new Set(["orchestrator_plan_goal","orchestrator_execute_plan","orchestrator_status","orchestrator_cancel","external_rag_search","skill_hub_execute"]),s=function(t){var n=t.children,a=(0,e.useRequest)({url:"aiEmployees:list",params:{pageSize:200}}),l=a.data,o=a.loading,s=a.refresh,d=r().useMemo(function(){var e=((null==l?void 0:l.data)||[]).map(function(e){var t,r,n,a,l=(r=Array.isArray(null==(t=e.skillSettings)?void 0:t.tools)?t.tools.map(function(e){return"string"==typeof e?e:null==e?void 0:e.name}).filter(function(e){return"string"==typeof e&&e.length>0}):[],n=Array.isArray(null==t?void 0:t.skills)?t.skills.map(function(e){if("string"==typeof e)return c.has(e)||e.startsWith("delegate_")||e.startsWith("dispatch_subagents_")||e.startsWith("skill_hub_")||e.startsWith("browser_")||e.startsWith("drawio-")?e:null;return null==e?void 0:e.name}).filter(function(e){return"string"==typeof e&&e.length>0}):[],Array.from(new Set(i(r).concat(i(n)))));return{username:e.username,nickname:e.nickname||e.username,about:null==(a=e.about)?void 0:a.substring(0,80),tools:l}}),t=new Map,r=new Map,n=!0,a=!1,u=void 0;try{for(var d,m=e[Symbol.iterator]();!(n=(d=m.next()).done);n=!0){var p=d.value;t.set(p.username,p.nickname),r.set(p.username,new Set(p.tools))}}catch(e){a=!0,u=e}finally{try{n||null==m.return||m.return()}finally{if(a)throw u}}return{employees:e,employeeMap:t,toolNamesMap:r,loading:o,refresh:s}},[l,o,s]);return r().createElement(u.Provider,{value:d},n)},m=function(){return(0,t.useContext)(u)},p=function(e){var t=e.value,a=e.onChange,l=e.exclude,o=e.placeholder,i=m(),u=i.employees,c=i.loading,s=r().useMemo(function(){return u.filter(function(e){return!l||e.username!==l}).map(function(e){return{label:e.nickname,value:e.username,description:e.about}})},[u,l]);return r().createElement(n.Select,{loading:c,options:s,value:t,onChange:a,placeholder:void 0===o?"Select AI Employee...":o,showSearch:!0,filterOption:function(e,t){var r,n;return(null!=(r=null==t?void 0:t.label)?r:"").toString().toLowerCase().includes(e.toLowerCase())||(null!=(n=null==t?void 0:t.value)?n:"").toString().toLowerCase().includes(e.toLowerCase())},optionRender:function(e){return r().createElement("div",null,r().createElement("div",{style:{fontWeight:500}},e.label),e.data.description&&r().createElement("div",{style:{fontSize:12,color:"#888"}},e.data.description))}})};function f(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,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function h(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){y(l,n,a,o,i,"next",e)}function i(e){y(l,n,a,o,i,"throw",e)}o(void 0)})}}function g(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 b(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 v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||S(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 E(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||S(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e,t){if(e){if("string"==typeof e)return f(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 f(e,t)}}function w(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var k=n.Typography.Text,O=function(e){return(e||"").replace(/[^a-zA-Z0-9_-]/g,"_")},x=function(e,t){return"delegate_".concat(O(e),"_to_").concat(O(t))},I=function(e){return"dispatch_subagents_".concat(O(e))},C=["orchestrator_plan_goal","orchestrator_execute_plan","orchestrator_status","orchestrator_cancel"],A=new Set(E(C).concat(["external_rag_search","skill_hub_execute"])),T=function(e){var t="string"==typeof e?e:null==e?void 0:e.name;return"string"==typeof t&&t.trim()?{name:t.trim(),autoCall:(null==e?void 0:e.autoCall)===!0}:null},j=function(e){var t=e&&(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"?e:{},r=new Map,n=function(e){!e||r.has(e.name)||r.set(e.name,e)};if(Array.isArray(t.tools)){var a=!0,l=!1,o=void 0;try{for(var i,u=t.tools[Symbol.iterator]();!(a=(i=u.next()).done);a=!0){var c=i.value;n(T(c))}}catch(e){l=!0,o=e}finally{try{a||null==u.return||u.return()}finally{if(l)throw o}}}var s=[];if(Array.isArray(t.skills)){var d=!0,m=!1,p=void 0;try{for(var f,y=t.skills[Symbol.iterator]();!(d=(f=y.next()).done);d=!0){var h=f.value;if("string"==typeof h){var v=h.trim();if(!v)continue;A.has(v)||v.startsWith("delegate_")||v.startsWith("dispatch_subagents_")||v.startsWith("skill_hub_")||v.startsWith("browser_")||v.startsWith("drawio-")?n({name:v,autoCall:!1}):s.push(v);continue}n(T(h))}}catch(e){m=!0,p=e}finally{try{d||null==y.return||y.return()}finally{if(m)throw p}}}return b(g({},t),{skills:s,tools:Array.from(r.values())})},P=function(){var l=(0,e.useAPIClient)(),o=v((0,t.useState)(!1),2),i=o[0],u=o[1],c=v((0,t.useState)(null),2),s=c[0],d=c[1],f=v(n.Form.useForm(),1)[0],y=(0,e.useRequest)({url:"orchestratorConfig:list",params:{sort:["-createdAt"]}}),S=y.data,O=y.loading,A=y.refresh,T=(0,e.useRequest)({url:"ai:listAllEnabledModels"}),P=T.data,z=T.loading,D=(0,e.useRequest)({url:"agentHarnessProfiles:list",params:{filter:{enabled:!0},sort:["tag"],pageSize:100}}),F=D.data,_=D.loading,B=r().useMemo(function(){var e,t=null!=(e=null==P?void 0:P.data)?e:P;return Array.isArray(t)?t:Array.isArray(null==t?void 0:t.data)?t.data:[]},[P]),M=r().useMemo(function(){var e,t=null!=(e=null==F?void 0:F.data)?e:F;return Array.isArray(t)?t:Array.isArray(null==t?void 0:t.data)?t.data:[]},[F]),R=m(),N=R.employeeMap,U=R.toolNamesMap,L=R.refresh,q=r().useMemo(function(){var e=null==S?void 0:S.data;return Array.isArray(e)?e:[]},[S]),H=function(e,t){return h(function(){var r,a,o,i,u,c,s,d,m;return w(this,function(p){switch(p.label){case 0:return p.trys.push([0,6,,7]),[4,l.request({url:"aiEmployees:get",params:{filterByTk:e}})];case 1:if(!(o=null==(a=p.sent())||null==(r=a.data)?void 0:r.data))return n.message.error("Could not load AI employee."),[2];if(u=new Set((i=j(o.skillSettings)).tools.map(function(e){return e.name})),c=t.filter(function(e){return!u.has(e)}),s=JSON.stringify(i)!==JSON.stringify(o.skillSettings||{}),!(!c.length&&!s))return[3,3];return n.message.info("Tools already present."),[4,L()];case 2:return p.sent(),[2];case 3:return d=E(i.tools).concat(E(c.map(function(e){return{name:e,autoCall:!1}}))),[4,l.request({url:"aiEmployees:update",method:"put",params:{filterByTk:e},data:{skillSettings:b(g({},i),{tools:d})}})];case 4:return p.sent(),n.message.success(c.length?"Added ".concat(c.length," tool").concat(c.length>1?"s":""," to ").concat(e,"."):"Normalized tool bindings for ".concat(e,".")),[4,L()];case 5:return p.sent(),[3,7];case 6:return m=p.sent(),n.message.error("Auto-assign failed: ".concat((null==m?void 0:m.message)||"unknown error")),[3,7];case 7:return[2]}})})()},J=function(e,t){return h(function(){return w(this,function(r){switch(r.label){case 0:return[4,H(e,[t])];case 1:return r.sent(),[2]}})})()},W=r().useMemo(function(){var e=new Map,t=!0,r=!1,n=void 0;try{for(var a,l=q[Symbol.iterator]();!(t=(a=l.next()).done);t=!0){var o=a.value,i=e.get(o.subAgentUsername)||new Set;i.add(o.leaderUsername),e.set(o.subAgentUsername,i)}}catch(e){r=!0,n=e}finally{try{t||null==l.return||l.return()}finally{if(r)throw n}}return e},[q]),$=r().useMemo(function(){return Array.from(W.entries()).filter(function(e){return v(e,2)[1].size>1}).map(function(e){var t=v(e,2);return{sub:t[0],leaders:Array.from(t[1])}})},[W]),G=r().useMemo(function(){var e=new Map,t=!0,r=!1,n=void 0;try{for(var a,l=q[Symbol.iterator]();!(t=(a=l.next()).done);t=!0){var o=a.value,i=o.leaderUsername||"unknown",u=e.get(i);u||(u=[],e.set(i,u)),u.push(o)}}catch(e){r=!0,n=e}finally{try{t||null==l.return||l.return()}finally{if(r)throw n}}return Array.from(e.entries()).map(function(e){var t=v(e,2);return{leaderUsername:t[0],items:t[1]}})},[q]),K=function(e){d(e),e?f.setFieldsValue(e):(f.resetFields(),f.setFieldsValue({enabled:!0,maxDepth:1,timeout:12e4,recursionLimit:50,harnessTag:"default"})),u(!0)},V=function(){u(!1),d(null)},Z=[{title:"Leader (Orchestrator)",dataIndex:"leaderUsername",key:"leaderUsername",render:function(e){return r().createElement(n.Tag,{color:"blue"},N.get(e)||e)}},{title:"",key:"arrow",width:50,render:function(){return r().createElement(a.SwapRightOutlined,{style:{color:"#999",fontSize:18}})}},{title:"Sub-Agent",dataIndex:"subAgentUsername",key:"subAgentUsername",render:function(e){return r().createElement(n.Tag,{color:"green"},N.get(e)||e)}},{title:"Harness",dataIndex:"harnessTag",key:"harnessTag",width:120,render:function(e){return r().createElement(n.Tag,{color:"purple"},e||"default")}},{title:"Max Depth",dataIndex:"maxDepth",key:"maxDepth",width:100,render:function(e){return null!=e?e:1}},{title:"Timeout",dataIndex:"timeout",key:"timeout",width:100,render:function(e){return"".concat(((null!=e?e:12e4)/1e3).toFixed(0),"s")}},{title:"LLM Override",key:"llmOverride",width:140,render:function(e,t){if(t.llmService&&t.model){var a=B.find(function(e){return e.llmService===t.llmService}),l=a?a.llmServiceTitle:t.llmService;return r().createElement(n.Space,{direction:"vertical",size:0},r().createElement(k,{style:{fontSize:12}},l),r().createElement(k,{type:"secondary",style:{fontSize:12}},t.model))}return r().createElement(k,{type:"secondary",style:{fontSize:12}},"Inherited")}},{title:"Enabled",dataIndex:"enabled",key:"enabled",width:80,render:function(e,t){return r().createElement(n.Switch,{checked:e,size:"small",onChange:function(e){return h(function(){return w(this,function(r){switch(r.label){case 0:return[4,l.request({url:"orchestratorConfig:update",method:"put",params:{filterByTk:t.id},data:{enabled:e}})];case 1:return r.sent(),A(),[2]}})})()}})}},{title:"Tool",key:"tool",width:150,render:function(e,t){var l=x(t.leaderUsername,t.subAgentUsername),o=U.get(t.leaderUsername);return o?o.has(l)?r().createElement(n.Tag,{color:"success"},"Assigned"):r().createElement(n.Space,{size:4},r().createElement(n.Tag,{icon:r().createElement(a.WarningOutlined,null),color:"warning"},"Missing"),r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.ThunderboltOutlined,null),onClick:function(){return h(function(){return w(this,function(e){switch(e.label){case 0:return[4,J(t.leaderUsername,x(t.leaderUsername,t.subAgentUsername))];case 1:return e.sent(),[2]}})})()}},"Auto-add")):r().createElement(k,{type:"secondary",style:{fontSize:12}},"—")}},{title:"Actions",key:"actions",width:160,render:function(e,t){return r().createElement(n.Space,null,r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.EditOutlined,null),onClick:function(){return K(t)}},"Edit"),r().createElement(n.Popconfirm,{title:"Delete this rule?",onConfirm:function(){var e;return e=t.id,h(function(){var t;return w(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,l.request({url:"orchestratorConfig:destroy",method:"delete",params:{filterByTk:e}})];case 1:return r.sent(),n.message.success("Rule deleted"),A(),[3,3];case 2:return t=r.sent(),n.message.error("Delete failed: ".concat(t.message)),[3,3];case 3:return[2]}})})()}},r().createElement(n.Button,{type:"link",size:"small",danger:!0,icon:r().createElement(a.DeleteOutlined,null)},"Delete")))}}],Y=n.Form.useWatch("leaderUsername",f),Q=r().useMemo(function(){return q.reduce(function(e,t){var r=U.get(t.leaderUsername);if(!r)return e;var n=x(t.leaderUsername,t.subAgentUsername);return r.has(n)?e:e+1},0)},[q,U]),X=r().useMemo(function(){return G.map(function(e){var t=U.get(e.leaderUsername);if(!t)return null;var r=I(e.leaderUsername);return t.has(r)?null:{leaderUsername:e.leaderUsername,toolName:r,count:e.items.length}}).filter(Boolean)},[G,U]),ee=r().useMemo(function(){return G.map(function(e){var t=U.get(e.leaderUsername);if(!t)return null;var r=C.filter(function(e){return!t.has(e)});return r.length?{leaderUsername:e.leaderUsername,missing:r}:null}).filter(Boolean)},[G,U]);return r().createElement("div",null,r().createElement(n.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Orchestration Rules",description:r().createElement(k,{type:"secondary"},"Configure which AI Employees can act as Leaders (Orchestrators) and which ones they can delegate tasks to. Each rule creates a callable tool for the Leader to invoke the Sub-Agent.")}),Q>0&&r().createElement(n.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(Q," rule").concat(Q>1?"s":""," missing required tool assignment"),description:r().createElement(k,{type:"secondary"},"The Leader employee hasn't added the corresponding"," ",r().createElement(k,{code:!0},"delegate_<leader>_to_<sub>")," tool to its skillSettings.tools, so the LLM cannot actually call these sub-agents. Use the ",r().createElement("b",null,"Auto-add")," button in the Tool column to fix.")}),ee.length>0&&r().createElement(n.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(ee.length," leader").concat(ee.length>1?"s":""," missing orchestrator controller tools"),description:r().createElement(n.Space,{direction:"vertical",size:6},r().createElement(k,{type:"secondary"},"Leaders need the orchestrator controller tools to create an approval-first plan and execute it after the user accepts the card."),ee.map(function(e){var t=e.leaderUsername,l=e.missing;return r().createElement(n.Space,{key:t,size:8,wrap:!0},r().createElement(n.Tag,{color:"blue"},N.get(t)||t),r().createElement(k,{type:"secondary"},l.length," missing"),r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.ThunderboltOutlined,null),onClick:function(){return H(t,l)}},"Auto-add"))}))}),X.length>0&&r().createElement(n.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(X.length," leader").concat(X.length>1?"s":""," missing dispatch tool assignment"),description:r().createElement(n.Space,{direction:"vertical",size:6},r().createElement(k,{type:"secondary"},"The fan-out tool lets a Leader dispatch multiple independent sub-tasks in one call. Add it to the Leader's tools to enable the new multi-agent flow."),X.map(function(e){var t=e.leaderUsername,l=e.toolName,o=e.count;return r().createElement(n.Space,{key:t,size:8,wrap:!0},r().createElement(n.Tag,{color:"blue"},N.get(t)||t),r().createElement(k,{type:"secondary"},o," sub-agent",o>1?"s":""),r().createElement(k,{code:!0},l),r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.ThunderboltOutlined,null),onClick:function(){return h(function(){return w(this,function(e){switch(e.label){case 0:return[4,J(t,I(t))];case 1:return e.sent(),[2]}})})()}},"Auto-add"))}))}),$.length>0&&r().createElement(n.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"Legacy delegate_to_<sub> alias is no longer registered for these sub-agents",description:r().createElement(n.Space,{direction:"vertical",size:2},$.map(function(e){var t=e.sub,a=e.leaders;return r().createElement(k,{key:t,type:"secondary"},r().createElement(n.Tag,{color:"green"},N.get(t)||t),"has multiple leaders (",a.map(function(e){return N.get(e)||e}).join(", "),"). The legacy alias is dropped to avoid ambiguity — leaders must use ",r().createElement(k,{code:!0},"delegate_<leader>_to_<sub>")," ","in their tools.")}))}),r().createElement(n.Card,{bordered:!1},r().createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"flex-end"}},r().createElement(n.Button,{type:"primary",icon:r().createElement(a.PlusOutlined,null),onClick:function(){return K()}},"New Rule")),G.length?r().createElement(n.Collapse,{bordered:!1,defaultActiveKey:G.map(function(e){return e.leaderUsername}),items:G.map(function(e){return{key:e.leaderUsername,label:r().createElement(n.Space,null,r().createElement(n.Tag,{color:"blue"},N.get(e.leaderUsername)||e.leaderUsername),r().createElement(k,{type:"secondary"},e.items.length," sub-agent",e.items.length>1?"s":""),X.some(function(t){return t.leaderUsername===e.leaderUsername})&&r().createElement(n.Tag,{color:"warning"},"Dispatch missing")),children:r().createElement(n.Table,{rowKey:"id",loading:O,dataSource:e.items,columns:Z,pagination:!1,size:"middle",scroll:{x:"max-content"}})}})}):r().createElement(n.Table,{rowKey:"id",loading:O,dataSource:[],columns:Z,pagination:!1,size:"middle",scroll:{x:"max-content"},locale:{emptyText:r().createElement(n.Empty,{description:"No orchestration rules yet"})}})),r().createElement(n.Drawer,{title:s?"Edit Orchestration Rule":"New Orchestration Rule",width:480,onClose:V,open:i,styles:{body:{paddingBottom:80}},extra:r().createElement(n.Space,null,r().createElement(n.Button,{onClick:V},"Cancel"),r().createElement(n.Button,{onClick:function(){return f.submit()},type:"primary"},"Save"))},r().createElement(n.Form,{form:f,layout:"vertical",onFinish:function(e){return h(function(){var t,r,a,o,i,u;return w(this,function(c){switch(c.label){case 0:if(e.leaderUsername===e.subAgentUsername)return n.message.error("Leader and Sub-Agent cannot be the same employee."),[2];c.label=1;case 1:if(c.trys.push([1,6,,7]),!s)return[3,3];return[4,l.request({url:"orchestratorConfig:update",method:"put",params:{filterByTk:s.id},data:e})];case 2:return c.sent(),n.message.success("Rule updated"),[3,5];case 3:return[4,l.request({url:"orchestratorConfig:create",method:"post",data:e})];case 4:c.sent(),n.message.success("Rule created"),c.label=5;case 5:return V(),A(),[3,7];case 6:return u=(null==(t=c.sent())||null==(i=t.response)||null==(o=i.data)||null==(a=o.errors)||null==(r=a[0])?void 0:r.message)||t.message,n.message.error("Save failed: ".concat(u)),[3,7];case 7:return[2]}})})()}},r().createElement(n.Form.Item,{name:"leaderUsername",label:"Leader (Orchestrator)",rules:[{required:!0,message:"Please select a Leader"}],tooltip:"The AI Employee that will be able to delegate tasks to the Sub-Agent"},r().createElement(p,{placeholder:"Select Leader AI Employee..."})),r().createElement(n.Form.Item,{name:"subAgentUsername",label:"Sub-Agent",rules:[{required:!0,message:"Please select a Sub-Agent"}],tooltip:"The AI Employee that will receive delegated tasks"},r().createElement(p,{placeholder:"Select Sub-Agent AI Employee...",exclude:Y})),r().createElement(n.Form.Item,{name:"maxDepth",label:"Max Delegation Depth",tooltip:"How many layers of delegation are allowed (1 = leader calls sub-agent, sub-agent cannot delegate further)"},r().createElement(n.InputNumber,{min:1,max:3,style:{width:"100%"}})),r().createElement(n.Form.Item,{name:"timeout",label:"Timeout (ms)",tooltip:"Maximum time in milliseconds for the sub-agent to complete its task"},r().createElement(n.InputNumber,{min:1e4,max:6e5,step:1e4,style:{width:"100%"}})),r().createElement(n.Form.Item,{name:"recursionLimit",label:"Recursion Limit",tooltip:"Max LangGraph reasoning steps per delegation. Higher = more complex multi-step tasks; lower = stricter cap on token usage. Default 50."},r().createElement(n.InputNumber,{min:5,max:200,step:5,style:{width:"100%"}})),r().createElement(n.Form.Item,{name:"harnessTag",label:"Harness Profile",tooltip:"Profile tag used by plan approval, controller limits, and orchestration policy."},r().createElement(n.Select,{loading:_,options:[{label:"default",value:"default"}].concat(E(M.filter(function(e){return"default"!==e.tag}).map(function(e){return{label:e.title?"".concat(e.tag," - ").concat(e.title):e.tag,value:e.tag}})))})),r().createElement(n.Form.Item,{name:"llmService",label:"Override LLM Service",tooltip:"Optional: Provider name. Leave empty to inherit from Leader."},r().createElement(n.Select,{allowClear:!0,placeholder:"Inherit from Leader",loading:z,options:B.map(function(e){return{label:e.llmServiceTitle||e.llmService,value:e.llmService}}),onChange:function(){return f.setFieldValue("model",void 0)}})),r().createElement(n.Form.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.llmService!==t.llmService}},function(){var e=f.getFieldValue("llmService"),t=B.find(function(t){return t.llmService===e}),a=Array.isArray(null==t?void 0:t.enabledModels)?t.enabledModels:[];return r().createElement(n.Form.Item,{name:"model",label:"Override Model",tooltip:"Optional: Model name. Leave empty to inherit from Leader.",rules:[{required:!!e,message:"Please select a model"}]},r().createElement(n.Select,{allowClear:!0,placeholder:e?"Select a model":"Inherit from Leader",disabled:!e,options:a.map(function(e){return{label:e.label,value:e.value}})}))}),r().createElement(n.Form.Item,{name:"enabled",label:"Enabled",valuePropName:"checked"},r().createElement(n.Switch,null)))))};function z(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 D(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function F(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return z(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 z(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 _=n.Typography.Text,B=n.Typography.Paragraph,M=n.DatePicker.RangePicker,R=function(){var l,o=(0,e.useAPIClient)(),i=F((0,t.useState)(null),2),u=i[0],c=i[1],s=F((0,t.useState)(!1),2),d=s[0],p=s[1],f=F((0,t.useState)(1),2),y=f[0],h=f[1],g=F((0,t.useState)(20),2),b=g[0],v=g[1],E=F((0,t.useState)({}),2),S=E[0],w=E[1],k=m(),O=k.employees,x=k.employeeMap,I=(0,t.useMemo)(function(){var e={};return S.leader&&(e.leaderUsername=S.leader),S.subAgent&&(e.subAgentUsername=S.subAgent),S.status&&(e.status=S.status),S.range&&(S.range[0]||S.range[1])&&(e.createdAt={},S.range[0]&&(e.createdAt.$gte=S.range[0].toDate().toISOString()),S.range[1]&&(e.createdAt.$lte=S.range[1].toDate().toISOString())),{sort:["-createdAt"],page:y,pageSize:b,filter:e}},[y,b,S]),C=(0,e.useRequest)({url:"orchestratorTracing:list",params:I},{refreshDeps:[I]}),A=C.data,T=C.loading,j=C.refresh,P=(0,t.useMemo)(function(){var e=null==A?void 0:A.data;return Array.isArray(e)?e:[]},[A]),z=(0,t.useMemo)(function(){var e,t=null==A||null==(e=A.meta)?void 0:e.count;return"number"==typeof t?t:0},[A]),R=function(e){return e?e>=1e3?"".concat((e/1e3).toFixed(1),"s"):"".concat(e,"ms"):"-"},N=function(e){var t;return(t=function(){var t,r;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(n){switch(n.label){case 0:c(e),p(!0),n.label=1;case 1:return n.trys.push([1,,3,4]),[4,o.request({url:"orchestratorTracing:get",params:{filterByTk:e.id,source:e.hasUnifiedTrace?"span":"log"}})];case 2:return c((null==(r=n.sent())||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data)||e),[3,4];case 3:return p(!1),[7];case 4:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var l=t.apply(e,r);function o(e){D(l,n,a,o,i,"next",e)}function i(e){D(l,n,a,o,i,"throw",e)}o(void 0)})})()},U=function(e){w(function(t){return 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}({},t,e)}),h(1)},L=(0,t.useMemo)(function(){return O.map(function(e){return{label:e.nickname||e.username,value:e.username}})},[O]),q=!!(S.leader||S.subAgent||S.status||S.range&&(S.range[0]||S.range[1])),H=[{title:"Time",dataIndex:"createdAt",key:"createdAt",width:170,render:function(e){return e?new Date(e).toLocaleString():"-"}},{title:"Leader",dataIndex:"leaderUsername",key:"leaderUsername",render:function(e){return r().createElement(n.Tag,{color:"blue"},x.get(e)||e)}},{title:"Sub-Agent",dataIndex:"subAgentUsername",key:"subAgentUsername",render:function(e){return r().createElement(n.Tag,{color:"green"},x.get(e)||e)}},{title:"Task",dataIndex:"task",key:"task",render:function(e){return r().createElement(_,{ellipsis:!0,style:{maxWidth:280}},(null==e?void 0:e.substring(0,100))||"-")}},{title:"Status",dataIndex:"status",key:"status",width:90,render:function(e){return r().createElement(n.Tag,{icon:"success"===e?r().createElement(a.CheckCircleOutlined,null):r().createElement(a.CloseCircleOutlined,null),color:"success"===e?"success":"error"},e)}},{title:"Duration",dataIndex:"durationMs",key:"durationMs",width:90,render:R},{title:"Depth",dataIndex:"depth",key:"depth",width:60,render:function(e){return null!=e?e:0}},{title:"",key:"actions",width:80,render:function(e,t){return r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.EyeOutlined,null),onClick:function(){return N(t)}},"Detail")}}];return r().createElement("div",null,r().createElement(n.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Execution Tracing",description:r().createElement(_,{type:"secondary"},"View orchestration execution logs. Each row represents one sub-agent invocation, with child tool and Skill Hub executions shown in the detail flow.")}),r().createElement(n.Card,{bordered:!1},r().createElement(n.Form,{layout:"inline",style:{marginBottom:16,rowGap:8,flexWrap:"wrap"}},r().createElement(n.Form.Item,{label:"Leader"},r().createElement(n.Select,{allowClear:!0,placeholder:"Any leader",style:{minWidth:180},options:L,value:S.leader,onChange:function(e){return U({leader:e})},showSearch:!0,optionFilterProp:"label"})),r().createElement(n.Form.Item,{label:"Sub-Agent"},r().createElement(n.Select,{allowClear:!0,placeholder:"Any sub-agent",style:{minWidth:180},options:L,value:S.subAgent,onChange:function(e){return U({subAgent:e})},showSearch:!0,optionFilterProp:"label"})),r().createElement(n.Form.Item,{label:"Status"},r().createElement(n.Select,{allowClear:!0,placeholder:"Any status",style:{minWidth:140},options:[{label:"Success",value:"success"},{label:"Error",value:"error"},{label:"Running",value:"running"}],value:S.status,onChange:function(e){return U({status:e})}})),r().createElement(n.Form.Item,{label:"Time"},r().createElement(M,{showTime:!0,value:S.range,onChange:function(e){return U({range:e})}})),r().createElement(n.Form.Item,null,r().createElement(n.Space,null,r().createElement(n.Button,{onClick:function(){w({}),h(1)},disabled:!q},"Reset"),r().createElement(n.Button,{icon:r().createElement(a.ReloadOutlined,null),onClick:j},"Refresh")))),r().createElement(n.Table,{rowKey:"id",loading:T,dataSource:P,columns:H,size:"middle",scroll:{x:"max-content"},pagination:{current:y,pageSize:b,total:z,showSizeChanger:!0,pageSizeOptions:[10,20,50,100],showTotal:function(e){return"".concat(e," execution").concat(1===e?"":"s")},onChange:function(e,t){h(e),t&&t!==b&&v(t)}},locale:{emptyText:r().createElement(n.Empty,{description:q?"No executions match the current filters":"No delegation executions yet"})}})),r().createElement(n.Drawer,{title:"Execution Detail",width:820,onClose:function(){return c(null)},open:!!u},u&&r().createElement(n.Spin,{spinning:d},r().createElement(r().Fragment,null,r().createElement(n.Descriptions,{column:1,bordered:!0,size:"small",style:{marginBottom:16}},r().createElement(n.Descriptions.Item,{label:"Status"},r().createElement(n.Tag,{icon:"success"===u.status?r().createElement(a.CheckCircleOutlined,null):r().createElement(a.CloseCircleOutlined,null),color:"success"===u.status?"success":"error"},u.status)),r().createElement(n.Descriptions.Item,{label:"Leader"},r().createElement(n.Tag,{color:"blue"},x.get(u.leaderUsername)||u.leaderUsername)),r().createElement(n.Descriptions.Item,{label:"Sub-Agent"},r().createElement(n.Tag,{color:"green"},x.get(u.subAgentUsername)||u.subAgentUsername)),r().createElement(n.Descriptions.Item,{label:"Tool"},r().createElement(_,{code:!0},u.toolName)),r().createElement(n.Descriptions.Item,{label:"Depth"},null!=(l=u.depth)?l:0),r().createElement(n.Descriptions.Item,{label:"Duration"},R(u.durationMs)),r().createElement(n.Descriptions.Item,{label:"Time"},u.createdAt?new Date(u.createdAt).toLocaleString():"-")),r().createElement(n.Card,{title:"Task",size:"small",style:{marginBottom:16}},r().createElement(B,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},u.task||"No task description")),u.context&&r().createElement(n.Card,{title:"Context",size:"small",style:{marginBottom:16}},r().createElement(B,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},u.context)),r().createElement(n.Card,{title:"Execution Flow",size:"small",style:{marginBottom:16}},Array.isArray(u.trace)&&u.trace.length?r().createElement(n.Timeline,{items:u.trace.map(function(e,t){return{key:t,color:"error"===e.status?"red":"tool_call"===e.type?"blue":"green",children:r().createElement("div",null,r().createElement(n.Space,{direction:"vertical",size:2,style:{width:"100%"}},r().createElement(_,{strong:!0},e.title||e.type),r().createElement(_,{type:"secondary"},e.at?new Date(e.at).toLocaleString():""),e.toolName&&r().createElement(_,{code:!0},e.toolName),e.skillExecutionId&&r().createElement(_,{type:"secondary"},"Skill execution #",e.skillExecutionId),e.content&&r().createElement(B,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},e.content),e.args&&r().createElement(B,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:12}},JSON.stringify(e.args,null,2))))}})}):r().createElement(n.Empty,{description:"No execution flow captured"})),Array.isArray(u.messages)&&u.messages.length>0&&r().createElement(n.Collapse,{style:{marginBottom:16},items:[{key:"messages",label:"Raw messages (".concat(u.messages.length,")"),children:r().createElement(n.Space,{direction:"vertical",style:{width:"100%"}},u.messages.map(function(e){var t;return r().createElement(n.Card,{key:e.index,size:"small",title:"".concat(e.index+1,". ").concat(e.type)},r().createElement(B,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:12}},e.content||JSON.stringify(e.toolCalls||e,null,2)),(null==(t=e.toolCalls)?void 0:t.length)>0&&r().createElement(B,{style:{whiteSpace:"pre-wrap",margin:"8px 0 0",fontSize:12}},JSON.stringify(e.toolCalls,null,2)))}))}]}),r().createElement(n.Card,{title:"Result",size:"small",style:{marginBottom:16,borderColor:"success"===u.status?"#b7eb8f":"#ffa39e"}},r().createElement(B,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13},ellipsis:{rows:20,expandable:!0}},u.result||u.error||"No result")),u.error&&r().createElement(n.Card,{title:"Error",size:"small",style:{borderColor:"#ffa39e"}},r().createElement(B,{type:"danger",style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},u.error))))))};function N(e,t){if(null==e||""===e)return t;if("string"!=typeof e)return e;var r=e.trim(),n=r.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),a=n?n[1].trim():r;try{var l=JSON.parse(a);if("string"==typeof l){var o=l.trim(),i=o.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),u=i?i[1].trim():o;try{l=JSON.parse(u)}catch(e){}}return l}catch(e){return t}}function U(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=N(e,void 0),n=void 0===r?null==e||""===e?t:e:r;return null==n?"":"string"==typeof n?n:JSON.stringify(n,null,2)}function L(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=N(e,void 0),n=void 0===r?null==e||""===e?t:e:r;return"```json\n".concat(JSON.stringify(n,null,2),"\n```")}function q(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 H(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function J(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){H(l,n,a,o,i,"next",e)}function i(e){H(l,n,a,o,i,"throw",e)}o(void 0)})}}function W(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return q(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 q(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 $(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var G=n.Typography.Paragraph,K=n.Typography.Text,V=new Set(["succeeded","failed","rejected","canceled"]);function Z(e){var t=e.status;return r().createElement(n.Tag,{icon:function(e){switch(e){case"succeeded":case"success":return r().createElement(a.CheckCircleOutlined,null);case"failed":case"error":return r().createElement(a.CloseCircleOutlined,null);case"waiting_user":case"waiting_plan_approval":case"needs_replan":return r().createElement(a.PauseCircleOutlined,null);case"approved":case"running":case"planning":return r().createElement(a.ClockCircleOutlined,null);default:return}}(t),color:function(e){switch(e){case"succeeded":case"success":return"success";case"failed":case"error":return"error";case"waiting_user":case"waiting_plan_approval":case"needs_replan":return"warning";case"approved":case"running":case"planning":return"processing";default:return"default"}}(t)},t||"-")}function Y(e){return e?new Date(e).toLocaleString():"-"}function Q(e,t){if(!e)return"-";var r=new Date(e).getTime(),n=Math.max(0,(t?new Date(t).getTime():Date.now())-r);return n>=6e4?"".concat(Math.round(n/6e4),"m"):n>=1e3?"".concat((n/1e3).toFixed(1),"s"):"".concat(n,"ms")}function X(e){var t=e.value,n=e.rows,a=function(e){if(null==e||""===e)return"";if("string"==typeof e)return e;try{return JSON.stringify(e,null,2)}catch(t){return String(e)}}(t);return a?r().createElement(G,{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:12},ellipsis:{rows:void 0===n?10:n,expandable:!0}},a):r().createElement(K,{type:"secondary"},"-")}var ee=function(){var l,o=(0,e.useAPIClient)(),i=m(),u=i.employees,c=i.employeeMap,s=W((0,t.useState)({}),2),d=s[0],p=s[1],f=W((0,t.useState)(1),2),y=f[0],h=f[1],g=W((0,t.useState)(20),2),b=g[0],v=g[1],E=W((0,t.useState)(null),2),S=E[0],w=E[1],k=W((0,t.useState)(null),2),O=k[0],x=k[1],I=W((0,t.useState)(!1),2),C=I[0],A=I[1],T=W((0,t.useState)(!1),2),j=T[0],P=T[1],z=(0,t.useMemo)(function(){var e={};return d.leader&&(e.leaderUsername=d.leader),d.status&&(e.status=d.status),{sort:["-createdAt"],page:y,pageSize:b,filter:e}},[d,y,b]),D=(0,e.useRequest)({url:"agentLoops:list",params:z},{refreshDeps:[z]}),F=D.data,_=D.loading,B=D.refresh,M=(0,t.useMemo)(function(){var e=null==F?void 0:F.data;return Array.isArray(e)?e:[]},[F]),R=(0,t.useMemo)(function(){var e,t=null==F||null==(e=F.meta)?void 0:e.count;return"number"==typeof t?t:0},[F]),U=(0,t.useMemo)(function(){return u.map(function(e){return{label:e.nickname||e.username,value:e.username}})},[u]),L=function(e,t){return J(function(){var r,n;return $(this,function(a){switch(a.label){case 0:w(t||S||{id:e}),A(!0),a.label=1;case 1:return a.trys.push([1,,3,4]),[4,o.request({url:"agentLoops:get",params:{filterByTk:e}})];case 2:return x((null==(n=a.sent())||null==(r=n.data)?void 0:r.data)||(null==n?void 0:n.data)||null),[3,4];case 3:return A(!1),[7];case 4:return[2]}})})()},q=function(e){p(function(t){return 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}({},t,e)}),h(1)},H=function(e,t){return J(function(){var r,a;return $(this,function(l){switch(l.label){case 0:P(!0),l.label=1;case 1:return l.trys.push([1,4,5,6]),[4,o.request({url:"cancel"===e?"agentLoops:cancel":"agentLoops:resume",method:"POST",data:"cancel"===e?{runId:t}:{runId:t,stepId:null==O||null==(r=O.run)?void 0:r.currentStepId,approved:!0}})];case 2:return l.sent(),n.message.success("cancel"===e?"Run canceled":"Run resumed"),B(),[4,L(t)];case 3:return l.sent(),[3,6];case 4:return a=l.sent(),n.message.error((null==a?void 0:a.message)||"Failed to ".concat(e," run")),[3,6];case 5:return P(!1),[7];case 6:return[2]}})})()},ee=[{title:"Time",dataIndex:"createdAt",key:"createdAt",width:170,render:Y},{title:"Leader",dataIndex:"leaderUsername",key:"leaderUsername",width:160,render:function(e){return r().createElement(n.Tag,{color:"blue"},c.get(e)||e||"-")}},{title:"Goal",dataIndex:"goal",key:"goal",render:function(e){return r().createElement(K,{ellipsis:!0,style:{maxWidth:380}},e||"-")}},{title:"Status",dataIndex:"status",key:"status",width:130,render:function(e){return r().createElement(Z,{status:e})}},{title:"Iterations",dataIndex:"iterationCount",key:"iterationCount",width:90,render:function(e){return null!=e?e:0}},{title:"Duration",key:"duration",width:100,render:function(e,t){return Q(t.startedAt||t.createdAt,t.endedAt)}},{title:"",key:"actions",width:90,render:function(e,t){return r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.EyeOutlined,null),onClick:function(){return L(t.id,t)}},"Detail")}}],et=Array.isArray(null==O?void 0:O.steps)?O.steps:[],er=Array.isArray(null==O?void 0:O.events)?O.events:[],en=Array.isArray(null==O?void 0:O.spans)?O.spans:[],ea=Array.isArray(null==O?void 0:O.skillExecutions)?O.skillExecutions:[],el=(null==O?void 0:O.run)||S,eo=!!(d.leader||d.status),ei=[{title:"#",dataIndex:"index",key:"index",width:56,render:function(e){return Number(null!=e?e:0)+1}},{title:"Status",dataIndex:"status",key:"status",width:130,render:function(e){return r().createElement(Z,{status:e})}},{title:"Type",dataIndex:"type",key:"type",width:110,render:function(e){return r().createElement(n.Tag,null,e)}},{title:"Step",key:"step",render:function(e,t){return r().createElement(n.Space,{direction:"vertical",size:2,style:{width:"100%"}},r().createElement(K,{strong:!0},t.title||t.planKey),t.description&&r().createElement(K,{type:"secondary"},t.description),t.target&&r().createElement(K,{code:!0},t.target))}},{title:"Depends",dataIndex:"dependsOn",key:"dependsOn",width:130,render:function(e){return Array.isArray(e)&&e.length?e.map(function(e){return r().createElement(n.Tag,{key:e},e)}):"-"}},{title:"Attempts",key:"attempts",width:90,render:function(e,t){return"".concat(t.attempt||0,"/").concat(t.maxAttempts||0)}},{title:"",key:"actions",width:90,render:function(e,t){return"failed"===t.status&&Number(t.attempt||0)<Number(t.maxAttempts||0)?r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.RedoOutlined,null),loading:j,onClick:function(){var e;return e=t.id,J(function(){var t,r,a;return $(this,function(l){switch(l.label){case 0:r=(null==O||null==(t=O.run)?void 0:t.id)||(null==S?void 0:S.id),P(!0),l.label=1;case 1:return l.trys.push([1,5,6,7]),[4,o.request({url:"agentLoops:retryStep",method:"POST",data:{stepId:e}})];case 2:if(l.sent(),n.message.success("Step queued for retry"),B(),!r)return[3,4];return[4,L(r)];case 3:l.sent(),l.label=4;case 4:return[3,7];case 5:return a=l.sent(),n.message.error((null==a?void 0:a.message)||"Failed to retry step"),[3,7];case 6:return P(!1),[7];case 7:return[2]}})})()}},"Retry"):null}}];return r().createElement("div",null,r().createElement(n.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Agent Runs",description:r().createElement(K,{type:"secondary"},"Persistent loop runs created by the orchestrator tools. Each run stores the goal, plan, step state, approvals, and linked Skill Hub or sub-agent traces.")}),r().createElement(n.Card,{bordered:!1},r().createElement(n.Form,{layout:"inline",style:{marginBottom:16,rowGap:8,flexWrap:"wrap"}},r().createElement(n.Form.Item,{label:"Leader"},r().createElement(n.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:"Any leader",style:{minWidth:180},options:U,value:d.leader,onChange:function(e){return q({leader:e})}})),r().createElement(n.Form.Item,{label:"Status"},r().createElement(n.Select,{allowClear:!0,placeholder:"Any status",style:{minWidth:160},value:d.status,onChange:function(e){return q({status:e})},options:[{label:"Planning",value:"planning"},{label:"Waiting plan approval",value:"waiting_plan_approval"},{label:"Approved",value:"approved"},{label:"Running",value:"running"},{label:"Waiting user",value:"waiting_user"},{label:"Needs replan",value:"needs_replan"},{label:"Succeeded",value:"succeeded"},{label:"Failed",value:"failed"},{label:"Rejected",value:"rejected"},{label:"Canceled",value:"canceled"}]})),r().createElement(n.Form.Item,null,r().createElement(n.Space,null,r().createElement(n.Button,{onClick:function(){p({}),h(1)},disabled:!eo},"Reset"),r().createElement(n.Button,{icon:r().createElement(a.ReloadOutlined,null),onClick:B},"Refresh")))),r().createElement(n.Table,{rowKey:"id",loading:_,dataSource:M,columns:ee,scroll:{x:"max-content"},pagination:{current:y,pageSize:b,total:R,showSizeChanger:!0,pageSizeOptions:[10,20,50,100],showTotal:function(e){return"".concat(e," run").concat(1===e?"":"s")},onChange:function(e,t){h(e),t&&t!==b&&v(t)}},locale:{emptyText:r().createElement(n.Empty,{description:eo?"No runs match the current filters":"No agent runs yet"})}})),r().createElement(n.Drawer,{title:"Agent Run Detail",width:980,onClose:function(){w(null),x(null)},open:!!S},el&&r().createElement(n.Spin,{spinning:C},r().createElement(n.Space,{direction:"vertical",size:16,style:{width:"100%"}},r().createElement(n.Space,{wrap:!0},r().createElement(n.Button,{icon:r().createElement(a.ReloadOutlined,null),onClick:function(){return L(el.id)},loading:C},"Refresh"),"waiting_user"===el.status&&r().createElement(n.Button,{type:"primary",icon:r().createElement(a.PlayCircleOutlined,null),loading:j,onClick:function(){return H("resume",el.id)}},"Resume"),!V.has(el.status)&&r().createElement(n.Popconfirm,{title:"Cancel this run?",onConfirm:function(){return H("cancel",el.id)}},r().createElement(n.Button,{danger:!0,icon:r().createElement(a.StopOutlined,null),loading:j},"Cancel run"))),r().createElement(n.Descriptions,{bordered:!0,size:"small",column:2},r().createElement(n.Descriptions.Item,{label:"Status"},r().createElement(Z,{status:el.status})),r().createElement(n.Descriptions.Item,{label:"Leader"},r().createElement(n.Tag,{color:"blue"},c.get(el.leaderUsername)||el.leaderUsername||"-")),r().createElement(n.Descriptions.Item,{label:"Root run"},r().createElement(K,{code:!0},el.rootRunId||"-")),r().createElement(n.Descriptions.Item,{label:"Current step"},r().createElement(K,{code:!0},el.currentStepId||"-")),r().createElement(n.Descriptions.Item,{label:"Iterations"},el.iterationCount||0),r().createElement(n.Descriptions.Item,{label:"Approval"},el.approvalStatus||"-"),r().createElement(n.Descriptions.Item,{label:"Plan version"},el.planVersion||"-"),r().createElement(n.Descriptions.Item,{label:"Harness"},(null==(l=el.metadata)?void 0:l.harnessTag)||"-"),r().createElement(n.Descriptions.Item,{label:"Duration"},Q(el.startedAt||el.createdAt,el.endedAt)),r().createElement(n.Descriptions.Item,{label:"Started"},Y(el.startedAt||el.createdAt)),r().createElement(n.Descriptions.Item,{label:"Ended"},Y(el.endedAt))),r().createElement(n.Card,{title:"Goal",size:"small"},r().createElement(X,{value:el.goal,rows:6})),r().createElement(n.Card,{title:"Plan",size:"small",extra:r().createElement(a.BranchesOutlined,null)},r().createElement(n.Table,{rowKey:"id",size:"small",dataSource:et,columns:ei,pagination:!1,scroll:{x:"max-content"},expandable:{expandedRowRender:function(e){return r().createElement(n.Space,{direction:"vertical",size:12,style:{width:"100%"}},r().createElement(n.Card,{size:"small",title:"Input"},r().createElement(X,{value:e.input,rows:8})),r().createElement(n.Card,{size:"small",title:"Output"},r().createElement(X,{value:e.output,rows:8})),e.approval&&Object.keys(e.approval).length>0&&r().createElement(n.Card,{size:"small",title:"Approval"},r().createElement(X,{value:e.approval,rows:8})),e.error&&r().createElement(n.Card,{size:"small",title:"Error",style:{borderColor:"#ffa39e"}},r().createElement(X,{value:e.error,rows:8})))}},locale:{emptyText:r().createElement(n.Empty,{description:"No plan steps"})}})),r().createElement(n.Card,{title:"Event Timeline",size:"small"},er.length?r().createElement(n.Timeline,{items:er.map(function(e){return{key:e.id,color:function(e){switch(e){case"succeeded":case"success":return"green";case"failed":case"error":return"red";case"waiting_user":case"waiting_plan_approval":case"needs_replan":return"orange";case"approved":case"running":case"planning":return"blue";default:return"gray"}}(e.status),children:r().createElement(n.Space,{direction:"vertical",size:2,style:{width:"100%"}},r().createElement(n.Space,{wrap:!0},r().createElement(K,{strong:!0},e.title||e.type),r().createElement(Z,{status:e.status}),e.stepId&&r().createElement(K,{type:"secondary"},"step #",e.stepId)),r().createElement(K,{type:"secondary"},Y(e.createdAt)),e.content&&r().createElement(X,{value:e.content,rows:4}))}})}):r().createElement(n.Empty,{description:"No events captured"})),r().createElement(n.Collapse,{items:[{key:"spans",label:"Linked spans (".concat(en.length,")"),children:en.length?r().createElement(n.Table,{rowKey:"id",size:"small",dataSource:en,pagination:!1,scroll:{x:"max-content"},columns:[{title:"Type",dataIndex:"type",key:"type",width:110,render:function(e){return r().createElement(n.Tag,null,e)}},{title:"Status",dataIndex:"status",key:"status",width:110,render:function(e){return r().createElement(Z,{status:e})}},{title:"Title",dataIndex:"title",key:"title"},{title:"Tool",dataIndex:"toolName",key:"toolName",render:function(e){return e?r().createElement(K,{code:!0},e):"-"}},{title:"Duration",dataIndex:"durationMs",key:"durationMs",width:100,render:function(e){return e?"".concat(e,"ms"):"-"}},{title:"Skill Exec",dataIndex:"skillExecutionId",key:"skillExecutionId",width:110,render:function(e){return e||"-"}}]}):r().createElement(n.Empty,{description:"No linked spans"})},{key:"skills",label:"Skill executions (".concat(ea.length,")"),children:ea.length?r().createElement(n.Space,{direction:"vertical",size:12,style:{width:"100%"}},ea.map(function(e){var t=N(e.outputFiles,[]);return r().createElement(n.Card,{key:e.id,size:"small",title:r().createElement(n.Space,{wrap:!0},r().createElement(K,null,"Skill execution #",e.id),r().createElement(Z,{status:e.status}),e.agentLoopStepId&&r().createElement(K,{type:"secondary"},"step #",e.agentLoopStepId))},r().createElement(n.Space,{direction:"vertical",size:8,style:{width:"100%"}},r().createElement(n.Descriptions,{size:"small",column:2},r().createElement(n.Descriptions.Item,{label:"Duration"},e.durationMs?"".concat(e.durationMs,"ms"):"-"),r().createElement(n.Descriptions.Item,{label:"Created"},Y(e.createdAt))),r().createElement(n.Collapse,{size:"small",items:[{key:"stdout",label:"stdout",children:r().createElement(X,{value:e.stdout,rows:10})},{key:"stderr",label:"stderr",children:r().createElement(X,{value:e.stderr,rows:10})},{key:"files",label:"files (".concat(t.length,")"),children:t.length?r().createElement(n.Space,{direction:"vertical"},t.map(function(t,n){var a,l;return a=(null==t?void 0:t.downloadUrl)?t.downloadUrl:(null==e?void 0:e.id)&&(null==t?void 0:t.name)?"/api/skillHub:download?execId=".concat(e.id,"&filename=").concat(encodeURIComponent(t.name)):"",l=t.name||t.path||"file-".concat(n+1),a?r().createElement("a",{key:n,href:a,target:"_blank",rel:"noreferrer"},l):r().createElement(K,{key:n},l)})):r().createElement(n.Empty,{description:"No files"})}]})))})):r().createElement(n.Empty,{description:"No linked skill executions"})}]}),(el.finalAnswer||el.summary)&&r().createElement(n.Card,{title:"Final Output",size:"small"},el.summary&&r().createElement(G,{style:{whiteSpace:"pre-wrap",marginBottom:12}},r().createElement(K,{strong:!0},"Summary: "),el.summary),r().createElement(X,{value:el.finalAnswer,rows:16}))))))};function et(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 er(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function en(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){er(l,n,a,o,i,"next",e)}function i(e){er(l,n,a,o,i,"throw",e)}o(void 0)})}}function ea(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return et(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 et(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 el(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var eo=n.Typography.Text,ei=function(e){var t=String(e||"").trim();return t?JSON.parse(t):{}},eu=function(){var t=(0,e.useAPIClient)(),l=ea(r().useState(!1),2),o=l[0],i=l[1],u=ea(r().useState(null),2),c=u[0],s=u[1],d=ea(n.Form.useForm(),1)[0],m=(0,e.useRequest)({url:"agentHarnessProfiles:list",params:{sort:["tag"],pageSize:100}}),p=m.data,f=m.loading,y=m.refresh,h=r().useMemo(function(){var e=null==p?void 0:p.data;return Array.isArray(e)?e:[]},[p]),g=function(e){var t,r;s(e||null),d.resetFields(),d.setFieldsValue(e?(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}({},e),r=r={settingsText:JSON.stringify(e.settings||{},null,2)},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):{tag:"",title:"",description:"",enabled:!0,settingsText:JSON.stringify({requirePlanApproval:!0,allowSubAgents:!0,allowToolCalls:!0,maxParallelSubAgents:3,maxControllerSteps:100},null,2)}),i(!0)},b=function(){i(!1),s(null)},v=[{title:"Tag",dataIndex:"tag",key:"tag",width:140,render:function(e){return r().createElement(n.Tag,{color:"blue"},e)}},{title:"Title",dataIndex:"title",key:"title",render:function(e,t){return e||t.tag}},{title:"Enabled",dataIndex:"enabled",key:"enabled",width:90,render:function(e,a){return r().createElement(n.Switch,{size:"small",checked:!1!==e,onChange:function(e){return en(function(){return el(this,function(r){switch(r.label){case 0:return[4,t.request({url:"agentHarnessProfiles:update",method:"put",params:{filterByTk:a.id},data:{enabled:e}})];case 1:return r.sent(),y(),[2]}})})()}})}},{title:"Settings",key:"settings",render:function(e,t){return r().createElement(n.Space,{size:4,wrap:!0},Object.entries(t.settings||{}).slice(0,5).map(function(e){var t=ea(e,2),a=t[0],l=t[1];return r().createElement(n.Tag,{key:a},a,": ",String(l))}))}},{title:"Actions",key:"actions",width:150,render:function(e,l){return r().createElement(n.Space,null,r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.EditOutlined,null),onClick:function(){return g(l)}},"Edit"),r().createElement(n.Popconfirm,{title:"Delete this profile?",onConfirm:function(){var e;return e=l.id,en(function(){var r;return el(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),[4,t.request({url:"agentHarnessProfiles:destroy",method:"delete",params:{filterByTk:e}})];case 1:return a.sent(),n.message.success("Harness profile deleted"),y(),[3,3];case 2:return r=a.sent(),n.message.error("Delete failed: ".concat((null==r?void 0:r.message)||"unknown error")),[3,3];case 3:return[2]}})})()}},r().createElement(n.Button,{type:"link",size:"small",danger:!0,icon:r().createElement(a.DeleteOutlined,null)},"Delete")))}}];return r().createElement("div",null,r().createElement(n.Card,{bordered:!1},r().createElement(n.Space,{direction:"vertical",size:16,style:{width:"100%"}},r().createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:16}},r().createElement(eo,{type:"secondary"},"Harness profiles are selected by orchestration rules through the harnessTag field."),r().createElement(n.Button,{type:"primary",icon:r().createElement(a.PlusOutlined,null),onClick:function(){return g()}},"New Profile")),r().createElement(n.Table,{rowKey:"id",loading:f,dataSource:h,columns:v,pagination:!1,scroll:{x:"max-content"}}))),r().createElement(n.Drawer,{title:c?"Edit Harness Profile":"New Harness Profile",width:560,open:o,onClose:b,extra:r().createElement(n.Space,null,r().createElement(n.Button,{onClick:b},"Cancel"),r().createElement(n.Button,{type:"primary",onClick:function(){return d.submit()}},"Save"))},r().createElement(n.Form,{form:d,layout:"vertical",onFinish:function(e){return en(function(){var r,a,l,o,i,u,s,d;return el(this,function(m){switch(m.label){case 0:try{r=ei(e.settingsText)}catch(e){return n.message.error("Settings JSON is invalid: ".concat((null==e?void 0:e.message)||e)),[2]}a={tag:String(e.tag||"").trim(),title:e.title,description:e.description,enabled:!1!==e.enabled,settings:r},m.label=1;case 1:if(m.trys.push([1,6,,7]),!c)return[3,3];return[4,t.request({url:"agentHarnessProfiles:update",method:"put",params:{filterByTk:c.id},data:a})];case 2:return m.sent(),n.message.success("Harness profile updated"),[3,5];case 3:return[4,t.request({url:"agentHarnessProfiles:create",method:"post",data:a})];case 4:m.sent(),n.message.success("Harness profile created"),m.label=5;case 5:return b(),y(),[3,7];case 6:return d=(null==(l=m.sent())||null==(s=l.response)||null==(u=s.data)||null==(i=u.errors)||null==(o=i[0])?void 0:o.message)||(null==l?void 0:l.message)||"unknown error",n.message.error("Save failed: ".concat(d)),[3,7];case 7:return[2]}})})()}},r().createElement(n.Form.Item,{name:"tag",label:"Tag",rules:[{required:!0,message:"Tag is required"}]},r().createElement(n.Input,{placeholder:"default",disabled:(null==c?void 0:c.tag)==="default"})),r().createElement(n.Form.Item,{name:"title",label:"Title"},r().createElement(n.Input,null)),r().createElement(n.Form.Item,{name:"description",label:"Description"},r().createElement(n.Input.TextArea,{rows:3})),r().createElement(n.Form.Item,{name:"settingsText",label:"Settings JSON",rules:[{required:!0,message:"Settings JSON is required"}]},r().createElement(n.Input.TextArea,{rows:12,spellCheck:!1})),r().createElement(n.Form.Item,{name:"enabled",label:"Enabled",valuePropName:"checked"},r().createElement(n.Switch,null)))))};function ec(){var r=(0,e.useApp)();return(0,t.useCallback)(function(e,t){return r.i18n.t(e,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}({ns:["plugin-agent-orchestrator","client"]},t))},[r.i18n])}function es(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 ed(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function em(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 ep(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 ef(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return es(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 es(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 ey=n.Input.TextArea,eh=n.theme.useToken,eg=function(l){var o=l.skill,i=l.onClose,u=(0,e.useAPIClient)(),c=ec(),s=eh().token,d=ef(n.Form.useForm(),1)[0],m=!!o,p=ef((0,t.useState)([]),2),f=p[0],y=p[1];(0,t.useEffect)(function(){m||u.request({url:"skillHub:listTemplates"}).then(function(e){var t,r=e.data,n=(null==r||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data)||r;n&&n.data&&Array.isArray(n.data)&&(n=n.data),y(Array.isArray(n)?n:[])}).catch(function(){y([])})},[u,m]),(0,t.useEffect)(function(){o?d.setFieldsValue(ep(em({},o),{inputSchema:U(o.inputSchema,null),interactionSchema:U(o.interactionSchema,null),packages:U(o.packages,[])})):(d.resetFields(),d.setFieldsValue({storageType:"database",language:"python",timeoutSeconds:60,maxOutputSizeMb:50,enabled:!0,toolScope:"CUSTOM",autoCall:!1,packages:"[]"}))},[o,d]);var h=n.Form.useWatch("storageType",d)||"database";(0,t.useEffect)(function(){if("plugin"===h){var e=d.getFieldValue("pluginSource");if(e){var t=f.find(function(t){return t.name===e});t&&d.setFieldsValue({name:t.name,title:t.title,description:t.description,language:t.language,instructions:t.instructions||"",inputSchema:U(t.inputSchema,null),interactionSchema:U(t.interactionSchema,null),packages:U(t.packages,[]),timeoutSeconds:t.timeoutSeconds||60,maxOutputSizeMb:t.maxOutputSizeMb||50,toolScope:t.toolScope||"CUSTOM",storageUrl:t.storageUrl})}}},[h,f,d]);var g=function(e){var t,r=f.find(function(t){return t.name===e});r&&("plugin"===h?d.setFieldsValue({name:r.name,title:r.title,description:r.description||"",language:r.language||"python",instructions:r.instructions||"",inputSchema:U(r.inputSchema,null),interactionSchema:U(r.interactionSchema,null),packages:U(r.packages,[]),timeoutSeconds:r.timeoutSeconds||60,maxOutputSizeMb:r.maxOutputSizeMb||50,toolScope:r.toolScope||"CUSTOM",storageUrl:r.storageUrl}):d.setFieldsValue({name:r.name,title:r.title,description:r.description||"",instructions:r.instructions||"",language:r.language||"python",codeTemplate:r.codeTemplate||"",inputSchema:U(r.inputSchema,null),interactionSchema:U(r.interactionSchema,null),packages:U(r.packages,[]),timeoutSeconds:r.timeoutSeconds||60,maxOutputSizeMb:r.maxOutputSizeMb||50,toolScope:r.toolScope||"CUSTOM",enabled:null==(t=r.enabled)||t}),n.message.success(c("Template applied")))};return r().createElement(n.Modal,{open:!0,title:m?c("Edit Skill"):c("New Skill"),onCancel:function(){return i()},width:720,destroyOnClose:!0,footer:null,styles:{body:{padding:0,display:"flex",flexDirection:"column",maxHeight:"calc(100vh - 120px)"}},style:{top:40}},r().createElement(n.Form,{form:d,layout:"vertical",size:"middle",component:"div",style:{display:"flex",flexDirection:"column",maxHeight:"calc(100vh - 120px)"}},r().createElement(n.Form.Item,{name:"storageUrl",hidden:!0},r().createElement(n.Input,null)),r().createElement("div",{style:{flexShrink:0,background:s.colorBgContainer,borderBottom:"1px solid ".concat(s.colorBorderSecondary),padding:"12px 24px",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12}},r().createElement(n.Form.Item,{name:"storageType",noStyle:!0},r().createElement(n.Radio.Group,{optionType:"button",buttonStyle:"solid",size:"small"},r().createElement(n.Radio,{value:"database"},c("Database Editor")),r().createElement(n.Radio,{value:"local"},c("ZIP Package")),r().createElement(n.Radio,{value:"plugin",disabled:!Array.isArray(f)||0===f.length},c("Bind to Plugin")))),r().createElement(n.Space,{size:16},r().createElement(n.Space,{size:4},r().createElement("span",{style:{fontSize:12,color:s.colorTextSecondary}},c("Enabled")),r().createElement(n.Form.Item,{name:"enabled",valuePropName:"checked",noStyle:!0},r().createElement(n.Switch,{size:"small"}))),r().createElement(n.Space,{size:4},r().createElement("span",{style:{fontSize:12,color:s.colorTextSecondary}},c("Auto Call")),r().createElement(n.Form.Item,{name:"autoCall",valuePropName:"checked",noStyle:!0},r().createElement(n.Switch,{size:"small"})))),r().createElement(n.Space,null,r().createElement(n.Button,{size:"small",icon:r().createElement(a.CloseOutlined,null),onClick:function(){return i()}},c("Cancel")),r().createElement(n.Button,{type:"primary",size:"small",icon:r().createElement(a.SaveOutlined,null),onClick:function(){var e;return(e=function(){var e,t,r;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:return a.trys.push([0,6,,7]),[4,d.validateFields()];case 1:e=a.sent();try{e.inputSchema&&JSON.parse(e.inputSchema)}catch(e){return n.message.error(c("Invalid JSON in Input Schema")),[2]}try{e.interactionSchema&&JSON.parse(e.interactionSchema)}catch(e){return n.message.error(c("Invalid JSON in Interaction Schema")),[2]}try{e.packages&&JSON.parse(e.packages)}catch(e){return n.message.error(c("Invalid JSON in Packages")),[2]}if(t=ep(em({},e),{inputSchema:e.inputSchema?L(e.inputSchema):null,interactionSchema:e.interactionSchema?L(e.interactionSchema):null,packages:L(e.packages||[],[])}),!m)return[3,3];return[4,u.request({url:"skillDefinitions:update",method:"POST",params:{filterByTk:o.id},data:t})];case 2:return a.sent(),[3,5];case 3:return[4,u.request({url:"skillDefinitions:create",method:"POST",data:t})];case 4:a.sent(),a.label=5;case 5:return n.message.success(c(m?"Skill updated":"Skill created")),i(!0),[3,7];case 6:if(null==(r=a.sent())?void 0:r.errorFields)return[2];return n.message.error(c("Failed to save skill")),[3,7];case 7:return[2]}})},function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){ed(l,n,a,o,i,"next",e)}function i(e){ed(l,n,a,o,i,"throw",e)}o(void 0)})})()}},m?c("Save"):c("Create")))),r().createElement("div",{style:{flex:1,overflowY:"auto",padding:"16px 24px 24px",minHeight:0}},"database"===h&&!m&&Array.isArray(f)&&f.length>0&&r().createElement(n.Form.Item,{label:c("Import Template to Pre-fill code (Optional)"),style:{marginBottom:24}},r().createElement(n.Select,{placeholder:c("Select a template to pre-fill"),onChange:g,allowClear:!0},f.map(function(e){return r().createElement(n.Select.Option,{key:e.name,value:e.name},e.title," (",e.pluginSource||e.name,")")}))),"plugin"===h&&r().createElement(r().Fragment,null,r().createElement(n.Form.Item,{name:"inputSchema",hidden:!0},r().createElement(ey,null)),r().createElement(n.Form.Item,{name:"packages",hidden:!0},r().createElement(n.Input,null)),r().createElement(n.Form.Item,{name:"pluginSource",label:c("Select Plugin Skill"),rules:[{required:!0}],style:{marginBottom:24,padding:12,background:"#e6f4ff",borderRadius:8,border:"1px solid #91caff"},extra:r().createElement("div",{style:{fontSize:12,color:"#1677ff",marginTop:8}},c("Binding dynamically delegates execution to the plugin logic. Code, Language, and Schemas are managed externally."))},r().createElement(n.Select,{placeholder:c("Choose an enabled plugin skill to attach"),onChange:g,allowClear:!0},Array.isArray(f)&&f.map(function(e){return r().createElement(n.Select.Option,{key:e.name,value:e.name},e.title," (",e.pluginSource||e.name,")")})))),r().createElement(n.Form.Item,{name:"name",label:c("Name (Internal Identifier)"),rules:[{required:!0}]},r().createElement(n.Input,{placeholder:"generate-word-report",disabled:m||"plugin"===h})),r().createElement(n.Form.Item,{name:"title",label:c("Title"),rules:[{required:!0}]},r().createElement(n.Input,{placeholder:"Generate Word Report",disabled:"plugin"===h})),r().createElement(n.Form.Item,{name:"description",label:c("Description")},r().createElement(ey,{rows:2,placeholder:"Description for AI employee to understand this skill",disabled:"plugin"===h})),r().createElement(n.Form.Item,{name:"instructions",label:c("Instructions / Documentation")},r().createElement(ey,{rows:6,placeholder:"Detailed instructions or markdown documentation for this skill",disabled:"plugin"===h})),"local"===h&&r().createElement(n.Form.Item,{label:c("Skill Package ZIP"),name:"fileId",valuePropName:"fileId",getValueFromEvent:function(e){var t,r,n,a,l,o,i;return(null==e||null==(n=e.file)||null==(r=n.response)||null==(t=r.data)?void 0:t.id)||(null==e||null==(i=e.fileList)||null==(o=i[0])||null==(l=o.response)||null==(a=l.data)?void 0:a.id)||void 0},rules:[{required:!0}]},r().createElement(n.Upload.Dragger,{name:"file",action:"/api/attachments:create",headers:{Authorization:"Bearer ".concat(u.auth.getToken())},maxCount:1,accept:".zip"},r().createElement("p",{className:"ant-upload-drag-icon"},r().createElement(a.InboxOutlined,null)),r().createElement("p",{className:"ant-upload-text"},c("Click or drag ZIP file to this area to upload")),r().createElement("p",{className:"ant-upload-hint"},c("Upload a skill package zip containing SKILL.md and index.py/.js. Metadata will be extracted automatically.")))),"plugin"!==h&&r().createElement(n.Form.Item,{name:"language",label:c("Language")},r().createElement(n.Select,null,r().createElement(n.Select.Option,{value:"python"},"Python"),r().createElement(n.Select.Option,{value:"node"},"Node.js"))),"database"===h&&r().createElement(n.Form.Item,{name:"codeTemplate",label:c("Code Template"),extra:c("Use {{placeholder}} for input parameters. Use OUTPUT_DIR env var for output directory.")},r().createElement(ey,{rows:12,style:{fontFamily:"monospace",fontSize:13},placeholder:'import os\n\noutput_dir = os.environ.get("OUTPUT_DIR", "/output")\n# Your code here'})),"plugin"!==h&&r().createElement(n.Form.Item,{name:"inputSchema",label:c("Input Schema (JSON)"),extra:c("JSON Schema defining input parameters for this skill")},r().createElement(ey,{rows:6,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "type": "object",\n "properties": {},\n "required": []\n}'})),r().createElement(n.Form.Item,{name:"interactionSchema",label:c("Interaction Schema (optional)"),extra:c("If set, user is prompted to fill / confirm input before execution. Type: form | select | confirm.")},r().createElement(ey,{rows:6,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "type": "form",\n "prompt": "Confirm parameters",\n "fields": {\n "fileName": { "type": "string", "title": "File name", "required": true }\n }\n}'})),"plugin"!==h&&r().createElement(n.Form.Item,{name:"packages",label:c("Packages (JSON array)")},r().createElement(n.Input,{placeholder:'["python-docx", "openpyxl"]',style:{fontFamily:"monospace"}})),r().createElement("div",{style:{display:"flex",gap:16}},r().createElement(n.Form.Item,{name:"timeoutSeconds",label:c("Timeout (seconds)"),style:{flex:1}},r().createElement(n.InputNumber,{min:5,max:300,style:{width:"100%"}})),r().createElement(n.Form.Item,{name:"maxOutputSizeMb",label:c("Max Output (MB)"),style:{flex:1}},r().createElement(n.InputNumber,{min:1,max:200,style:{width:"100%"}})),r().createElement(n.Form.Item,{name:"toolScope",label:c("Tool Scope"),style:{flex:1}},r().createElement(n.Select,null,r().createElement(n.Select.Option,{value:"CUSTOM"},"CUSTOM"),r().createElement(n.Select.Option,{value:"GENERAL"},"GENERAL"),r().createElement(n.Select.Option,{value:"SPECIFIED"},"SPECIFIED")))))))};function eb(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 ev(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function eE(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eb(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 eb(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 eS=n.Input.TextArea,ew=function(a){var l,o=a.skill,i=a.onClose,u=(0,e.useAPIClient)(),c=ec(),s=N(o.inputSchema,null),d=eE((0,t.useState)((null==s?void 0:s.properties)?JSON.stringify(Object.fromEntries(Object.keys(s.properties).map(function(e){return[e,""]})),null,2):"{}"),2),m=d[0],p=d[1],f=eE((0,t.useState)(!1),2),y=f[0],h=f[1],g=eE((0,t.useState)(null),2),b=g[0],v=g[1],E=eE((0,t.useState)(""),2),S=E[0],w=E[1];return r().createElement(n.Modal,{open:!0,title:"".concat(c("Test Skill"),": ").concat(o.title),onCancel:i,footer:[r().createElement(n.Button,{key:"close",onClick:i},c("Close")),r().createElement(n.Button,{key:"run",type:"primary",onClick:function(){var e;return(e=function(){var e,t,r,n,a,l,i,s;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(d){switch(d.label){case 0:h(!0),v(null),w("");try{e=JSON.parse(m)}catch(e){return w(c("Invalid JSON input")),h(!1),[2]}d.label=1;case 1:return d.trys.push([1,3,4,5]),[4,u.request({url:"skillHub:test",method:"POST",data:{skillId:o.id,input:e}})];case 2:return v((null==(r=d.sent().data)||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data)||r),[3,5];case 3:return w((null==(n=d.sent())||null==(s=n.response)||null==(i=s.data)||null==(l=i.errors)||null==(a=l[0])?void 0:a.message)||n.message||c("Execution failed")),[3,5];case 4:return h(!1),[7];case 5:return[2]}})},function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){ev(l,n,a,o,i,"next",e)}function i(e){ev(l,n,a,o,i,"throw",e)}o(void 0)})})()},loading:y},c("Run"))],width:640,destroyOnClose:!0},r().createElement(n.Space,{direction:"vertical",style:{width:"100%"},size:"middle"},r().createElement("div",null,r().createElement(n.Typography.Text,{strong:!0},c("Input (JSON)")),r().createElement(eS,{rows:6,value:m,onChange:function(e){return p(e.target.value)},style:{fontFamily:"monospace",fontSize:13,marginTop:4}})),y&&r().createElement(n.Spin,{tip:c("Running skill on worker...")}),S&&r().createElement(n.Alert,{type:"error",message:S,showIcon:!0}),b&&r().createElement(r().Fragment,null,r().createElement(n.Alert,{type:"succeeded"===b.status?"success":"error",message:"succeeded"===b.status?c("Succeeded"):c("Failed"),description:"Duration: ".concat(b.durationMs||0,"ms"),showIcon:!0}),b.stdout&&r().createElement("div",null,r().createElement(n.Typography.Text,{strong:!0},"stdout:"),r().createElement("pre",{style:{background:"#f5f5f5",padding:8,maxHeight:200,overflow:"auto",fontSize:12}},b.stdout)),b.stderr&&r().createElement("div",null,r().createElement(n.Typography.Text,{strong:!0,type:"danger"},"stderr:"),r().createElement("pre",{style:{background:"#fff2f0",padding:8,maxHeight:200,overflow:"auto",fontSize:12}},b.stderr)),(null==(l=b.files)?void 0:l.length)>0&&r().createElement("div",null,r().createElement(n.Typography.Text,{strong:!0},c("Output Files"),":"),r().createElement("div",{style:{marginTop:8}},r().createElement(e.Upload.ReadPretty,{value:b.files.map(function(e,t){return{id:"test-".concat(e.name,"-").concat(t),title:e.name,filename:e.name,extname:e.name.includes(".")?".".concat(e.name.split(".").pop()):"",url:e.downloadUrl,status:"done"}}),multiple:!0,showFileName:!0}))))))};function ek(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 eO(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function ex(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){eO(l,n,a,o,i,"next",e)}function i(e){eO(l,n,a,o,i,"throw",e)}o(void 0)})}}function eI(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ek(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 ek(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 eC(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var eA=n.Typography.Text,eT=n.theme.useToken,ej=function(l){var o=l.open,i=l.onClose,u=ec(),c=eT().token,s=(0,e.useAPIClient)(),d=eI((0,t.useState)(0),2),m=d[0],p=d[1],f=eI((0,t.useState)([]),2),y=f[0],h=f[1],g=eI((0,t.useState)(!1),2),b=g[0],v=g[1],E=eI((0,t.useState)(null),2),S=E[0],w=E[1],k=eI((0,t.useState)([]),2),O=k[0],x=k[1],I=eI((0,t.useState)(""),2),C=(I[0],I[1]),A=eI((0,t.useState)("HEAD"),2),T=A[0],j=A[1],P=eI((0,t.useState)([]),2),z=P[0],D=P[1],F=eI((0,t.useState)(!1),2),_=F[0],B=F[1],M=eI((0,t.useState)(""),2),R=M[0],N=M[1],U=eI((0,t.useState)(null),2),L=U[0],q=U[1],H=eI((0,t.useState)([]),2),J=H[0],W=H[1],$=eI((0,t.useState)(!1),2),G=$[0],K=$[1],V=eI((0,t.useState)([]),2),Z=V[0],Y=V[1],Q=eI((0,t.useState)(!1),2),X=Q[0],ee=Q[1],et=eI((0,t.useState)(""),2),er=et[0],en=et[1],ea=eI((0,t.useState)(null),2),el=ea[0],eo=ea[1],ei=eI((0,t.useState)(""),2),eu=ei[0],es=ei[1],ed=eI((0,t.useState)(null),2),em=ed[0],ep=ed[1],ef=eI((0,t.useState)(!1),2),ey=ef[0],eh=ef[1],eg=(0,t.useCallback)(function(){return ex(function(){var e,t;return eC(this,function(r){switch(r.label){case 0:v(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),[4,s.request({url:"gitRepositories:list",params:{pageSize:100}})];case 2:return h(((null==(t=r.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data)||[]).filter(function(e){return"connected"===e.status})),[3,4];case 3:return v(!1),[7];case 4:return[2]}})})()},[s]);(0,t.useEffect)(function(){o&&(eg(),p(0),w(null),q(null),W([]),Y([]),eo(null),ep(null),ee(!1),N(""),en(""),es(""))},[o,eg]),(0,t.useEffect)(function(){S&&s.request({url:"gitManager:branches",params:{repositoryId:S}}).then(function(e){var t,r=e.data,n=(null==r||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data);x((null==n?void 0:n.all)||[]);var a=(null==n?void 0:n.current)||"main";C(a),j(a)}).catch(function(){return x([])})},[S,s]);var eb=(0,t.useCallback)(function(){return ex(function(){var e,t;return eC(this,function(r){switch(r.label){case 0:if(!S)return[2];B(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),[4,s.request({url:"gitManager:fileTree",params:{repositoryId:S,ref:T,treePath:R}})];case 2:return D(((null==(t=r.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data)||[]).filter(function(e){return"tree"===e.type})),[3,4];case 3:return B(!1),[7];case 4:return[2]}})})()},[s,S,T,R]);(0,t.useEffect)(function(){1===m&&S&&eb()},[m,S,T,R,eb]);var ev=(0,t.useCallback)(function(){return ex(function(){var e,t,r,a,l,o,i,c,d;return eC(this,function(m){switch(m.label){case 0:if(!S||null===L)return[2];K(!0),m.label=1;case 1:return m.trys.push([1,3,4,5]),[4,s.request({url:"skillHub:gitListSkills",params:{repositoryId:S,ref:T,rootFolder:L}})];case 2:return a=(null==(r=m.sent().data)||null==(e=r.data)?void 0:e.data)||(null==r?void 0:r.data)||[],eo((null==r||null==(t=r.data)?void 0:t.config)||(null==r?void 0:r.config)||null),W(a),Y(a.filter(function(e){return!e.existsInDb}).map(function(e){return e.folder})),[3,5];case 3:return l=m.sent(),n.message.error((null==l||null==(d=l.response)||null==(c=d.data)||null==(i=c.errors)||null==(o=i[0])?void 0:o.message)||u("Failed to read skills from git")),eo(null),W([]),[3,5];case 4:return K(!1),[7];case 5:return[2]}})})()},[s,S,T,L,u]);(0,t.useEffect)(function(){2===m&&null!==L&&ev()},[m,L,ev]);var eE=(0,t.useMemo)(function(){if(!eu.trim())return J;var e=eu.toLowerCase();return J.filter(function(t){return(t.title||t.name||"").toLowerCase().includes(e)||(t.description||"").toLowerCase().includes(e)})},[J,eu]),eS=[{title:u("Skill"),key:"name",render:function(e,t){return r().createElement("div",null,r().createElement(eA,{strong:!0},t.title||t.name),r().createElement("div",null,r().createElement(eA,{type:"secondary",style:{fontSize:12}},t.name)))}},{title:u("Language"),dataIndex:"language",key:"language",width:100,render:function(e){return r().createElement(n.Tag,{color:"python"===e?"blue":"green"},e)}},{title:u("Source"),dataIndex:"storageType",key:"storageType",width:100,render:function(e){return r().createElement(n.Tag,{color:"plugin"===e?"purple":"cyan"},(e||"git").toUpperCase())}},{title:u("Description"),dataIndex:"description",key:"description",ellipsis:!0},{title:u("Status"),key:"status",width:120,render:function(e,t){return t.existsInDb?r().createElement(n.Tag,{color:"orange"},u("Exists")):r().createElement(n.Tag,{color:"green"},u("New"))}}],ew=[{title:u("Skill"),dataIndex:"name",key:"name",render:function(e){var t=er?er.trim():"",n=t?"".concat(t).concat(e):e;return r().createElement("div",null,r().createElement(eA,{strong:!0},n),t&&r().createElement("div",null,r().createElement(eA,{type:"secondary",style:{fontSize:11}},u("Original"),": ",e)))}},{title:u("Result"),key:"status",render:function(e,t){return r().createElement(n.Space,null,r().createElement(n.Tag,{color:{created:"green",updated:"blue",skipped:"orange",error:"red"}[t.status]||"default"},t.status),t.reason&&r().createElement(eA,{type:"secondary",style:{fontSize:12}},t.reason))}}];return r().createElement(n.Modal,{open:o,title:r().createElement(n.Space,null,r().createElement(a.BranchesOutlined,null),u("Import Skills from Git")),onCancel:function(){return i()},width:800,footer:3===m?r().createElement(n.Button,{type:"primary",onClick:function(){return i(!0)}},u("Done")):r().createElement(n.Space,null,m>0&&m<3&&r().createElement(n.Button,{onClick:function(){return p(m-1)}},u("Back")),m<2&&r().createElement(n.Button,{type:"primary",disabled:!(0===m?!!S:1===m?null!==L:2===m&&Z.length>0),onClick:function(){return p(m+1)}},u("Next")),2===m&&r().createElement(n.Button,{type:"primary",loading:ey,disabled:0===Z.length,onClick:function(){return ex(function(){var e,t,r,a,l,o,i;return eC(this,function(c){switch(c.label){case 0:if(0===Z.length)return n.message.warning(u("Please select at least one skill")),[2];eh(!0),c.label=1;case 1:return c.trys.push([1,3,4,5]),[4,s.request({url:"skillHub:gitSyncSkills",method:"POST",params:{repositoryId:S,ref:T,rootFolder:L,prefix:er},data:{skills:Z,overwrite:X}})];case 2:return ep((null==(t=c.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data)||[]),p(3),[3,5];case 3:return r=c.sent(),n.message.error((null==r||null==(i=r.response)||null==(o=i.data)||null==(l=o.errors)||null==(a=l[0])?void 0:a.message)||u("Sync failed")),[3,5];case 4:return eh(!1),[7];case 5:return[2]}})})()}},r().createElement(a.SyncOutlined,null)," ",u("Sync Selected")," (",Z.length,")")),destroyOnClose:!0},r().createElement(n.Steps,{current:m,size:"small",style:{marginBottom:24},items:[{title:u("Repository")},{title:u("Root Folder")},{title:u("Select Skills")},{title:u("Result")}]}),0===m&&r().createElement("div",null,b?r().createElement(n.Spin,null):0===y.length?r().createElement(n.Empty,{description:u("No connected repositories. Please configure one in Git Manager first.")}):r().createElement("div",null,r().createElement(eA,{strong:!0,style:{display:"block",marginBottom:8}},r().createElement(a.DatabaseOutlined,null)," ",u("Select a connected git repository")),r().createElement(n.Select,{style:{width:"100%"},placeholder:u("Select repository"),value:S,onChange:w,options:y.map(function(e){return{label:r().createElement(n.Space,null,e.name,r().createElement(eA,{type:"secondary",style:{fontSize:12}},e.repoUrl)),value:e.id}})}))),1===m&&r().createElement("div",null,r().createElement("div",{style:{marginBottom:12,display:"flex",gap:12,alignItems:"center"}},r().createElement(a.BranchesOutlined,null),r().createElement(n.Select,{size:"small",style:{width:200},value:T,onChange:function(e){j(e),q(null)},options:O.map(function(e){return{label:e,value:e}})})),r().createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8}},r().createElement(eA,{strong:!0},r().createElement(a.FolderOutlined,null)," ",u("Current Path"),": ",R||"/ (Root)"),r().createElement(n.Button,{type:"primary",onClick:function(){return q(R)}},u("Use Current Folder"))),_?r().createElement(n.Spin,null):r().createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:8}},R&&r().createElement(n.Button,{icon:r().createElement(a.FolderOutlined,null),onClick:function(){var e=R.split("/");e.pop(),N(e.join("/"))}},".."),z.map(function(e){return r().createElement(n.Button,{key:e.path,icon:r().createElement(a.FolderOutlined,null),onClick:function(){return N(e.path)},style:{height:"auto",padding:"8px 16px"}},e.name)}),0===z.length&&!R&&r().createElement(n.Empty,{description:u("No folders found")})),null!==L&&r().createElement(n.Alert,{style:{marginTop:12},type:"success",message:"".concat(u("Selected Root Folder"),": ").concat(L||"/"),showIcon:!0})),2===m&&r().createElement("div",null,(null==el?void 0:el.initializedSkillsJson)&&r().createElement(n.Alert,{style:{marginBottom:12},type:"info",showIcon:!0,message:"".concat(u("Initialized skills.json"),": ").concat(el.path||"skills.json")}),G?r().createElement(n.Spin,null):0===J.length?r().createElement(n.Empty,{description:u("No skills found")}):r().createElement("div",null,r().createElement("div",{style:{marginBottom:12,display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,flexWrap:"wrap"}},r().createElement(n.Input,{placeholder:u("Search by title or description..."),prefix:r().createElement(a.SearchOutlined,{style:{color:c.colorTextQuaternary}}),value:eu,onChange:function(e){return es(e.target.value)},allowClear:!0,style:{width:260}}),r().createElement(n.Space,null,r().createElement(n.Input,{size:"small",placeholder:u("Skill Name Prefix"),value:er,onChange:function(e){return en(e.target.value)},style:{width:150}}),r().createElement(eA,{style:{fontSize:12,marginLeft:8}},u("Overwrite")),r().createElement(n.Switch,{size:"small",checked:X,onChange:ee}))),r().createElement("div",{style:{marginBottom:8}},r().createElement(eA,{type:"secondary",style:{fontSize:12}},eE.length," / ",J.length," ",u("skills found"),er&&r().createElement("span",{style:{marginLeft:8}},"\xe2€\xa2 ",u("Prefix"),": ",r().createElement(n.Tag,{style:{margin:0}},er)," ",r().createElement(eA,{type:"secondary",style:{fontSize:11}},"(",u("applied on sync"),")")))),r().createElement(n.Table,{dataSource:eE,columns:eS,rowKey:"folder",size:"small",pagination:{pageSize:10,size:"small",showSizeChanger:!1,showTotal:function(e,t){return"".concat(t[0],"-").concat(t[1]," / ").concat(e)}},rowSelection:{selectedRowKeys:Z,onChange:function(e){return Y(e)}},scroll:{x:"max-content"}}))),3===m&&em&&r().createElement("div",null,r().createElement(n.Result,{status:"success",title:u("Sync Complete"),subTitle:"".concat(em.filter(function(e){return"created"===e.status}).length," ").concat(u("created"),", ").concat(em.filter(function(e){return"updated"===e.status}).length," ").concat(u("updated"),", ").concat(em.filter(function(e){return"skipped"===e.status}).length," ").concat(u("skipped"))}),r().createElement(n.Table,{dataSource:em,columns:ew,rowKey:"folder",size:"small",pagination:!1,scroll:{x:"max-content"}})))};function eP(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 ez(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function eD(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){ez(l,n,a,o,i,"next",e)}function i(e){ez(l,n,a,o,i,"throw",e)}o(void 0)})}}function eF(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eP(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 eP(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 e_(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}n.Input.TextArea;var eB=function(){var l=(0,e.useAPIClient)(),o=ec(),i=eF((0,t.useState)([]),2),u=i[0],c=i[1],s=eF((0,t.useState)(!1),2),d=s[0],m=s[1],p=eF((0,t.useState)(!1),2),f=p[0],y=p[1],h=eF((0,t.useState)(!1),2),g=h[0],b=h[1],v=eF((0,t.useState)(null),2),E=v[0],S=v[1],w=eF((0,t.useState)(null),2),k=w[0],O=w[1],x=eF((0,t.useState)(!1),2),I=x[0],C=x[1],A=(0,t.useCallback)(function(){return eD(function(){var e,t,r,a,i;return e_(this,function(u){switch(u.label){case 0:m(!0),u.label=1;case 1:return u.trys.push([1,3,4,5]),[4,l.request({url:"skillDefinitions:list",params:{pageSize:100}})];case 2:return c(Array.isArray(i=null!=(e=null!=(t=null==(a=u.sent().data)||null==(r=a.data)?void 0:r.data)?t:null==a?void 0:a.data)?e:[])?i:[]),[3,5];case 3:return u.sent(),n.message.error(o("Failed to load skills")),[3,5];case 4:return m(!1),[7];case 5:return[2]}})})()},[l,o]);(0,t.useEffect)(function(){A()},[A]);var T=function(e){S(e),y(!0)},j=function(e){O(e),b(!0)};return r().createElement(n.Card,{title:o("Skill Definitions"),extra:r().createElement(n.Space,null,r().createElement(n.Button,{icon:r().createElement(a.BranchesOutlined,null),onClick:function(){return C(!0)}},o("Import from Git")),r().createElement(n.Button,{type:"primary",icon:r().createElement(a.PlusOutlined,null),onClick:function(){S(null),y(!0)}},o("New Skill")))},r().createElement(n.List,{grid:{gutter:16,xs:1,sm:2,md:3,lg:3,xl:4,xxl:4},dataSource:u,loading:d,renderItem:function(e){return r().createElement(n.List.Item,null,r().createElement(n.Card,{size:"small",title:r().createElement(n.Typography.Text,{ellipsis:!0,title:e.title},e.title),extra:r().createElement(n.Tag,{color:"python"===e.language?"blue":"green"},e.language),actions:[r().createElement(n.Tooltip,{title:o("Test")},r().createElement(a.PlayCircleOutlined,{key:"test",onClick:function(){return j(e)}})),r().createElement(n.Tooltip,{title:o("Edit")},r().createElement(a.EditOutlined,{key:"edit",onClick:function(){return T(e)}})),r().createElement(n.Popconfirm,{title:o("Delete?"),onConfirm:function(){var t;return t=e.id,eD(function(){return e_(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,l.request({url:"skillDefinitions:destroy",method:"POST",params:{filterByTk:t}})];case 1:return e.sent(),n.message.success(o("Deleted")),A(),[3,3];case 2:return e.sent(),n.message.error(o("Failed to delete")),[3,3];case 3:return[2]}})})()}},r().createElement(n.Tooltip,{title:o("Delete")},r().createElement(a.DeleteOutlined,{key:"delete",style:{color:"red"}})))],style:{boxShadow:"0 2px 8px rgba(0,0,0,0.05)",borderRadius:8}},r().createElement(n.Card.Meta,{title:r().createElement(n.Typography.Text,{type:"secondary",style:{fontSize:13}},e.name),description:r().createElement("div",{style:{height:60,overflow:"hidden",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",fontSize:13}},e.description||o("No description"))}),r().createElement("div",{style:{marginTop:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},r().createElement(n.Space,{size:4},r().createElement(n.Switch,{checked:e.enabled,onChange:function(){return eD(function(){return e_(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,l.request({url:"skillDefinitions:update",method:"POST",params:{filterByTk:e.id},data:{enabled:!e.enabled}})];case 1:return t.sent(),A(),[3,3];case 2:return t.sent(),n.message.error(o("Failed to update")),[3,3];case 3:return[2]}})})()},size:"small"}),r().createElement("span",{style:{fontSize:12}},e.enabled?o("Enabled"):o("Disabled"))),r().createElement(n.Tag,{color:"purple",style:{margin:0,fontSize:11}},e.storageType?e.storageType.toUpperCase():"DB"))))}}),f&&r().createElement(eg,{skill:E,onClose:function(e){y(!1),S(null),e&&A()}}),g&&k&&r().createElement(ew,{skill:k,onClose:function(){return b(!1)}}),r().createElement(ej,{open:I,onClose:function(e){C(!1),e&&A()}}))};function eM(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 eR(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function eN(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){eR(l,n,a,o,i,"next",e)}function i(e){eR(l,n,a,o,i,"throw",e)}o(void 0)})}}function eU(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eM(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 eM(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 eL(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var eq={pending:"default",running:"processing",succeeded:"success",failed:"error",canceled:"warning",timeout:"error"},eH=function(){var l=(0,e.useAPIClient)(),o=ec(),i=eU((0,t.useState)([]),2),u=i[0],c=i[1],s=eU((0,t.useState)(!1),2),d=s[0],m=s[1],p=eU((0,t.useState)(1),2),f=p[0],y=p[1],h=eU((0,t.useState)(0),2),g=h[0],b=h[1],v=(0,t.useCallback)(function(){return eN(function(){var e,t,r,n,a,o;return eL(this,function(i){switch(i.label){case 0:m(!0),i.label=1;case 1:return i.trys.push([1,3,4,5]),[4,l.request({url:"skillExecutions:list",params:{page:f,pageSize:20,sort:["-createdAt"],appends:["skill","triggeredBy"]}})];case 2:return c(Array.isArray(o=null!=(e=null!=(t=null==(a=i.sent().data)||null==(r=a.data)?void 0:r.data)?t:null==a?void 0:a.data)?e:[])?o:[]),b((null==a||null==(n=a.meta)?void 0:n.count)||0),[3,5];case 3:return i.sent(),[3,5];case 4:return m(!1),[7];case 5:return[2]}})})()},[l,f]);(0,t.useEffect)(function(){v()},[v]);var E=[{title:"ID",dataIndex:"id",key:"id",width:80},{title:o("Skill"),dataIndex:["skill","title"],key:"skill",width:180},{title:o("Status"),dataIndex:"status",key:"status",width:120,render:function(e){return r().createElement(n.Tag,{color:eq[e]||"default"},e)}},{title:o("Duration"),dataIndex:"durationMs",key:"duration",width:100,render:function(e){return e?"".concat((e/1e3).toFixed(1),"s"):"-"}},{title:o("Files"),dataIndex:"outputFiles",key:"files",width:250,render:function(t,n){if(!Array.isArray(t=N(t,[]))||!t.length)return"-";var a=t.map(function(e,t){return{id:"".concat(n.id,"-").concat(e.name,"-").concat(t),title:e.name,filename:e.name,extname:e.name.includes(".")?".".concat(e.name.split(".").pop()):"",url:"/api/skillHub:download?execId=".concat(n.id,"&filename=").concat(encodeURIComponent(e.name)),status:"done"}});return r().createElement(e.Upload.ReadPretty,{value:a,multiple:!0,showFileName:!0})}},{title:o("Triggered By"),dataIndex:["triggeredBy","nickname"],key:"triggeredBy",width:120,render:function(e){return e||"-"}},{title:o("Created At"),dataIndex:"createdAt",key:"createdAt",width:180,render:function(e){return e?new Date(e).toLocaleString():"-"}},{title:o("Output"),key:"output",width:200,render:function(e,t){return r().createElement(n.Space,{direction:"vertical",size:0},t.stdout&&r().createElement(n.Tooltip,{title:t.stdout},r().createElement(n.Typography.Text,{style:{fontSize:12,maxWidth:200},ellipsis:!0},t.stdout)),t.stderr&&r().createElement(n.Tooltip,{title:t.stderr},r().createElement(n.Typography.Text,{type:"danger",style:{fontSize:12,maxWidth:200},ellipsis:!0},t.stderr)))}},{title:o("Actions"),key:"actions",width:80,fixed:"right",render:function(e,t){return r().createElement(n.Space,{size:"middle"},r().createElement(n.Popconfirm,{title:o("Are you sure to delete this execution history and its files?"),onConfirm:function(){var e;return e=t.id,eN(function(){var t,r,a,i,u;return eL(this,function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),[4,l.request({url:"skillExecutions:destroy",method:"POST",params:{filterByTk:e}})];case 1:return c.sent(),n.message.success(o("Deleted successfully")),v(),[3,3];case 2:return t=c.sent(),n.message.error((null==t||null==(u=t.response)||null==(i=u.data)||null==(a=i.errors)||null==(r=a[0])?void 0:r.message)||o("Delete failed")),[3,3];case 3:return[2]}})})()},okText:o("Yes"),cancelText:o("No")},r().createElement(n.Button,{type:"text",danger:!0,icon:r().createElement(a.DeleteOutlined,null),size:"small"})))}}];return r().createElement(n.Card,{title:o("Execution History"),extra:r().createElement(n.Space,null,r().createElement(n.Button,{icon:r().createElement(a.ReloadOutlined,null),onClick:v,loading:d},o("Refresh")))},r().createElement(n.Table,{dataSource:u,columns:E,rowKey:"id",loading:d,size:"middle",pagination:{current:f,pageSize:20,total:g,onChange:y,showTotal:function(e){return"Total: ".concat(e)}},scroll:{x:1200}}))};function eJ(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 eW(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function e$(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eJ(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 eJ(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.")}()}n.Typography.Title,n.Typography.Text;var eG=function(){var l=(0,e.useAPIClient)(),o=ec(),i=e$((0,t.useState)([]),2),u=i[0],c=i[1],s=e$((0,t.useState)(!1),2),d=s[0],m=s[1],p=(0,t.useCallback)(function(){var e;return(e=function(){var e,t,r,n,a;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(o){switch(o.label){case 0:m(!0),o.label=1;case 1:return o.trys.push([1,3,4,5]),[4,l.request({url:"skillExecutions:list",params:{pageSize:1e3,sort:["-createdAt"],appends:["skill"]}})];case 2:return c(Array.isArray(a=null!=(e=null!=(t=null==(n=o.sent().data)||null==(r=n.data)?void 0:r.data)?t:null==n?void 0:n.data)?e:[])?a:[]),[3,5];case 3:return o.sent(),[3,5];case 4:return m(!1),[7];case 5:return[2]}})},function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){eW(l,n,a,o,i,"next",e)}function i(e){eW(l,n,a,o,i,"throw",e)}o(void 0)})})()},[l]);(0,t.useEffect)(function(){p()},[p]);var f=(0,t.useMemo)(function(){var e=u.length,t=u.filter(function(e){return"succeeded"===e.status}).length,r=u.filter(function(e){return"failed"===e.status}).length,n=u.filter(function(e){return"timeout"===e.status}).length,a=u.filter(function(e){return"canceled"===e.status}).length,l={};return u.forEach(function(e){var t,r,n=(null==(t=e.skill)?void 0:t.title)||(null==(r=e.skill)?void 0:r.name)||"Unknown";l[n]||(l[n]={name:n,total:0,succeeded:0,failed:0,timeout:0,canceled:0,totalDuration:0,durationCount:0}),l[n].total+=1,l[n][e.status]=(l[n][e.status]||0)+1,e.durationMs&&(l[n].totalDuration+=e.durationMs,l[n].durationCount+=1)}),{total:e,succeeded:t,failed:r,timeout:n,canceled:a,skillData:Object.values(l).map(function(e){var t,r;return 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}({},e),r=r={successRate:e.total>0?e.succeeded/e.total*100:0,avgDuration:e.durationCount>0?(e.totalDuration/e.durationCount/1e3).toFixed(2):0},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}).sort(function(e,t){return t.total-e.total})}},[u]),y=[{title:o("Skill"),dataIndex:"name",key:"name",width:200},{title:o("Total Runs"),dataIndex:"total",key:"total",width:100},{title:o("Success Rate"),dataIndex:"successRate",key:"successRate",width:150,render:function(e){return r().createElement(n.Progress,{percent:Math.round(e),size:"small",status:100===e?"success":e>50?"active":"exception"})}},{title:o("Success"),dataIndex:"succeeded",key:"succeeded",width:100},{title:o("Failed"),dataIndex:"failed",key:"failed",width:100},{title:o("Timeout"),dataIndex:"timeout",key:"timeout",width:100},{title:o("Avg Duration (s)"),dataIndex:"avgDuration",key:"avgDuration",width:120}];return r().createElement(n.Space,{direction:"vertical",size:"large",style:{width:"100%",padding:"0 16px"}},r().createElement(n.Row,{gutter:16},r().createElement(n.Col,{span:6},r().createElement(n.Card,{size:"small"},r().createElement(n.Statistic,{title:"Total Executions (Recent)",value:f.total,prefix:r().createElement(a.SyncOutlined,null)}))),r().createElement(n.Col,{span:6},r().createElement(n.Card,{size:"small"},r().createElement(n.Statistic,{title:"Succeeded",value:f.succeeded,valueStyle:{color:"#3f8600"},prefix:r().createElement(a.CheckCircleOutlined,null)}))),r().createElement(n.Col,{span:6},r().createElement(n.Card,{size:"small"},r().createElement(n.Statistic,{title:"Failed",value:f.failed,valueStyle:{color:"#cf1322"},prefix:r().createElement(a.CloseCircleOutlined,null)}))),r().createElement(n.Col,{span:6},r().createElement(n.Card,{size:"small"},r().createElement(n.Statistic,{title:"Timeout/Canceled",value:f.timeout+f.canceled,valueStyle:{color:"#faad14"},prefix:r().createElement(a.ClockCircleOutlined,null)})))),r().createElement(n.Card,{title:o("Metrics by Skill (Recent)")},r().createElement(n.Table,{dataSource:f.skillData,columns:y,rowKey:"name",loading:d,pagination:!1,size:"middle",scroll:{x:"max-content"}})))},eK=[{key:"confirm",title:"Confirm before run",description:"Ask the user to approve or cancel the skill call.",schema:{type:"confirm",prompt:"Review this skill call before execution."}},{key:"review-input",title:"Review editable input",description:"Show selected input fields so the user can edit them before running.",schema:{type:"form",prompt:"Review and edit the skill input before execution.",fields:{}}},{key:"choose-option",title:"Choose one option",description:"Ask the user to choose one option before running.",schema:{type:"select",prompt:"Choose how to run this skill.",options:[{label:"Default",value:"default"},{label:"Careful",value:"careful"}]}}];function eV(e){return eK.find(function(t){return t.key===e})||eK[0]}function eZ(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 eY(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eZ(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 eZ(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 eQ=(0,t.createContext)(new Map),eX=function(e){return e.toLowerCase().replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"")},e0=function(n){var a,l,o,i=n.children,u=(0,e.useAPIClient)(),c=(null==(l=u.auth)||null==(a=l.getToken)?void 0:a.call(l))||(null==(o=u.auth)?void 0:o.token)||"",s=eY((0,t.useState)(new Map),2),d=s[0],m=s[1],p=eY((0,t.useState)(0),2),f=p[0],y=p[1];return(0,t.useEffect)(function(){var e,t,r,n=function(){return y(function(e){return e+1})},a=function(e){var t;(null==(t=e.detail)?void 0:t.token)&&n()};return window.addEventListener("skill-hub-loop-settings-changed",n),null==(r=u.app)||null==(t=r.eventBus)||null==(e=t.addEventListener)||e.call(t,"auth:tokenChanged",a),function(){var e,t,r;window.removeEventListener("skill-hub-loop-settings-changed",n),null==(r=u.app)||null==(t=r.eventBus)||null==(e=t.removeEventListener)||e.call(t,"auth:tokenChanged",a)}},[u]),(0,t.useEffect)(function(){var e=!1;if(!c)return function(){e=!0};var t=function(e){var t,r,n,a,l=null!=(t=null!=(r=null!=(n=null==e||null==(a=e.data)?void 0:a.data)?n:null==e?void 0:e.data)?r:e)?t:[];return Array.isArray(l)?l:[]},r=function(e){var t,r,n=N(e.schema,null);return n?e.prompt&&!n.prompt?(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}({},n),r=r={prompt:e.prompt},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:e.prompt?{type:"confirm",prompt:e.prompt}:null};return Promise.all([u.request({url:"skillDefinitions:list",skipNotify:!0,params:{filter:{enabled:!0},fields:["id","name","autoCall","interactionSchema"],pageSize:500}}),u.request({url:"skillLoopConfigs:list",skipNotify:!0,params:{filter:{enabled:!0},fields:["skillId","enabled","schema","prompt","templateKey"],pageSize:500}}).catch(function(){return{data:[]}})]).then(function(n){var a=eY(n,2),l=a[0],o=a[1];if(!e){var i=new Map,u=t(l.data),c=t(o.data),s=new Map(u.map(function(e){return[String(e.id),e]})),d=!0,p=!1,f=void 0;try{for(var y,h=u[Symbol.iterator]();!(d=(y=h.next()).done);d=!0){var g=y.value;if(!g.autoCall){var b=N(g.interactionSchema,null);b&&i.set(eX(g.name),b)}}}catch(e){p=!0,f=e}finally{try{d||null==h.return||h.return()}finally{if(p)throw f}}var v=!0,E=!1,S=void 0;try{for(var w,k=c[Symbol.iterator]();!(v=(w=k.next()).done);v=!0){var O=w.value,x=s.get(String(O.skillId));if(null==x?void 0:x.name){var I=r(O);I&&i.set(eX(x.name),I)}}}catch(e){E=!0,S=e}finally{try{v||null==k.return||k.return()}finally{if(E)throw S}}m(i)}}).catch(function(){}),function(){e=!0}},[u,c,f]),r().createElement(eQ.Provider,{value:d},i)};function e1(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 e2(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function e3(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 e6(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return e1(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 e1(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 e4=function(e){var a,l,o=e.toolCall,i=e.decisions,u=(0,t.useContext)(eQ),c=e6(n.Form.useForm(),1)[0],s="skill_hub_execute"===o.name,d=o.args||{},m=s?(d.skillName||"").toLowerCase().replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,""):o.name.replace(/^skill_hub_/,""),p=u.get(m);return"init"!==o.invokeStatus&&"interrupted"!==o.invokeStatus?null:p?r().createElement(n.Card,{size:"small",style:{marginTop:8}},r().createElement(n.Typography.Paragraph,{style:{marginBottom:12}},p.prompt),"confirm"!==p.type&&r().createElement(n.Form,{form:c,layout:"vertical",initialValues:(s?d.input:d)||{},style:{marginBottom:8}},"select"===p.type&&r().createElement(n.Form.Item,{name:"choice",rules:[{required:!0}]},r().createElement(n.Radio.Group,null,(null!=(a=p.options)?a:[]).map(function(e){return r().createElement(n.Radio,{key:String(e.value),value:e.value},e.label)}))),"form"===p.type&&Object.entries(null!=(l=p.fields)?l:{}).map(function(e){var t=e6(e,2),a=t[0],l=t[1];return r().createElement(n.Form.Item,{key:a,name:a,label:l.title||a,rules:[{required:!!l.required}]},(null==l?void 0:l.enum)?r().createElement(n.Select,{options:l.enum.map(function(e){return{value:e,label:String(e)}})}):(null==l?void 0:l.type)==="number"||(null==l?void 0:l.type)==="integer"?r().createElement(n.InputNumber,{style:{width:"100%"}}):r().createElement(n.Input,null))})),r().createElement(n.Space,null,r().createElement(n.Button,{type:"primary",onClick:"confirm"===p.type?function(){return i.approve()}:function(){var e;return(e=function(){var e,t;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:return[4,c.validateFields()];case 1:var n,a;return e=r.sent(),t=s?(n=e3({},d),a=a={input:"select"===p.type?e:e3({},d.input||{},e)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(a)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(a)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(a,e))}),n):"select"===p.type?e:e3({},d,e),[4,i.edit(t)];case 2:return r.sent(),[2]}})},function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){e2(l,n,a,o,i,"next",e)}function i(e){e2(l,n,a,o,i,"throw",e)}o(void 0)})})()}},"Run"),r().createElement(n.Button,{onClick:function(){return i.reject("user_cancel")}},"Cancel"))):r().createElement(n.Card,{size:"small",style:{marginTop:8}},r().createElement(n.Typography.Paragraph,{style:{marginBottom:12}},"Review this Skill Hub tool call before execution."),r().createElement(n.Space,null,r().createElement(n.Button,{type:"primary",onClick:function(){return i.approve()}},"Run"),r().createElement(n.Button,{onClick:function(){return i.reject("user_cancel")}},"Cancel")))};function e5(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}var e8=function(e){var t,r,n,a,l=null!=(t=null!=(r=null!=(n=null==e||null==(a=e.data)?void 0:a.data)?n:null==e?void 0:e.data)?r:e)?t:[];return Array.isArray(l)?l:[]},e7=function(e){var t,r,n,a,l;return(null==e||null==(n=e.apiClient)||null==(r=n.auth)||null==(t=r.getToken)?void 0:t.call(r))||(null==e||null==(l=e.apiClient)||null==(a=l.auth)?void 0:a.token)||""},e9=function(e,t){try{e.registerTools(t,{ui:{card:e4}})}catch(e){var r;if((null!=(r=Error)&&"u">typeof Symbol&&r[Symbol.hasInstance]?!r[Symbol.hasInstance](e):!(e instanceof r))||!e.message.includes("override existing keys"))throw e}};function te(e){var t;return(t=function(){var t,r,n,a,l,o,i,u,c,s,d,m,p;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(f){switch(f.label){case 0:if(!(r=null==(t=e.aiManager)?void 0:t.toolsManager)||(e9(r,"skill_hub_execute"),!e7(e)))return[2];f.label=1;case 1:return f.trys.push([1,7,,8]),[4,e.apiClient.request({url:"skillDefinitions:list",skipNotify:!0,params:{filter:{enabled:!0},fields:["id","name","autoCall","interactionSchema"],pageSize:500}})];case 2:n=f.sent(),a=new Set,f.label=3;case 3:return f.trys.push([3,5,,6]),[4,e.apiClient.request({url:"skillLoopConfigs:list",skipNotify:!0,params:{filter:{enabled:!0},fields:["skillId"],pageSize:500}})];case 4:return a=new Set(e8(f.sent().data).map(function(e){return String(e.skillId)})),[3,6];case 5:return f.sent(),[3,6];case 6:l=e8(n.data),o=!0,i=!1,u=void 0;try{for(c=l[Symbol.iterator]();!(o=(s=c.next()).done);o=!0)d=s.value,m=a.has(String(d.id)),p=!d.autoCall&&!!N(d.interactionSchema,null),(m||p)&&e9(r,"skill_hub_".concat(d.name.toLowerCase().replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"")))}catch(e){i=!0,u=e}finally{try{o||null==c.return||c.return()}finally{if(i)throw u}}return[3,8];case 7:return f.sent(),[3,8];case 8:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var l=t.apply(e,r);function o(e){e5(l,n,a,o,i,"next",e)}function i(e){e5(l,n,a,o,i,"throw",e)}o(void 0)})})()}function tt(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 tr(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function tn(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){tr(l,n,a,o,i,"next",e)}function i(e){tr(l,n,a,o,i,"throw",e)}o(void 0)})}}function ta(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 tl(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 to(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return tt(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 tt(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 ti(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var tu=n.Input.TextArea,tc=function(e){var t,r,n,a,l=null!=(t=null!=(r=null!=(n=null==e||null==(a=e.data)?void 0:a.data)?n:null==e?void 0:e.data)?r:e)?t:[];return Array.isArray(l)?l:[]},ts=function(){var l=(0,e.useAPIClient)(),o=(0,e.useApp)(),i=ec(),u=to(n.Form.useForm(),1)[0],c=to((0,t.useState)([]),2),s=c[0],d=c[1],m=to((0,t.useState)([]),2),p=m[0],f=m[1],y=to((0,t.useState)(!1),2),h=y[0],g=y[1],b=to((0,t.useState)(!1),2),v=b[0],E=b[1],S=to((0,t.useState)(null),2),w=S[0],k=S[1],O=(0,t.useMemo)(function(){return new Map(s.map(function(e){return[String(e.id),e]}))},[s]),x=(0,t.useCallback)(function(){return tn(function(){var e,t,r;return ti(this,function(a){switch(a.label){case 0:g(!0),a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,Promise.all([l.request({url:"skillDefinitions:list",params:{filter:{enabled:!0},fields:["id","name","title","language","autoCall"],pageSize:500}}),l.request({url:"skillLoopConfigs:list",params:{fields:["id","skillId","enabled","title","templateKey","prompt","schema","config","updatedAt"],sort:["-updatedAt"],pageSize:500}})])];case 2:return t=(e=to.apply(void 0,[a.sent(),2]))[0],r=e[1],d(tc(t.data)),f(tc(r.data)),[3,5];case 3:return a.sent(),n.message.error(i("Failed to load skill review settings")),[3,5];case 4:return g(!1),[7];case 5:return[2]}})})()},[l,i]);(0,t.useEffect)(function(){x()},[x]);var I=function(e){var t=eV(e.templateKey);k(e),u.setFieldsValue(tl(ta({},e),{templateKey:e.templateKey||t.key,prompt:e.prompt||t.schema.prompt,schema:U(e.schema||t.schema),config:U(e.config,null)})),E(!0)},C=function(){E(!1),k(null),u.resetFields()},A=(0,t.useCallback)(function(){return tn(function(){return ti(this,function(e){switch(e.label){case 0:return[4,te(o)];case 1:return e.sent(),window.dispatchEvent(new Event("skill-hub-loop-settings-changed")),[2]}})})()},[o]);return r().createElement(n.Card,{title:i("Skill Review Settings"),extra:r().createElement(n.Button,{type:"primary",icon:r().createElement(a.PlusOutlined,null),onClick:function(){var e=eV("confirm");k(null),u.resetFields(),u.setFieldsValue({enabled:!0,templateKey:e.key,prompt:e.schema.prompt,schema:U(e.schema),config:""}),E(!0)}},i("New Review"))},r().createElement(n.List,{loading:h,dataSource:p,grid:{gutter:16,xs:1,sm:2,md:3,lg:3,xl:4,xxl:4},renderItem:function(e){var t=O.get(String(e.skillId)),o=eV(e.templateKey);return r().createElement(n.List.Item,null,r().createElement(n.Card,{size:"small",title:r().createElement(n.Typography.Text,{ellipsis:!0},e.title||(null==t?void 0:t.title)||(null==t?void 0:t.name)||i("Unknown skill")),extra:r().createElement(n.Tag,{color:e.enabled?"green":"default"},e.enabled?i("Enabled"):i("Disabled")),actions:[r().createElement(n.Tooltip,{key:"edit",title:i("Edit")},r().createElement(a.EditOutlined,{onClick:function(){return I(e)}})),r().createElement(n.Popconfirm,{key:"delete",title:i("Delete?"),onConfirm:function(){var t;return t=e.id,tn(function(){return ti(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,l.request({url:"skillLoopConfigs:destroy",method:"POST",params:{filterByTk:t}})];case 1:return e.sent(),n.message.success(i("Deleted")),x(),A(),[3,3];case 2:return e.sent(),n.message.error(i("Failed to delete")),[3,3];case 3:return[2]}})})()}},r().createElement(n.Tooltip,{title:i("Delete")},r().createElement(a.DeleteOutlined,{style:{color:"red"}})))],style:{boxShadow:"0 2px 8px rgba(0,0,0,0.05)",borderRadius:8}},r().createElement(n.Space,{direction:"vertical",size:8,style:{width:"100%"}},r().createElement(n.Typography.Text,{type:"secondary",style:{fontSize:13}},(null==t?void 0:t.name)||"skillId=".concat(e.skillId)),r().createElement(n.Tag,{color:"blue",style:{width:"fit-content"}},o.title),r().createElement(n.Typography.Paragraph,{type:"secondary",ellipsis:{rows:2},style:{minHeight:44,marginBottom:0,fontSize:13}},e.prompt||o.schema.prompt),r().createElement(n.Space,{size:4},r().createElement(n.Switch,{checked:e.enabled,onChange:function(){return tn(function(){return ti(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,l.request({url:"skillLoopConfigs:update",method:"POST",params:{filterByTk:e.id},data:{enabled:!e.enabled}})];case 1:return t.sent(),x(),A(),[3,3];case 2:return t.sent(),n.message.error(i("Failed to update")),[3,3];case 3:return[2]}})})()},size:"small"}),r().createElement("span",{style:{fontSize:12}},e.enabled?i("Enabled"):i("Disabled"))))))}}),r().createElement(n.Modal,{open:v,title:w?i("Edit Skill Review Setting"):i("New Skill Review Setting"),onCancel:C,onOk:function(){return tn(function(){var e,t,r,a,o,c;return ti(this,function(s){switch(s.label){case 0:return s.trys.push([0,6,,7]),[4,u.validateFields()];case 1:if(!(t=N((e=s.sent()).schema,void 0))||(void 0===t?"undefined":t&&"u">typeof Symbol&&t.constructor===Symbol?"symbol":typeof t)!="object")return n.message.error(i("Invalid JSON in Review Schema")),[2];if(r=N(e.config,void 0),e.config&&void 0===r)return n.message.error(i("Invalid JSON in Review Config")),[2];if(a=tl(ta({},t),{prompt:e.prompt||t.prompt}),o=tl(ta({},e),{schema:L(a),config:e.config?L(r):null}),!w)return[3,3];return[4,l.request({url:"skillLoopConfigs:update",method:"POST",params:{filterByTk:w.id},data:o})];case 2:return s.sent(),[3,5];case 3:return[4,l.request({url:"skillLoopConfigs:create",method:"POST",data:o})];case 4:s.sent(),s.label=5;case 5:return n.message.success(i(w?"Skill review setting updated":"Skill review setting created")),C(),x(),A(),[3,7];case 6:if(null==(c=s.sent())?void 0:c.errorFields)return[2];return n.message.error(i("Failed to save skill review setting")),[3,7];case 7:return[2]}})})()},width:760,destroyOnClose:!0},r().createElement(n.Form,{form:u,layout:"vertical"},r().createElement(n.Form.Item,{name:"enabled",valuePropName:"checked",label:i("Enabled")},r().createElement(n.Switch,null)),r().createElement(n.Form.Item,{name:"skillId",label:i("Skill"),rules:[{required:!0}]},r().createElement(n.Select,{showSearch:!0,optionFilterProp:"label",placeholder:i("Select a skill"),options:s.map(function(e){return{value:e.id,label:"".concat(e.title||e.name," (").concat(e.name,")")}})})),r().createElement(n.Form.Item,{name:"title",label:i("Title")},r().createElement(n.Input,{placeholder:i("Optional display title")})),r().createElement(n.Form.Item,{name:"templateKey",label:i("Review Template"),rules:[{required:!0}]},r().createElement(n.Select,{onChange:function(e){var t=eV(e);u.setFieldsValue({prompt:t.schema.prompt,schema:U(t.schema)})}},eK.map(function(e){return r().createElement(n.Select.Option,{key:e.key,value:e.key},e.title," - ",e.description)}))),r().createElement(n.Form.Item,{name:"prompt",label:i("Prompt"),rules:[{required:!0}]},r().createElement(tu,{rows:3})),r().createElement(n.Form.Item,{name:"schema",label:i("Review Schema (JSON)"),rules:[{required:!0}],extra:i("Standard interaction schema. Supported types: confirm, form, select.")},r().createElement(tu,{rows:10,style:{fontFamily:"monospace",fontSize:13}})),r().createElement(n.Form.Item,{name:"config",label:i("Review Config (optional JSON)")},r().createElement(tu,{rows:4,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "maxRetries": 1\n}'})))))};function td(e,t,r){return(td=ty()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var a=new(Function.bind.apply(e,n));return r&&tp(a,r.prototype),a}).apply(null,arguments)}function tm(e){return(tm=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function tp(e,t){return(tp=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function tf(e){var t="function"==typeof Map?new Map:void 0;return(tf=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return td(e,arguments,tm(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),tp(r,e)})(e)}function ty(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(ty=function(){return!!e})()}tf(e.Plugin);var th=function(){return r().createElement(s,null,r().createElement("div",{style:{padding:"0 24px 24px"}},r().createElement(n.Tabs,{defaultActiveKey:"rules",items:[{key:"rules",label:r().createElement("span",null,r().createElement(a.ApartmentOutlined,null)," Orchestration Rules"),children:r().createElement(P,null)},{key:"tracing",label:r().createElement("span",null,r().createElement(a.MonitorOutlined,null)," Execution Tracing"),children:r().createElement(R,null)},{key:"agent-runs",label:r().createElement("span",null,r().createElement(a.ProfileOutlined,null)," Agent Runs"),children:r().createElement(ee,null)},{key:"harness-profiles",label:r().createElement("span",null,r().createElement(a.SettingOutlined,null)," Harness Profiles"),children:r().createElement(eu,null)},{key:"skill-definitions",label:r().createElement("span",null,r().createElement(a.CodeOutlined,null)," Skill Hub Definitions"),children:r().createElement(eB,null)},{key:"skill-executions",label:r().createElement("span",null,r().createElement(a.HistoryOutlined,null)," Execution History"),children:r().createElement(eH,null)},{key:"skill-loop-settings",label:r().createElement("span",null,r().createElement(a.CheckCircleOutlined,null)," Skill Review Settings"),children:r().createElement(ts,null)},{key:"skill-metrics",label:r().createElement("span",null,r().createElement(a.BarChartOutlined,null)," Metrics"),children:r().createElement(eG,null)}]})))};function tg(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 tb(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function tv(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){tb(l,n,a,o,i,"next",e)}function i(e){tb(l,n,a,o,i,"throw",e)}o(void 0)})}}function tE(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return tg(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 tg(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 tS(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var tw=n.Typography.Paragraph,tk=n.Typography.Text,tO=function(e){var t,r,n;return null!=(t=null!=(r=null==e||null==(n=e.data)?void 0:n.data)?r:null==e?void 0:e.data)?t:e},tx=function(t){var a,l,o=t.toolCall,i=t.decisions,u=(0,e.useAPIClient)(),c=o.args||{},s=c.runId,d=tE(r().useState(null),2),m=d[0],p=d[1],f=tE(r().useState(!1),2),y=f[0],h=f[1],g=tE(r().useState(!1),2),b=g[0],v=g[1],E=tE(r().useState(""),2),S=E[0],w=E[1],k="init"===o.invokeStatus||"interrupted"===o.invokeStatus;if(r().useEffect(function(){if(k&&s){var e=!0;return h(!0),u.request({url:"agentLoops:get",params:{filterByTk:s}}).then(function(t){e&&p(tO(t))}).catch(function(){e&&p(null)}).finally(function(){e&&h(!1)}),function(){e=!1}}},[u,k,s]),!k)return null;var O=(null==m?void 0:m.run)||{},x=(Array.isArray(a=(null==m?void 0:m.steps)||c.plan||[])?a:[]).map(function(e,t){return{id:e.id||e.planKey||t,planKey:e.planKey||e.key||e.id||"step_".concat(t+1),title:e.title||"Step ".concat(t+1),description:e.description||"",type:e.type||"tool",target:e.target||"",dependsOn:e.dependsOn||[]}}),I=O.goal||c.goal||"";return r().createElement(n.Card,{size:"small",style:{marginTop:8}},r().createElement(n.Space,{direction:"vertical",size:12,style:{width:"100%"}},r().createElement(n.Alert,{type:"info",showIcon:!0,message:"Review orchestrator plan",description:"Execution starts only after you approve this plan."}),r().createElement(n.Space,{size:8,wrap:!0},s&&r().createElement(n.Tag,{color:"blue"},"Run #",s),r().createElement(n.Tag,{color:"purple"},"Plan v",O.planVersion||c.planVersion||1),r().createElement(n.Tag,{color:"pending"===O.approvalStatus?"gold":"default"},O.approvalStatus||"pending"),(null==(l=O.metadata)?void 0:l.harnessTag)&&r().createElement(n.Tag,null,O.metadata.harnessTag)),I&&r().createElement(tw,{style:{marginBottom:0}},r().createElement(tk,{strong:!0},"Goal: "),I),r().createElement(n.List,{size:"small",loading:y,dataSource:x,locale:{emptyText:"No plan steps found."},renderItem:function(e,t){var a;return r().createElement(n.List.Item,null,r().createElement(n.Space,{direction:"vertical",size:2,style:{width:"100%"}},r().createElement(n.Space,{size:8,wrap:!0},r().createElement(tk,{strong:!0},t+1,". ",e.title),r().createElement(n.Tag,null,e.type),e.target&&r().createElement(n.Tag,{color:"green"},e.target)),e.description&&r().createElement(tk,{type:"secondary"},e.description),(null==(a=e.dependsOn)?void 0:a.length)>0&&r().createElement(tk,{type:"secondary",style:{fontSize:12}},"Depends on: ",e.dependsOn.join(", "))))}}),r().createElement(n.Input.TextArea,{rows:3,value:S,onChange:function(e){return w(e.target.value)},placeholder:"Optional rejection reason or requested changes"}),r().createElement(n.Space,{wrap:!0},r().createElement(n.Button,{type:"primary",loading:b,onClick:function(){return i.approve()}},"Accept & Run"),r().createElement(n.Button,{loading:b,onClick:function(){return tv(function(){var e;return tS(this,function(t){switch(t.label){case 0:if(!S.trim())return n.message.warning("Add feedback before requesting changes."),[2];v(!0),t.label=1;case 1:return t.trys.push([1,4,5,6]),[4,u.request({url:"agentLoops:requestPlanChanges",method:"post",data:{runId:s,feedback:S}})];case 2:return t.sent(),[4,i.reject(JSON.stringify({reason:"changes_requested",runId:s,feedback:S}))];case 3:return t.sent(),[3,6];case 4:return e=t.sent(),n.message.error((null==e?void 0:e.message)||"Failed to request plan changes"),[3,6];case 5:return v(!1),[7];case 6:return[2]}})})()}},"Request changes"),r().createElement(n.Button,{danger:!0,loading:b,onClick:function(){return tv(function(){var e;return tS(this,function(t){switch(t.label){case 0:if(s)return[3,2];return[4,i.reject("missing_run_id")];case 1:return t.sent(),[2];case 2:v(!0),t.label=3;case 3:return t.trys.push([3,6,7,8]),[4,u.request({url:"agentLoops:rejectPlan",method:"post",data:{runId:s,reason:S||"Plan rejected by user."}})];case 4:return t.sent(),[4,i.reject(JSON.stringify({reason:"plan_rejected",runId:s,feedback:S}))];case 5:return t.sent(),[3,8];case 6:return e=t.sent(),n.message.error((null==e?void 0:e.message)||"Failed to reject plan"),[3,8];case 7:return v(!1),[7];case 8:return[2]}})})()}},"Reject"))))};function tI(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}var tC=function(e,t){try{e.registerTools(t,{ui:{card:tx}})}catch(e){var r;if((null!=(r=Error)&&"u">typeof Symbol&&r[Symbol.hasInstance]?!r[Symbol.hasInstance](e):!(e instanceof r))||!e.message.includes("override existing keys"))throw e}};function tA(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function tT(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){tA(l,n,a,o,i,"next",e)}function i(e){tA(l,n,a,o,i,"throw",e)}o(void 0)})}}function tj(e,t,r){return(tj=tF()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var a=new(Function.bind.apply(e,n));return r&&tz(a,r.prototype),a}).apply(null,arguments)}function tP(e){return(tP=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function tz(e,t){return(tz=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function tD(e){var t="function"==typeof Map?new Map:void 0;return(tD=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return tj(e,arguments,tP(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),tz(r,e)})(e)}function tF(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(tF=function(){return!!e})()}function t_(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var tB=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=tP(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,tF()?Reflect.construct(e,t||[],tP(this).constructor):e.apply(this,t))}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&tz(r,e),t=[{key:"load",value:function(){return tT(function(){var e,t,r;return t_(this,function(n){switch(n.label){case 0:return e=this,this.app.use(e0),this.app.pluginSettingsManager.add("ai.orchestrator",{title:"Agent Orchestrator",icon:"ApartmentOutlined",Component:th}),null==(r=this.app.eventBus)||null==(t=r.addEventListener)||t.call(r,"auth:tokenChanged",function(t){var r;(null==(r=t.detail)?void 0:r.token)&&te(e.app)}),[4,this.registerSkillUiCards()];case 1:return n.sent(),[2]}})}).call(this)}},{key:"registerSkillUiCards",value:function(){return tT(function(){return t_(this,function(e){switch(e.label){case 0:var t,r;return[4,(t=this.app,(r=function(){var e,r;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(n){return(r=null==(e=t.aiManager)?void 0:e.toolsManager)&&tC(r,"orchestrator_execute_plan"),[2]})},function(){var e=this,t=arguments;return new Promise(function(n,a){var l=r.apply(e,t);function o(e){tI(l,n,a,o,i,"next",e)}function i(e){tI(l,n,a,o,i,"throw",e)}o(void 0)})})())];case 1:return e.sent(),[4,te(this.app)];case 2:return e.sent(),[2]}})}).call(this)}}],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}(tD(e.Plugin));function tM(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 tR(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||tN(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 tN(e,t){if(e){if("string"==typeof e)return tM(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 tM(e,t)}}function tU(e){var r=tR((0,t.useState)([]),2),n=r[0],a=r[1],l=tR((0,t.useState)(!1),2),o=l[0],i=l[1],u=tR((0,t.useState)(null),2),c=u[0],s=u[1],d=(0,t.useRef)(null),m=(0,t.useCallback)(function(){d.current&&(d.current.close(),d.current=null),i(!1)},[]);return(0,t.useEffect)(function(){if(e){m(),a([]),s(null);var t=window.__nocobase_api_base_url__||"",r=new EventSource("".concat(t,"/api/agentLoopEventsStream:stream?runId=").concat(encodeURIComponent(String(e))));return d.current=r,r.onopen=function(){i(!0),s(null)},r.onmessage=function(e){try{var t=JSON.parse(e.data);a(function(e){return[t].concat(function(e){if(Array.isArray(e))return tM(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||tN(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())})}catch(e){}},r.onerror=function(){i(!1),s("SSE connection lost. Reconnecting...")},m}},[e,m]),{events:n,isConnected:o,error:c}}}(),d}()});
10
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@ant-design/icons"),require("ahooks"),require("@nocobase/client-v2"),require("react"),require("antd"),require("@nocobase/client")):"function"==typeof define&&define.amd?define("plugin-agent-orchestrator",["@ant-design/icons","ahooks","@nocobase/client-v2","react","antd","@nocobase/client"],t):"object"==typeof exports?exports["plugin-agent-orchestrator"]=t(require("@ant-design/icons"),require("ahooks"),require("@nocobase/client-v2"),require("react"),require("antd"),require("@nocobase/client")):e["plugin-agent-orchestrator"]=t(e["@ant-design/icons"],e.ahooks,e["@nocobase/client-v2"],e.react,e.antd,e["@nocobase/client"])}(self,function(e,t,r,n,a,l){return function(){"use strict";var o={375:function(t){t.exports=e},342:function(e){e.exports=l},485:function(e){e.exports=r},625:function(e){e.exports=t},59:function(e){e.exports=a},155:function(e){e.exports=n}},i={};function u(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return o[e](r,r.exports,u),r.exports}u.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(t,{a:t}),t},u.d=function(e,t){for(var r in t)u.o(t,r)&&!u.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},u.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),u.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},u.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.g.importScripts&&(c=u.g.location+"");var c,s=u.g.document;if(!c&&s&&(s.currentScript&&"SCRIPT"===s.currentScript.tagName.toUpperCase()&&(c=s.currentScript.src),!c)){var d=s.getElementsByTagName("script");if(d.length)for(var p=d.length-1;p>-1&&(!c||!/^http(s?):/.test(c));)c=d[p--].src}if(!c)throw Error("Automatic publicPath is not supported in this browser");u.p=c.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var m={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var r=window.__webpack_public_path__||"";r&&("/"!==r.charAt(r.length-1)&&(r+="/"),e=r+"static/plugins/plugin-agent-orchestrator/dist/client/")}if(!e){var n=window.__nocobase_modern_client_prefix__||"v",a="/"+(n=String(n).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var l=window.location.pathname||"/",o=l.indexOf(a);e=o>=0?l.slice(0,o+1):"/"}e&&(e=e.replace(RegExp("/"+n+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/plugin-agent-orchestrator/dist/client/"}u.p=e}(),!function(){u.r(m),u.d(m,{useRunEventStream:function(){return tL},default:function(){return tR}});var e=u(342),t=u(155),r=u.n(t),n=u(59),a=u(375),l=u(625),o=u(485);function i(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 c(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e){if(e){if("string"==typeof e)return i(e,void 0);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 i(e,void 0)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var s=(0,t.createContext)({employees:[],employeeMap:new Map,toolNamesMap:new Map,loading:!1,refresh:function(){}}),d=new Set(["orchestrator_plan_goal","orchestrator_execute_plan","orchestrator_status","orchestrator_cancel","external_rag_search","skill_hub_execute"]),p=function(e){var t=e.children,n=(0,o.useApp)().apiClient,a=(0,l.useRequest)(function(){return n.request({url:"aiEmployees:list",params:{pageSize:200}})}),i=a.data,u=a.loading,p=a.refresh,m=r().useMemo(function(){var e=((null==i?void 0:i.data)||[]).map(function(e){var t,r,n,a,l=(r=Array.isArray(null==(t=e.skillSettings)?void 0:t.tools)?t.tools.map(function(e){return"string"==typeof e?e:null==e?void 0:e.name}).filter(function(e){return"string"==typeof e&&e.length>0}):[],n=Array.isArray(null==t?void 0:t.skills)?t.skills.map(function(e){if("string"==typeof e)return d.has(e)||e.startsWith("delegate_")||e.startsWith("dispatch_subagents_")||e.startsWith("skill_hub_")||e.startsWith("browser_")||e.startsWith("drawio-")?e:null;return null==e?void 0:e.name}).filter(function(e){return"string"==typeof e&&e.length>0}):[],Array.from(new Set(c(r).concat(c(n)))));return{username:e.username,nickname:e.nickname||e.username,about:null==(a=e.about)?void 0:a.substring(0,80),tools:l}}),t=new Map,r=new Map,n=!0,a=!1,l=void 0;try{for(var o,s=e[Symbol.iterator]();!(n=(o=s.next()).done);n=!0){var m=o.value;t.set(m.username,m.nickname),r.set(m.username,new Set(m.tools))}}catch(e){a=!0,l=e}finally{try{n||null==s.return||s.return()}finally{if(a)throw l}}return{employees:e,employeeMap:t,toolNamesMap:r,loading:u,refresh:p}},[i,u,p]);return r().createElement(s.Provider,{value:m},t)},f=function(){return(0,t.useContext)(s)},y=function(e){var t=e.value,a=e.onChange,l=e.exclude,o=e.placeholder,i=f(),u=i.employees,c=i.loading,s=r().useMemo(function(){return u.filter(function(e){return!l||e.username!==l}).map(function(e){return{label:e.nickname,value:e.username,description:e.about}})},[u,l]);return r().createElement(n.Select,{loading:c,options:s,value:t,onChange:a,placeholder:void 0===o?"Select AI Employee...":o,showSearch:!0,filterOption:function(e,t){var r,n;return(null!=(r=null==t?void 0:t.label)?r:"").toString().toLowerCase().includes(e.toLowerCase())||(null!=(n=null==t?void 0:t.value)?n:"").toString().toLowerCase().includes(e.toLowerCase())},optionRender:function(e){return r().createElement("div",null,r().createElement("div",{style:{fontWeight:500}},e.label),e.data.description&&r().createElement("div",{style:{fontSize:12,color:"#888"}},e.data.description))}})};function h(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 g(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function b(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){g(l,n,a,o,i,"next",e)}function i(e){g(l,n,a,o,i,"throw",e)}o(void 0)})}}function v(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 S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||k(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 w(e){return function(e){if(Array.isArray(e))return h(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||k(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,t){if(e){if("string"==typeof e)return h(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 h(e,t)}}function O(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var x=n.Typography.Text,I=function(e){return(e||"").replace(/[^a-zA-Z0-9_-]/g,"_")},C=function(e,t){return"delegate_".concat(I(e),"_to_").concat(I(t))},A=function(e){return"dispatch_subagents_".concat(I(e))},T=["orchestrator_plan_goal","orchestrator_execute_plan","orchestrator_status","orchestrator_cancel"],j=new Set(w(T).concat(["external_rag_search","skill_hub_execute"])),P=function(e){var t="string"==typeof e?e:null==e?void 0:e.name;return"string"==typeof t&&t.trim()?{name:t.trim(),autoCall:(null==e?void 0:e.autoCall)===!0}:null},z=function(e){var t=e&&(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"?e:{},r=new Map,n=function(e){!e||r.has(e.name)||r.set(e.name,e)};if(Array.isArray(t.tools)){var a=!0,l=!1,o=void 0;try{for(var i,u=t.tools[Symbol.iterator]();!(a=(i=u.next()).done);a=!0){var c=i.value;n(P(c))}}catch(e){l=!0,o=e}finally{try{a||null==u.return||u.return()}finally{if(l)throw o}}}var s=[];if(Array.isArray(t.skills)){var d=!0,p=!1,m=void 0;try{for(var f,y=t.skills[Symbol.iterator]();!(d=(f=y.next()).done);d=!0){var h=f.value;if("string"==typeof h){var g=h.trim();if(!g)continue;j.has(g)||g.startsWith("delegate_")||g.startsWith("dispatch_subagents_")||g.startsWith("skill_hub_")||g.startsWith("browser_")||g.startsWith("drawio-")?n({name:g,autoCall:!1}):s.push(g);continue}n(P(h))}}catch(e){p=!0,m=e}finally{try{d||null==y.return||y.return()}finally{if(p)throw m}}}return E(v({},t),{skills:s,tools:Array.from(r.values())})},D=function(){var e=(0,o.useApp)().apiClient,i=S((0,t.useState)(!1),2),u=i[0],c=i[1],s=S((0,t.useState)(null),2),d=s[0],p=s[1],m=S(n.Form.useForm(),1)[0],h=(0,l.useRequest)(function(){return e.request({url:"orchestratorConfig:list",params:{sort:["-createdAt"]}})}),g=h.data,k=h.loading,I=h.refresh,j=(0,l.useRequest)(function(){return e.request({url:"ai:listAllEnabledModels"})}),P=j.data,D=j.loading,F=(0,l.useRequest)(function(){return e.request({url:"agentHarnessProfiles:list",params:{filter:{enabled:!0},sort:["tag"],pageSize:100}})}),_=F.data,B=F.loading,M=r().useMemo(function(){var e,t=null!=(e=null==P?void 0:P.data)?e:P;return Array.isArray(t)?t:Array.isArray(null==t?void 0:t.data)?t.data:[]},[P]),R=r().useMemo(function(){var e,t=null!=(e=null==_?void 0:_.data)?e:_;return Array.isArray(t)?t:Array.isArray(null==t?void 0:t.data)?t.data:[]},[_]),N=f(),U=N.employeeMap,q=N.toolNamesMap,L=N.refresh,H=r().useMemo(function(){var e=null==g?void 0:g.data;return Array.isArray(e)?e:[]},[g]),J=function(t,r){return b(function(){var a,l,o,i,u,c,s,d,p;return O(this,function(m){switch(m.label){case 0:return m.trys.push([0,6,,7]),[4,e.request({url:"aiEmployees:get",params:{filterByTk:t}})];case 1:if(!(o=null==(l=m.sent())||null==(a=l.data)?void 0:a.data))return n.message.error("Could not load AI employee."),[2];if(u=new Set((i=z(o.skillSettings)).tools.map(function(e){return e.name})),c=r.filter(function(e){return!u.has(e)}),s=JSON.stringify(i)!==JSON.stringify(o.skillSettings||{}),!(!c.length&&!s))return[3,3];return n.message.info("Tools already present."),[4,L()];case 2:return m.sent(),[2];case 3:return d=w(i.tools).concat(w(c.map(function(e){return{name:e,autoCall:!1}}))),[4,e.request({url:"aiEmployees:update",method:"put",params:{filterByTk:t},data:{skillSettings:E(v({},i),{tools:d})}})];case 4:return m.sent(),n.message.success(c.length?"Added ".concat(c.length," tool").concat(c.length>1?"s":""," to ").concat(t,"."):"Normalized tool bindings for ".concat(t,".")),[4,L()];case 5:return m.sent(),[3,7];case 6:return p=m.sent(),n.message.error("Auto-assign failed: ".concat((null==p?void 0:p.message)||"unknown error")),[3,7];case 7:return[2]}})})()},W=function(e,t){return b(function(){return O(this,function(r){switch(r.label){case 0:return[4,J(e,[t])];case 1:return r.sent(),[2]}})})()},$=r().useMemo(function(){var e=new Map,t=!0,r=!1,n=void 0;try{for(var a,l=H[Symbol.iterator]();!(t=(a=l.next()).done);t=!0){var o=a.value,i=e.get(o.subAgentUsername)||new Set;i.add(o.leaderUsername),e.set(o.subAgentUsername,i)}}catch(e){r=!0,n=e}finally{try{t||null==l.return||l.return()}finally{if(r)throw n}}return e},[H]),G=r().useMemo(function(){return Array.from($.entries()).filter(function(e){return S(e,2)[1].size>1}).map(function(e){var t=S(e,2);return{sub:t[0],leaders:Array.from(t[1])}})},[$]),K=r().useMemo(function(){var e=new Map,t=!0,r=!1,n=void 0;try{for(var a,l=H[Symbol.iterator]();!(t=(a=l.next()).done);t=!0){var o=a.value,i=o.leaderUsername||"unknown",u=e.get(i);u||(u=[],e.set(i,u)),u.push(o)}}catch(e){r=!0,n=e}finally{try{t||null==l.return||l.return()}finally{if(r)throw n}}return Array.from(e.entries()).map(function(e){var t=S(e,2);return{leaderUsername:t[0],items:t[1]}})},[H]),V=function(e){p(e),e?m.setFieldsValue(e):(m.resetFields(),m.setFieldsValue({enabled:!0,maxDepth:1,timeout:12e4,recursionLimit:50,harnessTag:"default"})),c(!0)},Z=function(){c(!1),p(null)},Y=[{title:"Leader (Orchestrator)",dataIndex:"leaderUsername",key:"leaderUsername",render:function(e){return r().createElement(n.Tag,{color:"blue"},U.get(e)||e)}},{title:"",key:"arrow",width:50,render:function(){return r().createElement(a.SwapRightOutlined,{style:{color:"#999",fontSize:18}})}},{title:"Sub-Agent",dataIndex:"subAgentUsername",key:"subAgentUsername",render:function(e){return r().createElement(n.Tag,{color:"green"},U.get(e)||e)}},{title:"Harness",dataIndex:"harnessTag",key:"harnessTag",width:120,render:function(e){return r().createElement(n.Tag,{color:"purple"},e||"default")}},{title:"Max Depth",dataIndex:"maxDepth",key:"maxDepth",width:100,render:function(e){return null!=e?e:1}},{title:"Timeout",dataIndex:"timeout",key:"timeout",width:100,render:function(e){return"".concat(((null!=e?e:12e4)/1e3).toFixed(0),"s")}},{title:"LLM Override",key:"llmOverride",width:140,render:function(e,t){if(t.llmService&&t.model){var a=M.find(function(e){return e.llmService===t.llmService}),l=a?a.llmServiceTitle:t.llmService;return r().createElement(n.Space,{direction:"vertical",size:0},r().createElement(x,{style:{fontSize:12}},l),r().createElement(x,{type:"secondary",style:{fontSize:12}},t.model))}return r().createElement(x,{type:"secondary",style:{fontSize:12}},"Inherited")}},{title:"Enabled",dataIndex:"enabled",key:"enabled",width:80,render:function(t,a){return r().createElement(n.Switch,{checked:t,size:"small",onChange:function(t){return b(function(){return O(this,function(r){switch(r.label){case 0:return[4,e.request({url:"orchestratorConfig:update",method:"put",params:{filterByTk:a.id},data:{enabled:t}})];case 1:return r.sent(),I(),[2]}})})()}})}},{title:"Tool",key:"tool",width:150,render:function(e,t){var l=C(t.leaderUsername,t.subAgentUsername),o=q.get(t.leaderUsername);return o?o.has(l)?r().createElement(n.Tag,{color:"success"},"Assigned"):r().createElement(n.Space,{size:4},r().createElement(n.Tag,{icon:r().createElement(a.WarningOutlined,null),color:"warning"},"Missing"),r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.ThunderboltOutlined,null),onClick:function(){return b(function(){return O(this,function(e){switch(e.label){case 0:return[4,W(t.leaderUsername,C(t.leaderUsername,t.subAgentUsername))];case 1:return e.sent(),[2]}})})()}},"Auto-add")):r().createElement(x,{type:"secondary",style:{fontSize:12}},"—")}},{title:"Actions",key:"actions",width:160,render:function(t,l){return r().createElement(n.Space,null,r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.EditOutlined,null),onClick:function(){return V(l)}},"Edit"),r().createElement(n.Popconfirm,{title:"Delete this rule?",onConfirm:function(){var t;return t=l.id,b(function(){var r;return O(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),[4,e.request({url:"orchestratorConfig:destroy",method:"delete",params:{filterByTk:t}})];case 1:return a.sent(),n.message.success("Rule deleted"),I(),[3,3];case 2:return r=a.sent(),n.message.error("Delete failed: ".concat(r.message)),[3,3];case 3:return[2]}})})()}},r().createElement(n.Button,{type:"link",size:"small",danger:!0,icon:r().createElement(a.DeleteOutlined,null)},"Delete")))}}],Q=n.Form.useWatch("leaderUsername",m),X=r().useMemo(function(){return H.reduce(function(e,t){var r=q.get(t.leaderUsername);if(!r)return e;var n=C(t.leaderUsername,t.subAgentUsername);return r.has(n)?e:e+1},0)},[H,q]),ee=r().useMemo(function(){return K.map(function(e){var t=q.get(e.leaderUsername);if(!t)return null;var r=A(e.leaderUsername);return t.has(r)?null:{leaderUsername:e.leaderUsername,toolName:r,count:e.items.length}}).filter(Boolean)},[K,q]),et=r().useMemo(function(){return K.map(function(e){var t=q.get(e.leaderUsername);if(!t)return null;var r=T.filter(function(e){return!t.has(e)});return r.length?{leaderUsername:e.leaderUsername,missing:r}:null}).filter(Boolean)},[K,q]);return r().createElement("div",null,r().createElement(n.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Orchestration Rules",description:r().createElement(x,{type:"secondary"},"Configure which AI Employees can act as Leaders (Orchestrators) and which ones they can delegate tasks to. Each rule creates a callable tool for the Leader to invoke the Sub-Agent.")}),X>0&&r().createElement(n.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(X," rule").concat(X>1?"s":""," missing required tool assignment"),description:r().createElement(x,{type:"secondary"},"The Leader employee hasn't added the corresponding"," ",r().createElement(x,{code:!0},"delegate_<leader>_to_<sub>")," tool to its skillSettings.tools, so the LLM cannot actually call these sub-agents. Use the ",r().createElement("b",null,"Auto-add")," button in the Tool column to fix.")}),et.length>0&&r().createElement(n.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(et.length," leader").concat(et.length>1?"s":""," missing orchestrator controller tools"),description:r().createElement(n.Space,{direction:"vertical",size:6},r().createElement(x,{type:"secondary"},"Leaders need the orchestrator controller tools to create an approval-first plan and execute it after the user accepts the card."),et.map(function(e){var t=e.leaderUsername,l=e.missing;return r().createElement(n.Space,{key:t,size:8,wrap:!0},r().createElement(n.Tag,{color:"blue"},U.get(t)||t),r().createElement(x,{type:"secondary"},l.length," missing"),r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.ThunderboltOutlined,null),onClick:function(){return J(t,l)}},"Auto-add"))}))}),ee.length>0&&r().createElement(n.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(ee.length," leader").concat(ee.length>1?"s":""," missing dispatch tool assignment"),description:r().createElement(n.Space,{direction:"vertical",size:6},r().createElement(x,{type:"secondary"},"The fan-out tool lets a Leader dispatch multiple independent sub-tasks in one call. Add it to the Leader's tools to enable the new multi-agent flow."),ee.map(function(e){var t=e.leaderUsername,l=e.toolName,o=e.count;return r().createElement(n.Space,{key:t,size:8,wrap:!0},r().createElement(n.Tag,{color:"blue"},U.get(t)||t),r().createElement(x,{type:"secondary"},o," sub-agent",o>1?"s":""),r().createElement(x,{code:!0},l),r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.ThunderboltOutlined,null),onClick:function(){return b(function(){return O(this,function(e){switch(e.label){case 0:return[4,W(t,A(t))];case 1:return e.sent(),[2]}})})()}},"Auto-add"))}))}),G.length>0&&r().createElement(n.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"Legacy delegate_to_<sub> alias is no longer registered for these sub-agents",description:r().createElement(n.Space,{direction:"vertical",size:2},G.map(function(e){var t=e.sub,a=e.leaders;return r().createElement(x,{key:t,type:"secondary"},r().createElement(n.Tag,{color:"green"},U.get(t)||t),"has multiple leaders (",a.map(function(e){return U.get(e)||e}).join(", "),"). The legacy alias is dropped to avoid ambiguity — leaders must use ",r().createElement(x,{code:!0},"delegate_<leader>_to_<sub>")," ","in their tools.")}))}),r().createElement(n.Card,{bordered:!1},r().createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"flex-end"}},r().createElement(n.Button,{type:"primary",icon:r().createElement(a.PlusOutlined,null),onClick:function(){return V()}},"New Rule")),K.length?r().createElement(n.Collapse,{bordered:!1,defaultActiveKey:K.map(function(e){return e.leaderUsername}),items:K.map(function(e){return{key:e.leaderUsername,label:r().createElement(n.Space,null,r().createElement(n.Tag,{color:"blue"},U.get(e.leaderUsername)||e.leaderUsername),r().createElement(x,{type:"secondary"},e.items.length," sub-agent",e.items.length>1?"s":""),ee.some(function(t){return t.leaderUsername===e.leaderUsername})&&r().createElement(n.Tag,{color:"warning"},"Dispatch missing")),children:r().createElement(n.Table,{rowKey:"id",loading:k,dataSource:e.items,columns:Y,pagination:!1,size:"middle",scroll:{x:"max-content"}})}})}):r().createElement(n.Table,{rowKey:"id",loading:k,dataSource:[],columns:Y,pagination:!1,size:"middle",scroll:{x:"max-content"},locale:{emptyText:r().createElement(n.Empty,{description:"No orchestration rules yet"})}})),r().createElement(n.Drawer,{title:d?"Edit Orchestration Rule":"New Orchestration Rule",width:480,onClose:Z,open:u,styles:{body:{paddingBottom:80}},extra:r().createElement(n.Space,null,r().createElement(n.Button,{onClick:Z},"Cancel"),r().createElement(n.Button,{onClick:function(){return m.submit()},type:"primary"},"Save"))},r().createElement(n.Form,{form:m,layout:"vertical",onFinish:function(t){return b(function(){var r,a,l,o,i,u;return O(this,function(c){switch(c.label){case 0:if(t.leaderUsername===t.subAgentUsername)return n.message.error("Leader and Sub-Agent cannot be the same employee."),[2];c.label=1;case 1:if(c.trys.push([1,6,,7]),!d)return[3,3];return[4,e.request({url:"orchestratorConfig:update",method:"put",params:{filterByTk:d.id},data:t})];case 2:return c.sent(),n.message.success("Rule updated"),[3,5];case 3:return[4,e.request({url:"orchestratorConfig:create",method:"post",data:t})];case 4:c.sent(),n.message.success("Rule created"),c.label=5;case 5:return Z(),I(),[3,7];case 6:return u=(null==(r=c.sent())||null==(i=r.response)||null==(o=i.data)||null==(l=o.errors)||null==(a=l[0])?void 0:a.message)||r.message,n.message.error("Save failed: ".concat(u)),[3,7];case 7:return[2]}})})()}},r().createElement(n.Form.Item,{name:"leaderUsername",label:"Leader (Orchestrator)",rules:[{required:!0,message:"Please select a Leader"}],tooltip:"The AI Employee that will be able to delegate tasks to the Sub-Agent"},r().createElement(y,{placeholder:"Select Leader AI Employee..."})),r().createElement(n.Form.Item,{name:"subAgentUsername",label:"Sub-Agent",rules:[{required:!0,message:"Please select a Sub-Agent"}],tooltip:"The AI Employee that will receive delegated tasks"},r().createElement(y,{placeholder:"Select Sub-Agent AI Employee...",exclude:Q})),r().createElement(n.Form.Item,{name:"maxDepth",label:"Max Delegation Depth",tooltip:"How many layers of delegation are allowed (1 = leader calls sub-agent, sub-agent cannot delegate further)"},r().createElement(n.InputNumber,{min:1,max:3,style:{width:"100%"}})),r().createElement(n.Form.Item,{name:"timeout",label:"Timeout (ms)",tooltip:"Maximum time in milliseconds for the sub-agent to complete its task"},r().createElement(n.InputNumber,{min:1e4,max:6e5,step:1e4,style:{width:"100%"}})),r().createElement(n.Form.Item,{name:"recursionLimit",label:"Recursion Limit",tooltip:"Max LangGraph reasoning steps per delegation. Higher = more complex multi-step tasks; lower = stricter cap on token usage. Default 50."},r().createElement(n.InputNumber,{min:5,max:200,step:5,style:{width:"100%"}})),r().createElement(n.Form.Item,{name:"harnessTag",label:"Harness Profile",tooltip:"Profile tag used by plan approval, controller limits, and orchestration policy."},r().createElement(n.Select,{loading:B,options:[{label:"default",value:"default"}].concat(w(R.filter(function(e){return"default"!==e.tag}).map(function(e){return{label:e.title?"".concat(e.tag," - ").concat(e.title):e.tag,value:e.tag}})))})),r().createElement(n.Form.Item,{name:"llmService",label:"Override LLM Service",tooltip:"Optional: Provider name. Leave empty to inherit from Leader."},r().createElement(n.Select,{allowClear:!0,placeholder:"Inherit from Leader",loading:D,options:M.map(function(e){return{label:e.llmServiceTitle||e.llmService,value:e.llmService}}),onChange:function(){return m.setFieldValue("model",void 0)}})),r().createElement(n.Form.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.llmService!==t.llmService}},function(){var e=m.getFieldValue("llmService"),t=M.find(function(t){return t.llmService===e}),a=Array.isArray(null==t?void 0:t.enabledModels)?t.enabledModels:[];return r().createElement(n.Form.Item,{name:"model",label:"Override Model",tooltip:"Optional: Model name. Leave empty to inherit from Leader.",rules:[{required:!!e,message:"Please select a model"}]},r().createElement(n.Select,{allowClear:!0,placeholder:e?"Select a model":"Inherit from Leader",disabled:!e,options:a.map(function(e){return{label:e.label,value:e.value}})}))}),r().createElement(n.Form.Item,{name:"enabled",label:"Enabled",valuePropName:"checked"},r().createElement(n.Switch,null)))))};function F(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,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function B(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return F(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 F(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 M=n.Typography.Text,R=n.Typography.Paragraph,N=n.DatePicker.RangePicker,U=function(){var e,i=(0,o.useApp)().apiClient,u=B((0,t.useState)(null),2),c=u[0],s=u[1],d=B((0,t.useState)(!1),2),p=d[0],m=d[1],y=B((0,t.useState)(1),2),h=y[0],g=y[1],b=B((0,t.useState)(20),2),v=b[0],E=b[1],S=B((0,t.useState)({}),2),w=S[0],k=S[1],O=f(),x=O.employees,I=O.employeeMap,C=(0,t.useMemo)(function(){var e={};return w.leader&&(e.leaderUsername=w.leader),w.subAgent&&(e.subAgentUsername=w.subAgent),w.status&&(e.status=w.status),w.range&&(w.range[0]||w.range[1])&&(e.createdAt={},w.range[0]&&(e.createdAt.$gte=w.range[0].toDate().toISOString()),w.range[1]&&(e.createdAt.$lte=w.range[1].toDate().toISOString())),{sort:["-createdAt"],page:h,pageSize:v,filter:e}},[h,v,w]),A=(0,l.useRequest)(function(){return i.request({url:"orchestratorTracing:list",params:C})},{refreshDeps:[C]}),T=A.data,j=A.loading,P=A.refresh,z=(0,t.useMemo)(function(){var e=null==T?void 0:T.data;return Array.isArray(e)?e:[]},[T]),D=(0,t.useMemo)(function(){var e,t=null==T||null==(e=T.meta)?void 0:e.count;return"number"==typeof t?t:0},[T]),F=function(e){return e?e>=1e3?"".concat((e/1e3).toFixed(1),"s"):"".concat(e,"ms"):"-"},U=function(e){var t;return(t=function(){var t,r;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(n){switch(n.label){case 0:s(e),m(!0),n.label=1;case 1:return n.trys.push([1,,3,4]),[4,i.request({url:"orchestratorTracing:get",params:{filterByTk:e.id,source:e.hasUnifiedTrace?"span":"log"}})];case 2:return s((null==(r=n.sent())||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data)||e),[3,4];case 3:return m(!1),[7];case 4:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var l=t.apply(e,r);function o(e){_(l,n,a,o,i,"next",e)}function i(e){_(l,n,a,o,i,"throw",e)}o(void 0)})})()},q=function(e){k(function(t){return 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}({},t,e)}),g(1)},L=(0,t.useMemo)(function(){return x.map(function(e){return{label:e.nickname||e.username,value:e.username}})},[x]),H=!!(w.leader||w.subAgent||w.status||w.range&&(w.range[0]||w.range[1])),J=[{title:"Time",dataIndex:"createdAt",key:"createdAt",width:170,render:function(e){return e?new Date(e).toLocaleString():"-"}},{title:"Leader",dataIndex:"leaderUsername",key:"leaderUsername",render:function(e){return r().createElement(n.Tag,{color:"blue"},I.get(e)||e)}},{title:"Sub-Agent",dataIndex:"subAgentUsername",key:"subAgentUsername",render:function(e){return r().createElement(n.Tag,{color:"green"},I.get(e)||e)}},{title:"Task",dataIndex:"task",key:"task",render:function(e){return r().createElement(M,{ellipsis:!0,style:{maxWidth:280}},(null==e?void 0:e.substring(0,100))||"-")}},{title:"Status",dataIndex:"status",key:"status",width:90,render:function(e){return r().createElement(n.Tag,{icon:"success"===e?r().createElement(a.CheckCircleOutlined,null):r().createElement(a.CloseCircleOutlined,null),color:"success"===e?"success":"error"},e)}},{title:"Duration",dataIndex:"durationMs",key:"durationMs",width:90,render:F},{title:"Depth",dataIndex:"depth",key:"depth",width:60,render:function(e){return null!=e?e:0}},{title:"",key:"actions",width:80,render:function(e,t){return r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.EyeOutlined,null),onClick:function(){return U(t)}},"Detail")}}];return r().createElement("div",null,r().createElement(n.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Execution Tracing",description:r().createElement(M,{type:"secondary"},"View orchestration execution logs. Each row represents one sub-agent invocation, with child tool and Skill Hub executions shown in the detail flow.")}),r().createElement(n.Card,{bordered:!1},r().createElement(n.Form,{layout:"inline",style:{marginBottom:16,rowGap:8,flexWrap:"wrap"}},r().createElement(n.Form.Item,{label:"Leader"},r().createElement(n.Select,{allowClear:!0,placeholder:"Any leader",style:{minWidth:180},options:L,value:w.leader,onChange:function(e){return q({leader:e})},showSearch:!0,optionFilterProp:"label"})),r().createElement(n.Form.Item,{label:"Sub-Agent"},r().createElement(n.Select,{allowClear:!0,placeholder:"Any sub-agent",style:{minWidth:180},options:L,value:w.subAgent,onChange:function(e){return q({subAgent:e})},showSearch:!0,optionFilterProp:"label"})),r().createElement(n.Form.Item,{label:"Status"},r().createElement(n.Select,{allowClear:!0,placeholder:"Any status",style:{minWidth:140},options:[{label:"Success",value:"success"},{label:"Error",value:"error"},{label:"Running",value:"running"}],value:w.status,onChange:function(e){return q({status:e})}})),r().createElement(n.Form.Item,{label:"Time"},r().createElement(N,{showTime:!0,value:w.range,onChange:function(e){return q({range:e})}})),r().createElement(n.Form.Item,null,r().createElement(n.Space,null,r().createElement(n.Button,{onClick:function(){k({}),g(1)},disabled:!H},"Reset"),r().createElement(n.Button,{icon:r().createElement(a.ReloadOutlined,null),onClick:P},"Refresh")))),r().createElement(n.Table,{rowKey:"id",loading:j,dataSource:z,columns:J,size:"middle",scroll:{x:"max-content"},pagination:{current:h,pageSize:v,total:D,showSizeChanger:!0,pageSizeOptions:[10,20,50,100],showTotal:function(e){return"".concat(e," execution").concat(1===e?"":"s")},onChange:function(e,t){g(e),t&&t!==v&&E(t)}},locale:{emptyText:r().createElement(n.Empty,{description:H?"No executions match the current filters":"No delegation executions yet"})}})),r().createElement(n.Drawer,{title:"Execution Detail",width:820,onClose:function(){return s(null)},open:!!c},c&&r().createElement(n.Spin,{spinning:p},r().createElement(r().Fragment,null,r().createElement(n.Descriptions,{column:1,bordered:!0,size:"small",style:{marginBottom:16}},r().createElement(n.Descriptions.Item,{label:"Status"},r().createElement(n.Tag,{icon:"success"===c.status?r().createElement(a.CheckCircleOutlined,null):r().createElement(a.CloseCircleOutlined,null),color:"success"===c.status?"success":"error"},c.status)),r().createElement(n.Descriptions.Item,{label:"Leader"},r().createElement(n.Tag,{color:"blue"},I.get(c.leaderUsername)||c.leaderUsername)),r().createElement(n.Descriptions.Item,{label:"Sub-Agent"},r().createElement(n.Tag,{color:"green"},I.get(c.subAgentUsername)||c.subAgentUsername)),r().createElement(n.Descriptions.Item,{label:"Tool"},r().createElement(M,{code:!0},c.toolName)),r().createElement(n.Descriptions.Item,{label:"Depth"},null!=(e=c.depth)?e:0),r().createElement(n.Descriptions.Item,{label:"Duration"},F(c.durationMs)),r().createElement(n.Descriptions.Item,{label:"Time"},c.createdAt?new Date(c.createdAt).toLocaleString():"-")),r().createElement(n.Card,{title:"Task",size:"small",style:{marginBottom:16}},r().createElement(R,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},c.task||"No task description")),c.context&&r().createElement(n.Card,{title:"Context",size:"small",style:{marginBottom:16}},r().createElement(R,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},c.context)),r().createElement(n.Card,{title:"Execution Flow",size:"small",style:{marginBottom:16}},Array.isArray(c.trace)&&c.trace.length?r().createElement(n.Timeline,{items:c.trace.map(function(e,t){return{key:t,color:"error"===e.status?"red":"tool_call"===e.type?"blue":"green",children:r().createElement("div",null,r().createElement(n.Space,{direction:"vertical",size:2,style:{width:"100%"}},r().createElement(M,{strong:!0},e.title||e.type),r().createElement(M,{type:"secondary"},e.at?new Date(e.at).toLocaleString():""),e.toolName&&r().createElement(M,{code:!0},e.toolName),e.skillExecutionId&&r().createElement(M,{type:"secondary"},"Skill execution #",e.skillExecutionId),e.content&&r().createElement(R,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},e.content),e.args&&r().createElement(R,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:12}},JSON.stringify(e.args,null,2))))}})}):r().createElement(n.Empty,{description:"No execution flow captured"})),Array.isArray(c.messages)&&c.messages.length>0&&r().createElement(n.Collapse,{style:{marginBottom:16},items:[{key:"messages",label:"Raw messages (".concat(c.messages.length,")"),children:r().createElement(n.Space,{direction:"vertical",style:{width:"100%"}},c.messages.map(function(e){var t;return r().createElement(n.Card,{key:e.index,size:"small",title:"".concat(e.index+1,". ").concat(e.type)},r().createElement(R,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:12}},e.content||JSON.stringify(e.toolCalls||e,null,2)),(null==(t=e.toolCalls)?void 0:t.length)>0&&r().createElement(R,{style:{whiteSpace:"pre-wrap",margin:"8px 0 0",fontSize:12}},JSON.stringify(e.toolCalls,null,2)))}))}]}),r().createElement(n.Card,{title:"Result",size:"small",style:{marginBottom:16,borderColor:"success"===c.status?"#b7eb8f":"#ffa39e"}},r().createElement(R,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13},ellipsis:{rows:20,expandable:!0}},c.result||c.error||"No result")),c.error&&r().createElement(n.Card,{title:"Error",size:"small",style:{borderColor:"#ffa39e"}},r().createElement(R,{type:"danger",style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},c.error))))))};function q(e,t){if(null==e||""===e)return t;if("string"!=typeof e)return e;var r=e.trim(),n=r.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),a=n?n[1].trim():r;try{var l=JSON.parse(a);if("string"==typeof l){var o=l.trim(),i=o.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),u=i?i[1].trim():o;try{l=JSON.parse(u)}catch(e){}}return l}catch(e){return t}}function L(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=q(e,void 0),n=void 0===r?null==e||""===e?t:e:r;return null==n?"":"string"==typeof n?n:JSON.stringify(n,null,2)}function H(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=q(e,void 0),n=void 0===r?null==e||""===e?t:e:r;return"```json\n".concat(JSON.stringify(n,null,2),"\n```")}function J(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,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function $(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){W(l,n,a,o,i,"next",e)}function i(e){W(l,n,a,o,i,"throw",e)}o(void 0)})}}function G(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return J(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 J(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 K(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var V=n.Typography.Paragraph,Z=n.Typography.Text,Y=new Set(["succeeded","failed","rejected","canceled"]);function Q(e){var t=e.status;return r().createElement(n.Tag,{icon:function(e){switch(e){case"succeeded":case"success":return r().createElement(a.CheckCircleOutlined,null);case"failed":case"error":return r().createElement(a.CloseCircleOutlined,null);case"waiting_user":case"waiting_plan_approval":case"needs_replan":return r().createElement(a.PauseCircleOutlined,null);case"approved":case"running":case"planning":return r().createElement(a.ClockCircleOutlined,null);default:return}}(t),color:function(e){switch(e){case"succeeded":case"success":return"success";case"failed":case"error":return"error";case"waiting_user":case"waiting_plan_approval":case"needs_replan":return"warning";case"approved":case"running":case"planning":return"processing";default:return"default"}}(t)},t||"-")}function X(e){return e?new Date(e).toLocaleString():"-"}function ee(e,t){if(!e)return"-";var r=new Date(e).getTime(),n=Math.max(0,(t?new Date(t).getTime():Date.now())-r);return n>=6e4?"".concat(Math.round(n/6e4),"m"):n>=1e3?"".concat((n/1e3).toFixed(1),"s"):"".concat(n,"ms")}function et(e){var t=e.value,n=e.rows,a=function(e){if(null==e||""===e)return"";if("string"==typeof e)return e;try{return JSON.stringify(e,null,2)}catch(t){return String(e)}}(t);return a?r().createElement(V,{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:12},ellipsis:{rows:void 0===n?10:n,expandable:!0}},a):r().createElement(Z,{type:"secondary"},"-")}var er=function(){var e,i=(0,o.useApp)().apiClient,u=f(),c=u.employees,s=u.employeeMap,d=G((0,t.useState)({}),2),p=d[0],m=d[1],y=G((0,t.useState)(1),2),h=y[0],g=y[1],b=G((0,t.useState)(20),2),v=b[0],E=b[1],S=G((0,t.useState)(null),2),w=S[0],k=S[1],O=G((0,t.useState)(null),2),x=O[0],I=O[1],C=G((0,t.useState)(!1),2),A=C[0],T=C[1],j=G((0,t.useState)(!1),2),P=j[0],z=j[1],D=(0,t.useMemo)(function(){var e={};return p.leader&&(e.leaderUsername=p.leader),p.status&&(e.status=p.status),{sort:["-createdAt"],page:h,pageSize:v,filter:e}},[p,h,v]),F=(0,l.useRequest)(function(){return i.request({url:"agentLoops:list",params:D})},{refreshDeps:[D]}),_=F.data,B=F.loading,M=F.refresh,R=(0,t.useMemo)(function(){var e=null==_?void 0:_.data;return Array.isArray(e)?e:[]},[_]),N=(0,t.useMemo)(function(){var e,t=null==_||null==(e=_.meta)?void 0:e.count;return"number"==typeof t?t:0},[_]),U=(0,t.useMemo)(function(){return c.map(function(e){return{label:e.nickname||e.username,value:e.username}})},[c]),L=function(e,t){return $(function(){var r,n;return K(this,function(a){switch(a.label){case 0:k(t||w||{id:e}),T(!0),a.label=1;case 1:return a.trys.push([1,,3,4]),[4,i.request({url:"agentLoops:get",params:{filterByTk:e}})];case 2:return I((null==(n=a.sent())||null==(r=n.data)?void 0:r.data)||(null==n?void 0:n.data)||null),[3,4];case 3:return T(!1),[7];case 4:return[2]}})})()},H=function(e){m(function(t){return 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}({},t,e)}),g(1)},J=function(e,t){return $(function(){var r,a;return K(this,function(l){switch(l.label){case 0:z(!0),l.label=1;case 1:return l.trys.push([1,4,5,6]),[4,i.request({url:"cancel"===e?"agentLoops:cancel":"agentLoops:resume",method:"POST",data:"cancel"===e?{runId:t}:{runId:t,stepId:null==x||null==(r=x.run)?void 0:r.currentStepId,approved:!0}})];case 2:return l.sent(),n.message.success("cancel"===e?"Run canceled":"Run resumed"),M(),[4,L(t)];case 3:return l.sent(),[3,6];case 4:return a=l.sent(),n.message.error((null==a?void 0:a.message)||"Failed to ".concat(e," run")),[3,6];case 5:return z(!1),[7];case 6:return[2]}})})()},W=[{title:"Time",dataIndex:"createdAt",key:"createdAt",width:170,render:X},{title:"Leader",dataIndex:"leaderUsername",key:"leaderUsername",width:160,render:function(e){return r().createElement(n.Tag,{color:"blue"},s.get(e)||e||"-")}},{title:"Goal",dataIndex:"goal",key:"goal",render:function(e){return r().createElement(Z,{ellipsis:!0,style:{maxWidth:380}},e||"-")}},{title:"Status",dataIndex:"status",key:"status",width:130,render:function(e){return r().createElement(Q,{status:e})}},{title:"Iterations",dataIndex:"iterationCount",key:"iterationCount",width:90,render:function(e){return null!=e?e:0}},{title:"Duration",key:"duration",width:100,render:function(e,t){return ee(t.startedAt||t.createdAt,t.endedAt)}},{title:"",key:"actions",width:90,render:function(e,t){return r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.EyeOutlined,null),onClick:function(){return L(t.id,t)}},"Detail")}}],er=Array.isArray(null==x?void 0:x.steps)?x.steps:[],en=Array.isArray(null==x?void 0:x.events)?x.events:[],ea=Array.isArray(null==x?void 0:x.spans)?x.spans:[],el=Array.isArray(null==x?void 0:x.skillExecutions)?x.skillExecutions:[],eo=(null==x?void 0:x.run)||w,ei=!!(p.leader||p.status),eu=[{title:"#",dataIndex:"index",key:"index",width:56,render:function(e){return Number(null!=e?e:0)+1}},{title:"Status",dataIndex:"status",key:"status",width:130,render:function(e){return r().createElement(Q,{status:e})}},{title:"Type",dataIndex:"type",key:"type",width:110,render:function(e){return r().createElement(n.Tag,null,e)}},{title:"Step",key:"step",render:function(e,t){return r().createElement(n.Space,{direction:"vertical",size:2,style:{width:"100%"}},r().createElement(Z,{strong:!0},t.title||t.planKey),t.description&&r().createElement(Z,{type:"secondary"},t.description),t.target&&r().createElement(Z,{code:!0},t.target))}},{title:"Depends",dataIndex:"dependsOn",key:"dependsOn",width:130,render:function(e){return Array.isArray(e)&&e.length?e.map(function(e){return r().createElement(n.Tag,{key:e},e)}):"-"}},{title:"Attempts",key:"attempts",width:90,render:function(e,t){return"".concat(t.attempt||0,"/").concat(t.maxAttempts||0)}},{title:"",key:"actions",width:90,render:function(e,t){return"failed"===t.status&&Number(t.attempt||0)<Number(t.maxAttempts||0)?r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.RedoOutlined,null),loading:P,onClick:function(){var e;return e=t.id,$(function(){var t,r,a;return K(this,function(l){switch(l.label){case 0:r=(null==x||null==(t=x.run)?void 0:t.id)||(null==w?void 0:w.id),z(!0),l.label=1;case 1:return l.trys.push([1,5,6,7]),[4,i.request({url:"agentLoops:retryStep",method:"POST",data:{stepId:e}})];case 2:if(l.sent(),n.message.success("Step queued for retry"),M(),!r)return[3,4];return[4,L(r)];case 3:l.sent(),l.label=4;case 4:return[3,7];case 5:return a=l.sent(),n.message.error((null==a?void 0:a.message)||"Failed to retry step"),[3,7];case 6:return z(!1),[7];case 7:return[2]}})})()}},"Retry"):null}}];return r().createElement("div",null,r().createElement(n.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Agent Runs",description:r().createElement(Z,{type:"secondary"},"Persistent loop runs created by the orchestrator tools. Each run stores the goal, plan, step state, approvals, and linked Skill Hub or sub-agent traces.")}),r().createElement(n.Card,{bordered:!1},r().createElement(n.Form,{layout:"inline",style:{marginBottom:16,rowGap:8,flexWrap:"wrap"}},r().createElement(n.Form.Item,{label:"Leader"},r().createElement(n.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:"Any leader",style:{minWidth:180},options:U,value:p.leader,onChange:function(e){return H({leader:e})}})),r().createElement(n.Form.Item,{label:"Status"},r().createElement(n.Select,{allowClear:!0,placeholder:"Any status",style:{minWidth:160},value:p.status,onChange:function(e){return H({status:e})},options:[{label:"Planning",value:"planning"},{label:"Waiting plan approval",value:"waiting_plan_approval"},{label:"Approved",value:"approved"},{label:"Running",value:"running"},{label:"Waiting user",value:"waiting_user"},{label:"Needs replan",value:"needs_replan"},{label:"Succeeded",value:"succeeded"},{label:"Failed",value:"failed"},{label:"Rejected",value:"rejected"},{label:"Canceled",value:"canceled"}]})),r().createElement(n.Form.Item,null,r().createElement(n.Space,null,r().createElement(n.Button,{onClick:function(){m({}),g(1)},disabled:!ei},"Reset"),r().createElement(n.Button,{icon:r().createElement(a.ReloadOutlined,null),onClick:M},"Refresh")))),r().createElement(n.Table,{rowKey:"id",loading:B,dataSource:R,columns:W,scroll:{x:"max-content"},pagination:{current:h,pageSize:v,total:N,showSizeChanger:!0,pageSizeOptions:[10,20,50,100],showTotal:function(e){return"".concat(e," run").concat(1===e?"":"s")},onChange:function(e,t){g(e),t&&t!==v&&E(t)}},locale:{emptyText:r().createElement(n.Empty,{description:ei?"No runs match the current filters":"No agent runs yet"})}})),r().createElement(n.Drawer,{title:"Agent Run Detail",width:980,onClose:function(){k(null),I(null)},open:!!w},eo&&r().createElement(n.Spin,{spinning:A},r().createElement(n.Space,{direction:"vertical",size:16,style:{width:"100%"}},r().createElement(n.Space,{wrap:!0},r().createElement(n.Button,{icon:r().createElement(a.ReloadOutlined,null),onClick:function(){return L(eo.id)},loading:A},"Refresh"),"waiting_user"===eo.status&&r().createElement(n.Button,{type:"primary",icon:r().createElement(a.PlayCircleOutlined,null),loading:P,onClick:function(){return J("resume",eo.id)}},"Resume"),!Y.has(eo.status)&&r().createElement(n.Popconfirm,{title:"Cancel this run?",onConfirm:function(){return J("cancel",eo.id)}},r().createElement(n.Button,{danger:!0,icon:r().createElement(a.StopOutlined,null),loading:P},"Cancel run"))),r().createElement(n.Descriptions,{bordered:!0,size:"small",column:2},r().createElement(n.Descriptions.Item,{label:"Status"},r().createElement(Q,{status:eo.status})),r().createElement(n.Descriptions.Item,{label:"Leader"},r().createElement(n.Tag,{color:"blue"},s.get(eo.leaderUsername)||eo.leaderUsername||"-")),r().createElement(n.Descriptions.Item,{label:"Root run"},r().createElement(Z,{code:!0},eo.rootRunId||"-")),r().createElement(n.Descriptions.Item,{label:"Current step"},r().createElement(Z,{code:!0},eo.currentStepId||"-")),r().createElement(n.Descriptions.Item,{label:"Iterations"},eo.iterationCount||0),r().createElement(n.Descriptions.Item,{label:"Approval"},eo.approvalStatus||"-"),r().createElement(n.Descriptions.Item,{label:"Plan version"},eo.planVersion||"-"),r().createElement(n.Descriptions.Item,{label:"Harness"},(null==(e=eo.metadata)?void 0:e.harnessTag)||"-"),r().createElement(n.Descriptions.Item,{label:"Duration"},ee(eo.startedAt||eo.createdAt,eo.endedAt)),r().createElement(n.Descriptions.Item,{label:"Started"},X(eo.startedAt||eo.createdAt)),r().createElement(n.Descriptions.Item,{label:"Ended"},X(eo.endedAt))),r().createElement(n.Card,{title:"Goal",size:"small"},r().createElement(et,{value:eo.goal,rows:6})),r().createElement(n.Card,{title:"Plan",size:"small",extra:r().createElement(a.BranchesOutlined,null)},r().createElement(n.Table,{rowKey:"id",size:"small",dataSource:er,columns:eu,pagination:!1,scroll:{x:"max-content"},expandable:{expandedRowRender:function(e){return r().createElement(n.Space,{direction:"vertical",size:12,style:{width:"100%"}},r().createElement(n.Card,{size:"small",title:"Input"},r().createElement(et,{value:e.input,rows:8})),r().createElement(n.Card,{size:"small",title:"Output"},r().createElement(et,{value:e.output,rows:8})),e.approval&&Object.keys(e.approval).length>0&&r().createElement(n.Card,{size:"small",title:"Approval"},r().createElement(et,{value:e.approval,rows:8})),e.error&&r().createElement(n.Card,{size:"small",title:"Error",style:{borderColor:"#ffa39e"}},r().createElement(et,{value:e.error,rows:8})))}},locale:{emptyText:r().createElement(n.Empty,{description:"No plan steps"})}})),r().createElement(n.Card,{title:"Event Timeline",size:"small"},en.length?r().createElement(n.Timeline,{items:en.map(function(e){return{key:e.id,color:function(e){switch(e){case"succeeded":case"success":return"green";case"failed":case"error":return"red";case"waiting_user":case"waiting_plan_approval":case"needs_replan":return"orange";case"approved":case"running":case"planning":return"blue";default:return"gray"}}(e.status),children:r().createElement(n.Space,{direction:"vertical",size:2,style:{width:"100%"}},r().createElement(n.Space,{wrap:!0},r().createElement(Z,{strong:!0},e.title||e.type),r().createElement(Q,{status:e.status}),e.stepId&&r().createElement(Z,{type:"secondary"},"step #",e.stepId)),r().createElement(Z,{type:"secondary"},X(e.createdAt)),e.content&&r().createElement(et,{value:e.content,rows:4}))}})}):r().createElement(n.Empty,{description:"No events captured"})),r().createElement(n.Collapse,{items:[{key:"spans",label:"Linked spans (".concat(ea.length,")"),children:ea.length?r().createElement(n.Table,{rowKey:"id",size:"small",dataSource:ea,pagination:!1,scroll:{x:"max-content"},columns:[{title:"Type",dataIndex:"type",key:"type",width:110,render:function(e){return r().createElement(n.Tag,null,e)}},{title:"Status",dataIndex:"status",key:"status",width:110,render:function(e){return r().createElement(Q,{status:e})}},{title:"Title",dataIndex:"title",key:"title"},{title:"Tool",dataIndex:"toolName",key:"toolName",render:function(e){return e?r().createElement(Z,{code:!0},e):"-"}},{title:"Duration",dataIndex:"durationMs",key:"durationMs",width:100,render:function(e){return e?"".concat(e,"ms"):"-"}},{title:"Skill Exec",dataIndex:"skillExecutionId",key:"skillExecutionId",width:110,render:function(e){return e||"-"}}]}):r().createElement(n.Empty,{description:"No linked spans"})},{key:"skills",label:"Skill executions (".concat(el.length,")"),children:el.length?r().createElement(n.Space,{direction:"vertical",size:12,style:{width:"100%"}},el.map(function(e){var t=q(e.outputFiles,[]);return r().createElement(n.Card,{key:e.id,size:"small",title:r().createElement(n.Space,{wrap:!0},r().createElement(Z,null,"Skill execution #",e.id),r().createElement(Q,{status:e.status}),e.agentLoopStepId&&r().createElement(Z,{type:"secondary"},"step #",e.agentLoopStepId))},r().createElement(n.Space,{direction:"vertical",size:8,style:{width:"100%"}},r().createElement(n.Descriptions,{size:"small",column:2},r().createElement(n.Descriptions.Item,{label:"Duration"},e.durationMs?"".concat(e.durationMs,"ms"):"-"),r().createElement(n.Descriptions.Item,{label:"Created"},X(e.createdAt))),r().createElement(n.Collapse,{size:"small",items:[{key:"stdout",label:"stdout",children:r().createElement(et,{value:e.stdout,rows:10})},{key:"stderr",label:"stderr",children:r().createElement(et,{value:e.stderr,rows:10})},{key:"files",label:"files (".concat(t.length,")"),children:t.length?r().createElement(n.Space,{direction:"vertical"},t.map(function(t,n){var a,l;return a=(null==t?void 0:t.downloadUrl)?t.downloadUrl:(null==e?void 0:e.id)&&(null==t?void 0:t.name)?"/api/skillHub:download?execId=".concat(e.id,"&filename=").concat(encodeURIComponent(t.name)):"",l=t.name||t.path||"file-".concat(n+1),a?r().createElement("a",{key:n,href:a,target:"_blank",rel:"noreferrer"},l):r().createElement(Z,{key:n},l)})):r().createElement(n.Empty,{description:"No files"})}]})))})):r().createElement(n.Empty,{description:"No linked skill executions"})}]}),(eo.finalAnswer||eo.summary)&&r().createElement(n.Card,{title:"Final Output",size:"small"},eo.summary&&r().createElement(V,{style:{whiteSpace:"pre-wrap",marginBottom:12}},r().createElement(Z,{strong:!0},"Summary: "),eo.summary),r().createElement(et,{value:eo.finalAnswer,rows:16}))))))};function en(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 ea(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function el(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){ea(l,n,a,o,i,"next",e)}function i(e){ea(l,n,a,o,i,"throw",e)}o(void 0)})}}function eo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return en(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 en(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 ei(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var eu=n.Typography.Text,ec=function(e){var t=String(e||"").trim();return t?JSON.parse(t):{}},es=function(){var e=(0,o.useApp)().apiClient,t=eo(r().useState(!1),2),i=t[0],u=t[1],c=eo(r().useState(null),2),s=c[0],d=c[1],p=eo(n.Form.useForm(),1)[0],m=(0,l.useRequest)(function(){return e.request({url:"agentHarnessProfiles:list",params:{sort:["tag"],pageSize:100}})}),f=m.data,y=m.loading,h=m.refresh,g=r().useMemo(function(){var e=null==f?void 0:f.data;return Array.isArray(e)?e:[]},[f]),b=function(e){var t,r;d(e||null),p.resetFields(),p.setFieldsValue(e?(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}({},e),r=r={settingsText:JSON.stringify(e.settings||{},null,2)},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):{tag:"",title:"",description:"",enabled:!0,settingsText:JSON.stringify({requirePlanApproval:!0,allowSubAgents:!0,allowToolCalls:!0,maxParallelSubAgents:3,maxControllerSteps:100},null,2)}),u(!0)},v=function(){u(!1),d(null)},E=[{title:"Tag",dataIndex:"tag",key:"tag",width:140,render:function(e){return r().createElement(n.Tag,{color:"blue"},e)}},{title:"Title",dataIndex:"title",key:"title",render:function(e,t){return e||t.tag}},{title:"Enabled",dataIndex:"enabled",key:"enabled",width:90,render:function(t,a){return r().createElement(n.Switch,{size:"small",checked:!1!==t,onChange:function(t){return el(function(){return ei(this,function(r){switch(r.label){case 0:return[4,e.request({url:"agentHarnessProfiles:update",method:"put",params:{filterByTk:a.id},data:{enabled:t}})];case 1:return r.sent(),h(),[2]}})})()}})}},{title:"Settings",key:"settings",render:function(e,t){return r().createElement(n.Space,{size:4,wrap:!0},Object.entries(t.settings||{}).slice(0,5).map(function(e){var t=eo(e,2),a=t[0],l=t[1];return r().createElement(n.Tag,{key:a},a,": ",String(l))}))}},{title:"Actions",key:"actions",width:150,render:function(t,l){return r().createElement(n.Space,null,r().createElement(n.Button,{type:"link",size:"small",icon:r().createElement(a.EditOutlined,null),onClick:function(){return b(l)}},"Edit"),r().createElement(n.Popconfirm,{title:"Delete this profile?",onConfirm:function(){var t;return t=l.id,el(function(){var r;return ei(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),[4,e.request({url:"agentHarnessProfiles:destroy",method:"delete",params:{filterByTk:t}})];case 1:return a.sent(),n.message.success("Harness profile deleted"),h(),[3,3];case 2:return r=a.sent(),n.message.error("Delete failed: ".concat((null==r?void 0:r.message)||"unknown error")),[3,3];case 3:return[2]}})})()}},r().createElement(n.Button,{type:"link",size:"small",danger:!0,icon:r().createElement(a.DeleteOutlined,null)},"Delete")))}}];return r().createElement("div",null,r().createElement(n.Card,{bordered:!1},r().createElement(n.Space,{direction:"vertical",size:16,style:{width:"100%"}},r().createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:16}},r().createElement(eu,{type:"secondary"},"Harness profiles are selected by orchestration rules through the harnessTag field."),r().createElement(n.Button,{type:"primary",icon:r().createElement(a.PlusOutlined,null),onClick:function(){return b()}},"New Profile")),r().createElement(n.Table,{rowKey:"id",loading:y,dataSource:g,columns:E,pagination:!1,scroll:{x:"max-content"}}))),r().createElement(n.Drawer,{title:s?"Edit Harness Profile":"New Harness Profile",width:560,open:i,onClose:v,extra:r().createElement(n.Space,null,r().createElement(n.Button,{onClick:v},"Cancel"),r().createElement(n.Button,{type:"primary",onClick:function(){return p.submit()}},"Save"))},r().createElement(n.Form,{form:p,layout:"vertical",onFinish:function(t){return el(function(){var r,a,l,o,i,u,c,d;return ei(this,function(p){switch(p.label){case 0:try{r=ec(t.settingsText)}catch(e){return n.message.error("Settings JSON is invalid: ".concat((null==e?void 0:e.message)||e)),[2]}a={tag:String(t.tag||"").trim(),title:t.title,description:t.description,enabled:!1!==t.enabled,settings:r},p.label=1;case 1:if(p.trys.push([1,6,,7]),!s)return[3,3];return[4,e.request({url:"agentHarnessProfiles:update",method:"put",params:{filterByTk:s.id},data:a})];case 2:return p.sent(),n.message.success("Harness profile updated"),[3,5];case 3:return[4,e.request({url:"agentHarnessProfiles:create",method:"post",data:a})];case 4:p.sent(),n.message.success("Harness profile created"),p.label=5;case 5:return v(),h(),[3,7];case 6:return d=(null==(l=p.sent())||null==(c=l.response)||null==(u=c.data)||null==(i=u.errors)||null==(o=i[0])?void 0:o.message)||(null==l?void 0:l.message)||"unknown error",n.message.error("Save failed: ".concat(d)),[3,7];case 7:return[2]}})})()}},r().createElement(n.Form.Item,{name:"tag",label:"Tag",rules:[{required:!0,message:"Tag is required"}]},r().createElement(n.Input,{placeholder:"default",disabled:(null==s?void 0:s.tag)==="default"})),r().createElement(n.Form.Item,{name:"title",label:"Title"},r().createElement(n.Input,null)),r().createElement(n.Form.Item,{name:"description",label:"Description"},r().createElement(n.Input.TextArea,{rows:3})),r().createElement(n.Form.Item,{name:"settingsText",label:"Settings JSON",rules:[{required:!0,message:"Settings JSON is required"}]},r().createElement(n.Input.TextArea,{rows:12,spellCheck:!1})),r().createElement(n.Form.Item,{name:"enabled",label:"Enabled",valuePropName:"checked"},r().createElement(n.Switch,null)))))};function ed(){var e=(0,o.useApp)();return(0,t.useCallback)(function(t,r){return e.i18n.t(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}({ns:["plugin-agent-orchestrator","client"]},r))},[e.i18n])}function ep(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 em(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function ef(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 ey(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 eh(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ep(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 ep(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 eg=n.Input.TextArea,eb=n.theme.useToken,ev=function(e){var l=e.skill,i=e.onClose,u=(0,o.useApp)().apiClient,c=ed(),s=eb().token,d=eh(n.Form.useForm(),1)[0],p=!!l,m=eh((0,t.useState)([]),2),f=m[0],y=m[1];(0,t.useEffect)(function(){p||u.request({url:"skillHub:listTemplates"}).then(function(e){var t,r=e.data,n=(null==r||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data)||r;n&&n.data&&Array.isArray(n.data)&&(n=n.data),y(Array.isArray(n)?n:[])}).catch(function(){y([])})},[u,p]),(0,t.useEffect)(function(){l?d.setFieldsValue(ey(ef({},l),{inputSchema:L(l.inputSchema,null),interactionSchema:L(l.interactionSchema,null),packages:L(l.packages,[])})):(d.resetFields(),d.setFieldsValue({storageType:"database",language:"python",timeoutSeconds:60,maxOutputSizeMb:50,enabled:!0,toolScope:"CUSTOM",autoCall:!1,packages:"[]"}))},[l,d]);var h=n.Form.useWatch("storageType",d)||"database";(0,t.useEffect)(function(){if("plugin"===h){var e=d.getFieldValue("pluginSource");if(e){var t=f.find(function(t){return t.name===e});t&&d.setFieldsValue({name:t.name,title:t.title,description:t.description,language:t.language,instructions:t.instructions||"",inputSchema:L(t.inputSchema,null),interactionSchema:L(t.interactionSchema,null),packages:L(t.packages,[]),timeoutSeconds:t.timeoutSeconds||60,maxOutputSizeMb:t.maxOutputSizeMb||50,toolScope:t.toolScope||"CUSTOM",storageUrl:t.storageUrl})}}},[h,f,d]);var g=function(e){var t,r=f.find(function(t){return t.name===e});r&&("plugin"===h?d.setFieldsValue({name:r.name,title:r.title,description:r.description||"",language:r.language||"python",instructions:r.instructions||"",inputSchema:L(r.inputSchema,null),interactionSchema:L(r.interactionSchema,null),packages:L(r.packages,[]),timeoutSeconds:r.timeoutSeconds||60,maxOutputSizeMb:r.maxOutputSizeMb||50,toolScope:r.toolScope||"CUSTOM",storageUrl:r.storageUrl}):d.setFieldsValue({name:r.name,title:r.title,description:r.description||"",instructions:r.instructions||"",language:r.language||"python",codeTemplate:r.codeTemplate||"",inputSchema:L(r.inputSchema,null),interactionSchema:L(r.interactionSchema,null),packages:L(r.packages,[]),timeoutSeconds:r.timeoutSeconds||60,maxOutputSizeMb:r.maxOutputSizeMb||50,toolScope:r.toolScope||"CUSTOM",enabled:null==(t=r.enabled)||t}),n.message.success(c("Template applied")))};return r().createElement(n.Modal,{open:!0,title:p?c("Edit Skill"):c("New Skill"),onCancel:function(){return i()},width:720,destroyOnClose:!0,footer:null,styles:{body:{padding:0,display:"flex",flexDirection:"column",maxHeight:"calc(100vh - 120px)"}},style:{top:40}},r().createElement(n.Form,{form:d,layout:"vertical",size:"middle",component:"div",style:{display:"flex",flexDirection:"column",maxHeight:"calc(100vh - 120px)"}},r().createElement(n.Form.Item,{name:"storageUrl",hidden:!0},r().createElement(n.Input,null)),r().createElement("div",{style:{flexShrink:0,background:s.colorBgContainer,borderBottom:"1px solid ".concat(s.colorBorderSecondary),padding:"12px 24px",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12}},r().createElement(n.Form.Item,{name:"storageType",noStyle:!0},r().createElement(n.Radio.Group,{optionType:"button",buttonStyle:"solid",size:"small"},r().createElement(n.Radio,{value:"database"},c("Database Editor")),r().createElement(n.Radio,{value:"local"},c("ZIP Package")),r().createElement(n.Radio,{value:"plugin",disabled:!Array.isArray(f)||0===f.length},c("Bind to Plugin")))),r().createElement(n.Space,{size:16},r().createElement(n.Space,{size:4},r().createElement("span",{style:{fontSize:12,color:s.colorTextSecondary}},c("Enabled")),r().createElement(n.Form.Item,{name:"enabled",valuePropName:"checked",noStyle:!0},r().createElement(n.Switch,{size:"small"}))),r().createElement(n.Space,{size:4},r().createElement("span",{style:{fontSize:12,color:s.colorTextSecondary}},c("Auto Call")),r().createElement(n.Form.Item,{name:"autoCall",valuePropName:"checked",noStyle:!0},r().createElement(n.Switch,{size:"small"})))),r().createElement(n.Space,null,r().createElement(n.Button,{size:"small",icon:r().createElement(a.CloseOutlined,null),onClick:function(){return i()}},c("Cancel")),r().createElement(n.Button,{type:"primary",size:"small",icon:r().createElement(a.SaveOutlined,null),onClick:function(){var e;return(e=function(){var e,t,r;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:return a.trys.push([0,6,,7]),[4,d.validateFields()];case 1:e=a.sent();try{e.inputSchema&&JSON.parse(e.inputSchema)}catch(e){return n.message.error(c("Invalid JSON in Input Schema")),[2]}try{e.interactionSchema&&JSON.parse(e.interactionSchema)}catch(e){return n.message.error(c("Invalid JSON in Interaction Schema")),[2]}try{e.packages&&JSON.parse(e.packages)}catch(e){return n.message.error(c("Invalid JSON in Packages")),[2]}if(t=ey(ef({},e),{inputSchema:e.inputSchema?H(e.inputSchema):null,interactionSchema:e.interactionSchema?H(e.interactionSchema):null,packages:H(e.packages||[],[])}),!p)return[3,3];return[4,u.request({url:"skillDefinitions:update",method:"POST",params:{filterByTk:l.id},data:t})];case 2:return a.sent(),[3,5];case 3:return[4,u.request({url:"skillDefinitions:create",method:"POST",data:t})];case 4:a.sent(),a.label=5;case 5:return n.message.success(c(p?"Skill updated":"Skill created")),i(!0),[3,7];case 6:if(null==(r=a.sent())?void 0:r.errorFields)return[2];return n.message.error(c("Failed to save skill")),[3,7];case 7:return[2]}})},function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){em(l,n,a,o,i,"next",e)}function i(e){em(l,n,a,o,i,"throw",e)}o(void 0)})})()}},p?c("Save"):c("Create")))),r().createElement("div",{style:{flex:1,overflowY:"auto",padding:"16px 24px 24px",minHeight:0}},"database"===h&&!p&&Array.isArray(f)&&f.length>0&&r().createElement(n.Form.Item,{label:c("Import Template to Pre-fill code (Optional)"),style:{marginBottom:24}},r().createElement(n.Select,{placeholder:c("Select a template to pre-fill"),onChange:g,allowClear:!0},f.map(function(e){return r().createElement(n.Select.Option,{key:e.name,value:e.name},e.title," (",e.pluginSource||e.name,")")}))),"plugin"===h&&r().createElement(r().Fragment,null,r().createElement(n.Form.Item,{name:"inputSchema",hidden:!0},r().createElement(eg,null)),r().createElement(n.Form.Item,{name:"packages",hidden:!0},r().createElement(n.Input,null)),r().createElement(n.Form.Item,{name:"pluginSource",label:c("Select Plugin Skill"),rules:[{required:!0}],style:{marginBottom:24,padding:12,background:"#e6f4ff",borderRadius:8,border:"1px solid #91caff"},extra:r().createElement("div",{style:{fontSize:12,color:"#1677ff",marginTop:8}},c("Binding dynamically delegates execution to the plugin logic. Code, Language, and Schemas are managed externally."))},r().createElement(n.Select,{placeholder:c("Choose an enabled plugin skill to attach"),onChange:g,allowClear:!0},Array.isArray(f)&&f.map(function(e){return r().createElement(n.Select.Option,{key:e.name,value:e.name},e.title," (",e.pluginSource||e.name,")")})))),r().createElement(n.Form.Item,{name:"name",label:c("Name (Internal Identifier)"),rules:[{required:!0}]},r().createElement(n.Input,{placeholder:"generate-word-report",disabled:p||"plugin"===h})),r().createElement(n.Form.Item,{name:"title",label:c("Title"),rules:[{required:!0}]},r().createElement(n.Input,{placeholder:"Generate Word Report",disabled:"plugin"===h})),r().createElement(n.Form.Item,{name:"description",label:c("Description")},r().createElement(eg,{rows:2,placeholder:"Description for AI employee to understand this skill",disabled:"plugin"===h})),r().createElement(n.Form.Item,{name:"instructions",label:c("Instructions / Documentation")},r().createElement(eg,{rows:6,placeholder:"Detailed instructions or markdown documentation for this skill",disabled:"plugin"===h})),"local"===h&&r().createElement(n.Form.Item,{label:c("Skill Package ZIP"),name:"fileId",valuePropName:"fileId",getValueFromEvent:function(e){var t,r,n,a,l,o,i;return(null==e||null==(n=e.file)||null==(r=n.response)||null==(t=r.data)?void 0:t.id)||(null==e||null==(i=e.fileList)||null==(o=i[0])||null==(l=o.response)||null==(a=l.data)?void 0:a.id)||void 0},rules:[{required:!0}]},r().createElement(n.Upload.Dragger,{name:"file",action:"/api/attachments:create",headers:{Authorization:"Bearer ".concat(u.auth.getToken())},maxCount:1,accept:".zip"},r().createElement("p",{className:"ant-upload-drag-icon"},r().createElement(a.InboxOutlined,null)),r().createElement("p",{className:"ant-upload-text"},c("Click or drag ZIP file to this area to upload")),r().createElement("p",{className:"ant-upload-hint"},c("Upload a skill package zip containing SKILL.md and index.py/.js. Metadata will be extracted automatically.")))),"plugin"!==h&&r().createElement(n.Form.Item,{name:"language",label:c("Language")},r().createElement(n.Select,null,r().createElement(n.Select.Option,{value:"python"},"Python"),r().createElement(n.Select.Option,{value:"node"},"Node.js"))),"database"===h&&r().createElement(n.Form.Item,{name:"codeTemplate",label:c("Code Template"),extra:c("Use {{placeholder}} for input parameters. Use OUTPUT_DIR env var for output directory.")},r().createElement(eg,{rows:12,style:{fontFamily:"monospace",fontSize:13},placeholder:'import os\n\noutput_dir = os.environ.get("OUTPUT_DIR", "/output")\n# Your code here'})),"plugin"!==h&&r().createElement(n.Form.Item,{name:"inputSchema",label:c("Input Schema (JSON)"),extra:c("JSON Schema defining input parameters for this skill")},r().createElement(eg,{rows:6,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "type": "object",\n "properties": {},\n "required": []\n}'})),r().createElement(n.Form.Item,{name:"interactionSchema",label:c("Interaction Schema (optional)"),extra:c("If set, user is prompted to fill / confirm input before execution. Type: form | select | confirm.")},r().createElement(eg,{rows:6,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "type": "form",\n "prompt": "Confirm parameters",\n "fields": {\n "fileName": { "type": "string", "title": "File name", "required": true }\n }\n}'})),"plugin"!==h&&r().createElement(n.Form.Item,{name:"packages",label:c("Packages (JSON array)")},r().createElement(n.Input,{placeholder:'["python-docx", "openpyxl"]',style:{fontFamily:"monospace"}})),r().createElement("div",{style:{display:"flex",gap:16}},r().createElement(n.Form.Item,{name:"timeoutSeconds",label:c("Timeout (seconds)"),style:{flex:1}},r().createElement(n.InputNumber,{min:5,max:300,style:{width:"100%"}})),r().createElement(n.Form.Item,{name:"maxOutputSizeMb",label:c("Max Output (MB)"),style:{flex:1}},r().createElement(n.InputNumber,{min:1,max:200,style:{width:"100%"}})),r().createElement(n.Form.Item,{name:"toolScope",label:c("Tool Scope"),style:{flex:1}},r().createElement(n.Select,null,r().createElement(n.Select.Option,{value:"CUSTOM"},"CUSTOM"),r().createElement(n.Select.Option,{value:"GENERAL"},"GENERAL"),r().createElement(n.Select.Option,{value:"SPECIFIED"},"SPECIFIED")))))))};function eE(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 eS(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function ew(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eE(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 eE(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 ek=n.Input.TextArea,eO=function(a){var l,i=a.skill,u=a.onClose,c=(0,o.useApp)().apiClient,s=ed(),d=q(i.inputSchema,null),p=ew((0,t.useState)((null==d?void 0:d.properties)?JSON.stringify(Object.fromEntries(Object.keys(d.properties).map(function(e){return[e,""]})),null,2):"{}"),2),m=p[0],f=p[1],y=ew((0,t.useState)(!1),2),h=y[0],g=y[1],b=ew((0,t.useState)(null),2),v=b[0],E=b[1],S=ew((0,t.useState)(""),2),w=S[0],k=S[1];return r().createElement(n.Modal,{open:!0,title:"".concat(s("Test Skill"),": ").concat(i.title),onCancel:u,footer:[r().createElement(n.Button,{key:"close",onClick:u},s("Close")),r().createElement(n.Button,{key:"run",type:"primary",onClick:function(){var e;return(e=function(){var e,t,r,n,a,l,o,u;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(d){switch(d.label){case 0:g(!0),E(null),k("");try{e=JSON.parse(m)}catch(e){return k(s("Invalid JSON input")),g(!1),[2]}d.label=1;case 1:return d.trys.push([1,3,4,5]),[4,c.request({url:"skillHub:test",method:"POST",data:{skillId:i.id,input:e}})];case 2:return E((null==(r=d.sent().data)||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data)||r),[3,5];case 3:return k((null==(n=d.sent())||null==(u=n.response)||null==(o=u.data)||null==(l=o.errors)||null==(a=l[0])?void 0:a.message)||n.message||s("Execution failed")),[3,5];case 4:return g(!1),[7];case 5:return[2]}})},function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){eS(l,n,a,o,i,"next",e)}function i(e){eS(l,n,a,o,i,"throw",e)}o(void 0)})})()},loading:h},s("Run"))],width:640,destroyOnClose:!0},r().createElement(n.Space,{direction:"vertical",style:{width:"100%"},size:"middle"},r().createElement("div",null,r().createElement(n.Typography.Text,{strong:!0},s("Input (JSON)")),r().createElement(ek,{rows:6,value:m,onChange:function(e){return f(e.target.value)},style:{fontFamily:"monospace",fontSize:13,marginTop:4}})),h&&r().createElement(n.Spin,{tip:s("Running skill on worker...")}),w&&r().createElement(n.Alert,{type:"error",message:w,showIcon:!0}),v&&r().createElement(r().Fragment,null,r().createElement(n.Alert,{type:"succeeded"===v.status?"success":"error",message:"succeeded"===v.status?s("Succeeded"):s("Failed"),description:"Duration: ".concat(v.durationMs||0,"ms"),showIcon:!0}),v.stdout&&r().createElement("div",null,r().createElement(n.Typography.Text,{strong:!0},"stdout:"),r().createElement("pre",{style:{background:"#f5f5f5",padding:8,maxHeight:200,overflow:"auto",fontSize:12}},v.stdout)),v.stderr&&r().createElement("div",null,r().createElement(n.Typography.Text,{strong:!0,type:"danger"},"stderr:"),r().createElement("pre",{style:{background:"#fff2f0",padding:8,maxHeight:200,overflow:"auto",fontSize:12}},v.stderr)),(null==(l=v.files)?void 0:l.length)>0&&r().createElement("div",null,r().createElement(n.Typography.Text,{strong:!0},s("Output Files"),":"),r().createElement("div",{style:{marginTop:8}},r().createElement(e.Upload.ReadPretty,{value:v.files.map(function(e,t){return{id:"test-".concat(e.name,"-").concat(t),title:e.name,filename:e.name,extname:e.name.includes(".")?".".concat(e.name.split(".").pop()):"",url:e.downloadUrl,status:"done"}}),multiple:!0,showFileName:!0}))))))};function ex(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 eI(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function eC(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){eI(l,n,a,o,i,"next",e)}function i(e){eI(l,n,a,o,i,"throw",e)}o(void 0)})}}function eA(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ex(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 ex(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 eT(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var ej=n.Typography.Text,eP=n.theme.useToken,ez=function(e){var l=e.open,i=e.onClose,u=ed(),c=eP().token,s=(0,o.useApp)().apiClient,d=eA((0,t.useState)(0),2),p=d[0],m=d[1],f=eA((0,t.useState)([]),2),y=f[0],h=f[1],g=eA((0,t.useState)(!1),2),b=g[0],v=g[1],E=eA((0,t.useState)(null),2),S=E[0],w=E[1],k=eA((0,t.useState)([]),2),O=k[0],x=k[1],I=eA((0,t.useState)(""),2),C=(I[0],I[1]),A=eA((0,t.useState)("HEAD"),2),T=A[0],j=A[1],P=eA((0,t.useState)([]),2),z=P[0],D=P[1],F=eA((0,t.useState)(!1),2),_=F[0],B=F[1],M=eA((0,t.useState)(""),2),R=M[0],N=M[1],U=eA((0,t.useState)(null),2),q=U[0],L=U[1],H=eA((0,t.useState)([]),2),J=H[0],W=H[1],$=eA((0,t.useState)(!1),2),G=$[0],K=$[1],V=eA((0,t.useState)([]),2),Z=V[0],Y=V[1],Q=eA((0,t.useState)(!1),2),X=Q[0],ee=Q[1],et=eA((0,t.useState)(""),2),er=et[0],en=et[1],ea=eA((0,t.useState)(null),2),el=ea[0],eo=ea[1],ei=eA((0,t.useState)(""),2),eu=ei[0],ec=ei[1],es=eA((0,t.useState)(null),2),ep=es[0],em=es[1],ef=eA((0,t.useState)(!1),2),ey=ef[0],eh=ef[1],eg=(0,t.useCallback)(function(){return eC(function(){var e,t;return eT(this,function(r){switch(r.label){case 0:v(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),[4,s.request({url:"gitRepositories:list",params:{pageSize:100}})];case 2:return h(((null==(t=r.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data)||[]).filter(function(e){return"connected"===e.status})),[3,4];case 3:return v(!1),[7];case 4:return[2]}})})()},[s]);(0,t.useEffect)(function(){l&&(eg(),m(0),w(null),L(null),W([]),Y([]),eo(null),em(null),ee(!1),N(""),en(""),ec(""))},[l,eg]),(0,t.useEffect)(function(){S&&s.request({url:"gitManager:branches",params:{repositoryId:S}}).then(function(e){var t,r=e.data,n=(null==r||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data);x((null==n?void 0:n.all)||[]);var a=(null==n?void 0:n.current)||"main";C(a),j(a)}).catch(function(){return x([])})},[S,s]);var eb=(0,t.useCallback)(function(){return eC(function(){var e,t;return eT(this,function(r){switch(r.label){case 0:if(!S)return[2];B(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),[4,s.request({url:"gitManager:fileTree",params:{repositoryId:S,ref:T,treePath:R}})];case 2:return D(((null==(t=r.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data)||[]).filter(function(e){return"tree"===e.type})),[3,4];case 3:return B(!1),[7];case 4:return[2]}})})()},[s,S,T,R]);(0,t.useEffect)(function(){1===p&&S&&eb()},[p,S,T,R,eb]);var ev=(0,t.useCallback)(function(){return eC(function(){var e,t,r,a,l,o,i,c,d;return eT(this,function(p){switch(p.label){case 0:if(!S||null===q)return[2];K(!0),p.label=1;case 1:return p.trys.push([1,3,4,5]),[4,s.request({url:"skillHub:gitListSkills",params:{repositoryId:S,ref:T,rootFolder:q}})];case 2:return a=(null==(r=p.sent().data)||null==(e=r.data)?void 0:e.data)||(null==r?void 0:r.data)||[],eo((null==r||null==(t=r.data)?void 0:t.config)||(null==r?void 0:r.config)||null),W(a),Y(a.filter(function(e){return!e.existsInDb}).map(function(e){return e.folder})),[3,5];case 3:return l=p.sent(),n.message.error((null==l||null==(d=l.response)||null==(c=d.data)||null==(i=c.errors)||null==(o=i[0])?void 0:o.message)||u("Failed to read skills from git")),eo(null),W([]),[3,5];case 4:return K(!1),[7];case 5:return[2]}})})()},[s,S,T,q,u]);(0,t.useEffect)(function(){2===p&&null!==q&&ev()},[p,q,ev]);var eE=(0,t.useMemo)(function(){if(!eu.trim())return J;var e=eu.toLowerCase();return J.filter(function(t){return(t.title||t.name||"").toLowerCase().includes(e)||(t.description||"").toLowerCase().includes(e)})},[J,eu]),eS=[{title:u("Skill"),key:"name",render:function(e,t){return r().createElement("div",null,r().createElement(ej,{strong:!0},t.title||t.name),r().createElement("div",null,r().createElement(ej,{type:"secondary",style:{fontSize:12}},t.name)))}},{title:u("Language"),dataIndex:"language",key:"language",width:100,render:function(e){return r().createElement(n.Tag,{color:"python"===e?"blue":"green"},e)}},{title:u("Source"),dataIndex:"storageType",key:"storageType",width:100,render:function(e){return r().createElement(n.Tag,{color:"plugin"===e?"purple":"cyan"},(e||"git").toUpperCase())}},{title:u("Description"),dataIndex:"description",key:"description",ellipsis:!0},{title:u("Status"),key:"status",width:120,render:function(e,t){return t.existsInDb?r().createElement(n.Tag,{color:"orange"},u("Exists")):r().createElement(n.Tag,{color:"green"},u("New"))}}],ew=[{title:u("Skill"),dataIndex:"name",key:"name",render:function(e){var t=er?er.trim():"",n=t?"".concat(t).concat(e):e;return r().createElement("div",null,r().createElement(ej,{strong:!0},n),t&&r().createElement("div",null,r().createElement(ej,{type:"secondary",style:{fontSize:11}},u("Original"),": ",e)))}},{title:u("Result"),key:"status",render:function(e,t){return r().createElement(n.Space,null,r().createElement(n.Tag,{color:{created:"green",updated:"blue",skipped:"orange",error:"red"}[t.status]||"default"},t.status),t.reason&&r().createElement(ej,{type:"secondary",style:{fontSize:12}},t.reason))}}];return r().createElement(n.Modal,{open:l,title:r().createElement(n.Space,null,r().createElement(a.BranchesOutlined,null),u("Import Skills from Git")),onCancel:function(){return i()},width:800,footer:3===p?r().createElement(n.Button,{type:"primary",onClick:function(){return i(!0)}},u("Done")):r().createElement(n.Space,null,p>0&&p<3&&r().createElement(n.Button,{onClick:function(){return m(p-1)}},u("Back")),p<2&&r().createElement(n.Button,{type:"primary",disabled:!(0===p?!!S:1===p?null!==q:2===p&&Z.length>0),onClick:function(){return m(p+1)}},u("Next")),2===p&&r().createElement(n.Button,{type:"primary",loading:ey,disabled:0===Z.length,onClick:function(){return eC(function(){var e,t,r,a,l,o,i;return eT(this,function(c){switch(c.label){case 0:if(0===Z.length)return n.message.warning(u("Please select at least one skill")),[2];eh(!0),c.label=1;case 1:return c.trys.push([1,3,4,5]),[4,s.request({url:"skillHub:gitSyncSkills",method:"POST",params:{repositoryId:S,ref:T,rootFolder:q,prefix:er},data:{skills:Z,overwrite:X}})];case 2:return em((null==(t=c.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data)||[]),m(3),[3,5];case 3:return r=c.sent(),n.message.error((null==r||null==(i=r.response)||null==(o=i.data)||null==(l=o.errors)||null==(a=l[0])?void 0:a.message)||u("Sync failed")),[3,5];case 4:return eh(!1),[7];case 5:return[2]}})})()}},r().createElement(a.SyncOutlined,null)," ",u("Sync Selected")," (",Z.length,")")),destroyOnClose:!0},r().createElement(n.Steps,{current:p,size:"small",style:{marginBottom:24},items:[{title:u("Repository")},{title:u("Root Folder")},{title:u("Select Skills")},{title:u("Result")}]}),0===p&&r().createElement("div",null,b?r().createElement(n.Spin,null):0===y.length?r().createElement(n.Empty,{description:u("No connected repositories. Please configure one in Git Manager first.")}):r().createElement("div",null,r().createElement(ej,{strong:!0,style:{display:"block",marginBottom:8}},r().createElement(a.DatabaseOutlined,null)," ",u("Select a connected git repository")),r().createElement(n.Select,{style:{width:"100%"},placeholder:u("Select repository"),value:S,onChange:w,options:y.map(function(e){return{label:r().createElement(n.Space,null,e.name,r().createElement(ej,{type:"secondary",style:{fontSize:12}},e.repoUrl)),value:e.id}})}))),1===p&&r().createElement("div",null,r().createElement("div",{style:{marginBottom:12,display:"flex",gap:12,alignItems:"center"}},r().createElement(a.BranchesOutlined,null),r().createElement(n.Select,{size:"small",style:{width:200},value:T,onChange:function(e){j(e),L(null)},options:O.map(function(e){return{label:e,value:e}})})),r().createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8}},r().createElement(ej,{strong:!0},r().createElement(a.FolderOutlined,null)," ",u("Current Path"),": ",R||"/ (Root)"),r().createElement(n.Button,{type:"primary",onClick:function(){return L(R)}},u("Use Current Folder"))),_?r().createElement(n.Spin,null):r().createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:8}},R&&r().createElement(n.Button,{icon:r().createElement(a.FolderOutlined,null),onClick:function(){var e=R.split("/");e.pop(),N(e.join("/"))}},".."),z.map(function(e){return r().createElement(n.Button,{key:e.path,icon:r().createElement(a.FolderOutlined,null),onClick:function(){return N(e.path)},style:{height:"auto",padding:"8px 16px"}},e.name)}),0===z.length&&!R&&r().createElement(n.Empty,{description:u("No folders found")})),null!==q&&r().createElement(n.Alert,{style:{marginTop:12},type:"success",message:"".concat(u("Selected Root Folder"),": ").concat(q||"/"),showIcon:!0})),2===p&&r().createElement("div",null,(null==el?void 0:el.initializedSkillsJson)&&r().createElement(n.Alert,{style:{marginBottom:12},type:"info",showIcon:!0,message:"".concat(u("Initialized skills.json"),": ").concat(el.path||"skills.json")}),G?r().createElement(n.Spin,null):0===J.length?r().createElement(n.Empty,{description:u("No skills found")}):r().createElement("div",null,r().createElement("div",{style:{marginBottom:12,display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,flexWrap:"wrap"}},r().createElement(n.Input,{placeholder:u("Search by title or description..."),prefix:r().createElement(a.SearchOutlined,{style:{color:c.colorTextQuaternary}}),value:eu,onChange:function(e){return ec(e.target.value)},allowClear:!0,style:{width:260}}),r().createElement(n.Space,null,r().createElement(n.Input,{size:"small",placeholder:u("Skill Name Prefix"),value:er,onChange:function(e){return en(e.target.value)},style:{width:150}}),r().createElement(ej,{style:{fontSize:12,marginLeft:8}},u("Overwrite")),r().createElement(n.Switch,{size:"small",checked:X,onChange:ee}))),r().createElement("div",{style:{marginBottom:8}},r().createElement(ej,{type:"secondary",style:{fontSize:12}},eE.length," / ",J.length," ",u("skills found"),er&&r().createElement("span",{style:{marginLeft:8}},"\xe2€\xa2 ",u("Prefix"),": ",r().createElement(n.Tag,{style:{margin:0}},er)," ",r().createElement(ej,{type:"secondary",style:{fontSize:11}},"(",u("applied on sync"),")")))),r().createElement(n.Table,{dataSource:eE,columns:eS,rowKey:"folder",size:"small",pagination:{pageSize:10,size:"small",showSizeChanger:!1,showTotal:function(e,t){return"".concat(t[0],"-").concat(t[1]," / ").concat(e)}},rowSelection:{selectedRowKeys:Z,onChange:function(e){return Y(e)}},scroll:{x:"max-content"}}))),3===p&&ep&&r().createElement("div",null,r().createElement(n.Result,{status:"success",title:u("Sync Complete"),subTitle:"".concat(ep.filter(function(e){return"created"===e.status}).length," ").concat(u("created"),", ").concat(ep.filter(function(e){return"updated"===e.status}).length," ").concat(u("updated"),", ").concat(ep.filter(function(e){return"skipped"===e.status}).length," ").concat(u("skipped"))}),r().createElement(n.Table,{dataSource:ep,columns:ew,rowKey:"folder",size:"small",pagination:!1,scroll:{x:"max-content"}})))};function eD(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 eF(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function e_(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){eF(l,n,a,o,i,"next",e)}function i(e){eF(l,n,a,o,i,"throw",e)}o(void 0)})}}function eB(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eD(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 eD(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 eM(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}n.Input.TextArea;var eR=function(){var e=(0,o.useApp)().apiClient,l=ed(),i=eB((0,t.useState)([]),2),u=i[0],c=i[1],s=eB((0,t.useState)(!1),2),d=s[0],p=s[1],m=eB((0,t.useState)(!1),2),f=m[0],y=m[1],h=eB((0,t.useState)(!1),2),g=h[0],b=h[1],v=eB((0,t.useState)(null),2),E=v[0],S=v[1],w=eB((0,t.useState)(null),2),k=w[0],O=w[1],x=eB((0,t.useState)(!1),2),I=x[0],C=x[1],A=(0,t.useCallback)(function(){return e_(function(){var t,r,a,o,i;return eM(this,function(u){switch(u.label){case 0:p(!0),u.label=1;case 1:return u.trys.push([1,3,4,5]),[4,e.request({url:"skillDefinitions:list",params:{pageSize:100}})];case 2:return c(Array.isArray(i=null!=(t=null!=(r=null==(o=u.sent().data)||null==(a=o.data)?void 0:a.data)?r:null==o?void 0:o.data)?t:[])?i:[]),[3,5];case 3:return u.sent(),n.message.error(l("Failed to load skills")),[3,5];case 4:return p(!1),[7];case 5:return[2]}})})()},[e,l]);(0,t.useEffect)(function(){A()},[A]);var T=function(e){S(e),y(!0)},j=function(e){O(e),b(!0)};return r().createElement(n.Card,{title:l("Skill Definitions"),extra:r().createElement(n.Space,null,r().createElement(n.Button,{icon:r().createElement(a.BranchesOutlined,null),onClick:function(){return C(!0)}},l("Import from Git")),r().createElement(n.Button,{type:"primary",icon:r().createElement(a.PlusOutlined,null),onClick:function(){S(null),y(!0)}},l("New Skill")))},r().createElement(n.List,{grid:{gutter:16,xs:1,sm:2,md:3,lg:3,xl:4,xxl:4},dataSource:u,loading:d,renderItem:function(t){return r().createElement(n.List.Item,null,r().createElement(n.Card,{size:"small",title:r().createElement(n.Typography.Text,{ellipsis:!0,title:t.title},t.title),extra:r().createElement(n.Tag,{color:"python"===t.language?"blue":"green"},t.language),actions:[r().createElement(n.Tooltip,{title:l("Test")},r().createElement(a.PlayCircleOutlined,{key:"test",onClick:function(){return j(t)}})),r().createElement(n.Tooltip,{title:l("Edit")},r().createElement(a.EditOutlined,{key:"edit",onClick:function(){return T(t)}})),r().createElement(n.Popconfirm,{title:l("Delete?"),onConfirm:function(){var r;return r=t.id,e_(function(){return eM(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,e.request({url:"skillDefinitions:destroy",method:"POST",params:{filterByTk:r}})];case 1:return t.sent(),n.message.success(l("Deleted")),A(),[3,3];case 2:return t.sent(),n.message.error(l("Failed to delete")),[3,3];case 3:return[2]}})})()}},r().createElement(n.Tooltip,{title:l("Delete")},r().createElement(a.DeleteOutlined,{key:"delete",style:{color:"red"}})))],style:{boxShadow:"0 2px 8px rgba(0,0,0,0.05)",borderRadius:8}},r().createElement(n.Card.Meta,{title:r().createElement(n.Typography.Text,{type:"secondary",style:{fontSize:13}},t.name),description:r().createElement("div",{style:{height:60,overflow:"hidden",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",fontSize:13}},t.description||l("No description"))}),r().createElement("div",{style:{marginTop:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},r().createElement(n.Space,{size:4},r().createElement(n.Switch,{checked:t.enabled,onChange:function(){return e_(function(){return eM(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,e.request({url:"skillDefinitions:update",method:"POST",params:{filterByTk:t.id},data:{enabled:!t.enabled}})];case 1:return r.sent(),A(),[3,3];case 2:return r.sent(),n.message.error(l("Failed to update")),[3,3];case 3:return[2]}})})()},size:"small"}),r().createElement("span",{style:{fontSize:12}},t.enabled?l("Enabled"):l("Disabled"))),r().createElement(n.Tag,{color:"purple",style:{margin:0,fontSize:11}},t.storageType?t.storageType.toUpperCase():"DB"))))}}),f&&r().createElement(ev,{skill:E,onClose:function(e){y(!1),S(null),e&&A()}}),g&&k&&r().createElement(eO,{skill:k,onClose:function(){return b(!1)}}),r().createElement(ez,{open:I,onClose:function(e){C(!1),e&&A()}}))};function eN(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 eU(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function eq(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){eU(l,n,a,o,i,"next",e)}function i(e){eU(l,n,a,o,i,"throw",e)}o(void 0)})}}function eL(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eN(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 eN(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 eH(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var eJ={pending:"default",running:"processing",succeeded:"success",failed:"error",canceled:"warning",timeout:"error"},eW=function(){var l=(0,o.useApp)().apiClient,i=ed(),u=eL((0,t.useState)([]),2),c=u[0],s=u[1],d=eL((0,t.useState)(!1),2),p=d[0],m=d[1],f=eL((0,t.useState)(1),2),y=f[0],h=f[1],g=eL((0,t.useState)(0),2),b=g[0],v=g[1],E=(0,t.useCallback)(function(){return eq(function(){var e,t,r,n,a,o;return eH(this,function(i){switch(i.label){case 0:m(!0),i.label=1;case 1:return i.trys.push([1,3,4,5]),[4,l.request({url:"skillExecutions:list",params:{page:y,pageSize:20,sort:["-createdAt"],appends:["skill","triggeredBy"]}})];case 2:return s(Array.isArray(o=null!=(e=null!=(t=null==(a=i.sent().data)||null==(r=a.data)?void 0:r.data)?t:null==a?void 0:a.data)?e:[])?o:[]),v((null==a||null==(n=a.meta)?void 0:n.count)||0),[3,5];case 3:return i.sent(),[3,5];case 4:return m(!1),[7];case 5:return[2]}})})()},[l,y]);(0,t.useEffect)(function(){E()},[E]);var S=[{title:"ID",dataIndex:"id",key:"id",width:80},{title:i("Skill"),dataIndex:["skill","title"],key:"skill",width:180},{title:i("Status"),dataIndex:"status",key:"status",width:120,render:function(e){return r().createElement(n.Tag,{color:eJ[e]||"default"},e)}},{title:i("Duration"),dataIndex:"durationMs",key:"duration",width:100,render:function(e){return e?"".concat((e/1e3).toFixed(1),"s"):"-"}},{title:i("Files"),dataIndex:"outputFiles",key:"files",width:250,render:function(t,n){if(!Array.isArray(t=q(t,[]))||!t.length)return"-";var a=t.map(function(e,t){return{id:"".concat(n.id,"-").concat(e.name,"-").concat(t),title:e.name,filename:e.name,extname:e.name.includes(".")?".".concat(e.name.split(".").pop()):"",url:"/api/skillHub:download?execId=".concat(n.id,"&filename=").concat(encodeURIComponent(e.name)),status:"done"}});return r().createElement(e.Upload.ReadPretty,{value:a,multiple:!0,showFileName:!0})}},{title:i("Triggered By"),dataIndex:["triggeredBy","nickname"],key:"triggeredBy",width:120,render:function(e){return e||"-"}},{title:i("Created At"),dataIndex:"createdAt",key:"createdAt",width:180,render:function(e){return e?new Date(e).toLocaleString():"-"}},{title:i("Output"),key:"output",width:200,render:function(e,t){return r().createElement(n.Space,{direction:"vertical",size:0},t.stdout&&r().createElement(n.Tooltip,{title:t.stdout},r().createElement(n.Typography.Text,{style:{fontSize:12,maxWidth:200},ellipsis:!0},t.stdout)),t.stderr&&r().createElement(n.Tooltip,{title:t.stderr},r().createElement(n.Typography.Text,{type:"danger",style:{fontSize:12,maxWidth:200},ellipsis:!0},t.stderr)))}},{title:i("Actions"),key:"actions",width:80,fixed:"right",render:function(e,t){return r().createElement(n.Space,{size:"middle"},r().createElement(n.Popconfirm,{title:i("Are you sure to delete this execution history and its files?"),onConfirm:function(){var e;return e=t.id,eq(function(){var t,r,a,o,u;return eH(this,function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),[4,l.request({url:"skillExecutions:destroy",method:"POST",params:{filterByTk:e}})];case 1:return c.sent(),n.message.success(i("Deleted successfully")),E(),[3,3];case 2:return t=c.sent(),n.message.error((null==t||null==(u=t.response)||null==(o=u.data)||null==(a=o.errors)||null==(r=a[0])?void 0:r.message)||i("Delete failed")),[3,3];case 3:return[2]}})})()},okText:i("Yes"),cancelText:i("No")},r().createElement(n.Button,{type:"text",danger:!0,icon:r().createElement(a.DeleteOutlined,null),size:"small"})))}}];return r().createElement(n.Card,{title:i("Execution History"),extra:r().createElement(n.Space,null,r().createElement(n.Button,{icon:r().createElement(a.ReloadOutlined,null),onClick:E,loading:p},i("Refresh")))},r().createElement(n.Table,{dataSource:c,columns:S,rowKey:"id",loading:p,size:"middle",pagination:{current:y,pageSize:20,total:b,onChange:h,showTotal:function(e){return"Total: ".concat(e)}},scroll:{x:1200}}))};function e$(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 eG(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function eK(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return e$(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 e$(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.")}()}n.Typography.Title,n.Typography.Text;var eV=function(){var e=(0,o.useApp)().apiClient,l=ed(),i=eK((0,t.useState)([]),2),u=i[0],c=i[1],s=eK((0,t.useState)(!1),2),d=s[0],p=s[1],m=(0,t.useCallback)(function(){var t;return(t=function(){var t,r,n,a,l;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(o){switch(o.label){case 0:p(!0),o.label=1;case 1:return o.trys.push([1,3,4,5]),[4,e.request({url:"skillExecutions:list",params:{pageSize:1e3,sort:["-createdAt"],appends:["skill"]}})];case 2:return c(Array.isArray(l=null!=(t=null!=(r=null==(a=o.sent().data)||null==(n=a.data)?void 0:n.data)?r:null==a?void 0:a.data)?t:[])?l:[]),[3,5];case 3:return o.sent(),[3,5];case 4:return p(!1),[7];case 5:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var l=t.apply(e,r);function o(e){eG(l,n,a,o,i,"next",e)}function i(e){eG(l,n,a,o,i,"throw",e)}o(void 0)})})()},[e]);(0,t.useEffect)(function(){m()},[m]);var f=(0,t.useMemo)(function(){var e=u.length,t=u.filter(function(e){return"succeeded"===e.status}).length,r=u.filter(function(e){return"failed"===e.status}).length,n=u.filter(function(e){return"timeout"===e.status}).length,a=u.filter(function(e){return"canceled"===e.status}).length,l={};return u.forEach(function(e){var t,r,n=(null==(t=e.skill)?void 0:t.title)||(null==(r=e.skill)?void 0:r.name)||"Unknown";l[n]||(l[n]={name:n,total:0,succeeded:0,failed:0,timeout:0,canceled:0,totalDuration:0,durationCount:0}),l[n].total+=1,l[n][e.status]=(l[n][e.status]||0)+1,e.durationMs&&(l[n].totalDuration+=e.durationMs,l[n].durationCount+=1)}),{total:e,succeeded:t,failed:r,timeout:n,canceled:a,skillData:Object.values(l).map(function(e){var t,r;return 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}({},e),r=r={successRate:e.total>0?e.succeeded/e.total*100:0,avgDuration:e.durationCount>0?(e.totalDuration/e.durationCount/1e3).toFixed(2):0},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}).sort(function(e,t){return t.total-e.total})}},[u]),y=[{title:l("Skill"),dataIndex:"name",key:"name",width:200},{title:l("Total Runs"),dataIndex:"total",key:"total",width:100},{title:l("Success Rate"),dataIndex:"successRate",key:"successRate",width:150,render:function(e){return r().createElement(n.Progress,{percent:Math.round(e),size:"small",status:100===e?"success":e>50?"active":"exception"})}},{title:l("Success"),dataIndex:"succeeded",key:"succeeded",width:100},{title:l("Failed"),dataIndex:"failed",key:"failed",width:100},{title:l("Timeout"),dataIndex:"timeout",key:"timeout",width:100},{title:l("Avg Duration (s)"),dataIndex:"avgDuration",key:"avgDuration",width:120}];return r().createElement(n.Space,{direction:"vertical",size:"large",style:{width:"100%",padding:"0 16px"}},r().createElement(n.Row,{gutter:16},r().createElement(n.Col,{span:6},r().createElement(n.Card,{size:"small"},r().createElement(n.Statistic,{title:"Total Executions (Recent)",value:f.total,prefix:r().createElement(a.SyncOutlined,null)}))),r().createElement(n.Col,{span:6},r().createElement(n.Card,{size:"small"},r().createElement(n.Statistic,{title:"Succeeded",value:f.succeeded,valueStyle:{color:"#3f8600"},prefix:r().createElement(a.CheckCircleOutlined,null)}))),r().createElement(n.Col,{span:6},r().createElement(n.Card,{size:"small"},r().createElement(n.Statistic,{title:"Failed",value:f.failed,valueStyle:{color:"#cf1322"},prefix:r().createElement(a.CloseCircleOutlined,null)}))),r().createElement(n.Col,{span:6},r().createElement(n.Card,{size:"small"},r().createElement(n.Statistic,{title:"Timeout/Canceled",value:f.timeout+f.canceled,valueStyle:{color:"#faad14"},prefix:r().createElement(a.ClockCircleOutlined,null)})))),r().createElement(n.Card,{title:l("Metrics by Skill (Recent)")},r().createElement(n.Table,{dataSource:f.skillData,columns:y,rowKey:"name",loading:d,pagination:!1,size:"middle",scroll:{x:"max-content"}})))},eZ=[{key:"confirm",title:"Confirm before run",description:"Ask the user to approve or cancel the skill call.",schema:{type:"confirm",prompt:"Review this skill call before execution."}},{key:"review-input",title:"Review editable input",description:"Show selected input fields so the user can edit them before running.",schema:{type:"form",prompt:"Review and edit the skill input before execution.",fields:{}}},{key:"choose-option",title:"Choose one option",description:"Ask the user to choose one option before running.",schema:{type:"select",prompt:"Choose how to run this skill.",options:[{label:"Default",value:"default"},{label:"Careful",value:"careful"}]}}];function eY(e){return eZ.find(function(t){return t.key===e})||eZ[0]}function eQ(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 eX(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eQ(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 eQ(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 e0=(0,t.createContext)(new Map),e1=function(e){return e.toLowerCase().replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"")},e2=function(e){var n,a,l,i=e.children,u=(0,o.useApp)().apiClient,c=(null==(a=u.auth)||null==(n=a.getToken)?void 0:n.call(a))||(null==(l=u.auth)?void 0:l.token)||"",s=eX((0,t.useState)(new Map),2),d=s[0],p=s[1],m=eX((0,t.useState)(0),2),f=m[0],y=m[1];return(0,t.useEffect)(function(){var e,t,r,n=function(){return y(function(e){return e+1})},a=function(e){var t;(null==(t=e.detail)?void 0:t.token)&&n()};return window.addEventListener("skill-hub-loop-settings-changed",n),null==(r=u.app)||null==(t=r.eventBus)||null==(e=t.addEventListener)||e.call(t,"auth:tokenChanged",a),function(){var e,t,r;window.removeEventListener("skill-hub-loop-settings-changed",n),null==(r=u.app)||null==(t=r.eventBus)||null==(e=t.removeEventListener)||e.call(t,"auth:tokenChanged",a)}},[u]),(0,t.useEffect)(function(){var e=!1;if(!c)return function(){e=!0};var t=function(e){var t,r,n,a,l=null!=(t=null!=(r=null!=(n=null==e||null==(a=e.data)?void 0:a.data)?n:null==e?void 0:e.data)?r:e)?t:[];return Array.isArray(l)?l:[]},r=function(e){var t,r,n=q(e.schema,null);return n?e.prompt&&!n.prompt?(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}({},n),r=r={prompt:e.prompt},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:e.prompt?{type:"confirm",prompt:e.prompt}:null};return Promise.all([u.request({url:"skillDefinitions:list",skipNotify:!0,params:{filter:{enabled:!0},fields:["id","name","autoCall","interactionSchema"],pageSize:500}}),u.request({url:"skillLoopConfigs:list",skipNotify:!0,params:{filter:{enabled:!0},fields:["skillId","enabled","schema","prompt","templateKey"],pageSize:500}}).catch(function(){return{data:[]}})]).then(function(n){var a=eX(n,2),l=a[0],o=a[1];if(!e){var i=new Map,u=t(l.data),c=t(o.data),s=new Map(u.map(function(e){return[String(e.id),e]})),d=!0,m=!1,f=void 0;try{for(var y,h=u[Symbol.iterator]();!(d=(y=h.next()).done);d=!0){var g=y.value;if(!g.autoCall){var b=q(g.interactionSchema,null);b&&i.set(e1(g.name),b)}}}catch(e){m=!0,f=e}finally{try{d||null==h.return||h.return()}finally{if(m)throw f}}var v=!0,E=!1,S=void 0;try{for(var w,k=c[Symbol.iterator]();!(v=(w=k.next()).done);v=!0){var O=w.value,x=s.get(String(O.skillId));if(null==x?void 0:x.name){var I=r(O);I&&i.set(e1(x.name),I)}}}catch(e){E=!0,S=e}finally{try{v||null==k.return||k.return()}finally{if(E)throw S}}p(i)}}).catch(function(){}),function(){e=!0}},[u,c,f]),r().createElement(e0.Provider,{value:d},i)};function e3(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 e6(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function e4(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 e5(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return e3(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 e3(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 e8=function(e){var a,l,o=e.toolCall,i=e.decisions,u=(0,t.useContext)(e0),c=e5(n.Form.useForm(),1)[0],s="skill_hub_execute"===o.name,d=o.args||{},p=s?(d.skillName||"").toLowerCase().replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,""):o.name.replace(/^skill_hub_/,""),m=u.get(p);return"init"!==o.invokeStatus&&"interrupted"!==o.invokeStatus?null:m?r().createElement(n.Card,{size:"small",style:{marginTop:8}},r().createElement(n.Typography.Paragraph,{style:{marginBottom:12}},m.prompt),"confirm"!==m.type&&r().createElement(n.Form,{form:c,layout:"vertical",initialValues:(s?d.input:d)||{},style:{marginBottom:8}},"select"===m.type&&r().createElement(n.Form.Item,{name:"choice",rules:[{required:!0}]},r().createElement(n.Radio.Group,null,(null!=(a=m.options)?a:[]).map(function(e){return r().createElement(n.Radio,{key:String(e.value),value:e.value},e.label)}))),"form"===m.type&&Object.entries(null!=(l=m.fields)?l:{}).map(function(e){var t=e5(e,2),a=t[0],l=t[1];return r().createElement(n.Form.Item,{key:a,name:a,label:l.title||a,rules:[{required:!!l.required}]},(null==l?void 0:l.enum)?r().createElement(n.Select,{options:l.enum.map(function(e){return{value:e,label:String(e)}})}):(null==l?void 0:l.type)==="number"||(null==l?void 0:l.type)==="integer"?r().createElement(n.InputNumber,{style:{width:"100%"}}):r().createElement(n.Input,null))})),r().createElement(n.Space,null,r().createElement(n.Button,{type:"primary",onClick:"confirm"===m.type?function(){return i.approve()}:function(){var e;return(e=function(){var e,t;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:return[4,c.validateFields()];case 1:var n,a;return e=r.sent(),t=s?(n=e4({},d),a=a={input:"select"===m.type?e:e4({},d.input||{},e)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(a)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(a)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(a,e))}),n):"select"===m.type?e:e4({},d,e),[4,i.edit(t)];case 2:return r.sent(),[2]}})},function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){e6(l,n,a,o,i,"next",e)}function i(e){e6(l,n,a,o,i,"throw",e)}o(void 0)})})()}},"Run"),r().createElement(n.Button,{onClick:function(){return i.reject("user_cancel")}},"Cancel"))):r().createElement(n.Card,{size:"small",style:{marginTop:8}},r().createElement(n.Typography.Paragraph,{style:{marginBottom:12}},"Review this Skill Hub tool call before execution."),r().createElement(n.Space,null,r().createElement(n.Button,{type:"primary",onClick:function(){return i.approve()}},"Run"),r().createElement(n.Button,{onClick:function(){return i.reject("user_cancel")}},"Cancel")))};function e7(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}var e9=function(e){var t,r,n,a,l=null!=(t=null!=(r=null!=(n=null==e||null==(a=e.data)?void 0:a.data)?n:null==e?void 0:e.data)?r:e)?t:[];return Array.isArray(l)?l:[]},te=function(e){var t,r,n,a,l;return(null==e||null==(n=e.apiClient)||null==(r=n.auth)||null==(t=r.getToken)?void 0:t.call(r))||(null==e||null==(l=e.apiClient)||null==(a=l.auth)?void 0:a.token)||""},tt=function(e,t){try{e.registerTools(t,{ui:{card:e8}})}catch(e){var r;if((null!=(r=Error)&&"u">typeof Symbol&&r[Symbol.hasInstance]?!r[Symbol.hasInstance](e):!(e instanceof r))||!e.message.includes("override existing keys"))throw e}};function tr(e){var t;return(t=function(){var t,r,n,a,l,o,i,u,c,s,d,p,m;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(f){switch(f.label){case 0:if(!(r=null==(t=e.aiManager)?void 0:t.toolsManager)||(tt(r,"skill_hub_execute"),!te(e)))return[2];f.label=1;case 1:return f.trys.push([1,7,,8]),[4,e.apiClient.request({url:"skillDefinitions:list",skipNotify:!0,params:{filter:{enabled:!0},fields:["id","name","autoCall","interactionSchema"],pageSize:500}})];case 2:n=f.sent(),a=new Set,f.label=3;case 3:return f.trys.push([3,5,,6]),[4,e.apiClient.request({url:"skillLoopConfigs:list",skipNotify:!0,params:{filter:{enabled:!0},fields:["skillId"],pageSize:500}})];case 4:return a=new Set(e9(f.sent().data).map(function(e){return String(e.skillId)})),[3,6];case 5:return f.sent(),[3,6];case 6:l=e9(n.data),o=!0,i=!1,u=void 0;try{for(c=l[Symbol.iterator]();!(o=(s=c.next()).done);o=!0)d=s.value,p=a.has(String(d.id)),m=!d.autoCall&&!!q(d.interactionSchema,null),(p||m)&&tt(r,"skill_hub_".concat(d.name.toLowerCase().replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"")))}catch(e){i=!0,u=e}finally{try{o||null==c.return||c.return()}finally{if(i)throw u}}return[3,8];case 7:return f.sent(),[3,8];case 8:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var l=t.apply(e,r);function o(e){e7(l,n,a,o,i,"next",e)}function i(e){e7(l,n,a,o,i,"throw",e)}o(void 0)})})()}function tn(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 ta(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function tl(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){ta(l,n,a,o,i,"next",e)}function i(e){ta(l,n,a,o,i,"throw",e)}o(void 0)})}}function to(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 ti(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 tu(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return tn(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 tn(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 tc(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var ts=n.Input.TextArea,td=function(e){var t,r,n,a,l=null!=(t=null!=(r=null!=(n=null==e||null==(a=e.data)?void 0:a.data)?n:null==e?void 0:e.data)?r:e)?t:[];return Array.isArray(l)?l:[]},tp=function(){var e=(0,o.useApp)(),l=e.apiClient,i=ed(),u=tu(n.Form.useForm(),1)[0],c=tu((0,t.useState)([]),2),s=c[0],d=c[1],p=tu((0,t.useState)([]),2),m=p[0],f=p[1],y=tu((0,t.useState)(!1),2),h=y[0],g=y[1],b=tu((0,t.useState)(!1),2),v=b[0],E=b[1],S=tu((0,t.useState)(null),2),w=S[0],k=S[1],O=(0,t.useMemo)(function(){return new Map(s.map(function(e){return[String(e.id),e]}))},[s]),x=(0,t.useCallback)(function(){return tl(function(){var e,t,r;return tc(this,function(a){switch(a.label){case 0:g(!0),a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,Promise.all([l.request({url:"skillDefinitions:list",params:{filter:{enabled:!0},fields:["id","name","title","language","autoCall"],pageSize:500}}),l.request({url:"skillLoopConfigs:list",params:{fields:["id","skillId","enabled","title","templateKey","prompt","schema","config","updatedAt"],sort:["-updatedAt"],pageSize:500}})])];case 2:return t=(e=tu.apply(void 0,[a.sent(),2]))[0],r=e[1],d(td(t.data)),f(td(r.data)),[3,5];case 3:return a.sent(),n.message.error(i("Failed to load skill review settings")),[3,5];case 4:return g(!1),[7];case 5:return[2]}})})()},[l,i]);(0,t.useEffect)(function(){x()},[x]);var I=function(e){var t=eY(e.templateKey);k(e),u.setFieldsValue(ti(to({},e),{templateKey:e.templateKey||t.key,prompt:e.prompt||t.schema.prompt,schema:L(e.schema||t.schema),config:L(e.config,null)})),E(!0)},C=function(){E(!1),k(null),u.resetFields()},A=(0,t.useCallback)(function(){return tl(function(){return tc(this,function(t){switch(t.label){case 0:return[4,tr(e)];case 1:return t.sent(),window.dispatchEvent(new Event("skill-hub-loop-settings-changed")),[2]}})})()},[e]);return r().createElement(n.Card,{title:i("Skill Review Settings"),extra:r().createElement(n.Button,{type:"primary",icon:r().createElement(a.PlusOutlined,null),onClick:function(){var e=eY("confirm");k(null),u.resetFields(),u.setFieldsValue({enabled:!0,templateKey:e.key,prompt:e.schema.prompt,schema:L(e.schema),config:""}),E(!0)}},i("New Review"))},r().createElement(n.List,{loading:h,dataSource:m,grid:{gutter:16,xs:1,sm:2,md:3,lg:3,xl:4,xxl:4},renderItem:function(e){var t=O.get(String(e.skillId)),o=eY(e.templateKey);return r().createElement(n.List.Item,null,r().createElement(n.Card,{size:"small",title:r().createElement(n.Typography.Text,{ellipsis:!0},e.title||(null==t?void 0:t.title)||(null==t?void 0:t.name)||i("Unknown skill")),extra:r().createElement(n.Tag,{color:e.enabled?"green":"default"},e.enabled?i("Enabled"):i("Disabled")),actions:[r().createElement(n.Tooltip,{key:"edit",title:i("Edit")},r().createElement(a.EditOutlined,{onClick:function(){return I(e)}})),r().createElement(n.Popconfirm,{key:"delete",title:i("Delete?"),onConfirm:function(){var t;return t=e.id,tl(function(){return tc(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,l.request({url:"skillLoopConfigs:destroy",method:"POST",params:{filterByTk:t}})];case 1:return e.sent(),n.message.success(i("Deleted")),x(),A(),[3,3];case 2:return e.sent(),n.message.error(i("Failed to delete")),[3,3];case 3:return[2]}})})()}},r().createElement(n.Tooltip,{title:i("Delete")},r().createElement(a.DeleteOutlined,{style:{color:"red"}})))],style:{boxShadow:"0 2px 8px rgba(0,0,0,0.05)",borderRadius:8}},r().createElement(n.Space,{direction:"vertical",size:8,style:{width:"100%"}},r().createElement(n.Typography.Text,{type:"secondary",style:{fontSize:13}},(null==t?void 0:t.name)||"skillId=".concat(e.skillId)),r().createElement(n.Tag,{color:"blue",style:{width:"fit-content"}},o.title),r().createElement(n.Typography.Paragraph,{type:"secondary",ellipsis:{rows:2},style:{minHeight:44,marginBottom:0,fontSize:13}},e.prompt||o.schema.prompt),r().createElement(n.Space,{size:4},r().createElement(n.Switch,{checked:e.enabled,onChange:function(){return tl(function(){return tc(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,l.request({url:"skillLoopConfigs:update",method:"POST",params:{filterByTk:e.id},data:{enabled:!e.enabled}})];case 1:return t.sent(),x(),A(),[3,3];case 2:return t.sent(),n.message.error(i("Failed to update")),[3,3];case 3:return[2]}})})()},size:"small"}),r().createElement("span",{style:{fontSize:12}},e.enabled?i("Enabled"):i("Disabled"))))))}}),r().createElement(n.Modal,{open:v,title:w?i("Edit Skill Review Setting"):i("New Skill Review Setting"),onCancel:C,onOk:function(){return tl(function(){var e,t,r,a,o,c;return tc(this,function(s){switch(s.label){case 0:return s.trys.push([0,6,,7]),[4,u.validateFields()];case 1:if(!(t=q((e=s.sent()).schema,void 0))||(void 0===t?"undefined":t&&"u">typeof Symbol&&t.constructor===Symbol?"symbol":typeof t)!="object")return n.message.error(i("Invalid JSON in Review Schema")),[2];if(r=q(e.config,void 0),e.config&&void 0===r)return n.message.error(i("Invalid JSON in Review Config")),[2];if(a=ti(to({},t),{prompt:e.prompt||t.prompt}),o=ti(to({},e),{schema:H(a),config:e.config?H(r):null}),!w)return[3,3];return[4,l.request({url:"skillLoopConfigs:update",method:"POST",params:{filterByTk:w.id},data:o})];case 2:return s.sent(),[3,5];case 3:return[4,l.request({url:"skillLoopConfigs:create",method:"POST",data:o})];case 4:s.sent(),s.label=5;case 5:return n.message.success(i(w?"Skill review setting updated":"Skill review setting created")),C(),x(),A(),[3,7];case 6:if(null==(c=s.sent())?void 0:c.errorFields)return[2];return n.message.error(i("Failed to save skill review setting")),[3,7];case 7:return[2]}})})()},width:760,destroyOnClose:!0},r().createElement(n.Form,{form:u,layout:"vertical"},r().createElement(n.Form.Item,{name:"enabled",valuePropName:"checked",label:i("Enabled")},r().createElement(n.Switch,null)),r().createElement(n.Form.Item,{name:"skillId",label:i("Skill"),rules:[{required:!0}]},r().createElement(n.Select,{showSearch:!0,optionFilterProp:"label",placeholder:i("Select a skill"),options:s.map(function(e){return{value:e.id,label:"".concat(e.title||e.name," (").concat(e.name,")")}})})),r().createElement(n.Form.Item,{name:"title",label:i("Title")},r().createElement(n.Input,{placeholder:i("Optional display title")})),r().createElement(n.Form.Item,{name:"templateKey",label:i("Review Template"),rules:[{required:!0}]},r().createElement(n.Select,{onChange:function(e){var t=eY(e);u.setFieldsValue({prompt:t.schema.prompt,schema:L(t.schema)})}},eZ.map(function(e){return r().createElement(n.Select.Option,{key:e.key,value:e.key},e.title," - ",e.description)}))),r().createElement(n.Form.Item,{name:"prompt",label:i("Prompt"),rules:[{required:!0}]},r().createElement(ts,{rows:3})),r().createElement(n.Form.Item,{name:"schema",label:i("Review Schema (JSON)"),rules:[{required:!0}],extra:i("Standard interaction schema. Supported types: confirm, form, select.")},r().createElement(ts,{rows:10,style:{fontFamily:"monospace",fontSize:13}})),r().createElement(n.Form.Item,{name:"config",label:i("Review Config (optional JSON)")},r().createElement(ts,{rows:4,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "maxRetries": 1\n}'})))))};function tm(e,t,r){return(tm=tg()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var a=new(Function.bind.apply(e,n));return r&&ty(a,r.prototype),a}).apply(null,arguments)}function tf(e){return(tf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ty(e,t){return(ty=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function th(e){var t="function"==typeof Map?new Map:void 0;return(th=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return tm(e,arguments,tf(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),ty(r,e)})(e)}function tg(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(tg=function(){return!!e})()}th(e.Plugin);var tb=function(){return r().createElement(p,null,r().createElement("div",{style:{padding:"0 24px 24px"}},r().createElement(n.Tabs,{defaultActiveKey:"rules",items:[{key:"rules",label:r().createElement("span",null,r().createElement(a.ApartmentOutlined,null)," Orchestration Rules"),children:r().createElement(D,null)},{key:"tracing",label:r().createElement("span",null,r().createElement(a.MonitorOutlined,null)," Execution Tracing"),children:r().createElement(U,null)},{key:"agent-runs",label:r().createElement("span",null,r().createElement(a.ProfileOutlined,null)," Agent Runs"),children:r().createElement(er,null)},{key:"harness-profiles",label:r().createElement("span",null,r().createElement(a.SettingOutlined,null)," Harness Profiles"),children:r().createElement(es,null)},{key:"skill-definitions",label:r().createElement("span",null,r().createElement(a.CodeOutlined,null)," Skill Hub Definitions"),children:r().createElement(eR,null)},{key:"skill-executions",label:r().createElement("span",null,r().createElement(a.HistoryOutlined,null)," Execution History"),children:r().createElement(eW,null)},{key:"skill-loop-settings",label:r().createElement("span",null,r().createElement(a.CheckCircleOutlined,null)," Skill Review Settings"),children:r().createElement(tp,null)},{key:"skill-metrics",label:r().createElement("span",null,r().createElement(a.BarChartOutlined,null)," Metrics"),children:r().createElement(eV,null)}]})))};function tv(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 tE(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function tS(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){tE(l,n,a,o,i,"next",e)}function i(e){tE(l,n,a,o,i,"throw",e)}o(void 0)})}}function tw(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return tv(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 tv(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 tk(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var tO=n.Typography.Paragraph,tx=n.Typography.Text,tI=function(e){var t,r,n;return null!=(t=null!=(r=null==e||null==(n=e.data)?void 0:n.data)?r:null==e?void 0:e.data)?t:e},tC=function(e){var t,a,l=e.toolCall,i=e.decisions,u=(0,o.useApp)().apiClient,c=l.args||{},s=c.runId,d=tw(r().useState(null),2),p=d[0],m=d[1],f=tw(r().useState(!1),2),y=f[0],h=f[1],g=tw(r().useState(!1),2),b=g[0],v=g[1],E=tw(r().useState(""),2),S=E[0],w=E[1],k="init"===l.invokeStatus||"interrupted"===l.invokeStatus;if(r().useEffect(function(){if(k&&s){var e=!0;return h(!0),u.request({url:"agentLoops:get",params:{filterByTk:s}}).then(function(t){e&&m(tI(t))}).catch(function(){e&&m(null)}).finally(function(){e&&h(!1)}),function(){e=!1}}},[u,k,s]),!k)return null;var O=(null==p?void 0:p.run)||{},x=(Array.isArray(t=(null==p?void 0:p.steps)||c.plan||[])?t:[]).map(function(e,t){return{id:e.id||e.planKey||t,planKey:e.planKey||e.key||e.id||"step_".concat(t+1),title:e.title||"Step ".concat(t+1),description:e.description||"",type:e.type||"tool",target:e.target||"",dependsOn:e.dependsOn||[]}}),I=O.goal||c.goal||"";return r().createElement(n.Card,{size:"small",style:{marginTop:8}},r().createElement(n.Space,{direction:"vertical",size:12,style:{width:"100%"}},r().createElement(n.Alert,{type:"info",showIcon:!0,message:"Review orchestrator plan",description:"Execution starts only after you approve this plan."}),r().createElement(n.Space,{size:8,wrap:!0},s&&r().createElement(n.Tag,{color:"blue"},"Run #",s),r().createElement(n.Tag,{color:"purple"},"Plan v",O.planVersion||c.planVersion||1),r().createElement(n.Tag,{color:"pending"===O.approvalStatus?"gold":"default"},O.approvalStatus||"pending"),(null==(a=O.metadata)?void 0:a.harnessTag)&&r().createElement(n.Tag,null,O.metadata.harnessTag)),I&&r().createElement(tO,{style:{marginBottom:0}},r().createElement(tx,{strong:!0},"Goal: "),I),r().createElement(n.List,{size:"small",loading:y,dataSource:x,locale:{emptyText:"No plan steps found."},renderItem:function(e,t){var a;return r().createElement(n.List.Item,null,r().createElement(n.Space,{direction:"vertical",size:2,style:{width:"100%"}},r().createElement(n.Space,{size:8,wrap:!0},r().createElement(tx,{strong:!0},t+1,". ",e.title),r().createElement(n.Tag,null,e.type),e.target&&r().createElement(n.Tag,{color:"green"},e.target)),e.description&&r().createElement(tx,{type:"secondary"},e.description),(null==(a=e.dependsOn)?void 0:a.length)>0&&r().createElement(tx,{type:"secondary",style:{fontSize:12}},"Depends on: ",e.dependsOn.join(", "))))}}),r().createElement(n.Input.TextArea,{rows:3,value:S,onChange:function(e){return w(e.target.value)},placeholder:"Optional rejection reason or requested changes"}),r().createElement(n.Space,{wrap:!0},r().createElement(n.Button,{type:"primary",loading:b,onClick:function(){return i.approve()}},"Accept & Run"),r().createElement(n.Button,{loading:b,onClick:function(){return tS(function(){var e;return tk(this,function(t){switch(t.label){case 0:if(!S.trim())return n.message.warning("Add feedback before requesting changes."),[2];v(!0),t.label=1;case 1:return t.trys.push([1,4,5,6]),[4,u.request({url:"agentLoops:requestPlanChanges",method:"post",data:{runId:s,feedback:S}})];case 2:return t.sent(),[4,i.reject(JSON.stringify({reason:"changes_requested",runId:s,feedback:S}))];case 3:return t.sent(),[3,6];case 4:return e=t.sent(),n.message.error((null==e?void 0:e.message)||"Failed to request plan changes"),[3,6];case 5:return v(!1),[7];case 6:return[2]}})})()}},"Request changes"),r().createElement(n.Button,{danger:!0,loading:b,onClick:function(){return tS(function(){var e;return tk(this,function(t){switch(t.label){case 0:if(s)return[3,2];return[4,i.reject("missing_run_id")];case 1:return t.sent(),[2];case 2:v(!0),t.label=3;case 3:return t.trys.push([3,6,7,8]),[4,u.request({url:"agentLoops:rejectPlan",method:"post",data:{runId:s,reason:S||"Plan rejected by user."}})];case 4:return t.sent(),[4,i.reject(JSON.stringify({reason:"plan_rejected",runId:s,feedback:S}))];case 5:return t.sent(),[3,8];case 6:return e=t.sent(),n.message.error((null==e?void 0:e.message)||"Failed to reject plan"),[3,8];case 7:return v(!1),[7];case 8:return[2]}})})()}},"Reject"))))};function tA(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}var tT=function(e,t){try{e.registerTools(t,{ui:{card:tC}})}catch(e){var r;if((null!=(r=Error)&&"u">typeof Symbol&&r[Symbol.hasInstance]?!r[Symbol.hasInstance](e):!(e instanceof r))||!e.message.includes("override existing keys"))throw e}};function tj(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function tP(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){tj(l,n,a,o,i,"next",e)}function i(e){tj(l,n,a,o,i,"throw",e)}o(void 0)})}}function tz(e,t,r){return(tz=tB()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var a=new(Function.bind.apply(e,n));return r&&tF(a,r.prototype),a}).apply(null,arguments)}function tD(e){return(tD=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function tF(e,t){return(tF=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function t_(e){var t="function"==typeof Map?new Map:void 0;return(t_=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return tz(e,arguments,tD(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),tF(r,e)})(e)}function tB(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(tB=function(){return!!e})()}function tM(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var tR=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=tD(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,tB()?Reflect.construct(e,t||[],tD(this).constructor):e.apply(this,t))}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&tF(r,e),t=[{key:"load",value:function(){return tP(function(){var e,t,r;return tM(this,function(n){switch(n.label){case 0:return e=this,this.app.use(e2),this.app.pluginSettingsManager.add("ai.orchestrator",{title:"Agent Orchestrator",icon:"ApartmentOutlined",Component:tb}),null==(r=this.app.eventBus)||null==(t=r.addEventListener)||t.call(r,"auth:tokenChanged",function(t){var r;(null==(r=t.detail)?void 0:r.token)&&tr(e.app)}),[4,this.registerSkillUiCards()];case 1:return n.sent(),[2]}})}).call(this)}},{key:"registerSkillUiCards",value:function(){return tP(function(){return tM(this,function(e){switch(e.label){case 0:var t,r;return[4,(t=this.app,(r=function(){var e,r;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(n){return(r=null==(e=t.aiManager)?void 0:e.toolsManager)&&tT(r,"orchestrator_execute_plan"),[2]})},function(){var e=this,t=arguments;return new Promise(function(n,a){var l=r.apply(e,t);function o(e){tA(l,n,a,o,i,"next",e)}function i(e){tA(l,n,a,o,i,"throw",e)}o(void 0)})})())];case 1:return e.sent(),[4,tr(this.app)];case 2:return e.sent(),[2]}})}).call(this)}}],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}(t_(e.Plugin));function tN(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 tU(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||tq(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 tq(e,t){if(e){if("string"==typeof e)return tN(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 tN(e,t)}}function tL(e){var r=tU((0,t.useState)([]),2),n=r[0],a=r[1],l=tU((0,t.useState)(!1),2),o=l[0],i=l[1],u=tU((0,t.useState)(null),2),c=u[0],s=u[1],d=(0,t.useRef)(null),p=(0,t.useCallback)(function(){d.current&&(d.current.close(),d.current=null),i(!1)},[]);return(0,t.useEffect)(function(){if(e){p(),a([]),s(null);var t=window.__nocobase_api_base_url__||"",r=new EventSource("".concat(t,"/api/agentLoopEventsStream:stream?runId=").concat(encodeURIComponent(String(e))));return d.current=r,r.onopen=function(){i(!0),s(null)},r.onmessage=function(e){try{var t=JSON.parse(e.data);a(function(e){return[t].concat(function(e){if(Array.isArray(e))return tN(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||tq(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())})}catch(e){}},r.onerror=function(){i(!1),s("SSE connection lost. Reconnecting...")},p}},[e,p]),{events:n,isConnected:o,error:c}}}(),m}()});