plugin-agent-orchestrator 1.0.22 → 1.0.23

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 (96) hide show
  1. package/client-v2.d.ts +2 -0
  2. package/client-v2.js +1 -0
  3. package/dist/client/index.js +1 -1
  4. package/dist/client-v2/214.723affb37c13bf7a.js +10 -0
  5. package/dist/client-v2/264.0533912e6c5ea2d7.js +10 -0
  6. package/dist/client-v2/41.1805b2edfaa4afe2.js +10 -0
  7. package/dist/client-v2/418.5ae055abf141820e.js +10 -0
  8. package/dist/client-v2/619.d99d3c9e61c99064.js +10 -0
  9. package/dist/client-v2/70.a15d7fcec7c41768.js +10 -0
  10. package/dist/client-v2/892.72db4161511c8a16.js +10 -0
  11. package/dist/client-v2/926.87f660b670d85bcc.js +10 -0
  12. package/dist/client-v2/index.js +10 -0
  13. package/dist/externalVersion.js +7 -6
  14. package/dist/locale/en-US.json +7 -0
  15. package/dist/locale/vi-VN.json +7 -0
  16. package/dist/locale/zh-CN.json +27 -0
  17. package/dist/server/migrations/20260615000000-normalize-ai-employee-tool-bindings.js +63 -0
  18. package/dist/server/plugin.js +32 -1
  19. package/dist/server/services/AgentHarness.js +52 -27
  20. package/dist/server/services/AgentLoopController.js +8 -2
  21. package/dist/server/services/AgentLoopService.js +1 -1
  22. package/dist/server/services/AgentRegistryService.js +53 -42
  23. package/dist/server/services/CircuitBreaker.js +7 -2
  24. package/dist/server/services/CodeValidator.js +48 -14
  25. package/dist/server/services/SandboxRunner.js +18 -14
  26. package/dist/server/skill-hub/plugin.js +44 -17
  27. package/dist/server/tools/delegate-task.js +7 -2
  28. package/dist/server/tools/skill-execute.js +33 -2
  29. package/dist/server/utils/ai-manager.js +51 -0
  30. package/dist/server/utils/ctx-utils.js +11 -0
  31. package/dist/server/utils/skill-settings.js +122 -0
  32. package/package.json +49 -45
  33. package/src/client/AIEmployeesContext.tsx +51 -14
  34. package/src/client/AgentRunsTab.tsx +767 -764
  35. package/src/client/HarnessProfilesTab.tsx +254 -247
  36. package/src/client/RulesTab.tsx +780 -716
  37. package/src/client/TracingTab.tsx +1 -0
  38. package/src/client/plugin.tsx +34 -27
  39. package/src/client/skill-hub/components/GitSkillImport.tsx +10 -3
  40. package/src/client/skill-hub/components/SkillMetrics.tsx +157 -124
  41. package/src/client/skill-hub/index.tsx +58 -51
  42. package/src/client/skill-hub/tools/InteractionSchemasProvider.tsx +132 -99
  43. package/src/client/skill-hub/tools/registerSkillLoopCards.ts +71 -58
  44. package/src/client/tools/registerOrchestratorCards.ts +17 -7
  45. package/src/client-v2/components/AIEmployeeSelect.tsx +47 -0
  46. package/src/client-v2/components/AIEmployeesContext.tsx +110 -0
  47. package/src/client-v2/components/AgentRunsTab.tsx +767 -0
  48. package/src/client-v2/components/HarnessProfilesTab.tsx +254 -0
  49. package/src/client-v2/components/RulesTab.tsx +782 -0
  50. package/src/client-v2/components/TracingTab.tsx +432 -0
  51. package/src/client-v2/hooks/useApiRequest.ts +114 -0
  52. package/src/client-v2/index.tsx +1 -0
  53. package/src/client-v2/pages/AgentRunsPage.tsx +13 -0
  54. package/src/client-v2/pages/ExecutionHistoryPage.tsx +10 -0
  55. package/src/client-v2/pages/HarnessProfilesPage.tsx +10 -0
  56. package/src/client-v2/pages/LoopSettingsPage.tsx +10 -0
  57. package/src/client-v2/pages/RulesPage.tsx +13 -0
  58. package/src/client-v2/pages/SkillDefinitionsPage.tsx +10 -0
  59. package/src/client-v2/pages/SkillMetricsPage.tsx +10 -0
  60. package/src/client-v2/pages/TracingPage.tsx +13 -0
  61. package/src/client-v2/plugin.tsx +70 -0
  62. package/src/client-v2/skill-hub/components/ExecutionHistory.tsx +196 -0
  63. package/src/client-v2/skill-hub/components/FileLinkList.tsx +37 -0
  64. package/src/client-v2/skill-hub/components/GitSkillImport.tsx +539 -0
  65. package/src/client-v2/skill-hub/components/LoopSettings.tsx +331 -0
  66. package/src/client-v2/skill-hub/components/SkillEditor.tsx +453 -0
  67. package/src/client-v2/skill-hub/components/SkillManager.tsx +174 -0
  68. package/src/client-v2/skill-hub/components/SkillMetrics.tsx +157 -0
  69. package/src/client-v2/skill-hub/components/SkillTestPanel.tsx +135 -0
  70. package/src/client-v2/skill-hub/locale.ts +13 -0
  71. package/src/client-v2/skill-hub/tools/loopTemplates.ts +52 -0
  72. package/src/client-v2/skill-hub/utils/jsonFields.ts +41 -0
  73. package/src/client-v2/utils/jsonFields.ts +41 -0
  74. package/src/locale/en-US.json +7 -0
  75. package/src/locale/vi-VN.json +7 -0
  76. package/src/locale/zh-CN.json +27 -0
  77. package/src/server/__tests__/agent-registry-service.test.ts +147 -0
  78. package/src/server/__tests__/code-validator.test.ts +63 -0
  79. package/src/server/__tests__/skill-execute.test.ts +33 -0
  80. package/src/server/__tests__/skill-settings.test.ts +63 -0
  81. package/src/server/migrations/20260615000000-normalize-ai-employee-tool-bindings.ts +39 -0
  82. package/src/server/plugin.ts +62 -21
  83. package/src/server/services/AgentHarness.ts +49 -22
  84. package/src/server/services/AgentLoopController.ts +17 -6
  85. package/src/server/services/AgentLoopService.ts +1 -1
  86. package/src/server/services/AgentPlannerService.ts +10 -0
  87. package/src/server/services/AgentRegistryService.ts +89 -47
  88. package/src/server/services/CircuitBreaker.ts +10 -0
  89. package/src/server/services/CodeValidator.ts +237 -159
  90. package/src/server/services/SandboxRunner.ts +203 -189
  91. package/src/server/skill-hub/plugin.ts +933 -898
  92. package/src/server/tools/delegate-task.ts +12 -9
  93. package/src/server/tools/skill-execute.ts +194 -160
  94. package/src/server/utils/ai-manager.ts +24 -0
  95. package/src/server/utils/ctx-utils.ts +14 -0
  96. package/src/server/utils/skill-settings.ts +116 -0
