plugin-agent-orchestrator 1.0.19 → 1.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/hooks/useRunEventStream.d.ts +22 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.js +1 -1
- package/dist/externalVersion.js +6 -6
- package/dist/server/collections/agent-execution-spans.js +24 -0
- package/dist/server/collections/agent-loop-runs.js +36 -0
- package/dist/server/collections/orchestrator-config.js +14 -0
- package/dist/server/migrations/20260601000000-add-token-fields.d.ts +7 -0
- package/dist/server/migrations/20260601000000-add-token-fields.js +101 -0
- package/dist/server/plugin.js +47 -0
- package/dist/server/resources/agent-loop.js +33 -25
- package/dist/server/resources/tracing.js +5 -8
- package/dist/server/services/AgentHarness.d.ts +2 -0
- package/dist/server/services/AgentHarness.js +56 -90
- package/dist/server/services/AgentLoopController.d.ts +33 -20
- package/dist/server/services/AgentLoopController.js +164 -125
- package/dist/server/services/AgentLoopRepository.js +16 -34
- package/dist/server/services/AgentLoopService.d.ts +28 -18
- package/dist/server/services/AgentLoopService.js +7 -1
- package/dist/server/services/AgentPlannerService.js +5 -25
- package/dist/server/services/AgentRegistryService.d.ts +8 -0
- package/dist/server/services/AgentRegistryService.js +34 -24
- package/dist/server/services/CircuitBreaker.d.ts +40 -0
- package/dist/server/services/CircuitBreaker.js +120 -0
- package/dist/server/services/ContextAggregator.d.ts +45 -0
- package/dist/server/services/ContextAggregator.js +201 -0
- package/dist/server/services/ExecutionSpanService.js +2 -5
- package/dist/server/services/RunEventBus.d.ts +9 -0
- package/dist/server/services/RunEventBus.js +73 -0
- package/dist/server/services/TokenTracker.d.ts +62 -0
- package/dist/server/services/TokenTracker.js +173 -0
- package/dist/server/skill-hub/plugin.js +6 -6
- package/dist/server/skill-hub/tasks/SkillExecutionTask.js +6 -6
- package/dist/server/tools/agent-loop.d.ts +8 -8
- package/dist/server/tools/agent-loop.js +30 -63
- package/dist/server/tools/delegate-task.js +14 -72
- package/dist/server/tools/orchestrator-plan.d.ts +6 -6
- package/dist/server/tools/orchestrator-plan.js +10 -47
- package/dist/server/types.d.ts +47 -0
- package/dist/server/types.js +24 -0
- package/dist/server/utils/ctx-utils.d.ts +30 -0
- package/dist/server/utils/ctx-utils.js +152 -0
- package/dist/server/utils/logging.d.ts +6 -0
- package/dist/server/utils/logging.js +86 -0
- package/package.json +44 -44
- package/src/client/AgentRunsTab.tsx +764 -764
- package/src/client/HarnessProfilesTab.tsx +247 -247
- package/src/client/OrchestratorSettings.tsx +106 -106
- package/src/client/RulesTab.tsx +716 -716
- package/src/client/hooks/useRunEventStream.ts +76 -0
- package/src/client/index.tsx +2 -1
- package/src/client/plugin.tsx +27 -27
- package/src/client/skill-hub/components/LoopSettings.tsx +331 -331
- package/src/client/skill-hub/index.tsx +51 -51
- package/src/client/skill-hub/tools/InteractionSchemasProvider.tsx +99 -99
- package/src/client/skill-hub/tools/SkillHubCard.tsx +109 -109
- package/src/client/skill-hub/tools/loopTemplates.ts +52 -52
- package/src/client/skill-hub/tools/registerSkillLoopCards.ts +58 -58
- package/src/client/tools/PlanApprovalCard.tsx +175 -175
- package/src/client/tools/registerOrchestratorCards.ts +7 -7
- package/src/server/__tests__/agent-loop-controller.test.ts +375 -0
- package/src/server/__tests__/circuit-breaker.test.ts +169 -0
- package/src/server/__tests__/context-aggregator.test.ts +222 -0
- package/src/server/__tests__/parallel-execution.test.ts +318 -0
- package/src/server/__tests__/smoke.test.ts +120 -0
- package/src/server/collections/agent-execution-spans.ts +24 -0
- package/src/server/collections/agent-harness-profiles.ts +59 -59
- package/src/server/collections/agent-loop-events.ts +71 -71
- package/src/server/collections/agent-loop-runs.ts +38 -1
- package/src/server/collections/agent-loop-steps.ts +144 -144
- package/src/server/collections/orchestrator-config.ts +14 -0
- package/src/server/collections/skill-executions.ts +106 -106
- package/src/server/collections/skill-loop-configs.ts +65 -65
- package/src/server/migrations/20260524000000-add-agent-loop-fields-to-skill-executions.ts +30 -30
- package/src/server/migrations/20260524001000-add-plan-approval-and-harness-profiles.ts +142 -142
- package/src/server/migrations/20260601000000-add-token-fields.ts +89 -0
- package/src/server/plugin.ts +53 -0
- package/src/server/resources/agent-loop.ts +21 -12
- package/src/server/resources/tracing.ts +3 -7
- package/src/server/services/AgentHarness.ts +78 -116
- package/src/server/services/AgentLoopController.ts +197 -122
- package/src/server/services/AgentLoopRepository.ts +9 -25
- package/src/server/services/AgentLoopService.ts +13 -1
- package/src/server/services/AgentPlanValidator.ts +73 -73
- package/src/server/services/AgentPlannerService.ts +2 -25
- package/src/server/services/AgentRegistryService.ts +40 -31
- package/src/server/services/CircuitBreaker.ts +116 -0
- package/src/server/services/ContextAggregator.ts +239 -0
- package/src/server/services/ExecutionSpanService.ts +2 -4
- package/src/server/services/RunEventBus.ts +45 -0
- package/src/server/services/TokenTracker.ts +209 -0
- package/src/server/skill-hub/plugin.ts +898 -897
- package/src/server/skill-hub/tasks/SkillExecutionTask.ts +460 -458
- package/src/server/tools/agent-loop.ts +18 -57
- package/src/server/tools/delegate-task.ts +11 -93
- package/src/server/tools/orchestrator-plan.ts +26 -50
- package/src/server/tools/skill-execute.ts +160 -160
- package/src/server/types.ts +55 -0
- package/src/server/utils/ctx-utils.ts +118 -0
- package/src/server/utils/logging.ts +63 -0
package/dist/client/index.js
CHANGED
|
@@ -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("react"),require("@nocobase/client"),require("@ant-design/icons"),require("antd")):"function"==typeof define&&define.amd?define("plugin-agent-orchestrator",["react","@nocobase/client","@ant-design/icons","antd"],t):"object"==typeof exports?exports["plugin-agent-orchestrator"]=t(require("react"),require("@nocobase/client"),require("@ant-design/icons"),require("antd")):e["plugin-agent-orchestrator"]=t(e.react,e["@nocobase/client"],e["@ant-design/icons"],e.antd)}(self,function(e,t,n,r){return function(){"use strict";var a={482:function(e){e.exports=n},772:function(e){e.exports=t},721:function(e){e.exports=r},156:function(t){t.exports=e}},l={};function o(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}};return a[e](n,n.exports,o),n.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 n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return!function(){o.r(i),o.d(i,{default:function(){return tI}});var e=o(772),t=o(156),n=o.n(t),r=o(721),a=o(482),l=(0,t.createContext)({employees:[],employeeMap:new Map,skillsMap:new Map,loading:!1,refresh:function(){}}),u=function(t){var r=t.children,a=(0,e.useRequest)({url:"aiEmployees:list",params:{pageSize:200}}),o=a.data,i=a.loading,u=a.refresh,c=n().useMemo(function(){var e=((null==o?void 0:o.data)||[]).map(function(e){var t,n,r=Array.isArray(null==(t=e.skillSettings)?void 0:t.skills)?e.skillSettings.skills.map(function(e){return"string"==typeof e?e:null==e?void 0:e.name}).filter(function(e){return"string"==typeof e&&e.length>0}):[];return{username:e.username,nickname:e.nickname||e.username,about:null==(n=e.about)?void 0:n.substring(0,80),skills:r}}),t=new Map,n=new Map,r=!0,a=!1,l=void 0;try{for(var c,s=e[Symbol.iterator]();!(r=(c=s.next()).done);r=!0){var d=c.value;t.set(d.username,d.nickname),n.set(d.username,new Set(d.skills))}}catch(e){a=!0,l=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw l}}return{employees:e,employeeMap:t,skillsMap:n,loading:i,refresh:u}},[o,i,u]);return n().createElement(l.Provider,{value:c},r)},c=function(){return(0,t.useContext)(l)},s=function(e){var t=e.value,a=e.onChange,l=e.exclude,o=e.placeholder,i=c(),u=i.employees,s=i.loading,d=n().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 n().createElement(r.Select,{loading:s,options:d,value:t,onChange:a,placeholder:void 0===o?"Select AI Employee...":o,showSearch:!0,filterOption:function(e,t){var n,r;return(null!=(n=null==t?void 0:t.label)?n:"").toString().toLowerCase().includes(e.toLowerCase())||(null!=(r=null==t?void 0:t.value)?r:"").toString().toLowerCase().includes(e.toLowerCase())},optionRender:function(e){return n().createElement("div",null,n().createElement("div",{style:{fontWeight:500}},e.label),e.data.description&&n().createElement("div",{style:{fontSize:12,color:"#888"}},e.data.description))}})};function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function p(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){m(l,r,a,o,i,"next",e)}function i(e){m(l,r,a,o,i,"throw",e)}o(void 0)})}}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||h(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 y(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||h(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 h(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(e,t)}}function g(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var b=r.Typography.Text,v=function(e){return(e||"").replace(/[^a-zA-Z0-9_-]/g,"_")},E=function(e,t){return"delegate_".concat(v(e),"_to_").concat(v(t))},S=function(e){return"dispatch_subagents_".concat(v(e))},w=["orchestrator_plan_goal","orchestrator_execute_plan","orchestrator_status","orchestrator_cancel"],k=function(){var l,o,i,u,d,m,h=(0,e.useAPIClient)(),v=f((0,t.useState)(!1),2),k=v[0],O=v[1],x=f((0,t.useState)(null),2),C=x[0],I=x[1],A=f(r.Form.useForm(),1)[0],T=(0,e.useRequest)({url:"orchestratorConfig:list",params:{sort:["-createdAt"]}}),P=T.data,j=T.loading,z=T.refresh,D=(0,e.useRequest)({url:"ai:listAllEnabledModels"}),F=D.data,M=D.loading,B=(0,e.useRequest)({url:"agentHarnessProfiles:list",params:{filter:{enabled:!0},sort:["tag"],pageSize:100}}),R=B.data,U=B.loading,_=n().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]),N=n().useMemo(function(){var e,t=null!=(e=null==R?void 0:R.data)?e:R;return Array.isArray(t)?t:Array.isArray(null==t?void 0:t.data)?t.data:[]},[R]),L=c(),q=L.employeeMap,H=L.skillsMap,J=L.refresh,G=n().useMemo(function(){var e=null==P?void 0:P.data;return Array.isArray(e)?e:[]},[P]),K=(l=p(function(e,t){var n,a,l,o,i,u,c,s,d;return g(this,function(m){switch(m.label){case 0:return m.trys.push([0,6,,7]),[4,h.request({url:"aiEmployees:get",params:{filterByTk:e}})];case 1:if(!(o=null==(l=m.sent())||null==(n=l.data)?void 0:n.data))return r.message.error("Could not load AI employee."),[2];if(u=new Set((i=Array.isArray(null==(a=o.skillSettings)?void 0:a.skills)?o.skillSettings.skills:[]).map(function(e){return"string"==typeof e?e:null==e?void 0:e.name})),(c=t.filter(function(e){return!u.has(e)})).length)return[3,3];return r.message.info("Skills already present."),[4,J()];case 2:return m.sent(),[2];case 3:var p,f;return s=y(i).concat(y(c.map(function(e){return{name:e,autoCall:!1}}))),[4,h.request({url:"aiEmployees:update",method:"put",params:{filterByTk:e},data:{skillSettings:(p=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o.skillSettings||{}),f=f={skills:s},Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(f)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(f)).forEach(function(e){Object.defineProperty(p,e,Object.getOwnPropertyDescriptor(f,e))}),p)}})];case 4:return m.sent(),r.message.success("Added ".concat(c.length," skill").concat(c.length>1?"s":""," to ").concat(e,".")),[4,J()];case 5:return m.sent(),[3,7];case 6:return d=m.sent(),r.message.error("Auto-assign failed: ".concat((null==d?void 0:d.message)||"unknown error")),[3,7];case 7:return[2]}})}),function(e,t){return l.apply(this,arguments)}),W=(o=p(function(e,t){return g(this,function(n){switch(n.label){case 0:return[4,K(e,[t])];case 1:return n.sent(),[2]}})}),function(e,t){return o.apply(this,arguments)}),$=(i=p(function(e){return g(this,function(t){switch(t.label){case 0:return[4,W(e.leaderUsername,E(e.leaderUsername,e.subAgentUsername))];case 1:return t.sent(),[2]}})}),function(e){return i.apply(this,arguments)}),V=(u=p(function(e){return g(this,function(t){switch(t.label){case 0:return[4,W(e,S(e))];case 1:return t.sent(),[2]}})}),function(e){return u.apply(this,arguments)}),Z=n().useMemo(function(){var e=new Map,t=!0,n=!1,r=void 0;try{for(var a,l=G[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){n=!0,r=e}finally{try{t||null==l.return||l.return()}finally{if(n)throw r}}return e},[G]),Y=n().useMemo(function(){return Array.from(Z.entries()).filter(function(e){return f(e,2)[1].size>1}).map(function(e){var t=f(e,2);return{sub:t[0],leaders:Array.from(t[1])}})},[Z]),Q=n().useMemo(function(){var e=new Map,t=!0,n=!1,r=void 0;try{for(var a,l=G[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){n=!0,r=e}finally{try{t||null==l.return||l.return()}finally{if(n)throw r}}return Array.from(e.entries()).map(function(e){var t=f(e,2);return{leaderUsername:t[0],items:t[1]}})},[G]),X=function(e){I(e),e?A.setFieldsValue(e):(A.resetFields(),A.setFieldsValue({enabled:!0,maxDepth:1,timeout:12e4,recursionLimit:50,harnessTag:"default"})),O(!0)},ee=function(){O(!1),I(null)},et=(d=p(function(e){var t,n,a,l,o,i;return g(this,function(u){switch(u.label){case 0:if(e.leaderUsername===e.subAgentUsername)return r.message.error("Leader and Sub-Agent cannot be the same employee."),[2];u.label=1;case 1:if(u.trys.push([1,6,,7]),!C)return[3,3];return[4,h.request({url:"orchestratorConfig:update",method:"put",params:{filterByTk:C.id},data:e})];case 2:return u.sent(),r.message.success("Rule updated"),[3,5];case 3:return[4,h.request({url:"orchestratorConfig:create",method:"post",data:e})];case 4:u.sent(),r.message.success("Rule created"),u.label=5;case 5:return ee(),z(),[3,7];case 6:return i=(null==(t=u.sent())||null==(o=t.response)||null==(l=o.data)||null==(a=l.errors)||null==(n=a[0])?void 0:n.message)||t.message,r.message.error("Save failed: ".concat(i)),[3,7];case 7:return[2]}})}),function(e){return d.apply(this,arguments)}),en=(m=p(function(e){var t;return g(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,h.request({url:"orchestratorConfig:destroy",method:"delete",params:{filterByTk:e}})];case 1:return n.sent(),r.message.success("Rule deleted"),z(),[3,3];case 2:return t=n.sent(),r.message.error("Delete failed: ".concat(t.message)),[3,3];case 3:return[2]}})}),function(e){return m.apply(this,arguments)}),er=[{title:"Leader (Orchestrator)",dataIndex:"leaderUsername",key:"leaderUsername",render:function(e){return n().createElement(r.Tag,{color:"blue"},q.get(e)||e)}},{title:"",key:"arrow",width:50,render:function(){return n().createElement(a.SwapRightOutlined,{style:{color:"#999",fontSize:18}})}},{title:"Sub-Agent",dataIndex:"subAgentUsername",key:"subAgentUsername",render:function(e){return n().createElement(r.Tag,{color:"green"},q.get(e)||e)}},{title:"Harness",dataIndex:"harnessTag",key:"harnessTag",width:120,render:function(e){return n().createElement(r.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=_.find(function(e){return e.llmService===t.llmService}),l=a?a.llmServiceTitle:t.llmService;return n().createElement(r.Space,{direction:"vertical",size:0},n().createElement(b,{style:{fontSize:12}},l),n().createElement(b,{type:"secondary",style:{fontSize:12}},t.model))}return n().createElement(b,{type:"secondary",style:{fontSize:12}},"Inherited")}},{title:"Enabled",dataIndex:"enabled",key:"enabled",width:80,render:function(e,t){var a;return n().createElement(r.Switch,{checked:e,size:"small",onChange:(a=p(function(e){return g(this,function(n){switch(n.label){case 0:return[4,h.request({url:"orchestratorConfig:update",method:"put",params:{filterByTk:t.id},data:{enabled:e}})];case 1:return n.sent(),z(),[2]}})}),function(e){return a.apply(this,arguments)})})}},{title:"Skill",key:"skill",width:150,render:function(e,t){var l=E(t.leaderUsername,t.subAgentUsername),o=H.get(t.leaderUsername);return o?o.has(l)?n().createElement(r.Tag,{color:"success"},"Assigned"):n().createElement(r.Space,{size:4},n().createElement(r.Tag,{icon:n().createElement(a.WarningOutlined,null),color:"warning"},"Missing"),n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.ThunderboltOutlined,null),onClick:function(){return $(t)}},"Auto-add")):n().createElement(b,{type:"secondary",style:{fontSize:12}},"—")}},{title:"Actions",key:"actions",width:160,render:function(e,t){return n().createElement(r.Space,null,n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.EditOutlined,null),onClick:function(){return X(t)}},"Edit"),n().createElement(r.Popconfirm,{title:"Delete this rule?",onConfirm:function(){return en(t.id)}},n().createElement(r.Button,{type:"link",size:"small",danger:!0,icon:n().createElement(a.DeleteOutlined,null)},"Delete")))}}],ea=r.Form.useWatch("leaderUsername",A),el=n().useMemo(function(){return G.reduce(function(e,t){var n=H.get(t.leaderUsername);if(!n)return e;var r=E(t.leaderUsername,t.subAgentUsername);return n.has(r)?e:e+1},0)},[G,H]),eo=n().useMemo(function(){return Q.map(function(e){var t=H.get(e.leaderUsername);if(!t)return null;var n=S(e.leaderUsername);return t.has(n)?null:{leaderUsername:e.leaderUsername,toolName:n,count:e.items.length}}).filter(Boolean)},[Q,H]),ei=n().useMemo(function(){return Q.map(function(e){var t=H.get(e.leaderUsername);if(!t)return null;var n=w.filter(function(e){return!t.has(e)});return n.length?{leaderUsername:e.leaderUsername,missing:n}:null}).filter(Boolean)},[Q,H]);return n().createElement("div",null,n().createElement(r.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Orchestration Rules",description:n().createElement(b,{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.")}),el>0&&n().createElement(r.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(el," rule").concat(el>1?"s":""," missing required skill assignment"),description:n().createElement(b,{type:"secondary"},"The Leader employee hasn't added the corresponding"," ",n().createElement(b,{code:!0},"delegate_<leader>_to_<sub>")," tool to its skillSettings, so the LLM cannot actually call these sub-agents. Use the ",n().createElement("b",null,"Auto-add")," button in the Skill column to fix.")}),ei.length>0&&n().createElement(r.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(ei.length," leader").concat(ei.length>1?"s":""," missing orchestrator controller tools"),description:n().createElement(r.Space,{direction:"vertical",size:6},n().createElement(b,{type:"secondary"},"Leaders need the orchestrator controller tools to create an approval-first plan and execute it after the user accepts the card."),ei.map(function(e){var t=e.leaderUsername,l=e.missing;return n().createElement(r.Space,{key:t,size:8,wrap:!0},n().createElement(r.Tag,{color:"blue"},q.get(t)||t),n().createElement(b,{type:"secondary"},l.length," missing"),n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.ThunderboltOutlined,null),onClick:function(){return K(t,l)}},"Auto-add"))}))}),eo.length>0&&n().createElement(r.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(eo.length," leader").concat(eo.length>1?"s":""," missing dispatch skill assignment"),description:n().createElement(r.Space,{direction:"vertical",size:6},n().createElement(b,{type:"secondary"},"The fan-out tool lets a Leader dispatch multiple independent sub-tasks in one call. Add it to the Leader's skills to enable the new multi-agent flow."),eo.map(function(e){var t=e.leaderUsername,l=e.toolName,o=e.count;return n().createElement(r.Space,{key:t,size:8,wrap:!0},n().createElement(r.Tag,{color:"blue"},q.get(t)||t),n().createElement(b,{type:"secondary"},o," sub-agent",o>1?"s":""),n().createElement(b,{code:!0},l),n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.ThunderboltOutlined,null),onClick:function(){return V(t)}},"Auto-add"))}))}),Y.length>0&&n().createElement(r.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"Legacy delegate_to_<sub> alias is no longer registered for these sub-agents",description:n().createElement(r.Space,{direction:"vertical",size:2},Y.map(function(e){var t=e.sub,a=e.leaders;return n().createElement(b,{key:t,type:"secondary"},n().createElement(r.Tag,{color:"green"},q.get(t)||t),"has multiple leaders (",a.map(function(e){return q.get(e)||e}).join(", "),"). The legacy alias is dropped to avoid ambiguity — leaders must use ",n().createElement(b,{code:!0},"delegate_<leader>_to_<sub>")," ","in their skills.")}))}),n().createElement(r.Card,{bordered:!1},n().createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"flex-end"}},n().createElement(r.Button,{type:"primary",icon:n().createElement(a.PlusOutlined,null),onClick:function(){return X()}},"New Rule")),Q.length?n().createElement(r.Collapse,{bordered:!1,defaultActiveKey:Q.map(function(e){return e.leaderUsername}),items:Q.map(function(e){return{key:e.leaderUsername,label:n().createElement(r.Space,null,n().createElement(r.Tag,{color:"blue"},q.get(e.leaderUsername)||e.leaderUsername),n().createElement(b,{type:"secondary"},e.items.length," sub-agent",e.items.length>1?"s":""),eo.some(function(t){return t.leaderUsername===e.leaderUsername})&&n().createElement(r.Tag,{color:"warning"},"Dispatch missing")),children:n().createElement(r.Table,{rowKey:"id",loading:j,dataSource:e.items,columns:er,pagination:!1,size:"middle"})}})}):n().createElement(r.Table,{rowKey:"id",loading:j,dataSource:[],columns:er,pagination:!1,size:"middle",locale:{emptyText:n().createElement(r.Empty,{description:"No orchestration rules yet"})}})),n().createElement(r.Drawer,{title:C?"Edit Orchestration Rule":"New Orchestration Rule",width:480,onClose:ee,open:k,styles:{body:{paddingBottom:80}},extra:n().createElement(r.Space,null,n().createElement(r.Button,{onClick:ee},"Cancel"),n().createElement(r.Button,{onClick:function(){return A.submit()},type:"primary"},"Save"))},n().createElement(r.Form,{form:A,layout:"vertical",onFinish:et},n().createElement(r.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"},n().createElement(s,{placeholder:"Select Leader AI Employee..."})),n().createElement(r.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"},n().createElement(s,{placeholder:"Select Sub-Agent AI Employee...",exclude:ea})),n().createElement(r.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)"},n().createElement(r.InputNumber,{min:1,max:3,style:{width:"100%"}})),n().createElement(r.Form.Item,{name:"timeout",label:"Timeout (ms)",tooltip:"Maximum time in milliseconds for the sub-agent to complete its task"},n().createElement(r.InputNumber,{min:1e4,max:6e5,step:1e4,style:{width:"100%"}})),n().createElement(r.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."},n().createElement(r.InputNumber,{min:5,max:200,step:5,style:{width:"100%"}})),n().createElement(r.Form.Item,{name:"harnessTag",label:"Harness Profile",tooltip:"Profile tag used by plan approval, controller limits, and orchestration policy."},n().createElement(r.Select,{loading:U,options:[{label:"default",value:"default"}].concat(y(N.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}})))})),n().createElement(r.Form.Item,{name:"llmService",label:"Override LLM Service",tooltip:"Optional: Provider name. Leave empty to inherit from Leader."},n().createElement(r.Select,{allowClear:!0,placeholder:"Inherit from Leader",loading:M,options:_.map(function(e){return{label:e.llmServiceTitle||e.llmService,value:e.llmService}}),onChange:function(){return A.setFieldValue("model",void 0)}})),n().createElement(r.Form.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.llmService!==t.llmService}},function(){var e=A.getFieldValue("llmService"),t=_.find(function(t){return t.llmService===e}),a=Array.isArray(null==t?void 0:t.enabledModels)?t.enabledModels:[];return n().createElement(r.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"}]},n().createElement(r.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}})}))}),n().createElement(r.Form.Item,{name:"enabled",label:"Enabled",valuePropName:"checked"},n().createElement(r.Switch,null)))))};function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function x(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function C(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return O(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var I=r.Typography.Text,A=r.Typography.Paragraph,T=r.DatePicker.RangePicker,P=function(){var l,o,i,u=(0,e.useAPIClient)(),s=C((0,t.useState)(null),2),d=s[0],m=s[1],p=C((0,t.useState)(!1),2),f=p[0],y=p[1],h=C((0,t.useState)(1),2),g=h[0],b=h[1],v=C((0,t.useState)(20),2),E=v[0],S=v[1],w=C((0,t.useState)({}),2),k=w[0],O=w[1],P=c(),j=P.employees,z=P.employeeMap,D=(0,t.useMemo)(function(){var e={};return k.leader&&(e.leaderUsername=k.leader),k.subAgent&&(e.subAgentUsername=k.subAgent),k.status&&(e.status=k.status),k.range&&(k.range[0]||k.range[1])&&(e.createdAt={},k.range[0]&&(e.createdAt.$gte=k.range[0].toDate().toISOString()),k.range[1]&&(e.createdAt.$lte=k.range[1].toDate().toISOString())),{sort:["-createdAt"],page:g,pageSize:E,filter:e}},[g,E,k]),F=(0,e.useRequest)({url:"orchestratorTracing:list",params:D},{refreshDeps:[D]}),M=F.data,B=F.loading,R=F.refresh,U=(0,t.useMemo)(function(){var e=null==M?void 0:M.data;return Array.isArray(e)?e:[]},[M]),_=(0,t.useMemo)(function(){var e,t=null==M||null==(e=M.meta)?void 0:e.count;return"number"==typeof t?t:0},[M]),N=function(e){return e?e>=1e3?"".concat((e/1e3).toFixed(1),"s"):"".concat(e,"ms"):"-"},L=(l=function(e){var t,n;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:m(e),y(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),[4,u.request({url:"orchestratorTracing:get",params:{filterByTk:e.id,source:e.hasUnifiedTrace?"span":"log"}})];case 2:return m((null==(n=r.sent())||null==(t=n.data)?void 0:t.data)||(null==n?void 0:n.data)||e),[3,4];case 3:return y(!1),[7];case 4:return[2]}})},o=function(){var e=this,t=arguments;return new Promise(function(n,r){var a=l.apply(e,t);function o(e){x(a,n,r,o,i,"next",e)}function i(e){x(a,n,r,o,i,"throw",e)}o(void 0)})},function(e){return o.apply(this,arguments)}),q=function(e){O(function(t){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},t,e)}),b(1)},H=(0,t.useMemo)(function(){return j.map(function(e){return{label:e.nickname||e.username,value:e.username}})},[j]),J=!!(k.leader||k.subAgent||k.status||k.range&&(k.range[0]||k.range[1])),G=[{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 n().createElement(r.Tag,{color:"blue"},z.get(e)||e)}},{title:"Sub-Agent",dataIndex:"subAgentUsername",key:"subAgentUsername",render:function(e){return n().createElement(r.Tag,{color:"green"},z.get(e)||e)}},{title:"Task",dataIndex:"task",key:"task",render:function(e){return n().createElement(I,{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 n().createElement(r.Tag,{icon:"success"===e?n().createElement(a.CheckCircleOutlined,null):n().createElement(a.CloseCircleOutlined,null),color:"success"===e?"success":"error"},e)}},{title:"Duration",dataIndex:"durationMs",key:"durationMs",width:90,render:N},{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 n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.EyeOutlined,null),onClick:function(){return L(t)}},"Detail")}}];return n().createElement("div",null,n().createElement(r.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Execution Tracing",description:n().createElement(I,{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.")}),n().createElement(r.Card,{bordered:!1},n().createElement(r.Form,{layout:"inline",style:{marginBottom:16,rowGap:8,flexWrap:"wrap"}},n().createElement(r.Form.Item,{label:"Leader"},n().createElement(r.Select,{allowClear:!0,placeholder:"Any leader",style:{minWidth:180},options:H,value:k.leader,onChange:function(e){return q({leader:e})},showSearch:!0,optionFilterProp:"label"})),n().createElement(r.Form.Item,{label:"Sub-Agent"},n().createElement(r.Select,{allowClear:!0,placeholder:"Any sub-agent",style:{minWidth:180},options:H,value:k.subAgent,onChange:function(e){return q({subAgent:e})},showSearch:!0,optionFilterProp:"label"})),n().createElement(r.Form.Item,{label:"Status"},n().createElement(r.Select,{allowClear:!0,placeholder:"Any status",style:{minWidth:140},options:[{label:"Success",value:"success"},{label:"Error",value:"error"},{label:"Running",value:"running"}],value:k.status,onChange:function(e){return q({status:e})}})),n().createElement(r.Form.Item,{label:"Time"},n().createElement(T,{showTime:!0,value:k.range,onChange:function(e){return q({range:e})}})),n().createElement(r.Form.Item,null,n().createElement(r.Space,null,n().createElement(r.Button,{onClick:function(){O({}),b(1)},disabled:!J},"Reset"),n().createElement(r.Button,{icon:n().createElement(a.ReloadOutlined,null),onClick:R},"Refresh")))),n().createElement(r.Table,{rowKey:"id",loading:B,dataSource:U,columns:G,size:"middle",pagination:{current:g,pageSize:E,total:_,showSizeChanger:!0,pageSizeOptions:[10,20,50,100],showTotal:function(e){return"".concat(e," execution").concat(1===e?"":"s")},onChange:function(e,t){b(e),t&&t!==E&&S(t)}},locale:{emptyText:n().createElement(r.Empty,{description:J?"No executions match the current filters":"No delegation executions yet"})}})),n().createElement(r.Drawer,{title:"Execution Detail",width:820,onClose:function(){return m(null)},open:!!d},d&&n().createElement(r.Spin,{spinning:f},n().createElement(n().Fragment,null,n().createElement(r.Descriptions,{column:1,bordered:!0,size:"small",style:{marginBottom:16}},n().createElement(r.Descriptions.Item,{label:"Status"},n().createElement(r.Tag,{icon:"success"===d.status?n().createElement(a.CheckCircleOutlined,null):n().createElement(a.CloseCircleOutlined,null),color:"success"===d.status?"success":"error"},d.status)),n().createElement(r.Descriptions.Item,{label:"Leader"},n().createElement(r.Tag,{color:"blue"},z.get(d.leaderUsername)||d.leaderUsername)),n().createElement(r.Descriptions.Item,{label:"Sub-Agent"},n().createElement(r.Tag,{color:"green"},z.get(d.subAgentUsername)||d.subAgentUsername)),n().createElement(r.Descriptions.Item,{label:"Tool"},n().createElement(I,{code:!0},d.toolName)),n().createElement(r.Descriptions.Item,{label:"Depth"},null!=(i=d.depth)?i:0),n().createElement(r.Descriptions.Item,{label:"Duration"},N(d.durationMs)),n().createElement(r.Descriptions.Item,{label:"Time"},d.createdAt?new Date(d.createdAt).toLocaleString():"-")),n().createElement(r.Card,{title:"Task",size:"small",style:{marginBottom:16}},n().createElement(A,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},d.task||"No task description")),d.context&&n().createElement(r.Card,{title:"Context",size:"small",style:{marginBottom:16}},n().createElement(A,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},d.context)),n().createElement(r.Card,{title:"Execution Flow",size:"small",style:{marginBottom:16}},Array.isArray(d.trace)&&d.trace.length?n().createElement(r.Timeline,{items:d.trace.map(function(e,t){return{key:t,color:"error"===e.status?"red":"tool_call"===e.type?"blue":"green",children:n().createElement("div",null,n().createElement(r.Space,{direction:"vertical",size:2,style:{width:"100%"}},n().createElement(I,{strong:!0},e.title||e.type),n().createElement(I,{type:"secondary"},e.at?new Date(e.at).toLocaleString():""),e.toolName&&n().createElement(I,{code:!0},e.toolName),e.skillExecutionId&&n().createElement(I,{type:"secondary"},"Skill execution #",e.skillExecutionId),e.content&&n().createElement(A,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},e.content),e.args&&n().createElement(A,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:12}},JSON.stringify(e.args,null,2))))}})}):n().createElement(r.Empty,{description:"No execution flow captured"})),Array.isArray(d.messages)&&d.messages.length>0&&n().createElement(r.Collapse,{style:{marginBottom:16},items:[{key:"messages",label:"Raw messages (".concat(d.messages.length,")"),children:n().createElement(r.Space,{direction:"vertical",style:{width:"100%"}},d.messages.map(function(e){var t;return n().createElement(r.Card,{key:e.index,size:"small",title:"".concat(e.index+1,". ").concat(e.type)},n().createElement(A,{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&&n().createElement(A,{style:{whiteSpace:"pre-wrap",margin:"8px 0 0",fontSize:12}},JSON.stringify(e.toolCalls,null,2)))}))}]}),n().createElement(r.Card,{title:"Result",size:"small",style:{marginBottom:16,borderColor:"success"===d.status?"#b7eb8f":"#ffa39e"}},n().createElement(A,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13},ellipsis:{rows:20,expandable:!0}},d.result||d.error||"No result")),d.error&&n().createElement(r.Card,{title:"Error",size:"small",style:{borderColor:"#ffa39e"}},n().createElement(A,{type:"danger",style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},d.error))))))};function j(e,t){if(null==e||""===e)return t;if("string"!=typeof e)return e;var n=e.trim(),r=n.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),a=r?r[1].trim():n;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 z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=j(e,void 0),r=void 0===n?null==e||""===e?t:e:n;return null==r?"":"string"==typeof r?r:JSON.stringify(r,null,2)}function D(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=j(e,void 0),r=void 0===n?null==e||""===e?t:e:n;return"```json\n".concat(JSON.stringify(r,null,2),"\n```")}function F(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function M(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function B(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){M(l,r,a,o,i,"next",e)}function i(e){M(l,r,a,o,i,"throw",e)}o(void 0)})}}function R(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return F(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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.")}()}function U(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var _=r.Typography.Paragraph,N=r.Typography.Text,L=new Set(["succeeded","failed","rejected","canceled"]);function q(e){var t=e.status;return n().createElement(r.Tag,{icon:function(e){switch(e){case"succeeded":case"success":return n().createElement(a.CheckCircleOutlined,null);case"failed":case"error":return n().createElement(a.CloseCircleOutlined,null);case"waiting_user":case"waiting_plan_approval":case"needs_replan":return n().createElement(a.PauseCircleOutlined,null);case"approved":case"running":case"planning":return n().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 H(e){return e?new Date(e).toLocaleString():"-"}function J(e,t){if(!e)return"-";var n=new Date(e).getTime(),r=Math.max(0,(t?new Date(t).getTime():Date.now())-n);return r>=6e4?"".concat(Math.round(r/6e4),"m"):r>=1e3?"".concat((r/1e3).toFixed(1),"s"):"".concat(r,"ms")}function G(e){var t=e.value,r=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?n().createElement(_,{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:12},ellipsis:{rows:void 0===r?10:r,expandable:!0}},a):n().createElement(N,{type:"secondary"},"-")}var K=function(){var l,o,i,u,s=(0,e.useAPIClient)(),d=c(),m=d.employees,p=d.employeeMap,f=R((0,t.useState)({}),2),y=f[0],h=f[1],g=R((0,t.useState)(1),2),b=g[0],v=g[1],E=R((0,t.useState)(20),2),S=E[0],w=E[1],k=R((0,t.useState)(null),2),O=k[0],x=k[1],C=R((0,t.useState)(null),2),I=C[0],A=C[1],T=R((0,t.useState)(!1),2),P=T[0],z=T[1],D=R((0,t.useState)(!1),2),F=D[0],M=D[1],K=(0,t.useMemo)(function(){var e={};return y.leader&&(e.leaderUsername=y.leader),y.status&&(e.status=y.status),{sort:["-createdAt"],page:b,pageSize:S,filter:e}},[y,b,S]),W=(0,e.useRequest)({url:"agentLoops:list",params:K},{refreshDeps:[K]}),$=W.data,V=W.loading,Z=W.refresh,Y=(0,t.useMemo)(function(){var e=null==$?void 0:$.data;return Array.isArray(e)?e:[]},[$]),Q=(0,t.useMemo)(function(){var e,t=null==$||null==(e=$.meta)?void 0:e.count;return"number"==typeof t?t:0},[$]),X=(0,t.useMemo)(function(){return m.map(function(e){return{label:e.nickname||e.username,value:e.username}})},[m]),ee=(l=B(function(e,t){var n,r;return U(this,function(a){switch(a.label){case 0:x(t||O||{id:e}),z(!0),a.label=1;case 1:return a.trys.push([1,,3,4]),[4,s.request({url:"agentLoops:get",params:{filterByTk:e}})];case 2:return A((null==(r=a.sent())||null==(n=r.data)?void 0:n.data)||(null==r?void 0:r.data)||null),[3,4];case 3:return z(!1),[7];case 4:return[2]}})}),function(e,t){return l.apply(this,arguments)}),et=function(e){h(function(t){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},t,e)}),v(1)},en=(o=B(function(e,t){var n,a;return U(this,function(l){switch(l.label){case 0:M(!0),l.label=1;case 1:return l.trys.push([1,4,5,6]),[4,s.request({url:"cancel"===e?"agentLoops:cancel":"agentLoops:resume",method:"POST",data:"cancel"===e?{runId:t}:{runId:t,stepId:null==I||null==(n=I.run)?void 0:n.currentStepId,approved:!0}})];case 2:return l.sent(),r.message.success("cancel"===e?"Run canceled":"Run resumed"),Z(),[4,ee(t)];case 3:return l.sent(),[3,6];case 4:return a=l.sent(),r.message.error((null==a?void 0:a.message)||"Failed to ".concat(e," run")),[3,6];case 5:return M(!1),[7];case 6:return[2]}})}),function(e,t){return o.apply(this,arguments)}),er=(i=B(function(e){var t,n,a;return U(this,function(l){switch(l.label){case 0:n=(null==I||null==(t=I.run)?void 0:t.id)||(null==O?void 0:O.id),M(!0),l.label=1;case 1:return l.trys.push([1,5,6,7]),[4,s.request({url:"agentLoops:retryStep",method:"POST",data:{stepId:e}})];case 2:if(l.sent(),r.message.success("Step queued for retry"),Z(),!n)return[3,4];return[4,ee(n)];case 3:l.sent(),l.label=4;case 4:return[3,7];case 5:return a=l.sent(),r.message.error((null==a?void 0:a.message)||"Failed to retry step"),[3,7];case 6:return M(!1),[7];case 7:return[2]}})}),function(e){return i.apply(this,arguments)}),ea=[{title:"Time",dataIndex:"createdAt",key:"createdAt",width:170,render:H},{title:"Leader",dataIndex:"leaderUsername",key:"leaderUsername",width:160,render:function(e){return n().createElement(r.Tag,{color:"blue"},p.get(e)||e||"-")}},{title:"Goal",dataIndex:"goal",key:"goal",render:function(e){return n().createElement(N,{ellipsis:!0,style:{maxWidth:380}},e||"-")}},{title:"Status",dataIndex:"status",key:"status",width:130,render:function(e){return n().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 J(t.startedAt||t.createdAt,t.endedAt)}},{title:"",key:"actions",width:90,render:function(e,t){return n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.EyeOutlined,null),onClick:function(){return ee(t.id,t)}},"Detail")}}],el=Array.isArray(null==I?void 0:I.steps)?I.steps:[],eo=Array.isArray(null==I?void 0:I.events)?I.events:[],ei=Array.isArray(null==I?void 0:I.spans)?I.spans:[],eu=Array.isArray(null==I?void 0:I.skillExecutions)?I.skillExecutions:[],ec=(null==I?void 0:I.run)||O,es=!!(y.leader||y.status),ed=[{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 n().createElement(q,{status:e})}},{title:"Type",dataIndex:"type",key:"type",width:110,render:function(e){return n().createElement(r.Tag,null,e)}},{title:"Step",key:"step",render:function(e,t){return n().createElement(r.Space,{direction:"vertical",size:2,style:{width:"100%"}},n().createElement(N,{strong:!0},t.title||t.planKey),t.description&&n().createElement(N,{type:"secondary"},t.description),t.target&&n().createElement(N,{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 n().createElement(r.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)?n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.RedoOutlined,null),loading:F,onClick:function(){return er(t.id)}},"Retry"):null}}];return n().createElement("div",null,n().createElement(r.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Agent Runs",description:n().createElement(N,{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.")}),n().createElement(r.Card,{bordered:!1},n().createElement(r.Form,{layout:"inline",style:{marginBottom:16,rowGap:8,flexWrap:"wrap"}},n().createElement(r.Form.Item,{label:"Leader"},n().createElement(r.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:"Any leader",style:{minWidth:180},options:X,value:y.leader,onChange:function(e){return et({leader:e})}})),n().createElement(r.Form.Item,{label:"Status"},n().createElement(r.Select,{allowClear:!0,placeholder:"Any status",style:{minWidth:160},value:y.status,onChange:function(e){return et({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"}]})),n().createElement(r.Form.Item,null,n().createElement(r.Space,null,n().createElement(r.Button,{onClick:function(){h({}),v(1)},disabled:!es},"Reset"),n().createElement(r.Button,{icon:n().createElement(a.ReloadOutlined,null),onClick:Z},"Refresh")))),n().createElement(r.Table,{rowKey:"id",loading:V,dataSource:Y,columns:ea,pagination:{current:b,pageSize:S,total:Q,showSizeChanger:!0,pageSizeOptions:[10,20,50,100],showTotal:function(e){return"".concat(e," run").concat(1===e?"":"s")},onChange:function(e,t){v(e),t&&t!==S&&w(t)}},locale:{emptyText:n().createElement(r.Empty,{description:es?"No runs match the current filters":"No agent runs yet"})}})),n().createElement(r.Drawer,{title:"Agent Run Detail",width:980,onClose:function(){x(null),A(null)},open:!!O},ec&&n().createElement(r.Spin,{spinning:P},n().createElement(r.Space,{direction:"vertical",size:16,style:{width:"100%"}},n().createElement(r.Space,{wrap:!0},n().createElement(r.Button,{icon:n().createElement(a.ReloadOutlined,null),onClick:function(){return ee(ec.id)},loading:P},"Refresh"),"waiting_user"===ec.status&&n().createElement(r.Button,{type:"primary",icon:n().createElement(a.PlayCircleOutlined,null),loading:F,onClick:function(){return en("resume",ec.id)}},"Resume"),!L.has(ec.status)&&n().createElement(r.Popconfirm,{title:"Cancel this run?",onConfirm:function(){return en("cancel",ec.id)}},n().createElement(r.Button,{danger:!0,icon:n().createElement(a.StopOutlined,null),loading:F},"Cancel run"))),n().createElement(r.Descriptions,{bordered:!0,size:"small",column:2},n().createElement(r.Descriptions.Item,{label:"Status"},n().createElement(q,{status:ec.status})),n().createElement(r.Descriptions.Item,{label:"Leader"},n().createElement(r.Tag,{color:"blue"},p.get(ec.leaderUsername)||ec.leaderUsername||"-")),n().createElement(r.Descriptions.Item,{label:"Root run"},n().createElement(N,{code:!0},ec.rootRunId||"-")),n().createElement(r.Descriptions.Item,{label:"Current step"},n().createElement(N,{code:!0},ec.currentStepId||"-")),n().createElement(r.Descriptions.Item,{label:"Iterations"},ec.iterationCount||0),n().createElement(r.Descriptions.Item,{label:"Approval"},ec.approvalStatus||"-"),n().createElement(r.Descriptions.Item,{label:"Plan version"},ec.planVersion||"-"),n().createElement(r.Descriptions.Item,{label:"Harness"},(null==(u=ec.metadata)?void 0:u.harnessTag)||"-"),n().createElement(r.Descriptions.Item,{label:"Duration"},J(ec.startedAt||ec.createdAt,ec.endedAt)),n().createElement(r.Descriptions.Item,{label:"Started"},H(ec.startedAt||ec.createdAt)),n().createElement(r.Descriptions.Item,{label:"Ended"},H(ec.endedAt))),n().createElement(r.Card,{title:"Goal",size:"small"},n().createElement(G,{value:ec.goal,rows:6})),n().createElement(r.Card,{title:"Plan",size:"small",extra:n().createElement(a.BranchesOutlined,null)},n().createElement(r.Table,{rowKey:"id",size:"small",dataSource:el,columns:ed,pagination:!1,expandable:{expandedRowRender:function(e){return n().createElement(r.Space,{direction:"vertical",size:12,style:{width:"100%"}},n().createElement(r.Card,{size:"small",title:"Input"},n().createElement(G,{value:e.input,rows:8})),n().createElement(r.Card,{size:"small",title:"Output"},n().createElement(G,{value:e.output,rows:8})),e.approval&&Object.keys(e.approval).length>0&&n().createElement(r.Card,{size:"small",title:"Approval"},n().createElement(G,{value:e.approval,rows:8})),e.error&&n().createElement(r.Card,{size:"small",title:"Error",style:{borderColor:"#ffa39e"}},n().createElement(G,{value:e.error,rows:8})))}},locale:{emptyText:n().createElement(r.Empty,{description:"No plan steps"})}})),n().createElement(r.Card,{title:"Event Timeline",size:"small"},eo.length?n().createElement(r.Timeline,{items:eo.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:n().createElement(r.Space,{direction:"vertical",size:2,style:{width:"100%"}},n().createElement(r.Space,{wrap:!0},n().createElement(N,{strong:!0},e.title||e.type),n().createElement(q,{status:e.status}),e.stepId&&n().createElement(N,{type:"secondary"},"step #",e.stepId)),n().createElement(N,{type:"secondary"},H(e.createdAt)),e.content&&n().createElement(G,{value:e.content,rows:4}))}})}):n().createElement(r.Empty,{description:"No events captured"})),n().createElement(r.Collapse,{items:[{key:"spans",label:"Linked spans (".concat(ei.length,")"),children:ei.length?n().createElement(r.Table,{rowKey:"id",size:"small",dataSource:ei,pagination:!1,columns:[{title:"Type",dataIndex:"type",key:"type",width:110,render:function(e){return n().createElement(r.Tag,null,e)}},{title:"Status",dataIndex:"status",key:"status",width:110,render:function(e){return n().createElement(q,{status:e})}},{title:"Title",dataIndex:"title",key:"title"},{title:"Tool",dataIndex:"toolName",key:"toolName",render:function(e){return e?n().createElement(N,{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||"-"}}]}):n().createElement(r.Empty,{description:"No linked spans"})},{key:"skills",label:"Skill executions (".concat(eu.length,")"),children:eu.length?n().createElement(r.Space,{direction:"vertical",size:12,style:{width:"100%"}},eu.map(function(e){var t=j(e.outputFiles,[]);return n().createElement(r.Card,{key:e.id,size:"small",title:n().createElement(r.Space,{wrap:!0},n().createElement(N,null,"Skill execution #",e.id),n().createElement(q,{status:e.status}),e.agentLoopStepId&&n().createElement(N,{type:"secondary"},"step #",e.agentLoopStepId))},n().createElement(r.Space,{direction:"vertical",size:8,style:{width:"100%"}},n().createElement(r.Descriptions,{size:"small",column:2},n().createElement(r.Descriptions.Item,{label:"Duration"},e.durationMs?"".concat(e.durationMs,"ms"):"-"),n().createElement(r.Descriptions.Item,{label:"Created"},H(e.createdAt))),n().createElement(r.Collapse,{size:"small",items:[{key:"stdout",label:"stdout",children:n().createElement(G,{value:e.stdout,rows:10})},{key:"stderr",label:"stderr",children:n().createElement(G,{value:e.stderr,rows:10})},{key:"files",label:"files (".concat(t.length,")"),children:t.length?n().createElement(r.Space,{direction:"vertical"},t.map(function(t,r){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(r+1),a?n().createElement("a",{key:r,href:a,target:"_blank",rel:"noreferrer"},l):n().createElement(N,{key:r},l)})):n().createElement(r.Empty,{description:"No files"})}]})))})):n().createElement(r.Empty,{description:"No linked skill executions"})}]}),(ec.finalAnswer||ec.summary)&&n().createElement(r.Card,{title:"Final Output",size:"small"},ec.summary&&n().createElement(_,{style:{whiteSpace:"pre-wrap",marginBottom:12}},n().createElement(N,{strong:!0},"Summary: "),ec.summary),n().createElement(G,{value:ec.finalAnswer,rows:16}))))))};function W(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function $(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function V(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){$(l,r,a,o,i,"next",e)}function i(e){$(l,r,a,o,i,"throw",e)}o(void 0)})}}function Z(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return W(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return W(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 Y(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var Q=r.Typography.Text,X=function(e){var t=String(e||"").trim();return t?JSON.parse(t):{}},ee=function(){var t,l,o=(0,e.useAPIClient)(),i=Z(n().useState(!1),2),u=i[0],c=i[1],s=Z(n().useState(null),2),d=s[0],m=s[1],p=Z(r.Form.useForm(),1)[0],f=(0,e.useRequest)({url:"agentHarnessProfiles:list",params:{sort:["tag"],pageSize:100}}),y=f.data,h=f.loading,g=f.refresh,b=n().useMemo(function(){var e=null==y?void 0:y.data;return Array.isArray(e)?e:[]},[y]),v=function(e){var t,n;m(e||null),p.resetFields(),p.setFieldsValue(e?(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e),n=n={settingsText:JSON.stringify(e.settings||{},null,2)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t):{tag:"",title:"",description:"",enabled:!0,settingsText:JSON.stringify({requirePlanApproval:!0,allowSubAgents:!0,allowToolCalls:!0,maxParallelSubAgents:3,maxControllerSteps:100},null,2)}),c(!0)},E=function(){c(!1),m(null)},S=(t=V(function(e){var t,n,a,l,i,u,c,s;return Y(this,function(m){switch(m.label){case 0:try{t=X(e.settingsText)}catch(e){return r.message.error("Settings JSON is invalid: ".concat((null==e?void 0:e.message)||e)),[2]}n={tag:String(e.tag||"").trim(),title:e.title,description:e.description,enabled:!1!==e.enabled,settings:t},m.label=1;case 1:if(m.trys.push([1,6,,7]),!d)return[3,3];return[4,o.request({url:"agentHarnessProfiles:update",method:"put",params:{filterByTk:d.id},data:n})];case 2:return m.sent(),r.message.success("Harness profile updated"),[3,5];case 3:return[4,o.request({url:"agentHarnessProfiles:create",method:"post",data:n})];case 4:m.sent(),r.message.success("Harness profile created"),m.label=5;case 5:return E(),g(),[3,7];case 6:return s=(null==(a=m.sent())||null==(c=a.response)||null==(u=c.data)||null==(i=u.errors)||null==(l=i[0])?void 0:l.message)||(null==a?void 0:a.message)||"unknown error",r.message.error("Save failed: ".concat(s)),[3,7];case 7:return[2]}})}),function(e){return t.apply(this,arguments)}),w=(l=V(function(e){var t;return Y(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,o.request({url:"agentHarnessProfiles:destroy",method:"delete",params:{filterByTk:e}})];case 1:return n.sent(),r.message.success("Harness profile deleted"),g(),[3,3];case 2:return t=n.sent(),r.message.error("Delete failed: ".concat((null==t?void 0:t.message)||"unknown error")),[3,3];case 3:return[2]}})}),function(e){return l.apply(this,arguments)}),k=[{title:"Tag",dataIndex:"tag",key:"tag",width:140,render:function(e){return n().createElement(r.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,t){var a;return n().createElement(r.Switch,{size:"small",checked:!1!==e,onChange:(a=V(function(e){return Y(this,function(n){switch(n.label){case 0:return[4,o.request({url:"agentHarnessProfiles:update",method:"put",params:{filterByTk:t.id},data:{enabled:e}})];case 1:return n.sent(),g(),[2]}})}),function(e){return a.apply(this,arguments)})})}},{title:"Settings",key:"settings",render:function(e,t){return n().createElement(r.Space,{size:4,wrap:!0},Object.entries(t.settings||{}).slice(0,5).map(function(e){var t=Z(e,2),a=t[0],l=t[1];return n().createElement(r.Tag,{key:a},a,": ",String(l))}))}},{title:"Actions",key:"actions",width:150,render:function(e,t){return n().createElement(r.Space,null,n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.EditOutlined,null),onClick:function(){return v(t)}},"Edit"),n().createElement(r.Popconfirm,{title:"Delete this profile?",onConfirm:function(){return w(t.id)}},n().createElement(r.Button,{type:"link",size:"small",danger:!0,icon:n().createElement(a.DeleteOutlined,null)},"Delete")))}}];return n().createElement("div",null,n().createElement(r.Card,{bordered:!1},n().createElement(r.Space,{direction:"vertical",size:16,style:{width:"100%"}},n().createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:16}},n().createElement(Q,{type:"secondary"},"Harness profiles are selected by orchestration rules through the harnessTag field."),n().createElement(r.Button,{type:"primary",icon:n().createElement(a.PlusOutlined,null),onClick:function(){return v()}},"New Profile")),n().createElement(r.Table,{rowKey:"id",loading:h,dataSource:b,columns:k,pagination:!1}))),n().createElement(r.Drawer,{title:d?"Edit Harness Profile":"New Harness Profile",width:560,open:u,onClose:E,extra:n().createElement(r.Space,null,n().createElement(r.Button,{onClick:E},"Cancel"),n().createElement(r.Button,{type:"primary",onClick:function(){return p.submit()}},"Save"))},n().createElement(r.Form,{form:p,layout:"vertical",onFinish:S},n().createElement(r.Form.Item,{name:"tag",label:"Tag",rules:[{required:!0,message:"Tag is required"}]},n().createElement(r.Input,{placeholder:"default",disabled:(null==d?void 0:d.tag)==="default"})),n().createElement(r.Form.Item,{name:"title",label:"Title"},n().createElement(r.Input,null)),n().createElement(r.Form.Item,{name:"description",label:"Description"},n().createElement(r.Input.TextArea,{rows:3})),n().createElement(r.Form.Item,{name:"settingsText",label:"Settings JSON",rules:[{required:!0,message:"Settings JSON is required"}]},n().createElement(r.Input.TextArea,{rows:12,spellCheck:!1})),n().createElement(r.Form.Item,{name:"enabled",label:"Enabled",valuePropName:"checked"},n().createElement(r.Switch,null)))))};function et(){var n=(0,e.useApp)();return(0,t.useCallback)(function(e,t){return n.i18n.t(e,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ns:["plugin-agent-orchestrator","client"]},t))},[n.i18n])}function en(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function er(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function ea(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function el(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function eo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return en(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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.")}()}var ei=r.Input.TextArea,eu=r.theme.useToken,ec=function(l){var o,i,u=l.skill,c=l.onClose,s=(0,e.useAPIClient)(),d=et(),m=eu().token,p=eo(r.Form.useForm(),1)[0],f=!!u,y=eo((0,t.useState)([]),2),h=y[0],g=y[1];(0,t.useEffect)(function(){f||s.request({url:"skillHub:listTemplates"}).then(function(e){var t,n=e.data,r=(null==n||null==(t=n.data)?void 0:t.data)||(null==n?void 0:n.data)||n;r&&r.data&&Array.isArray(r.data)&&(r=r.data),g(Array.isArray(r)?r:[])}).catch(function(){g([])})},[s,f]),(0,t.useEffect)(function(){u?p.setFieldsValue(el(ea({},u),{inputSchema:z(u.inputSchema,null),interactionSchema:z(u.interactionSchema,null),packages:z(u.packages,[])})):(p.resetFields(),p.setFieldsValue({storageType:"database",language:"python",timeoutSeconds:60,maxOutputSizeMb:50,enabled:!0,toolScope:"CUSTOM",autoCall:!1,packages:"[]"}))},[u,p]);var b=r.Form.useWatch("storageType",p)||"database";(0,t.useEffect)(function(){if("plugin"===b){var e=p.getFieldValue("pluginSource");if(e){var t=h.find(function(t){return t.name===e});t&&p.setFieldsValue({name:t.name,title:t.title,description:t.description,language:t.language,instructions:t.instructions||"",inputSchema:z(t.inputSchema,null),interactionSchema:z(t.interactionSchema,null),packages:z(t.packages,[]),timeoutSeconds:t.timeoutSeconds||60,maxOutputSizeMb:t.maxOutputSizeMb||50,toolScope:t.toolScope||"CUSTOM",storageUrl:t.storageUrl})}}},[b,h,p]);var v=function(e){var t,n=h.find(function(t){return t.name===e});n&&("plugin"===b?p.setFieldsValue({name:n.name,title:n.title,description:n.description||"",language:n.language||"python",instructions:n.instructions||"",inputSchema:z(n.inputSchema,null),interactionSchema:z(n.interactionSchema,null),packages:z(n.packages,[]),timeoutSeconds:n.timeoutSeconds||60,maxOutputSizeMb:n.maxOutputSizeMb||50,toolScope:n.toolScope||"CUSTOM",storageUrl:n.storageUrl}):p.setFieldsValue({name:n.name,title:n.title,description:n.description||"",instructions:n.instructions||"",language:n.language||"python",codeTemplate:n.codeTemplate||"",inputSchema:z(n.inputSchema,null),interactionSchema:z(n.interactionSchema,null),packages:z(n.packages,[]),timeoutSeconds:n.timeoutSeconds||60,maxOutputSizeMb:n.maxOutputSizeMb||50,toolScope:n.toolScope||"CUSTOM",enabled:null==(t=n.enabled)||t}),r.message.success(d("Template applied")))},E=(o=function(){var e,t,n;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:return a.trys.push([0,6,,7]),[4,p.validateFields()];case 1:e=a.sent();try{e.inputSchema&&JSON.parse(e.inputSchema)}catch(e){return r.message.error(d("Invalid JSON in Input Schema")),[2]}try{e.interactionSchema&&JSON.parse(e.interactionSchema)}catch(e){return r.message.error(d("Invalid JSON in Interaction Schema")),[2]}try{e.packages&&JSON.parse(e.packages)}catch(e){return r.message.error(d("Invalid JSON in Packages")),[2]}if(t=el(ea({},e),{inputSchema:e.inputSchema?D(e.inputSchema):null,interactionSchema:e.interactionSchema?D(e.interactionSchema):null,packages:D(e.packages||[],[])}),!f)return[3,3];return[4,s.request({url:"skillDefinitions:update",method:"POST",params:{filterByTk:u.id},data:t})];case 2:return a.sent(),[3,5];case 3:return[4,s.request({url:"skillDefinitions:create",method:"POST",data:t})];case 4:a.sent(),a.label=5;case 5:return r.message.success(d(f?"Skill updated":"Skill created")),c(!0),[3,7];case 6:if(null==(n=a.sent())?void 0:n.errorFields)return[2];return r.message.error(d("Failed to save skill")),[3,7];case 7:return[2]}})},i=function(){var e=this,t=arguments;return new Promise(function(n,r){var a=o.apply(e,t);function l(e){er(a,n,r,l,i,"next",e)}function i(e){er(a,n,r,l,i,"throw",e)}l(void 0)})},function(){return i.apply(this,arguments)});return n().createElement(r.Modal,{open:!0,title:f?d("Edit Skill"):d("New Skill"),onCancel:function(){return c()},width:720,destroyOnClose:!0,footer:null,styles:{body:{padding:0,display:"flex",flexDirection:"column",maxHeight:"calc(100vh - 120px)"}},style:{top:40}},n().createElement(r.Form,{form:p,layout:"vertical",size:"middle",component:"div",style:{display:"flex",flexDirection:"column",maxHeight:"calc(100vh - 120px)"}},n().createElement(r.Form.Item,{name:"storageUrl",hidden:!0},n().createElement(r.Input,null)),n().createElement("div",{style:{flexShrink:0,background:m.colorBgContainer,borderBottom:"1px solid ".concat(m.colorBorderSecondary),padding:"12px 24px",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12}},n().createElement(r.Form.Item,{name:"storageType",noStyle:!0},n().createElement(r.Radio.Group,{optionType:"button",buttonStyle:"solid",size:"small"},n().createElement(r.Radio,{value:"database"},d("Database Editor")),n().createElement(r.Radio,{value:"local"},d("ZIP Package")),n().createElement(r.Radio,{value:"plugin",disabled:!Array.isArray(h)||0===h.length},d("Bind to Plugin")))),n().createElement(r.Space,{size:16},n().createElement(r.Space,{size:4},n().createElement("span",{style:{fontSize:12,color:m.colorTextSecondary}},d("Enabled")),n().createElement(r.Form.Item,{name:"enabled",valuePropName:"checked",noStyle:!0},n().createElement(r.Switch,{size:"small"}))),n().createElement(r.Space,{size:4},n().createElement("span",{style:{fontSize:12,color:m.colorTextSecondary}},d("Auto Call")),n().createElement(r.Form.Item,{name:"autoCall",valuePropName:"checked",noStyle:!0},n().createElement(r.Switch,{size:"small"})))),n().createElement(r.Space,null,n().createElement(r.Button,{size:"small",icon:n().createElement(a.CloseOutlined,null),onClick:function(){return c()}},d("Cancel")),n().createElement(r.Button,{type:"primary",size:"small",icon:n().createElement(a.SaveOutlined,null),onClick:E},f?d("Save"):d("Create")))),n().createElement("div",{style:{flex:1,overflowY:"auto",padding:"16px 24px 24px",minHeight:0}},"database"===b&&!f&&Array.isArray(h)&&h.length>0&&n().createElement(r.Form.Item,{label:d("Import Template to Pre-fill code (Optional)"),style:{marginBottom:24}},n().createElement(r.Select,{placeholder:d("Select a template to pre-fill"),onChange:v,allowClear:!0},h.map(function(e){return n().createElement(r.Select.Option,{key:e.name,value:e.name},e.title," (",e.pluginSource||e.name,")")}))),"plugin"===b&&n().createElement(n().Fragment,null,n().createElement(r.Form.Item,{name:"inputSchema",hidden:!0},n().createElement(ei,null)),n().createElement(r.Form.Item,{name:"packages",hidden:!0},n().createElement(r.Input,null)),n().createElement(r.Form.Item,{name:"pluginSource",label:d("Select Plugin Skill"),rules:[{required:!0}],style:{marginBottom:24,padding:12,background:"#e6f4ff",borderRadius:8,border:"1px solid #91caff"},extra:n().createElement("div",{style:{fontSize:12,color:"#1677ff",marginTop:8}},d("Binding dynamically delegates execution to the plugin logic. Code, Language, and Schemas are managed externally."))},n().createElement(r.Select,{placeholder:d("Choose an enabled plugin skill to attach"),onChange:v,allowClear:!0},Array.isArray(h)&&h.map(function(e){return n().createElement(r.Select.Option,{key:e.name,value:e.name},e.title," (",e.pluginSource||e.name,")")})))),n().createElement(r.Form.Item,{name:"name",label:d("Name (Internal Identifier)"),rules:[{required:!0}]},n().createElement(r.Input,{placeholder:"generate-word-report",disabled:f||"plugin"===b})),n().createElement(r.Form.Item,{name:"title",label:d("Title"),rules:[{required:!0}]},n().createElement(r.Input,{placeholder:"Generate Word Report",disabled:"plugin"===b})),n().createElement(r.Form.Item,{name:"description",label:d("Description")},n().createElement(ei,{rows:2,placeholder:"Description for AI employee to understand this skill",disabled:"plugin"===b})),n().createElement(r.Form.Item,{name:"instructions",label:d("Instructions / Documentation")},n().createElement(ei,{rows:6,placeholder:"Detailed instructions or markdown documentation for this skill",disabled:"plugin"===b})),"local"===b&&n().createElement(r.Form.Item,{label:d("Skill Package ZIP"),name:"fileId",valuePropName:"fileId",getValueFromEvent:function(e){var t,n,r,a,l,o,i;return(null==e||null==(r=e.file)||null==(n=r.response)||null==(t=n.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}]},n().createElement(r.Upload.Dragger,{name:"file",action:"/api/attachments:create",headers:{Authorization:"Bearer ".concat(s.auth.getToken())},maxCount:1,accept:".zip"},n().createElement("p",{className:"ant-upload-drag-icon"},n().createElement(a.InboxOutlined,null)),n().createElement("p",{className:"ant-upload-text"},d("Click or drag ZIP file to this area to upload")),n().createElement("p",{className:"ant-upload-hint"},d("Upload a skill package zip containing SKILL.md and index.py/.js. Metadata will be extracted automatically.")))),"plugin"!==b&&n().createElement(r.Form.Item,{name:"language",label:d("Language")},n().createElement(r.Select,null,n().createElement(r.Select.Option,{value:"python"},"Python"),n().createElement(r.Select.Option,{value:"node"},"Node.js"))),"database"===b&&n().createElement(r.Form.Item,{name:"codeTemplate",label:d("Code Template"),extra:d("Use {{placeholder}} for input parameters. Use OUTPUT_DIR env var for output directory.")},n().createElement(ei,{rows:12,style:{fontFamily:"monospace",fontSize:13},placeholder:'import os\n\noutput_dir = os.environ.get("OUTPUT_DIR", "/output")\n# Your code here'})),"plugin"!==b&&n().createElement(r.Form.Item,{name:"inputSchema",label:d("Input Schema (JSON)"),extra:d("JSON Schema defining input parameters for this skill")},n().createElement(ei,{rows:6,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "type": "object",\n "properties": {},\n "required": []\n}'})),n().createElement(r.Form.Item,{name:"interactionSchema",label:d("Interaction Schema (optional)"),extra:d("If set, user is prompted to fill / confirm input before execution. Type: form | select | confirm.")},n().createElement(ei,{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"!==b&&n().createElement(r.Form.Item,{name:"packages",label:d("Packages (JSON array)")},n().createElement(r.Input,{placeholder:'["python-docx", "openpyxl"]',style:{fontFamily:"monospace"}})),n().createElement("div",{style:{display:"flex",gap:16}},n().createElement(r.Form.Item,{name:"timeoutSeconds",label:d("Timeout (seconds)"),style:{flex:1}},n().createElement(r.InputNumber,{min:5,max:300,style:{width:"100%"}})),n().createElement(r.Form.Item,{name:"maxOutputSizeMb",label:d("Max Output (MB)"),style:{flex:1}},n().createElement(r.InputNumber,{min:1,max:200,style:{width:"100%"}})),n().createElement(r.Form.Item,{name:"toolScope",label:d("Tool Scope"),style:{flex:1}},n().createElement(r.Select,null,n().createElement(r.Select.Option,{value:"CUSTOM"},"CUSTOM"),n().createElement(r.Select.Option,{value:"GENERAL"},"GENERAL"),n().createElement(r.Select.Option,{value:"SPECIFIED"},"SPECIFIED")))))))};function es(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ed(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function em(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return es(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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 ep=r.Input.TextArea,ef=function(a){var l,o,i,u=a.skill,c=a.onClose,s=(0,e.useAPIClient)(),d=et(),m=j(u.inputSchema,null),p=em((0,t.useState)((null==m?void 0:m.properties)?JSON.stringify(Object.fromEntries(Object.keys(m.properties).map(function(e){return[e,""]})),null,2):"{}"),2),f=p[0],y=p[1],h=em((0,t.useState)(!1),2),g=h[0],b=h[1],v=em((0,t.useState)(null),2),E=v[0],S=v[1],w=em((0,t.useState)(""),2),k=w[0],O=w[1],x=(l=function(){var e,t,n,r,a,l,o,i;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(c){switch(c.label){case 0:b(!0),S(null),O("");try{e=JSON.parse(f)}catch(e){return O(d("Invalid JSON input")),b(!1),[2]}c.label=1;case 1:return c.trys.push([1,3,4,5]),[4,s.request({url:"skillHub:test",method:"POST",data:{skillId:u.id,input:e}})];case 2:return S((null==(n=c.sent().data)||null==(t=n.data)?void 0:t.data)||(null==n?void 0:n.data)||n),[3,5];case 3:return O((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||d("Execution failed")),[3,5];case 4:return b(!1),[7];case 5:return[2]}})},o=function(){var e=this,t=arguments;return new Promise(function(n,r){var a=l.apply(e,t);function o(e){ed(a,n,r,o,i,"next",e)}function i(e){ed(a,n,r,o,i,"throw",e)}o(void 0)})},function(){return o.apply(this,arguments)});return n().createElement(r.Modal,{open:!0,title:"".concat(d("Test Skill"),": ").concat(u.title),onCancel:c,footer:[n().createElement(r.Button,{key:"close",onClick:c},d("Close")),n().createElement(r.Button,{key:"run",type:"primary",onClick:x,loading:g},d("Run"))],width:640,destroyOnClose:!0},n().createElement(r.Space,{direction:"vertical",style:{width:"100%"},size:"middle"},n().createElement("div",null,n().createElement(r.Typography.Text,{strong:!0},d("Input (JSON)")),n().createElement(ep,{rows:6,value:f,onChange:function(e){return y(e.target.value)},style:{fontFamily:"monospace",fontSize:13,marginTop:4}})),g&&n().createElement(r.Spin,{tip:d("Running skill on worker...")}),k&&n().createElement(r.Alert,{type:"error",message:k,showIcon:!0}),E&&n().createElement(n().Fragment,null,n().createElement(r.Alert,{type:"succeeded"===E.status?"success":"error",message:"succeeded"===E.status?d("Succeeded"):d("Failed"),description:"Duration: ".concat(E.durationMs||0,"ms"),showIcon:!0}),E.stdout&&n().createElement("div",null,n().createElement(r.Typography.Text,{strong:!0},"stdout:"),n().createElement("pre",{style:{background:"#f5f5f5",padding:8,maxHeight:200,overflow:"auto",fontSize:12}},E.stdout)),E.stderr&&n().createElement("div",null,n().createElement(r.Typography.Text,{strong:!0,type:"danger"},"stderr:"),n().createElement("pre",{style:{background:"#fff2f0",padding:8,maxHeight:200,overflow:"auto",fontSize:12}},E.stderr)),(null==(i=E.files)?void 0:i.length)>0&&n().createElement("div",null,n().createElement(r.Typography.Text,{strong:!0},d("Output Files"),":"),n().createElement("div",{style:{marginTop:8}},n().createElement(e.Upload.ReadPretty,{value:E.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 ey(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function eh(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function eg(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){eh(l,r,a,o,i,"next",e)}function i(e){eh(l,r,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 n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ey(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ey(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 ev(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eE=r.Typography.Text,eS=r.theme.useToken,ew=function(l){var o,i=l.open,u=l.onClose,c=et(),s=eS().token,d=(0,e.useAPIClient)(),m=eb((0,t.useState)(0),2),p=m[0],f=m[1],y=eb((0,t.useState)([]),2),h=y[0],g=y[1],b=eb((0,t.useState)(!1),2),v=b[0],E=b[1],S=eb((0,t.useState)(null),2),w=S[0],k=S[1],O=eb((0,t.useState)([]),2),x=O[0],C=O[1],I=eb((0,t.useState)(""),2),A=(I[0],I[1]),T=eb((0,t.useState)("HEAD"),2),P=T[0],j=T[1],z=eb((0,t.useState)([]),2),D=z[0],F=z[1],M=eb((0,t.useState)(!1),2),B=M[0],R=M[1],U=eb((0,t.useState)(""),2),_=U[0],N=U[1],L=eb((0,t.useState)(null),2),q=L[0],H=L[1],J=eb((0,t.useState)([]),2),G=J[0],K=J[1],W=eb((0,t.useState)(!1),2),$=W[0],V=W[1],Z=eb((0,t.useState)([]),2),Y=Z[0],Q=Z[1],X=eb((0,t.useState)(!1),2),ee=X[0],en=X[1],er=eb((0,t.useState)(""),2),ea=er[0],el=er[1],eo=eb((0,t.useState)(null),2),ei=eo[0],eu=eo[1],ec=eb((0,t.useState)(""),2),es=ec[0],ed=ec[1],em=eb((0,t.useState)(null),2),ep=em[0],ef=em[1],ey=eb((0,t.useState)(!1),2),eh=ey[0],ew=ey[1],ek=(0,t.useCallback)(eg(function(){var e,t;return ev(this,function(n){switch(n.label){case 0:E(!0),n.label=1;case 1:return n.trys.push([1,,3,4]),[4,d.request({url:"gitRepositories:list",params:{pageSize:100}})];case 2:return g(((null==(t=n.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 E(!1),[7];case 4:return[2]}})}),[d]);(0,t.useEffect)(function(){i&&(ek(),f(0),k(null),H(null),K([]),Q([]),eu(null),ef(null),en(!1),N(""),el(""),ed(""))},[i,ek]),(0,t.useEffect)(function(){w&&d.request({url:"gitManager:branches",params:{repositoryId:w}}).then(function(e){var t,n=e.data,r=(null==n||null==(t=n.data)?void 0:t.data)||(null==n?void 0:n.data);C((null==r?void 0:r.all)||[]);var a=(null==r?void 0:r.current)||"main";A(a),j(a)}).catch(function(){return C([])})},[w,d]);var eO=(0,t.useCallback)(eg(function(){var e,t;return ev(this,function(n){switch(n.label){case 0:if(!w)return[2];R(!0),n.label=1;case 1:return n.trys.push([1,,3,4]),[4,d.request({url:"gitManager:fileTree",params:{repositoryId:w,ref:P,treePath:_}})];case 2:return F(((null==(t=n.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 R(!1),[7];case 4:return[2]}})}),[d,w,P,_]);(0,t.useEffect)(function(){1===p&&w&&eO()},[p,w,P,_,eO]);var ex=(0,t.useCallback)(eg(function(){var e,t,n,a,l,o,i,u,s;return ev(this,function(m){switch(m.label){case 0:if(!w||null===q)return[2];V(!0),m.label=1;case 1:return m.trys.push([1,3,4,5]),[4,d.request({url:"skillHub:gitListSkills",params:{repositoryId:w,ref:P,rootFolder:q}})];case 2:return a=(null==(n=m.sent().data)||null==(e=n.data)?void 0:e.data)||(null==n?void 0:n.data)||[],eu((null==n||null==(t=n.data)?void 0:t.config)||(null==n?void 0:n.config)||null),K(a),Q(a.filter(function(e){return!e.existsInDb}).map(function(e){return e.folder})),[3,5];case 3:return l=m.sent(),r.message.error((null==l||null==(s=l.response)||null==(u=s.data)||null==(i=u.errors)||null==(o=i[0])?void 0:o.message)||c("Failed to read skills from git")),eu(null),K([]),[3,5];case 4:return V(!1),[7];case 5:return[2]}})}),[d,w,P,q,c]);(0,t.useEffect)(function(){2===p&&null!==q&&ex()},[p,q,ex]);var eC=(0,t.useMemo)(function(){if(!es.trim())return G;var e=es.toLowerCase();return G.filter(function(t){return(t.title||t.name||"").toLowerCase().includes(e)||(t.description||"").toLowerCase().includes(e)})},[G,es]),eI=(o=eg(function(){var e,t,n,a,l,o,i;return ev(this,function(u){switch(u.label){case 0:if(0===Y.length)return r.message.warning(c("Please select at least one skill")),[2];ew(!0),u.label=1;case 1:return u.trys.push([1,3,4,5]),[4,d.request({url:"skillHub:gitSyncSkills",method:"POST",params:{repositoryId:w,ref:P,rootFolder:q,prefix:ea},data:{skills:Y,overwrite:ee}})];case 2:return ef((null==(t=u.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data)||[]),f(3),[3,5];case 3:return n=u.sent(),r.message.error((null==n||null==(i=n.response)||null==(o=i.data)||null==(l=o.errors)||null==(a=l[0])?void 0:a.message)||c("Sync failed")),[3,5];case 4:return ew(!1),[7];case 5:return[2]}})}),function(){return o.apply(this,arguments)}),eA=[{title:c("Skill"),key:"name",render:function(e,t){return n().createElement("div",null,n().createElement(eE,{strong:!0},t.title||t.name),n().createElement("div",null,n().createElement(eE,{type:"secondary",style:{fontSize:12}},t.name)))}},{title:c("Language"),dataIndex:"language",key:"language",width:100,render:function(e){return n().createElement(r.Tag,{color:"python"===e?"blue":"green"},e)}},{title:c("Source"),dataIndex:"storageType",key:"storageType",width:100,render:function(e){return n().createElement(r.Tag,{color:"plugin"===e?"purple":"cyan"},(e||"git").toUpperCase())}},{title:c("Description"),dataIndex:"description",key:"description",ellipsis:!0},{title:c("Status"),key:"status",width:120,render:function(e,t){return t.existsInDb?n().createElement(r.Tag,{color:"orange"},c("Exists")):n().createElement(r.Tag,{color:"green"},c("New"))}}],eT=[{title:c("Skill"),dataIndex:"name",key:"name",render:function(e){var t=ea?ea.trim():"",r=t?"".concat(t).concat(e):e;return n().createElement("div",null,n().createElement(eE,{strong:!0},r),t&&n().createElement("div",null,n().createElement(eE,{type:"secondary",style:{fontSize:11}},c("Original"),": ",e)))}},{title:c("Result"),key:"status",render:function(e,t){return n().createElement(r.Space,null,n().createElement(r.Tag,{color:{created:"green",updated:"blue",skipped:"orange",error:"red"}[t.status]||"default"},t.status),t.reason&&n().createElement(eE,{type:"secondary",style:{fontSize:12}},t.reason))}}];return n().createElement(r.Modal,{open:i,title:n().createElement(r.Space,null,n().createElement(a.BranchesOutlined,null),c("Import Skills from Git")),onCancel:function(){return u()},width:800,footer:3===p?n().createElement(r.Button,{type:"primary",onClick:function(){return u(!0)}},c("Done")):n().createElement(r.Space,null,p>0&&p<3&&n().createElement(r.Button,{onClick:function(){return f(p-1)}},c("Back")),p<2&&n().createElement(r.Button,{type:"primary",disabled:!(0===p?!!w:1===p?null!==q:2===p&&Y.length>0),onClick:function(){return f(p+1)}},c("Next")),2===p&&n().createElement(r.Button,{type:"primary",loading:eh,disabled:0===Y.length,onClick:eI},n().createElement(a.SyncOutlined,null)," ",c("Sync Selected")," (",Y.length,")")),destroyOnClose:!0},n().createElement(r.Steps,{current:p,size:"small",style:{marginBottom:24},items:[{title:c("Repository")},{title:c("Root Folder")},{title:c("Select Skills")},{title:c("Result")}]}),0===p&&n().createElement("div",null,v?n().createElement(r.Spin,null):0===h.length?n().createElement(r.Empty,{description:c("No connected repositories. Please configure one in Git Manager first.")}):n().createElement("div",null,n().createElement(eE,{strong:!0,style:{display:"block",marginBottom:8}},n().createElement(a.DatabaseOutlined,null)," ",c("Select a connected git repository")),n().createElement(r.Select,{style:{width:"100%"},placeholder:c("Select repository"),value:w,onChange:k,options:h.map(function(e){return{label:n().createElement(r.Space,null,e.name,n().createElement(eE,{type:"secondary",style:{fontSize:12}},e.repoUrl)),value:e.id}})}))),1===p&&n().createElement("div",null,n().createElement("div",{style:{marginBottom:12,display:"flex",gap:12,alignItems:"center"}},n().createElement(a.BranchesOutlined,null),n().createElement(r.Select,{size:"small",style:{width:200},value:P,onChange:function(e){j(e),H(null)},options:x.map(function(e){return{label:e,value:e}})})),n().createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8}},n().createElement(eE,{strong:!0},n().createElement(a.FolderOutlined,null)," ",c("Current Path"),": ",_||"/ (Root)"),n().createElement(r.Button,{type:"primary",onClick:function(){return H(_)}},c("Use Current Folder"))),B?n().createElement(r.Spin,null):n().createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:8}},_&&n().createElement(r.Button,{icon:n().createElement(a.FolderOutlined,null),onClick:function(){var e=_.split("/");e.pop(),N(e.join("/"))}},".."),D.map(function(e){return n().createElement(r.Button,{key:e.path,icon:n().createElement(a.FolderOutlined,null),onClick:function(){return N(e.path)},style:{height:"auto",padding:"8px 16px"}},e.name)}),0===D.length&&!_&&n().createElement(r.Empty,{description:c("No folders found")})),null!==q&&n().createElement(r.Alert,{style:{marginTop:12},type:"success",message:"".concat(c("Selected Root Folder"),": ").concat(q||"/"),showIcon:!0})),2===p&&n().createElement("div",null,(null==ei?void 0:ei.initializedSkillsJson)&&n().createElement(r.Alert,{style:{marginBottom:12},type:"info",showIcon:!0,message:"".concat(c("Initialized skills.json"),": ").concat(ei.path||"skills.json")}),$?n().createElement(r.Spin,null):0===G.length?n().createElement(r.Empty,{description:c("No skills found")}):n().createElement("div",null,n().createElement("div",{style:{marginBottom:12,display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,flexWrap:"wrap"}},n().createElement(r.Input,{placeholder:c("Search by title or description..."),prefix:n().createElement(a.SearchOutlined,{style:{color:s.colorTextQuaternary}}),value:es,onChange:function(e){return ed(e.target.value)},allowClear:!0,style:{width:260}}),n().createElement(r.Space,null,n().createElement(r.Input,{size:"small",placeholder:c("Skill Name Prefix"),value:ea,onChange:function(e){return el(e.target.value)},style:{width:150}}),n().createElement(eE,{style:{fontSize:12,marginLeft:8}},c("Overwrite")),n().createElement(r.Switch,{size:"small",checked:ee,onChange:en}))),n().createElement("div",{style:{marginBottom:8}},n().createElement(eE,{type:"secondary",style:{fontSize:12}},eC.length," / ",G.length," ",c("skills found"),ea&&n().createElement("span",{style:{marginLeft:8}},"\xe2€\xa2 ",c("Prefix"),": ",n().createElement(r.Tag,{style:{margin:0}},ea)," ",n().createElement(eE,{type:"secondary",style:{fontSize:11}},"(",c("applied on sync"),")")))),n().createElement(r.Table,{dataSource:eC,columns:eA,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:Y,onChange:function(e){return Q(e)}}}))),3===p&&ep&&n().createElement("div",null,n().createElement(r.Result,{status:"success",title:c("Sync Complete"),subTitle:"".concat(ep.filter(function(e){return"created"===e.status}).length," ").concat(c("created"),", ").concat(ep.filter(function(e){return"updated"===e.status}).length," ").concat(c("updated"),", ").concat(ep.filter(function(e){return"skipped"===e.status}).length," ").concat(c("skipped"))}),n().createElement(r.Table,{dataSource:ep,columns:eT,rowKey:"folder",size:"small",pagination:!1})))};function ek(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function eO(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function ex(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){eO(l,r,a,o,i,"next",e)}function i(e){eO(l,r,a,o,i,"throw",e)}o(void 0)})}}function eC(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ek(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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 eI(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}r.Input.TextArea;var eA=function(){var l,o,i=(0,e.useAPIClient)(),u=et(),c=eC((0,t.useState)([]),2),s=c[0],d=c[1],m=eC((0,t.useState)(!1),2),p=m[0],f=m[1],y=eC((0,t.useState)(!1),2),h=y[0],g=y[1],b=eC((0,t.useState)(!1),2),v=b[0],E=b[1],S=eC((0,t.useState)(null),2),w=S[0],k=S[1],O=eC((0,t.useState)(null),2),x=O[0],C=O[1],I=eC((0,t.useState)(!1),2),A=I[0],T=I[1],P=(0,t.useCallback)(ex(function(){var e,t,n,a,l;return eI(this,function(o){switch(o.label){case 0:f(!0),o.label=1;case 1:return o.trys.push([1,3,4,5]),[4,i.request({url:"skillDefinitions:list",params:{pageSize:100}})];case 2:return d(Array.isArray(l=null!=(a=null!=(n=null==(t=o.sent().data)||null==(e=t.data)?void 0:e.data)?n:null==t?void 0:t.data)?a:[])?l:[]),[3,5];case 3:return o.sent(),r.message.error(u("Failed to load skills")),[3,5];case 4:return f(!1),[7];case 5:return[2]}})}),[i,u]);(0,t.useEffect)(function(){P()},[P]);var j=function(e){k(e),g(!0)},z=function(e){C(e),E(!0)},D=(l=ex(function(e){return eI(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,i.request({url:"skillDefinitions:destroy",method:"POST",params:{filterByTk:e}})];case 1:return t.sent(),r.message.success(u("Deleted")),P(),[3,3];case 2:return t.sent(),r.message.error(u("Failed to delete")),[3,3];case 3:return[2]}})}),function(e){return l.apply(this,arguments)}),F=(o=ex(function(e){return eI(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,i.request({url:"skillDefinitions:update",method:"POST",params:{filterByTk:e.id},data:{enabled:!e.enabled}})];case 1:return t.sent(),P(),[3,3];case 2:return t.sent(),r.message.error(u("Failed to update")),[3,3];case 3:return[2]}})}),function(e){return o.apply(this,arguments)});return n().createElement(r.Card,{title:u("Skill Definitions"),extra:n().createElement(r.Space,null,n().createElement(r.Button,{icon:n().createElement(a.BranchesOutlined,null),onClick:function(){return T(!0)}},u("Import from Git")),n().createElement(r.Button,{type:"primary",icon:n().createElement(a.PlusOutlined,null),onClick:function(){k(null),g(!0)}},u("New Skill")))},n().createElement(r.List,{grid:{gutter:16,xs:1,sm:2,md:3,lg:3,xl:4,xxl:4},dataSource:s,loading:p,renderItem:function(e){return n().createElement(r.List.Item,null,n().createElement(r.Card,{size:"small",title:n().createElement(r.Typography.Text,{ellipsis:!0,title:e.title},e.title),extra:n().createElement(r.Tag,{color:"python"===e.language?"blue":"green"},e.language),actions:[n().createElement(r.Tooltip,{title:u("Test")},n().createElement(a.PlayCircleOutlined,{key:"test",onClick:function(){return z(e)}})),n().createElement(r.Tooltip,{title:u("Edit")},n().createElement(a.EditOutlined,{key:"edit",onClick:function(){return j(e)}})),n().createElement(r.Popconfirm,{title:u("Delete?"),onConfirm:function(){return D(e.id)}},n().createElement(r.Tooltip,{title:u("Delete")},n().createElement(a.DeleteOutlined,{key:"delete",style:{color:"red"}})))],style:{boxShadow:"0 2px 8px rgba(0,0,0,0.05)",borderRadius:8}},n().createElement(r.Card.Meta,{title:n().createElement(r.Typography.Text,{type:"secondary",style:{fontSize:13}},e.name),description:n().createElement("div",{style:{height:60,overflow:"hidden",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",fontSize:13}},e.description||u("No description"))}),n().createElement("div",{style:{marginTop:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},n().createElement(r.Space,{size:4},n().createElement(r.Switch,{checked:e.enabled,onChange:function(){return F(e)},size:"small"}),n().createElement("span",{style:{fontSize:12}},e.enabled?u("Enabled"):u("Disabled"))),n().createElement(r.Tag,{color:"purple",style:{margin:0,fontSize:11}},e.storageType?e.storageType.toUpperCase():"DB"))))}}),h&&n().createElement(ec,{skill:w,onClose:function(e){g(!1),k(null),e&&P()}}),v&&x&&n().createElement(ef,{skill:x,onClose:function(){return E(!1)}}),n().createElement(ew,{open:A,onClose:function(e){T(!1),e&&P()}}))};function eT(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function eP(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function ej(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){eP(l,r,a,o,i,"next",e)}function i(e){eP(l,r,a,o,i,"throw",e)}o(void 0)})}}function ez(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eT(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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 eD(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eF={pending:"default",running:"processing",succeeded:"success",failed:"error",canceled:"warning",timeout:"error"},eM=function(){var l,o=(0,e.useAPIClient)(),i=et(),u=ez((0,t.useState)([]),2),c=u[0],s=u[1],d=ez((0,t.useState)(!1),2),m=d[0],p=d[1],f=ez((0,t.useState)(1),2),y=f[0],h=f[1],g=ez((0,t.useState)(0),2),b=g[0],v=g[1],E=(0,t.useCallback)(ej(function(){var e,t,n,r,a,l;return eD(this,function(i){switch(i.label){case 0:p(!0),i.label=1;case 1:return i.trys.push([1,3,4,5]),[4,o.request({url:"skillExecutions:list",params:{page:y,pageSize:20,sort:["-createdAt"],appends:["skill","triggeredBy"]}})];case 2:return s(Array.isArray(l=null!=(a=null!=(r=null==(n=i.sent().data)||null==(e=n.data)?void 0:e.data)?r:null==n?void 0:n.data)?a:[])?l:[]),v((null==n||null==(t=n.meta)?void 0:t.count)||0),[3,5];case 3:return i.sent(),[3,5];case 4:return p(!1),[7];case 5:return[2]}})}),[o,y]);(0,t.useEffect)(function(){E()},[E]);var S=(l=ej(function(e){var t,n,a,l,u;return eD(this,function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),[4,o.request({url:"skillExecutions:destroy",method:"POST",params:{filterByTk:e}})];case 1:return c.sent(),r.message.success(i("Deleted successfully")),E(),[3,3];case 2:return t=c.sent(),r.message.error((null==t||null==(u=t.response)||null==(l=u.data)||null==(a=l.errors)||null==(n=a[0])?void 0:n.message)||i("Delete failed")),[3,3];case 3:return[2]}})}),function(e){return l.apply(this,arguments)}),w=[{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 n().createElement(r.Tag,{color:eF[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,r){if(!Array.isArray(t=j(t,[]))||!t.length)return"-";var a=t.map(function(e,t){return{id:"".concat(r.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(r.id,"&filename=").concat(encodeURIComponent(e.name)),status:"done"}});return n().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 n().createElement(r.Space,{direction:"vertical",size:0},t.stdout&&n().createElement(r.Tooltip,{title:t.stdout},n().createElement(r.Typography.Text,{style:{fontSize:12,maxWidth:200},ellipsis:!0},t.stdout)),t.stderr&&n().createElement(r.Tooltip,{title:t.stderr},n().createElement(r.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 n().createElement(r.Space,{size:"middle"},n().createElement(r.Popconfirm,{title:i("Are you sure to delete this execution history and its files?"),onConfirm:function(){return S(t.id)},okText:i("Yes"),cancelText:i("No")},n().createElement(r.Button,{type:"text",danger:!0,icon:n().createElement(a.DeleteOutlined,null),size:"small"})))}}];return n().createElement(r.Card,{title:i("Execution History"),extra:n().createElement(r.Space,null,n().createElement(r.Button,{icon:n().createElement(a.ReloadOutlined,null),onClick:E,loading:m},i("Refresh")))},n().createElement(r.Table,{dataSource:c,columns:w,rowKey:"id",loading:m,size:"middle",pagination:{current:y,pageSize:20,total:b,onChange:h,showTotal:function(e){return"Total: ".concat(e)}},scroll:{x:1200}}))};function eB(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function eR(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function eU(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eB(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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.")}()}r.Typography.Title,r.Typography.Text;var e_=function(){var l,o=(0,e.useAPIClient)(),i=et(),u=eU((0,t.useState)([]),2),c=u[0],s=u[1],d=eU((0,t.useState)(!1),2),m=d[0],p=d[1],f=(0,t.useCallback)((l=function(){var e,t,n,r,a;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(l){switch(l.label){case 0:p(!0),l.label=1;case 1:return l.trys.push([1,3,4,5]),[4,o.request({url:"skillExecutions:list",params:{pageSize:1e3,sort:["-createdAt"],appends:["skill"]}})];case 2:return s(Array.isArray(a=null!=(r=null!=(n=null==(t=l.sent().data)||null==(e=t.data)?void 0:e.data)?n:null==t?void 0:t.data)?r:[])?a:[]),[3,5];case 3:return l.sent(),[3,5];case 4:return p(!1),[7];case 5:return[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,r){var a=l.apply(e,t);function o(e){eR(a,n,r,o,i,"next",e)}function i(e){eR(a,n,r,o,i,"throw",e)}o(void 0)})}),[o]);(0,t.useEffect)(function(){f()},[f]);var y=(0,t.useMemo)(function(){var e=c.length,t=c.filter(function(e){return"succeeded"===e.status}).length,n=c.filter(function(e){return"failed"===e.status}).length,r=c.filter(function(e){return"timeout"===e.status}).length,a=c.filter(function(e){return"canceled"===e.status}).length,l={};return c.forEach(function(e){var t,n,r=(null==(t=e.skill)?void 0:t.title)||(null==(n=e.skill)?void 0:n.name)||"Unknown";l[r]||(l[r]={name:r,total:0,succeeded:0,failed:0,timeout:0,canceled:0,totalDuration:0,durationCount:0}),l[r].total+=1,l[r][e.status]=(l[r][e.status]||0)+1,e.durationMs&&(l[r].totalDuration+=e.durationMs,l[r].durationCount+=1)}),{total:e,succeeded:t,failed:n,timeout:r,canceled:a,skillData:Object.values(l).map(function(e){var t,n;return t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e),n=n={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(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t}).sort(function(e,t){return t.total-e.total})}},[c]),h=[{title:i("Skill"),dataIndex:"name",key:"name",width:200},{title:i("Total Runs"),dataIndex:"total",key:"total",width:100},{title:i("Success Rate"),dataIndex:"successRate",key:"successRate",width:150,render:function(e){return n().createElement(r.Progress,{percent:Math.round(e),size:"small",status:100===e?"success":e>50?"active":"exception"})}},{title:i("Success"),dataIndex:"succeeded",key:"succeeded",width:100},{title:i("Failed"),dataIndex:"failed",key:"failed",width:100},{title:i("Timeout"),dataIndex:"timeout",key:"timeout",width:100},{title:i("Avg Duration (s)"),dataIndex:"avgDuration",key:"avgDuration",width:120}];return n().createElement(r.Space,{direction:"vertical",size:"large",style:{width:"100%",padding:"0 16px"}},n().createElement(r.Row,{gutter:16},n().createElement(r.Col,{span:6},n().createElement(r.Card,{size:"small"},n().createElement(r.Statistic,{title:"Total Executions (Recent)",value:y.total,prefix:n().createElement(a.SyncOutlined,null)}))),n().createElement(r.Col,{span:6},n().createElement(r.Card,{size:"small"},n().createElement(r.Statistic,{title:"Succeeded",value:y.succeeded,valueStyle:{color:"#3f8600"},prefix:n().createElement(a.CheckCircleOutlined,null)}))),n().createElement(r.Col,{span:6},n().createElement(r.Card,{size:"small"},n().createElement(r.Statistic,{title:"Failed",value:y.failed,valueStyle:{color:"#cf1322"},prefix:n().createElement(a.CloseCircleOutlined,null)}))),n().createElement(r.Col,{span:6},n().createElement(r.Card,{size:"small"},n().createElement(r.Statistic,{title:"Timeout/Canceled",value:y.timeout+y.canceled,valueStyle:{color:"#faad14"},prefix:n().createElement(a.ClockCircleOutlined,null)})))),n().createElement(r.Card,{title:i("Metrics by Skill (Recent)")},n().createElement(r.Table,{dataSource:y.skillData,columns:h,rowKey:"name",loading:m,pagination:!1,size:"middle"})))},eN=[{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 eL(e){return eN.find(function(t){return t.key===e})||eN[0]}function eq(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function eH(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eq(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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 eJ=(0,t.createContext)(new Map),eG=function(e){return e.toLowerCase().replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"")},eK=function(r){var a=r.children,l=(0,e.useAPIClient)(),o=eH((0,t.useState)(new Map),2),i=o[0],u=o[1],c=eH((0,t.useState)(0),2),s=c[0],d=c[1];return(0,t.useEffect)(function(){var e=function(){return d(function(e){return e+1})};return window.addEventListener("skill-hub-loop-settings-changed",e),function(){return window.removeEventListener("skill-hub-loop-settings-changed",e)}},[]),(0,t.useEffect)(function(){var e=!1,t=function(e){var t,n,r,a,l=null!=(a=null!=(r=null!=(n=null==e||null==(t=e.data)?void 0:t.data)?n:null==e?void 0:e.data)?r:e)?a:[];return Array.isArray(l)?l:[]},n=function(e){var t,n,r=j(e.schema,null);return r?e.prompt&&!r.prompt?(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},r),n=n={prompt:e.prompt},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t):r:e.prompt?{type:"confirm",prompt:e.prompt}:null};return Promise.all([l.request({url:"skillDefinitions:list",params:{filter:{enabled:!0},fields:["id","name","autoCall","interactionSchema"],pageSize:500}}),l.request({url:"skillLoopConfigs:list",params:{filter:{enabled:!0},fields:["skillId","enabled","schema","prompt","templateKey"],pageSize:500}}).catch(function(){return{data:[]}})]).then(function(r){var a=eH(r,2),l=a[0],o=a[1];if(!e){var i=new Map,c=t(l.data),s=t(o.data),d=new Map(c.map(function(e){return[String(e.id),e]})),m=!0,p=!1,f=void 0;try{for(var y,h=c[Symbol.iterator]();!(m=(y=h.next()).done);m=!0){var g=y.value;if(!g.autoCall){var b=j(g.interactionSchema,null);b&&i.set(eG(g.name),b)}}}catch(e){p=!0,f=e}finally{try{m||null==h.return||h.return()}finally{if(p)throw f}}var v=!0,E=!1,S=void 0;try{for(var w,k=s[Symbol.iterator]();!(v=(w=k.next()).done);v=!0){var O=w.value,x=d.get(String(O.skillId));if(null==x?void 0:x.name){var C=n(O);C&&i.set(eG(x.name),C)}}}catch(e){E=!0,S=e}finally{try{v||null==k.return||k.return()}finally{if(E)throw S}}u(i)}}).catch(function(){}),function(){e=!0}},[l,s]),n().createElement(eJ.Provider,{value:i},a)};function eW(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function e$(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function eV(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function eZ(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eW(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return eW(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=function(e){var a,l,o,i,u=e.toolCall,c=e.decisions,s=(0,t.useContext)(eJ),d=eZ(r.Form.useForm(),1)[0],m="skill_hub_execute"===u.name,p=u.args||{},f=m?(p.skillName||"").toLowerCase().replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,""):u.name.replace(/^skill_hub_/,""),y=s.get(f);if("init"!==u.invokeStatus&&"interrupted"!==u.invokeStatus)return null;if(!y)return n().createElement(r.Card,{size:"small",style:{marginTop:8}},n().createElement(r.Typography.Paragraph,{style:{marginBottom:12}},"Review this Skill Hub tool call before execution."),n().createElement(r.Space,null,n().createElement(r.Button,{type:"primary",onClick:function(){return c.approve()}},"Run"),n().createElement(r.Button,{onClick:function(){return c.reject("user_cancel")}},"Cancel")));var h=(a=function(){var e,t;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(n){switch(n.label){case 0:return[4,d.validateFields()];case 1:var r,a;return e=n.sent(),t=m?(r=eV({},p),a=a={input:"select"===y.type?e:eV({},p.input||{},e)},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(a)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(a)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(a,e))}),r):"select"===y.type?e:eV({},p,e),[4,c.edit(t)];case 2:return n.sent(),[2]}})},l=function(){var e=this,t=arguments;return new Promise(function(n,r){var l=a.apply(e,t);function o(e){e$(l,n,r,o,i,"next",e)}function i(e){e$(l,n,r,o,i,"throw",e)}o(void 0)})},function(){return l.apply(this,arguments)});return n().createElement(r.Card,{size:"small",style:{marginTop:8}},n().createElement(r.Typography.Paragraph,{style:{marginBottom:12}},y.prompt),"confirm"!==y.type&&n().createElement(r.Form,{form:d,layout:"vertical",initialValues:(m?p.input:p)||{},style:{marginBottom:8}},"select"===y.type&&n().createElement(r.Form.Item,{name:"choice",rules:[{required:!0}]},n().createElement(r.Radio.Group,null,(null!=(o=y.options)?o:[]).map(function(e){return n().createElement(r.Radio,{key:String(e.value),value:e.value},e.label)}))),"form"===y.type&&Object.entries(null!=(i=y.fields)?i:{}).map(function(e){var t=eZ(e,2),a=t[0],l=t[1];return n().createElement(r.Form.Item,{key:a,name:a,label:l.title||a,rules:[{required:!!l.required}]},(null==l?void 0:l.enum)?n().createElement(r.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"?n().createElement(r.InputNumber,{style:{width:"100%"}}):n().createElement(r.Input,null))})),n().createElement(r.Space,null,n().createElement(r.Button,{type:"primary",onClick:"confirm"===y.type?function(){return c.approve()}:h},"Run"),n().createElement(r.Button,{onClick:function(){return c.reject("user_cancel")}},"Cancel")))};function eQ(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}var eX=function(e){var t,n,r,a,l=null!=(a=null!=(r=null!=(n=null==e||null==(t=e.data)?void 0:t.data)?n:null==e?void 0:e.data)?r:e)?a:[];return Array.isArray(l)?l:[]};function e0(e){return e1.apply(this,arguments)}function e1(){var e;return e=function(e){var t,n,r,a,l,o,i,u,c,s,d,m,p;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(f){switch(f.label){case 0:if(!(n=null==(t=e.aiManager)?void 0:t.toolsManager))return[2];f.label=1;case 1:return f.trys.push([1,7,,8]),[4,e.apiClient.request({url:"skillDefinitions:list",params:{filter:{enabled:!0},fields:["id","name","autoCall","interactionSchema"],pageSize:500}})];case 2:r=f.sent(),a=new Set,f.label=3;case 3:return f.trys.push([3,5,,6]),[4,e.apiClient.request({url:"skillLoopConfigs:list",params:{filter:{enabled:!0},fields:["skillId"],pageSize:500}})];case 4:return(a=new Set(eX(f.sent().data).map(function(e){return String(e.skillId)}))).size>0&&n.registerTools("skill_hub_execute",{ui:{card:eY}}),[3,6];case 5:return f.sent(),[3,6];case 6:l=eX(r.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&&!!j(d.interactionSchema,null),(m||p)&&n.registerTools("skill_hub_".concat(d.name.toLowerCase().replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"")),{ui:{card:eY}})}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]}})},(e1=function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){eQ(l,r,a,o,i,"next",e)}function i(e){eQ(l,r,a,o,i,"throw",e)}o(void 0)})}).apply(this,arguments)}function e2(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function e3(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function e6(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){e3(l,r,a,o,i,"next",e)}function i(e){e3(l,r,a,o,i,"throw",e)}o(void 0)})}}function e4(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function e5(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function e8(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return e2(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e2(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 e7(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var e9=r.Input.TextArea,te=function(e){var t,n,r,a,l=null!=(a=null!=(r=null!=(n=null==e||null==(t=e.data)?void 0:t.data)?n:null==e?void 0:e.data)?r:e)?a:[];return Array.isArray(l)?l:[]},tt=function(){var l,o,i,u=(0,e.useAPIClient)(),c=(0,e.useApp)(),s=et(),d=e8(r.Form.useForm(),1)[0],m=e8((0,t.useState)([]),2),p=m[0],f=m[1],y=e8((0,t.useState)([]),2),h=y[0],g=y[1],b=e8((0,t.useState)(!1),2),v=b[0],E=b[1],S=e8((0,t.useState)(!1),2),w=S[0],k=S[1],O=e8((0,t.useState)(null),2),x=O[0],C=O[1],I=(0,t.useMemo)(function(){return new Map(p.map(function(e){return[String(e.id),e]}))},[p]),A=(0,t.useCallback)(e6(function(){var e,t,n;return e7(this,function(a){switch(a.label){case 0:E(!0),a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,Promise.all([u.request({url:"skillDefinitions:list",params:{filter:{enabled:!0},fields:["id","name","title","language","autoCall"],pageSize:500}}),u.request({url:"skillLoopConfigs:list",params:{fields:["id","skillId","enabled","title","templateKey","prompt","schema","config","updatedAt"],sort:["-updatedAt"],pageSize:500}})])];case 2:return t=(e=e8.apply(void 0,[a.sent(),2]))[0],n=e[1],f(te(t.data)),g(te(n.data)),[3,5];case 3:return a.sent(),r.message.error(s("Failed to load skill review settings")),[3,5];case 4:return E(!1),[7];case 5:return[2]}})}),[u,s]);(0,t.useEffect)(function(){A()},[A]);var T=function(e){var t=eL(e.templateKey);C(e),d.setFieldsValue(e5(e4({},e),{templateKey:e.templateKey||t.key,prompt:e.prompt||t.schema.prompt,schema:z(e.schema||t.schema),config:z(e.config,null)})),k(!0)},P=function(){k(!1),C(null),d.resetFields()},F=(0,t.useCallback)(e6(function(){return e7(this,function(e){switch(e.label){case 0:return[4,e0(c)];case 1:return e.sent(),window.dispatchEvent(new Event("skill-hub-loop-settings-changed")),[2]}})}),[c]),M=(l=e6(function(){var e,t,n,a,l,o;return e7(this,function(i){switch(i.label){case 0:return i.trys.push([0,6,,7]),[4,d.validateFields()];case 1:if(!(t=j((e=i.sent()).schema,void 0))||(void 0===t?"undefined":t&&"undefined"!=typeof Symbol&&t.constructor===Symbol?"symbol":typeof t)!="object")return r.message.error(s("Invalid JSON in Review Schema")),[2];if(n=j(e.config,void 0),e.config&&void 0===n)return r.message.error(s("Invalid JSON in Review Config")),[2];if(a=e5(e4({},t),{prompt:e.prompt||t.prompt}),l=e5(e4({},e),{schema:D(a),config:e.config?D(n):null}),!x)return[3,3];return[4,u.request({url:"skillLoopConfigs:update",method:"POST",params:{filterByTk:x.id},data:l})];case 2:return i.sent(),[3,5];case 3:return[4,u.request({url:"skillLoopConfigs:create",method:"POST",data:l})];case 4:i.sent(),i.label=5;case 5:return r.message.success(s(x?"Skill review setting updated":"Skill review setting created")),P(),A(),F(),[3,7];case 6:if(null==(o=i.sent())?void 0:o.errorFields)return[2];return r.message.error(s("Failed to save skill review setting")),[3,7];case 7:return[2]}})}),function(){return l.apply(this,arguments)}),B=(o=e6(function(e){return e7(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,u.request({url:"skillLoopConfigs:destroy",method:"POST",params:{filterByTk:e}})];case 1:return t.sent(),r.message.success(s("Deleted")),A(),F(),[3,3];case 2:return t.sent(),r.message.error(s("Failed to delete")),[3,3];case 3:return[2]}})}),function(e){return o.apply(this,arguments)}),R=(i=e6(function(e){return e7(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,u.request({url:"skillLoopConfigs:update",method:"POST",params:{filterByTk:e.id},data:{enabled:!e.enabled}})];case 1:return t.sent(),A(),F(),[3,3];case 2:return t.sent(),r.message.error(s("Failed to update")),[3,3];case 3:return[2]}})}),function(e){return i.apply(this,arguments)});return n().createElement(r.Card,{title:s("Skill Review Settings"),extra:n().createElement(r.Button,{type:"primary",icon:n().createElement(a.PlusOutlined,null),onClick:function(){var e=eL("confirm");C(null),d.resetFields(),d.setFieldsValue({enabled:!0,templateKey:e.key,prompt:e.schema.prompt,schema:z(e.schema),config:""}),k(!0)}},s("New Review"))},n().createElement(r.List,{loading:v,dataSource:h,grid:{gutter:16,xs:1,sm:2,md:3,lg:3,xl:4,xxl:4},renderItem:function(e){var t=I.get(String(e.skillId)),l=eL(e.templateKey);return n().createElement(r.List.Item,null,n().createElement(r.Card,{size:"small",title:n().createElement(r.Typography.Text,{ellipsis:!0},e.title||(null==t?void 0:t.title)||(null==t?void 0:t.name)||s("Unknown skill")),extra:n().createElement(r.Tag,{color:e.enabled?"green":"default"},e.enabled?s("Enabled"):s("Disabled")),actions:[n().createElement(r.Tooltip,{key:"edit",title:s("Edit")},n().createElement(a.EditOutlined,{onClick:function(){return T(e)}})),n().createElement(r.Popconfirm,{key:"delete",title:s("Delete?"),onConfirm:function(){return B(e.id)}},n().createElement(r.Tooltip,{title:s("Delete")},n().createElement(a.DeleteOutlined,{style:{color:"red"}})))],style:{boxShadow:"0 2px 8px rgba(0,0,0,0.05)",borderRadius:8}},n().createElement(r.Space,{direction:"vertical",size:8,style:{width:"100%"}},n().createElement(r.Typography.Text,{type:"secondary",style:{fontSize:13}},(null==t?void 0:t.name)||"skillId=".concat(e.skillId)),n().createElement(r.Tag,{color:"blue",style:{width:"fit-content"}},l.title),n().createElement(r.Typography.Paragraph,{type:"secondary",ellipsis:{rows:2},style:{minHeight:44,marginBottom:0,fontSize:13}},e.prompt||l.schema.prompt),n().createElement(r.Space,{size:4},n().createElement(r.Switch,{checked:e.enabled,onChange:function(){return R(e)},size:"small"}),n().createElement("span",{style:{fontSize:12}},e.enabled?s("Enabled"):s("Disabled"))))))}}),n().createElement(r.Modal,{open:w,title:x?s("Edit Skill Review Setting"):s("New Skill Review Setting"),onCancel:P,onOk:M,width:760,destroyOnClose:!0},n().createElement(r.Form,{form:d,layout:"vertical"},n().createElement(r.Form.Item,{name:"enabled",valuePropName:"checked",label:s("Enabled")},n().createElement(r.Switch,null)),n().createElement(r.Form.Item,{name:"skillId",label:s("Skill"),rules:[{required:!0}]},n().createElement(r.Select,{showSearch:!0,optionFilterProp:"label",placeholder:s("Select a skill"),options:p.map(function(e){return{value:e.id,label:"".concat(e.title||e.name," (").concat(e.name,")")}})})),n().createElement(r.Form.Item,{name:"title",label:s("Title")},n().createElement(r.Input,{placeholder:s("Optional display title")})),n().createElement(r.Form.Item,{name:"templateKey",label:s("Review Template"),rules:[{required:!0}]},n().createElement(r.Select,{onChange:function(e){var t=eL(e);d.setFieldsValue({prompt:t.schema.prompt,schema:z(t.schema)})}},eN.map(function(e){return n().createElement(r.Select.Option,{key:e.key,value:e.key},e.title," - ",e.description)}))),n().createElement(r.Form.Item,{name:"prompt",label:s("Prompt"),rules:[{required:!0}]},n().createElement(e9,{rows:3})),n().createElement(r.Form.Item,{name:"schema",label:s("Review Schema (JSON)"),rules:[{required:!0}],extra:s("Standard interaction schema. Supported types: confirm, form, select.")},n().createElement(e9,{rows:10,style:{fontFamily:"monospace",fontSize:13}})),n().createElement(r.Form.Item,{name:"config",label:s("Review Config (optional JSON)")},n().createElement(e9,{rows:4,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "maxRetries": 1\n}'})))))};function tn(e,t,n){return(tn=to()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&ta(a,n.prototype),a}).apply(null,arguments)}function tr(e){return(tr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ta(e,t){return(ta=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function tl(e){var t="function"==typeof Map?new Map:void 0;return(tl=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,n)}function n(){return tn(e,arguments,tr(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),ta(n,e)})(e)}function to(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(to=function(){return!!e})()}tl(e.Plugin);var ti=function(){return n().createElement(u,null,n().createElement("div",{style:{padding:"0 24px 24px"}},n().createElement(r.Tabs,{defaultActiveKey:"rules",items:[{key:"rules",label:n().createElement("span",null,n().createElement(a.ApartmentOutlined,null)," Orchestration Rules"),children:n().createElement(k,null)},{key:"tracing",label:n().createElement("span",null,n().createElement(a.MonitorOutlined,null)," Execution Tracing"),children:n().createElement(P,null)},{key:"agent-runs",label:n().createElement("span",null,n().createElement(a.ProfileOutlined,null)," Agent Runs"),children:n().createElement(K,null)},{key:"harness-profiles",label:n().createElement("span",null,n().createElement(a.SettingOutlined,null)," Harness Profiles"),children:n().createElement(ee,null)},{key:"skill-definitions",label:n().createElement("span",null,n().createElement(a.CodeOutlined,null)," Skill Hub Definitions"),children:n().createElement(eA,null)},{key:"skill-executions",label:n().createElement("span",null,n().createElement(a.HistoryOutlined,null)," Execution History"),children:n().createElement(eM,null)},{key:"skill-loop-settings",label:n().createElement("span",null,n().createElement(a.CheckCircleOutlined,null)," Skill Review Settings"),children:n().createElement(tt,null)},{key:"skill-metrics",label:n().createElement("span",null,n().createElement(a.BarChartOutlined,null)," Metrics"),children:n().createElement(e_,null)}]})))};function tu(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function tc(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function ts(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){tc(l,r,a,o,i,"next",e)}function i(e){tc(l,r,a,o,i,"throw",e)}o(void 0)})}}function td(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return tu(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tu(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 tm(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var tp=r.Typography.Paragraph,tf=r.Typography.Text,ty=function(e){var t,n,r;return null!=(r=null!=(n=null==e||null==(t=e.data)?void 0:t.data)?n:null==e?void 0:e.data)?r:e},th=function(t){var a,l,o,i,u=t.toolCall,c=t.decisions,s=(0,e.useAPIClient)(),d=u.args||{},m=d.runId,p=td(n().useState(null),2),f=p[0],y=p[1],h=td(n().useState(!1),2),g=h[0],b=h[1],v=td(n().useState(!1),2),E=v[0],S=v[1],w=td(n().useState(""),2),k=w[0],O=w[1],x="init"===u.invokeStatus||"interrupted"===u.invokeStatus;if(n().useEffect(function(){if(x&&m){var e=!0;return b(!0),s.request({url:"agentLoops:get",params:{filterByTk:m}}).then(function(t){e&&y(ty(t))}).catch(function(){e&&y(null)}).finally(function(){e&&b(!1)}),function(){e=!1}}},[s,x,m]),!x)return null;var C=(null==f?void 0:f.run)||{},I=(Array.isArray(a=(null==f?void 0:f.steps)||d.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||[]}}),A=C.goal||d.goal||"",T=(l=ts(function(){var e;return tm(this,function(t){switch(t.label){case 0:if(m)return[3,2];return[4,c.reject("missing_run_id")];case 1:return t.sent(),[2];case 2:S(!0),t.label=3;case 3:return t.trys.push([3,6,7,8]),[4,s.request({url:"agentLoops:rejectPlan",method:"post",data:{runId:m,reason:k||"Plan rejected by user."}})];case 4:return t.sent(),[4,c.reject(JSON.stringify({reason:"plan_rejected",runId:m,feedback:k}))];case 5:return t.sent(),[3,8];case 6:return e=t.sent(),r.message.error((null==e?void 0:e.message)||"Failed to reject plan"),[3,8];case 7:return S(!1),[7];case 8:return[2]}})}),function(){return l.apply(this,arguments)}),P=(o=ts(function(){var e;return tm(this,function(t){switch(t.label){case 0:if(!k.trim())return r.message.warning("Add feedback before requesting changes."),[2];S(!0),t.label=1;case 1:return t.trys.push([1,4,5,6]),[4,s.request({url:"agentLoops:requestPlanChanges",method:"post",data:{runId:m,feedback:k}})];case 2:return t.sent(),[4,c.reject(JSON.stringify({reason:"changes_requested",runId:m,feedback:k}))];case 3:return t.sent(),[3,6];case 4:return e=t.sent(),r.message.error((null==e?void 0:e.message)||"Failed to request plan changes"),[3,6];case 5:return S(!1),[7];case 6:return[2]}})}),function(){return o.apply(this,arguments)});return n().createElement(r.Card,{size:"small",style:{marginTop:8}},n().createElement(r.Space,{direction:"vertical",size:12,style:{width:"100%"}},n().createElement(r.Alert,{type:"info",showIcon:!0,message:"Review orchestrator plan",description:"Execution starts only after you approve this plan."}),n().createElement(r.Space,{size:8,wrap:!0},m&&n().createElement(r.Tag,{color:"blue"},"Run #",m),n().createElement(r.Tag,{color:"purple"},"Plan v",C.planVersion||d.planVersion||1),n().createElement(r.Tag,{color:"pending"===C.approvalStatus?"gold":"default"},C.approvalStatus||"pending"),(null==(i=C.metadata)?void 0:i.harnessTag)&&n().createElement(r.Tag,null,C.metadata.harnessTag)),A&&n().createElement(tp,{style:{marginBottom:0}},n().createElement(tf,{strong:!0},"Goal: "),A),n().createElement(r.List,{size:"small",loading:g,dataSource:I,locale:{emptyText:"No plan steps found."},renderItem:function(e,t){var a;return n().createElement(r.List.Item,null,n().createElement(r.Space,{direction:"vertical",size:2,style:{width:"100%"}},n().createElement(r.Space,{size:8,wrap:!0},n().createElement(tf,{strong:!0},t+1,". ",e.title),n().createElement(r.Tag,null,e.type),e.target&&n().createElement(r.Tag,{color:"green"},e.target)),e.description&&n().createElement(tf,{type:"secondary"},e.description),(null==(a=e.dependsOn)?void 0:a.length)>0&&n().createElement(tf,{type:"secondary",style:{fontSize:12}},"Depends on: ",e.dependsOn.join(", "))))}}),n().createElement(r.Input.TextArea,{rows:3,value:k,onChange:function(e){return O(e.target.value)},placeholder:"Optional rejection reason or requested changes"}),n().createElement(r.Space,{wrap:!0},n().createElement(r.Button,{type:"primary",loading:E,onClick:function(){return c.approve()}},"Accept & Run"),n().createElement(r.Button,{loading:E,onClick:P},"Request changes"),n().createElement(r.Button,{danger:!0,loading:E,onClick:T},"Reject"))))};function tg(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function tb(){var e;return e=function(e){var t,n;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(r){return(n=null==(t=e.aiManager)?void 0:t.toolsManager)&&n.registerTools("orchestrator_execute_plan",{ui:{card:th}}),[2]})},(tb=function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){tg(l,r,a,o,i,"next",e)}function i(e){tg(l,r,a,o,i,"throw",e)}o(void 0)})}).apply(this,arguments)}function tv(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function tE(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){tv(l,r,a,o,i,"next",e)}function i(e){tv(l,r,a,o,i,"throw",e)}o(void 0)})}}function tS(e,t,n){return(tS=tx()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&tk(a,n.prototype),a}).apply(null,arguments)}function tw(e){return(tw=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function tk(e,t){return(tk=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function tO(e){var t="function"==typeof Map?new Map:void 0;return(tO=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,n)}function n(){return tS(e,arguments,tw(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),tk(n,e)})(e)}function tx(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(tx=function(){return!!e})()}function tC(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var tI=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return e=n,t=arguments,e=tw(e),function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,tx()?Reflect.construct(e,t||[],tw(this).constructor):e.apply(this,t))}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&tk(n,e),t=[{key:"load",value:function(){var e=this;return tE(function(){return tC(this,function(t){switch(t.label){case 0:return e.app.use(eK),e.app.pluginSettingsManager.add("ai.orchestrator",{title:"Agent Orchestrator",icon:"ApartmentOutlined",Component:ti}),[4,e.registerSkillUiCards()];case 1:return t.sent(),[2]}})})()}},{key:"registerSkillUiCards",value:function(){var e=this;return tE(function(){return tC(this,function(t){switch(t.label){case 0:return[4,function(e){return tb.apply(this,arguments)}(e.app)];case 1:return t.sent(),[4,e0(e.app)];case 2:return t.sent(),[2]}})})()}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,t),n}(tO(e.Plugin))}(),i}()});
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("@nocobase/client"),require("@ant-design/icons"),require("antd")):"function"==typeof define&&define.amd?define("plugin-agent-orchestrator",["react","@nocobase/client","@ant-design/icons","antd"],t):"object"==typeof exports?exports["plugin-agent-orchestrator"]=t(require("react"),require("@nocobase/client"),require("@ant-design/icons"),require("antd")):e["plugin-agent-orchestrator"]=t(e.react,e["@nocobase/client"],e["@ant-design/icons"],e.antd)}(self,function(e,t,n,r){return function(){"use strict";var a={482:function(e){e.exports=n},772:function(e){e.exports=t},721:function(e){e.exports=r},156:function(t){t.exports=e}},l={};function o(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}};return a[e](n,n.exports,o),n.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 n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return!function(){o.r(i),o.d(i,{default:function(){return tI},useRunEventStream:function(){return tj}});var e=o(772),t=o(156),n=o.n(t),r=o(721),a=o(482),l=(0,t.createContext)({employees:[],employeeMap:new Map,skillsMap:new Map,loading:!1,refresh:function(){}}),u=function(t){var r=t.children,a=(0,e.useRequest)({url:"aiEmployees:list",params:{pageSize:200}}),o=a.data,i=a.loading,u=a.refresh,c=n().useMemo(function(){var e=((null==o?void 0:o.data)||[]).map(function(e){var t,n,r=Array.isArray(null==(t=e.skillSettings)?void 0:t.skills)?e.skillSettings.skills.map(function(e){return"string"==typeof e?e:null==e?void 0:e.name}).filter(function(e){return"string"==typeof e&&e.length>0}):[];return{username:e.username,nickname:e.nickname||e.username,about:null==(n=e.about)?void 0:n.substring(0,80),skills:r}}),t=new Map,n=new Map,r=!0,a=!1,l=void 0;try{for(var c,s=e[Symbol.iterator]();!(r=(c=s.next()).done);r=!0){var d=c.value;t.set(d.username,d.nickname),n.set(d.username,new Set(d.skills))}}catch(e){a=!0,l=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw l}}return{employees:e,employeeMap:t,skillsMap:n,loading:i,refresh:u}},[o,i,u]);return n().createElement(l.Provider,{value:c},r)},c=function(){return(0,t.useContext)(l)},s=function(e){var t=e.value,a=e.onChange,l=e.exclude,o=e.placeholder,i=c(),u=i.employees,s=i.loading,d=n().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 n().createElement(r.Select,{loading:s,options:d,value:t,onChange:a,placeholder:void 0===o?"Select AI Employee...":o,showSearch:!0,filterOption:function(e,t){var n,r;return(null!=(n=null==t?void 0:t.label)?n:"").toString().toLowerCase().includes(e.toLowerCase())||(null!=(r=null==t?void 0:t.value)?r:"").toString().toLowerCase().includes(e.toLowerCase())},optionRender:function(e){return n().createElement("div",null,n().createElement("div",{style:{fontWeight:500}},e.label),e.data.description&&n().createElement("div",{style:{fontSize:12,color:"#888"}},e.data.description))}})};function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function p(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){m(l,r,a,o,i,"next",e)}function i(e){m(l,r,a,o,i,"throw",e)}o(void 0)})}}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||h(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 y(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||h(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 h(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(e,t)}}function g(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var b=r.Typography.Text,v=function(e){return(e||"").replace(/[^a-zA-Z0-9_-]/g,"_")},E=function(e,t){return"delegate_".concat(v(e),"_to_").concat(v(t))},S=function(e){return"dispatch_subagents_".concat(v(e))},w=["orchestrator_plan_goal","orchestrator_execute_plan","orchestrator_status","orchestrator_cancel"],k=function(){var l,o,i,u,d,m,h=(0,e.useAPIClient)(),v=f((0,t.useState)(!1),2),k=v[0],O=v[1],x=f((0,t.useState)(null),2),C=x[0],I=x[1],A=f(r.Form.useForm(),1)[0],T=(0,e.useRequest)({url:"orchestratorConfig:list",params:{sort:["-createdAt"]}}),P=T.data,j=T.loading,z=T.refresh,D=(0,e.useRequest)({url:"ai:listAllEnabledModels"}),F=D.data,M=D.loading,B=(0,e.useRequest)({url:"agentHarnessProfiles:list",params:{filter:{enabled:!0},sort:["tag"],pageSize:100}}),R=B.data,U=B.loading,_=n().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]),N=n().useMemo(function(){var e,t=null!=(e=null==R?void 0:R.data)?e:R;return Array.isArray(t)?t:Array.isArray(null==t?void 0:t.data)?t.data:[]},[R]),L=c(),q=L.employeeMap,H=L.skillsMap,J=L.refresh,G=n().useMemo(function(){var e=null==P?void 0:P.data;return Array.isArray(e)?e:[]},[P]),K=(l=p(function(e,t){var n,a,l,o,i,u,c,s,d;return g(this,function(m){switch(m.label){case 0:return m.trys.push([0,6,,7]),[4,h.request({url:"aiEmployees:get",params:{filterByTk:e}})];case 1:if(!(o=null==(l=m.sent())||null==(n=l.data)?void 0:n.data))return r.message.error("Could not load AI employee."),[2];if(u=new Set((i=Array.isArray(null==(a=o.skillSettings)?void 0:a.skills)?o.skillSettings.skills:[]).map(function(e){return"string"==typeof e?e:null==e?void 0:e.name})),(c=t.filter(function(e){return!u.has(e)})).length)return[3,3];return r.message.info("Skills already present."),[4,J()];case 2:return m.sent(),[2];case 3:var p,f;return s=y(i).concat(y(c.map(function(e){return{name:e,autoCall:!1}}))),[4,h.request({url:"aiEmployees:update",method:"put",params:{filterByTk:e},data:{skillSettings:(p=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o.skillSettings||{}),f=f={skills:s},Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(f)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(f)).forEach(function(e){Object.defineProperty(p,e,Object.getOwnPropertyDescriptor(f,e))}),p)}})];case 4:return m.sent(),r.message.success("Added ".concat(c.length," skill").concat(c.length>1?"s":""," to ").concat(e,".")),[4,J()];case 5:return m.sent(),[3,7];case 6:return d=m.sent(),r.message.error("Auto-assign failed: ".concat((null==d?void 0:d.message)||"unknown error")),[3,7];case 7:return[2]}})}),function(e,t){return l.apply(this,arguments)}),W=(o=p(function(e,t){return g(this,function(n){switch(n.label){case 0:return[4,K(e,[t])];case 1:return n.sent(),[2]}})}),function(e,t){return o.apply(this,arguments)}),$=(i=p(function(e){return g(this,function(t){switch(t.label){case 0:return[4,W(e.leaderUsername,E(e.leaderUsername,e.subAgentUsername))];case 1:return t.sent(),[2]}})}),function(e){return i.apply(this,arguments)}),V=(u=p(function(e){return g(this,function(t){switch(t.label){case 0:return[4,W(e,S(e))];case 1:return t.sent(),[2]}})}),function(e){return u.apply(this,arguments)}),Z=n().useMemo(function(){var e=new Map,t=!0,n=!1,r=void 0;try{for(var a,l=G[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){n=!0,r=e}finally{try{t||null==l.return||l.return()}finally{if(n)throw r}}return e},[G]),Y=n().useMemo(function(){return Array.from(Z.entries()).filter(function(e){return f(e,2)[1].size>1}).map(function(e){var t=f(e,2);return{sub:t[0],leaders:Array.from(t[1])}})},[Z]),Q=n().useMemo(function(){var e=new Map,t=!0,n=!1,r=void 0;try{for(var a,l=G[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){n=!0,r=e}finally{try{t||null==l.return||l.return()}finally{if(n)throw r}}return Array.from(e.entries()).map(function(e){var t=f(e,2);return{leaderUsername:t[0],items:t[1]}})},[G]),X=function(e){I(e),e?A.setFieldsValue(e):(A.resetFields(),A.setFieldsValue({enabled:!0,maxDepth:1,timeout:12e4,recursionLimit:50,harnessTag:"default"})),O(!0)},ee=function(){O(!1),I(null)},et=(d=p(function(e){var t,n,a,l,o,i;return g(this,function(u){switch(u.label){case 0:if(e.leaderUsername===e.subAgentUsername)return r.message.error("Leader and Sub-Agent cannot be the same employee."),[2];u.label=1;case 1:if(u.trys.push([1,6,,7]),!C)return[3,3];return[4,h.request({url:"orchestratorConfig:update",method:"put",params:{filterByTk:C.id},data:e})];case 2:return u.sent(),r.message.success("Rule updated"),[3,5];case 3:return[4,h.request({url:"orchestratorConfig:create",method:"post",data:e})];case 4:u.sent(),r.message.success("Rule created"),u.label=5;case 5:return ee(),z(),[3,7];case 6:return i=(null==(t=u.sent())||null==(o=t.response)||null==(l=o.data)||null==(a=l.errors)||null==(n=a[0])?void 0:n.message)||t.message,r.message.error("Save failed: ".concat(i)),[3,7];case 7:return[2]}})}),function(e){return d.apply(this,arguments)}),en=(m=p(function(e){var t;return g(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,h.request({url:"orchestratorConfig:destroy",method:"delete",params:{filterByTk:e}})];case 1:return n.sent(),r.message.success("Rule deleted"),z(),[3,3];case 2:return t=n.sent(),r.message.error("Delete failed: ".concat(t.message)),[3,3];case 3:return[2]}})}),function(e){return m.apply(this,arguments)}),er=[{title:"Leader (Orchestrator)",dataIndex:"leaderUsername",key:"leaderUsername",render:function(e){return n().createElement(r.Tag,{color:"blue"},q.get(e)||e)}},{title:"",key:"arrow",width:50,render:function(){return n().createElement(a.SwapRightOutlined,{style:{color:"#999",fontSize:18}})}},{title:"Sub-Agent",dataIndex:"subAgentUsername",key:"subAgentUsername",render:function(e){return n().createElement(r.Tag,{color:"green"},q.get(e)||e)}},{title:"Harness",dataIndex:"harnessTag",key:"harnessTag",width:120,render:function(e){return n().createElement(r.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=_.find(function(e){return e.llmService===t.llmService}),l=a?a.llmServiceTitle:t.llmService;return n().createElement(r.Space,{direction:"vertical",size:0},n().createElement(b,{style:{fontSize:12}},l),n().createElement(b,{type:"secondary",style:{fontSize:12}},t.model))}return n().createElement(b,{type:"secondary",style:{fontSize:12}},"Inherited")}},{title:"Enabled",dataIndex:"enabled",key:"enabled",width:80,render:function(e,t){var a;return n().createElement(r.Switch,{checked:e,size:"small",onChange:(a=p(function(e){return g(this,function(n){switch(n.label){case 0:return[4,h.request({url:"orchestratorConfig:update",method:"put",params:{filterByTk:t.id},data:{enabled:e}})];case 1:return n.sent(),z(),[2]}})}),function(e){return a.apply(this,arguments)})})}},{title:"Skill",key:"skill",width:150,render:function(e,t){var l=E(t.leaderUsername,t.subAgentUsername),o=H.get(t.leaderUsername);return o?o.has(l)?n().createElement(r.Tag,{color:"success"},"Assigned"):n().createElement(r.Space,{size:4},n().createElement(r.Tag,{icon:n().createElement(a.WarningOutlined,null),color:"warning"},"Missing"),n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.ThunderboltOutlined,null),onClick:function(){return $(t)}},"Auto-add")):n().createElement(b,{type:"secondary",style:{fontSize:12}},"—")}},{title:"Actions",key:"actions",width:160,render:function(e,t){return n().createElement(r.Space,null,n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.EditOutlined,null),onClick:function(){return X(t)}},"Edit"),n().createElement(r.Popconfirm,{title:"Delete this rule?",onConfirm:function(){return en(t.id)}},n().createElement(r.Button,{type:"link",size:"small",danger:!0,icon:n().createElement(a.DeleteOutlined,null)},"Delete")))}}],ea=r.Form.useWatch("leaderUsername",A),el=n().useMemo(function(){return G.reduce(function(e,t){var n=H.get(t.leaderUsername);if(!n)return e;var r=E(t.leaderUsername,t.subAgentUsername);return n.has(r)?e:e+1},0)},[G,H]),eo=n().useMemo(function(){return Q.map(function(e){var t=H.get(e.leaderUsername);if(!t)return null;var n=S(e.leaderUsername);return t.has(n)?null:{leaderUsername:e.leaderUsername,toolName:n,count:e.items.length}}).filter(Boolean)},[Q,H]),ei=n().useMemo(function(){return Q.map(function(e){var t=H.get(e.leaderUsername);if(!t)return null;var n=w.filter(function(e){return!t.has(e)});return n.length?{leaderUsername:e.leaderUsername,missing:n}:null}).filter(Boolean)},[Q,H]);return n().createElement("div",null,n().createElement(r.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Orchestration Rules",description:n().createElement(b,{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.")}),el>0&&n().createElement(r.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(el," rule").concat(el>1?"s":""," missing required skill assignment"),description:n().createElement(b,{type:"secondary"},"The Leader employee hasn't added the corresponding"," ",n().createElement(b,{code:!0},"delegate_<leader>_to_<sub>")," tool to its skillSettings, so the LLM cannot actually call these sub-agents. Use the ",n().createElement("b",null,"Auto-add")," button in the Skill column to fix.")}),ei.length>0&&n().createElement(r.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(ei.length," leader").concat(ei.length>1?"s":""," missing orchestrator controller tools"),description:n().createElement(r.Space,{direction:"vertical",size:6},n().createElement(b,{type:"secondary"},"Leaders need the orchestrator controller tools to create an approval-first plan and execute it after the user accepts the card."),ei.map(function(e){var t=e.leaderUsername,l=e.missing;return n().createElement(r.Space,{key:t,size:8,wrap:!0},n().createElement(r.Tag,{color:"blue"},q.get(t)||t),n().createElement(b,{type:"secondary"},l.length," missing"),n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.ThunderboltOutlined,null),onClick:function(){return K(t,l)}},"Auto-add"))}))}),eo.length>0&&n().createElement(r.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(eo.length," leader").concat(eo.length>1?"s":""," missing dispatch skill assignment"),description:n().createElement(r.Space,{direction:"vertical",size:6},n().createElement(b,{type:"secondary"},"The fan-out tool lets a Leader dispatch multiple independent sub-tasks in one call. Add it to the Leader's skills to enable the new multi-agent flow."),eo.map(function(e){var t=e.leaderUsername,l=e.toolName,o=e.count;return n().createElement(r.Space,{key:t,size:8,wrap:!0},n().createElement(r.Tag,{color:"blue"},q.get(t)||t),n().createElement(b,{type:"secondary"},o," sub-agent",o>1?"s":""),n().createElement(b,{code:!0},l),n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.ThunderboltOutlined,null),onClick:function(){return V(t)}},"Auto-add"))}))}),Y.length>0&&n().createElement(r.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"Legacy delegate_to_<sub> alias is no longer registered for these sub-agents",description:n().createElement(r.Space,{direction:"vertical",size:2},Y.map(function(e){var t=e.sub,a=e.leaders;return n().createElement(b,{key:t,type:"secondary"},n().createElement(r.Tag,{color:"green"},q.get(t)||t),"has multiple leaders (",a.map(function(e){return q.get(e)||e}).join(", "),"). The legacy alias is dropped to avoid ambiguity — leaders must use ",n().createElement(b,{code:!0},"delegate_<leader>_to_<sub>")," ","in their skills.")}))}),n().createElement(r.Card,{bordered:!1},n().createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"flex-end"}},n().createElement(r.Button,{type:"primary",icon:n().createElement(a.PlusOutlined,null),onClick:function(){return X()}},"New Rule")),Q.length?n().createElement(r.Collapse,{bordered:!1,defaultActiveKey:Q.map(function(e){return e.leaderUsername}),items:Q.map(function(e){return{key:e.leaderUsername,label:n().createElement(r.Space,null,n().createElement(r.Tag,{color:"blue"},q.get(e.leaderUsername)||e.leaderUsername),n().createElement(b,{type:"secondary"},e.items.length," sub-agent",e.items.length>1?"s":""),eo.some(function(t){return t.leaderUsername===e.leaderUsername})&&n().createElement(r.Tag,{color:"warning"},"Dispatch missing")),children:n().createElement(r.Table,{rowKey:"id",loading:j,dataSource:e.items,columns:er,pagination:!1,size:"middle"})}})}):n().createElement(r.Table,{rowKey:"id",loading:j,dataSource:[],columns:er,pagination:!1,size:"middle",locale:{emptyText:n().createElement(r.Empty,{description:"No orchestration rules yet"})}})),n().createElement(r.Drawer,{title:C?"Edit Orchestration Rule":"New Orchestration Rule",width:480,onClose:ee,open:k,styles:{body:{paddingBottom:80}},extra:n().createElement(r.Space,null,n().createElement(r.Button,{onClick:ee},"Cancel"),n().createElement(r.Button,{onClick:function(){return A.submit()},type:"primary"},"Save"))},n().createElement(r.Form,{form:A,layout:"vertical",onFinish:et},n().createElement(r.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"},n().createElement(s,{placeholder:"Select Leader AI Employee..."})),n().createElement(r.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"},n().createElement(s,{placeholder:"Select Sub-Agent AI Employee...",exclude:ea})),n().createElement(r.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)"},n().createElement(r.InputNumber,{min:1,max:3,style:{width:"100%"}})),n().createElement(r.Form.Item,{name:"timeout",label:"Timeout (ms)",tooltip:"Maximum time in milliseconds for the sub-agent to complete its task"},n().createElement(r.InputNumber,{min:1e4,max:6e5,step:1e4,style:{width:"100%"}})),n().createElement(r.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."},n().createElement(r.InputNumber,{min:5,max:200,step:5,style:{width:"100%"}})),n().createElement(r.Form.Item,{name:"harnessTag",label:"Harness Profile",tooltip:"Profile tag used by plan approval, controller limits, and orchestration policy."},n().createElement(r.Select,{loading:U,options:[{label:"default",value:"default"}].concat(y(N.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}})))})),n().createElement(r.Form.Item,{name:"llmService",label:"Override LLM Service",tooltip:"Optional: Provider name. Leave empty to inherit from Leader."},n().createElement(r.Select,{allowClear:!0,placeholder:"Inherit from Leader",loading:M,options:_.map(function(e){return{label:e.llmServiceTitle||e.llmService,value:e.llmService}}),onChange:function(){return A.setFieldValue("model",void 0)}})),n().createElement(r.Form.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.llmService!==t.llmService}},function(){var e=A.getFieldValue("llmService"),t=_.find(function(t){return t.llmService===e}),a=Array.isArray(null==t?void 0:t.enabledModels)?t.enabledModels:[];return n().createElement(r.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"}]},n().createElement(r.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}})}))}),n().createElement(r.Form.Item,{name:"enabled",label:"Enabled",valuePropName:"checked"},n().createElement(r.Switch,null)))))};function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function x(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function C(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return O(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var I=r.Typography.Text,A=r.Typography.Paragraph,T=r.DatePicker.RangePicker,P=function(){var l,o,i,u=(0,e.useAPIClient)(),s=C((0,t.useState)(null),2),d=s[0],m=s[1],p=C((0,t.useState)(!1),2),f=p[0],y=p[1],h=C((0,t.useState)(1),2),g=h[0],b=h[1],v=C((0,t.useState)(20),2),E=v[0],S=v[1],w=C((0,t.useState)({}),2),k=w[0],O=w[1],P=c(),j=P.employees,z=P.employeeMap,D=(0,t.useMemo)(function(){var e={};return k.leader&&(e.leaderUsername=k.leader),k.subAgent&&(e.subAgentUsername=k.subAgent),k.status&&(e.status=k.status),k.range&&(k.range[0]||k.range[1])&&(e.createdAt={},k.range[0]&&(e.createdAt.$gte=k.range[0].toDate().toISOString()),k.range[1]&&(e.createdAt.$lte=k.range[1].toDate().toISOString())),{sort:["-createdAt"],page:g,pageSize:E,filter:e}},[g,E,k]),F=(0,e.useRequest)({url:"orchestratorTracing:list",params:D},{refreshDeps:[D]}),M=F.data,B=F.loading,R=F.refresh,U=(0,t.useMemo)(function(){var e=null==M?void 0:M.data;return Array.isArray(e)?e:[]},[M]),_=(0,t.useMemo)(function(){var e,t=null==M||null==(e=M.meta)?void 0:e.count;return"number"==typeof t?t:0},[M]),N=function(e){return e?e>=1e3?"".concat((e/1e3).toFixed(1),"s"):"".concat(e,"ms"):"-"},L=(l=function(e){var t,n;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:m(e),y(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),[4,u.request({url:"orchestratorTracing:get",params:{filterByTk:e.id,source:e.hasUnifiedTrace?"span":"log"}})];case 2:return m((null==(n=r.sent())||null==(t=n.data)?void 0:t.data)||(null==n?void 0:n.data)||e),[3,4];case 3:return y(!1),[7];case 4:return[2]}})},o=function(){var e=this,t=arguments;return new Promise(function(n,r){var a=l.apply(e,t);function o(e){x(a,n,r,o,i,"next",e)}function i(e){x(a,n,r,o,i,"throw",e)}o(void 0)})},function(e){return o.apply(this,arguments)}),q=function(e){O(function(t){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},t,e)}),b(1)},H=(0,t.useMemo)(function(){return j.map(function(e){return{label:e.nickname||e.username,value:e.username}})},[j]),J=!!(k.leader||k.subAgent||k.status||k.range&&(k.range[0]||k.range[1])),G=[{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 n().createElement(r.Tag,{color:"blue"},z.get(e)||e)}},{title:"Sub-Agent",dataIndex:"subAgentUsername",key:"subAgentUsername",render:function(e){return n().createElement(r.Tag,{color:"green"},z.get(e)||e)}},{title:"Task",dataIndex:"task",key:"task",render:function(e){return n().createElement(I,{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 n().createElement(r.Tag,{icon:"success"===e?n().createElement(a.CheckCircleOutlined,null):n().createElement(a.CloseCircleOutlined,null),color:"success"===e?"success":"error"},e)}},{title:"Duration",dataIndex:"durationMs",key:"durationMs",width:90,render:N},{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 n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.EyeOutlined,null),onClick:function(){return L(t)}},"Detail")}}];return n().createElement("div",null,n().createElement(r.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Execution Tracing",description:n().createElement(I,{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.")}),n().createElement(r.Card,{bordered:!1},n().createElement(r.Form,{layout:"inline",style:{marginBottom:16,rowGap:8,flexWrap:"wrap"}},n().createElement(r.Form.Item,{label:"Leader"},n().createElement(r.Select,{allowClear:!0,placeholder:"Any leader",style:{minWidth:180},options:H,value:k.leader,onChange:function(e){return q({leader:e})},showSearch:!0,optionFilterProp:"label"})),n().createElement(r.Form.Item,{label:"Sub-Agent"},n().createElement(r.Select,{allowClear:!0,placeholder:"Any sub-agent",style:{minWidth:180},options:H,value:k.subAgent,onChange:function(e){return q({subAgent:e})},showSearch:!0,optionFilterProp:"label"})),n().createElement(r.Form.Item,{label:"Status"},n().createElement(r.Select,{allowClear:!0,placeholder:"Any status",style:{minWidth:140},options:[{label:"Success",value:"success"},{label:"Error",value:"error"},{label:"Running",value:"running"}],value:k.status,onChange:function(e){return q({status:e})}})),n().createElement(r.Form.Item,{label:"Time"},n().createElement(T,{showTime:!0,value:k.range,onChange:function(e){return q({range:e})}})),n().createElement(r.Form.Item,null,n().createElement(r.Space,null,n().createElement(r.Button,{onClick:function(){O({}),b(1)},disabled:!J},"Reset"),n().createElement(r.Button,{icon:n().createElement(a.ReloadOutlined,null),onClick:R},"Refresh")))),n().createElement(r.Table,{rowKey:"id",loading:B,dataSource:U,columns:G,size:"middle",pagination:{current:g,pageSize:E,total:_,showSizeChanger:!0,pageSizeOptions:[10,20,50,100],showTotal:function(e){return"".concat(e," execution").concat(1===e?"":"s")},onChange:function(e,t){b(e),t&&t!==E&&S(t)}},locale:{emptyText:n().createElement(r.Empty,{description:J?"No executions match the current filters":"No delegation executions yet"})}})),n().createElement(r.Drawer,{title:"Execution Detail",width:820,onClose:function(){return m(null)},open:!!d},d&&n().createElement(r.Spin,{spinning:f},n().createElement(n().Fragment,null,n().createElement(r.Descriptions,{column:1,bordered:!0,size:"small",style:{marginBottom:16}},n().createElement(r.Descriptions.Item,{label:"Status"},n().createElement(r.Tag,{icon:"success"===d.status?n().createElement(a.CheckCircleOutlined,null):n().createElement(a.CloseCircleOutlined,null),color:"success"===d.status?"success":"error"},d.status)),n().createElement(r.Descriptions.Item,{label:"Leader"},n().createElement(r.Tag,{color:"blue"},z.get(d.leaderUsername)||d.leaderUsername)),n().createElement(r.Descriptions.Item,{label:"Sub-Agent"},n().createElement(r.Tag,{color:"green"},z.get(d.subAgentUsername)||d.subAgentUsername)),n().createElement(r.Descriptions.Item,{label:"Tool"},n().createElement(I,{code:!0},d.toolName)),n().createElement(r.Descriptions.Item,{label:"Depth"},null!=(i=d.depth)?i:0),n().createElement(r.Descriptions.Item,{label:"Duration"},N(d.durationMs)),n().createElement(r.Descriptions.Item,{label:"Time"},d.createdAt?new Date(d.createdAt).toLocaleString():"-")),n().createElement(r.Card,{title:"Task",size:"small",style:{marginBottom:16}},n().createElement(A,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},d.task||"No task description")),d.context&&n().createElement(r.Card,{title:"Context",size:"small",style:{marginBottom:16}},n().createElement(A,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},d.context)),n().createElement(r.Card,{title:"Execution Flow",size:"small",style:{marginBottom:16}},Array.isArray(d.trace)&&d.trace.length?n().createElement(r.Timeline,{items:d.trace.map(function(e,t){return{key:t,color:"error"===e.status?"red":"tool_call"===e.type?"blue":"green",children:n().createElement("div",null,n().createElement(r.Space,{direction:"vertical",size:2,style:{width:"100%"}},n().createElement(I,{strong:!0},e.title||e.type),n().createElement(I,{type:"secondary"},e.at?new Date(e.at).toLocaleString():""),e.toolName&&n().createElement(I,{code:!0},e.toolName),e.skillExecutionId&&n().createElement(I,{type:"secondary"},"Skill execution #",e.skillExecutionId),e.content&&n().createElement(A,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},e.content),e.args&&n().createElement(A,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:12}},JSON.stringify(e.args,null,2))))}})}):n().createElement(r.Empty,{description:"No execution flow captured"})),Array.isArray(d.messages)&&d.messages.length>0&&n().createElement(r.Collapse,{style:{marginBottom:16},items:[{key:"messages",label:"Raw messages (".concat(d.messages.length,")"),children:n().createElement(r.Space,{direction:"vertical",style:{width:"100%"}},d.messages.map(function(e){var t;return n().createElement(r.Card,{key:e.index,size:"small",title:"".concat(e.index+1,". ").concat(e.type)},n().createElement(A,{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&&n().createElement(A,{style:{whiteSpace:"pre-wrap",margin:"8px 0 0",fontSize:12}},JSON.stringify(e.toolCalls,null,2)))}))}]}),n().createElement(r.Card,{title:"Result",size:"small",style:{marginBottom:16,borderColor:"success"===d.status?"#b7eb8f":"#ffa39e"}},n().createElement(A,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13},ellipsis:{rows:20,expandable:!0}},d.result||d.error||"No result")),d.error&&n().createElement(r.Card,{title:"Error",size:"small",style:{borderColor:"#ffa39e"}},n().createElement(A,{type:"danger",style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},d.error))))))};function j(e,t){if(null==e||""===e)return t;if("string"!=typeof e)return e;var n=e.trim(),r=n.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),a=r?r[1].trim():n;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 z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=j(e,void 0),r=void 0===n?null==e||""===e?t:e:n;return null==r?"":"string"==typeof r?r:JSON.stringify(r,null,2)}function D(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=j(e,void 0),r=void 0===n?null==e||""===e?t:e:n;return"```json\n".concat(JSON.stringify(r,null,2),"\n```")}function F(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function M(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function B(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){M(l,r,a,o,i,"next",e)}function i(e){M(l,r,a,o,i,"throw",e)}o(void 0)})}}function R(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return F(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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.")}()}function U(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var _=r.Typography.Paragraph,N=r.Typography.Text,L=new Set(["succeeded","failed","rejected","canceled"]);function q(e){var t=e.status;return n().createElement(r.Tag,{icon:function(e){switch(e){case"succeeded":case"success":return n().createElement(a.CheckCircleOutlined,null);case"failed":case"error":return n().createElement(a.CloseCircleOutlined,null);case"waiting_user":case"waiting_plan_approval":case"needs_replan":return n().createElement(a.PauseCircleOutlined,null);case"approved":case"running":case"planning":return n().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 H(e){return e?new Date(e).toLocaleString():"-"}function J(e,t){if(!e)return"-";var n=new Date(e).getTime(),r=Math.max(0,(t?new Date(t).getTime():Date.now())-n);return r>=6e4?"".concat(Math.round(r/6e4),"m"):r>=1e3?"".concat((r/1e3).toFixed(1),"s"):"".concat(r,"ms")}function G(e){var t=e.value,r=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?n().createElement(_,{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:12},ellipsis:{rows:void 0===r?10:r,expandable:!0}},a):n().createElement(N,{type:"secondary"},"-")}var K=function(){var l,o,i,u,s=(0,e.useAPIClient)(),d=c(),m=d.employees,p=d.employeeMap,f=R((0,t.useState)({}),2),y=f[0],h=f[1],g=R((0,t.useState)(1),2),b=g[0],v=g[1],E=R((0,t.useState)(20),2),S=E[0],w=E[1],k=R((0,t.useState)(null),2),O=k[0],x=k[1],C=R((0,t.useState)(null),2),I=C[0],A=C[1],T=R((0,t.useState)(!1),2),P=T[0],z=T[1],D=R((0,t.useState)(!1),2),F=D[0],M=D[1],K=(0,t.useMemo)(function(){var e={};return y.leader&&(e.leaderUsername=y.leader),y.status&&(e.status=y.status),{sort:["-createdAt"],page:b,pageSize:S,filter:e}},[y,b,S]),W=(0,e.useRequest)({url:"agentLoops:list",params:K},{refreshDeps:[K]}),$=W.data,V=W.loading,Z=W.refresh,Y=(0,t.useMemo)(function(){var e=null==$?void 0:$.data;return Array.isArray(e)?e:[]},[$]),Q=(0,t.useMemo)(function(){var e,t=null==$||null==(e=$.meta)?void 0:e.count;return"number"==typeof t?t:0},[$]),X=(0,t.useMemo)(function(){return m.map(function(e){return{label:e.nickname||e.username,value:e.username}})},[m]),ee=(l=B(function(e,t){var n,r;return U(this,function(a){switch(a.label){case 0:x(t||O||{id:e}),z(!0),a.label=1;case 1:return a.trys.push([1,,3,4]),[4,s.request({url:"agentLoops:get",params:{filterByTk:e}})];case 2:return A((null==(r=a.sent())||null==(n=r.data)?void 0:n.data)||(null==r?void 0:r.data)||null),[3,4];case 3:return z(!1),[7];case 4:return[2]}})}),function(e,t){return l.apply(this,arguments)}),et=function(e){h(function(t){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},t,e)}),v(1)},en=(o=B(function(e,t){var n,a;return U(this,function(l){switch(l.label){case 0:M(!0),l.label=1;case 1:return l.trys.push([1,4,5,6]),[4,s.request({url:"cancel"===e?"agentLoops:cancel":"agentLoops:resume",method:"POST",data:"cancel"===e?{runId:t}:{runId:t,stepId:null==I||null==(n=I.run)?void 0:n.currentStepId,approved:!0}})];case 2:return l.sent(),r.message.success("cancel"===e?"Run canceled":"Run resumed"),Z(),[4,ee(t)];case 3:return l.sent(),[3,6];case 4:return a=l.sent(),r.message.error((null==a?void 0:a.message)||"Failed to ".concat(e," run")),[3,6];case 5:return M(!1),[7];case 6:return[2]}})}),function(e,t){return o.apply(this,arguments)}),er=(i=B(function(e){var t,n,a;return U(this,function(l){switch(l.label){case 0:n=(null==I||null==(t=I.run)?void 0:t.id)||(null==O?void 0:O.id),M(!0),l.label=1;case 1:return l.trys.push([1,5,6,7]),[4,s.request({url:"agentLoops:retryStep",method:"POST",data:{stepId:e}})];case 2:if(l.sent(),r.message.success("Step queued for retry"),Z(),!n)return[3,4];return[4,ee(n)];case 3:l.sent(),l.label=4;case 4:return[3,7];case 5:return a=l.sent(),r.message.error((null==a?void 0:a.message)||"Failed to retry step"),[3,7];case 6:return M(!1),[7];case 7:return[2]}})}),function(e){return i.apply(this,arguments)}),ea=[{title:"Time",dataIndex:"createdAt",key:"createdAt",width:170,render:H},{title:"Leader",dataIndex:"leaderUsername",key:"leaderUsername",width:160,render:function(e){return n().createElement(r.Tag,{color:"blue"},p.get(e)||e||"-")}},{title:"Goal",dataIndex:"goal",key:"goal",render:function(e){return n().createElement(N,{ellipsis:!0,style:{maxWidth:380}},e||"-")}},{title:"Status",dataIndex:"status",key:"status",width:130,render:function(e){return n().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 J(t.startedAt||t.createdAt,t.endedAt)}},{title:"",key:"actions",width:90,render:function(e,t){return n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.EyeOutlined,null),onClick:function(){return ee(t.id,t)}},"Detail")}}],el=Array.isArray(null==I?void 0:I.steps)?I.steps:[],eo=Array.isArray(null==I?void 0:I.events)?I.events:[],ei=Array.isArray(null==I?void 0:I.spans)?I.spans:[],eu=Array.isArray(null==I?void 0:I.skillExecutions)?I.skillExecutions:[],ec=(null==I?void 0:I.run)||O,es=!!(y.leader||y.status),ed=[{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 n().createElement(q,{status:e})}},{title:"Type",dataIndex:"type",key:"type",width:110,render:function(e){return n().createElement(r.Tag,null,e)}},{title:"Step",key:"step",render:function(e,t){return n().createElement(r.Space,{direction:"vertical",size:2,style:{width:"100%"}},n().createElement(N,{strong:!0},t.title||t.planKey),t.description&&n().createElement(N,{type:"secondary"},t.description),t.target&&n().createElement(N,{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 n().createElement(r.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)?n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.RedoOutlined,null),loading:F,onClick:function(){return er(t.id)}},"Retry"):null}}];return n().createElement("div",null,n().createElement(r.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Agent Runs",description:n().createElement(N,{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.")}),n().createElement(r.Card,{bordered:!1},n().createElement(r.Form,{layout:"inline",style:{marginBottom:16,rowGap:8,flexWrap:"wrap"}},n().createElement(r.Form.Item,{label:"Leader"},n().createElement(r.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:"Any leader",style:{minWidth:180},options:X,value:y.leader,onChange:function(e){return et({leader:e})}})),n().createElement(r.Form.Item,{label:"Status"},n().createElement(r.Select,{allowClear:!0,placeholder:"Any status",style:{minWidth:160},value:y.status,onChange:function(e){return et({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"}]})),n().createElement(r.Form.Item,null,n().createElement(r.Space,null,n().createElement(r.Button,{onClick:function(){h({}),v(1)},disabled:!es},"Reset"),n().createElement(r.Button,{icon:n().createElement(a.ReloadOutlined,null),onClick:Z},"Refresh")))),n().createElement(r.Table,{rowKey:"id",loading:V,dataSource:Y,columns:ea,pagination:{current:b,pageSize:S,total:Q,showSizeChanger:!0,pageSizeOptions:[10,20,50,100],showTotal:function(e){return"".concat(e," run").concat(1===e?"":"s")},onChange:function(e,t){v(e),t&&t!==S&&w(t)}},locale:{emptyText:n().createElement(r.Empty,{description:es?"No runs match the current filters":"No agent runs yet"})}})),n().createElement(r.Drawer,{title:"Agent Run Detail",width:980,onClose:function(){x(null),A(null)},open:!!O},ec&&n().createElement(r.Spin,{spinning:P},n().createElement(r.Space,{direction:"vertical",size:16,style:{width:"100%"}},n().createElement(r.Space,{wrap:!0},n().createElement(r.Button,{icon:n().createElement(a.ReloadOutlined,null),onClick:function(){return ee(ec.id)},loading:P},"Refresh"),"waiting_user"===ec.status&&n().createElement(r.Button,{type:"primary",icon:n().createElement(a.PlayCircleOutlined,null),loading:F,onClick:function(){return en("resume",ec.id)}},"Resume"),!L.has(ec.status)&&n().createElement(r.Popconfirm,{title:"Cancel this run?",onConfirm:function(){return en("cancel",ec.id)}},n().createElement(r.Button,{danger:!0,icon:n().createElement(a.StopOutlined,null),loading:F},"Cancel run"))),n().createElement(r.Descriptions,{bordered:!0,size:"small",column:2},n().createElement(r.Descriptions.Item,{label:"Status"},n().createElement(q,{status:ec.status})),n().createElement(r.Descriptions.Item,{label:"Leader"},n().createElement(r.Tag,{color:"blue"},p.get(ec.leaderUsername)||ec.leaderUsername||"-")),n().createElement(r.Descriptions.Item,{label:"Root run"},n().createElement(N,{code:!0},ec.rootRunId||"-")),n().createElement(r.Descriptions.Item,{label:"Current step"},n().createElement(N,{code:!0},ec.currentStepId||"-")),n().createElement(r.Descriptions.Item,{label:"Iterations"},ec.iterationCount||0),n().createElement(r.Descriptions.Item,{label:"Approval"},ec.approvalStatus||"-"),n().createElement(r.Descriptions.Item,{label:"Plan version"},ec.planVersion||"-"),n().createElement(r.Descriptions.Item,{label:"Harness"},(null==(u=ec.metadata)?void 0:u.harnessTag)||"-"),n().createElement(r.Descriptions.Item,{label:"Duration"},J(ec.startedAt||ec.createdAt,ec.endedAt)),n().createElement(r.Descriptions.Item,{label:"Started"},H(ec.startedAt||ec.createdAt)),n().createElement(r.Descriptions.Item,{label:"Ended"},H(ec.endedAt))),n().createElement(r.Card,{title:"Goal",size:"small"},n().createElement(G,{value:ec.goal,rows:6})),n().createElement(r.Card,{title:"Plan",size:"small",extra:n().createElement(a.BranchesOutlined,null)},n().createElement(r.Table,{rowKey:"id",size:"small",dataSource:el,columns:ed,pagination:!1,expandable:{expandedRowRender:function(e){return n().createElement(r.Space,{direction:"vertical",size:12,style:{width:"100%"}},n().createElement(r.Card,{size:"small",title:"Input"},n().createElement(G,{value:e.input,rows:8})),n().createElement(r.Card,{size:"small",title:"Output"},n().createElement(G,{value:e.output,rows:8})),e.approval&&Object.keys(e.approval).length>0&&n().createElement(r.Card,{size:"small",title:"Approval"},n().createElement(G,{value:e.approval,rows:8})),e.error&&n().createElement(r.Card,{size:"small",title:"Error",style:{borderColor:"#ffa39e"}},n().createElement(G,{value:e.error,rows:8})))}},locale:{emptyText:n().createElement(r.Empty,{description:"No plan steps"})}})),n().createElement(r.Card,{title:"Event Timeline",size:"small"},eo.length?n().createElement(r.Timeline,{items:eo.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:n().createElement(r.Space,{direction:"vertical",size:2,style:{width:"100%"}},n().createElement(r.Space,{wrap:!0},n().createElement(N,{strong:!0},e.title||e.type),n().createElement(q,{status:e.status}),e.stepId&&n().createElement(N,{type:"secondary"},"step #",e.stepId)),n().createElement(N,{type:"secondary"},H(e.createdAt)),e.content&&n().createElement(G,{value:e.content,rows:4}))}})}):n().createElement(r.Empty,{description:"No events captured"})),n().createElement(r.Collapse,{items:[{key:"spans",label:"Linked spans (".concat(ei.length,")"),children:ei.length?n().createElement(r.Table,{rowKey:"id",size:"small",dataSource:ei,pagination:!1,columns:[{title:"Type",dataIndex:"type",key:"type",width:110,render:function(e){return n().createElement(r.Tag,null,e)}},{title:"Status",dataIndex:"status",key:"status",width:110,render:function(e){return n().createElement(q,{status:e})}},{title:"Title",dataIndex:"title",key:"title"},{title:"Tool",dataIndex:"toolName",key:"toolName",render:function(e){return e?n().createElement(N,{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||"-"}}]}):n().createElement(r.Empty,{description:"No linked spans"})},{key:"skills",label:"Skill executions (".concat(eu.length,")"),children:eu.length?n().createElement(r.Space,{direction:"vertical",size:12,style:{width:"100%"}},eu.map(function(e){var t=j(e.outputFiles,[]);return n().createElement(r.Card,{key:e.id,size:"small",title:n().createElement(r.Space,{wrap:!0},n().createElement(N,null,"Skill execution #",e.id),n().createElement(q,{status:e.status}),e.agentLoopStepId&&n().createElement(N,{type:"secondary"},"step #",e.agentLoopStepId))},n().createElement(r.Space,{direction:"vertical",size:8,style:{width:"100%"}},n().createElement(r.Descriptions,{size:"small",column:2},n().createElement(r.Descriptions.Item,{label:"Duration"},e.durationMs?"".concat(e.durationMs,"ms"):"-"),n().createElement(r.Descriptions.Item,{label:"Created"},H(e.createdAt))),n().createElement(r.Collapse,{size:"small",items:[{key:"stdout",label:"stdout",children:n().createElement(G,{value:e.stdout,rows:10})},{key:"stderr",label:"stderr",children:n().createElement(G,{value:e.stderr,rows:10})},{key:"files",label:"files (".concat(t.length,")"),children:t.length?n().createElement(r.Space,{direction:"vertical"},t.map(function(t,r){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(r+1),a?n().createElement("a",{key:r,href:a,target:"_blank",rel:"noreferrer"},l):n().createElement(N,{key:r},l)})):n().createElement(r.Empty,{description:"No files"})}]})))})):n().createElement(r.Empty,{description:"No linked skill executions"})}]}),(ec.finalAnswer||ec.summary)&&n().createElement(r.Card,{title:"Final Output",size:"small"},ec.summary&&n().createElement(_,{style:{whiteSpace:"pre-wrap",marginBottom:12}},n().createElement(N,{strong:!0},"Summary: "),ec.summary),n().createElement(G,{value:ec.finalAnswer,rows:16}))))))};function W(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function $(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function V(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){$(l,r,a,o,i,"next",e)}function i(e){$(l,r,a,o,i,"throw",e)}o(void 0)})}}function Z(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return W(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return W(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 Y(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var Q=r.Typography.Text,X=function(e){var t=String(e||"").trim();return t?JSON.parse(t):{}},ee=function(){var t,l,o=(0,e.useAPIClient)(),i=Z(n().useState(!1),2),u=i[0],c=i[1],s=Z(n().useState(null),2),d=s[0],m=s[1],p=Z(r.Form.useForm(),1)[0],f=(0,e.useRequest)({url:"agentHarnessProfiles:list",params:{sort:["tag"],pageSize:100}}),y=f.data,h=f.loading,g=f.refresh,b=n().useMemo(function(){var e=null==y?void 0:y.data;return Array.isArray(e)?e:[]},[y]),v=function(e){var t,n;m(e||null),p.resetFields(),p.setFieldsValue(e?(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e),n=n={settingsText:JSON.stringify(e.settings||{},null,2)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t):{tag:"",title:"",description:"",enabled:!0,settingsText:JSON.stringify({requirePlanApproval:!0,allowSubAgents:!0,allowToolCalls:!0,maxParallelSubAgents:3,maxControllerSteps:100},null,2)}),c(!0)},E=function(){c(!1),m(null)},S=(t=V(function(e){var t,n,a,l,i,u,c,s;return Y(this,function(m){switch(m.label){case 0:try{t=X(e.settingsText)}catch(e){return r.message.error("Settings JSON is invalid: ".concat((null==e?void 0:e.message)||e)),[2]}n={tag:String(e.tag||"").trim(),title:e.title,description:e.description,enabled:!1!==e.enabled,settings:t},m.label=1;case 1:if(m.trys.push([1,6,,7]),!d)return[3,3];return[4,o.request({url:"agentHarnessProfiles:update",method:"put",params:{filterByTk:d.id},data:n})];case 2:return m.sent(),r.message.success("Harness profile updated"),[3,5];case 3:return[4,o.request({url:"agentHarnessProfiles:create",method:"post",data:n})];case 4:m.sent(),r.message.success("Harness profile created"),m.label=5;case 5:return E(),g(),[3,7];case 6:return s=(null==(a=m.sent())||null==(c=a.response)||null==(u=c.data)||null==(i=u.errors)||null==(l=i[0])?void 0:l.message)||(null==a?void 0:a.message)||"unknown error",r.message.error("Save failed: ".concat(s)),[3,7];case 7:return[2]}})}),function(e){return t.apply(this,arguments)}),w=(l=V(function(e){var t;return Y(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,o.request({url:"agentHarnessProfiles:destroy",method:"delete",params:{filterByTk:e}})];case 1:return n.sent(),r.message.success("Harness profile deleted"),g(),[3,3];case 2:return t=n.sent(),r.message.error("Delete failed: ".concat((null==t?void 0:t.message)||"unknown error")),[3,3];case 3:return[2]}})}),function(e){return l.apply(this,arguments)}),k=[{title:"Tag",dataIndex:"tag",key:"tag",width:140,render:function(e){return n().createElement(r.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,t){var a;return n().createElement(r.Switch,{size:"small",checked:!1!==e,onChange:(a=V(function(e){return Y(this,function(n){switch(n.label){case 0:return[4,o.request({url:"agentHarnessProfiles:update",method:"put",params:{filterByTk:t.id},data:{enabled:e}})];case 1:return n.sent(),g(),[2]}})}),function(e){return a.apply(this,arguments)})})}},{title:"Settings",key:"settings",render:function(e,t){return n().createElement(r.Space,{size:4,wrap:!0},Object.entries(t.settings||{}).slice(0,5).map(function(e){var t=Z(e,2),a=t[0],l=t[1];return n().createElement(r.Tag,{key:a},a,": ",String(l))}))}},{title:"Actions",key:"actions",width:150,render:function(e,t){return n().createElement(r.Space,null,n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(a.EditOutlined,null),onClick:function(){return v(t)}},"Edit"),n().createElement(r.Popconfirm,{title:"Delete this profile?",onConfirm:function(){return w(t.id)}},n().createElement(r.Button,{type:"link",size:"small",danger:!0,icon:n().createElement(a.DeleteOutlined,null)},"Delete")))}}];return n().createElement("div",null,n().createElement(r.Card,{bordered:!1},n().createElement(r.Space,{direction:"vertical",size:16,style:{width:"100%"}},n().createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:16}},n().createElement(Q,{type:"secondary"},"Harness profiles are selected by orchestration rules through the harnessTag field."),n().createElement(r.Button,{type:"primary",icon:n().createElement(a.PlusOutlined,null),onClick:function(){return v()}},"New Profile")),n().createElement(r.Table,{rowKey:"id",loading:h,dataSource:b,columns:k,pagination:!1}))),n().createElement(r.Drawer,{title:d?"Edit Harness Profile":"New Harness Profile",width:560,open:u,onClose:E,extra:n().createElement(r.Space,null,n().createElement(r.Button,{onClick:E},"Cancel"),n().createElement(r.Button,{type:"primary",onClick:function(){return p.submit()}},"Save"))},n().createElement(r.Form,{form:p,layout:"vertical",onFinish:S},n().createElement(r.Form.Item,{name:"tag",label:"Tag",rules:[{required:!0,message:"Tag is required"}]},n().createElement(r.Input,{placeholder:"default",disabled:(null==d?void 0:d.tag)==="default"})),n().createElement(r.Form.Item,{name:"title",label:"Title"},n().createElement(r.Input,null)),n().createElement(r.Form.Item,{name:"description",label:"Description"},n().createElement(r.Input.TextArea,{rows:3})),n().createElement(r.Form.Item,{name:"settingsText",label:"Settings JSON",rules:[{required:!0,message:"Settings JSON is required"}]},n().createElement(r.Input.TextArea,{rows:12,spellCheck:!1})),n().createElement(r.Form.Item,{name:"enabled",label:"Enabled",valuePropName:"checked"},n().createElement(r.Switch,null)))))};function et(){var n=(0,e.useApp)();return(0,t.useCallback)(function(e,t){return n.i18n.t(e,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ns:["plugin-agent-orchestrator","client"]},t))},[n.i18n])}function en(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function er(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function ea(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function el(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function eo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return en(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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.")}()}var ei=r.Input.TextArea,eu=r.theme.useToken,ec=function(l){var o,i,u=l.skill,c=l.onClose,s=(0,e.useAPIClient)(),d=et(),m=eu().token,p=eo(r.Form.useForm(),1)[0],f=!!u,y=eo((0,t.useState)([]),2),h=y[0],g=y[1];(0,t.useEffect)(function(){f||s.request({url:"skillHub:listTemplates"}).then(function(e){var t,n=e.data,r=(null==n||null==(t=n.data)?void 0:t.data)||(null==n?void 0:n.data)||n;r&&r.data&&Array.isArray(r.data)&&(r=r.data),g(Array.isArray(r)?r:[])}).catch(function(){g([])})},[s,f]),(0,t.useEffect)(function(){u?p.setFieldsValue(el(ea({},u),{inputSchema:z(u.inputSchema,null),interactionSchema:z(u.interactionSchema,null),packages:z(u.packages,[])})):(p.resetFields(),p.setFieldsValue({storageType:"database",language:"python",timeoutSeconds:60,maxOutputSizeMb:50,enabled:!0,toolScope:"CUSTOM",autoCall:!1,packages:"[]"}))},[u,p]);var b=r.Form.useWatch("storageType",p)||"database";(0,t.useEffect)(function(){if("plugin"===b){var e=p.getFieldValue("pluginSource");if(e){var t=h.find(function(t){return t.name===e});t&&p.setFieldsValue({name:t.name,title:t.title,description:t.description,language:t.language,instructions:t.instructions||"",inputSchema:z(t.inputSchema,null),interactionSchema:z(t.interactionSchema,null),packages:z(t.packages,[]),timeoutSeconds:t.timeoutSeconds||60,maxOutputSizeMb:t.maxOutputSizeMb||50,toolScope:t.toolScope||"CUSTOM",storageUrl:t.storageUrl})}}},[b,h,p]);var v=function(e){var t,n=h.find(function(t){return t.name===e});n&&("plugin"===b?p.setFieldsValue({name:n.name,title:n.title,description:n.description||"",language:n.language||"python",instructions:n.instructions||"",inputSchema:z(n.inputSchema,null),interactionSchema:z(n.interactionSchema,null),packages:z(n.packages,[]),timeoutSeconds:n.timeoutSeconds||60,maxOutputSizeMb:n.maxOutputSizeMb||50,toolScope:n.toolScope||"CUSTOM",storageUrl:n.storageUrl}):p.setFieldsValue({name:n.name,title:n.title,description:n.description||"",instructions:n.instructions||"",language:n.language||"python",codeTemplate:n.codeTemplate||"",inputSchema:z(n.inputSchema,null),interactionSchema:z(n.interactionSchema,null),packages:z(n.packages,[]),timeoutSeconds:n.timeoutSeconds||60,maxOutputSizeMb:n.maxOutputSizeMb||50,toolScope:n.toolScope||"CUSTOM",enabled:null==(t=n.enabled)||t}),r.message.success(d("Template applied")))},E=(o=function(){var e,t,n;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:return a.trys.push([0,6,,7]),[4,p.validateFields()];case 1:e=a.sent();try{e.inputSchema&&JSON.parse(e.inputSchema)}catch(e){return r.message.error(d("Invalid JSON in Input Schema")),[2]}try{e.interactionSchema&&JSON.parse(e.interactionSchema)}catch(e){return r.message.error(d("Invalid JSON in Interaction Schema")),[2]}try{e.packages&&JSON.parse(e.packages)}catch(e){return r.message.error(d("Invalid JSON in Packages")),[2]}if(t=el(ea({},e),{inputSchema:e.inputSchema?D(e.inputSchema):null,interactionSchema:e.interactionSchema?D(e.interactionSchema):null,packages:D(e.packages||[],[])}),!f)return[3,3];return[4,s.request({url:"skillDefinitions:update",method:"POST",params:{filterByTk:u.id},data:t})];case 2:return a.sent(),[3,5];case 3:return[4,s.request({url:"skillDefinitions:create",method:"POST",data:t})];case 4:a.sent(),a.label=5;case 5:return r.message.success(d(f?"Skill updated":"Skill created")),c(!0),[3,7];case 6:if(null==(n=a.sent())?void 0:n.errorFields)return[2];return r.message.error(d("Failed to save skill")),[3,7];case 7:return[2]}})},i=function(){var e=this,t=arguments;return new Promise(function(n,r){var a=o.apply(e,t);function l(e){er(a,n,r,l,i,"next",e)}function i(e){er(a,n,r,l,i,"throw",e)}l(void 0)})},function(){return i.apply(this,arguments)});return n().createElement(r.Modal,{open:!0,title:f?d("Edit Skill"):d("New Skill"),onCancel:function(){return c()},width:720,destroyOnClose:!0,footer:null,styles:{body:{padding:0,display:"flex",flexDirection:"column",maxHeight:"calc(100vh - 120px)"}},style:{top:40}},n().createElement(r.Form,{form:p,layout:"vertical",size:"middle",component:"div",style:{display:"flex",flexDirection:"column",maxHeight:"calc(100vh - 120px)"}},n().createElement(r.Form.Item,{name:"storageUrl",hidden:!0},n().createElement(r.Input,null)),n().createElement("div",{style:{flexShrink:0,background:m.colorBgContainer,borderBottom:"1px solid ".concat(m.colorBorderSecondary),padding:"12px 24px",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12}},n().createElement(r.Form.Item,{name:"storageType",noStyle:!0},n().createElement(r.Radio.Group,{optionType:"button",buttonStyle:"solid",size:"small"},n().createElement(r.Radio,{value:"database"},d("Database Editor")),n().createElement(r.Radio,{value:"local"},d("ZIP Package")),n().createElement(r.Radio,{value:"plugin",disabled:!Array.isArray(h)||0===h.length},d("Bind to Plugin")))),n().createElement(r.Space,{size:16},n().createElement(r.Space,{size:4},n().createElement("span",{style:{fontSize:12,color:m.colorTextSecondary}},d("Enabled")),n().createElement(r.Form.Item,{name:"enabled",valuePropName:"checked",noStyle:!0},n().createElement(r.Switch,{size:"small"}))),n().createElement(r.Space,{size:4},n().createElement("span",{style:{fontSize:12,color:m.colorTextSecondary}},d("Auto Call")),n().createElement(r.Form.Item,{name:"autoCall",valuePropName:"checked",noStyle:!0},n().createElement(r.Switch,{size:"small"})))),n().createElement(r.Space,null,n().createElement(r.Button,{size:"small",icon:n().createElement(a.CloseOutlined,null),onClick:function(){return c()}},d("Cancel")),n().createElement(r.Button,{type:"primary",size:"small",icon:n().createElement(a.SaveOutlined,null),onClick:E},f?d("Save"):d("Create")))),n().createElement("div",{style:{flex:1,overflowY:"auto",padding:"16px 24px 24px",minHeight:0}},"database"===b&&!f&&Array.isArray(h)&&h.length>0&&n().createElement(r.Form.Item,{label:d("Import Template to Pre-fill code (Optional)"),style:{marginBottom:24}},n().createElement(r.Select,{placeholder:d("Select a template to pre-fill"),onChange:v,allowClear:!0},h.map(function(e){return n().createElement(r.Select.Option,{key:e.name,value:e.name},e.title," (",e.pluginSource||e.name,")")}))),"plugin"===b&&n().createElement(n().Fragment,null,n().createElement(r.Form.Item,{name:"inputSchema",hidden:!0},n().createElement(ei,null)),n().createElement(r.Form.Item,{name:"packages",hidden:!0},n().createElement(r.Input,null)),n().createElement(r.Form.Item,{name:"pluginSource",label:d("Select Plugin Skill"),rules:[{required:!0}],style:{marginBottom:24,padding:12,background:"#e6f4ff",borderRadius:8,border:"1px solid #91caff"},extra:n().createElement("div",{style:{fontSize:12,color:"#1677ff",marginTop:8}},d("Binding dynamically delegates execution to the plugin logic. Code, Language, and Schemas are managed externally."))},n().createElement(r.Select,{placeholder:d("Choose an enabled plugin skill to attach"),onChange:v,allowClear:!0},Array.isArray(h)&&h.map(function(e){return n().createElement(r.Select.Option,{key:e.name,value:e.name},e.title," (",e.pluginSource||e.name,")")})))),n().createElement(r.Form.Item,{name:"name",label:d("Name (Internal Identifier)"),rules:[{required:!0}]},n().createElement(r.Input,{placeholder:"generate-word-report",disabled:f||"plugin"===b})),n().createElement(r.Form.Item,{name:"title",label:d("Title"),rules:[{required:!0}]},n().createElement(r.Input,{placeholder:"Generate Word Report",disabled:"plugin"===b})),n().createElement(r.Form.Item,{name:"description",label:d("Description")},n().createElement(ei,{rows:2,placeholder:"Description for AI employee to understand this skill",disabled:"plugin"===b})),n().createElement(r.Form.Item,{name:"instructions",label:d("Instructions / Documentation")},n().createElement(ei,{rows:6,placeholder:"Detailed instructions or markdown documentation for this skill",disabled:"plugin"===b})),"local"===b&&n().createElement(r.Form.Item,{label:d("Skill Package ZIP"),name:"fileId",valuePropName:"fileId",getValueFromEvent:function(e){var t,n,r,a,l,o,i;return(null==e||null==(r=e.file)||null==(n=r.response)||null==(t=n.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}]},n().createElement(r.Upload.Dragger,{name:"file",action:"/api/attachments:create",headers:{Authorization:"Bearer ".concat(s.auth.getToken())},maxCount:1,accept:".zip"},n().createElement("p",{className:"ant-upload-drag-icon"},n().createElement(a.InboxOutlined,null)),n().createElement("p",{className:"ant-upload-text"},d("Click or drag ZIP file to this area to upload")),n().createElement("p",{className:"ant-upload-hint"},d("Upload a skill package zip containing SKILL.md and index.py/.js. Metadata will be extracted automatically.")))),"plugin"!==b&&n().createElement(r.Form.Item,{name:"language",label:d("Language")},n().createElement(r.Select,null,n().createElement(r.Select.Option,{value:"python"},"Python"),n().createElement(r.Select.Option,{value:"node"},"Node.js"))),"database"===b&&n().createElement(r.Form.Item,{name:"codeTemplate",label:d("Code Template"),extra:d("Use {{placeholder}} for input parameters. Use OUTPUT_DIR env var for output directory.")},n().createElement(ei,{rows:12,style:{fontFamily:"monospace",fontSize:13},placeholder:'import os\n\noutput_dir = os.environ.get("OUTPUT_DIR", "/output")\n# Your code here'})),"plugin"!==b&&n().createElement(r.Form.Item,{name:"inputSchema",label:d("Input Schema (JSON)"),extra:d("JSON Schema defining input parameters for this skill")},n().createElement(ei,{rows:6,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "type": "object",\n "properties": {},\n "required": []\n}'})),n().createElement(r.Form.Item,{name:"interactionSchema",label:d("Interaction Schema (optional)"),extra:d("If set, user is prompted to fill / confirm input before execution. Type: form | select | confirm.")},n().createElement(ei,{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"!==b&&n().createElement(r.Form.Item,{name:"packages",label:d("Packages (JSON array)")},n().createElement(r.Input,{placeholder:'["python-docx", "openpyxl"]',style:{fontFamily:"monospace"}})),n().createElement("div",{style:{display:"flex",gap:16}},n().createElement(r.Form.Item,{name:"timeoutSeconds",label:d("Timeout (seconds)"),style:{flex:1}},n().createElement(r.InputNumber,{min:5,max:300,style:{width:"100%"}})),n().createElement(r.Form.Item,{name:"maxOutputSizeMb",label:d("Max Output (MB)"),style:{flex:1}},n().createElement(r.InputNumber,{min:1,max:200,style:{width:"100%"}})),n().createElement(r.Form.Item,{name:"toolScope",label:d("Tool Scope"),style:{flex:1}},n().createElement(r.Select,null,n().createElement(r.Select.Option,{value:"CUSTOM"},"CUSTOM"),n().createElement(r.Select.Option,{value:"GENERAL"},"GENERAL"),n().createElement(r.Select.Option,{value:"SPECIFIED"},"SPECIFIED")))))))};function es(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ed(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function em(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return es(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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 ep=r.Input.TextArea,ef=function(a){var l,o,i,u=a.skill,c=a.onClose,s=(0,e.useAPIClient)(),d=et(),m=j(u.inputSchema,null),p=em((0,t.useState)((null==m?void 0:m.properties)?JSON.stringify(Object.fromEntries(Object.keys(m.properties).map(function(e){return[e,""]})),null,2):"{}"),2),f=p[0],y=p[1],h=em((0,t.useState)(!1),2),g=h[0],b=h[1],v=em((0,t.useState)(null),2),E=v[0],S=v[1],w=em((0,t.useState)(""),2),k=w[0],O=w[1],x=(l=function(){var e,t,n,r,a,l,o,i;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(c){switch(c.label){case 0:b(!0),S(null),O("");try{e=JSON.parse(f)}catch(e){return O(d("Invalid JSON input")),b(!1),[2]}c.label=1;case 1:return c.trys.push([1,3,4,5]),[4,s.request({url:"skillHub:test",method:"POST",data:{skillId:u.id,input:e}})];case 2:return S((null==(n=c.sent().data)||null==(t=n.data)?void 0:t.data)||(null==n?void 0:n.data)||n),[3,5];case 3:return O((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||d("Execution failed")),[3,5];case 4:return b(!1),[7];case 5:return[2]}})},o=function(){var e=this,t=arguments;return new Promise(function(n,r){var a=l.apply(e,t);function o(e){ed(a,n,r,o,i,"next",e)}function i(e){ed(a,n,r,o,i,"throw",e)}o(void 0)})},function(){return o.apply(this,arguments)});return n().createElement(r.Modal,{open:!0,title:"".concat(d("Test Skill"),": ").concat(u.title),onCancel:c,footer:[n().createElement(r.Button,{key:"close",onClick:c},d("Close")),n().createElement(r.Button,{key:"run",type:"primary",onClick:x,loading:g},d("Run"))],width:640,destroyOnClose:!0},n().createElement(r.Space,{direction:"vertical",style:{width:"100%"},size:"middle"},n().createElement("div",null,n().createElement(r.Typography.Text,{strong:!0},d("Input (JSON)")),n().createElement(ep,{rows:6,value:f,onChange:function(e){return y(e.target.value)},style:{fontFamily:"monospace",fontSize:13,marginTop:4}})),g&&n().createElement(r.Spin,{tip:d("Running skill on worker...")}),k&&n().createElement(r.Alert,{type:"error",message:k,showIcon:!0}),E&&n().createElement(n().Fragment,null,n().createElement(r.Alert,{type:"succeeded"===E.status?"success":"error",message:"succeeded"===E.status?d("Succeeded"):d("Failed"),description:"Duration: ".concat(E.durationMs||0,"ms"),showIcon:!0}),E.stdout&&n().createElement("div",null,n().createElement(r.Typography.Text,{strong:!0},"stdout:"),n().createElement("pre",{style:{background:"#f5f5f5",padding:8,maxHeight:200,overflow:"auto",fontSize:12}},E.stdout)),E.stderr&&n().createElement("div",null,n().createElement(r.Typography.Text,{strong:!0,type:"danger"},"stderr:"),n().createElement("pre",{style:{background:"#fff2f0",padding:8,maxHeight:200,overflow:"auto",fontSize:12}},E.stderr)),(null==(i=E.files)?void 0:i.length)>0&&n().createElement("div",null,n().createElement(r.Typography.Text,{strong:!0},d("Output Files"),":"),n().createElement("div",{style:{marginTop:8}},n().createElement(e.Upload.ReadPretty,{value:E.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 ey(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function eh(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function eg(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){eh(l,r,a,o,i,"next",e)}function i(e){eh(l,r,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 n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ey(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ey(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 ev(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eE=r.Typography.Text,eS=r.theme.useToken,ew=function(l){var o,i=l.open,u=l.onClose,c=et(),s=eS().token,d=(0,e.useAPIClient)(),m=eb((0,t.useState)(0),2),p=m[0],f=m[1],y=eb((0,t.useState)([]),2),h=y[0],g=y[1],b=eb((0,t.useState)(!1),2),v=b[0],E=b[1],S=eb((0,t.useState)(null),2),w=S[0],k=S[1],O=eb((0,t.useState)([]),2),x=O[0],C=O[1],I=eb((0,t.useState)(""),2),A=(I[0],I[1]),T=eb((0,t.useState)("HEAD"),2),P=T[0],j=T[1],z=eb((0,t.useState)([]),2),D=z[0],F=z[1],M=eb((0,t.useState)(!1),2),B=M[0],R=M[1],U=eb((0,t.useState)(""),2),_=U[0],N=U[1],L=eb((0,t.useState)(null),2),q=L[0],H=L[1],J=eb((0,t.useState)([]),2),G=J[0],K=J[1],W=eb((0,t.useState)(!1),2),$=W[0],V=W[1],Z=eb((0,t.useState)([]),2),Y=Z[0],Q=Z[1],X=eb((0,t.useState)(!1),2),ee=X[0],en=X[1],er=eb((0,t.useState)(""),2),ea=er[0],el=er[1],eo=eb((0,t.useState)(null),2),ei=eo[0],eu=eo[1],ec=eb((0,t.useState)(""),2),es=ec[0],ed=ec[1],em=eb((0,t.useState)(null),2),ep=em[0],ef=em[1],ey=eb((0,t.useState)(!1),2),eh=ey[0],ew=ey[1],ek=(0,t.useCallback)(eg(function(){var e,t;return ev(this,function(n){switch(n.label){case 0:E(!0),n.label=1;case 1:return n.trys.push([1,,3,4]),[4,d.request({url:"gitRepositories:list",params:{pageSize:100}})];case 2:return g(((null==(t=n.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 E(!1),[7];case 4:return[2]}})}),[d]);(0,t.useEffect)(function(){i&&(ek(),f(0),k(null),H(null),K([]),Q([]),eu(null),ef(null),en(!1),N(""),el(""),ed(""))},[i,ek]),(0,t.useEffect)(function(){w&&d.request({url:"gitManager:branches",params:{repositoryId:w}}).then(function(e){var t,n=e.data,r=(null==n||null==(t=n.data)?void 0:t.data)||(null==n?void 0:n.data);C((null==r?void 0:r.all)||[]);var a=(null==r?void 0:r.current)||"main";A(a),j(a)}).catch(function(){return C([])})},[w,d]);var eO=(0,t.useCallback)(eg(function(){var e,t;return ev(this,function(n){switch(n.label){case 0:if(!w)return[2];R(!0),n.label=1;case 1:return n.trys.push([1,,3,4]),[4,d.request({url:"gitManager:fileTree",params:{repositoryId:w,ref:P,treePath:_}})];case 2:return F(((null==(t=n.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 R(!1),[7];case 4:return[2]}})}),[d,w,P,_]);(0,t.useEffect)(function(){1===p&&w&&eO()},[p,w,P,_,eO]);var ex=(0,t.useCallback)(eg(function(){var e,t,n,a,l,o,i,u,s;return ev(this,function(m){switch(m.label){case 0:if(!w||null===q)return[2];V(!0),m.label=1;case 1:return m.trys.push([1,3,4,5]),[4,d.request({url:"skillHub:gitListSkills",params:{repositoryId:w,ref:P,rootFolder:q}})];case 2:return a=(null==(n=m.sent().data)||null==(e=n.data)?void 0:e.data)||(null==n?void 0:n.data)||[],eu((null==n||null==(t=n.data)?void 0:t.config)||(null==n?void 0:n.config)||null),K(a),Q(a.filter(function(e){return!e.existsInDb}).map(function(e){return e.folder})),[3,5];case 3:return l=m.sent(),r.message.error((null==l||null==(s=l.response)||null==(u=s.data)||null==(i=u.errors)||null==(o=i[0])?void 0:o.message)||c("Failed to read skills from git")),eu(null),K([]),[3,5];case 4:return V(!1),[7];case 5:return[2]}})}),[d,w,P,q,c]);(0,t.useEffect)(function(){2===p&&null!==q&&ex()},[p,q,ex]);var eC=(0,t.useMemo)(function(){if(!es.trim())return G;var e=es.toLowerCase();return G.filter(function(t){return(t.title||t.name||"").toLowerCase().includes(e)||(t.description||"").toLowerCase().includes(e)})},[G,es]),eI=(o=eg(function(){var e,t,n,a,l,o,i;return ev(this,function(u){switch(u.label){case 0:if(0===Y.length)return r.message.warning(c("Please select at least one skill")),[2];ew(!0),u.label=1;case 1:return u.trys.push([1,3,4,5]),[4,d.request({url:"skillHub:gitSyncSkills",method:"POST",params:{repositoryId:w,ref:P,rootFolder:q,prefix:ea},data:{skills:Y,overwrite:ee}})];case 2:return ef((null==(t=u.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data)||[]),f(3),[3,5];case 3:return n=u.sent(),r.message.error((null==n||null==(i=n.response)||null==(o=i.data)||null==(l=o.errors)||null==(a=l[0])?void 0:a.message)||c("Sync failed")),[3,5];case 4:return ew(!1),[7];case 5:return[2]}})}),function(){return o.apply(this,arguments)}),eA=[{title:c("Skill"),key:"name",render:function(e,t){return n().createElement("div",null,n().createElement(eE,{strong:!0},t.title||t.name),n().createElement("div",null,n().createElement(eE,{type:"secondary",style:{fontSize:12}},t.name)))}},{title:c("Language"),dataIndex:"language",key:"language",width:100,render:function(e){return n().createElement(r.Tag,{color:"python"===e?"blue":"green"},e)}},{title:c("Source"),dataIndex:"storageType",key:"storageType",width:100,render:function(e){return n().createElement(r.Tag,{color:"plugin"===e?"purple":"cyan"},(e||"git").toUpperCase())}},{title:c("Description"),dataIndex:"description",key:"description",ellipsis:!0},{title:c("Status"),key:"status",width:120,render:function(e,t){return t.existsInDb?n().createElement(r.Tag,{color:"orange"},c("Exists")):n().createElement(r.Tag,{color:"green"},c("New"))}}],eT=[{title:c("Skill"),dataIndex:"name",key:"name",render:function(e){var t=ea?ea.trim():"",r=t?"".concat(t).concat(e):e;return n().createElement("div",null,n().createElement(eE,{strong:!0},r),t&&n().createElement("div",null,n().createElement(eE,{type:"secondary",style:{fontSize:11}},c("Original"),": ",e)))}},{title:c("Result"),key:"status",render:function(e,t){return n().createElement(r.Space,null,n().createElement(r.Tag,{color:{created:"green",updated:"blue",skipped:"orange",error:"red"}[t.status]||"default"},t.status),t.reason&&n().createElement(eE,{type:"secondary",style:{fontSize:12}},t.reason))}}];return n().createElement(r.Modal,{open:i,title:n().createElement(r.Space,null,n().createElement(a.BranchesOutlined,null),c("Import Skills from Git")),onCancel:function(){return u()},width:800,footer:3===p?n().createElement(r.Button,{type:"primary",onClick:function(){return u(!0)}},c("Done")):n().createElement(r.Space,null,p>0&&p<3&&n().createElement(r.Button,{onClick:function(){return f(p-1)}},c("Back")),p<2&&n().createElement(r.Button,{type:"primary",disabled:!(0===p?!!w:1===p?null!==q:2===p&&Y.length>0),onClick:function(){return f(p+1)}},c("Next")),2===p&&n().createElement(r.Button,{type:"primary",loading:eh,disabled:0===Y.length,onClick:eI},n().createElement(a.SyncOutlined,null)," ",c("Sync Selected")," (",Y.length,")")),destroyOnClose:!0},n().createElement(r.Steps,{current:p,size:"small",style:{marginBottom:24},items:[{title:c("Repository")},{title:c("Root Folder")},{title:c("Select Skills")},{title:c("Result")}]}),0===p&&n().createElement("div",null,v?n().createElement(r.Spin,null):0===h.length?n().createElement(r.Empty,{description:c("No connected repositories. Please configure one in Git Manager first.")}):n().createElement("div",null,n().createElement(eE,{strong:!0,style:{display:"block",marginBottom:8}},n().createElement(a.DatabaseOutlined,null)," ",c("Select a connected git repository")),n().createElement(r.Select,{style:{width:"100%"},placeholder:c("Select repository"),value:w,onChange:k,options:h.map(function(e){return{label:n().createElement(r.Space,null,e.name,n().createElement(eE,{type:"secondary",style:{fontSize:12}},e.repoUrl)),value:e.id}})}))),1===p&&n().createElement("div",null,n().createElement("div",{style:{marginBottom:12,display:"flex",gap:12,alignItems:"center"}},n().createElement(a.BranchesOutlined,null),n().createElement(r.Select,{size:"small",style:{width:200},value:P,onChange:function(e){j(e),H(null)},options:x.map(function(e){return{label:e,value:e}})})),n().createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8}},n().createElement(eE,{strong:!0},n().createElement(a.FolderOutlined,null)," ",c("Current Path"),": ",_||"/ (Root)"),n().createElement(r.Button,{type:"primary",onClick:function(){return H(_)}},c("Use Current Folder"))),B?n().createElement(r.Spin,null):n().createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:8}},_&&n().createElement(r.Button,{icon:n().createElement(a.FolderOutlined,null),onClick:function(){var e=_.split("/");e.pop(),N(e.join("/"))}},".."),D.map(function(e){return n().createElement(r.Button,{key:e.path,icon:n().createElement(a.FolderOutlined,null),onClick:function(){return N(e.path)},style:{height:"auto",padding:"8px 16px"}},e.name)}),0===D.length&&!_&&n().createElement(r.Empty,{description:c("No folders found")})),null!==q&&n().createElement(r.Alert,{style:{marginTop:12},type:"success",message:"".concat(c("Selected Root Folder"),": ").concat(q||"/"),showIcon:!0})),2===p&&n().createElement("div",null,(null==ei?void 0:ei.initializedSkillsJson)&&n().createElement(r.Alert,{style:{marginBottom:12},type:"info",showIcon:!0,message:"".concat(c("Initialized skills.json"),": ").concat(ei.path||"skills.json")}),$?n().createElement(r.Spin,null):0===G.length?n().createElement(r.Empty,{description:c("No skills found")}):n().createElement("div",null,n().createElement("div",{style:{marginBottom:12,display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,flexWrap:"wrap"}},n().createElement(r.Input,{placeholder:c("Search by title or description..."),prefix:n().createElement(a.SearchOutlined,{style:{color:s.colorTextQuaternary}}),value:es,onChange:function(e){return ed(e.target.value)},allowClear:!0,style:{width:260}}),n().createElement(r.Space,null,n().createElement(r.Input,{size:"small",placeholder:c("Skill Name Prefix"),value:ea,onChange:function(e){return el(e.target.value)},style:{width:150}}),n().createElement(eE,{style:{fontSize:12,marginLeft:8}},c("Overwrite")),n().createElement(r.Switch,{size:"small",checked:ee,onChange:en}))),n().createElement("div",{style:{marginBottom:8}},n().createElement(eE,{type:"secondary",style:{fontSize:12}},eC.length," / ",G.length," ",c("skills found"),ea&&n().createElement("span",{style:{marginLeft:8}},"\xe2€\xa2 ",c("Prefix"),": ",n().createElement(r.Tag,{style:{margin:0}},ea)," ",n().createElement(eE,{type:"secondary",style:{fontSize:11}},"(",c("applied on sync"),")")))),n().createElement(r.Table,{dataSource:eC,columns:eA,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:Y,onChange:function(e){return Q(e)}}}))),3===p&&ep&&n().createElement("div",null,n().createElement(r.Result,{status:"success",title:c("Sync Complete"),subTitle:"".concat(ep.filter(function(e){return"created"===e.status}).length," ").concat(c("created"),", ").concat(ep.filter(function(e){return"updated"===e.status}).length," ").concat(c("updated"),", ").concat(ep.filter(function(e){return"skipped"===e.status}).length," ").concat(c("skipped"))}),n().createElement(r.Table,{dataSource:ep,columns:eT,rowKey:"folder",size:"small",pagination:!1})))};function ek(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function eO(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function ex(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){eO(l,r,a,o,i,"next",e)}function i(e){eO(l,r,a,o,i,"throw",e)}o(void 0)})}}function eC(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ek(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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 eI(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}r.Input.TextArea;var eA=function(){var l,o,i=(0,e.useAPIClient)(),u=et(),c=eC((0,t.useState)([]),2),s=c[0],d=c[1],m=eC((0,t.useState)(!1),2),p=m[0],f=m[1],y=eC((0,t.useState)(!1),2),h=y[0],g=y[1],b=eC((0,t.useState)(!1),2),v=b[0],E=b[1],S=eC((0,t.useState)(null),2),w=S[0],k=S[1],O=eC((0,t.useState)(null),2),x=O[0],C=O[1],I=eC((0,t.useState)(!1),2),A=I[0],T=I[1],P=(0,t.useCallback)(ex(function(){var e,t,n,a,l;return eI(this,function(o){switch(o.label){case 0:f(!0),o.label=1;case 1:return o.trys.push([1,3,4,5]),[4,i.request({url:"skillDefinitions:list",params:{pageSize:100}})];case 2:return d(Array.isArray(l=null!=(a=null!=(n=null==(t=o.sent().data)||null==(e=t.data)?void 0:e.data)?n:null==t?void 0:t.data)?a:[])?l:[]),[3,5];case 3:return o.sent(),r.message.error(u("Failed to load skills")),[3,5];case 4:return f(!1),[7];case 5:return[2]}})}),[i,u]);(0,t.useEffect)(function(){P()},[P]);var j=function(e){k(e),g(!0)},z=function(e){C(e),E(!0)},D=(l=ex(function(e){return eI(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,i.request({url:"skillDefinitions:destroy",method:"POST",params:{filterByTk:e}})];case 1:return t.sent(),r.message.success(u("Deleted")),P(),[3,3];case 2:return t.sent(),r.message.error(u("Failed to delete")),[3,3];case 3:return[2]}})}),function(e){return l.apply(this,arguments)}),F=(o=ex(function(e){return eI(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,i.request({url:"skillDefinitions:update",method:"POST",params:{filterByTk:e.id},data:{enabled:!e.enabled}})];case 1:return t.sent(),P(),[3,3];case 2:return t.sent(),r.message.error(u("Failed to update")),[3,3];case 3:return[2]}})}),function(e){return o.apply(this,arguments)});return n().createElement(r.Card,{title:u("Skill Definitions"),extra:n().createElement(r.Space,null,n().createElement(r.Button,{icon:n().createElement(a.BranchesOutlined,null),onClick:function(){return T(!0)}},u("Import from Git")),n().createElement(r.Button,{type:"primary",icon:n().createElement(a.PlusOutlined,null),onClick:function(){k(null),g(!0)}},u("New Skill")))},n().createElement(r.List,{grid:{gutter:16,xs:1,sm:2,md:3,lg:3,xl:4,xxl:4},dataSource:s,loading:p,renderItem:function(e){return n().createElement(r.List.Item,null,n().createElement(r.Card,{size:"small",title:n().createElement(r.Typography.Text,{ellipsis:!0,title:e.title},e.title),extra:n().createElement(r.Tag,{color:"python"===e.language?"blue":"green"},e.language),actions:[n().createElement(r.Tooltip,{title:u("Test")},n().createElement(a.PlayCircleOutlined,{key:"test",onClick:function(){return z(e)}})),n().createElement(r.Tooltip,{title:u("Edit")},n().createElement(a.EditOutlined,{key:"edit",onClick:function(){return j(e)}})),n().createElement(r.Popconfirm,{title:u("Delete?"),onConfirm:function(){return D(e.id)}},n().createElement(r.Tooltip,{title:u("Delete")},n().createElement(a.DeleteOutlined,{key:"delete",style:{color:"red"}})))],style:{boxShadow:"0 2px 8px rgba(0,0,0,0.05)",borderRadius:8}},n().createElement(r.Card.Meta,{title:n().createElement(r.Typography.Text,{type:"secondary",style:{fontSize:13}},e.name),description:n().createElement("div",{style:{height:60,overflow:"hidden",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",fontSize:13}},e.description||u("No description"))}),n().createElement("div",{style:{marginTop:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},n().createElement(r.Space,{size:4},n().createElement(r.Switch,{checked:e.enabled,onChange:function(){return F(e)},size:"small"}),n().createElement("span",{style:{fontSize:12}},e.enabled?u("Enabled"):u("Disabled"))),n().createElement(r.Tag,{color:"purple",style:{margin:0,fontSize:11}},e.storageType?e.storageType.toUpperCase():"DB"))))}}),h&&n().createElement(ec,{skill:w,onClose:function(e){g(!1),k(null),e&&P()}}),v&&x&&n().createElement(ef,{skill:x,onClose:function(){return E(!1)}}),n().createElement(ew,{open:A,onClose:function(e){T(!1),e&&P()}}))};function eT(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function eP(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function ej(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){eP(l,r,a,o,i,"next",e)}function i(e){eP(l,r,a,o,i,"throw",e)}o(void 0)})}}function ez(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eT(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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 eD(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eF={pending:"default",running:"processing",succeeded:"success",failed:"error",canceled:"warning",timeout:"error"},eM=function(){var l,o=(0,e.useAPIClient)(),i=et(),u=ez((0,t.useState)([]),2),c=u[0],s=u[1],d=ez((0,t.useState)(!1),2),m=d[0],p=d[1],f=ez((0,t.useState)(1),2),y=f[0],h=f[1],g=ez((0,t.useState)(0),2),b=g[0],v=g[1],E=(0,t.useCallback)(ej(function(){var e,t,n,r,a,l;return eD(this,function(i){switch(i.label){case 0:p(!0),i.label=1;case 1:return i.trys.push([1,3,4,5]),[4,o.request({url:"skillExecutions:list",params:{page:y,pageSize:20,sort:["-createdAt"],appends:["skill","triggeredBy"]}})];case 2:return s(Array.isArray(l=null!=(a=null!=(r=null==(n=i.sent().data)||null==(e=n.data)?void 0:e.data)?r:null==n?void 0:n.data)?a:[])?l:[]),v((null==n||null==(t=n.meta)?void 0:t.count)||0),[3,5];case 3:return i.sent(),[3,5];case 4:return p(!1),[7];case 5:return[2]}})}),[o,y]);(0,t.useEffect)(function(){E()},[E]);var S=(l=ej(function(e){var t,n,a,l,u;return eD(this,function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),[4,o.request({url:"skillExecutions:destroy",method:"POST",params:{filterByTk:e}})];case 1:return c.sent(),r.message.success(i("Deleted successfully")),E(),[3,3];case 2:return t=c.sent(),r.message.error((null==t||null==(u=t.response)||null==(l=u.data)||null==(a=l.errors)||null==(n=a[0])?void 0:n.message)||i("Delete failed")),[3,3];case 3:return[2]}})}),function(e){return l.apply(this,arguments)}),w=[{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 n().createElement(r.Tag,{color:eF[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,r){if(!Array.isArray(t=j(t,[]))||!t.length)return"-";var a=t.map(function(e,t){return{id:"".concat(r.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(r.id,"&filename=").concat(encodeURIComponent(e.name)),status:"done"}});return n().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 n().createElement(r.Space,{direction:"vertical",size:0},t.stdout&&n().createElement(r.Tooltip,{title:t.stdout},n().createElement(r.Typography.Text,{style:{fontSize:12,maxWidth:200},ellipsis:!0},t.stdout)),t.stderr&&n().createElement(r.Tooltip,{title:t.stderr},n().createElement(r.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 n().createElement(r.Space,{size:"middle"},n().createElement(r.Popconfirm,{title:i("Are you sure to delete this execution history and its files?"),onConfirm:function(){return S(t.id)},okText:i("Yes"),cancelText:i("No")},n().createElement(r.Button,{type:"text",danger:!0,icon:n().createElement(a.DeleteOutlined,null),size:"small"})))}}];return n().createElement(r.Card,{title:i("Execution History"),extra:n().createElement(r.Space,null,n().createElement(r.Button,{icon:n().createElement(a.ReloadOutlined,null),onClick:E,loading:m},i("Refresh")))},n().createElement(r.Table,{dataSource:c,columns:w,rowKey:"id",loading:m,size:"middle",pagination:{current:y,pageSize:20,total:b,onChange:h,showTotal:function(e){return"Total: ".concat(e)}},scroll:{x:1200}}))};function eB(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function eR(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function eU(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eB(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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.")}()}r.Typography.Title,r.Typography.Text;var e_=function(){var l,o=(0,e.useAPIClient)(),i=et(),u=eU((0,t.useState)([]),2),c=u[0],s=u[1],d=eU((0,t.useState)(!1),2),m=d[0],p=d[1],f=(0,t.useCallback)((l=function(){var e,t,n,r,a;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(l){switch(l.label){case 0:p(!0),l.label=1;case 1:return l.trys.push([1,3,4,5]),[4,o.request({url:"skillExecutions:list",params:{pageSize:1e3,sort:["-createdAt"],appends:["skill"]}})];case 2:return s(Array.isArray(a=null!=(r=null!=(n=null==(t=l.sent().data)||null==(e=t.data)?void 0:e.data)?n:null==t?void 0:t.data)?r:[])?a:[]),[3,5];case 3:return l.sent(),[3,5];case 4:return p(!1),[7];case 5:return[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,r){var a=l.apply(e,t);function o(e){eR(a,n,r,o,i,"next",e)}function i(e){eR(a,n,r,o,i,"throw",e)}o(void 0)})}),[o]);(0,t.useEffect)(function(){f()},[f]);var y=(0,t.useMemo)(function(){var e=c.length,t=c.filter(function(e){return"succeeded"===e.status}).length,n=c.filter(function(e){return"failed"===e.status}).length,r=c.filter(function(e){return"timeout"===e.status}).length,a=c.filter(function(e){return"canceled"===e.status}).length,l={};return c.forEach(function(e){var t,n,r=(null==(t=e.skill)?void 0:t.title)||(null==(n=e.skill)?void 0:n.name)||"Unknown";l[r]||(l[r]={name:r,total:0,succeeded:0,failed:0,timeout:0,canceled:0,totalDuration:0,durationCount:0}),l[r].total+=1,l[r][e.status]=(l[r][e.status]||0)+1,e.durationMs&&(l[r].totalDuration+=e.durationMs,l[r].durationCount+=1)}),{total:e,succeeded:t,failed:n,timeout:r,canceled:a,skillData:Object.values(l).map(function(e){var t,n;return t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e),n=n={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(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t}).sort(function(e,t){return t.total-e.total})}},[c]),h=[{title:i("Skill"),dataIndex:"name",key:"name",width:200},{title:i("Total Runs"),dataIndex:"total",key:"total",width:100},{title:i("Success Rate"),dataIndex:"successRate",key:"successRate",width:150,render:function(e){return n().createElement(r.Progress,{percent:Math.round(e),size:"small",status:100===e?"success":e>50?"active":"exception"})}},{title:i("Success"),dataIndex:"succeeded",key:"succeeded",width:100},{title:i("Failed"),dataIndex:"failed",key:"failed",width:100},{title:i("Timeout"),dataIndex:"timeout",key:"timeout",width:100},{title:i("Avg Duration (s)"),dataIndex:"avgDuration",key:"avgDuration",width:120}];return n().createElement(r.Space,{direction:"vertical",size:"large",style:{width:"100%",padding:"0 16px"}},n().createElement(r.Row,{gutter:16},n().createElement(r.Col,{span:6},n().createElement(r.Card,{size:"small"},n().createElement(r.Statistic,{title:"Total Executions (Recent)",value:y.total,prefix:n().createElement(a.SyncOutlined,null)}))),n().createElement(r.Col,{span:6},n().createElement(r.Card,{size:"small"},n().createElement(r.Statistic,{title:"Succeeded",value:y.succeeded,valueStyle:{color:"#3f8600"},prefix:n().createElement(a.CheckCircleOutlined,null)}))),n().createElement(r.Col,{span:6},n().createElement(r.Card,{size:"small"},n().createElement(r.Statistic,{title:"Failed",value:y.failed,valueStyle:{color:"#cf1322"},prefix:n().createElement(a.CloseCircleOutlined,null)}))),n().createElement(r.Col,{span:6},n().createElement(r.Card,{size:"small"},n().createElement(r.Statistic,{title:"Timeout/Canceled",value:y.timeout+y.canceled,valueStyle:{color:"#faad14"},prefix:n().createElement(a.ClockCircleOutlined,null)})))),n().createElement(r.Card,{title:i("Metrics by Skill (Recent)")},n().createElement(r.Table,{dataSource:y.skillData,columns:h,rowKey:"name",loading:m,pagination:!1,size:"middle"})))},eN=[{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 eL(e){return eN.find(function(t){return t.key===e})||eN[0]}function eq(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function eH(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eq(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return 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 eJ=(0,t.createContext)(new Map),eG=function(e){return e.toLowerCase().replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"")},eK=function(r){var a=r.children,l=(0,e.useAPIClient)(),o=eH((0,t.useState)(new Map),2),i=o[0],u=o[1],c=eH((0,t.useState)(0),2),s=c[0],d=c[1];return(0,t.useEffect)(function(){var e=function(){return d(function(e){return e+1})};return window.addEventListener("skill-hub-loop-settings-changed",e),function(){return window.removeEventListener("skill-hub-loop-settings-changed",e)}},[]),(0,t.useEffect)(function(){var e=!1,t=function(e){var t,n,r,a,l=null!=(a=null!=(r=null!=(n=null==e||null==(t=e.data)?void 0:t.data)?n:null==e?void 0:e.data)?r:e)?a:[];return Array.isArray(l)?l:[]},n=function(e){var t,n,r=j(e.schema,null);return r?e.prompt&&!r.prompt?(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},r),n=n={prompt:e.prompt},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t):r:e.prompt?{type:"confirm",prompt:e.prompt}:null};return Promise.all([l.request({url:"skillDefinitions:list",params:{filter:{enabled:!0},fields:["id","name","autoCall","interactionSchema"],pageSize:500}}),l.request({url:"skillLoopConfigs:list",params:{filter:{enabled:!0},fields:["skillId","enabled","schema","prompt","templateKey"],pageSize:500}}).catch(function(){return{data:[]}})]).then(function(r){var a=eH(r,2),l=a[0],o=a[1];if(!e){var i=new Map,c=t(l.data),s=t(o.data),d=new Map(c.map(function(e){return[String(e.id),e]})),m=!0,p=!1,f=void 0;try{for(var y,h=c[Symbol.iterator]();!(m=(y=h.next()).done);m=!0){var g=y.value;if(!g.autoCall){var b=j(g.interactionSchema,null);b&&i.set(eG(g.name),b)}}}catch(e){p=!0,f=e}finally{try{m||null==h.return||h.return()}finally{if(p)throw f}}var v=!0,E=!1,S=void 0;try{for(var w,k=s[Symbol.iterator]();!(v=(w=k.next()).done);v=!0){var O=w.value,x=d.get(String(O.skillId));if(null==x?void 0:x.name){var C=n(O);C&&i.set(eG(x.name),C)}}}catch(e){E=!0,S=e}finally{try{v||null==k.return||k.return()}finally{if(E)throw S}}u(i)}}).catch(function(){}),function(){e=!0}},[l,s]),n().createElement(eJ.Provider,{value:i},a)};function eW(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function e$(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function eV(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function eZ(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eW(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return eW(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=function(e){var a,l,o,i,u=e.toolCall,c=e.decisions,s=(0,t.useContext)(eJ),d=eZ(r.Form.useForm(),1)[0],m="skill_hub_execute"===u.name,p=u.args||{},f=m?(p.skillName||"").toLowerCase().replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,""):u.name.replace(/^skill_hub_/,""),y=s.get(f);if("init"!==u.invokeStatus&&"interrupted"!==u.invokeStatus)return null;if(!y)return n().createElement(r.Card,{size:"small",style:{marginTop:8}},n().createElement(r.Typography.Paragraph,{style:{marginBottom:12}},"Review this Skill Hub tool call before execution."),n().createElement(r.Space,null,n().createElement(r.Button,{type:"primary",onClick:function(){return c.approve()}},"Run"),n().createElement(r.Button,{onClick:function(){return c.reject("user_cancel")}},"Cancel")));var h=(a=function(){var e,t;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(n){switch(n.label){case 0:return[4,d.validateFields()];case 1:var r,a;return e=n.sent(),t=m?(r=eV({},p),a=a={input:"select"===y.type?e:eV({},p.input||{},e)},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(a)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(a)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(a,e))}),r):"select"===y.type?e:eV({},p,e),[4,c.edit(t)];case 2:return n.sent(),[2]}})},l=function(){var e=this,t=arguments;return new Promise(function(n,r){var l=a.apply(e,t);function o(e){e$(l,n,r,o,i,"next",e)}function i(e){e$(l,n,r,o,i,"throw",e)}o(void 0)})},function(){return l.apply(this,arguments)});return n().createElement(r.Card,{size:"small",style:{marginTop:8}},n().createElement(r.Typography.Paragraph,{style:{marginBottom:12}},y.prompt),"confirm"!==y.type&&n().createElement(r.Form,{form:d,layout:"vertical",initialValues:(m?p.input:p)||{},style:{marginBottom:8}},"select"===y.type&&n().createElement(r.Form.Item,{name:"choice",rules:[{required:!0}]},n().createElement(r.Radio.Group,null,(null!=(o=y.options)?o:[]).map(function(e){return n().createElement(r.Radio,{key:String(e.value),value:e.value},e.label)}))),"form"===y.type&&Object.entries(null!=(i=y.fields)?i:{}).map(function(e){var t=eZ(e,2),a=t[0],l=t[1];return n().createElement(r.Form.Item,{key:a,name:a,label:l.title||a,rules:[{required:!!l.required}]},(null==l?void 0:l.enum)?n().createElement(r.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"?n().createElement(r.InputNumber,{style:{width:"100%"}}):n().createElement(r.Input,null))})),n().createElement(r.Space,null,n().createElement(r.Button,{type:"primary",onClick:"confirm"===y.type?function(){return c.approve()}:h},"Run"),n().createElement(r.Button,{onClick:function(){return c.reject("user_cancel")}},"Cancel")))};function eQ(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}var eX=function(e){var t,n,r,a,l=null!=(a=null!=(r=null!=(n=null==e||null==(t=e.data)?void 0:t.data)?n:null==e?void 0:e.data)?r:e)?a:[];return Array.isArray(l)?l:[]};function e0(e){return e1.apply(this,arguments)}function e1(){var e;return e=function(e){var t,n,r,a,l,o,i,u,c,s,d,m,p;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(f){switch(f.label){case 0:if(!(n=null==(t=e.aiManager)?void 0:t.toolsManager))return[2];f.label=1;case 1:return f.trys.push([1,7,,8]),[4,e.apiClient.request({url:"skillDefinitions:list",params:{filter:{enabled:!0},fields:["id","name","autoCall","interactionSchema"],pageSize:500}})];case 2:r=f.sent(),a=new Set,f.label=3;case 3:return f.trys.push([3,5,,6]),[4,e.apiClient.request({url:"skillLoopConfigs:list",params:{filter:{enabled:!0},fields:["skillId"],pageSize:500}})];case 4:return(a=new Set(eX(f.sent().data).map(function(e){return String(e.skillId)}))).size>0&&n.registerTools("skill_hub_execute",{ui:{card:eY}}),[3,6];case 5:return f.sent(),[3,6];case 6:l=eX(r.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&&!!j(d.interactionSchema,null),(m||p)&&n.registerTools("skill_hub_".concat(d.name.toLowerCase().replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"")),{ui:{card:eY}})}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]}})},(e1=function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){eQ(l,r,a,o,i,"next",e)}function i(e){eQ(l,r,a,o,i,"throw",e)}o(void 0)})}).apply(this,arguments)}function e2(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function e3(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function e6(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){e3(l,r,a,o,i,"next",e)}function i(e){e3(l,r,a,o,i,"throw",e)}o(void 0)})}}function e4(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function e5(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function e8(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return e2(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e2(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 e7(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var e9=r.Input.TextArea,te=function(e){var t,n,r,a,l=null!=(a=null!=(r=null!=(n=null==e||null==(t=e.data)?void 0:t.data)?n:null==e?void 0:e.data)?r:e)?a:[];return Array.isArray(l)?l:[]},tt=function(){var l,o,i,u=(0,e.useAPIClient)(),c=(0,e.useApp)(),s=et(),d=e8(r.Form.useForm(),1)[0],m=e8((0,t.useState)([]),2),p=m[0],f=m[1],y=e8((0,t.useState)([]),2),h=y[0],g=y[1],b=e8((0,t.useState)(!1),2),v=b[0],E=b[1],S=e8((0,t.useState)(!1),2),w=S[0],k=S[1],O=e8((0,t.useState)(null),2),x=O[0],C=O[1],I=(0,t.useMemo)(function(){return new Map(p.map(function(e){return[String(e.id),e]}))},[p]),A=(0,t.useCallback)(e6(function(){var e,t,n;return e7(this,function(a){switch(a.label){case 0:E(!0),a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,Promise.all([u.request({url:"skillDefinitions:list",params:{filter:{enabled:!0},fields:["id","name","title","language","autoCall"],pageSize:500}}),u.request({url:"skillLoopConfigs:list",params:{fields:["id","skillId","enabled","title","templateKey","prompt","schema","config","updatedAt"],sort:["-updatedAt"],pageSize:500}})])];case 2:return t=(e=e8.apply(void 0,[a.sent(),2]))[0],n=e[1],f(te(t.data)),g(te(n.data)),[3,5];case 3:return a.sent(),r.message.error(s("Failed to load skill review settings")),[3,5];case 4:return E(!1),[7];case 5:return[2]}})}),[u,s]);(0,t.useEffect)(function(){A()},[A]);var T=function(e){var t=eL(e.templateKey);C(e),d.setFieldsValue(e5(e4({},e),{templateKey:e.templateKey||t.key,prompt:e.prompt||t.schema.prompt,schema:z(e.schema||t.schema),config:z(e.config,null)})),k(!0)},P=function(){k(!1),C(null),d.resetFields()},F=(0,t.useCallback)(e6(function(){return e7(this,function(e){switch(e.label){case 0:return[4,e0(c)];case 1:return e.sent(),window.dispatchEvent(new Event("skill-hub-loop-settings-changed")),[2]}})}),[c]),M=(l=e6(function(){var e,t,n,a,l,o;return e7(this,function(i){switch(i.label){case 0:return i.trys.push([0,6,,7]),[4,d.validateFields()];case 1:if(!(t=j((e=i.sent()).schema,void 0))||(void 0===t?"undefined":t&&"undefined"!=typeof Symbol&&t.constructor===Symbol?"symbol":typeof t)!="object")return r.message.error(s("Invalid JSON in Review Schema")),[2];if(n=j(e.config,void 0),e.config&&void 0===n)return r.message.error(s("Invalid JSON in Review Config")),[2];if(a=e5(e4({},t),{prompt:e.prompt||t.prompt}),l=e5(e4({},e),{schema:D(a),config:e.config?D(n):null}),!x)return[3,3];return[4,u.request({url:"skillLoopConfigs:update",method:"POST",params:{filterByTk:x.id},data:l})];case 2:return i.sent(),[3,5];case 3:return[4,u.request({url:"skillLoopConfigs:create",method:"POST",data:l})];case 4:i.sent(),i.label=5;case 5:return r.message.success(s(x?"Skill review setting updated":"Skill review setting created")),P(),A(),F(),[3,7];case 6:if(null==(o=i.sent())?void 0:o.errorFields)return[2];return r.message.error(s("Failed to save skill review setting")),[3,7];case 7:return[2]}})}),function(){return l.apply(this,arguments)}),B=(o=e6(function(e){return e7(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,u.request({url:"skillLoopConfigs:destroy",method:"POST",params:{filterByTk:e}})];case 1:return t.sent(),r.message.success(s("Deleted")),A(),F(),[3,3];case 2:return t.sent(),r.message.error(s("Failed to delete")),[3,3];case 3:return[2]}})}),function(e){return o.apply(this,arguments)}),R=(i=e6(function(e){return e7(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,u.request({url:"skillLoopConfigs:update",method:"POST",params:{filterByTk:e.id},data:{enabled:!e.enabled}})];case 1:return t.sent(),A(),F(),[3,3];case 2:return t.sent(),r.message.error(s("Failed to update")),[3,3];case 3:return[2]}})}),function(e){return i.apply(this,arguments)});return n().createElement(r.Card,{title:s("Skill Review Settings"),extra:n().createElement(r.Button,{type:"primary",icon:n().createElement(a.PlusOutlined,null),onClick:function(){var e=eL("confirm");C(null),d.resetFields(),d.setFieldsValue({enabled:!0,templateKey:e.key,prompt:e.schema.prompt,schema:z(e.schema),config:""}),k(!0)}},s("New Review"))},n().createElement(r.List,{loading:v,dataSource:h,grid:{gutter:16,xs:1,sm:2,md:3,lg:3,xl:4,xxl:4},renderItem:function(e){var t=I.get(String(e.skillId)),l=eL(e.templateKey);return n().createElement(r.List.Item,null,n().createElement(r.Card,{size:"small",title:n().createElement(r.Typography.Text,{ellipsis:!0},e.title||(null==t?void 0:t.title)||(null==t?void 0:t.name)||s("Unknown skill")),extra:n().createElement(r.Tag,{color:e.enabled?"green":"default"},e.enabled?s("Enabled"):s("Disabled")),actions:[n().createElement(r.Tooltip,{key:"edit",title:s("Edit")},n().createElement(a.EditOutlined,{onClick:function(){return T(e)}})),n().createElement(r.Popconfirm,{key:"delete",title:s("Delete?"),onConfirm:function(){return B(e.id)}},n().createElement(r.Tooltip,{title:s("Delete")},n().createElement(a.DeleteOutlined,{style:{color:"red"}})))],style:{boxShadow:"0 2px 8px rgba(0,0,0,0.05)",borderRadius:8}},n().createElement(r.Space,{direction:"vertical",size:8,style:{width:"100%"}},n().createElement(r.Typography.Text,{type:"secondary",style:{fontSize:13}},(null==t?void 0:t.name)||"skillId=".concat(e.skillId)),n().createElement(r.Tag,{color:"blue",style:{width:"fit-content"}},l.title),n().createElement(r.Typography.Paragraph,{type:"secondary",ellipsis:{rows:2},style:{minHeight:44,marginBottom:0,fontSize:13}},e.prompt||l.schema.prompt),n().createElement(r.Space,{size:4},n().createElement(r.Switch,{checked:e.enabled,onChange:function(){return R(e)},size:"small"}),n().createElement("span",{style:{fontSize:12}},e.enabled?s("Enabled"):s("Disabled"))))))}}),n().createElement(r.Modal,{open:w,title:x?s("Edit Skill Review Setting"):s("New Skill Review Setting"),onCancel:P,onOk:M,width:760,destroyOnClose:!0},n().createElement(r.Form,{form:d,layout:"vertical"},n().createElement(r.Form.Item,{name:"enabled",valuePropName:"checked",label:s("Enabled")},n().createElement(r.Switch,null)),n().createElement(r.Form.Item,{name:"skillId",label:s("Skill"),rules:[{required:!0}]},n().createElement(r.Select,{showSearch:!0,optionFilterProp:"label",placeholder:s("Select a skill"),options:p.map(function(e){return{value:e.id,label:"".concat(e.title||e.name," (").concat(e.name,")")}})})),n().createElement(r.Form.Item,{name:"title",label:s("Title")},n().createElement(r.Input,{placeholder:s("Optional display title")})),n().createElement(r.Form.Item,{name:"templateKey",label:s("Review Template"),rules:[{required:!0}]},n().createElement(r.Select,{onChange:function(e){var t=eL(e);d.setFieldsValue({prompt:t.schema.prompt,schema:z(t.schema)})}},eN.map(function(e){return n().createElement(r.Select.Option,{key:e.key,value:e.key},e.title," - ",e.description)}))),n().createElement(r.Form.Item,{name:"prompt",label:s("Prompt"),rules:[{required:!0}]},n().createElement(e9,{rows:3})),n().createElement(r.Form.Item,{name:"schema",label:s("Review Schema (JSON)"),rules:[{required:!0}],extra:s("Standard interaction schema. Supported types: confirm, form, select.")},n().createElement(e9,{rows:10,style:{fontFamily:"monospace",fontSize:13}})),n().createElement(r.Form.Item,{name:"config",label:s("Review Config (optional JSON)")},n().createElement(e9,{rows:4,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "maxRetries": 1\n}'})))))};function tn(e,t,n){return(tn=to()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&ta(a,n.prototype),a}).apply(null,arguments)}function tr(e){return(tr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ta(e,t){return(ta=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function tl(e){var t="function"==typeof Map?new Map:void 0;return(tl=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,n)}function n(){return tn(e,arguments,tr(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),ta(n,e)})(e)}function to(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(to=function(){return!!e})()}tl(e.Plugin);var ti=function(){return n().createElement(u,null,n().createElement("div",{style:{padding:"0 24px 24px"}},n().createElement(r.Tabs,{defaultActiveKey:"rules",items:[{key:"rules",label:n().createElement("span",null,n().createElement(a.ApartmentOutlined,null)," Orchestration Rules"),children:n().createElement(k,null)},{key:"tracing",label:n().createElement("span",null,n().createElement(a.MonitorOutlined,null)," Execution Tracing"),children:n().createElement(P,null)},{key:"agent-runs",label:n().createElement("span",null,n().createElement(a.ProfileOutlined,null)," Agent Runs"),children:n().createElement(K,null)},{key:"harness-profiles",label:n().createElement("span",null,n().createElement(a.SettingOutlined,null)," Harness Profiles"),children:n().createElement(ee,null)},{key:"skill-definitions",label:n().createElement("span",null,n().createElement(a.CodeOutlined,null)," Skill Hub Definitions"),children:n().createElement(eA,null)},{key:"skill-executions",label:n().createElement("span",null,n().createElement(a.HistoryOutlined,null)," Execution History"),children:n().createElement(eM,null)},{key:"skill-loop-settings",label:n().createElement("span",null,n().createElement(a.CheckCircleOutlined,null)," Skill Review Settings"),children:n().createElement(tt,null)},{key:"skill-metrics",label:n().createElement("span",null,n().createElement(a.BarChartOutlined,null)," Metrics"),children:n().createElement(e_,null)}]})))};function tu(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function tc(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function ts(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){tc(l,r,a,o,i,"next",e)}function i(e){tc(l,r,a,o,i,"throw",e)}o(void 0)})}}function td(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return tu(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tu(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 tm(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var tp=r.Typography.Paragraph,tf=r.Typography.Text,ty=function(e){var t,n,r;return null!=(r=null!=(n=null==e||null==(t=e.data)?void 0:t.data)?n:null==e?void 0:e.data)?r:e},th=function(t){var a,l,o,i,u=t.toolCall,c=t.decisions,s=(0,e.useAPIClient)(),d=u.args||{},m=d.runId,p=td(n().useState(null),2),f=p[0],y=p[1],h=td(n().useState(!1),2),g=h[0],b=h[1],v=td(n().useState(!1),2),E=v[0],S=v[1],w=td(n().useState(""),2),k=w[0],O=w[1],x="init"===u.invokeStatus||"interrupted"===u.invokeStatus;if(n().useEffect(function(){if(x&&m){var e=!0;return b(!0),s.request({url:"agentLoops:get",params:{filterByTk:m}}).then(function(t){e&&y(ty(t))}).catch(function(){e&&y(null)}).finally(function(){e&&b(!1)}),function(){e=!1}}},[s,x,m]),!x)return null;var C=(null==f?void 0:f.run)||{},I=(Array.isArray(a=(null==f?void 0:f.steps)||d.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||[]}}),A=C.goal||d.goal||"",T=(l=ts(function(){var e;return tm(this,function(t){switch(t.label){case 0:if(m)return[3,2];return[4,c.reject("missing_run_id")];case 1:return t.sent(),[2];case 2:S(!0),t.label=3;case 3:return t.trys.push([3,6,7,8]),[4,s.request({url:"agentLoops:rejectPlan",method:"post",data:{runId:m,reason:k||"Plan rejected by user."}})];case 4:return t.sent(),[4,c.reject(JSON.stringify({reason:"plan_rejected",runId:m,feedback:k}))];case 5:return t.sent(),[3,8];case 6:return e=t.sent(),r.message.error((null==e?void 0:e.message)||"Failed to reject plan"),[3,8];case 7:return S(!1),[7];case 8:return[2]}})}),function(){return l.apply(this,arguments)}),P=(o=ts(function(){var e;return tm(this,function(t){switch(t.label){case 0:if(!k.trim())return r.message.warning("Add feedback before requesting changes."),[2];S(!0),t.label=1;case 1:return t.trys.push([1,4,5,6]),[4,s.request({url:"agentLoops:requestPlanChanges",method:"post",data:{runId:m,feedback:k}})];case 2:return t.sent(),[4,c.reject(JSON.stringify({reason:"changes_requested",runId:m,feedback:k}))];case 3:return t.sent(),[3,6];case 4:return e=t.sent(),r.message.error((null==e?void 0:e.message)||"Failed to request plan changes"),[3,6];case 5:return S(!1),[7];case 6:return[2]}})}),function(){return o.apply(this,arguments)});return n().createElement(r.Card,{size:"small",style:{marginTop:8}},n().createElement(r.Space,{direction:"vertical",size:12,style:{width:"100%"}},n().createElement(r.Alert,{type:"info",showIcon:!0,message:"Review orchestrator plan",description:"Execution starts only after you approve this plan."}),n().createElement(r.Space,{size:8,wrap:!0},m&&n().createElement(r.Tag,{color:"blue"},"Run #",m),n().createElement(r.Tag,{color:"purple"},"Plan v",C.planVersion||d.planVersion||1),n().createElement(r.Tag,{color:"pending"===C.approvalStatus?"gold":"default"},C.approvalStatus||"pending"),(null==(i=C.metadata)?void 0:i.harnessTag)&&n().createElement(r.Tag,null,C.metadata.harnessTag)),A&&n().createElement(tp,{style:{marginBottom:0}},n().createElement(tf,{strong:!0},"Goal: "),A),n().createElement(r.List,{size:"small",loading:g,dataSource:I,locale:{emptyText:"No plan steps found."},renderItem:function(e,t){var a;return n().createElement(r.List.Item,null,n().createElement(r.Space,{direction:"vertical",size:2,style:{width:"100%"}},n().createElement(r.Space,{size:8,wrap:!0},n().createElement(tf,{strong:!0},t+1,". ",e.title),n().createElement(r.Tag,null,e.type),e.target&&n().createElement(r.Tag,{color:"green"},e.target)),e.description&&n().createElement(tf,{type:"secondary"},e.description),(null==(a=e.dependsOn)?void 0:a.length)>0&&n().createElement(tf,{type:"secondary",style:{fontSize:12}},"Depends on: ",e.dependsOn.join(", "))))}}),n().createElement(r.Input.TextArea,{rows:3,value:k,onChange:function(e){return O(e.target.value)},placeholder:"Optional rejection reason or requested changes"}),n().createElement(r.Space,{wrap:!0},n().createElement(r.Button,{type:"primary",loading:E,onClick:function(){return c.approve()}},"Accept & Run"),n().createElement(r.Button,{loading:E,onClick:P},"Request changes"),n().createElement(r.Button,{danger:!0,loading:E,onClick:T},"Reject"))))};function tg(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function tb(){var e;return e=function(e){var t,n;return function(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(r){return(n=null==(t=e.aiManager)?void 0:t.toolsManager)&&n.registerTools("orchestrator_execute_plan",{ui:{card:th}}),[2]})},(tb=function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){tg(l,r,a,o,i,"next",e)}function i(e){tg(l,r,a,o,i,"throw",e)}o(void 0)})}).apply(this,arguments)}function tv(e,t,n,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,a)}function tE(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){tv(l,r,a,o,i,"next",e)}function i(e){tv(l,r,a,o,i,"throw",e)}o(void 0)})}}function tS(e,t,n){return(tS=tx()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&tk(a,n.prototype),a}).apply(null,arguments)}function tw(e){return(tw=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function tk(e,t){return(tk=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function tO(e){var t="function"==typeof Map?new Map:void 0;return(tO=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,n)}function n(){return tS(e,arguments,tw(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),tk(n,e)})(e)}function tx(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(tx=function(){return!!e})()}function tC(e,t){var n,r,a,l,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var u=[l,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var tI=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return e=n,t=arguments,e=tw(e),function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,tx()?Reflect.construct(e,t||[],tw(this).constructor):e.apply(this,t))}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&tk(n,e),t=[{key:"load",value:function(){var e=this;return tE(function(){return tC(this,function(t){switch(t.label){case 0:return e.app.use(eK),e.app.pluginSettingsManager.add("ai.orchestrator",{title:"Agent Orchestrator",icon:"ApartmentOutlined",Component:ti}),[4,e.registerSkillUiCards()];case 1:return t.sent(),[2]}})})()}},{key:"registerSkillUiCards",value:function(){var e=this;return tE(function(){return tC(this,function(t){switch(t.label){case 0:return[4,function(e){return tb.apply(this,arguments)}(e.app)];case 1:return t.sent(),[4,e0(e.app)];case 2:return t.sent(),[2]}})})()}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,t),n}(tO(e.Plugin));function tA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function tT(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return l}}(e,t)||tP(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 tP(e,t){if(e){if("string"==typeof e)return tA(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tA(e,t)}}function tj(e){var n=tT((0,t.useState)([]),2),r=n[0],a=n[1],l=tT((0,t.useState)(!1),2),o=l[0],i=l[1],u=tT((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__||"",n=new EventSource("".concat(t,"/api/agentLoopEventsStream:stream?runId=").concat(encodeURIComponent(String(e))));return d.current=n,n.onopen=function(){i(!0),s(null)},n.onmessage=function(e){try{var t=JSON.parse(e.data);a(function(e){return[t].concat(function(e){if(Array.isArray(e))return tA(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||tP(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){}},n.onerror=function(){i(!1),s("SSE connection lost. Reconnecting...")},m}},[e,m]),{events:r,isConnected:o,error:c}}}(),i}()});
|