plugin-agent-orchestrator 1.0.28 → 1.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +9 -7
  2. package/dist/client/index.js +1 -1
  3. package/dist/client-v2/{214.723affb37c13bf7a.js → 214.79650a549273f163.js} +1 -1
  4. package/dist/client-v2/264.718a107e43fc163c.js +10 -0
  5. package/dist/client-v2/373.f5d5292e53c4e832.js +10 -0
  6. package/dist/client-v2/{41.1805b2edfaa4afe2.js → 41.ba6e080cc0488143.js} +1 -1
  7. package/dist/client-v2/418.29e713f79131eece.js +10 -0
  8. package/dist/client-v2/619.bd3c5698b40705c3.js +10 -0
  9. package/dist/client-v2/677.a991ce0250ff5c77.js +10 -0
  10. package/dist/client-v2/{70.a15d7fcec7c41768.js → 70.bda9518881c05360.js} +1 -1
  11. package/dist/client-v2/925.f5370de8f6632d65.js +10 -0
  12. package/dist/client-v2/index.js +1 -1
  13. package/dist/externalVersion.js +7 -10
  14. package/dist/locale/en-US.json +94 -25
  15. package/dist/locale/vi-VN.json +94 -25
  16. package/dist/locale/zh-CN.json +94 -25
  17. package/dist/server/collections/agent-execution-spans.js +37 -0
  18. package/dist/server/collections/agent-harness-profiles.js +2 -2
  19. package/dist/server/collections/agent-memory-contexts.js +125 -0
  20. package/dist/server/collections/orchestrator-logs.js +2 -2
  21. package/dist/server/migrations/20260425000000-add-interaction-schema.js +3 -1
  22. package/dist/server/migrations/20260427000000-change-packages-to-text.js +3 -1
  23. package/dist/server/migrations/20260427000001-change-other-json-to-text.js +6 -2
  24. package/dist/server/migrations/20260524001000-add-plan-approval-and-harness-profiles.js +21 -19
  25. package/dist/server/migrations/20260621000000-native-policy-profile-defaults.js +193 -0
  26. package/dist/server/plugin.js +128 -74
  27. package/dist/server/resources/agent-monitor.js +454 -0
  28. package/dist/server/services/AgentHarness.js +24 -499
  29. package/dist/server/services/AgentMemoryContextService.js +216 -0
  30. package/dist/server/services/ExecutionSpanService.js +2 -2
  31. package/dist/server/services/NativeSubAgentObserver.js +413 -0
  32. package/dist/server/skill-hub/plugin.js +81 -5
  33. package/dist/server/skill-hub/tasks/SkillExecutionTask.js +9 -3
  34. package/dist/server/tools/delegate-task.js +11 -589
  35. package/dist/server/utils/skill-settings.js +18 -1
  36. package/package.json +47 -49
  37. package/src/client/AIEmployeesContext.tsx +5 -18
  38. package/src/client/AgentRunsTab.tsx +2 -771
  39. package/src/client/HarnessProfilesTab.tsx +2 -257
  40. package/src/client/OrchestratorSettings.tsx +97 -106
  41. package/src/client/RulesTab.tsx +2 -788
  42. package/src/client/plugin.tsx +0 -2
  43. package/src/client/skill-hub/components/ExecutionHistory.tsx +200 -202
  44. package/src/client/skill-hub/components/ExecutionProgress.tsx +51 -55
  45. package/src/client/skill-hub/components/LoopSettings.tsx +331 -331
  46. package/src/client/skill-hub/components/SkillEditor.tsx +43 -39
  47. package/src/client/skill-hub/components/SkillManager.tsx +194 -181
  48. package/src/client/skill-hub/components/SkillTestPanel.tsx +141 -145
  49. package/src/client/skill-hub/locale.ts +16 -16
  50. package/src/client/skill-hub/tools/SkillHubCard.tsx +104 -109
  51. package/src/client/skill-hub/tools/loopTemplates.ts +52 -52
  52. package/src/client/skill-hub/utils/jsonFields.ts +7 -3
  53. package/src/client-v2/components/AIEmployeesContext.tsx +3 -16
  54. package/src/client-v2/components/AgentRunsTab.tsx +182 -455
  55. package/src/client-v2/components/HarnessProfilesTab.tsx +34 -31
  56. package/src/client-v2/components/RulesTab.tsx +2 -782
  57. package/src/client-v2/components/TracingTab.tsx +1 -1
  58. package/src/client-v2/hooks/useApiRequest.ts +8 -1
  59. package/src/client-v2/pages/RulesPage.tsx +2 -2
  60. package/src/client-v2/plugin.tsx +3 -3
  61. package/src/locale/en-US.json +94 -25
  62. package/src/locale/vi-VN.json +94 -25
  63. package/src/locale/zh-CN.json +94 -25
  64. package/src/server/__tests__/native-sub-agent-observer.test.ts +246 -0
  65. package/src/server/__tests__/skill-settings.test.ts +6 -6
  66. package/src/server/__tests__/smoke.test.ts +1 -0
  67. package/src/server/collections/agent-execution-spans.ts +37 -0
  68. package/src/server/collections/agent-harness-profiles.ts +59 -59
  69. package/src/server/collections/agent-loop-events.ts +71 -71
  70. package/src/server/collections/agent-loop-steps.ts +144 -144
  71. package/src/server/collections/agent-memory-contexts.ts +95 -0
  72. package/src/server/collections/orchestrator-logs.ts +4 -4
  73. package/src/server/collections/skill-definitions.ts +111 -111
  74. package/src/server/collections/skill-executions.ts +106 -106
  75. package/src/server/collections/skill-loop-configs.ts +65 -65
  76. package/src/server/migrations/20260423000000-add-progress-fields.ts +14 -14
  77. package/src/server/migrations/20260425000000-add-interaction-schema.ts +3 -1
  78. package/src/server/migrations/20260427000000-change-packages-to-text.ts +4 -2
  79. package/src/server/migrations/20260427000001-change-other-json-to-text.ts +9 -5
  80. package/src/server/migrations/20260524000000-add-agent-loop-fields-to-skill-executions.ts +30 -30
  81. package/src/server/migrations/20260524001000-add-plan-approval-and-harness-profiles.ts +145 -142
  82. package/src/server/migrations/20260615000000-normalize-ai-employee-tool-bindings.ts +2 -2
  83. package/src/server/migrations/20260621000000-native-policy-profile-defaults.ts +193 -0
  84. package/src/server/plugin.ts +151 -94
  85. package/src/server/resources/agent-monitor.ts +482 -0
  86. package/src/server/services/AgentHarness.ts +38 -623
  87. package/src/server/services/AgentMemoryContextService.ts +256 -0
  88. package/src/server/services/AgentPlanValidator.ts +73 -73
  89. package/src/server/services/ExecutionSpanService.ts +6 -2
  90. package/src/server/services/FileManager.ts +144 -144
  91. package/src/server/services/NativeSubAgentObserver.ts +507 -0
  92. package/src/server/services/SkillManager.ts +583 -583
  93. package/src/server/services/SkillRepositoryService.ts +5 -7
  94. package/src/server/services/TokenTracker.ts +3 -3
  95. package/src/server/services/WorkerEnvManager.ts +1 -2
  96. package/src/server/skill-hub/actions/git-import.ts +5 -7
  97. package/src/server/skill-hub/plugin.ts +89 -6
  98. package/src/server/skill-hub/tasks/SkillExecutionTask.ts +470 -460
  99. package/src/server/skill-hub/utils/json-fields.ts +1 -1
  100. package/src/server/tools/delegate-task.ts +13 -847
  101. package/src/server/utils/skill-settings.ts +24 -6
  102. package/dist/client-v2/264.0533912e6c5ea2d7.js +0 -10
  103. package/dist/client-v2/418.5ae055abf141820e.js +0 -10
  104. package/dist/client-v2/619.d99d3c9e61c99064.js +0 -10
  105. package/dist/client-v2/892.72db4161511c8a16.js +0 -10
  106. package/dist/client-v2/926.87f660b670d85bcc.js +0 -10
  107. package/src/client/tools/PlanApprovalCard.tsx +0 -176
  108. package/src/client/tools/registerOrchestratorCards.ts +0 -17
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- "use strict";(self.webpackChunkplugin_agent_orchestrator_client_v2=self.webpackChunkplugin_agent_orchestrator_client_v2||[]).push([["214"],{349:function(e,t,r){r.r(t),r.d(t,{default:function(){return p}});var n=r(155),a=r.n(n),l=r(59),o=r(375),u=r(608),i=r(603);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function s(e,t,r,n,a,l,o){try{var u=e[l](o),i=u.value}catch(e){r(e);return}u.done?t(i):Promise.resolve(i).then(n,a)}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,u=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){u=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(u)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return c(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.")}()}l.Typography.Title,l.Typography.Text;var d=function(){var e=(0,u.R)(),t=(0,i.k)(),r=f((0,n.useState)([]),2),c=r[0],d=r[1],p=f((0,n.useState)(!1),2),y=p[0],b=p[1],v=(0,n.useCallback)(function(){var t;return(t=function(){var t,r,n,a,l;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(o,"next",{value:i(0)}),u(o,"throw",{value:i(1)}),u(o,"return",{value:i(2)}),"function"==typeof Symbol&&u(o,Symbol.iterator,{value:function(){return this}}),o;function i(u){return function(i){var c=[u,i];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(o){switch(o.label){case 0:b(!0),o.label=1;case 1:return o.trys.push([1,3,4,5]),[4,e.request({url:"skillExecutions:list",params:{pageSize:1e3,sort:["-createdAt"],appends:["skill"]}})];case 2:return d(Array.isArray(l=null!=(t=null!=(r=null==(a=o.sent().data)||null==(n=a.data)?void 0:n.data)?r:null==a?void 0:a.data)?t:[])?l:[]),[3,5];case 3:return o.sent(),[3,5];case 4:return b(!1),[7];case 5:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var l=t.apply(e,r);function o(e){s(l,n,a,o,u,"next",e)}function u(e){s(l,n,a,o,u,"throw",e)}o(void 0)})})()},[e]);(0,n.useEffect)(function(){v()},[v]);var m=(0,n.useMemo)(function(){var e=c.length,t=c.filter(function(e){return"succeeded"===e.status}).length,r=c.filter(function(e){return"failed"===e.status}).length,n=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,r,n=(null==(t=e.skill)?void 0:t.title)||(null==(r=e.skill)?void 0:r.name)||"Unknown";l[n]||(l[n]={name:n,total:0,succeeded:0,failed:0,timeout:0,canceled:0,totalDuration:0,durationCount:0}),l[n].total+=1,l[n][e.status]=(l[n][e.status]||0)+1,e.durationMs&&(l[n].totalDuration+=e.durationMs,l[n].durationCount+=1)}),{total:e,succeeded:t,failed:r,timeout:n,canceled:a,skillData:Object.values(l).map(function(e){var t,r;return t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={successRate:e.total>0?e.succeeded/e.total*100:0,avgDuration:e.durationCount>0?(e.totalDuration/e.durationCount/1e3).toFixed(2):0},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t}).sort(function(e,t){return t.total-e.total})}},[c]),h=[{title:t("Skill"),dataIndex:"name",key:"name",width:200},{title:t("Total Runs"),dataIndex:"total",key:"total",width:100},{title:t("Success Rate"),dataIndex:"successRate",key:"successRate",width:150,render:function(e){return a().createElement(l.Progress,{percent:Math.round(e),size:"small",status:100===e?"success":e>50?"active":"exception"})}},{title:t("Success"),dataIndex:"succeeded",key:"succeeded",width:100},{title:t("Failed"),dataIndex:"failed",key:"failed",width:100},{title:t("Timeout"),dataIndex:"timeout",key:"timeout",width:100},{title:t("Avg Duration (s)"),dataIndex:"avgDuration",key:"avgDuration",width:120}];return a().createElement(l.Space,{direction:"vertical",size:"large",style:{width:"100%",padding:"0 16px"}},a().createElement(l.Row,{gutter:16},a().createElement(l.Col,{span:6},a().createElement(l.Card,{size:"small"},a().createElement(l.Statistic,{title:t("Total Executions (Recent)"),value:m.total,prefix:a().createElement(o.SyncOutlined,null)}))),a().createElement(l.Col,{span:6},a().createElement(l.Card,{size:"small"},a().createElement(l.Statistic,{title:t("Succeeded"),value:m.succeeded,valueStyle:{color:"#3f8600"},prefix:a().createElement(o.CheckCircleOutlined,null)}))),a().createElement(l.Col,{span:6},a().createElement(l.Card,{size:"small"},a().createElement(l.Statistic,{title:t("Failed"),value:m.failed,valueStyle:{color:"#cf1322"},prefix:a().createElement(o.CloseCircleOutlined,null)}))),a().createElement(l.Col,{span:6},a().createElement(l.Card,{size:"small"},a().createElement(l.Statistic,{title:t("Timeout/Canceled"),value:m.timeout+m.canceled,valueStyle:{color:"#faad14"},prefix:a().createElement(o.ClockCircleOutlined,null)})))),a().createElement(l.Card,{title:t("Metrics by Skill (Recent)")},a().createElement(l.Table,{dataSource:m.skillData,columns:h,rowKey:"name",loading:y,pagination:!1,size:"middle",scroll:{x:"max-content"}})))},p=function(){return a().createElement("div",{style:{padding:"0 24px 24px"}},a().createElement(d,null))}},608:function(e,t,r){r.d(t,{R:function(){return i},b:function(){return c}});var n=r(485),a=r(155);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t,r,n,a,l,o){try{var u=e[l](o),i=u.value}catch(e){r(e);return}u.done?t(i):Promise.resolve(i).then(n,a)}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,u=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){u=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(u)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return l(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 i(){return(0,n.useApp)().apiClient}function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=i(),n=t.manual,l=void 0!==n&&n,c=t.refreshDeps,s=t.onSuccess,f=t.onError,d=u((0,a.useState)(void 0),2),p=d[0],y=d[1],b=u((0,a.useState)(!l),2),v=b[0],m=b[1],h=u((0,a.useState)(void 0),2),g=h[0],O=h[1],w=(0,a.useRef)(e);w.current=e;var S=(0,a.useRef)(s);S.current=s;var k=(0,a.useRef)(f);k.current=f;var j=(0,a.useCallback)(function(e){var t;return(t=function(){var t,n,a,l,o,u;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(o,"next",{value:i(0)}),u(o,"throw",{value:i(1)}),u(o,"return",{value:i(2)}),"function"==typeof Symbol&&u(o,Symbol.iterator,{value:function(){return this}}),o;function i(u){return function(i){var c=[u,i];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(i){switch(i.label){case 0:t=w.current,m(!0),O(void 0),i.label=1;case 1:if(i.trys.push([1,6,7,8]),"function"!=typeof t)return[3,3];return[4,t()];case 2:return a=i.sent(),[3,5];case 3:return[4,r.request({url:t.url,method:t.method||"get",params:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t.params||{},e||{}),data:t.data})];case 4:a=null==(l=i.sent())?void 0:l.data,i.label=5;case 5:return y(a),null==(n=S.current)||n.call(S,a),[2,a];case 6:return O(o=i.sent()),null==(u=k.current)||u.call(k,o),[2,void 0];case 7:return m(!1),[7];case 8:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var l=t.apply(e,r);function u(e){o(l,n,a,u,i,"next",e)}function i(e){o(l,n,a,u,i,"throw",e)}u(void 0)})})()},[r]),E=(0,a.useCallback)(function(){j()},[j]);return(0,a.useEffect)(function(){l||j()},void 0===c?[]:c),{data:p,loading:v,error:g,refresh:E,run:j}}},603:function(e,t,r){r.d(t,{k:function(){return l}});var n=r(485),a=r(155);function l(){var e=(0,n.useApp)();return(0,a.useCallback)(function(t,r){return e.i18n.t(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({ns:["plugin-agent-orchestrator","client"]},r))},[e.i18n])}}}]);
10
+ "use strict";(self.webpackChunkplugin_agent_orchestrator_client_v2=self.webpackChunkplugin_agent_orchestrator_client_v2||[]).push([["214"],{349:function(e,t,r){r.r(t),r.d(t,{default:function(){return p}});var n=r(155),a=r.n(n),l=r(59),o=r(375),u=r(608),i=r(603);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function s(e,t,r,n,a,l,o){try{var u=e[l](o),i=u.value}catch(e){r(e);return}u.done?t(i):Promise.resolve(i).then(n,a)}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,u=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){u=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(u)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return c(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.")}()}l.Typography.Title,l.Typography.Text;var d=function(){var e=(0,u.R)(),t=(0,i.k)(),r=f((0,n.useState)([]),2),c=r[0],d=r[1],p=f((0,n.useState)(!1),2),y=p[0],b=p[1],v=(0,n.useCallback)(function(){var t;return(t=function(){var t,r,n,a,l;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(o,"next",{value:i(0)}),u(o,"throw",{value:i(1)}),u(o,"return",{value:i(2)}),"function"==typeof Symbol&&u(o,Symbol.iterator,{value:function(){return this}}),o;function i(u){return function(i){var c=[u,i];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(o){switch(o.label){case 0:b(!0),o.label=1;case 1:return o.trys.push([1,3,4,5]),[4,e.request({url:"skillExecutions:list",params:{pageSize:1e3,sort:["-createdAt"],appends:["skill"]}})];case 2:return d(Array.isArray(l=null!=(t=null!=(r=null==(a=o.sent().data)||null==(n=a.data)?void 0:n.data)?r:null==a?void 0:a.data)?t:[])?l:[]),[3,5];case 3:return o.sent(),[3,5];case 4:return b(!1),[7];case 5:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var l=t.apply(e,r);function o(e){s(l,n,a,o,u,"next",e)}function u(e){s(l,n,a,o,u,"throw",e)}o(void 0)})})()},[e]);(0,n.useEffect)(function(){v()},[v]);var m=(0,n.useMemo)(function(){var e=c.length,t=c.filter(function(e){return"succeeded"===e.status}).length,r=c.filter(function(e){return"failed"===e.status}).length,n=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,r,n=(null==(t=e.skill)?void 0:t.title)||(null==(r=e.skill)?void 0:r.name)||"Unknown";l[n]||(l[n]={name:n,total:0,succeeded:0,failed:0,timeout:0,canceled:0,totalDuration:0,durationCount:0}),l[n].total+=1,l[n][e.status]=(l[n][e.status]||0)+1,e.durationMs&&(l[n].totalDuration+=e.durationMs,l[n].durationCount+=1)}),{total:e,succeeded:t,failed:r,timeout:n,canceled:a,skillData:Object.values(l).map(function(e){var t,r;return t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={successRate:e.total>0?e.succeeded/e.total*100:0,avgDuration:e.durationCount>0?(e.totalDuration/e.durationCount/1e3).toFixed(2):0},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t}).sort(function(e,t){return t.total-e.total})}},[c]),h=[{title:t("Skill"),dataIndex:"name",key:"name",width:200},{title:t("Total Runs"),dataIndex:"total",key:"total",width:100},{title:t("Success Rate"),dataIndex:"successRate",key:"successRate",width:150,render:function(e){return a().createElement(l.Progress,{percent:Math.round(e),size:"small",status:100===e?"success":e>50?"active":"exception"})}},{title:t("Success"),dataIndex:"succeeded",key:"succeeded",width:100},{title:t("Failed"),dataIndex:"failed",key:"failed",width:100},{title:t("Timeout"),dataIndex:"timeout",key:"timeout",width:100},{title:t("Avg Duration (s)"),dataIndex:"avgDuration",key:"avgDuration",width:120}];return a().createElement(l.Space,{direction:"vertical",size:"large",style:{width:"100%",padding:"0 16px"}},a().createElement(l.Row,{gutter:16},a().createElement(l.Col,{span:6},a().createElement(l.Card,{size:"small"},a().createElement(l.Statistic,{title:t("Total Executions (Recent)"),value:m.total,prefix:a().createElement(o.SyncOutlined,null)}))),a().createElement(l.Col,{span:6},a().createElement(l.Card,{size:"small"},a().createElement(l.Statistic,{title:t("Succeeded"),value:m.succeeded,valueStyle:{color:"#3f8600"},prefix:a().createElement(o.CheckCircleOutlined,null)}))),a().createElement(l.Col,{span:6},a().createElement(l.Card,{size:"small"},a().createElement(l.Statistic,{title:t("Failed"),value:m.failed,valueStyle:{color:"#cf1322"},prefix:a().createElement(o.CloseCircleOutlined,null)}))),a().createElement(l.Col,{span:6},a().createElement(l.Card,{size:"small"},a().createElement(l.Statistic,{title:t("Timeout/Canceled"),value:m.timeout+m.canceled,valueStyle:{color:"#faad14"},prefix:a().createElement(o.ClockCircleOutlined,null)})))),a().createElement(l.Card,{title:t("Metrics by Skill (Recent)")},a().createElement(l.Table,{dataSource:m.skillData,columns:h,rowKey:"name",loading:y,pagination:!1,size:"middle",scroll:{x:"max-content"}})))},p=function(){return a().createElement("div",{style:{padding:"0 24px 24px"}},a().createElement(d,null))}},608:function(e,t,r){r.d(t,{R:function(){return c},b:function(){return s}});var n=r(485),a=r(155);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t,r,n,a,l,o){try{var u=e[l](o),i=u.value}catch(e){r(e);return}u.done?t(i):Promise.resolve(i).then(n,a)}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,u=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){u=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(u)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return l(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 i(e){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function c(){return(0,n.useApp)().apiClient}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=c(),n=t.manual,l=void 0!==n&&n,s=t.refreshDeps,f=t.onSuccess,d=t.onError,p=u((0,a.useState)(void 0),2),y=p[0],b=p[1],v=u((0,a.useState)(!l),2),m=v[0],h=v[1],g=u((0,a.useState)(void 0),2),O=g[0],w=g[1],S=(0,a.useRef)(e);S.current=e;var k=(0,a.useRef)(f);k.current=f;var j=(0,a.useRef)(d);j.current=d;var E=(0,a.useCallback)(function(e){var t;return(t=function(){var t,n,a,l,o,u,c;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(o,"next",{value:i(0)}),u(o,"throw",{value:i(1)}),u(o,"return",{value:i(2)}),"function"==typeof Symbol&&u(o,Symbol.iterator,{value:function(){return this}}),o;function i(u){return function(i){var c=[u,i];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(s){switch(s.label){case 0:t=S.current,h(!0),w(void 0),s.label=1;case 1:if(s.trys.push([1,6,7,8]),"function"!=typeof t)return[3,3];return[4,t()];case 2:return a=s.sent(),[3,5];case 3:return[4,r.request({url:t.url,method:t.method||"get",params:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t.params||{},e||{}),data:t.data})];case 4:a=(o=null==(l=s.sent())?void 0:l.data)&&(void 0===o?"undefined":i(o))==="object"&&o.data&&"object"===i(o.data)&&"data"in o.data?o.data:o,s.label=5;case 5:return b(a),null==(n=k.current)||n.call(k,a),[2,a];case 6:return w(u=s.sent()),null==(c=j.current)||c.call(j,u),[2,void 0];case 7:return h(!1),[7];case 8:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var l=t.apply(e,r);function u(e){o(l,n,a,u,i,"next",e)}function i(e){o(l,n,a,u,i,"throw",e)}u(void 0)})})()},[r]),x=(0,a.useCallback)(function(){E()},[E]);return(0,a.useEffect)(function(){l||E()},void 0===s?[]:s),{data:y,loading:m,error:O,refresh:x,run:E}}},603:function(e,t,r){r.d(t,{k:function(){return l}});var n=r(485),a=r(155);function l(){var e=(0,n.useApp)();return(0,a.useCallback)(function(t,r){return e.i18n.t(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({ns:["plugin-agent-orchestrator","client"]},r))},[e.i18n])}}}]);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunkplugin_agent_orchestrator_client_v2=self.webpackChunkplugin_agent_orchestrator_client_v2||[]).push([["264"],{715:function(e,t,r){r.r(t),r.d(t,{default:function(){return b}});var n=r(155),a=r.n(n),o=r(59),u=r(375),l=r(608),i=r(603),c=r(204),s=r(472);function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function d(e,t,r,n,a,o,u){try{var l=e[o](u),i=l.value}catch(e){r(e);return}l.done?t(i):Promise.resolve(i).then(n,a)}function p(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function u(e){d(o,n,a,u,l,"next",e)}function l(e){d(o,n,a,u,l,"throw",e)}u(void 0)})}}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var o=[],u=!0,l=!1;try{for(a=a.call(e);!(u=(r=a.next()).done)&&(o.push(r.value),!t||o.length!==t);u=!0);}catch(e){l=!0,n=e}finally{try{u||null==a.return||a.return()}finally{if(l)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return f(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(u,"next",{value:i(0)}),l(u,"throw",{value:i(1)}),l(u,"return",{value:i(2)}),"function"==typeof Symbol&&l(u,Symbol.iterator,{value:function(){return this}}),u;function i(l){return function(i){var c=[l,i];if(r)throw TypeError("Generator is already executing.");for(;u&&(u=0,c[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,n=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){o.label=c[1];break}if(6===c[0]&&o.label<a[1]){o.label=a[1],a=c;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(c);break}a[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var v={pending:"default",running:"processing",succeeded:"success",failed:"error",canceled:"warning",timeout:"error"},m=function(){var e=(0,l.R)(),t=(0,i.k)(),r=y((0,n.useState)([]),2),f=r[0],d=r[1],m=y((0,n.useState)(!1),2),b=m[0],g=m[1],w=y((0,n.useState)(1),2),S=w[0],k=w[1],x=y((0,n.useState)(0),2),E=x[0],O=x[1],j=(0,n.useCallback)(function(){return p(function(){var t,r,n,a,o,u;return h(this,function(l){switch(l.label){case 0:g(!0),l.label=1;case 1:return l.trys.push([1,3,4,5]),[4,e.request({url:"skillExecutions:list",params:{page:S,pageSize:20,sort:["-createdAt"],appends:["skill","triggeredBy"]}})];case 2:return d(Array.isArray(u=null!=(t=null!=(r=null==(o=l.sent().data)||null==(n=o.data)?void 0:n.data)?r:null==o?void 0:o.data)?t:[])?u:[]),O((null==o||null==(a=o.meta)?void 0:a.count)||0),[3,5];case 3:return l.sent(),[3,5];case 4:return g(!1),[7];case 5:return[2]}})})()},[e,S]);(0,n.useEffect)(function(){j()},[j]);var A=[{title:"ID",dataIndex:"id",key:"id",width:80},{title:t("Skill"),dataIndex:["skill","title"],key:"skill",width:180},{title:t("Status"),dataIndex:"status",key:"status",width:120,render:function(e){return a().createElement(o.Tag,{color:v[e]||"default"},e)}},{title:t("Duration"),dataIndex:"durationMs",key:"duration",width:100,render:function(e){return e?"".concat((e/1e3).toFixed(1),"s"):"-"}},{title:t("Files"),dataIndex:"outputFiles",key:"files",width:250,render:function(e,t){var r=(0,c.lk)(e,[]);if(!Array.isArray(r)||!r.length)return"-";var n=r.map(function(e){return{name:e.name,url:"/api/skillHub:download?execId=".concat(t.id,"&filename=").concat(encodeURIComponent(e.name))}});return a().createElement(s.H,{files:n})}},{title:t("Triggered By"),dataIndex:["triggeredBy","nickname"],key:"triggeredBy",width:120,render:function(e){return e||"-"}},{title:t("Created At"),dataIndex:"createdAt",key:"createdAt",width:180,render:function(e){return e?new Date(e).toLocaleString():"-"}},{title:t("Output"),key:"output",width:200,render:function(e,t){return a().createElement(o.Space,{direction:"vertical",size:0},t.stdout&&a().createElement(o.Tooltip,{title:t.stdout},a().createElement(o.Typography.Text,{style:{fontSize:12,maxWidth:200},ellipsis:!0},t.stdout)),t.stderr&&a().createElement(o.Tooltip,{title:t.stderr},a().createElement(o.Typography.Text,{type:"danger",style:{fontSize:12,maxWidth:200},ellipsis:!0},t.stderr)))}},{title:t("Actions"),key:"actions",width:80,fixed:"right",render:function(r,n){return a().createElement(o.Space,{size:"middle"},a().createElement(o.Popconfirm,{title:t("Are you sure to delete this execution history and its files?"),onConfirm:function(){var r;return r=n.id,p(function(){var n,a,u,l,i;return h(this,function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),[4,e.request({url:"skillExecutions:destroy",method:"POST",params:{filterByTk:r}})];case 1:return c.sent(),o.message.success(t("Deleted successfully")),j(),[3,3];case 2:return n=c.sent(),o.message.error((null==n||null==(i=n.response)||null==(l=i.data)||null==(u=l.errors)||null==(a=u[0])?void 0:a.message)||t("Delete failed")),[3,3];case 3:return[2]}})})()},okText:t("Yes"),cancelText:t("No")},a().createElement(o.Button,{type:"text",danger:!0,icon:a().createElement(u.DeleteOutlined,null),size:"small"})))}}];return a().createElement(o.Card,{title:t("Execution History"),extra:a().createElement(o.Space,null,a().createElement(o.Button,{icon:a().createElement(u.ReloadOutlined,null),onClick:j,loading:b},t("Refresh")))},a().createElement(o.Table,{dataSource:f,columns:A,rowKey:"id",loading:b,size:"middle",pagination:{current:S,pageSize:20,total:E,onChange:k,showTotal:function(e){return"Total: ".concat(e)}},scroll:{x:1200}}))},b=function(){return a().createElement("div",{style:{padding:"0 24px 24px"}},a().createElement(m,null))}},472:function(e,t,r){r.d(t,{H:function(){return l}});var n=r(155),a=r.n(n),o=r(59),u=r(375),l=function(e){var t=e.files;return Array.isArray(t)&&0!==t.length?a().createElement(o.Space,{direction:"vertical",size:2,style:{width:"100%"}},t.map(function(e,t){var r=e.downloadUrl||e.url,n=e.name||"file-".concat(t+1);return r?a().createElement("a",{key:"".concat(n,"-").concat(t),href:r,target:"_blank",rel:"noreferrer"},a().createElement(u.PaperClipOutlined,null)," ",n):a().createElement(o.Typography.Text,{key:"".concat(n,"-").concat(t)},a().createElement(u.PaperClipOutlined,null)," ",n)})):a().createElement(o.Typography.Text,{type:"secondary"},"-")}},608:function(e,t,r){r.d(t,{R:function(){return c},b:function(){return s}});var n=r(485),a=r(155);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function u(e,t,r,n,a,o,u){try{var l=e[o](u),i=l.value}catch(e){r(e);return}l.done?t(i):Promise.resolve(i).then(n,a)}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var o=[],u=!0,l=!1;try{for(a=a.call(e);!(u=(r=a.next()).done)&&(o.push(r.value),!t||o.length!==t);u=!0);}catch(e){l=!0,n=e}finally{try{u||null==a.return||a.return()}finally{if(l)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return o(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function c(){return(0,n.useApp)().apiClient}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=c(),n=t.manual,o=void 0!==n&&n,s=t.refreshDeps,f=t.onSuccess,d=t.onError,p=l((0,a.useState)(void 0),2),y=p[0],h=p[1],v=l((0,a.useState)(!o),2),m=v[0],b=v[1],g=l((0,a.useState)(void 0),2),w=g[0],S=g[1],k=(0,a.useRef)(e);k.current=e;var x=(0,a.useRef)(f);x.current=f;var E=(0,a.useRef)(d);E.current=d;var O=(0,a.useCallback)(function(e){var t;return(t=function(){var t,n,a,o,u,l,c;return function(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(u,"next",{value:i(0)}),l(u,"throw",{value:i(1)}),l(u,"return",{value:i(2)}),"function"==typeof Symbol&&l(u,Symbol.iterator,{value:function(){return this}}),u;function i(l){return function(i){var c=[l,i];if(r)throw TypeError("Generator is already executing.");for(;u&&(u=0,c[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,n=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){o.label=c[1];break}if(6===c[0]&&o.label<a[1]){o.label=a[1],a=c;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(c);break}a[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(s){switch(s.label){case 0:t=k.current,b(!0),S(void 0),s.label=1;case 1:if(s.trys.push([1,6,7,8]),"function"!=typeof t)return[3,3];return[4,t()];case 2:return a=s.sent(),[3,5];case 3:return[4,r.request({url:t.url,method:t.method||"get",params:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t.params||{},e||{}),data:t.data})];case 4:a=(u=null==(o=s.sent())?void 0:o.data)&&(void 0===u?"undefined":i(u))==="object"&&u.data&&"object"===i(u.data)&&"data"in u.data?u.data:u,s.label=5;case 5:return h(a),null==(n=x.current)||n.call(x,a),[2,a];case 6:return S(l=s.sent()),null==(c=E.current)||c.call(E,l),[2,void 0];case 7:return b(!1),[7];case 8:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var o=t.apply(e,r);function l(e){u(o,n,a,l,i,"next",e)}function i(e){u(o,n,a,l,i,"throw",e)}l(void 0)})})()},[r]),j=(0,a.useCallback)(function(){O()},[O]);return(0,a.useEffect)(function(){o||O()},void 0===s?[]:s),{data:y,loading:m,error:w,refresh:j,run:O}}},603:function(e,t,r){r.d(t,{k:function(){return o}});var n=r(485),a=r(155);function o(){var e=(0,n.useApp)();return(0,a.useCallback)(function(t,r){return e.i18n.t(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({ns:["plugin-agent-orchestrator","client"]},r))},[e.i18n])}},204:function(e,t,r){function n(e,t){if(null==e||""===e)return t;if("string"!=typeof e)return e;var r=e.trim(),n=r.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),a=n?n[1].trim():r;try{var o=JSON.parse(a);if("string"==typeof o){var u=o.trim(),l=u.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),i=l?l[1].trim():u;try{o=JSON.parse(i)}catch(e){}}return o}catch(e){return t}}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=n(e,void 0),a=void 0===r?null==e||""===e?t:e:r;return null==a?"":"string"==typeof a?a:JSON.stringify(a,null,2)}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=n(e,void 0),a=void 0===r?null==e||""===e?t:e:r;return"```json\n".concat(JSON.stringify(a,null,2),"\n```")}r.d(t,{Bz:function(){return a},Nx:function(){return o},lk:function(){return n}})}}]);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunkplugin_agent_orchestrator_client_v2=self.webpackChunkplugin_agent_orchestrator_client_v2||[]).push([["373"],{380:function(e,t,n){n.r(t);var l=n(155),r=n.n(l),a=n(532),c=n(804);t.default=function(){return r().createElement(a.l,null,r().createElement("div",{style:{padding:"0 24px 24px"}},r().createElement(c.H,null)))}}}]);
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- "use strict";(self.webpackChunkplugin_agent_orchestrator_client_v2=self.webpackChunkplugin_agent_orchestrator_client_v2||[]).push([["41"],{224:function(e,t,n){n.r(t),n.d(t,{default:function(){return R}});var r=n(155),a=n.n(r),l=n(59),o=n(375),i=n(608),u=n(603),c=n(204);function s(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 p(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 m(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 d(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(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 s(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 s(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 y=l.Input.TextArea,h=l.theme.useToken,g=function(e){var t=e.skill,n=e.onClose,s=(0,i.R)(),g=(0,u.k)(),v=h().token,b=f(l.Form.useForm(),1)[0],S=!!t,E=f((0,r.useState)([]),2),k=E[0],w=E[1];(0,r.useEffect)(function(){S||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),w(Array.isArray(r)?r:[])}).catch(function(){w([])})},[s,S]),(0,r.useEffect)(function(){t?b.setFieldsValue(d(m({},t),{inputSchema:(0,c.Bz)(t.inputSchema,null),interactionSchema:(0,c.Bz)(t.interactionSchema,null),packages:(0,c.Bz)(t.packages,[])})):(b.resetFields(),b.setFieldsValue({storageType:"database",language:"python",timeoutSeconds:60,maxOutputSizeMb:50,enabled:!0,toolScope:"CUSTOM",autoCall:!1,packages:"[]"}))},[t,b]);var O=l.Form.useWatch("storageType",b)||"database";(0,r.useEffect)(function(){if("plugin"===O){var e=b.getFieldValue("pluginSource");if(e){var t=k.find(function(t){return t.name===e});t&&b.setFieldsValue({name:t.name,title:t.title,description:t.description,language:t.language,instructions:t.instructions||"",inputSchema:(0,c.Bz)(t.inputSchema,null),interactionSchema:(0,c.Bz)(t.interactionSchema,null),packages:(0,c.Bz)(t.packages,[]),timeoutSeconds:t.timeoutSeconds||60,maxOutputSizeMb:t.maxOutputSizeMb||50,toolScope:t.toolScope||"CUSTOM",storageUrl:t.storageUrl})}}},[O,k,b]);var x=function(e){var t,n=k.find(function(t){return t.name===e});n&&("plugin"===O?b.setFieldsValue({name:n.name,title:n.title,description:n.description||"",language:n.language||"python",instructions:n.instructions||"",inputSchema:(0,c.Bz)(n.inputSchema,null),interactionSchema:(0,c.Bz)(n.interactionSchema,null),packages:(0,c.Bz)(n.packages,[]),timeoutSeconds:n.timeoutSeconds||60,maxOutputSizeMb:n.maxOutputSizeMb||50,toolScope:n.toolScope||"CUSTOM",storageUrl:n.storageUrl}):b.setFieldsValue({name:n.name,title:n.title,description:n.description||"",instructions:n.instructions||"",language:n.language||"python",codeTemplate:n.codeTemplate||"",inputSchema:(0,c.Bz)(n.inputSchema,null),interactionSchema:(0,c.Bz)(n.interactionSchema,null),packages:(0,c.Bz)(n.packages,[]),timeoutSeconds:n.timeoutSeconds||60,maxOutputSizeMb:n.maxOutputSizeMb||50,toolScope:n.toolScope||"CUSTOM",enabled:null==(t=n.enabled)||t}),l.message.success(g("Template applied")))};return a().createElement(l.Modal,{open:!0,title:S?g("Edit Skill"):g("New Skill"),onCancel:function(){return n()},width:720,destroyOnClose:!0,footer:null,styles:{body:{padding:0,display:"flex",flexDirection:"column",maxHeight:"calc(100vh - 120px)"}},style:{top:40}},a().createElement(l.Form,{form:b,layout:"vertical",size:"middle",component:"div",style:{display:"flex",flexDirection:"column",maxHeight:"calc(100vh - 120px)"}},a().createElement(l.Form.Item,{name:"storageUrl",hidden:!0},a().createElement(l.Input,null)),a().createElement("div",{style:{flexShrink:0,background:v.colorBgContainer,borderBottom:"1px solid ".concat(v.colorBorderSecondary),padding:"12px 24px",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12}},a().createElement(l.Form.Item,{name:"storageType",noStyle:!0},a().createElement(l.Radio.Group,{optionType:"button",buttonStyle:"solid",size:"small"},a().createElement(l.Radio,{value:"database"},g("Database Editor")),a().createElement(l.Radio,{value:"local"},g("ZIP Package")),a().createElement(l.Radio,{value:"plugin",disabled:!Array.isArray(k)||0===k.length},g("Bind to Plugin")))),a().createElement(l.Space,{size:16},a().createElement(l.Space,{size:4},a().createElement("span",{style:{fontSize:12,color:v.colorTextSecondary}},g("Enabled")),a().createElement(l.Form.Item,{name:"enabled",valuePropName:"checked",noStyle:!0},a().createElement(l.Switch,{size:"small"}))),a().createElement(l.Space,{size:4},a().createElement("span",{style:{fontSize:12,color:v.colorTextSecondary}},g("Auto Call")),a().createElement(l.Form.Item,{name:"autoCall",valuePropName:"checked",noStyle:!0},a().createElement(l.Switch,{size:"small"})))),a().createElement(l.Space,null,a().createElement(l.Button,{size:"small",icon:a().createElement(o.CloseOutlined,null),onClick:function(){return n()}},g("Cancel")),a().createElement(l.Button,{type:"primary",size:"small",icon:a().createElement(o.SaveOutlined,null),onClick:function(){var e;return(e=function(){var e,r,a;return function(e,t){var n,r,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(n=1,r&&(a=2&c[0]?r.return:c[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,c[1])).done)return a;switch(r=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],r=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(o){switch(o.label){case 0:return o.trys.push([0,6,,7]),[4,b.validateFields()];case 1:e=o.sent();try{e.inputSchema&&JSON.parse(e.inputSchema)}catch(e){return l.message.error(g("Invalid JSON in Input Schema")),[2]}try{e.interactionSchema&&JSON.parse(e.interactionSchema)}catch(e){return l.message.error(g("Invalid JSON in Interaction Schema")),[2]}try{e.packages&&JSON.parse(e.packages)}catch(e){return l.message.error(g("Invalid JSON in Packages")),[2]}if(r=d(m({},e),{inputSchema:e.inputSchema?(0,c.Nx)(e.inputSchema):null,interactionSchema:e.interactionSchema?(0,c.Nx)(e.interactionSchema):null,packages:(0,c.Nx)(e.packages||[],[])}),!S)return[3,3];return[4,s.request({url:"skillDefinitions:update",method:"POST",params:{filterByTk:t.id},data:r})];case 2:return o.sent(),[3,5];case 3:return[4,s.request({url:"skillDefinitions:create",method:"POST",data:r})];case 4:o.sent(),o.label=5;case 5:return l.message.success(g(S?"Skill updated":"Skill created")),n(!0),[3,7];case 6:if(null==(a=o.sent())?void 0:a.errorFields)return[2];return l.message.error(g("Failed to save skill")),[3,7];case 7:return[2]}})},function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){p(l,r,a,o,i,"next",e)}function i(e){p(l,r,a,o,i,"throw",e)}o(void 0)})})()}},S?g("Save"):g("Create")))),a().createElement("div",{style:{flex:1,overflowY:"auto",padding:"16px 24px 24px",minHeight:0}},"database"===O&&!S&&Array.isArray(k)&&k.length>0&&a().createElement(l.Form.Item,{label:g("Import Template to Pre-fill code (Optional)"),style:{marginBottom:24}},a().createElement(l.Select,{placeholder:g("Select a template to pre-fill"),onChange:x,allowClear:!0},k.map(function(e){return a().createElement(l.Select.Option,{key:e.name,value:e.name},e.title," (",e.pluginSource||e.name,")")}))),"plugin"===O&&a().createElement(a().Fragment,null,a().createElement(l.Form.Item,{name:"inputSchema",hidden:!0},a().createElement(y,null)),a().createElement(l.Form.Item,{name:"packages",hidden:!0},a().createElement(l.Input,null)),a().createElement(l.Form.Item,{name:"pluginSource",label:g("Select Plugin Skill"),rules:[{required:!0}],style:{marginBottom:24,padding:12,background:"#e6f4ff",borderRadius:8,border:"1px solid #91caff"},extra:a().createElement("div",{style:{fontSize:12,color:"#1677ff",marginTop:8}},g("Binding dynamically delegates execution to the plugin logic. Code, Language, and Schemas are managed externally."))},a().createElement(l.Select,{placeholder:g("Choose an enabled plugin skill to attach"),onChange:x,allowClear:!0},Array.isArray(k)&&k.map(function(e){return a().createElement(l.Select.Option,{key:e.name,value:e.name},e.title," (",e.pluginSource||e.name,")")})))),a().createElement(l.Form.Item,{name:"name",label:g("Name (Internal Identifier)"),rules:[{required:!0}]},a().createElement(l.Input,{placeholder:"generate-word-report",disabled:S||"plugin"===O})),a().createElement(l.Form.Item,{name:"title",label:g("Title"),rules:[{required:!0}]},a().createElement(l.Input,{placeholder:"Generate Word Report",disabled:"plugin"===O})),a().createElement(l.Form.Item,{name:"description",label:g("Description")},a().createElement(y,{rows:2,placeholder:"Description for AI employee to understand this skill",disabled:"plugin"===O})),a().createElement(l.Form.Item,{name:"instructions",label:g("Instructions / Documentation")},a().createElement(y,{rows:6,placeholder:"Detailed instructions or markdown documentation for this skill",disabled:"plugin"===O})),"local"===O&&a().createElement(l.Form.Item,{label:g("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}]},a().createElement(l.Upload.Dragger,{name:"file",action:"/api/attachments:create",headers:{Authorization:"Bearer ".concat(s.auth.getToken())},maxCount:1,accept:".zip"},a().createElement("p",{className:"ant-upload-drag-icon"},a().createElement(o.InboxOutlined,null)),a().createElement("p",{className:"ant-upload-text"},g("Click or drag ZIP file to this area to upload")),a().createElement("p",{className:"ant-upload-hint"},g("Upload a skill package zip containing SKILL.md and index.py/.js. Metadata will be extracted automatically.")))),"plugin"!==O&&a().createElement(l.Form.Item,{name:"language",label:g("Language")},a().createElement(l.Select,null,a().createElement(l.Select.Option,{value:"python"},"Python"),a().createElement(l.Select.Option,{value:"node"},"Node.js"))),"database"===O&&a().createElement(l.Form.Item,{name:"codeTemplate",label:g("Code Template"),extra:g("Use {{placeholder}} for input parameters. Use OUTPUT_DIR env var for output directory.")},a().createElement(y,{rows:12,style:{fontFamily:"monospace",fontSize:13},placeholder:'import os\n\noutput_dir = os.environ.get("OUTPUT_DIR", "/output")\n# Your code here'})),"plugin"!==O&&a().createElement(l.Form.Item,{name:"inputSchema",label:g("Input Schema (JSON)"),extra:g("JSON Schema defining input parameters for this skill")},a().createElement(y,{rows:6,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "type": "object",\n "properties": {},\n "required": []\n}'})),a().createElement(l.Form.Item,{name:"interactionSchema",label:g("Interaction Schema (optional)"),extra:g("If set, user is prompted to fill / confirm input before execution. Type: form | select | confirm.")},a().createElement(y,{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"!==O&&a().createElement(l.Form.Item,{name:"packages",label:g("Packages (JSON array)")},a().createElement(l.Input,{placeholder:'["python-docx", "openpyxl"]',style:{fontFamily:"monospace"}})),a().createElement("div",{style:{display:"flex",gap:16}},a().createElement(l.Form.Item,{name:"timeoutSeconds",label:g("Timeout (seconds)"),style:{flex:1}},a().createElement(l.InputNumber,{min:5,max:300,style:{width:"100%"}})),a().createElement(l.Form.Item,{name:"maxOutputSizeMb",label:g("Max Output (MB)"),style:{flex:1}},a().createElement(l.InputNumber,{min:1,max:200,style:{width:"100%"}})),a().createElement(l.Form.Item,{name:"toolScope",label:g("Tool Scope"),style:{flex:1}},a().createElement(l.Select,null,a().createElement(l.Select.Option,{value:"CUSTOM"},"CUSTOM"),a().createElement(l.Select.Option,{value:"GENERAL"},"GENERAL"),a().createElement(l.Select.Option,{value:"SPECIFIED"},"SPECIFIED")))))))},v=n(472);function b(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 S(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 E(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(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 b(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 b(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 k=l.Input.TextArea,w=function(e){var t,n=e.skill,o=e.onClose,s=(0,i.R)(),p=(0,u.k)(),m=(0,c.lk)(n.inputSchema,null),d=E((0,r.useState)((null==m?void 0:m.properties)?JSON.stringify(Object.fromEntries(Object.keys(m.properties).map(function(e){return[e,""]})),null,2):"{}"),2),f=d[0],y=d[1],h=E((0,r.useState)(!1),2),g=h[0],b=h[1],w=E((0,r.useState)(null),2),O=w[0],x=w[1],I=E((0,r.useState)(""),2),C=I[0],T=I[1];return a().createElement(l.Modal,{open:!0,title:"".concat(p("Test Skill"),": ").concat(n.title),onCancel:o,footer:[a().createElement(l.Button,{key:"close",onClick:o},p("Close")),a().createElement(l.Button,{key:"run",type:"primary",onClick:function(){var e;return(e=function(){var e,t,r,a,l,o,i,u;return function(e,t){var n,r,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(n=1,r&&(a=2&c[0]?r.return:c[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,c[1])).done)return a;switch(r=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],r=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(c){switch(c.label){case 0:b(!0),x(null),T("");try{e=JSON.parse(f)}catch(e){return T(p("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:n.id,input:e}})];case 2:return x((null==(r=c.sent().data)||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data)||r),[3,5];case 3:return T((null==(a=c.sent())||null==(u=a.response)||null==(i=u.data)||null==(o=i.errors)||null==(l=o[0])?void 0:l.message)||a.message||p("Execution failed")),[3,5];case 4:return b(!1),[7];case 5:return[2]}})},function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){S(l,r,a,o,i,"next",e)}function i(e){S(l,r,a,o,i,"throw",e)}o(void 0)})})()},loading:g},p("Run"))],width:640,destroyOnClose:!0},a().createElement(l.Space,{direction:"vertical",style:{width:"100%"},size:"middle"},a().createElement("div",null,a().createElement(l.Typography.Text,{strong:!0},p("Input (JSON)")),a().createElement(k,{rows:6,value:f,onChange:function(e){return y(e.target.value)},style:{fontFamily:"monospace",fontSize:13,marginTop:4}})),g&&a().createElement(l.Spin,{tip:p("Running skill on worker...")}),C&&a().createElement(l.Alert,{type:"error",message:C,showIcon:!0}),O&&a().createElement(a().Fragment,null,a().createElement(l.Alert,{type:"succeeded"===O.status?"success":"error",message:"succeeded"===O.status?p("Succeeded"):p("Failed"),description:"Duration: ".concat(O.durationMs||0,"ms"),showIcon:!0}),O.stdout&&a().createElement("div",null,a().createElement(l.Typography.Text,{strong:!0},"stdout:"),a().createElement("pre",{style:{background:"#f5f5f5",padding:8,maxHeight:200,overflow:"auto",fontSize:12}},O.stdout)),O.stderr&&a().createElement("div",null,a().createElement(l.Typography.Text,{strong:!0,type:"danger"},"stderr:"),a().createElement("pre",{style:{background:"#fff2f0",padding:8,maxHeight:200,overflow:"auto",fontSize:12}},O.stderr)),(null==(t=O.files)?void 0:t.length)>0&&a().createElement("div",null,a().createElement(l.Typography.Text,{strong:!0},p("Output Files"),":"),a().createElement("div",{style:{marginTop:8}},a().createElement(v.H,{files:O.files.map(function(e){return{name:e.name,url:e.downloadUrl}})}))))))};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 I(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){x(l,r,a,o,i,"next",e)}function i(e){x(l,r,a,o,i,"throw",e)}o(void 0)})}}function C(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(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.")}()}function T(e,t){var n,r,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(n=1,r&&(a=2&c[0]?r.return:c[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,c[1])).done)return a;switch(r=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],r=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var z=l.Typography.Text,j=l.theme.useToken,P=function(e){var t=e.open,n=e.onClose,c=(0,u.k)(),s=j().token,p=(0,i.R)(),m=C((0,r.useState)(0),2),d=m[0],f=m[1],y=C((0,r.useState)([]),2),h=y[0],g=y[1],v=C((0,r.useState)(!1),2),b=v[0],S=v[1],E=C((0,r.useState)(null),2),k=E[0],w=E[1],O=C((0,r.useState)([]),2),x=O[0],P=O[1],F=C((0,r.useState)(""),2)[1],A=C((0,r.useState)("HEAD"),2),B=A[0],N=A[1],D=C((0,r.useState)([]),2),M=D[0],R=D[1],U=C((0,r.useState)(!1),2),q=U[0],J=U[1],L=C((0,r.useState)(""),2),G=L[0],H=L[1],_=C((0,r.useState)(null),2),V=_[0],W=_[1],$=C((0,r.useState)([]),2),K=$[0],Z=$[1],Y=C((0,r.useState)(!1),2),Q=Y[0],X=Y[1],ee=C((0,r.useState)([]),2),et=ee[0],en=ee[1],er=C((0,r.useState)(!1),2),ea=er[0],el=er[1],eo=C((0,r.useState)(""),2),ei=eo[0],eu=eo[1],ec=C((0,r.useState)(null),2),es=ec[0],ep=ec[1],em=C((0,r.useState)(""),2),ed=em[0],ef=em[1],ey=C((0,r.useState)(null),2),eh=ey[0],eg=ey[1],ev=C((0,r.useState)(!1),2),eb=ev[0],eS=ev[1],eE=(0,r.useCallback)(function(){return I(function(){var e,t;return T(this,function(n){switch(n.label){case 0:S(!0),n.label=1;case 1:return n.trys.push([1,,3,4]),[4,p.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 S(!1),[7];case 4:return[2]}})})()},[p]);(0,r.useEffect)(function(){t&&(eE(),f(0),w(null),W(null),Z([]),en([]),ep(null),eg(null),el(!1),H(""),eu(""),ef(""))},[t,eE]),(0,r.useEffect)(function(){k&&p.request({url:"gitManager:branches",params:{repositoryId:k}}).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);P((null==r?void 0:r.all)||[]);var a=(null==r?void 0:r.current)||"main";F(a),N(a)}).catch(function(){return P([])})},[k,p]);var ek=(0,r.useCallback)(function(){return I(function(){var e,t;return T(this,function(n){switch(n.label){case 0:if(!k)return[2];J(!0),n.label=1;case 1:return n.trys.push([1,,3,4]),[4,p.request({url:"gitManager:fileTree",params:{repositoryId:k,ref:B,treePath:G}})];case 2:return R(((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 J(!1),[7];case 4:return[2]}})})()},[p,k,B,G]);(0,r.useEffect)(function(){1===d&&k&&ek()},[d,k,B,G,ek]);var ew=(0,r.useCallback)(function(){return I(function(){var e,t,n,r,a,o,i,u,s;return T(this,function(m){switch(m.label){case 0:if(!k||null===V)return[2];X(!0),m.label=1;case 1:return m.trys.push([1,3,4,5]),[4,p.request({url:"skillHub:gitListSkills",params:{repositoryId:k,ref:B,rootFolder:V}})];case 2:return r=(null==(n=m.sent().data)||null==(e=n.data)?void 0:e.data)||(null==n?void 0:n.data)||[],ep((null==n||null==(t=n.data)?void 0:t.config)||(null==n?void 0:n.config)||null),Z(r),en(r.filter(function(e){return!e.existsInDb}).map(function(e){return e.folder})),[3,5];case 3:return a=m.sent(),l.message.error((null==a||null==(s=a.response)||null==(u=s.data)||null==(i=u.errors)||null==(o=i[0])?void 0:o.message)||c("Failed to read skills from git")),ep(null),Z([]),[3,5];case 4:return X(!1),[7];case 5:return[2]}})})()},[p,k,B,V,c]);(0,r.useEffect)(function(){2===d&&null!==V&&ew()},[d,V,ew]);var eO=(0,r.useMemo)(function(){if(!ed.trim())return K;var e=ed.toLowerCase();return K.filter(function(t){return(t.title||t.name||"").toLowerCase().includes(e)||(t.description||"").toLowerCase().includes(e)})},[K,ed]),ex=[{title:c("Skill"),key:"name",render:function(e,t){return a().createElement("div",null,a().createElement(z,{strong:!0},t.title||t.name),a().createElement("div",null,a().createElement(z,{type:"secondary",style:{fontSize:12}},t.name)))}},{title:c("Language"),dataIndex:"language",key:"language",width:100,render:function(e){return a().createElement(l.Tag,{color:"python"===e?"blue":"green"},e)}},{title:c("Source"),dataIndex:"storageType",key:"storageType",width:100,render:function(e){return a().createElement(l.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?a().createElement(l.Tag,{color:"orange"},c("Exists")):a().createElement(l.Tag,{color:"green"},c("New"))}}],eI=[{title:c("Skill"),dataIndex:"name",key:"name",render:function(e){var t=ei?ei.trim():"",n=t?"".concat(t).concat(e):e;return a().createElement("div",null,a().createElement(z,{strong:!0},n),t&&a().createElement("div",null,a().createElement(z,{type:"secondary",style:{fontSize:11}},c("Original"),": ",e)))}},{title:c("Result"),key:"status",render:function(e,t){return a().createElement(l.Space,null,a().createElement(l.Tag,{color:{created:"green",updated:"blue",skipped:"orange",error:"red"}[t.status]||"default"},t.status),t.reason&&a().createElement(z,{type:"secondary",style:{fontSize:12}},t.reason))}}];return a().createElement(l.Modal,{open:t,title:a().createElement(l.Space,null,a().createElement(o.BranchesOutlined,null),c("Import Skills from Git")),onCancel:function(){return n()},width:800,footer:3===d?a().createElement(l.Button,{type:"primary",onClick:function(){return n(!0)}},c("Done")):a().createElement(l.Space,null,d>0&&d<3&&a().createElement(l.Button,{onClick:function(){return f(d-1)}},c("Back")),d<2&&a().createElement(l.Button,{type:"primary",disabled:!(0===d?!!k:1===d?null!==V:2===d&&et.length>0),onClick:function(){return f(d+1)}},c("Next")),2===d&&a().createElement(l.Button,{type:"primary",loading:eb,disabled:0===et.length,onClick:function(){return I(function(){var e,t,n,r,a,o,i;return T(this,function(u){switch(u.label){case 0:if(0===et.length)return l.message.warning(c("Please select at least one skill")),[2];eS(!0),u.label=1;case 1:return u.trys.push([1,3,4,5]),[4,p.request({url:"skillHub:gitSyncSkills",method:"POST",params:{repositoryId:k,ref:B,rootFolder:V,prefix:ei},data:{skills:et,overwrite:ea}})];case 2:return eg((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(),l.message.error((null==n||null==(i=n.response)||null==(o=i.data)||null==(a=o.errors)||null==(r=a[0])?void 0:r.message)||c("Sync failed")),[3,5];case 4:return eS(!1),[7];case 5:return[2]}})})()}},a().createElement(o.SyncOutlined,null)," ",c("Sync Selected")," (",et.length,")")),destroyOnClose:!0},a().createElement(l.Steps,{current:d,size:"small",style:{marginBottom:24},items:[{title:c("Repository")},{title:c("Root Folder")},{title:c("Select Skills")},{title:c("Result")}]}),0===d&&a().createElement("div",null,b?a().createElement(l.Spin,null):0===h.length?a().createElement(l.Empty,{description:c("No connected repositories. Please configure one in Git Manager first.")}):a().createElement("div",null,a().createElement(z,{strong:!0,style:{display:"block",marginBottom:8}},a().createElement(o.DatabaseOutlined,null)," ",c("Select a connected git repository")),a().createElement(l.Select,{style:{width:"100%"},placeholder:c("Select repository"),value:k,onChange:w,options:h.map(function(e){return{label:a().createElement(l.Space,null,e.name,a().createElement(z,{type:"secondary",style:{fontSize:12}},e.repoUrl)),value:e.id}})}))),1===d&&a().createElement("div",null,a().createElement("div",{style:{marginBottom:12,display:"flex",gap:12,alignItems:"center"}},a().createElement(o.BranchesOutlined,null),a().createElement(l.Select,{size:"small",style:{width:200},value:B,onChange:function(e){N(e),W(null)},options:x.map(function(e){return{label:e,value:e}})})),a().createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8}},a().createElement(z,{strong:!0},a().createElement(o.FolderOutlined,null)," ",c("Current Path"),": ",G||"/ (Root)"),a().createElement(l.Button,{type:"primary",onClick:function(){return W(G)}},c("Use Current Folder"))),q?a().createElement(l.Spin,null):a().createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:8}},G&&a().createElement(l.Button,{icon:a().createElement(o.FolderOutlined,null),onClick:function(){var e=G.split("/");e.pop(),H(e.join("/"))}},".."),M.map(function(e){return a().createElement(l.Button,{key:e.path,icon:a().createElement(o.FolderOutlined,null),onClick:function(){return H(e.path)},style:{height:"auto",padding:"8px 16px"}},e.name)}),0===M.length&&!G&&a().createElement(l.Empty,{description:c("No folders found")})),null!==V&&a().createElement(l.Alert,{style:{marginTop:12},type:"success",message:"".concat(c("Selected Root Folder"),": ").concat(V||"/"),showIcon:!0})),2===d&&a().createElement("div",null,(null==es?void 0:es.initializedSkillsJson)&&a().createElement(l.Alert,{style:{marginBottom:12},type:"info",showIcon:!0,message:"".concat(c("Initialized skills.json"),": ").concat(es.path||"skills.json")}),Q?a().createElement(l.Spin,null):0===K.length?a().createElement(l.Empty,{description:c("No skills found")}):a().createElement("div",null,a().createElement("div",{style:{marginBottom:12,display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,flexWrap:"wrap"}},a().createElement(l.Input,{placeholder:c("Search by title or description..."),prefix:a().createElement(o.SearchOutlined,{style:{color:s.colorTextQuaternary}}),value:ed,onChange:function(e){return ef(e.target.value)},allowClear:!0,style:{width:260}}),a().createElement(l.Space,null,a().createElement(l.Input,{size:"small",placeholder:c("Skill Name Prefix"),value:ei,onChange:function(e){return eu(e.target.value)},style:{width:150}}),a().createElement(z,{style:{fontSize:12,marginLeft:8}},c("Overwrite")),a().createElement(l.Switch,{size:"small",checked:ea,onChange:el}))),a().createElement("div",{style:{marginBottom:8}},a().createElement(z,{type:"secondary",style:{fontSize:12}},eO.length," / ",K.length," ",c("skills found"),ei&&a().createElement("span",{style:{marginLeft:8}},"• ",c("Prefix"),": ",a().createElement(l.Tag,{style:{margin:0}},ei)," ",a().createElement(z,{type:"secondary",style:{fontSize:11}},"(",c("applied on sync"),")")))),a().createElement(l.Table,{dataSource:eO,columns:ex,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:et,onChange:function(e){return en(e)}},scroll:{x:"max-content"}}))),3===d&&eh&&a().createElement("div",null,a().createElement(l.Result,{status:"success",title:c("Sync Complete"),subTitle:"".concat(eh.filter(function(e){return"created"===e.status}).length," ").concat(c("created"),", ").concat(eh.filter(function(e){return"updated"===e.status}).length," ").concat(c("updated"),", ").concat(eh.filter(function(e){return"skipped"===e.status}).length," ").concat(c("skipped"))}),a().createElement(l.Table,{dataSource:eh,columns:eI,rowKey:"folder",size:"small",pagination:!1,scroll:{x:"max-content"}})))};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 A(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){A(l,r,a,o,i,"next",e)}function i(e){A(l,r,a,o,i,"throw",e)}o(void 0)})}}function N(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(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 D(e,t){var n,r,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(n=1,r&&(a=2&c[0]?r.return:c[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,c[1])).done)return a;switch(r=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],r=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var M=function(){var e=(0,i.R)(),t=(0,u.k)(),n=N((0,r.useState)([]),2),c=n[0],s=n[1],p=N((0,r.useState)(!1),2),m=p[0],d=p[1],f=N((0,r.useState)(!1),2),y=f[0],h=f[1],v=N((0,r.useState)(!1),2),b=v[0],S=v[1],E=N((0,r.useState)(null),2),k=E[0],O=E[1],x=N((0,r.useState)(null),2),I=x[0],C=x[1],T=N((0,r.useState)(!1),2),z=T[0],j=T[1],F=(0,r.useCallback)(function(){return B(function(){var n,r,a,o,i;return D(this,function(u){switch(u.label){case 0:d(!0),u.label=1;case 1:return u.trys.push([1,3,4,5]),[4,e.request({url:"skillDefinitions:list",params:{pageSize:100}})];case 2:return s(Array.isArray(i=null!=(n=null!=(r=null==(o=u.sent().data)||null==(a=o.data)?void 0:a.data)?r:null==o?void 0:o.data)?n:[])?i:[]),[3,5];case 3:return u.sent(),l.message.error(t("Failed to load skills")),[3,5];case 4:return d(!1),[7];case 5:return[2]}})})()},[e,t]);(0,r.useEffect)(function(){F()},[F]);var A=function(e){O(e),h(!0)},M=function(e){C(e),S(!0)};return a().createElement(l.Card,{title:t("Skill Definitions"),extra:a().createElement(l.Space,null,a().createElement(l.Button,{icon:a().createElement(o.BranchesOutlined,null),onClick:function(){return j(!0)}},t("Import from Git")),a().createElement(l.Button,{type:"primary",icon:a().createElement(o.PlusOutlined,null),onClick:function(){O(null),h(!0)}},t("New Skill")))},a().createElement(l.List,{grid:{gutter:16,xs:1,sm:2,md:3,lg:3,xl:4,xxl:4},dataSource:c,loading:m,renderItem:function(n){return a().createElement(l.List.Item,null,a().createElement(l.Card,{size:"small",title:a().createElement(l.Typography.Text,{ellipsis:!0,title:n.title},n.title),extra:a().createElement(l.Tag,{color:"python"===n.language?"blue":"green"},n.language),actions:[a().createElement(l.Tooltip,{key:"test",title:t("Test")},a().createElement(o.PlayCircleOutlined,{onClick:function(){return M(n)}})),a().createElement(l.Tooltip,{key:"edit",title:t("Edit")},a().createElement(o.EditOutlined,{onClick:function(){return A(n)}})),a().createElement(l.Popconfirm,{key:"delete",title:t("Delete?"),onConfirm:function(){var r;return r=n.id,B(function(){return D(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.request({url:"skillDefinitions:destroy",method:"POST",params:{filterByTk:r}})];case 1:return n.sent(),l.message.success(t("Deleted")),F(),[3,3];case 2:return n.sent(),l.message.error(t("Failed to delete")),[3,3];case 3:return[2]}})})()}},a().createElement(l.Tooltip,{title:t("Delete")},a().createElement(o.DeleteOutlined,{style:{color:"red"}})))],style:{boxShadow:"0 2px 8px rgba(0,0,0,0.05)",borderRadius:8}},a().createElement(l.Card.Meta,{title:a().createElement(l.Typography.Text,{type:"secondary",style:{fontSize:13}},n.name),description:a().createElement("div",{style:{height:60,overflow:"hidden",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",fontSize:13}},n.description||t("No description"))}),a().createElement("div",{style:{marginTop:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},a().createElement(l.Space,{size:4},a().createElement(l.Switch,{checked:n.enabled,onChange:function(){return B(function(){return D(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,e.request({url:"skillDefinitions:update",method:"POST",params:{filterByTk:n.id},data:{enabled:!n.enabled}})];case 1:return r.sent(),F(),[3,3];case 2:return r.sent(),l.message.error(t("Failed to update")),[3,3];case 3:return[2]}})})()},size:"small"}),a().createElement("span",{style:{fontSize:12}},n.enabled?t("Enabled"):t("Disabled"))),a().createElement(l.Tag,{color:"purple",style:{margin:0,fontSize:11}},n.storageType?n.storageType.toUpperCase():"DB"))))}}),y&&a().createElement(g,{skill:k,onClose:function(e){h(!1),O(null),e&&F()}}),b&&I&&a().createElement(w,{skill:I,onClose:function(){return S(!1)}}),a().createElement(P,{open:z,onClose:function(e){j(!1),e&&F()}}))},R=function(){return a().createElement("div",{style:{padding:"0 24px 24px"}},a().createElement(M,null))}},472:function(e,t,n){n.d(t,{H:function(){return i}});var r=n(155),a=n.n(r),l=n(59),o=n(375),i=function(e){var t=e.files;return Array.isArray(t)&&0!==t.length?a().createElement(l.Space,{direction:"vertical",size:2,style:{width:"100%"}},t.map(function(e,t){var n=e.downloadUrl||e.url,r=e.name||"file-".concat(t+1);return n?a().createElement("a",{key:"".concat(r,"-").concat(t),href:n,target:"_blank",rel:"noreferrer"},a().createElement(o.PaperClipOutlined,null)," ",r):a().createElement(l.Typography.Text,{key:"".concat(r,"-").concat(t)},a().createElement(o.PaperClipOutlined,null)," ",r)})):a().createElement(l.Typography.Text,{type:"secondary"},"-")}},608:function(e,t,n){n.d(t,{R:function(){return u},b:function(){return c}});var r=n(485),a=n(155);function l(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 o(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 i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(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 l(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 l(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(){return(0,r.useApp)().apiClient}function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=u(),r=t.manual,l=void 0!==r&&r,c=t.refreshDeps,s=t.onSuccess,p=t.onError,m=i((0,a.useState)(void 0),2),d=m[0],f=m[1],y=i((0,a.useState)(!l),2),h=y[0],g=y[1],v=i((0,a.useState)(void 0),2),b=v[0],S=v[1],E=(0,a.useRef)(e);E.current=e;var k=(0,a.useRef)(s);k.current=s;var w=(0,a.useRef)(p);w.current=p;var O=(0,a.useCallback)(function(e){var t;return(t=function(){var t,r,a,l,o,i;return function(e,t){var n,r,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(n=1,r&&(a=2&c[0]?r.return:c[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,c[1])).done)return a;switch(r=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],r=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(u){switch(u.label){case 0:t=E.current,g(!0),S(void 0),u.label=1;case 1:if(u.trys.push([1,6,7,8]),"function"!=typeof t)return[3,3];return[4,t()];case 2:return a=u.sent(),[3,5];case 3:return[4,n.request({url:t.url,method:t.method||"get",params: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.params||{},e||{}),data:t.data})];case 4:a=null==(l=u.sent())?void 0:l.data,u.label=5;case 5:return f(a),null==(r=k.current)||r.call(k,a),[2,a];case 6:return S(o=u.sent()),null==(i=w.current)||i.call(w,o),[2,void 0];case 7:return g(!1),[7];case 8:return[2]}})},function(){var e=this,n=arguments;return new Promise(function(r,a){var l=t.apply(e,n);function i(e){o(l,r,a,i,u,"next",e)}function u(e){o(l,r,a,i,u,"throw",e)}i(void 0)})})()},[n]),x=(0,a.useCallback)(function(){O()},[O]);return(0,a.useEffect)(function(){l||O()},void 0===c?[]:c),{data:d,loading:h,error:b,refresh:x,run:O}}},603:function(e,t,n){n.d(t,{k:function(){return l}});var r=n(485),a=n(155);function l(){var e=(0,r.useApp)();return(0,a.useCallback)(function(t,n){return e.i18n.t(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}({ns:["plugin-agent-orchestrator","client"]},n))},[e.i18n])}},204:function(e,t,n){function r(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 a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=r(e,void 0),a=void 0===n?null==e||""===e?t:e:n;return null==a?"":"string"==typeof a?a:JSON.stringify(a,null,2)}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=r(e,void 0),a=void 0===n?null==e||""===e?t:e:n;return"```json\n".concat(JSON.stringify(a,null,2),"\n```")}n.d(t,{Bz:function(){return a},Nx:function(){return l},lk:function(){return r}})}}]);
10
+ "use strict";(self.webpackChunkplugin_agent_orchestrator_client_v2=self.webpackChunkplugin_agent_orchestrator_client_v2||[]).push([["41"],{224:function(e,t,n){n.r(t),n.d(t,{default:function(){return R}});var r=n(155),a=n.n(r),l=n(59),o=n(375),i=n(608),u=n(603),c=n(204);function s(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 p(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 m(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 d(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(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 s(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 s(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 y=l.Input.TextArea,h=l.theme.useToken,g=function(e){var t=e.skill,n=e.onClose,s=(0,i.R)(),g=(0,u.k)(),b=h().token,v=f(l.Form.useForm(),1)[0],S=!!t,E=f((0,r.useState)([]),2),k=E[0],w=E[1];(0,r.useEffect)(function(){S||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),w(Array.isArray(r)?r:[])}).catch(function(){w([])})},[s,S]),(0,r.useEffect)(function(){t?v.setFieldsValue(d(m({},t),{inputSchema:(0,c.Bz)(t.inputSchema,null),interactionSchema:(0,c.Bz)(t.interactionSchema,null),packages:(0,c.Bz)(t.packages,[])})):(v.resetFields(),v.setFieldsValue({storageType:"database",language:"python",timeoutSeconds:60,maxOutputSizeMb:50,enabled:!0,toolScope:"CUSTOM",autoCall:!1,packages:"[]"}))},[t,v]);var O=l.Form.useWatch("storageType",v)||"database";(0,r.useEffect)(function(){if("plugin"===O){var e=v.getFieldValue("pluginSource");if(e){var t=k.find(function(t){return t.name===e});t&&v.setFieldsValue({name:t.name,title:t.title,description:t.description,language:t.language,instructions:t.instructions||"",inputSchema:(0,c.Bz)(t.inputSchema,null),interactionSchema:(0,c.Bz)(t.interactionSchema,null),packages:(0,c.Bz)(t.packages,[]),timeoutSeconds:t.timeoutSeconds||60,maxOutputSizeMb:t.maxOutputSizeMb||50,toolScope:t.toolScope||"CUSTOM",storageUrl:t.storageUrl})}}},[O,k,v]);var x=function(e){var t,n=k.find(function(t){return t.name===e});n&&("plugin"===O?v.setFieldsValue({name:n.name,title:n.title,description:n.description||"",language:n.language||"python",instructions:n.instructions||"",inputSchema:(0,c.Bz)(n.inputSchema,null),interactionSchema:(0,c.Bz)(n.interactionSchema,null),packages:(0,c.Bz)(n.packages,[]),timeoutSeconds:n.timeoutSeconds||60,maxOutputSizeMb:n.maxOutputSizeMb||50,toolScope:n.toolScope||"CUSTOM",storageUrl:n.storageUrl}):v.setFieldsValue({name:n.name,title:n.title,description:n.description||"",instructions:n.instructions||"",language:n.language||"python",codeTemplate:n.codeTemplate||"",inputSchema:(0,c.Bz)(n.inputSchema,null),interactionSchema:(0,c.Bz)(n.interactionSchema,null),packages:(0,c.Bz)(n.packages,[]),timeoutSeconds:n.timeoutSeconds||60,maxOutputSizeMb:n.maxOutputSizeMb||50,toolScope:n.toolScope||"CUSTOM",enabled:null==(t=n.enabled)||t}),l.message.success(g("Template applied")))};return a().createElement(l.Modal,{open:!0,title:S?g("Edit Skill"):g("New Skill"),onCancel:function(){return n()},width:720,destroyOnClose:!0,footer:null,styles:{body:{padding:0,display:"flex",flexDirection:"column",maxHeight:"calc(100vh - 120px)"}},style:{top:40}},a().createElement(l.Form,{form:v,layout:"vertical",size:"middle",component:"div",style:{display:"flex",flexDirection:"column",maxHeight:"calc(100vh - 120px)"}},a().createElement(l.Form.Item,{name:"storageUrl",hidden:!0},a().createElement(l.Input,null)),a().createElement("div",{style:{flexShrink:0,background:b.colorBgContainer,borderBottom:"1px solid ".concat(b.colorBorderSecondary),padding:"12px 24px",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12}},a().createElement(l.Form.Item,{name:"storageType",noStyle:!0},a().createElement(l.Radio.Group,{optionType:"button",buttonStyle:"solid",size:"small"},a().createElement(l.Radio,{value:"database"},g("Database Editor")),a().createElement(l.Radio,{value:"local"},g("ZIP Package")),a().createElement(l.Radio,{value:"plugin",disabled:!Array.isArray(k)||0===k.length},g("Bind to Plugin")))),a().createElement(l.Space,{size:16},a().createElement(l.Space,{size:4},a().createElement("span",{style:{fontSize:12,color:b.colorTextSecondary}},g("Enabled")),a().createElement(l.Form.Item,{name:"enabled",valuePropName:"checked",noStyle:!0},a().createElement(l.Switch,{size:"small"}))),a().createElement(l.Space,{size:4},a().createElement("span",{style:{fontSize:12,color:b.colorTextSecondary}},g("Auto Call")),a().createElement(l.Form.Item,{name:"autoCall",valuePropName:"checked",noStyle:!0},a().createElement(l.Switch,{size:"small"})))),a().createElement(l.Space,null,a().createElement(l.Button,{size:"small",icon:a().createElement(o.CloseOutlined,null),onClick:function(){return n()}},g("Cancel")),a().createElement(l.Button,{type:"primary",size:"small",icon:a().createElement(o.SaveOutlined,null),onClick:function(){var e;return(e=function(){var e,r,a;return function(e,t){var n,r,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(n=1,r&&(a=2&c[0]?r.return:c[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,c[1])).done)return a;switch(r=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],r=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(o){switch(o.label){case 0:return o.trys.push([0,6,,7]),[4,v.validateFields()];case 1:e=o.sent();try{e.inputSchema&&JSON.parse(e.inputSchema)}catch(e){return l.message.error(g("Invalid JSON in Input Schema")),[2]}try{e.interactionSchema&&JSON.parse(e.interactionSchema)}catch(e){return l.message.error(g("Invalid JSON in Interaction Schema")),[2]}try{e.packages&&JSON.parse(e.packages)}catch(e){return l.message.error(g("Invalid JSON in Packages")),[2]}if(r=d(m({},e),{inputSchema:e.inputSchema?(0,c.Nx)(e.inputSchema):null,interactionSchema:e.interactionSchema?(0,c.Nx)(e.interactionSchema):null,packages:(0,c.Nx)(e.packages||[],[])}),!S)return[3,3];return[4,s.request({url:"skillDefinitions:update",method:"POST",params:{filterByTk:t.id},data:r})];case 2:return o.sent(),[3,5];case 3:return[4,s.request({url:"skillDefinitions:create",method:"POST",data:r})];case 4:o.sent(),o.label=5;case 5:return l.message.success(g(S?"Skill updated":"Skill created")),n(!0),[3,7];case 6:if(null==(a=o.sent())?void 0:a.errorFields)return[2];return l.message.error(g("Failed to save skill")),[3,7];case 7:return[2]}})},function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){p(l,r,a,o,i,"next",e)}function i(e){p(l,r,a,o,i,"throw",e)}o(void 0)})})()}},S?g("Save"):g("Create")))),a().createElement("div",{style:{flex:1,overflowY:"auto",padding:"16px 24px 24px",minHeight:0}},"database"===O&&!S&&Array.isArray(k)&&k.length>0&&a().createElement(l.Form.Item,{label:g("Import Template to Pre-fill code (Optional)"),style:{marginBottom:24}},a().createElement(l.Select,{placeholder:g("Select a template to pre-fill"),onChange:x,allowClear:!0},k.map(function(e){return a().createElement(l.Select.Option,{key:e.name,value:e.name},e.title," (",e.pluginSource||e.name,")")}))),"plugin"===O&&a().createElement(a().Fragment,null,a().createElement(l.Form.Item,{name:"inputSchema",hidden:!0},a().createElement(y,null)),a().createElement(l.Form.Item,{name:"packages",hidden:!0},a().createElement(l.Input,null)),a().createElement(l.Form.Item,{name:"pluginSource",label:g("Select Plugin Skill"),rules:[{required:!0}],style:{marginBottom:24,padding:12,background:"#e6f4ff",borderRadius:8,border:"1px solid #91caff"},extra:a().createElement("div",{style:{fontSize:12,color:"#1677ff",marginTop:8}},g("Binding dynamically delegates execution to the plugin logic. Code, Language, and Schemas are managed externally."))},a().createElement(l.Select,{placeholder:g("Choose an enabled plugin skill to attach"),onChange:x,allowClear:!0},Array.isArray(k)&&k.map(function(e){return a().createElement(l.Select.Option,{key:e.name,value:e.name},e.title," (",e.pluginSource||e.name,")")})))),a().createElement(l.Form.Item,{name:"name",label:g("Name (Internal Identifier)"),rules:[{required:!0}]},a().createElement(l.Input,{placeholder:"generate-word-report",disabled:S||"plugin"===O})),a().createElement(l.Form.Item,{name:"title",label:g("Title"),rules:[{required:!0}]},a().createElement(l.Input,{placeholder:"Generate Word Report",disabled:"plugin"===O})),a().createElement(l.Form.Item,{name:"description",label:g("Description")},a().createElement(y,{rows:2,placeholder:"Description for AI employee to understand this skill",disabled:"plugin"===O})),a().createElement(l.Form.Item,{name:"instructions",label:g("Instructions / Documentation")},a().createElement(y,{rows:6,placeholder:"Detailed instructions or markdown documentation for this skill",disabled:"plugin"===O})),"local"===O&&a().createElement(l.Form.Item,{label:g("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}]},a().createElement(l.Upload.Dragger,{name:"file",action:"/api/attachments:create",headers:{Authorization:"Bearer ".concat(s.auth.getToken())},maxCount:1,accept:".zip"},a().createElement("p",{className:"ant-upload-drag-icon"},a().createElement(o.InboxOutlined,null)),a().createElement("p",{className:"ant-upload-text"},g("Click or drag ZIP file to this area to upload")),a().createElement("p",{className:"ant-upload-hint"},g("Upload a skill package zip containing SKILL.md and index.py/.js. Metadata will be extracted automatically.")))),"plugin"!==O&&a().createElement(l.Form.Item,{name:"language",label:g("Language")},a().createElement(l.Select,null,a().createElement(l.Select.Option,{value:"python"},"Python"),a().createElement(l.Select.Option,{value:"node"},"Node.js"))),"database"===O&&a().createElement(l.Form.Item,{name:"codeTemplate",label:g("Code Template"),extra:g("Use {{placeholder}} for input parameters. Use OUTPUT_DIR env var for output directory.")},a().createElement(y,{rows:12,style:{fontFamily:"monospace",fontSize:13},placeholder:'import os\n\noutput_dir = os.environ.get("OUTPUT_DIR", "/output")\n# Your code here'})),"plugin"!==O&&a().createElement(l.Form.Item,{name:"inputSchema",label:g("Input Schema (JSON)"),extra:g("JSON Schema defining input parameters for this skill")},a().createElement(y,{rows:6,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "type": "object",\n "properties": {},\n "required": []\n}'})),a().createElement(l.Form.Item,{name:"interactionSchema",label:g("Interaction Schema (optional)"),extra:g("If set, user is prompted to fill / confirm input before execution. Type: form | select | confirm.")},a().createElement(y,{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"!==O&&a().createElement(l.Form.Item,{name:"packages",label:g("Packages (JSON array)")},a().createElement(l.Input,{placeholder:'["python-docx", "openpyxl"]',style:{fontFamily:"monospace"}})),a().createElement("div",{style:{display:"flex",gap:16}},a().createElement(l.Form.Item,{name:"timeoutSeconds",label:g("Timeout (seconds)"),style:{flex:1}},a().createElement(l.InputNumber,{min:5,max:300,style:{width:"100%"}})),a().createElement(l.Form.Item,{name:"maxOutputSizeMb",label:g("Max Output (MB)"),style:{flex:1}},a().createElement(l.InputNumber,{min:1,max:200,style:{width:"100%"}})),a().createElement(l.Form.Item,{name:"toolScope",label:g("Tool Scope"),style:{flex:1}},a().createElement(l.Select,null,a().createElement(l.Select.Option,{value:"CUSTOM"},"CUSTOM"),a().createElement(l.Select.Option,{value:"GENERAL"},"GENERAL"),a().createElement(l.Select.Option,{value:"SPECIFIED"},"SPECIFIED")))))))},b=n(472);function v(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 S(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 E(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(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 v(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 v(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 k=l.Input.TextArea,w=function(e){var t,n=e.skill,o=e.onClose,s=(0,i.R)(),p=(0,u.k)(),m=(0,c.lk)(n.inputSchema,null),d=E((0,r.useState)((null==m?void 0:m.properties)?JSON.stringify(Object.fromEntries(Object.keys(m.properties).map(function(e){return[e,""]})),null,2):"{}"),2),f=d[0],y=d[1],h=E((0,r.useState)(!1),2),g=h[0],v=h[1],w=E((0,r.useState)(null),2),O=w[0],x=w[1],I=E((0,r.useState)(""),2),C=I[0],T=I[1];return a().createElement(l.Modal,{open:!0,title:"".concat(p("Test Skill"),": ").concat(n.title),onCancel:o,footer:[a().createElement(l.Button,{key:"close",onClick:o},p("Close")),a().createElement(l.Button,{key:"run",type:"primary",onClick:function(){var e;return(e=function(){var e,t,r,a,l,o,i,u;return function(e,t){var n,r,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(n=1,r&&(a=2&c[0]?r.return:c[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,c[1])).done)return a;switch(r=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],r=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(c){switch(c.label){case 0:v(!0),x(null),T("");try{e=JSON.parse(f)}catch(e){return T(p("Invalid JSON input")),v(!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:n.id,input:e}})];case 2:return x((null==(r=c.sent().data)||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data)||r),[3,5];case 3:return T((null==(a=c.sent())||null==(u=a.response)||null==(i=u.data)||null==(o=i.errors)||null==(l=o[0])?void 0:l.message)||a.message||p("Execution failed")),[3,5];case 4:return v(!1),[7];case 5:return[2]}})},function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){S(l,r,a,o,i,"next",e)}function i(e){S(l,r,a,o,i,"throw",e)}o(void 0)})})()},loading:g},p("Run"))],width:640,destroyOnClose:!0},a().createElement(l.Space,{direction:"vertical",style:{width:"100%"},size:"middle"},a().createElement("div",null,a().createElement(l.Typography.Text,{strong:!0},p("Input (JSON)")),a().createElement(k,{rows:6,value:f,onChange:function(e){return y(e.target.value)},style:{fontFamily:"monospace",fontSize:13,marginTop:4}})),g&&a().createElement(l.Spin,{tip:p("Running skill on worker...")}),C&&a().createElement(l.Alert,{type:"error",message:C,showIcon:!0}),O&&a().createElement(a().Fragment,null,a().createElement(l.Alert,{type:"succeeded"===O.status?"success":"error",message:"succeeded"===O.status?p("Succeeded"):p("Failed"),description:"Duration: ".concat(O.durationMs||0,"ms"),showIcon:!0}),O.stdout&&a().createElement("div",null,a().createElement(l.Typography.Text,{strong:!0},"stdout:"),a().createElement("pre",{style:{background:"#f5f5f5",padding:8,maxHeight:200,overflow:"auto",fontSize:12}},O.stdout)),O.stderr&&a().createElement("div",null,a().createElement(l.Typography.Text,{strong:!0,type:"danger"},"stderr:"),a().createElement("pre",{style:{background:"#fff2f0",padding:8,maxHeight:200,overflow:"auto",fontSize:12}},O.stderr)),(null==(t=O.files)?void 0:t.length)>0&&a().createElement("div",null,a().createElement(l.Typography.Text,{strong:!0},p("Output Files"),":"),a().createElement("div",{style:{marginTop:8}},a().createElement(b.H,{files:O.files.map(function(e){return{name:e.name,url:e.downloadUrl}})}))))))};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 I(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){x(l,r,a,o,i,"next",e)}function i(e){x(l,r,a,o,i,"throw",e)}o(void 0)})}}function C(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(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.")}()}function T(e,t){var n,r,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(n=1,r&&(a=2&c[0]?r.return:c[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,c[1])).done)return a;switch(r=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],r=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var j=l.Typography.Text,z=l.theme.useToken,P=function(e){var t=e.open,n=e.onClose,c=(0,u.k)(),s=z().token,p=(0,i.R)(),m=C((0,r.useState)(0),2),d=m[0],f=m[1],y=C((0,r.useState)([]),2),h=y[0],g=y[1],b=C((0,r.useState)(!1),2),v=b[0],S=b[1],E=C((0,r.useState)(null),2),k=E[0],w=E[1],O=C((0,r.useState)([]),2),x=O[0],P=O[1],F=C((0,r.useState)(""),2)[1],A=C((0,r.useState)("HEAD"),2),B=A[0],N=A[1],D=C((0,r.useState)([]),2),M=D[0],R=D[1],U=C((0,r.useState)(!1),2),q=U[0],J=U[1],L=C((0,r.useState)(""),2),G=L[0],H=L[1],_=C((0,r.useState)(null),2),V=_[0],W=_[1],$=C((0,r.useState)([]),2),K=$[0],Z=$[1],Y=C((0,r.useState)(!1),2),Q=Y[0],X=Y[1],ee=C((0,r.useState)([]),2),et=ee[0],en=ee[1],er=C((0,r.useState)(!1),2),ea=er[0],el=er[1],eo=C((0,r.useState)(""),2),ei=eo[0],eu=eo[1],ec=C((0,r.useState)(null),2),es=ec[0],ep=ec[1],em=C((0,r.useState)(""),2),ed=em[0],ef=em[1],ey=C((0,r.useState)(null),2),eh=ey[0],eg=ey[1],eb=C((0,r.useState)(!1),2),ev=eb[0],eS=eb[1],eE=(0,r.useCallback)(function(){return I(function(){var e,t;return T(this,function(n){switch(n.label){case 0:S(!0),n.label=1;case 1:return n.trys.push([1,,3,4]),[4,p.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 S(!1),[7];case 4:return[2]}})})()},[p]);(0,r.useEffect)(function(){t&&(eE(),f(0),w(null),W(null),Z([]),en([]),ep(null),eg(null),el(!1),H(""),eu(""),ef(""))},[t,eE]),(0,r.useEffect)(function(){k&&p.request({url:"gitManager:branches",params:{repositoryId:k}}).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);P((null==r?void 0:r.all)||[]);var a=(null==r?void 0:r.current)||"main";F(a),N(a)}).catch(function(){return P([])})},[k,p]);var ek=(0,r.useCallback)(function(){return I(function(){var e,t;return T(this,function(n){switch(n.label){case 0:if(!k)return[2];J(!0),n.label=1;case 1:return n.trys.push([1,,3,4]),[4,p.request({url:"gitManager:fileTree",params:{repositoryId:k,ref:B,treePath:G}})];case 2:return R(((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 J(!1),[7];case 4:return[2]}})})()},[p,k,B,G]);(0,r.useEffect)(function(){1===d&&k&&ek()},[d,k,B,G,ek]);var ew=(0,r.useCallback)(function(){return I(function(){var e,t,n,r,a,o,i,u,s;return T(this,function(m){switch(m.label){case 0:if(!k||null===V)return[2];X(!0),m.label=1;case 1:return m.trys.push([1,3,4,5]),[4,p.request({url:"skillHub:gitListSkills",params:{repositoryId:k,ref:B,rootFolder:V}})];case 2:return r=(null==(n=m.sent().data)||null==(e=n.data)?void 0:e.data)||(null==n?void 0:n.data)||[],ep((null==n||null==(t=n.data)?void 0:t.config)||(null==n?void 0:n.config)||null),Z(r),en(r.filter(function(e){return!e.existsInDb}).map(function(e){return e.folder})),[3,5];case 3:return a=m.sent(),l.message.error((null==a||null==(s=a.response)||null==(u=s.data)||null==(i=u.errors)||null==(o=i[0])?void 0:o.message)||c("Failed to read skills from git")),ep(null),Z([]),[3,5];case 4:return X(!1),[7];case 5:return[2]}})})()},[p,k,B,V,c]);(0,r.useEffect)(function(){2===d&&null!==V&&ew()},[d,V,ew]);var eO=(0,r.useMemo)(function(){if(!ed.trim())return K;var e=ed.toLowerCase();return K.filter(function(t){return(t.title||t.name||"").toLowerCase().includes(e)||(t.description||"").toLowerCase().includes(e)})},[K,ed]),ex=[{title:c("Skill"),key:"name",render:function(e,t){return a().createElement("div",null,a().createElement(j,{strong:!0},t.title||t.name),a().createElement("div",null,a().createElement(j,{type:"secondary",style:{fontSize:12}},t.name)))}},{title:c("Language"),dataIndex:"language",key:"language",width:100,render:function(e){return a().createElement(l.Tag,{color:"python"===e?"blue":"green"},e)}},{title:c("Source"),dataIndex:"storageType",key:"storageType",width:100,render:function(e){return a().createElement(l.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?a().createElement(l.Tag,{color:"orange"},c("Exists")):a().createElement(l.Tag,{color:"green"},c("New"))}}],eI=[{title:c("Skill"),dataIndex:"name",key:"name",render:function(e){var t=ei?ei.trim():"",n=t?"".concat(t).concat(e):e;return a().createElement("div",null,a().createElement(j,{strong:!0},n),t&&a().createElement("div",null,a().createElement(j,{type:"secondary",style:{fontSize:11}},c("Original"),": ",e)))}},{title:c("Result"),key:"status",render:function(e,t){return a().createElement(l.Space,null,a().createElement(l.Tag,{color:{created:"green",updated:"blue",skipped:"orange",error:"red"}[t.status]||"default"},t.status),t.reason&&a().createElement(j,{type:"secondary",style:{fontSize:12}},t.reason))}}];return a().createElement(l.Modal,{open:t,title:a().createElement(l.Space,null,a().createElement(o.BranchesOutlined,null),c("Import Skills from Git")),onCancel:function(){return n()},width:800,footer:3===d?a().createElement(l.Button,{type:"primary",onClick:function(){return n(!0)}},c("Done")):a().createElement(l.Space,null,d>0&&d<3&&a().createElement(l.Button,{onClick:function(){return f(d-1)}},c("Back")),d<2&&a().createElement(l.Button,{type:"primary",disabled:!(0===d?!!k:1===d?null!==V:2===d&&et.length>0),onClick:function(){return f(d+1)}},c("Next")),2===d&&a().createElement(l.Button,{type:"primary",loading:ev,disabled:0===et.length,onClick:function(){return I(function(){var e,t,n,r,a,o,i;return T(this,function(u){switch(u.label){case 0:if(0===et.length)return l.message.warning(c("Please select at least one skill")),[2];eS(!0),u.label=1;case 1:return u.trys.push([1,3,4,5]),[4,p.request({url:"skillHub:gitSyncSkills",method:"POST",params:{repositoryId:k,ref:B,rootFolder:V,prefix:ei},data:{skills:et,overwrite:ea}})];case 2:return eg((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(),l.message.error((null==n||null==(i=n.response)||null==(o=i.data)||null==(a=o.errors)||null==(r=a[0])?void 0:r.message)||c("Sync failed")),[3,5];case 4:return eS(!1),[7];case 5:return[2]}})})()}},a().createElement(o.SyncOutlined,null)," ",c("Sync Selected")," (",et.length,")")),destroyOnClose:!0},a().createElement(l.Steps,{current:d,size:"small",style:{marginBottom:24},items:[{title:c("Repository")},{title:c("Root Folder")},{title:c("Select Skills")},{title:c("Result")}]}),0===d&&a().createElement("div",null,v?a().createElement(l.Spin,null):0===h.length?a().createElement(l.Empty,{description:c("No connected repositories. Please configure one in Git Manager first.")}):a().createElement("div",null,a().createElement(j,{strong:!0,style:{display:"block",marginBottom:8}},a().createElement(o.DatabaseOutlined,null)," ",c("Select a connected git repository")),a().createElement(l.Select,{style:{width:"100%"},placeholder:c("Select repository"),value:k,onChange:w,options:h.map(function(e){return{label:a().createElement(l.Space,null,e.name,a().createElement(j,{type:"secondary",style:{fontSize:12}},e.repoUrl)),value:e.id}})}))),1===d&&a().createElement("div",null,a().createElement("div",{style:{marginBottom:12,display:"flex",gap:12,alignItems:"center"}},a().createElement(o.BranchesOutlined,null),a().createElement(l.Select,{size:"small",style:{width:200},value:B,onChange:function(e){N(e),W(null)},options:x.map(function(e){return{label:e,value:e}})})),a().createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8}},a().createElement(j,{strong:!0},a().createElement(o.FolderOutlined,null)," ",c("Current Path"),": ",G||"/ (Root)"),a().createElement(l.Button,{type:"primary",onClick:function(){return W(G)}},c("Use Current Folder"))),q?a().createElement(l.Spin,null):a().createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:8}},G&&a().createElement(l.Button,{icon:a().createElement(o.FolderOutlined,null),onClick:function(){var e=G.split("/");e.pop(),H(e.join("/"))}},".."),M.map(function(e){return a().createElement(l.Button,{key:e.path,icon:a().createElement(o.FolderOutlined,null),onClick:function(){return H(e.path)},style:{height:"auto",padding:"8px 16px"}},e.name)}),0===M.length&&!G&&a().createElement(l.Empty,{description:c("No folders found")})),null!==V&&a().createElement(l.Alert,{style:{marginTop:12},type:"success",message:"".concat(c("Selected Root Folder"),": ").concat(V||"/"),showIcon:!0})),2===d&&a().createElement("div",null,(null==es?void 0:es.initializedSkillsJson)&&a().createElement(l.Alert,{style:{marginBottom:12},type:"info",showIcon:!0,message:"".concat(c("Initialized skills.json"),": ").concat(es.path||"skills.json")}),Q?a().createElement(l.Spin,null):0===K.length?a().createElement(l.Empty,{description:c("No skills found")}):a().createElement("div",null,a().createElement("div",{style:{marginBottom:12,display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,flexWrap:"wrap"}},a().createElement(l.Input,{placeholder:c("Search by title or description..."),prefix:a().createElement(o.SearchOutlined,{style:{color:s.colorTextQuaternary}}),value:ed,onChange:function(e){return ef(e.target.value)},allowClear:!0,style:{width:260}}),a().createElement(l.Space,null,a().createElement(l.Input,{size:"small",placeholder:c("Skill Name Prefix"),value:ei,onChange:function(e){return eu(e.target.value)},style:{width:150}}),a().createElement(j,{style:{fontSize:12,marginLeft:8}},c("Overwrite")),a().createElement(l.Switch,{size:"small",checked:ea,onChange:el}))),a().createElement("div",{style:{marginBottom:8}},a().createElement(j,{type:"secondary",style:{fontSize:12}},eO.length," / ",K.length," ",c("skills found"),ei&&a().createElement("span",{style:{marginLeft:8}},"• ",c("Prefix"),": ",a().createElement(l.Tag,{style:{margin:0}},ei)," ",a().createElement(j,{type:"secondary",style:{fontSize:11}},"(",c("applied on sync"),")")))),a().createElement(l.Table,{dataSource:eO,columns:ex,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:et,onChange:function(e){return en(e)}},scroll:{x:"max-content"}}))),3===d&&eh&&a().createElement("div",null,a().createElement(l.Result,{status:"success",title:c("Sync Complete"),subTitle:"".concat(eh.filter(function(e){return"created"===e.status}).length," ").concat(c("created"),", ").concat(eh.filter(function(e){return"updated"===e.status}).length," ").concat(c("updated"),", ").concat(eh.filter(function(e){return"skipped"===e.status}).length," ").concat(c("skipped"))}),a().createElement(l.Table,{dataSource:eh,columns:eI,rowKey:"folder",size:"small",pagination:!1,scroll:{x:"max-content"}})))};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 A(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){A(l,r,a,o,i,"next",e)}function i(e){A(l,r,a,o,i,"throw",e)}o(void 0)})}}function N(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(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 D(e,t){var n,r,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(n=1,r&&(a=2&c[0]?r.return:c[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,c[1])).done)return a;switch(r=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],r=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var M=function(){var e=(0,i.R)(),t=(0,u.k)(),n=N((0,r.useState)([]),2),c=n[0],s=n[1],p=N((0,r.useState)(!1),2),m=p[0],d=p[1],f=N((0,r.useState)(!1),2),y=f[0],h=f[1],b=N((0,r.useState)(!1),2),v=b[0],S=b[1],E=N((0,r.useState)(null),2),k=E[0],O=E[1],x=N((0,r.useState)(null),2),I=x[0],C=x[1],T=N((0,r.useState)(!1),2),j=T[0],z=T[1],F=(0,r.useCallback)(function(){return B(function(){var n,r,a,o,i;return D(this,function(u){switch(u.label){case 0:d(!0),u.label=1;case 1:return u.trys.push([1,3,4,5]),[4,e.request({url:"skillDefinitions:list",params:{pageSize:100}})];case 2:return s(Array.isArray(i=null!=(n=null!=(r=null==(o=u.sent().data)||null==(a=o.data)?void 0:a.data)?r:null==o?void 0:o.data)?n:[])?i:[]),[3,5];case 3:return u.sent(),l.message.error(t("Failed to load skills")),[3,5];case 4:return d(!1),[7];case 5:return[2]}})})()},[e,t]);(0,r.useEffect)(function(){F()},[F]);var A=function(e){O(e),h(!0)},M=function(e){C(e),S(!0)};return a().createElement(l.Card,{title:t("Skill Definitions"),extra:a().createElement(l.Space,null,a().createElement(l.Button,{icon:a().createElement(o.BranchesOutlined,null),onClick:function(){return z(!0)}},t("Import from Git")),a().createElement(l.Button,{type:"primary",icon:a().createElement(o.PlusOutlined,null),onClick:function(){O(null),h(!0)}},t("New Skill")))},a().createElement(l.List,{grid:{gutter:16,xs:1,sm:2,md:3,lg:3,xl:4,xxl:4},dataSource:c,loading:m,renderItem:function(n){return a().createElement(l.List.Item,null,a().createElement(l.Card,{size:"small",title:a().createElement(l.Typography.Text,{ellipsis:!0,title:n.title},n.title),extra:a().createElement(l.Tag,{color:"python"===n.language?"blue":"green"},n.language),actions:[a().createElement(l.Tooltip,{key:"test",title:t("Test")},a().createElement(o.PlayCircleOutlined,{onClick:function(){return M(n)}})),a().createElement(l.Tooltip,{key:"edit",title:t("Edit")},a().createElement(o.EditOutlined,{onClick:function(){return A(n)}})),a().createElement(l.Popconfirm,{key:"delete",title:t("Delete?"),onConfirm:function(){var r;return r=n.id,B(function(){return D(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.request({url:"skillDefinitions:destroy",method:"POST",params:{filterByTk:r}})];case 1:return n.sent(),l.message.success(t("Deleted")),F(),[3,3];case 2:return n.sent(),l.message.error(t("Failed to delete")),[3,3];case 3:return[2]}})})()}},a().createElement(l.Tooltip,{title:t("Delete")},a().createElement(o.DeleteOutlined,{style:{color:"red"}})))],style:{boxShadow:"0 2px 8px rgba(0,0,0,0.05)",borderRadius:8}},a().createElement(l.Card.Meta,{title:a().createElement(l.Typography.Text,{type:"secondary",style:{fontSize:13}},n.name),description:a().createElement("div",{style:{height:60,overflow:"hidden",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",fontSize:13}},n.description||t("No description"))}),a().createElement("div",{style:{marginTop:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},a().createElement(l.Space,{size:4},a().createElement(l.Switch,{checked:n.enabled,onChange:function(){return B(function(){return D(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,e.request({url:"skillDefinitions:update",method:"POST",params:{filterByTk:n.id},data:{enabled:!n.enabled}})];case 1:return r.sent(),F(),[3,3];case 2:return r.sent(),l.message.error(t("Failed to update")),[3,3];case 3:return[2]}})})()},size:"small"}),a().createElement("span",{style:{fontSize:12}},n.enabled?t("Enabled"):t("Disabled"))),a().createElement(l.Tag,{color:"purple",style:{margin:0,fontSize:11}},n.storageType?n.storageType.toUpperCase():"DB"))))}}),y&&a().createElement(g,{skill:k,onClose:function(e){h(!1),O(null),e&&F()}}),v&&I&&a().createElement(w,{skill:I,onClose:function(){return S(!1)}}),a().createElement(P,{open:j,onClose:function(e){z(!1),e&&F()}}))},R=function(){return a().createElement("div",{style:{padding:"0 24px 24px"}},a().createElement(M,null))}},472:function(e,t,n){n.d(t,{H:function(){return i}});var r=n(155),a=n.n(r),l=n(59),o=n(375),i=function(e){var t=e.files;return Array.isArray(t)&&0!==t.length?a().createElement(l.Space,{direction:"vertical",size:2,style:{width:"100%"}},t.map(function(e,t){var n=e.downloadUrl||e.url,r=e.name||"file-".concat(t+1);return n?a().createElement("a",{key:"".concat(r,"-").concat(t),href:n,target:"_blank",rel:"noreferrer"},a().createElement(o.PaperClipOutlined,null)," ",r):a().createElement(l.Typography.Text,{key:"".concat(r,"-").concat(t)},a().createElement(o.PaperClipOutlined,null)," ",r)})):a().createElement(l.Typography.Text,{type:"secondary"},"-")}},608:function(e,t,n){n.d(t,{R:function(){return c},b:function(){return s}});var r=n(485),a=n(155);function l(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 o(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 i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(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 l(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 l(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){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function c(){return(0,r.useApp)().apiClient}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=c(),r=t.manual,l=void 0!==r&&r,s=t.refreshDeps,p=t.onSuccess,m=t.onError,d=i((0,a.useState)(void 0),2),f=d[0],y=d[1],h=i((0,a.useState)(!l),2),g=h[0],b=h[1],v=i((0,a.useState)(void 0),2),S=v[0],E=v[1],k=(0,a.useRef)(e);k.current=e;var w=(0,a.useRef)(p);w.current=p;var O=(0,a.useRef)(m);O.current=m;var x=(0,a.useCallback)(function(e){var t;return(t=function(){var t,r,a,l,o,i,c;return function(e,t){var n,r,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(n=1,r&&(a=2&c[0]?r.return:c[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,c[1])).done)return a;switch(r=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],r=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(s){switch(s.label){case 0:t=k.current,b(!0),E(void 0),s.label=1;case 1:if(s.trys.push([1,6,7,8]),"function"!=typeof t)return[3,3];return[4,t()];case 2:return a=s.sent(),[3,5];case 3:return[4,n.request({url:t.url,method:t.method||"get",params: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.params||{},e||{}),data:t.data})];case 4:a=(o=null==(l=s.sent())?void 0:l.data)&&(void 0===o?"undefined":u(o))==="object"&&o.data&&"object"===u(o.data)&&"data"in o.data?o.data:o,s.label=5;case 5:return y(a),null==(r=w.current)||r.call(w,a),[2,a];case 6:return E(i=s.sent()),null==(c=O.current)||c.call(O,i),[2,void 0];case 7:return b(!1),[7];case 8:return[2]}})},function(){var e=this,n=arguments;return new Promise(function(r,a){var l=t.apply(e,n);function i(e){o(l,r,a,i,u,"next",e)}function u(e){o(l,r,a,i,u,"throw",e)}i(void 0)})})()},[n]),I=(0,a.useCallback)(function(){x()},[x]);return(0,a.useEffect)(function(){l||x()},void 0===s?[]:s),{data:f,loading:g,error:S,refresh:I,run:x}}},603:function(e,t,n){n.d(t,{k:function(){return l}});var r=n(485),a=n(155);function l(){var e=(0,r.useApp)();return(0,a.useCallback)(function(t,n){return e.i18n.t(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}({ns:["plugin-agent-orchestrator","client"]},n))},[e.i18n])}},204:function(e,t,n){function r(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 a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=r(e,void 0),a=void 0===n?null==e||""===e?t:e:n;return null==a?"":"string"==typeof a?a:JSON.stringify(a,null,2)}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=r(e,void 0),a=void 0===n?null==e||""===e?t:e:n;return"```json\n".concat(JSON.stringify(a,null,2),"\n```")}n.d(t,{Bz:function(){return a},Nx:function(){return l},lk:function(){return r}})}}]);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunkplugin_agent_orchestrator_client_v2=self.webpackChunkplugin_agent_orchestrator_client_v2||[]).push([["418"],{393:function(e,t,r){r.r(t),r.d(t,{default:function(){return g}});var n=r(155),a=r.n(n),l=r(59),o=r(375),i=r(608),u=r(603);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function s(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function f(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){s(l,n,a,o,i,"next",e)}function i(e){s(l,n,a,o,i,"throw",e)}o(void 0)})}}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return c(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 d(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var m=l.Typography.Text,y=function(e){var t=String(e||"").trim();return t?JSON.parse(t):{}},b=function(){var e=(0,i.R)(),t=(0,u.k)(),r=p(a().useState(!1),2),n=r[0],c=r[1],s=p(a().useState(null),2),b=s[0],g=s[1],v=p(l.Form.useForm(),1)[0],h=(0,i.b)({url:"agentHarnessProfiles:list",params:{sort:["tag"],pageSize:100}}),w=h.data,O=h.loading,S=h.refresh,E=a().useMemo(function(){var e=null==w?void 0:w.data;return Array.isArray(e)?e:[]},[w]),k=function(e){var t,r;g(e||null),v.resetFields(),v.setFieldsValue(e?(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={settingsText:JSON.stringify(e.settings||{},null,2)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t):{tag:"",title:"",description:"",enabled:!0,settingsText:JSON.stringify({nativeObserverEnabled:!0,memoryInjectionEnabled:!0,memoryScopes:["public","user","agent_user"],knowledgeScopes:["public","private"],maxMemoryContextChars:6e3,tracingRetentionDays:30},null,2)}),c(!0)},P=function(){c(!1),g(null)},j=[{title:t("Tag"),dataIndex:"tag",key:"tag",width:140,render:function(e){return a().createElement(l.Tag,{color:"blue"},e)}},{title:t("Title"),dataIndex:"title",key:"title",render:function(e,t){return e||t.tag}},{title:t("Enabled"),dataIndex:"enabled",key:"enabled",width:90,render:function(t,r){return a().createElement(l.Switch,{size:"small",checked:!1!==t,onChange:function(t){return f(function(){return d(this,function(n){switch(n.label){case 0:return[4,e.request({url:"agentHarnessProfiles:update",method:"put",params:{filterByTk:r.id},data:{enabled:t}})];case 1:return n.sent(),S(),[2]}})})()}})}},{title:t("Settings"),key:"settings",render:function(e,t){return a().createElement(l.Space,{size:4,wrap:!0},Object.entries(t.settings||{}).slice(0,5).map(function(e){var t=p(e,2),r=t[0],n=t[1];return a().createElement(l.Tag,{key:r},r,": ",String(n))}))}},{title:t("Actions"),key:"actions",width:150,render:function(r,n){return a().createElement(l.Space,null,a().createElement(l.Button,{type:"link",size:"small",icon:a().createElement(o.EditOutlined,null),onClick:function(){return k(n)}},t("Edit")),a().createElement(l.Popconfirm,{title:t("Delete this profile?"),onConfirm:function(){var r;return r=n.id,f(function(){var n;return d(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),[4,e.request({url:"agentHarnessProfiles:destroy",method:"delete",params:{filterByTk:r}})];case 1:return a.sent(),l.message.success(t("Policy profile deleted")),S(),[3,3];case 2:return n=a.sent(),l.message.error(t("Delete failed: {{message}}",{message:(null==n?void 0:n.message)||t("unknown error")})),[3,3];case 3:return[2]}})})()}},a().createElement(l.Button,{type:"link",size:"small",danger:!0,icon:a().createElement(o.DeleteOutlined,null)},t("Delete"))))}}];return a().createElement("div",null,a().createElement(l.Card,{bordered:!1},a().createElement(l.Space,{direction:"vertical",size:16,style:{width:"100%"}},a().createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:16}},a().createElement(m,{type:"secondary"},t("Policy profiles control native observer, tracing retention, and memory/knowledge scopes.")),a().createElement(l.Button,{type:"primary",icon:a().createElement(o.PlusOutlined,null),onClick:function(){return k()}},t("New Policy"))),a().createElement(l.Table,{rowKey:"id",loading:O,dataSource:E,columns:j,pagination:!1,scroll:{x:"max-content"}}))),a().createElement(l.Drawer,{title:b?t("Edit Policy Profile"):t("New Policy Profile"),width:560,open:n,onClose:P,extra:a().createElement(l.Space,null,a().createElement(l.Button,{onClick:P},t("Cancel")),a().createElement(l.Button,{type:"primary",onClick:function(){return v.submit()}},t("Save")))},a().createElement(l.Form,{form:v,layout:"vertical",onFinish:function(r){return f(function(){var n,a,o,i,u,c,s,f;return d(this,function(p){switch(p.label){case 0:try{n=y(r.settingsText)}catch(e){return l.message.error(t("Settings JSON is invalid: {{message}}",{message:(null==e?void 0:e.message)||e})),[2]}a={tag:String(r.tag||"").trim(),title:r.title,description:r.description,enabled:!1!==r.enabled,settings:n},p.label=1;case 1:if(p.trys.push([1,6,,7]),!b)return[3,3];return[4,e.request({url:"agentHarnessProfiles:update",method:"put",params:{filterByTk:b.id},data:a})];case 2:return p.sent(),l.message.success(t("Policy profile updated")),[3,5];case 3:return[4,e.request({url:"agentHarnessProfiles:create",method:"post",data:a})];case 4:p.sent(),l.message.success(t("Policy profile created")),p.label=5;case 5:return P(),S(),[3,7];case 6:return f=(null==(o=p.sent())||null==(s=o.response)||null==(c=s.data)||null==(u=c.errors)||null==(i=u[0])?void 0:i.message)||(null==o?void 0:o.message)||"unknown error",l.message.error(t("Save failed: {{message}}",{message:f})),[3,7];case 7:return[2]}})})()}},a().createElement(l.Form.Item,{name:"tag",label:t("Tag"),rules:[{required:!0,message:t("Tag is required")}]},a().createElement(l.Input,{placeholder:t("default"),disabled:(null==b?void 0:b.tag)==="default"})),a().createElement(l.Form.Item,{name:"title",label:t("Title")},a().createElement(l.Input,null)),a().createElement(l.Form.Item,{name:"description",label:t("Description")},a().createElement(l.Input.TextArea,{rows:3})),a().createElement(l.Form.Item,{name:"settingsText",label:t("Settings JSON"),rules:[{required:!0,message:t("Settings JSON is required")}]},a().createElement(l.Input.TextArea,{rows:12,spellCheck:!1})),a().createElement(l.Form.Item,{name:"enabled",label:t("Enabled"),valuePropName:"checked"},a().createElement(l.Switch,null)))))},g=function(){return a().createElement("div",{style:{padding:"0 24px 24px"}},a().createElement(b,null))}},608:function(e,t,r){r.d(t,{R:function(){return c},b:function(){return s}});var n=r(485),a=r(155);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return l(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){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function c(){return(0,n.useApp)().apiClient}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=c(),n=t.manual,l=void 0!==n&&n,s=t.refreshDeps,f=t.onSuccess,p=t.onError,d=i((0,a.useState)(void 0),2),m=d[0],y=d[1],b=i((0,a.useState)(!l),2),g=b[0],v=b[1],h=i((0,a.useState)(void 0),2),w=h[0],O=h[1],S=(0,a.useRef)(e);S.current=e;var E=(0,a.useRef)(f);E.current=f;var k=(0,a.useRef)(p);k.current=p;var P=(0,a.useCallback)(function(e){var t;return(t=function(){var t,n,a,l,o,i,c;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(s){switch(s.label){case 0:t=S.current,v(!0),O(void 0),s.label=1;case 1:if(s.trys.push([1,6,7,8]),"function"!=typeof t)return[3,3];return[4,t()];case 2:return a=s.sent(),[3,5];case 3:return[4,r.request({url:t.url,method:t.method||"get",params:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t.params||{},e||{}),data:t.data})];case 4:a=(o=null==(l=s.sent())?void 0:l.data)&&(void 0===o?"undefined":u(o))==="object"&&o.data&&"object"===u(o.data)&&"data"in o.data?o.data:o,s.label=5;case 5:return y(a),null==(n=E.current)||n.call(E,a),[2,a];case 6:return O(i=s.sent()),null==(c=k.current)||c.call(k,i),[2,void 0];case 7:return v(!1),[7];case 8:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var l=t.apply(e,r);function i(e){o(l,n,a,i,u,"next",e)}function u(e){o(l,n,a,i,u,"throw",e)}i(void 0)})})()},[r]),j=(0,a.useCallback)(function(){P()},[P]);return(0,a.useEffect)(function(){l||P()},void 0===s?[]:s),{data:m,loading:g,error:w,refresh:j,run:P}}},603:function(e,t,r){r.d(t,{k:function(){return l}});var n=r(485),a=r(155);function l(){var e=(0,n.useApp)();return(0,a.useCallback)(function(t,r){return e.i18n.t(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({ns:["plugin-agent-orchestrator","client"]},r))},[e.i18n])}}}]);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunkplugin_agent_orchestrator_client_v2=self.webpackChunkplugin_agent_orchestrator_client_v2||[]).push([["619"],{532:function(e,t,r){r.d(t,{j:function(){return m},l:function(){return s}});var n=r(155),a=r.n(n),l=r(608);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function i(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e){if(e){if("string"==typeof e)return o(e,void 0);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o(e,void 0)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var u=(0,n.createContext)({employees:[],employeeMap:new Map,toolNamesMap:new Map,loading:!1,refresh:function(){}}),c=new Set(["dispatch-sub-agent-task","external_rag_search","skill_hub_execute"]),s=function(e){var t=e.children,r=(0,l.b)({url:"aiEmployees:list",params:{pageSize:200}}),n=r.data,o=r.loading,s=r.refresh,m=a().useMemo(function(){var e=((null==n?void 0:n.data)||[]).map(function(e){var t,r,n,a,l=(r=Array.isArray(null==(t=e.skillSettings)?void 0:t.tools)?t.tools.map(function(e){return"string"==typeof e?e:null==e?void 0:e.name}).filter(function(e){return"string"==typeof e&&e.length>0}):[],n=Array.isArray(null==t?void 0:t.skills)?t.skills.map(function(e){if("string"==typeof e)return c.has(e)||e.startsWith("skill_hub_")||e.startsWith("browser_")||e.startsWith("drawio-")?e:null;return null==e?void 0:e.name}).filter(function(e){return"string"==typeof e&&e.length>0}):[],Array.from(new Set(i(r).concat(i(n)))));return{username:e.username,nickname:e.nickname||e.username,about:null==(a=e.about)?void 0:a.substring(0,80),tools:l}}),t=new Map,r=new Map,a=!0,l=!1,u=void 0;try{for(var m,f=e[Symbol.iterator]();!(a=(m=f.next()).done);a=!0){var p=m.value;t.set(p.username,p.nickname),r.set(p.username,new Set(p.tools))}}catch(e){l=!0,u=e}finally{try{a||null==f.return||f.return()}finally{if(l)throw u}}return{employees:e,employeeMap:t,toolNamesMap:r,loading:o,refresh:s}},[n,o,s]);return a().createElement(u.Provider,{value:m},t)},m=function(){return(0,n.useContext)(u)}},230:function(e,t,r){r.r(t),r.d(t,{default:function(){return g}});var n=r(155),a=r.n(n),l=r(532),o=r(59),i=r(375),u=r(608);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function s(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function m(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return c(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 f=o.Typography.Text,p=o.Typography.Paragraph,d=o.DatePicker.RangePicker,y=function(){var e,t=(0,u.R)(),r=m((0,n.useState)(null),2),c=r[0],y=r[1],g=m((0,n.useState)(!1),2),b=g[0],h=g[1],v=m((0,n.useState)(1),2),E=v[0],w=v[1],S=m((0,n.useState)(20),2),k=S[0],A=S[1],x=m((0,n.useState)({}),2),C=x[0],O=x[1],I=(0,l.j)(),T=I.employees,j=I.employeeMap,D=(0,n.useMemo)(function(){var e={};return C.leader&&(e.leaderUsername=C.leader),C.subAgent&&(e.subAgentUsername=C.subAgent),C.status&&(e.status=C.status),C.range&&(C.range[0]||C.range[1])&&(e.createdAt={},C.range[0]&&(e.createdAt.$gte=C.range[0].toDate().toISOString()),C.range[1]&&(e.createdAt.$lte=C.range[1].toDate().toISOString())),{sort:["-createdAt"],page:E,pageSize:k,filter:e}},[E,k,C]),z=(0,u.b)({url:"orchestratorTracing:list",params:D},{refreshDeps:[D]}),M=z.data,P=z.loading,_=z.refresh,U=(0,n.useMemo)(function(){var e=null==M?void 0:M.data;return Array.isArray(e)?e:[]},[M]),N=(0,n.useMemo)(function(){var e,t=null==M||null==(e=M.meta)?void 0:e.count;return"number"==typeof t?t:0},[M]),B=function(e){return e?e>=1e3?"".concat((e/1e3).toFixed(1),"s"):"".concat(e,"ms"):"-"},R=function(e){var r;return(r=function(){var r,n,a,l;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(o){switch(o.label){case 0:y(e),h(!0),o.label=1;case 1:return o.trys.push([1,,3,4]),[4,t.request({url:"orchestratorTracing:get",params:{filterByTk:e.id,source:e.hasUnifiedTrace?"span":"log"}})];case 2:return y((null==(l=o.sent())||null==(n=l.data)||null==(r=n.data)?void 0:r.data)||(null==l||null==(a=l.data)?void 0:a.data)||e),[3,4];case 3:return h(!1),[7];case 4:return[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,a){var l=r.apply(e,t);function o(e){s(l,n,a,o,i,"next",e)}function i(e){s(l,n,a,o,i,"throw",e)}o(void 0)})})()},F=function(e){O(function(t){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t,e)}),w(1)},W=(0,n.useMemo)(function(){return T.map(function(e){return{label:e.nickname||e.username,value:e.username}})},[T]),L=!!(C.leader||C.subAgent||C.status||C.range&&(C.range[0]||C.range[1])),$=[{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 a().createElement(o.Tag,{color:"blue"},j.get(e)||e)}},{title:"Sub-Agent",dataIndex:"subAgentUsername",key:"subAgentUsername",render:function(e){return a().createElement(o.Tag,{color:"green"},j.get(e)||e)}},{title:"Task",dataIndex:"task",key:"task",render:function(e){return a().createElement(f,{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 a().createElement(o.Tag,{icon:"success"===e?a().createElement(i.CheckCircleOutlined,null):a().createElement(i.CloseCircleOutlined,null),color:"success"===e?"success":"error"},e)}},{title:"Duration",dataIndex:"durationMs",key:"durationMs",width:90,render:B},{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 a().createElement(o.Button,{type:"link",size:"small",icon:a().createElement(i.EyeOutlined,null),onClick:function(){return R(t)}},"Detail")}}];return a().createElement("div",null,a().createElement(o.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Execution Tracing",description:a().createElement(f,{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.")}),a().createElement(o.Card,{bordered:!1},a().createElement(o.Form,{layout:"inline",style:{marginBottom:16,rowGap:8,flexWrap:"wrap"}},a().createElement(o.Form.Item,{label:"Leader"},a().createElement(o.Select,{allowClear:!0,placeholder:"Any leader",style:{minWidth:180},options:W,value:C.leader,onChange:function(e){return F({leader:e})},showSearch:!0,optionFilterProp:"label"})),a().createElement(o.Form.Item,{label:"Sub-Agent"},a().createElement(o.Select,{allowClear:!0,placeholder:"Any sub-agent",style:{minWidth:180},options:W,value:C.subAgent,onChange:function(e){return F({subAgent:e})},showSearch:!0,optionFilterProp:"label"})),a().createElement(o.Form.Item,{label:"Status"},a().createElement(o.Select,{allowClear:!0,placeholder:"Any status",style:{minWidth:140},options:[{label:"Success",value:"success"},{label:"Error",value:"error"},{label:"Running",value:"running"}],value:C.status,onChange:function(e){return F({status:e})}})),a().createElement(o.Form.Item,{label:"Time"},a().createElement(d,{showTime:!0,value:C.range,onChange:function(e){return F({range:e})}})),a().createElement(o.Form.Item,null,a().createElement(o.Space,null,a().createElement(o.Button,{onClick:function(){O({}),w(1)},disabled:!L},"Reset"),a().createElement(o.Button,{icon:a().createElement(i.ReloadOutlined,null),onClick:_},"Refresh")))),a().createElement(o.Table,{rowKey:"id",loading:P,dataSource:U,columns:$,size:"middle",scroll:{x:"max-content"},pagination:{current:E,pageSize:k,total:N,showSizeChanger:!0,pageSizeOptions:[10,20,50,100],showTotal:function(e){return"".concat(e," execution").concat(1===e?"":"s")},onChange:function(e,t){w(e),t&&t!==k&&A(t)}},locale:{emptyText:a().createElement(o.Empty,{description:L?"No executions match the current filters":"No delegation executions yet"})}})),a().createElement(o.Drawer,{title:"Execution Detail",width:820,onClose:function(){return y(null)},open:!!c},c&&a().createElement(o.Spin,{spinning:b},a().createElement(a().Fragment,null,a().createElement(o.Descriptions,{column:1,bordered:!0,size:"small",style:{marginBottom:16}},a().createElement(o.Descriptions.Item,{label:"Status"},a().createElement(o.Tag,{icon:"success"===c.status?a().createElement(i.CheckCircleOutlined,null):a().createElement(i.CloseCircleOutlined,null),color:"success"===c.status?"success":"error"},c.status)),a().createElement(o.Descriptions.Item,{label:"Leader"},a().createElement(o.Tag,{color:"blue"},j.get(c.leaderUsername)||c.leaderUsername)),a().createElement(o.Descriptions.Item,{label:"Sub-Agent"},a().createElement(o.Tag,{color:"green"},j.get(c.subAgentUsername)||c.subAgentUsername)),a().createElement(o.Descriptions.Item,{label:"Tool"},a().createElement(f,{code:!0},c.toolName)),a().createElement(o.Descriptions.Item,{label:"Depth"},null!=(e=c.depth)?e:0),a().createElement(o.Descriptions.Item,{label:"Duration"},B(c.durationMs)),a().createElement(o.Descriptions.Item,{label:"Time"},c.createdAt?new Date(c.createdAt).toLocaleString():"-")),a().createElement(o.Card,{title:"Task",size:"small",style:{marginBottom:16}},a().createElement(p,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},c.task||"No task description")),c.context&&a().createElement(o.Card,{title:"Context",size:"small",style:{marginBottom:16}},a().createElement(p,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},c.context)),a().createElement(o.Card,{title:"Execution Flow",size:"small",style:{marginBottom:16}},Array.isArray(c.trace)&&c.trace.length?a().createElement(o.Timeline,{items:c.trace.map(function(e,t){return{key:t,color:"error"===e.status?"red":"tool_call"===e.type?"blue":"green",children:a().createElement("div",null,a().createElement(o.Space,{direction:"vertical",size:2,style:{width:"100%"}},a().createElement(f,{strong:!0},e.title||e.type),a().createElement(f,{type:"secondary"},e.at?new Date(e.at).toLocaleString():""),e.toolName&&a().createElement(f,{code:!0},e.toolName),e.skillExecutionId&&a().createElement(f,{type:"secondary"},"Skill execution #",e.skillExecutionId),e.content&&a().createElement(p,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},e.content),e.args&&a().createElement(p,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:12}},JSON.stringify(e.args,null,2))))}})}):a().createElement(o.Empty,{description:"No execution flow captured"})),Array.isArray(c.messages)&&c.messages.length>0&&a().createElement(o.Collapse,{style:{marginBottom:16},items:[{key:"messages",label:"Raw messages (".concat(c.messages.length,")"),children:a().createElement(o.Space,{direction:"vertical",style:{width:"100%"}},c.messages.map(function(e){var t;return a().createElement(o.Card,{key:e.index,size:"small",title:"".concat(e.index+1,". ").concat(e.type)},a().createElement(p,{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&&a().createElement(p,{style:{whiteSpace:"pre-wrap",margin:"8px 0 0",fontSize:12}},JSON.stringify(e.toolCalls,null,2)))}))}]}),a().createElement(o.Card,{title:"Result",size:"small",style:{marginBottom:16,borderColor:"success"===c.status?"#b7eb8f":"#ffa39e"}},a().createElement(p,{style:{whiteSpace:"pre-wrap",margin:0,fontSize:13},ellipsis:{rows:20,expandable:!0}},c.result||c.error||"No result")),c.error&&a().createElement(o.Card,{title:"Error",size:"small",style:{borderColor:"#ffa39e"}},a().createElement(p,{type:"danger",style:{whiteSpace:"pre-wrap",margin:0,fontSize:13}},c.error))))))},g=function(){return a().createElement(l.l,null,a().createElement("div",{style:{padding:"0 24px 24px"}},a().createElement(y,null)))}},608:function(e,t,r){r.d(t,{R:function(){return c},b:function(){return s}});var n=r(485),a=r(155);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t,r,n,a,l,o){try{var i=e[l](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,a)}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return l(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){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function c(){return(0,n.useApp)().apiClient}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=c(),n=t.manual,l=void 0!==n&&n,s=t.refreshDeps,m=t.onSuccess,f=t.onError,p=i((0,a.useState)(void 0),2),d=p[0],y=p[1],g=i((0,a.useState)(!l),2),b=g[0],h=g[1],v=i((0,a.useState)(void 0),2),E=v[0],w=v[1],S=(0,a.useRef)(e);S.current=e;var k=(0,a.useRef)(m);k.current=m;var A=(0,a.useRef)(f);A.current=f;var x=(0,a.useCallback)(function(e){var t;return(t=function(){var t,n,a,l,o,i,c;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(s){switch(s.label){case 0:t=S.current,h(!0),w(void 0),s.label=1;case 1:if(s.trys.push([1,6,7,8]),"function"!=typeof t)return[3,3];return[4,t()];case 2:return a=s.sent(),[3,5];case 3:return[4,r.request({url:t.url,method:t.method||"get",params:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t.params||{},e||{}),data:t.data})];case 4:a=(o=null==(l=s.sent())?void 0:l.data)&&(void 0===o?"undefined":u(o))==="object"&&o.data&&"object"===u(o.data)&&"data"in o.data?o.data:o,s.label=5;case 5:return y(a),null==(n=k.current)||n.call(k,a),[2,a];case 6:return w(i=s.sent()),null==(c=A.current)||c.call(A,i),[2,void 0];case 7:return h(!1),[7];case 8:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var l=t.apply(e,r);function i(e){o(l,n,a,i,u,"next",e)}function u(e){o(l,n,a,i,u,"throw",e)}i(void 0)})})()},[r]),C=(0,a.useCallback)(function(){x()},[x]);return(0,a.useEffect)(function(){l||x()},void 0===s?[]:s),{data:d,loading:b,error:E,refresh:C,run:x}}}}]);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunkplugin_agent_orchestrator_client_v2=self.webpackChunkplugin_agent_orchestrator_client_v2||[]).push([["677"],{812:function(e,t,n){n.r(t);var l=n(155),r=n.n(l),a=n(532),c=n(804);t.default=function(){return r().createElement(a.l,null,r().createElement("div",{style:{padding:"0 24px 24px"}},r().createElement(c.H,null)))}}}]);
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- "use strict";(self.webpackChunkplugin_agent_orchestrator_client_v2=self.webpackChunkplugin_agent_orchestrator_client_v2||[]).push([["70"],{581:function(e,t,r){r.r(t),r.d(t,{default:function(){return k}});var n=r(155),l=r.n(n),a=r(59),o=r(375),i=r(608),u=r(603),c=r(204),s=[{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 f(e){return s.find(function(t){return t.key===e})||s[0]}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function m(e,t,r,n,l,a,o){try{var i=e[a](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,l)}function d(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){m(a,n,l,o,i,"next",e)}function i(e){m(a,n,l,o,i,"throw",e)}o(void 0)})}}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function b(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&c[0]?n.return:c[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,c[1])).done)return l;switch(n=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,n=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){a.label=c[1];break}if(6===c[0]&&a.label<l[1]){a.label=l[1],l=c;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(c);break}l[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],n=0}finally{r=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var g=a.Input.TextArea,w=function(e){var t,r,n,l,a=null!=(t=null!=(r=null!=(n=null==e||null==(l=e.data)?void 0:l.data)?n:null==e?void 0:e.data)?r:e)?t:[];return Array.isArray(a)?a:[]},S=function(){var e=(0,i.R)(),t=(0,u.k)(),r=h(a.Form.useForm(),1)[0],p=h((0,n.useState)([]),2),m=p[0],S=p[1],k=h((0,n.useState)([]),2),O=k[0],E=k[1],j=h((0,n.useState)(!1),2),P=j[0],x=j[1],C=h((0,n.useState)(!1),2),I=C[0],F=C[1],T=h((0,n.useState)(null),2),A=T[0],R=T[1],z=(0,n.useMemo)(function(){return new Map(m.map(function(e){return[String(e.id),e]}))},[m]),D=(0,n.useCallback)(function(){return d(function(){var r,n,l;return v(this,function(o){switch(o.label){case 0:x(!0),o.label=1;case 1:return o.trys.push([1,3,4,5]),[4,Promise.all([e.request({url:"skillDefinitions:list",params:{filter:{enabled:!0},fields:["id","name","title","language","autoCall"],pageSize:500}}),e.request({url:"skillLoopConfigs:list",params:{fields:["id","skillId","enabled","title","templateKey","prompt","schema","config","updatedAt"],sort:["-updatedAt"],pageSize:500}})])];case 2:return n=(r=h.apply(void 0,[o.sent(),2]))[0],l=r[1],S(w(n.data)),E(w(l.data)),[3,5];case 3:return o.sent(),a.message.error(t("Failed to load skill review settings")),[3,5];case 4:return x(!1),[7];case 5:return[2]}})})()},[e,t]);(0,n.useEffect)(function(){D()},[D]);var N=function(e){var t=f(e.templateKey);R(e),r.setFieldsValue(b(y({},e),{templateKey:e.templateKey||t.key,prompt:e.prompt||t.schema.prompt,schema:(0,c.Bz)(e.schema||t.schema),config:(0,c.Bz)(e.config,null)})),F(!0)},q=function(){F(!1),R(null),r.resetFields()},B=(0,n.useCallback)(function(){window.dispatchEvent(new Event("skill-hub-loop-settings-changed"))},[]);return l().createElement(a.Card,{title:t("Skill Review Settings"),extra:l().createElement(a.Button,{type:"primary",icon:l().createElement(o.PlusOutlined,null),onClick:function(){var e=f("confirm");R(null),r.resetFields(),r.setFieldsValue({enabled:!0,templateKey:e.key,prompt:e.schema.prompt,schema:(0,c.Bz)(e.schema),config:""}),F(!0)}},t("New Review"))},l().createElement(a.List,{loading:P,dataSource:O,grid:{gutter:16,xs:1,sm:2,md:3,lg:3,xl:4,xxl:4},renderItem:function(r){var n=z.get(String(r.skillId)),i=f(r.templateKey);return l().createElement(a.List.Item,null,l().createElement(a.Card,{size:"small",title:l().createElement(a.Typography.Text,{ellipsis:!0},r.title||(null==n?void 0:n.title)||(null==n?void 0:n.name)||t("Unknown skill")),extra:l().createElement(a.Tag,{color:r.enabled?"green":"default"},r.enabled?t("Enabled"):t("Disabled")),actions:[l().createElement(a.Tooltip,{key:"edit",title:t("Edit")},l().createElement(o.EditOutlined,{onClick:function(){return N(r)}})),l().createElement(a.Popconfirm,{key:"delete",title:t("Delete?"),onConfirm:function(){var n;return n=r.id,d(function(){return v(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,e.request({url:"skillLoopConfigs:destroy",method:"POST",params:{filterByTk:n}})];case 1:return r.sent(),a.message.success(t("Deleted")),D(),B(),[3,3];case 2:return r.sent(),a.message.error(t("Failed to delete")),[3,3];case 3:return[2]}})})()}},l().createElement(a.Tooltip,{title:t("Delete")},l().createElement(o.DeleteOutlined,{style:{color:"red"}})))],style:{boxShadow:"0 2px 8px rgba(0,0,0,0.05)",borderRadius:8}},l().createElement(a.Space,{direction:"vertical",size:8,style:{width:"100%"}},l().createElement(a.Typography.Text,{type:"secondary",style:{fontSize:13}},(null==n?void 0:n.name)||"skillId=".concat(r.skillId)),l().createElement(a.Tag,{color:"blue",style:{width:"fit-content"}},i.title),l().createElement(a.Typography.Paragraph,{type:"secondary",ellipsis:{rows:2},style:{minHeight:44,marginBottom:0,fontSize:13}},r.prompt||i.schema.prompt),l().createElement(a.Space,{size:4},l().createElement(a.Switch,{checked:r.enabled,onChange:function(){return d(function(){return v(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.request({url:"skillLoopConfigs:update",method:"POST",params:{filterByTk:r.id},data:{enabled:!r.enabled}})];case 1:return n.sent(),D(),B(),[3,3];case 2:return n.sent(),a.message.error(t("Failed to update")),[3,3];case 3:return[2]}})})()},size:"small"}),l().createElement("span",{style:{fontSize:12}},r.enabled?t("Enabled"):t("Disabled"))))))}}),l().createElement(a.Modal,{open:I,title:A?t("Edit Skill Review Setting"):t("New Skill Review Setting"),onCancel:q,onOk:function(){return d(function(){var n,l,o,i,u,s;return v(this,function(f){switch(f.label){case 0:return f.trys.push([0,6,,7]),[4,r.validateFields()];case 1:if(n=f.sent(),!(l=(0,c.lk)(n.schema,void 0))||(void 0===l?"undefined":l&&"u">typeof Symbol&&l.constructor===Symbol?"symbol":typeof l)!="object")return a.message.error(t("Invalid JSON in Review Schema")),[2];if(o=(0,c.lk)(n.config,void 0),n.config&&void 0===o)return a.message.error(t("Invalid JSON in Review Config")),[2];if(i=b(y({},l),{prompt:n.prompt||l.prompt}),u=b(y({},n),{schema:(0,c.Nx)(i),config:n.config?(0,c.Nx)(o):null}),!A)return[3,3];return[4,e.request({url:"skillLoopConfigs:update",method:"POST",params:{filterByTk:A.id},data:u})];case 2:return f.sent(),[3,5];case 3:return[4,e.request({url:"skillLoopConfigs:create",method:"POST",data:u})];case 4:f.sent(),f.label=5;case 5:return a.message.success(t(A?"Skill review setting updated":"Skill review setting created")),q(),D(),B(),[3,7];case 6:if(null==(s=f.sent())?void 0:s.errorFields)return[2];return a.message.error(t("Failed to save skill review setting")),[3,7];case 7:return[2]}})})()},width:760,destroyOnClose:!0},l().createElement(a.Form,{form:r,layout:"vertical"},l().createElement(a.Form.Item,{name:"enabled",valuePropName:"checked",label:t("Enabled")},l().createElement(a.Switch,null)),l().createElement(a.Form.Item,{name:"skillId",label:t("Skill"),rules:[{required:!0}]},l().createElement(a.Select,{showSearch:!0,optionFilterProp:"label",placeholder:t("Select a skill"),options:m.map(function(e){return{value:e.id,label:"".concat(e.title||e.name," (").concat(e.name,")")}})})),l().createElement(a.Form.Item,{name:"title",label:t("Title")},l().createElement(a.Input,{placeholder:t("Optional display title")})),l().createElement(a.Form.Item,{name:"templateKey",label:t("Review Template"),rules:[{required:!0}]},l().createElement(a.Select,{onChange:function(e){var t=f(e);r.setFieldsValue({prompt:t.schema.prompt,schema:(0,c.Bz)(t.schema)})}},s.map(function(e){return l().createElement(a.Select.Option,{key:e.key,value:e.key},e.title," - ",e.description)}))),l().createElement(a.Form.Item,{name:"prompt",label:t("Prompt"),rules:[{required:!0}]},l().createElement(g,{rows:3})),l().createElement(a.Form.Item,{name:"schema",label:t("Review Schema (JSON)"),rules:[{required:!0}],extra:t("Standard interaction schema. Supported types: confirm, form, select.")},l().createElement(g,{rows:10,style:{fontFamily:"monospace",fontSize:13}})),l().createElement(a.Form.Item,{name:"config",label:t("Review Config (optional JSON)")},l().createElement(g,{rows:4,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "maxRetries": 1\n}'})))))},k=function(){return l().createElement("div",{style:{padding:"0 24px 24px"}},l().createElement(S,null))}},608:function(e,t,r){r.d(t,{R:function(){return u},b:function(){return c}});var n=r(485),l=r(155);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t,r,n,l,a,o){try{var i=e[a](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,l)}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(e,t)}}(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(){return(0,n.useApp)().apiClient}function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u(),n=t.manual,a=void 0!==n&&n,c=t.refreshDeps,s=t.onSuccess,f=t.onError,p=i((0,l.useState)(void 0),2),m=p[0],d=p[1],y=i((0,l.useState)(!a),2),b=y[0],h=y[1],v=i((0,l.useState)(void 0),2),g=v[0],w=v[1],S=(0,l.useRef)(e);S.current=e;var k=(0,l.useRef)(s);k.current=s;var O=(0,l.useRef)(f);O.current=f;var E=(0,l.useCallback)(function(e){var t;return(t=function(){var t,n,l,a,o,i;return function(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&c[0]?n.return:c[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,c[1])).done)return l;switch(n=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,n=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){a.label=c[1];break}if(6===c[0]&&a.label<l[1]){a.label=l[1],l=c;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(c);break}l[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],n=0}finally{r=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(u){switch(u.label){case 0:t=S.current,h(!0),w(void 0),u.label=1;case 1:if(u.trys.push([1,6,7,8]),"function"!=typeof t)return[3,3];return[4,t()];case 2:return l=u.sent(),[3,5];case 3:return[4,r.request({url:t.url,method:t.method||"get",params:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t.params||{},e||{}),data:t.data})];case 4:l=null==(a=u.sent())?void 0:a.data,u.label=5;case 5:return d(l),null==(n=k.current)||n.call(k,l),[2,l];case 6:return w(o=u.sent()),null==(i=O.current)||i.call(O,o),[2,void 0];case 7:return h(!1),[7];case 8:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,l){var a=t.apply(e,r);function i(e){o(a,n,l,i,u,"next",e)}function u(e){o(a,n,l,i,u,"throw",e)}i(void 0)})})()},[r]),j=(0,l.useCallback)(function(){E()},[E]);return(0,l.useEffect)(function(){a||E()},void 0===c?[]:c),{data:m,loading:b,error:g,refresh:j,run:E}}},603:function(e,t,r){r.d(t,{k:function(){return a}});var n=r(485),l=r(155);function a(){var e=(0,n.useApp)();return(0,l.useCallback)(function(t,r){return e.i18n.t(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({ns:["plugin-agent-orchestrator","client"]},r))},[e.i18n])}},204:function(e,t,r){function n(e,t){if(null==e||""===e)return t;if("string"!=typeof e)return e;var r=e.trim(),n=r.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),l=n?n[1].trim():r;try{var a=JSON.parse(l);if("string"==typeof a){var o=a.trim(),i=o.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),u=i?i[1].trim():o;try{a=JSON.parse(u)}catch(e){}}return a}catch(e){return t}}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=n(e,void 0),l=void 0===r?null==e||""===e?t:e:r;return null==l?"":"string"==typeof l?l:JSON.stringify(l,null,2)}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=n(e,void 0),l=void 0===r?null==e||""===e?t:e:r;return"```json\n".concat(JSON.stringify(l,null,2),"\n```")}r.d(t,{Bz:function(){return l},Nx:function(){return a},lk:function(){return n}})}}]);
10
+ "use strict";(self.webpackChunkplugin_agent_orchestrator_client_v2=self.webpackChunkplugin_agent_orchestrator_client_v2||[]).push([["70"],{581:function(e,t,r){r.r(t),r.d(t,{default:function(){return k}});var n=r(155),l=r.n(n),a=r(59),o=r(375),i=r(608),u=r(603),c=r(204),s=[{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 f(e){return s.find(function(t){return t.key===e})||s[0]}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function m(e,t,r,n,l,a,o){try{var i=e[a](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,l)}function d(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){m(a,n,l,o,i,"next",e)}function i(e){m(a,n,l,o,i,"throw",e)}o(void 0)})}}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function b(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&c[0]?n.return:c[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,c[1])).done)return l;switch(n=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,n=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){a.label=c[1];break}if(6===c[0]&&a.label<l[1]){a.label=l[1],l=c;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(c);break}l[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],n=0}finally{r=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var g=a.Input.TextArea,S=function(e){var t,r,n,l,a=null!=(t=null!=(r=null!=(n=null==e||null==(l=e.data)?void 0:l.data)?n:null==e?void 0:e.data)?r:e)?t:[];return Array.isArray(a)?a:[]},w=function(){var e=(0,i.R)(),t=(0,u.k)(),r=h(a.Form.useForm(),1)[0],p=h((0,n.useState)([]),2),m=p[0],w=p[1],k=h((0,n.useState)([]),2),O=k[0],E=k[1],j=h((0,n.useState)(!1),2),P=j[0],x=j[1],C=h((0,n.useState)(!1),2),I=C[0],F=C[1],T=h((0,n.useState)(null),2),A=T[0],R=T[1],z=(0,n.useMemo)(function(){return new Map(m.map(function(e){return[String(e.id),e]}))},[m]),D=(0,n.useCallback)(function(){return d(function(){var r,n,l;return v(this,function(o){switch(o.label){case 0:x(!0),o.label=1;case 1:return o.trys.push([1,3,4,5]),[4,Promise.all([e.request({url:"skillDefinitions:list",params:{filter:{enabled:!0},fields:["id","name","title","language","autoCall"],pageSize:500}}),e.request({url:"skillLoopConfigs:list",params:{fields:["id","skillId","enabled","title","templateKey","prompt","schema","config","updatedAt"],sort:["-updatedAt"],pageSize:500}})])];case 2:return n=(r=h.apply(void 0,[o.sent(),2]))[0],l=r[1],w(S(n.data)),E(S(l.data)),[3,5];case 3:return o.sent(),a.message.error(t("Failed to load skill review settings")),[3,5];case 4:return x(!1),[7];case 5:return[2]}})})()},[e,t]);(0,n.useEffect)(function(){D()},[D]);var N=function(e){var t=f(e.templateKey);R(e),r.setFieldsValue(b(y({},e),{templateKey:e.templateKey||t.key,prompt:e.prompt||t.schema.prompt,schema:(0,c.Bz)(e.schema||t.schema),config:(0,c.Bz)(e.config,null)})),F(!0)},q=function(){F(!1),R(null),r.resetFields()},B=(0,n.useCallback)(function(){window.dispatchEvent(new Event("skill-hub-loop-settings-changed"))},[]);return l().createElement(a.Card,{title:t("Skill Review Settings"),extra:l().createElement(a.Button,{type:"primary",icon:l().createElement(o.PlusOutlined,null),onClick:function(){var e=f("confirm");R(null),r.resetFields(),r.setFieldsValue({enabled:!0,templateKey:e.key,prompt:e.schema.prompt,schema:(0,c.Bz)(e.schema),config:""}),F(!0)}},t("New Review"))},l().createElement(a.List,{loading:P,dataSource:O,grid:{gutter:16,xs:1,sm:2,md:3,lg:3,xl:4,xxl:4},renderItem:function(r){var n=z.get(String(r.skillId)),i=f(r.templateKey);return l().createElement(a.List.Item,null,l().createElement(a.Card,{size:"small",title:l().createElement(a.Typography.Text,{ellipsis:!0},r.title||(null==n?void 0:n.title)||(null==n?void 0:n.name)||t("Unknown skill")),extra:l().createElement(a.Tag,{color:r.enabled?"green":"default"},r.enabled?t("Enabled"):t("Disabled")),actions:[l().createElement(a.Tooltip,{key:"edit",title:t("Edit")},l().createElement(o.EditOutlined,{onClick:function(){return N(r)}})),l().createElement(a.Popconfirm,{key:"delete",title:t("Delete?"),onConfirm:function(){var n;return n=r.id,d(function(){return v(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,e.request({url:"skillLoopConfigs:destroy",method:"POST",params:{filterByTk:n}})];case 1:return r.sent(),a.message.success(t("Deleted")),D(),B(),[3,3];case 2:return r.sent(),a.message.error(t("Failed to delete")),[3,3];case 3:return[2]}})})()}},l().createElement(a.Tooltip,{title:t("Delete")},l().createElement(o.DeleteOutlined,{style:{color:"red"}})))],style:{boxShadow:"0 2px 8px rgba(0,0,0,0.05)",borderRadius:8}},l().createElement(a.Space,{direction:"vertical",size:8,style:{width:"100%"}},l().createElement(a.Typography.Text,{type:"secondary",style:{fontSize:13}},(null==n?void 0:n.name)||"skillId=".concat(r.skillId)),l().createElement(a.Tag,{color:"blue",style:{width:"fit-content"}},i.title),l().createElement(a.Typography.Paragraph,{type:"secondary",ellipsis:{rows:2},style:{minHeight:44,marginBottom:0,fontSize:13}},r.prompt||i.schema.prompt),l().createElement(a.Space,{size:4},l().createElement(a.Switch,{checked:r.enabled,onChange:function(){return d(function(){return v(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.request({url:"skillLoopConfigs:update",method:"POST",params:{filterByTk:r.id},data:{enabled:!r.enabled}})];case 1:return n.sent(),D(),B(),[3,3];case 2:return n.sent(),a.message.error(t("Failed to update")),[3,3];case 3:return[2]}})})()},size:"small"}),l().createElement("span",{style:{fontSize:12}},r.enabled?t("Enabled"):t("Disabled"))))))}}),l().createElement(a.Modal,{open:I,title:A?t("Edit Skill Review Setting"):t("New Skill Review Setting"),onCancel:q,onOk:function(){return d(function(){var n,l,o,i,u,s;return v(this,function(f){switch(f.label){case 0:return f.trys.push([0,6,,7]),[4,r.validateFields()];case 1:if(n=f.sent(),!(l=(0,c.lk)(n.schema,void 0))||(void 0===l?"undefined":l&&"u">typeof Symbol&&l.constructor===Symbol?"symbol":typeof l)!="object")return a.message.error(t("Invalid JSON in Review Schema")),[2];if(o=(0,c.lk)(n.config,void 0),n.config&&void 0===o)return a.message.error(t("Invalid JSON in Review Config")),[2];if(i=b(y({},l),{prompt:n.prompt||l.prompt}),u=b(y({},n),{schema:(0,c.Nx)(i),config:n.config?(0,c.Nx)(o):null}),!A)return[3,3];return[4,e.request({url:"skillLoopConfigs:update",method:"POST",params:{filterByTk:A.id},data:u})];case 2:return f.sent(),[3,5];case 3:return[4,e.request({url:"skillLoopConfigs:create",method:"POST",data:u})];case 4:f.sent(),f.label=5;case 5:return a.message.success(t(A?"Skill review setting updated":"Skill review setting created")),q(),D(),B(),[3,7];case 6:if(null==(s=f.sent())?void 0:s.errorFields)return[2];return a.message.error(t("Failed to save skill review setting")),[3,7];case 7:return[2]}})})()},width:760,destroyOnClose:!0},l().createElement(a.Form,{form:r,layout:"vertical"},l().createElement(a.Form.Item,{name:"enabled",valuePropName:"checked",label:t("Enabled")},l().createElement(a.Switch,null)),l().createElement(a.Form.Item,{name:"skillId",label:t("Skill"),rules:[{required:!0}]},l().createElement(a.Select,{showSearch:!0,optionFilterProp:"label",placeholder:t("Select a skill"),options:m.map(function(e){return{value:e.id,label:"".concat(e.title||e.name," (").concat(e.name,")")}})})),l().createElement(a.Form.Item,{name:"title",label:t("Title")},l().createElement(a.Input,{placeholder:t("Optional display title")})),l().createElement(a.Form.Item,{name:"templateKey",label:t("Review Template"),rules:[{required:!0}]},l().createElement(a.Select,{onChange:function(e){var t=f(e);r.setFieldsValue({prompt:t.schema.prompt,schema:(0,c.Bz)(t.schema)})}},s.map(function(e){return l().createElement(a.Select.Option,{key:e.key,value:e.key},e.title," - ",e.description)}))),l().createElement(a.Form.Item,{name:"prompt",label:t("Prompt"),rules:[{required:!0}]},l().createElement(g,{rows:3})),l().createElement(a.Form.Item,{name:"schema",label:t("Review Schema (JSON)"),rules:[{required:!0}],extra:t("Standard interaction schema. Supported types: confirm, form, select.")},l().createElement(g,{rows:10,style:{fontFamily:"monospace",fontSize:13}})),l().createElement(a.Form.Item,{name:"config",label:t("Review Config (optional JSON)")},l().createElement(g,{rows:4,style:{fontFamily:"monospace",fontSize:13},placeholder:'{\n "maxRetries": 1\n}'})))))},k=function(){return l().createElement("div",{style:{padding:"0 24px 24px"}},l().createElement(w,null))}},608:function(e,t,r){r.d(t,{R:function(){return c},b:function(){return s}});var n=r(485),l=r(155);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t,r,n,l,a,o){try{var i=e[a](o),u=i.value}catch(e){r(e);return}i.done?t(u):Promise.resolve(u).then(n,l)}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(e,t)}}(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){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function c(){return(0,n.useApp)().apiClient}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=c(),n=t.manual,a=void 0!==n&&n,s=t.refreshDeps,f=t.onSuccess,p=t.onError,m=i((0,l.useState)(void 0),2),d=m[0],y=m[1],b=i((0,l.useState)(!a),2),h=b[0],v=b[1],g=i((0,l.useState)(void 0),2),S=g[0],w=g[1],k=(0,l.useRef)(e);k.current=e;var O=(0,l.useRef)(f);O.current=f;var E=(0,l.useRef)(p);E.current=p;var j=(0,l.useCallback)(function(e){var t;return(t=function(){var t,n,l,a,o,i,c;return function(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&c[0]?n.return:c[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,c[1])).done)return l;switch(n=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,n=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){a.label=c[1];break}if(6===c[0]&&a.label<l[1]){a.label=l[1],l=c;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(c);break}l[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],n=0}finally{r=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(s){switch(s.label){case 0:t=k.current,v(!0),w(void 0),s.label=1;case 1:if(s.trys.push([1,6,7,8]),"function"!=typeof t)return[3,3];return[4,t()];case 2:return l=s.sent(),[3,5];case 3:return[4,r.request({url:t.url,method:t.method||"get",params:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t.params||{},e||{}),data:t.data})];case 4:l=(o=null==(a=s.sent())?void 0:a.data)&&(void 0===o?"undefined":u(o))==="object"&&o.data&&"object"===u(o.data)&&"data"in o.data?o.data:o,s.label=5;case 5:return y(l),null==(n=O.current)||n.call(O,l),[2,l];case 6:return w(i=s.sent()),null==(c=E.current)||c.call(E,i),[2,void 0];case 7:return v(!1),[7];case 8:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,l){var a=t.apply(e,r);function i(e){o(a,n,l,i,u,"next",e)}function u(e){o(a,n,l,i,u,"throw",e)}i(void 0)})})()},[r]),P=(0,l.useCallback)(function(){j()},[j]);return(0,l.useEffect)(function(){a||j()},void 0===s?[]:s),{data:d,loading:h,error:S,refresh:P,run:j}}},603:function(e,t,r){r.d(t,{k:function(){return a}});var n=r(485),l=r(155);function a(){var e=(0,n.useApp)();return(0,l.useCallback)(function(t,r){return e.i18n.t(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({ns:["plugin-agent-orchestrator","client"]},r))},[e.i18n])}},204:function(e,t,r){function n(e,t){if(null==e||""===e)return t;if("string"!=typeof e)return e;var r=e.trim(),n=r.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),l=n?n[1].trim():r;try{var a=JSON.parse(l);if("string"==typeof a){var o=a.trim(),i=o.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),u=i?i[1].trim():o;try{a=JSON.parse(u)}catch(e){}}return a}catch(e){return t}}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=n(e,void 0),l=void 0===r?null==e||""===e?t:e:r;return null==l?"":"string"==typeof l?l:JSON.stringify(l,null,2)}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=n(e,void 0),l=void 0===r?null==e||""===e?t:e:r;return"```json\n".concat(JSON.stringify(l,null,2),"\n```")}r.d(t,{Bz:function(){return l},Nx:function(){return a},lk:function(){return n}})}}]);