@@ -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([["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])}}}]);
@@ -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),l=r(59),o=r(375),u=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,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 p(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){d(l,n,a,o,u,"next",e)}function u(e){d(l,n,a,o,u,"throw",e)}o(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 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 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,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}}}}var v={pending:"default",running:"processing",succeeded:"success",failed:"error",canceled:"warning",timeout:"error"},m=function(){var e=(0,u.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),k=w[0],S=w[1],x=y((0,n.useState)(0),2),E=x[0],O=x[1],A=(0,n.useCallback)(function(){return p(function(){var t,r,n,a,l,o;return h(this,function(u){switch(u.label){case 0:g(!0),u.label=1;case 1:return u.trys.push([1,3,4,5]),[4,e.request({url:"skillExecutions:list",params:{page:k,pageSize:20,sort:["-createdAt"],appends:["skill","triggeredBy"]}})];case 2:return d(Array.isArray(o=null!=(t=null!=(r=null==(l=u.sent().data)||null==(n=l.data)?void 0:n.data)?r:null==l?void 0:l.data)?t:[])?o:[]),O((null==l||null==(a=l.meta)?void 0:a.count)||0),[3,5];case 3:return u.sent(),[3,5];case 4:return g(!1),[7];case 5:return[2]}})})()},[e,k]);(0,n.useEffect)(function(){A()},[A]);var j=[{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(l.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(l.Space,{direction:"vertical",size:0},t.stdout&&a().createElement(l.Tooltip,{title:t.stdout},a().createElement(l.Typography.Text,{style:{fontSize:12,maxWidth:200},ellipsis:!0},t.stdout)),t.stderr&&a().createElement(l.Tooltip,{title:t.stderr},a().createElement(l.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(l.Space,{size:"middle"},a().createElement(l.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,o,u,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(),l.message.success(t("Deleted successfully")),A(),[3,3];case 2:return n=c.sent(),l.message.error((null==n||null==(i=n.response)||null==(u=i.data)||null==(o=u.errors)||null==(a=o[0])?void 0:a.message)||t("Delete failed")),[3,3];case 3:return[2]}})})()},okText:t("Yes"),cancelText:t("No")},a().createElement(l.Button,{type:"text",danger:!0,icon:a().createElement(o.DeleteOutlined,null),size:"small"})))}}];return a().createElement(l.Card,{title:t("Execution History"),extra:a().createElement(l.Space,null,a().createElement(l.Button,{icon:a().createElement(o.ReloadOutlined,null),onClick:A,loading:b},t("Refresh")))},a().createElement(l.Table,{dataSource:f,columns:j,rowKey:"id",loading:b,size:"middle",pagination:{current:k,pageSize:20,total:E,onChange:S,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 u}});var n=r(155),a=r.n(n),l=r(59),o=r(375),u=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 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(o.PaperClipOutlined,null)," ",n):a().createElement(l.Typography.Text,{key:"".concat(n,"-").concat(t)},a().createElement(o.PaperClipOutlined,null)," ",n)})):a().createElement(l.Typography.Text,{type:"secondary"},"-")}},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],h=u((0,a.useState)(!l),2),v=h[0],m=h[1],b=u((0,a.useState)(void 0),2),g=b[0],w=b[1],k=(0,a.useRef)(e);k.current=e;var S=(0,a.useRef)(s);S.current=s;var x=(0,a.useRef)(f);x.current=f;var E=(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=k.current,m(!0),w(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 w(o=i.sent()),null==(u=x.current)||u.call(x,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]),O=(0,a.useCallback)(function(){E()},[E]);return(0,a.useEffect)(function(){l||E()},void 0===c?[]:c),{data:p,loading:v,error:g,refresh:O,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])}},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 l=JSON.parse(a);if("string"==typeof l){var o=l.trim(),u=o.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),i=u?u[1].trim():o;try{l=JSON.parse(i)}catch(e){}}return l}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 l(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 l},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([["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}})}}]);
@@ -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 b}});var n=r(155),a=r.n(n),l=r(59),o=r(375),u=r(608);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function c(e,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 s(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){c(l,n,a,o,u,"next",e)}function u(e){c(l,n,a,o,u,"throw",e)}o(void 0)})}}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 i(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 i(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(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}}}}var d=l.Typography.Text,m=function(e){var t=String(e||"").trim();return t?JSON.parse(t):{}},y=function(){var e=(0,u.R)(),t=f(a().useState(!1),2),r=t[0],n=t[1],i=f(a().useState(null),2),c=i[0],y=i[1],b=f(l.Form.useForm(),1)[0],g=(0,u.b)({url:"agentHarnessProfiles:list",params:{sort:["tag"],pageSize:100}}),h=g.data,v=g.loading,w=g.refresh,S=a().useMemo(function(){var e=null==h?void 0:h.data;return Array.isArray(e)?e:[]},[h]),O=function(e){var t,r;y(e||null),b.resetFields(),b.setFieldsValue(e?(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={settingsText:JSON.stringify(e.settings||{},null,2)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t):{tag:"",title:"",description:"",enabled:!0,settingsText:JSON.stringify({requirePlanApproval:!0,allowSubAgents:!0,allowToolCalls:!0,maxParallelSubAgents:3,maxControllerSteps:100},null,2)}),n(!0)},E=function(){n(!1),y(null)},k=[{title:"Tag",dataIndex:"tag",key:"tag",width:140,render:function(e){return a().createElement(l.Tag,{color:"blue"},e)}},{title:"Title",dataIndex:"title",key:"title",render:function(e,t){return e||t.tag}},{title:"Enabled",dataIndex:"enabled",key:"enabled",width:90,render:function(t,r){return a().createElement(l.Switch,{size:"small",checked:!1!==t,onChange:function(t){return s(function(){return p(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(),w(),[2]}})})()}})}},{title:"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=f(e,2),r=t[0],n=t[1];return a().createElement(l.Tag,{key:r},r,": ",String(n))}))}},{title:"Actions",key:"actions",width:150,render:function(t,r){return a().createElement(l.Space,null,a().createElement(l.Button,{type:"link",size:"small",icon:a().createElement(o.EditOutlined,null),onClick:function(){return O(r)}},"Edit"),a().createElement(l.Popconfirm,{title:"Delete this profile?",onConfirm:function(){var t;return t=r.id,s(function(){var r;return p(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.request({url:"agentHarnessProfiles:destroy",method:"delete",params:{filterByTk:t}})];case 1:return n.sent(),l.message.success("Harness profile deleted"),w(),[3,3];case 2:return r=n.sent(),l.message.error("Delete failed: ".concat((null==r?void 0:r.message)||"unknown error")),[3,3];case 3:return[2]}})})()}},a().createElement(l.Button,{type:"link",size:"small",danger:!0,icon:a().createElement(o.DeleteOutlined,null)},"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(d,{type:"secondary"},"Harness profiles are selected by orchestration rules through the harnessTag field."),a().createElement(l.Button,{type:"primary",icon:a().createElement(o.PlusOutlined,null),onClick:function(){return O()}},"New Profile")),a().createElement(l.Table,{rowKey:"id",loading:v,dataSource:S,columns:k,pagination:!1,scroll:{x:"max-content"}}))),a().createElement(l.Drawer,{title:c?"Edit Harness Profile":"New Harness Profile",width:560,open:r,onClose:E,extra:a().createElement(l.Space,null,a().createElement(l.Button,{onClick:E},"Cancel"),a().createElement(l.Button,{type:"primary",onClick:function(){return b.submit()}},"Save"))},a().createElement(l.Form,{form:b,layout:"vertical",onFinish:function(t){return s(function(){var r,n,a,o,u,i,s,f;return p(this,function(p){switch(p.label){case 0:try{r=m(t.settingsText)}catch(e){return l.message.error("Settings JSON is invalid: ".concat((null==e?void 0:e.message)||e)),[2]}n={tag:String(t.tag||"").trim(),title:t.title,description:t.description,enabled:!1!==t.enabled,settings:r},p.label=1;case 1:if(p.trys.push([1,6,,7]),!c)return[3,3];return[4,e.request({url:"agentHarnessProfiles:update",method:"put",params:{filterByTk:c.id},data:n})];case 2:return p.sent(),l.message.success("Harness profile updated"),[3,5];case 3:return[4,e.request({url:"agentHarnessProfiles:create",method:"post",data:n})];case 4:p.sent(),l.message.success("Harness profile created"),p.label=5;case 5:return E(),w(),[3,7];case 6:return f=(null==(a=p.sent())||null==(s=a.response)||null==(i=s.data)||null==(u=i.errors)||null==(o=u[0])?void 0:o.message)||(null==a?void 0:a.message)||"unknown error",l.message.error("Save failed: ".concat(f)),[3,7];case 7:return[2]}})})()}},a().createElement(l.Form.Item,{name:"tag",label:"Tag",rules:[{required:!0,message:"Tag is required"}]},a().createElement(l.Input,{placeholder:"default",disabled:(null==c?void 0:c.tag)==="default"})),a().createElement(l.Form.Item,{name:"title",label:"Title"},a().createElement(l.Input,null)),a().createElement(l.Form.Item,{name:"description",label:"Description"},a().createElement(l.Input.TextArea,{rows:3})),a().createElement(l.Form.Item,{name:"settingsText",label:"Settings JSON",rules:[{required:!0,message:"Settings JSON is required"}]},a().createElement(l.Input.TextArea,{rows:12,spellCheck:!1})),a().createElement(l.Form.Item,{name:"enabled",label:"Enabled",valuePropName:"checked"},a().createElement(l.Switch,null)))))},b=function(){return a().createElement("div",{style:{padding:"0 24px 24px"}},a().createElement(y,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,p=u((0,a.useState)(void 0),2),d=p[0],m=p[1],y=u((0,a.useState)(!l),2),b=y[0],g=y[1],h=u((0,a.useState)(void 0),2),v=h[0],w=h[1],S=(0,a.useRef)(e);S.current=e;var O=(0,a.useRef)(s);O.current=s;var E=(0,a.useRef)(f);E.current=f;var k=(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=S.current,g(!0),w(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 m(a),null==(n=O.current)||n.call(O,a),[2,a];case 6:return w(o=i.sent()),null==(u=E.current)||u.call(E,o),[2,void 0];case 7:return g(!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]),P=(0,a.useCallback)(function(){k()},[k]);return(0,a.useEffect)(function(){l||k()},void 0===c?[]:c),{data:d,loading:b,error:v,refresh:P,run:k}}}}]);
@@ -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(["orchestrator_plan_goal","orchestrator_execute_plan","orchestrator_status","orchestrator_cancel","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("delegate_")||e.startsWith("dispatch_subagents_")||e.startsWith("skill_hub_")||e.startsWith("browser_")||e.startsWith("drawio-")?e:null;return null==e?void 0:e.name}).filter(function(e){return"string"==typeof e&&e.length>0}):[],Array.from(new Set(i(r).concat(i(n)))));return{username:e.username,nickname:e.nickname||e.username,about:null==(a=e.about)?void 0:a.substring(0,80),tools:l}}),t=new Map,r=new Map,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),h=g[0],b=g[1],v=m((0,n.useState)(1),2),E=v[0],w=v[1],S=m((0,n.useState)(20),2),A=S[0],k=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:A,filter:e}},[E,A,C]),_=(0,u.b)({url:"orchestratorTracing:list",params:D},{refreshDeps:[D]}),z=_.data,M=_.loading,P=_.refresh,U=(0,n.useMemo)(function(){var e=null==z?void 0:z.data;return Array.isArray(e)?e:[]},[z]),N=(0,n.useMemo)(function(){var e,t=null==z||null==(e=z.meta)?void 0:e.count;return"number"==typeof t?t:0},[z]),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;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:y(e),b(!0),a.label=1;case 1:return a.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==(n=a.sent())||null==(r=n.data)?void 0:r.data)||(null==n?void 0:n.data)||e),[3,4];case 3:return b(!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:P},"Refresh")))),a().createElement(o.Table,{rowKey:"id",loading:M,dataSource:U,columns:$,size:"middle",scroll:{x:"max-content"},pagination:{current:E,pageSize:A,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!==A&&k(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:h},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 u},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 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(){return(0,n.useApp)().apiClient}function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u(),n=t.manual,l=void 0!==n&&n,c=t.refreshDeps,s=t.onSuccess,m=t.onError,f=i((0,a.useState)(void 0),2),p=f[0],d=f[1],y=i((0,a.useState)(!l),2),g=y[0],h=y[1],b=i((0,a.useState)(void 0),2),v=b[0],E=b[1],w=(0,a.useRef)(e);w.current=e;var S=(0,a.useRef)(s);S.current=s;var A=(0,a.useRef)(m);A.current=m;var k=(0,a.useCallback)(function(e){var t;return(t=function(){var t,n,a,l,o,i;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(u){switch(u.label){case 0:t=w.current,h(!0),E(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,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=u.sent())?void 0:l.data,u.label=5;case 5:return d(a),null==(n=S.current)||n.call(S,a),[2,a];case 6:return E(o=u.sent()),null==(i=A.current)||i.call(A,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,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]),x=(0,a.useCallback)(function(){k()},[k]);return(0,a.useEffect)(function(){l||k()},void 0===c?[]:c),{data:p,loading:g,error:v,refresh:x,run:k}}}}]);
@@ -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([["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}})}}]);
@@ -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([["892"],{532:function(e,t,r){r.d(t,{j:function(){return m},l:function(){return c}});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(){}}),s=new Set(["orchestrator_plan_goal","orchestrator_execute_plan","orchestrator_status","orchestrator_cancel","external_rag_search","skill_hub_execute"]),c=function(e){var t=e.children,r=(0,l.b)({url:"aiEmployees:list",params:{pageSize:200}}),n=r.data,o=r.loading,c=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 s.has(e)||e.startsWith("delegate_")||e.startsWith("dispatch_subagents_")||e.startsWith("skill_hub_")||e.startsWith("browser_")||e.startsWith("drawio-")?e:null;return null==e?void 0:e.name}).filter(function(e){return"string"==typeof e&&e.length>0}):[],Array.from(new Set(i(r).concat(i(n)))));return{username:e.username,nickname:e.nickname||e.username,about:null==(a=e.about)?void 0:a.substring(0,80),tools:l}}),t=new Map,r=new Map,a=!0,l=!1,u=void 0;try{for(var m,d=e[Symbol.iterator]();!(a=(m=d.next()).done);a=!0){var f=m.value;t.set(f.username,f.nickname),r.set(f.username,new Set(f.tools))}}catch(e){l=!0,u=e}finally{try{a||null==d.return||d.return()}finally{if(l)throw u}}return{employees:e,employeeMap:t,toolNamesMap:r,loading:o,refresh:c}},[n,o,c]);return a().createElement(u.Provider,{value:m},t)},m=function(){return(0,n.useContext)(u)}},447:function(e,t,r){r.r(t),r.d(t,{default:function(){return I}});var n=r(155),a=r.n(n),l=r(532),o=r(59),i=r(375),u=r(608),s=function(e){var t=e.value,r=e.onChange,n=e.exclude,i=e.placeholder,u=(0,l.j)(),s=u.employees,c=u.loading,m=a().useMemo(function(){return s.filter(function(e){return!n||e.username!==n}).map(function(e){return{label:e.nickname,value:e.username,description:e.about}})},[s,n]);return a().createElement(o.Select,{loading:c,options:m,value:t,onChange:r,placeholder:void 0===i?"Select AI Employee...":i,showSearch:!0,filterOption:function(e,t){var r,n;return(null!=(r=null==t?void 0:t.label)?r:"").toString().toLowerCase().includes(e.toLowerCase())||(null!=(n=null==t?void 0:t.value)?n:"").toString().toLowerCase().includes(e.toLowerCase())},optionRender:function(e){return a().createElement("div",null,a().createElement("div",{style:{fontWeight:500}},e.label),e.data.description&&a().createElement("div",{style:{fontSize:12,color:"#888"}},e.data.description))}})};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 m(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 d(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var l=e.apply(t,r);function o(e){m(l,n,a,o,i,"next",e)}function i(e){m(l,n,a,o,i,"throw",e)}o(void 0)})}}function f(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 p(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 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 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)||g(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){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||g(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(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)}}function b(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 s=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&s[0]?n.return:s[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,s[1])).done)return a;switch(n=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return l.label++,{value:s[1],done:!1};case 5:l.label++,n=s[1],s=[0];continue;case 7:s=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===s[0]||2===s[0])){l=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]<a[3])){l.label=s[1];break}if(6===s[0]&&l.label<a[1]){l.label=a[1],a=s;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(s);break}a[2]&&l.ops.pop(),l.trys.pop();continue}s=t.call(e,l)}catch(e){s=[6,e],n=0}finally{r=a=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}var v=o.Typography.Text,E=function(e){return(e||"").replace(/[^a-zA-Z0-9_-]/g,"_")},w=function(e,t){return"delegate_".concat(E(e),"_to_").concat(E(t))},S=function(e){return"dispatch_subagents_".concat(E(e))},A=["orchestrator_plan_goal","orchestrator_execute_plan","orchestrator_status","orchestrator_cancel"],k=new Set(h(A).concat(["external_rag_search","skill_hub_execute"])),O=function(e){var t="string"==typeof e?e:null==e?void 0:e.name;return"string"==typeof t&&t.trim()?{name:t.trim(),autoCall:(null==e?void 0:e.autoCall)===!0}:null},x=function(e){var t=e&&(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"?e:{},r=new Map,n=function(e){!e||r.has(e.name)||r.set(e.name,e)};if(Array.isArray(t.tools)){var a=!0,l=!1,o=void 0;try{for(var i,u=t.tools[Symbol.iterator]();!(a=(i=u.next()).done);a=!0){var s=i.value;n(O(s))}}catch(e){l=!0,o=e}finally{try{a||null==u.return||u.return()}finally{if(l)throw o}}}var c=[];if(Array.isArray(t.skills)){var m=!0,d=!1,y=void 0;try{for(var h,g=t.skills[Symbol.iterator]();!(m=(h=g.next()).done);m=!0){var b=h.value;if("string"==typeof b){var v=b.trim();if(!v)continue;k.has(v)||v.startsWith("delegate_")||v.startsWith("dispatch_subagents_")||v.startsWith("skill_hub_")||v.startsWith("browser_")||v.startsWith("drawio-")?n({name:v,autoCall:!1}):c.push(v);continue}n(O(b))}}catch(e){d=!0,y=e}finally{try{m||null==g.return||g.return()}finally{if(d)throw y}}}return p(f({},t),{skills:c,tools:Array.from(r.values())})},_=function(){var e=(0,u.R)(),t=y((0,n.useState)(!1),2),r=t[0],c=t[1],m=y((0,n.useState)(null),2),g=m[0],E=m[1],k=y(o.Form.useForm(),1)[0],O=(0,u.b)({url:"orchestratorConfig:list",params:{sort:["-createdAt"]}}),_=O.data,I=O.loading,T=O.refresh,C=(0,u.b)({url:"ai:listAllEnabledModels"}),U=C.data,j=C.loading,M=(0,u.b)({url:"agentHarnessProfiles:list",params:{filter:{enabled:!0},sort:["tag"],pageSize:100}}),L=M.data,P=M.loading,z=a().useMemo(function(){var e,t=null!=(e=null==U?void 0:U.data)?e:U;return Array.isArray(t)?t:Array.isArray(null==t?void 0:t.data)?t.data:[]},[U]),B=a().useMemo(function(){var e,t=null!=(e=null==L?void 0:L.data)?e:L;return Array.isArray(t)?t:Array.isArray(null==t?void 0:t.data)?t.data:[]},[L]),F=(0,l.j)(),D=F.employeeMap,N=F.toolNamesMap,R=F.refresh,W=a().useMemo(function(){var e=null==_?void 0:_.data;return Array.isArray(e)?e:[]},[_]),q=function(t,r){return d(function(){var n,a,l,i,u,s,c,m,d;return b(this,function(y){switch(y.label){case 0:return y.trys.push([0,6,,7]),[4,e.request({url:"aiEmployees:get",params:{filterByTk:t}})];case 1:if(!(l=null==(a=y.sent())||null==(n=a.data)?void 0:n.data))return o.message.error("Could not load AI employee."),[2];if(u=new Set((i=x(l.skillSettings)).tools.map(function(e){return e.name})),s=r.filter(function(e){return!u.has(e)}),c=JSON.stringify(i)!==JSON.stringify(l.skillSettings||{}),!(!s.length&&!c))return[3,3];return o.message.info("Tools already present."),[4,R()];case 2:return y.sent(),[2];case 3:return m=h(i.tools).concat(h(s.map(function(e){return{name:e,autoCall:!1}}))),[4,e.request({url:"aiEmployees:update",method:"put",params:{filterByTk:t},data:{skillSettings:p(f({},i),{tools:m})}})];case 4:return y.sent(),o.message.success(s.length?"Added ".concat(s.length," tool").concat(s.length>1?"s":""," to ").concat(t,"."):"Normalized tool bindings for ".concat(t,".")),[4,R()];case 5:return y.sent(),[3,7];case 6:return d=y.sent(),o.message.error("Auto-assign failed: ".concat((null==d?void 0:d.message)||"unknown error")),[3,7];case 7:return[2]}})})()},H=function(e,t){return d(function(){return b(this,function(r){switch(r.label){case 0:return[4,q(e,[t])];case 1:return r.sent(),[2]}})})()},V=a().useMemo(function(){var e=new Map,t=!0,r=!1,n=void 0;try{for(var a,l=W[Symbol.iterator]();!(t=(a=l.next()).done);t=!0){var o=a.value,i=e.get(o.subAgentUsername)||new Set;i.add(o.leaderUsername),e.set(o.subAgentUsername,i)}}catch(e){r=!0,n=e}finally{try{t||null==l.return||l.return()}finally{if(r)throw n}}return e},[W]),G=a().useMemo(function(){return Array.from(V.entries()).filter(function(e){return y(e,2)[1].size>1}).map(function(e){var t=y(e,2);return{sub:t[0],leaders:Array.from(t[1])}})},[V]),K=a().useMemo(function(){var e=new Map,t=!0,r=!1,n=void 0;try{for(var a,l=W[Symbol.iterator]();!(t=(a=l.next()).done);t=!0){var o=a.value,i=o.leaderUsername||"unknown",u=e.get(i);u||(u=[],e.set(i,u)),u.push(o)}}catch(e){r=!0,n=e}finally{try{t||null==l.return||l.return()}finally{if(r)throw n}}return Array.from(e.entries()).map(function(e){var t=y(e,2);return{leaderUsername:t[0],items:t[1]}})},[W]),$=function(e){E(e),e?k.setFieldsValue(e):(k.resetFields(),k.setFieldsValue({enabled:!0,maxDepth:1,timeout:12e4,recursionLimit:50,harnessTag:"default"})),c(!0)},J=function(){c(!1),E(null)},Z=[{title:"Leader (Orchestrator)",dataIndex:"leaderUsername",key:"leaderUsername",render:function(e){return a().createElement(o.Tag,{color:"blue"},D.get(e)||e)}},{title:"",key:"arrow",width:50,render:function(){return a().createElement(i.SwapRightOutlined,{style:{color:"#999",fontSize:18}})}},{title:"Sub-Agent",dataIndex:"subAgentUsername",key:"subAgentUsername",render:function(e){return a().createElement(o.Tag,{color:"green"},D.get(e)||e)}},{title:"Harness",dataIndex:"harnessTag",key:"harnessTag",width:120,render:function(e){return a().createElement(o.Tag,{color:"purple"},e||"default")}},{title:"Max Depth",dataIndex:"maxDepth",key:"maxDepth",width:100,render:function(e){return null!=e?e:1}},{title:"Timeout",dataIndex:"timeout",key:"timeout",width:100,render:function(e){return"".concat(((null!=e?e:12e4)/1e3).toFixed(0),"s")}},{title:"LLM Override",key:"llmOverride",width:140,render:function(e,t){if(t.llmService&&t.model){var r=z.find(function(e){return e.llmService===t.llmService}),n=r?r.llmServiceTitle:t.llmService;return a().createElement(o.Space,{direction:"vertical",size:0},a().createElement(v,{style:{fontSize:12}},n),a().createElement(v,{type:"secondary",style:{fontSize:12}},t.model))}return a().createElement(v,{type:"secondary",style:{fontSize:12}},"Inherited")}},{title:"Enabled",dataIndex:"enabled",key:"enabled",width:80,render:function(t,r){return a().createElement(o.Switch,{checked:t,size:"small",onChange:function(t){return d(function(){return b(this,function(n){switch(n.label){case 0:return[4,e.request({url:"orchestratorConfig:update",method:"put",params:{filterByTk:r.id},data:{enabled:t}})];case 1:return n.sent(),T(),[2]}})})()}})}},{title:"Tool",key:"tool",width:150,render:function(e,t){var r=w(t.leaderUsername,t.subAgentUsername),n=N.get(t.leaderUsername);return n?n.has(r)?a().createElement(o.Tag,{color:"success"},"Assigned"):a().createElement(o.Space,{size:4},a().createElement(o.Tag,{icon:a().createElement(i.WarningOutlined,null),color:"warning"},"Missing"),a().createElement(o.Button,{type:"link",size:"small",icon:a().createElement(i.ThunderboltOutlined,null),onClick:function(){return d(function(){return b(this,function(e){switch(e.label){case 0:return[4,H(t.leaderUsername,w(t.leaderUsername,t.subAgentUsername))];case 1:return e.sent(),[2]}})})()}},"Auto-add")):a().createElement(v,{type:"secondary",style:{fontSize:12}},"—")}},{title:"Actions",key:"actions",width:160,render:function(t,r){return a().createElement(o.Space,null,a().createElement(o.Button,{type:"link",size:"small",icon:a().createElement(i.EditOutlined,null),onClick:function(){return $(r)}},"Edit"),a().createElement(o.Popconfirm,{title:"Delete this rule?",onConfirm:function(){var t;return t=r.id,d(function(){var r;return b(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.request({url:"orchestratorConfig:destroy",method:"delete",params:{filterByTk:t}})];case 1:return n.sent(),o.message.success("Rule deleted"),T(),[3,3];case 2:return r=n.sent(),o.message.error("Delete failed: ".concat(r.message)),[3,3];case 3:return[2]}})})()}},a().createElement(o.Button,{type:"link",size:"small",danger:!0,icon:a().createElement(i.DeleteOutlined,null)},"Delete")))}}],Q=o.Form.useWatch("leaderUsername",k),X=a().useMemo(function(){return W.reduce(function(e,t){var r=N.get(t.leaderUsername);if(!r)return e;var n=w(t.leaderUsername,t.subAgentUsername);return r.has(n)?e:e+1},0)},[W,N]),Y=a().useMemo(function(){return K.map(function(e){var t=N.get(e.leaderUsername);if(!t)return null;var r=S(e.leaderUsername);return t.has(r)?null:{leaderUsername:e.leaderUsername,toolName:r,count:e.items.length}}).filter(Boolean)},[K,N]),ee=a().useMemo(function(){return K.map(function(e){var t=N.get(e.leaderUsername);if(!t)return null;var r=A.filter(function(e){return!t.has(e)});return r.length?{leaderUsername:e.leaderUsername,missing:r}:null}).filter(Boolean)},[K,N]);return a().createElement("div",null,a().createElement(o.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Orchestration Rules",description:a().createElement(v,{type:"secondary"},"Configure which AI Employees can act as Leaders (Orchestrators) and which ones they can delegate tasks to. Each rule creates a callable tool for the Leader to invoke the Sub-Agent.")}),X>0&&a().createElement(o.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(X," rule").concat(X>1?"s":""," missing required tool assignment"),description:a().createElement(v,{type:"secondary"},"The Leader employee hasn't added the corresponding"," ",a().createElement(v,{code:!0},"delegate_<leader>_to_<sub>")," tool to its skillSettings.tools, so the LLM cannot actually call these sub-agents. Use the ",a().createElement("b",null,"Auto-add")," button in the Tool column to fix.")}),ee.length>0&&a().createElement(o.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(ee.length," leader").concat(ee.length>1?"s":""," missing orchestrator controller tools"),description:a().createElement(o.Space,{direction:"vertical",size:6},a().createElement(v,{type:"secondary"},"Leaders need the orchestrator controller tools to create an approval-first plan and execute it after the user accepts the card."),ee.map(function(e){var t=e.leaderUsername,r=e.missing;return a().createElement(o.Space,{key:t,size:8,wrap:!0},a().createElement(o.Tag,{color:"blue"},D.get(t)||t),a().createElement(v,{type:"secondary"},r.length," missing"),a().createElement(o.Button,{type:"link",size:"small",icon:a().createElement(i.ThunderboltOutlined,null),onClick:function(){return q(t,r)}},"Auto-add"))}))}),Y.length>0&&a().createElement(o.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"".concat(Y.length," leader").concat(Y.length>1?"s":""," missing dispatch tool assignment"),description:a().createElement(o.Space,{direction:"vertical",size:6},a().createElement(v,{type:"secondary"},"The fan-out tool lets a Leader dispatch multiple independent sub-tasks in one call. Add it to the Leader's tools to enable the new multi-agent flow."),Y.map(function(e){var t=e.leaderUsername,r=e.toolName,n=e.count;return a().createElement(o.Space,{key:t,size:8,wrap:!0},a().createElement(o.Tag,{color:"blue"},D.get(t)||t),a().createElement(v,{type:"secondary"},n," sub-agent",n>1?"s":""),a().createElement(v,{code:!0},r),a().createElement(o.Button,{type:"link",size:"small",icon:a().createElement(i.ThunderboltOutlined,null),onClick:function(){return d(function(){return b(this,function(e){switch(e.label){case 0:return[4,H(t,S(t))];case 1:return e.sent(),[2]}})})()}},"Auto-add"))}))}),G.length>0&&a().createElement(o.Alert,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"Legacy delegate_to_<sub> alias is no longer registered for these sub-agents",description:a().createElement(o.Space,{direction:"vertical",size:2},G.map(function(e){var t=e.sub,r=e.leaders;return a().createElement(v,{key:t,type:"secondary"},a().createElement(o.Tag,{color:"green"},D.get(t)||t),"has multiple leaders (",r.map(function(e){return D.get(e)||e}).join(", "),"). The legacy alias is dropped to avoid ambiguity — leaders must use ",a().createElement(v,{code:!0},"delegate_<leader>_to_<sub>")," ","in their tools.")}))}),a().createElement(o.Card,{bordered:!1},a().createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"flex-end"}},a().createElement(o.Button,{type:"primary",icon:a().createElement(i.PlusOutlined,null),onClick:function(){return $()}},"New Rule")),K.length?a().createElement(o.Collapse,{bordered:!1,defaultActiveKey:K.map(function(e){return e.leaderUsername}),items:K.map(function(e){return{key:e.leaderUsername,label:a().createElement(o.Space,null,a().createElement(o.Tag,{color:"blue"},D.get(e.leaderUsername)||e.leaderUsername),a().createElement(v,{type:"secondary"},e.items.length," sub-agent",e.items.length>1?"s":""),Y.some(function(t){return t.leaderUsername===e.leaderUsername})&&a().createElement(o.Tag,{color:"warning"},"Dispatch missing")),children:a().createElement(o.Table,{rowKey:"id",loading:I,dataSource:e.items,columns:Z,pagination:!1,size:"middle",scroll:{x:"max-content"}})}})}):a().createElement(o.Table,{rowKey:"id",loading:I,dataSource:[],columns:Z,pagination:!1,size:"middle",scroll:{x:"max-content"},locale:{emptyText:a().createElement(o.Empty,{description:"No orchestration rules yet"})}})),a().createElement(o.Drawer,{title:g?"Edit Orchestration Rule":"New Orchestration Rule",width:480,onClose:J,open:r,styles:{body:{paddingBottom:80}},extra:a().createElement(o.Space,null,a().createElement(o.Button,{onClick:J},"Cancel"),a().createElement(o.Button,{onClick:function(){return k.submit()},type:"primary"},"Save"))},a().createElement(o.Form,{form:k,layout:"vertical",onFinish:function(t){return d(function(){var r,n,a,l,i,u;return b(this,function(s){switch(s.label){case 0:if(t.leaderUsername===t.subAgentUsername)return o.message.error("Leader and Sub-Agent cannot be the same employee."),[2];s.label=1;case 1:if(s.trys.push([1,6,,7]),!g)return[3,3];return[4,e.request({url:"orchestratorConfig:update",method:"put",params:{filterByTk:g.id},data:t})];case 2:return s.sent(),o.message.success("Rule updated"),[3,5];case 3:return[4,e.request({url:"orchestratorConfig:create",method:"post",data:t})];case 4:s.sent(),o.message.success("Rule created"),s.label=5;case 5:return J(),T(),[3,7];case 6:return u=(null==(r=s.sent())||null==(i=r.response)||null==(l=i.data)||null==(a=l.errors)||null==(n=a[0])?void 0:n.message)||r.message,o.message.error("Save failed: ".concat(u)),[3,7];case 7:return[2]}})})()}},a().createElement(o.Form.Item,{name:"leaderUsername",label:"Leader (Orchestrator)",rules:[{required:!0,message:"Please select a Leader"}],tooltip:"The AI Employee that will be able to delegate tasks to the Sub-Agent"},a().createElement(s,{placeholder:"Select Leader AI Employee..."})),a().createElement(o.Form.Item,{name:"subAgentUsername",label:"Sub-Agent",rules:[{required:!0,message:"Please select a Sub-Agent"}],tooltip:"The AI Employee that will receive delegated tasks"},a().createElement(s,{placeholder:"Select Sub-Agent AI Employee...",exclude:Q})),a().createElement(o.Form.Item,{name:"maxDepth",label:"Max Delegation Depth",tooltip:"How many layers of delegation are allowed (1 = leader calls sub-agent, sub-agent cannot delegate further)"},a().createElement(o.InputNumber,{min:1,max:3,style:{width:"100%"}})),a().createElement(o.Form.Item,{name:"timeout",label:"Timeout (ms)",tooltip:"Maximum time in milliseconds for the sub-agent to complete its task"},a().createElement(o.InputNumber,{min:1e4,max:6e5,step:1e4,style:{width:"100%"}})),a().createElement(o.Form.Item,{name:"recursionLimit",label:"Recursion Limit",tooltip:"Max LangGraph reasoning steps per delegation. Higher = more complex multi-step tasks; lower = stricter cap on token usage. Default 50."},a().createElement(o.InputNumber,{min:5,max:200,step:5,style:{width:"100%"}})),a().createElement(o.Form.Item,{name:"harnessTag",label:"Harness Profile",tooltip:"Profile tag used by plan approval, controller limits, and orchestration policy."},a().createElement(o.Select,{loading:P,options:[{label:"default",value:"default"}].concat(h(B.filter(function(e){return"default"!==e.tag}).map(function(e){return{label:e.title?"".concat(e.tag," - ").concat(e.title):e.tag,value:e.tag}})))})),a().createElement(o.Form.Item,{name:"llmService",label:"Override LLM Service",tooltip:"Optional: Provider name. Leave empty to inherit from Leader."},a().createElement(o.Select,{allowClear:!0,placeholder:"Inherit from Leader",loading:j,options:z.map(function(e){return{label:e.llmServiceTitle||e.llmService,value:e.llmService}}),onChange:function(){return k.setFieldValue("model",void 0)}})),a().createElement(o.Form.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.llmService!==t.llmService}},function(){var e=k.getFieldValue("llmService"),t=z.find(function(t){return t.llmService===e}),r=Array.isArray(null==t?void 0:t.enabledModels)?t.enabledModels:[];return a().createElement(o.Form.Item,{name:"model",label:"Override Model",tooltip:"Optional: Model name. Leave empty to inherit from Leader.",rules:[{required:!!e,message:"Please select a model"}]},a().createElement(o.Select,{allowClear:!0,placeholder:e?"Select a model":"Inherit from Leader",disabled:!e,options:r.map(function(e){return{label:e.label,value:e.value}})}))}),a().createElement(o.Form.Item,{name:"enabled",label:"Enabled",valuePropName:"checked"},a().createElement(o.Switch,null)))))},I=function(){return a().createElement(l.l,null,a().createElement("div",{style:{padding:"0 24px 24px"}},a().createElement(_,null)))}},608:function(e,t,r){r.d(t,{R:function(){return u},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(){return(0,n.useApp)().apiClient}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u(),n=t.manual,l=void 0!==n&&n,s=t.refreshDeps,c=t.onSuccess,m=t.onError,d=i((0,a.useState)(void 0),2),f=d[0],p=d[1],y=i((0,a.useState)(!l),2),h=y[0],g=y[1],b=i((0,a.useState)(void 0),2),v=b[0],E=b[1],w=(0,a.useRef)(e);w.current=e;var S=(0,a.useRef)(c);S.current=c;var A=(0,a.useRef)(m);A.current=m;var k=(0,a.useCallback)(function(e){var t;return(t=function(){var t,n,a,l,o,i;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 s=[i,u];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&s[0]?n.return:s[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,s[1])).done)return a;switch(n=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return l.label++,{value:s[1],done:!1};case 5:l.label++,n=s[1],s=[0];continue;case 7:s=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===s[0]||2===s[0])){l=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]<a[3])){l.label=s[1];break}if(6===s[0]&&l.label<a[1]){l.label=a[1],a=s;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(s);break}a[2]&&l.ops.pop(),l.trys.pop();continue}s=t.call(e,l)}catch(e){s=[6,e],n=0}finally{r=a=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}(this,function(u){switch(u.label){case 0:t=w.current,g(!0),E(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,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=u.sent())?void 0:l.data,u.label=5;case 5:return p(a),null==(n=S.current)||n.call(S,a),[2,a];case 6:return E(o=u.sent()),null==(i=A.current)||i.call(A,o),[2,void 0];case 7:return g(!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]),O=(0,a.useCallback)(function(){k()},[k]);return(0,a.useEffect)(function(){l||k()},void 0===s?[]:s),{data:f,loading:h,error:v,refresh:O,run:k}}}}]);
@@ -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([["926"],{532:function(e,t,r){r.d(t,{j:function(){return d},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(["orchestrator_plan_goal","orchestrator_execute_plan","orchestrator_status","orchestrator_cancel","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,d=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("delegate_")||e.startsWith("dispatch_subagents_")||e.startsWith("skill_hub_")||e.startsWith("browser_")||e.startsWith("drawio-")?e:null;return null==e?void 0:e.name}).filter(function(e){return"string"==typeof e&&e.length>0}):[],Array.from(new Set(i(r).concat(i(n)))));return{username:e.username,nickname:e.nickname||e.username,about:null==(a=e.about)?void 0:a.substring(0,80),tools:l}}),t=new Map,r=new Map,a=!0,l=!1,u=void 0;try{for(var d,p=e[Symbol.iterator]();!(a=(d=p.next()).done);a=!0){var m=d.value;t.set(m.username,m.nickname),r.set(m.username,new Set(m.tools))}}catch(e){l=!0,u=e}finally{try{a||null==p.return||p.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:d},t)},d=function(){return(0,n.useContext)(u)}},925:function(e,t,r){r.r(t),r.d(t,{default:function(){return S}});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 d(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 m(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 f=o.Typography.Paragraph,y=o.Typography.Text,h=new Set(["succeeded","failed","rejected","canceled"]);function v(e){var t=e.status;return a().createElement(o.Tag,{icon:function(e){switch(e){case"succeeded":case"success":return a().createElement(i.CheckCircleOutlined,null);case"failed":case"error":return a().createElement(i.CloseCircleOutlined,null);case"waiting_user":case"waiting_plan_approval":case"needs_replan":return a().createElement(i.PauseCircleOutlined,null);case"approved":case"running":case"planning":return a().createElement(i.ClockCircleOutlined,null);default:return}}(t),color:function(e){switch(e){case"succeeded":case"success":return"success";case"failed":case"error":return"error";case"waiting_user":case"waiting_plan_approval":case"needs_replan":return"warning";case"approved":case"running":case"planning":return"processing";default:return"default"}}(t)},t||"-")}function g(e){return e?new Date(e).toLocaleString():"-"}function b(e,t){if(!e)return"-";var r=new Date(e).getTime(),n=Math.max(0,(t?new Date(t).getTime():Date.now())-r);return n>=6e4?"".concat(Math.round(n/6e4),"m"):n>=1e3?"".concat((n/1e3).toFixed(1),"s"):"".concat(n,"ms")}function E(e){var t=e.value,r=e.rows,n=function(e){if(null==e||""===e)return"";if("string"==typeof e)return e;try{return JSON.stringify(e,null,2)}catch(t){return String(e)}}(t);return n?a().createElement(f,{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:12},ellipsis:{rows:void 0===r?10:r,expandable:!0}},n):a().createElement(y,{type:"secondary"},"-")}var w=function(){var e,t=(0,u.R)(),r=(0,l.j)(),c=r.employees,s=r.employeeMap,w=p((0,n.useState)({}),2),S=w[0],k=w[1],A=p((0,n.useState)(1),2),x=A[0],I=A[1],C=p((0,n.useState)(20),2),O=C[0],_=C[1],j=p((0,n.useState)(null),2),T=j[0],D=j[1],z=p((0,n.useState)(null),2),P=z[0],R=z[1],M=p((0,n.useState)(!1),2),N=M[0],B=M[1],L=p((0,n.useState)(!1),2),F=L[0],U=L[1],W=(0,n.useMemo)(function(){var e={};return S.leader&&(e.leaderUsername=S.leader),S.status&&(e.status=S.status),{sort:["-createdAt"],page:x,pageSize:O,filter:e}},[S,x,O]),q=(0,u.b)({url:"agentLoops:list",params:W},{refreshDeps:[W]}),G=q.data,$=q.loading,K=q.refresh,H=(0,n.useMemo)(function(){var e=null==G?void 0:G.data;return Array.isArray(e)?e:[]},[G]),J=(0,n.useMemo)(function(){var e,t=null==G||null==(e=G.meta)?void 0:e.count;return"number"==typeof t?t:0},[G]),V=(0,n.useMemo)(function(){return c.map(function(e){return{label:e.nickname||e.username,value:e.username}})},[c]),Q=function(e,r){return d(function(){var n,a;return m(this,function(l){switch(l.label){case 0:D(r||T||{id:e}),B(!0),l.label=1;case 1:return l.trys.push([1,,3,4]),[4,t.request({url:"agentLoops:get",params:{filterByTk:e}})];case 2:return R((null==(a=l.sent())||null==(n=a.data)?void 0:n.data)||(null==a?void 0:a.data)||null),[3,4];case 3:return B(!1),[7];case 4:return[2]}})})()},X=function(e){k(function(t){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t,e)}),I(1)},Y=function(e,r){return d(function(){var n,a;return m(this,function(l){switch(l.label){case 0:U(!0),l.label=1;case 1:return l.trys.push([1,4,5,6]),[4,t.request({url:"cancel"===e?"agentLoops:cancel":"agentLoops:resume",method:"POST",data:"cancel"===e?{runId:r}:{runId:r,stepId:null==P||null==(n=P.run)?void 0:n.currentStepId,approved:!0}})];case 2:return l.sent(),o.message.success("cancel"===e?"Run canceled":"Run resumed"),K(),[4,Q(r)];case 3:return l.sent(),[3,6];case 4:return a=l.sent(),o.message.error((null==a?void 0:a.message)||"Failed to ".concat(e," run")),[3,6];case 5:return U(!1),[7];case 6:return[2]}})})()},Z=[{title:"Time",dataIndex:"createdAt",key:"createdAt",width:170,render:g},{title:"Leader",dataIndex:"leaderUsername",key:"leaderUsername",width:160,render:function(e){return a().createElement(o.Tag,{color:"blue"},s.get(e)||e||"-")}},{title:"Goal",dataIndex:"goal",key:"goal",render:function(e){return a().createElement(y,{ellipsis:!0,style:{maxWidth:380}},e||"-")}},{title:"Status",dataIndex:"status",key:"status",width:130,render:function(e){return a().createElement(v,{status:e})}},{title:"Iterations",dataIndex:"iterationCount",key:"iterationCount",width:90,render:function(e){return null!=e?e:0}},{title:"Duration",key:"duration",width:100,render:function(e,t){return b(t.startedAt||t.createdAt,t.endedAt)}},{title:"",key:"actions",width:90,render:function(e,t){return a().createElement(o.Button,{type:"link",size:"small",icon:a().createElement(i.EyeOutlined,null),onClick:function(){return Q(t.id,t)}},"Detail")}}],ee=Array.isArray(null==P?void 0:P.steps)?P.steps:[],et=Array.isArray(null==P?void 0:P.events)?P.events:[],er=Array.isArray(null==P?void 0:P.spans)?P.spans:[],en=Array.isArray(null==P?void 0:P.skillExecutions)?P.skillExecutions:[],ea=(null==P?void 0:P.run)||T,el=!!(S.leader||S.status),eo=[{title:"#",dataIndex:"index",key:"index",width:56,render:function(e){return Number(null!=e?e:0)+1}},{title:"Status",dataIndex:"status",key:"status",width:130,render:function(e){return a().createElement(v,{status:e})}},{title:"Type",dataIndex:"type",key:"type",width:110,render:function(e){return a().createElement(o.Tag,null,e)}},{title:"Step",key:"step",render:function(e,t){return a().createElement(o.Space,{direction:"vertical",size:2,style:{width:"100%"}},a().createElement(y,{strong:!0},t.title||t.planKey),t.description&&a().createElement(y,{type:"secondary"},t.description),t.target&&a().createElement(y,{code:!0},t.target))}},{title:"Depends",dataIndex:"dependsOn",key:"dependsOn",width:130,render:function(e){return Array.isArray(e)&&e.length?e.map(function(e){return a().createElement(o.Tag,{key:e},e)}):"-"}},{title:"Attempts",key:"attempts",width:90,render:function(e,t){return"".concat(t.attempt||0,"/").concat(t.maxAttempts||0)}},{title:"",key:"actions",width:90,render:function(e,r){return"failed"===r.status&&Number(r.attempt||0)<Number(r.maxAttempts||0)?a().createElement(o.Button,{type:"link",size:"small",icon:a().createElement(i.RedoOutlined,null),loading:F,onClick:function(){var e;return e=r.id,d(function(){var r,n,a;return m(this,function(l){switch(l.label){case 0:n=(null==P||null==(r=P.run)?void 0:r.id)||(null==T?void 0:T.id),U(!0),l.label=1;case 1:return l.trys.push([1,5,6,7]),[4,t.request({url:"agentLoops:retryStep",method:"POST",data:{stepId:e}})];case 2:if(l.sent(),o.message.success("Step queued for retry"),K(),!n)return[3,4];return[4,Q(n)];case 3:l.sent(),l.label=4;case 4:return[3,7];case 5:return a=l.sent(),o.message.error((null==a?void 0:a.message)||"Failed to retry step"),[3,7];case 6:return U(!1),[7];case 7:return[2]}})})()}},"Retry"):null}}];return a().createElement("div",null,a().createElement(o.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Agent Runs",description:a().createElement(y,{type:"secondary"},"Persistent loop runs created by the orchestrator tools. Each run stores the goal, plan, step state, approvals, and linked Skill Hub or sub-agent traces.")}),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,showSearch:!0,optionFilterProp:"label",placeholder:"Any leader",style:{minWidth:180},options:V,value:S.leader,onChange:function(e){return X({leader:e})}})),a().createElement(o.Form.Item,{label:"Status"},a().createElement(o.Select,{allowClear:!0,placeholder:"Any status",style:{minWidth:160},value:S.status,onChange:function(e){return X({status:e})},options:[{label:"Planning",value:"planning"},{label:"Waiting plan approval",value:"waiting_plan_approval"},{label:"Approved",value:"approved"},{label:"Running",value:"running"},{label:"Waiting user",value:"waiting_user"},{label:"Needs replan",value:"needs_replan"},{label:"Succeeded",value:"succeeded"},{label:"Failed",value:"failed"},{label:"Rejected",value:"rejected"},{label:"Canceled",value:"canceled"}]})),a().createElement(o.Form.Item,null,a().createElement(o.Space,null,a().createElement(o.Button,{onClick:function(){k({}),I(1)},disabled:!el},"Reset"),a().createElement(o.Button,{icon:a().createElement(i.ReloadOutlined,null),onClick:K},"Refresh")))),a().createElement(o.Table,{rowKey:"id",loading:$,dataSource:H,columns:Z,scroll:{x:"max-content"},pagination:{current:x,pageSize:O,total:J,showSizeChanger:!0,pageSizeOptions:[10,20,50,100],showTotal:function(e){return"".concat(e," run").concat(1===e?"":"s")},onChange:function(e,t){I(e),t&&t!==O&&_(t)}},locale:{emptyText:a().createElement(o.Empty,{description:el?"No runs match the current filters":"No agent runs yet"})}})),a().createElement(o.Drawer,{title:"Agent Run Detail",width:980,onClose:function(){D(null),R(null)},open:!!T},ea&&a().createElement(o.Spin,{spinning:N},a().createElement(o.Space,{direction:"vertical",size:16,style:{width:"100%"}},a().createElement(o.Space,{wrap:!0},a().createElement(o.Button,{icon:a().createElement(i.ReloadOutlined,null),onClick:function(){return Q(ea.id)},loading:N},"Refresh"),"waiting_user"===ea.status&&a().createElement(o.Button,{type:"primary",icon:a().createElement(i.PlayCircleOutlined,null),loading:F,onClick:function(){return Y("resume",ea.id)}},"Resume"),!h.has(ea.status)&&a().createElement(o.Popconfirm,{title:"Cancel this run?",onConfirm:function(){return Y("cancel",ea.id)}},a().createElement(o.Button,{danger:!0,icon:a().createElement(i.StopOutlined,null),loading:F},"Cancel run"))),a().createElement(o.Descriptions,{bordered:!0,size:"small",column:2},a().createElement(o.Descriptions.Item,{label:"Status"},a().createElement(v,{status:ea.status})),a().createElement(o.Descriptions.Item,{label:"Leader"},a().createElement(o.Tag,{color:"blue"},s.get(ea.leaderUsername)||ea.leaderUsername||"-")),a().createElement(o.Descriptions.Item,{label:"Root run"},a().createElement(y,{code:!0},ea.rootRunId||"-")),a().createElement(o.Descriptions.Item,{label:"Current step"},a().createElement(y,{code:!0},ea.currentStepId||"-")),a().createElement(o.Descriptions.Item,{label:"Iterations"},ea.iterationCount||0),a().createElement(o.Descriptions.Item,{label:"Approval"},ea.approvalStatus||"-"),a().createElement(o.Descriptions.Item,{label:"Plan version"},ea.planVersion||"-"),a().createElement(o.Descriptions.Item,{label:"Harness"},(null==(e=ea.metadata)?void 0:e.harnessTag)||"-"),a().createElement(o.Descriptions.Item,{label:"Duration"},b(ea.startedAt||ea.createdAt,ea.endedAt)),a().createElement(o.Descriptions.Item,{label:"Started"},g(ea.startedAt||ea.createdAt)),a().createElement(o.Descriptions.Item,{label:"Ended"},g(ea.endedAt))),a().createElement(o.Card,{title:"Goal",size:"small"},a().createElement(E,{value:ea.goal,rows:6})),a().createElement(o.Card,{title:"Plan",size:"small",extra:a().createElement(i.BranchesOutlined,null)},a().createElement(o.Table,{rowKey:"id",size:"small",dataSource:ee,columns:eo,pagination:!1,scroll:{x:"max-content"},expandable:{expandedRowRender:function(e){return a().createElement(o.Space,{direction:"vertical",size:12,style:{width:"100%"}},a().createElement(o.Card,{size:"small",title:"Input"},a().createElement(E,{value:e.input,rows:8})),a().createElement(o.Card,{size:"small",title:"Output"},a().createElement(E,{value:e.output,rows:8})),e.approval&&Object.keys(e.approval).length>0&&a().createElement(o.Card,{size:"small",title:"Approval"},a().createElement(E,{value:e.approval,rows:8})),e.error&&a().createElement(o.Card,{size:"small",title:"Error",style:{borderColor:"#ffa39e"}},a().createElement(E,{value:e.error,rows:8})))}},locale:{emptyText:a().createElement(o.Empty,{description:"No plan steps"})}})),a().createElement(o.Card,{title:"Event Timeline",size:"small"},et.length?a().createElement(o.Timeline,{items:et.map(function(e){return{key:e.id,color:function(e){switch(e){case"succeeded":case"success":return"green";case"failed":case"error":return"red";case"waiting_user":case"waiting_plan_approval":case"needs_replan":return"orange";case"approved":case"running":case"planning":return"blue";default:return"gray"}}(e.status),children:a().createElement(o.Space,{direction:"vertical",size:2,style:{width:"100%"}},a().createElement(o.Space,{wrap:!0},a().createElement(y,{strong:!0},e.title||e.type),a().createElement(v,{status:e.status}),e.stepId&&a().createElement(y,{type:"secondary"},"step #",e.stepId)),a().createElement(y,{type:"secondary"},g(e.createdAt)),e.content&&a().createElement(E,{value:e.content,rows:4}))}})}):a().createElement(o.Empty,{description:"No events captured"})),a().createElement(o.Collapse,{items:[{key:"spans",label:"Linked spans (".concat(er.length,")"),children:er.length?a().createElement(o.Table,{rowKey:"id",size:"small",dataSource:er,pagination:!1,scroll:{x:"max-content"},columns:[{title:"Type",dataIndex:"type",key:"type",width:110,render:function(e){return a().createElement(o.Tag,null,e)}},{title:"Status",dataIndex:"status",key:"status",width:110,render:function(e){return a().createElement(v,{status:e})}},{title:"Title",dataIndex:"title",key:"title"},{title:"Tool",dataIndex:"toolName",key:"toolName",render:function(e){return e?a().createElement(y,{code:!0},e):"-"}},{title:"Duration",dataIndex:"durationMs",key:"durationMs",width:100,render:function(e){return e?"".concat(e,"ms"):"-"}},{title:"Skill Exec",dataIndex:"skillExecutionId",key:"skillExecutionId",width:110,render:function(e){return e||"-"}}]}):a().createElement(o.Empty,{description:"No linked spans"})},{key:"skills",label:"Skill executions (".concat(en.length,")"),children:en.length?a().createElement(o.Space,{direction:"vertical",size:12,style:{width:"100%"}},en.map(function(e){var t=function(e,t){if(null==e||""===e)return t;if("string"!=typeof e)return e;var r=e.trim(),n=r.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),a=n?n[1].trim():r;try{var l=JSON.parse(a);if("string"==typeof l){var o=l.trim(),i=o.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i),u=i?i[1].trim():o;try{l=JSON.parse(u)}catch(e){}}return l}catch(e){return t}}(e.outputFiles,[]);return a().createElement(o.Card,{key:e.id,size:"small",title:a().createElement(o.Space,{wrap:!0},a().createElement(y,null,"Skill execution #",e.id),a().createElement(v,{status:e.status}),e.agentLoopStepId&&a().createElement(y,{type:"secondary"},"step #",e.agentLoopStepId))},a().createElement(o.Space,{direction:"vertical",size:8,style:{width:"100%"}},a().createElement(o.Descriptions,{size:"small",column:2},a().createElement(o.Descriptions.Item,{label:"Duration"},e.durationMs?"".concat(e.durationMs,"ms"):"-"),a().createElement(o.Descriptions.Item,{label:"Created"},g(e.createdAt))),a().createElement(o.Collapse,{size:"small",items:[{key:"stdout",label:"stdout",children:a().createElement(E,{value:e.stdout,rows:10})},{key:"stderr",label:"stderr",children:a().createElement(E,{value:e.stderr,rows:10})},{key:"files",label:"files (".concat(t.length,")"),children:t.length?a().createElement(o.Space,{direction:"vertical"},t.map(function(t,r){var n,l;return n=(null==t?void 0:t.downloadUrl)?t.downloadUrl:(null==e?void 0:e.id)&&(null==t?void 0:t.name)?"/api/skillHub:download?execId=".concat(e.id,"&filename=").concat(encodeURIComponent(t.name)):"",l=t.name||t.path||"file-".concat(r+1),n?a().createElement("a",{key:r,href:n,target:"_blank",rel:"noreferrer"},l):a().createElement(y,{key:r},l)})):a().createElement(o.Empty,{description:"No files"})}]})))})):a().createElement(o.Empty,{description:"No linked skill executions"})}]}),(ea.finalAnswer||ea.summary)&&a().createElement(o.Card,{title:"Final Output",size:"small"},ea.summary&&a().createElement(f,{style:{whiteSpace:"pre-wrap",marginBottom:12}},a().createElement(y,{strong:!0},"Summary: "),ea.summary),a().createElement(E,{value:ea.finalAnswer,rows:16}))))))},S=function(){return a().createElement(l.l,null,a().createElement("div",{style:{padding:"0 24px 24px"}},a().createElement(w,null)))}},608:function(e,t,r){r.d(t,{R:function(){return u},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 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(){return(0,n.useApp)().apiClient}function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u(),n=t.manual,l=void 0!==n&&n,c=t.refreshDeps,s=t.onSuccess,d=t.onError,p=i((0,a.useState)(void 0),2),m=p[0],f=p[1],y=i((0,a.useState)(!l),2),h=y[0],v=y[1],g=i((0,a.useState)(void 0),2),b=g[0],E=g[1],w=(0,a.useRef)(e);w.current=e;var S=(0,a.useRef)(s);S.current=s;var k=(0,a.useRef)(d);k.current=d;var A=(0,a.useCallback)(function(e){var t;return(t=function(){var t,n,a,l,o,i;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(u){switch(u.label){case 0:t=w.current,v(!0),E(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,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=u.sent())?void 0:l.data,u.label=5;case 5:return f(a),null==(n=S.current)||n.call(S,a),[2,a];case 6:return E(o=u.sent()),null==(i=k.current)||i.call(k,o),[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]),x=(0,a.useCallback)(function(){A()},[A]);return(0,a.useEffect)(function(){l||A()},void 0===c?[]:c),{data:m,loading:h,error:b,refresh:x,run:A}}}}]);
@@ -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
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@nocobase/client-v2"),require("react"),require("antd"),require("@ant-design/icons")):"function"==typeof define&&define.amd?define("plugin-agent-orchestrator/client-v2",["@nocobase/client-v2","react","antd","@ant-design/icons"],t):"object"==typeof exports?exports["plugin-agent-orchestrator/client-v2"]=t(require("@nocobase/client-v2"),require("react"),require("antd"),require("@ant-design/icons")):e["plugin-agent-orchestrator/client-v2"]=t(e["@nocobase/client-v2"],e.react,e.antd,e["@ant-design/icons"])}(self,function(e,t,n,r){return function(){"use strict";var o,i,a,c={375:function(e){e.exports=r},485:function(t){t.exports=e},59:function(e){e.exports=n},155:function(e){e.exports=t}},u={};function l(e){var t=u[e];if(void 0!==t)return t.exports;var n=u[e]={exports:{}};return c[e](n,n.exports,l),n.exports}l.m=c,l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.f={},l.e=function(e){return Promise.all(Object.keys(l.f).reduce(function(t,n){return l.f[n](e,t),t},[]))},l.u=function(e){return""+e+"."+({214:"723affb37c13bf7a",264:"0533912e6c5ea2d7",41:"1805b2edfaa4afe2",418:"5ae055abf141820e",619:"d99d3c9e61c99064",70:"a15d7fcec7c41768",892:"72db4161511c8a16",926:"87f660b670d85bcc"})[e]+".js"},l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s={},l.l=function(e,t,n,r){if(s[e])return void s[e].push(t);if(void 0!==n)for(var o,i,a=document.getElementsByTagName("script"),c=0;c<a.length;c++){var u=a[c];if(u.getAttribute("src")==e||u.getAttribute("data-rspack")=="plugin-agent-orchestrator/client-v2:"+n){o=u;break}}o||(i=!0,(o=document.createElement("script")).timeout=120,l.nc&&o.setAttribute("nonce",l.nc),o.setAttribute("data-rspack","plugin-agent-orchestrator/client-v2:"+n),o.src=e),s[e]=[t];var f=function(t,n){o.onerror=o.onload=null,clearTimeout(p);var r=s[e];if(delete s[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(e){return e(n)}),t)return t(n)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=f.bind(null,o.onerror),o.onload=f.bind(null,o.onload),i&&document.head.appendChild(o)},l.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.g.importScripts&&(f=l.g.location+"");var s,f,p=l.g.document;if(!f&&p&&(p.currentScript&&"SCRIPT"===p.currentScript.tagName.toUpperCase()&&(f=p.currentScript.src),!f)){var d=p.getElementsByTagName("script");if(d.length)for(var h=d.length-1;h>-1&&(!f||!/^http(s?):/.test(f));)f=d[h--].src}if(!f)throw Error("Automatic publicPath is not supported in this browser");l.p=f.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o={889:0},l.f.j=function(e,t){var n=l.o(o,e)?o[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=o[e]=[t,r]});t.push(n[2]=r);var i=l.p+l.u(e),a=Error();l.l(i,function(t){if(l.o(o,e)&&(0!==(n=o[e])&&(o[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;a.message="Loading chunk "+e+" failed.\n("+r+": "+i+")",a.name="ChunkLoadError",a.type=r,a.request=i,n[1](a)}},"chunk-"+e,e)}},i=function(e,t){var n,r,i=t[0],a=t[1],c=t[2],u=0;if(i.some(function(e){return 0!==o[e]})){for(n in a)l.o(a,n)&&(l.m[n]=a[n]);c&&c(l)}for(e&&e(t);u<i.length;u++)r=i[u],l.o(o,r)&&o[r]&&o[r][0](),o[r]=0},(a=self.webpackChunkplugin_agent_orchestrator_client_v2=self.webpackChunkplugin_agent_orchestrator_client_v2||[]).forEach(i.bind(null,0)),a.push=i.bind(null,a.push.bind(a));var b={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var n=window.__webpack_public_path__||"";n&&("/"!==n.charAt(n.length-1)&&(n+="/"),e=n+"static/plugins/plugin-agent-orchestrator/dist/client-v2/")}if(!e){var r=window.__nocobase_modern_client_prefix__||"v",o="/"+(r=String(r).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var i=window.location.pathname||"/",a=i.indexOf(o);e=a>=0?i.slice(0,a+1):"/"}e&&(e=e.replace(RegExp("/"+r+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/plugin-agent-orchestrator/dist/client-v2/"}l.p=e}(),!function(){l.r(b),l.d(b,{default:function(){return c}});var e=l(485);function t(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){n(e);return}c.done?t(u):Promise.resolve(u).then(r,o)}function n(e,t,r){return(n=a()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&o(i,n.prototype),i}).apply(null,arguments)}function r(e){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function o(e,t){return(o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function i(e){var t="function"==typeof Map?new Map:void 0;return(i=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return n(e,arguments,r(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),o(i,e)})(e)}function a(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(a=function(){return!!e})()}var c=function(e){var n;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function i(){var e,t;if(!(this instanceof i))throw TypeError("Cannot call a class as a function");return e=i,t=arguments,e=r(e),function(e,t){var n;if(t&&("object"==((n=t)&&"u">typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,a()?Reflect.construct(e,t||[],r(this).constructor):e.apply(this,t))}return i.prototype=Object.create(e&&e.prototype,{constructor:{value:i,writable:!0,configurable:!0}}),e&&o(i,e),n=[{key:"load",value:function(){var e;return(e=function(){return function(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(a,"next",{value:u(0)}),c(a,"throw",{value:u(1)}),c(a,"return",{value:u(2)}),"function"==typeof Symbol&&c(a,Symbol.iterator,{value:function(){return this}}),a;function u(c){return function(u){var l=[c,u];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(e){return this.pluginSettingsManager.addMenuItem({key:"ai.orchestrator",title:this.t("Agent Orchestrator"),icon:"ApartmentOutlined"}),this.pluginSettingsManager.addPageTabItem({menuKey:"ai.orchestrator",key:"index",title:this.t("Orchestration Rules"),componentLoader:function(){return l.e("892").then(l.bind(l,447))},sort:-1}),this.pluginSettingsManager.addPageTabItem({menuKey:"ai.orchestrator",key:"tracing",title:this.t("Execution Tracing"),componentLoader:function(){return l.e("619").then(l.bind(l,230))}}),this.pluginSettingsManager.addPageTabItem({menuKey:"ai.orchestrator",key:"agent-runs",title:this.t("Agent Runs"),componentLoader:function(){return l.e("926").then(l.bind(l,925))}}),this.pluginSettingsManager.addPageTabItem({menuKey:"ai.orchestrator",key:"harness-profiles",title:this.t("Harness Profiles"),componentLoader:function(){return l.e("418").then(l.bind(l,393))}}),this.pluginSettingsManager.addPageTabItem({menuKey:"ai.orchestrator",key:"skill-definitions",title:this.t("Skill Hub Definitions"),componentLoader:function(){return l.e("41").then(l.bind(l,224))}}),this.pluginSettingsManager.addPageTabItem({menuKey:"ai.orchestrator",key:"skill-executions",title:this.t("Execution History"),componentLoader:function(){return l.e("264").then(l.bind(l,715))}}),this.pluginSettingsManager.addPageTabItem({menuKey:"ai.orchestrator",key:"skill-loop-settings",title:this.t("Skill Review Settings"),componentLoader:function(){return l.e("70").then(l.bind(l,581))}}),this.pluginSettingsManager.addPageTabItem({menuKey:"ai.orchestrator",key:"skill-metrics",title:this.t("Metrics"),componentLoader:function(){return l.e("214").then(l.bind(l,349))}}),[2]})},function(){var n=this,r=arguments;return new Promise(function(o,i){var a=e.apply(n,r);function c(e){t(a,o,i,c,u,"next",e)}function u(e){t(a,o,i,c,u,"throw",e)}c(void 0)})}).call(this)}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(i.prototype,n),i}(i(e.Plugin))}(),b}()});