plugin-agent-orchestrator 1.0.27 → 1.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +9 -7
  2. package/dist/client/index.js +1 -1
  3. package/dist/client-v2/{214.723affb37c13bf7a.js → 214.79650a549273f163.js} +1 -1
  4. package/dist/client-v2/264.718a107e43fc163c.js +10 -0
  5. package/dist/client-v2/373.f5d5292e53c4e832.js +10 -0
  6. package/dist/client-v2/{41.1805b2edfaa4afe2.js → 41.ba6e080cc0488143.js} +1 -1
  7. package/dist/client-v2/418.29e713f79131eece.js +10 -0
  8. package/dist/client-v2/619.bd3c5698b40705c3.js +10 -0
  9. package/dist/client-v2/677.a991ce0250ff5c77.js +10 -0
  10. package/dist/client-v2/{70.a15d7fcec7c41768.js → 70.bda9518881c05360.js} +1 -1
  11. package/dist/client-v2/925.f5370de8f6632d65.js +10 -0
  12. package/dist/client-v2/index.js +1 -1
  13. package/dist/externalVersion.js +7 -10
  14. package/dist/locale/en-US.json +94 -25
  15. package/dist/locale/vi-VN.json +94 -25
  16. package/dist/locale/zh-CN.json +94 -25
  17. package/dist/server/collections/agent-execution-spans.js +37 -0
  18. package/dist/server/collections/agent-harness-profiles.js +2 -2
  19. package/dist/server/collections/agent-memory-contexts.js +125 -0
  20. package/dist/server/collections/orchestrator-logs.js +2 -2
  21. package/dist/server/migrations/20260425000000-add-interaction-schema.js +3 -1
  22. package/dist/server/migrations/20260427000000-change-packages-to-text.js +3 -1
  23. package/dist/server/migrations/20260427000001-change-other-json-to-text.js +6 -2
  24. package/dist/server/migrations/20260524001000-add-plan-approval-and-harness-profiles.js +21 -19
  25. package/dist/server/migrations/20260621000000-native-policy-profile-defaults.js +193 -0
  26. package/dist/server/plugin.js +128 -74
  27. package/dist/server/resources/agent-monitor.js +454 -0
  28. package/dist/server/services/AgentHarness.js +24 -499
  29. package/dist/server/services/AgentMemoryContextService.js +216 -0
  30. package/dist/server/services/ExecutionSpanService.js +2 -2
  31. package/dist/server/services/NativeSubAgentObserver.js +413 -0
  32. package/dist/server/skill-hub/mcp/McpController.js +16 -5
  33. package/dist/server/skill-hub/plugin.js +81 -5
  34. package/dist/server/skill-hub/tasks/SkillExecutionTask.js +9 -3
  35. package/dist/server/tools/delegate-task.js +11 -589
  36. package/dist/server/utils/skill-settings.js +18 -1
  37. package/package.json +47 -49
  38. package/src/client/AIEmployeesContext.tsx +5 -18
  39. package/src/client/AgentRunsTab.tsx +2 -771
  40. package/src/client/HarnessProfilesTab.tsx +2 -257
  41. package/src/client/OrchestratorSettings.tsx +97 -106
  42. package/src/client/RulesTab.tsx +2 -788
  43. package/src/client/plugin.tsx +0 -2
  44. package/src/client/skill-hub/components/ExecutionHistory.tsx +200 -202
  45. package/src/client/skill-hub/components/ExecutionProgress.tsx +51 -55
  46. package/src/client/skill-hub/components/LoopSettings.tsx +331 -331
  47. package/src/client/skill-hub/components/SkillEditor.tsx +43 -39
  48. package/src/client/skill-hub/components/SkillManager.tsx +194 -181
  49. package/src/client/skill-hub/components/SkillTestPanel.tsx +141 -145
  50. package/src/client/skill-hub/locale.ts +16 -16
  51. package/src/client/skill-hub/tools/SkillHubCard.tsx +104 -109
  52. package/src/client/skill-hub/tools/loopTemplates.ts +52 -52
  53. package/src/client/skill-hub/utils/jsonFields.ts +7 -3
  54. package/src/client-v2/components/AIEmployeesContext.tsx +3 -16
  55. package/src/client-v2/components/AgentRunsTab.tsx +182 -455
  56. package/src/client-v2/components/HarnessProfilesTab.tsx +34 -31
  57. package/src/client-v2/components/RulesTab.tsx +2 -782
  58. package/src/client-v2/components/TracingTab.tsx +1 -1
  59. package/src/client-v2/hooks/useApiRequest.ts +8 -1
  60. package/src/client-v2/pages/RulesPage.tsx +2 -2
  61. package/src/client-v2/plugin.tsx +3 -3
  62. package/src/locale/en-US.json +94 -25
  63. package/src/locale/vi-VN.json +94 -25
  64. package/src/locale/zh-CN.json +94 -25
  65. package/src/server/__tests__/native-sub-agent-observer.test.ts +246 -0
  66. package/src/server/__tests__/skill-settings.test.ts +6 -6
  67. package/src/server/__tests__/smoke.test.ts +1 -0
  68. package/src/server/collections/agent-execution-spans.ts +37 -0
  69. package/src/server/collections/agent-harness-profiles.ts +59 -59
  70. package/src/server/collections/agent-loop-events.ts +71 -71
  71. package/src/server/collections/agent-loop-steps.ts +144 -144
  72. package/src/server/collections/agent-memory-contexts.ts +95 -0
  73. package/src/server/collections/orchestrator-logs.ts +4 -4
  74. package/src/server/collections/skill-definitions.ts +111 -111
  75. package/src/server/collections/skill-executions.ts +106 -106
  76. package/src/server/collections/skill-loop-configs.ts +65 -65
  77. package/src/server/migrations/20260423000000-add-progress-fields.ts +14 -14
  78. package/src/server/migrations/20260425000000-add-interaction-schema.ts +3 -1
  79. package/src/server/migrations/20260427000000-change-packages-to-text.ts +4 -2
  80. package/src/server/migrations/20260427000001-change-other-json-to-text.ts +9 -5
  81. package/src/server/migrations/20260524000000-add-agent-loop-fields-to-skill-executions.ts +30 -30
  82. package/src/server/migrations/20260524001000-add-plan-approval-and-harness-profiles.ts +145 -142
  83. package/src/server/migrations/20260615000000-normalize-ai-employee-tool-bindings.ts +2 -2
  84. package/src/server/migrations/20260621000000-native-policy-profile-defaults.ts +193 -0
  85. package/src/server/plugin.ts +151 -94
  86. package/src/server/resources/agent-monitor.ts +482 -0
  87. package/src/server/services/AgentHarness.ts +38 -623
  88. package/src/server/services/AgentMemoryContextService.ts +256 -0
  89. package/src/server/services/AgentPlanValidator.ts +73 -73
  90. package/src/server/services/ExecutionSpanService.ts +6 -2
  91. package/src/server/services/FileManager.ts +144 -144
  92. package/src/server/services/NativeSubAgentObserver.ts +507 -0
  93. package/src/server/services/SkillManager.ts +583 -583
  94. package/src/server/services/SkillRepositoryService.ts +5 -7
  95. package/src/server/services/TokenTracker.ts +3 -3
  96. package/src/server/services/WorkerEnvManager.ts +1 -2
  97. package/src/server/skill-hub/actions/git-import.ts +5 -7
  98. package/src/server/skill-hub/mcp/McpController.ts +41 -14
  99. package/src/server/skill-hub/plugin.ts +89 -6
  100. package/src/server/skill-hub/tasks/SkillExecutionTask.ts +470 -460
  101. package/src/server/skill-hub/utils/json-fields.ts +1 -1
  102. package/src/server/tools/delegate-task.ts +13 -847
  103. package/src/server/utils/skill-settings.ts +24 -6
  104. package/dist/client-v2/264.0533912e6c5ea2d7.js +0 -10
  105. package/dist/client-v2/418.5ae055abf141820e.js +0 -10
  106. package/dist/client-v2/619.d99d3c9e61c99064.js +0 -10
  107. package/dist/client-v2/892.72db4161511c8a16.js +0 -10
  108. package/dist/client-v2/926.87f660b670d85bcc.js +0 -10
  109. package/src/client/tools/PlanApprovalCard.tsx +0 -176
  110. package/src/client/tools/registerOrchestratorCards.ts +0 -17
@@ -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([["925"],{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 u(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 i=(0,n.createContext)({employees:[],employeeMap:new Map,toolNamesMap:new Map,loading:!1,refresh:function(){}}),c=new Set(["dispatch-sub-agent-task","external_rag_search","skill_hub_execute"]),s=function(e){var t=e.children,r=(0,l.b)({url:"aiEmployees:list",params:{pageSize:200}}),n=r.data,o=r.loading,s=r.refresh,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("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(u(r).concat(u(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,i=void 0;try{for(var d,m=e[Symbol.iterator]();!(a=(d=m.next()).done);a=!0){var f=d.value;t.set(f.username,f.nickname),r.set(f.username,new Set(f.tools))}}catch(e){l=!0,i=e}finally{try{a||null==m.return||m.return()}finally{if(l)throw i}}return{employees:e,employeeMap:t,toolNamesMap:r,loading:o,refresh:s}},[n,o,s]);return a().createElement(i.Provider,{value:d},t)},d=function(){return(0,n.useContext)(i)}},804:function(e,t,r){r.d(t,{H:function(){return w}});var n=r(155),a=r.n(n),l=r(59),o=r(375),u=r(608),i=r(532),c=r(603);function s(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 m(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 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 s(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 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.")}()}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 y=l.Typography.Paragraph,b=l.Typography.Text;function v(e){var t=e.status;return a().createElement(l.Tag,{color:function(e){switch(e){case"success":return"success";case"error":return"error";case"running":return"processing";default:return"default"}}(t),icon:"success"===t?a().createElement(o.CheckCircleOutlined,null):"error"===t?a().createElement(o.CloseCircleOutlined,null):void 0},t||"-")}function h(e){return e?new Date(e).toLocaleString():"-"}function g(e){return e?e>=6e4?"".concat(Math.round(e/6e4),"m"):e>=1e3?"".concat((e/1e3).toFixed(1),"s"):"".concat(e,"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(y,{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:12},ellipsis:{rows:void 0===r?8:r,expandable:!0}},n):a().createElement(b,{type:"secondary"},"-")}var w=function(){var e,t=(0,u.R)(),r=(0,c.k)(),s=(0,i.j)(),d=s.employees,y=s.employeeMap,w=f((0,n.useState)({}),2),S=w[0],k=w[1],A=f((0,n.useState)(1),2),I=A[0],x=A[1],O=f((0,n.useState)(20),2),C=O[0],j=O[1],M=f((0,n.useState)(null),2),T=M[0],D=M[1],P=f((0,n.useState)(!1),2),N=P[0],z=P[1],_=f((0,n.useState)(!1),2),U=_[0],R=_[1],F=(0,n.useMemo)(function(){var e={};return S.leader&&(e.leaderUsername=S.leader),S.subAgent&&(e.subAgentUsername=S.subAgent),S.status&&(e.status=S.status),{sort:["-createdAt"],page:I,pageSize:C,filter:e}},[S,I,C]),B=(0,u.b)({url:"agentMonitor:list",params:F},{refreshDeps:[F]}),W=B.data,q=B.loading,L=B.refresh,G=(0,n.useMemo)(function(){var e=null==W?void 0:W.data;return Array.isArray(e)?e:[]},[W]),$=(0,n.useMemo)(function(){var e,t=null==W||null==(e=W.meta)?void 0:e.count;return"number"==typeof t?t:0},[W]),H=(0,n.useMemo)(function(){return d.map(function(e){return{label:e.nickname||e.username,value:e.username}})},[d]),K=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)}),x(1)},J=!!(S.leader||S.subAgent||S.status),Q=Array.isArray(null==T?void 0:T.trace)?T.trace:[],V=Array.isArray(null==T?void 0:T.toolMessages)?T.toolMessages:[],X=Array.isArray(null==T?void 0:T.nativeMessages)?T.nativeMessages:[],Y=[{title:r("Time"),dataIndex:"createdAt",key:"createdAt",width:170,render:h},{title:r("Leader"),dataIndex:"leaderUsername",key:"leaderUsername",width:160,render:function(e){return a().createElement(l.Tag,{color:"blue"},y.get(e)||e||"-")}},{title:r("Sub-Agent"),dataIndex:"subAgentUsername",key:"subAgentUsername",width:160,render:function(e){return a().createElement(l.Tag,{color:"green"},y.get(e)||e||"-")}},{title:r("Task"),dataIndex:"task",key:"task",render:function(e){return a().createElement(b,{ellipsis:!0,style:{maxWidth:360}},e||"-")}},{title:r("Status"),dataIndex:"status",key:"status",width:110,render:function(e){return a().createElement(v,{status:e})}},{title:r("Duration"),dataIndex:"durationMs",key:"durationMs",width:100,render:g},{title:r("Context"),dataIndex:"memoryContextApplied",key:"memoryContextApplied",width:100,render:function(e){return e?a().createElement(l.Tag,{color:"purple"},"memory"):a().createElement(b,{type:"secondary"},"-")}},{title:"",key:"actions",width:90,render:function(e,n){return a().createElement(l.Button,{type:"link",size:"small",icon:a().createElement(o.EyeOutlined,null),onClick:function(){return m(function(){var e,r,a,l;return p(this,function(o){switch(o.label){case 0:D(n),z(!0),o.label=1;case 1:return o.trys.push([1,,3,4]),[4,t.request({url:"agentMonitor:get",params:{filterByTk:n.id}})];case 2:return D((null==(l=o.sent())||null==(r=l.data)||null==(e=r.data)?void 0:e.data)||(null==l||null==(a=l.data)?void 0:a.data)||n),[3,4];case 3:return z(!1),[7];case 4:return[2]}})})()}},r("Detail"))}}];return a().createElement("div",null,a().createElement(l.Alert,{type:"info",showIcon:!0,style:{marginBottom:16},message:r("Native Agent Runs"),description:a().createElement(b,{type:"secondary"},r("Native plugin-ai sub-agent dispatches captured by the orchestrator observer. Execution still runs through AIEmployee/SubAgentsDispatcher."))}),a().createElement(l.Card,{bordered:!1},a().createElement(l.Form,{layout:"inline",style:{marginBottom:16,rowGap:8,flexWrap:"wrap"}},a().createElement(l.Form.Item,{label:r("Leader")},a().createElement(l.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:r("Any leader"),style:{minWidth:180},options:H,value:S.leader,onChange:function(e){return K({leader:e})}})),a().createElement(l.Form.Item,{label:r("Sub-Agent")},a().createElement(l.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:r("Any sub-agent"),style:{minWidth:180},options:H,value:S.subAgent,onChange:function(e){return K({subAgent:e})}})),a().createElement(l.Form.Item,{label:r("Status")},a().createElement(l.Select,{allowClear:!0,placeholder:r("Any status"),style:{minWidth:140},value:S.status,onChange:function(e){return K({status:e})},options:[{label:r("Running"),value:"running"},{label:r("Success"),value:"success"},{label:r("Error"),value:"error"}]})),a().createElement(l.Form.Item,null,a().createElement(l.Space,null,a().createElement(l.Button,{onClick:function(){k({}),x(1)},disabled:!J},r("Reset")),a().createElement(l.Button,{icon:a().createElement(o.ReloadOutlined,null),onClick:L},r("Refresh")),a().createElement(l.Button,{icon:a().createElement(o.SyncOutlined,null),onClick:function(){return m(function(){var e,n,a,o,u,i,c,s,d;return p(this,function(m){switch(m.label){case 0:R(!0),m.label=1;case 1:return m.trys.push([1,3,4,5]),[4,t.request({url:"agentMonitor:sync",method:"post",data:{limit:500}})];case 2:return a=(null==(n=m.sent())||null==(e=n.data)?void 0:e.data)||{},l.message.success(r("Synced {{count}} native runs",{count:a.created||0})),L(),[3,5];case 3:return d=(null==(o=m.sent())||null==(s=o.response)||null==(c=s.data)||null==(i=c.errors)||null==(u=i[0])?void 0:u.message)||(null==o?void 0:o.message)||r("Sync failed"),l.message.error(d),[3,5];case 4:return R(!1),[7];case 5:return[2]}})})()},loading:U},r("Sync"))))),a().createElement(l.Table,{rowKey:"id",loading:q,dataSource:G,columns:Y,scroll:{x:"max-content"},pagination:{current:I,pageSize:C,total:$,showSizeChanger:!0,pageSizeOptions:[10,20,50,100],showTotal:function(e){return r("{{count}} runs",{count:e})},onChange:function(e,t){x(e),t&&t!==C&&j(t)}},locale:{emptyText:a().createElement(l.Empty,{description:J?r("No runs match the current filters"):r("No native runs yet")})}})),a().createElement(l.Drawer,{title:r("Native Run Detail"),width:960,onClose:function(){return D(null)},open:!!T},T&&a().createElement(l.Spin,{spinning:N},a().createElement(l.Space,{direction:"vertical",size:16,style:{width:"100%"}},a().createElement(l.Descriptions,{bordered:!0,size:"small",column:2},a().createElement(l.Descriptions.Item,{label:r("Status")},a().createElement(v,{status:T.status})),a().createElement(l.Descriptions.Item,{label:r("Harness")},T.harnessTag||"default"),a().createElement(l.Descriptions.Item,{label:r("Leader")},a().createElement(l.Tag,{color:"blue"},y.get(T.leaderUsername)||T.leaderUsername||"-")),a().createElement(l.Descriptions.Item,{label:r("Sub-Agent")},a().createElement(l.Tag,{color:"green"},y.get(T.subAgentUsername)||T.subAgentUsername||"-")),a().createElement(l.Descriptions.Item,{label:r("Parent session")},a().createElement(b,{code:!0},T.parentSessionId||"-")),a().createElement(l.Descriptions.Item,{label:r("Sub session")},a().createElement(b,{code:!0},T.subSessionId||"-")),a().createElement(l.Descriptions.Item,{label:r("Tool call")},a().createElement(b,{code:!0},T.toolCallId||"-")),a().createElement(l.Descriptions.Item,{label:r("Duration")},g(T.durationMs)),a().createElement(l.Descriptions.Item,{label:r("Started")},h(T.startedAt||T.createdAt)),a().createElement(l.Descriptions.Item,{label:r("Ended")},h(T.endedAt))),a().createElement(l.Card,{title:r("Task"),size:"small"},a().createElement(E,{value:T.task||(null==(e=T.input)?void 0:e.question),rows:6})),a().createElement(l.Card,{title:r("Execution Flow"),size:"small"},Q.length?a().createElement(l.Timeline,{items:Q.map(function(e){return{key:e.id,color:"error"===e.status?"red":"running"===e.status?"blue":"green",children:a().createElement(l.Space,{direction:"vertical",size:2,style:{width:"100%"}},a().createElement(l.Space,{wrap:!0},a().createElement(b,{strong:!0},e.title||e.type),a().createElement(l.Tag,null,e.type),a().createElement(v,{status:e.status}),e.toolName&&a().createElement(b,{code:!0},e.toolName),e.durationMs?a().createElement(b,{type:"secondary"},g(e.durationMs)):null),a().createElement(b,{type:"secondary"},h(e.at)),e.content?a().createElement(E,{value:e.content,rows:4}):null)}})}):a().createElement(l.Empty,{description:r("No execution flow captured")})),a().createElement(l.Collapse,{items:[{key:"toolMessages",label:r("Native tool messages ({{count}})",{count:V.length}),children:V.length?a().createElement(l.Table,{rowKey:function(e){return"".concat(e.sessionId,":").concat(e.toolCallId)},size:"small",pagination:!1,dataSource:V,scroll:{x:"max-content"},columns:[{title:r("Session"),dataIndex:"sessionId",key:"sessionId"},{title:r("Tool"),dataIndex:"toolName",key:"toolName"},{title:r("Status"),dataIndex:"status",key:"status",render:function(e){return a().createElement(v,{status:"error"===e?"error":e})}},{title:r("Invoke"),dataIndex:"invokeStatus",key:"invokeStatus"},{title:r("Content"),dataIndex:"content",key:"content",render:function(e){return a().createElement(E,{value:e,rows:3})}}]}):a().createElement(l.Empty,{description:r("No native tool messages")})},{key:"messages",label:r("Native messages ({{count}})",{count:X.length}),children:X.length?a().createElement(l.Space,{direction:"vertical",size:8,style:{width:"100%"}},X.map(function(e){return a().createElement(l.Card,{key:"".concat(e.sessionId,":").concat(e.messageId),size:"small",title:"".concat(e.role," #").concat(e.messageId)},a().createElement(E,{value:e.content||e.metadata,rows:6}))})):a().createElement(l.Empty,{description:r("No native messages loaded")})},{key:"metadata",label:r("Monitor metadata"),children:a().createElement(E,{value:T.metadata,rows:10})}]}),(T.output||T.error)&&a().createElement(l.Card,{title:T.error?r("Error"):r("Result"),size:"small"},a().createElement(E,{value:T.error||T.output,rows:12}))))))}},608:function(e,t,r){r.d(t,{R:function(){return c},b:function(){return s}});var n=r(485),a=r(155);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t,r,n,a,l,o){try{var u=e[l](o),i=u.value}catch(e){r(e);return}u.done?t(i):Promise.resolve(i).then(n,a)}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,u=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){u=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(u)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return l(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function c(){return(0,n.useApp)().apiClient}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=c(),n=t.manual,l=void 0!==n&&n,s=t.refreshDeps,d=t.onSuccess,m=t.onError,f=u((0,a.useState)(void 0),2),p=f[0],y=f[1],b=u((0,a.useState)(!l),2),v=b[0],h=b[1],g=u((0,a.useState)(void 0),2),E=g[0],w=g[1],S=(0,a.useRef)(e);S.current=e;var k=(0,a.useRef)(d);k.current=d;var A=(0,a.useRef)(m);A.current=m;var I=(0,a.useCallback)(function(e){var t;return(t=function(){var t,n,a,l,o,u,c;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(o,"next",{value:i(0)}),u(o,"throw",{value:i(1)}),u(o,"return",{value:i(2)}),"function"==typeof Symbol&&u(o,Symbol.iterator,{value:function(){return this}}),o;function i(u){return function(i){var c=[u,i];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,n=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(s){switch(s.label){case 0:t=S.current,h(!0),w(void 0),s.label=1;case 1:if(s.trys.push([1,6,7,8]),"function"!=typeof t)return[3,3];return[4,t()];case 2:return a=s.sent(),[3,5];case 3:return[4,r.request({url:t.url,method:t.method||"get",params:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t.params||{},e||{}),data:t.data})];case 4:a=(o=null==(l=s.sent())?void 0:l.data)&&(void 0===o?"undefined":i(o))==="object"&&o.data&&"object"===i(o.data)&&"data"in o.data?o.data:o,s.label=5;case 5:return y(a),null==(n=k.current)||n.call(k,a),[2,a];case 6:return w(u=s.sent()),null==(c=A.current)||c.call(A,u),[2,void 0];case 7:return h(!1),[7];case 8:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var l=t.apply(e,r);function u(e){o(l,n,a,u,i,"next",e)}function i(e){o(l,n,a,u,i,"throw",e)}u(void 0)})})()},[r]),x=(0,a.useCallback)(function(){I()},[I]);return(0,a.useEffect)(function(){l||I()},void 0===s?[]:s),{data:p,loading:v,error:E,refresh:x,run:I}}},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])}}}]);
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@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}()});
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:"79650a549273f163",264:"718a107e43fc163c",373:"f5d5292e53c4e832",41:"ba6e080cc0488143",418:"29e713f79131eece",619:"bd3c5698b40705c3",677:"a991ce0250ff5c77",70:"bda9518881c05360",925:"f5370de8f6632d65"})[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 g={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src){var n=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"");n.indexOf("/static/plugins/plugin-agent-orchestrator/dist/client-v2/")>=0&&(e=n.replace(/\/[^\/]+$/,"/"))}if(!e){var r=window.__webpack_public_path__||"";r&&("/"!==r.charAt(r.length-1)&&(r+="/"),e=r+"static/plugins/plugin-agent-orchestrator/dist/client-v2/")}if(!e){var o=window.__nocobase_modern_client_prefix__||"v",i="/"+(o=String(o).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var a=window.location.pathname||"/",c=a.indexOf(i);e=c>=0?a.slice(0,c+1):"/"}e&&(e=e.replace(RegExp("/"+o+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/plugin-agent-orchestrator/dist/client-v2/"}l.p=e}(),!function(){l.r(g),l.d(g,{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("Native Monitor"),componentLoader:function(){return Promise.all([l.e("925"),l.e("373")]).then(l.bind(l,380))},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("Native Agent Runs"),componentLoader:function(){return Promise.all([l.e("925"),l.e("677")]).then(l.bind(l,812))}}),this.pluginSettingsManager.addPageTabItem({menuKey:"ai.orchestrator",key:"harness-profiles",title:this.t("Policy 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))}(),g}()});
@@ -9,16 +9,13 @@
9
9
 
10
10
  module.exports = {
11
11
  "react": "18.2.0",
12
+ "ahooks": "3.7.8",
13
+ "@nocobase/client-v2": "2.1.9",
12
14
  "antd": "5.24.2",
13
15
  "@ant-design/icons": "5.6.1",
14
- "ahooks": "3.7.8",
15
- "@nocobase/client-v2": "2.1.6",
16
- "@nocobase/client": "2.1.6",
17
- "@nocobase/server": "2.1.6",
18
- "@nocobase/database": "2.1.6",
19
- "@langchain/langgraph": "0.2.74",
20
- "@langchain/core": "0.3.80",
21
- "@nocobase/ai": "2.1.6",
22
- "@nocobase/actions": "2.1.6",
23
- "@nocobase/plugin-ai": "2.1.6"
16
+ "@nocobase/client": "2.1.9",
17
+ "@nocobase/server": "2.1.9",
18
+ "@nocobase/database": "2.1.9",
19
+ "@nocobase/ai": "2.1.9",
20
+ "@nocobase/actions": "2.1.9"
24
21
  };
@@ -1,27 +1,96 @@
1
- {
2
- "Agent Orchestrator": "Agent Orchestrator",
3
- "Orchestration Rules": "Orchestration Rules",
4
- "Execution Tracing": "Execution Tracing",
5
- "Agent Runs": "Agent Runs",
6
- "Harness Profiles": "Harness Profiles",
7
- "Skill Hub Definitions": "Skill Hub Definitions",
8
- "Execution History": "Execution History",
9
- "Skill Review Settings": "Skill Review Settings",
10
- "Metrics": "Metrics",
11
- "Swarm Tracing": "Swarm Tracing",
12
- "Leader (Orchestrator)": "Leader (Orchestrator)",
13
- "Sub-Agent": "Sub-Agent",
14
- "Max Delegation Depth": "Max Delegation Depth",
15
- "Timeout (ms)": "Timeout (ms)",
16
- "Enabled": "Enabled",
17
- "New Rule": "New Rule",
18
- "Edit Orchestration Rule": "Edit Orchestration Rule",
19
- "New Orchestration Rule": "New Orchestration Rule",
20
- "Rule created": "Rule created",
21
- "Rule updated": "Rule updated",
22
- "Rule deleted": "Rule deleted",
23
- "Sub-Agent Conversation": "Sub-Agent Conversation",
24
- "Task Summary": "Task Summary",
1
+ {
2
+ "Agent Orchestrator": "Agent Orchestrator",
3
+ "Orchestration Rules": "Orchestration Rules",
4
+ "Native Monitor": "Native Monitor",
5
+ "Execution Tracing": "Execution Tracing",
6
+ "Agent Runs": "Agent Runs",
7
+ "Native Agent Runs": "Native Agent Runs",
8
+ "Harness Profiles": "Harness Profiles",
9
+ "Policy Profiles": "Policy Profiles",
10
+ "Skill Hub Definitions": "Skill Hub Definitions",
11
+ "Execution History": "Execution History",
12
+ "Skill Review Settings": "Skill Review Settings",
13
+ "Metrics": "Metrics",
14
+ "Swarm Tracing": "Swarm Tracing",
15
+ "Leader (Orchestrator)": "Leader (Orchestrator)",
16
+ "Sub-Agent": "Sub-Agent",
17
+ "Max Delegation Depth": "Max Delegation Depth",
18
+ "Timeout (ms)": "Timeout (ms)",
19
+ "Enabled": "Enabled",
20
+ "New Rule": "New Rule",
21
+ "Edit Orchestration Rule": "Edit Orchestration Rule",
22
+ "New Orchestration Rule": "New Orchestration Rule",
23
+ "Rule created": "Rule created",
24
+ "Rule updated": "Rule updated",
25
+ "Rule deleted": "Rule deleted",
26
+ "Sub-Agent Conversation": "Sub-Agent Conversation",
27
+ "Task Summary": "Task Summary",
25
28
  "Parent Session": "Parent Session",
26
- "No sub-agent executions yet": "No sub-agent executions yet"
29
+ "No sub-agent executions yet": "No sub-agent executions yet",
30
+ "Synced {{count}} native runs": "Synced {{count}} native runs",
31
+ "Sync failed": "Sync failed",
32
+ "Time": "Time",
33
+ "Leader": "Leader",
34
+ "Task": "Task",
35
+ "Status": "Status",
36
+ "Duration": "Duration",
37
+ "Context": "Context",
38
+ "Detail": "Detail",
39
+ "Native plugin-ai sub-agent dispatches captured by the orchestrator observer. Execution still runs through AIEmployee/SubAgentsDispatcher.": "Native plugin-ai sub-agent dispatches captured by the orchestrator observer. Execution still runs through AIEmployee/SubAgentsDispatcher.",
40
+ "Any leader": "Any leader",
41
+ "Any sub-agent": "Any sub-agent",
42
+ "Any status": "Any status",
43
+ "Running": "Running",
44
+ "Success": "Success",
45
+ "Error": "Error",
46
+ "Reset": "Reset",
47
+ "Refresh": "Refresh",
48
+ "Sync": "Sync",
49
+ "{{count}} runs": "{{count}} runs",
50
+ "No runs match the current filters": "No runs match the current filters",
51
+ "No native runs yet": "No native runs yet",
52
+ "Native Run Detail": "Native Run Detail",
53
+ "Harness": "Harness",
54
+ "Parent session": "Parent session",
55
+ "Sub session": "Sub session",
56
+ "Tool call": "Tool call",
57
+ "Started": "Started",
58
+ "Ended": "Ended",
59
+ "Execution Flow": "Execution Flow",
60
+ "No execution flow captured": "No execution flow captured",
61
+ "Native tool messages ({{count}})": "Native tool messages ({{count}})",
62
+ "Session": "Session",
63
+ "Tool": "Tool",
64
+ "Invoke": "Invoke",
65
+ "Content": "Content",
66
+ "No native tool messages": "No native tool messages",
67
+ "Native messages ({{count}})": "Native messages ({{count}})",
68
+ "No native messages loaded": "No native messages loaded",
69
+ "Monitor metadata": "Monitor metadata",
70
+ "Result": "Result",
71
+ "Tag": "Tag",
72
+ "Title": "Title",
73
+ "Settings": "Settings",
74
+ "Actions": "Actions",
75
+ "Edit": "Edit",
76
+ "Delete this profile?": "Delete this profile?",
77
+ "Delete": "Delete",
78
+ "Policy profiles control native observer, tracing retention, and memory/knowledge scopes.": "Policy profiles control native observer, tracing retention, and memory/knowledge scopes.",
79
+ "New Policy": "New Policy",
80
+ "Edit Policy Profile": "Edit Policy Profile",
81
+ "New Policy Profile": "New Policy Profile",
82
+ "Cancel": "Cancel",
83
+ "Save": "Save",
84
+ "Tag is required": "Tag is required",
85
+ "default": "default",
86
+ "Description": "Description",
87
+ "Settings JSON": "Settings JSON",
88
+ "Settings JSON is required": "Settings JSON is required",
89
+ "Settings JSON is invalid: {{message}}": "Settings JSON is invalid: {{message}}",
90
+ "Policy profile updated": "Policy profile updated",
91
+ "Policy profile created": "Policy profile created",
92
+ "Save failed: {{message}}": "Save failed: {{message}}",
93
+ "Policy profile deleted": "Policy profile deleted",
94
+ "Delete failed: {{message}}": "Delete failed: {{message}}",
95
+ "unknown error": "unknown error"
27
96
  }
@@ -1,27 +1,96 @@
1
- {
2
- "Agent Orchestrator": "Điều phối Agent",
3
- "Orchestration Rules": "Quy tắc điều phối",
4
- "Execution Tracing": "Truy vết thực thi",
5
- "Agent Runs": "Lượt chạy Agent",
6
- "Harness Profiles": "Hồ Harness",
7
- "Skill Hub Definitions": "Định nghĩa Skill Hub",
8
- "Execution History": "Lịch sử thực thi",
9
- "Skill Review Settings": "Cài đặt duyệt Skill",
10
- "Metrics": "Số liệu",
11
- "Swarm Tracing": "Truy vết Swarm",
12
- "Leader (Orchestrator)": "Leader (Điều phối viên)",
13
- "Sub-Agent": "Agent con",
14
- "Max Delegation Depth": "Độ sâu ủy quyền tối đa",
15
- "Timeout (ms)": "Thời gian chờ (ms)",
16
- "Enabled": "Bật",
17
- "New Rule": "Quy tắc mới",
18
- "Edit Orchestration Rule": "Sửa quy tắc điều phối",
19
- "New Orchestration Rule": "Quy tắc điều phối mới",
20
- "Rule created": "Đã tạo quy tắc",
21
- "Rule updated": "Đã cập nhật quy tắc",
22
- "Rule deleted": "Đã xóa quy tắc",
23
- "Sub-Agent Conversation": "Hội thoại Agent con",
24
- "Task Summary": "Tóm tắt nhiệm vụ",
1
+ {
2
+ "Agent Orchestrator": "Điều phối Agent",
3
+ "Orchestration Rules": "Quy tắc điều phối",
4
+ "Native Monitor": "Giám sát native",
5
+ "Execution Tracing": "Truy vết thực thi",
6
+ "Agent Runs": "Lượt chạy Agent",
7
+ "Native Agent Runs": "Lượt chạy Agent native",
8
+ "Harness Profiles": "Hồ Harness",
9
+ "Policy Profiles": "Hồ chính sách",
10
+ "Skill Hub Definitions": "Định nghĩa Skill Hub",
11
+ "Execution History": "Lịch sử thực thi",
12
+ "Skill Review Settings": "Cài đặt duyệt Skill",
13
+ "Metrics": "Số liệu",
14
+ "Swarm Tracing": "Truy vết Swarm",
15
+ "Leader (Orchestrator)": "Leader (Điều phối viên)",
16
+ "Sub-Agent": "Agent con",
17
+ "Max Delegation Depth": "Độ sâu ủy quyền tối đa",
18
+ "Timeout (ms)": "Thời gian chờ (ms)",
19
+ "Enabled": "Bật",
20
+ "New Rule": "Quy tắc mới",
21
+ "Edit Orchestration Rule": "Sửa quy tắc điều phối",
22
+ "New Orchestration Rule": "Quy tắc điều phối mới",
23
+ "Rule created": "Đã tạo quy tắc",
24
+ "Rule updated": "Đã cập nhật quy tắc",
25
+ "Rule deleted": "Đã xóa quy tắc",
26
+ "Sub-Agent Conversation": "Hội thoại Agent con",
27
+ "Task Summary": "Tóm tắt nhiệm vụ",
25
28
  "Parent Session": "Phiên gốc",
26
- "No sub-agent executions yet": "Chưa có lượt thực thi agent con nào"
29
+ "No sub-agent executions yet": "Chưa có lượt thực thi agent con nào",
30
+ "Synced {{count}} native runs": "Đã đồng bộ {{count}} lượt chạy native",
31
+ "Sync failed": "Đồng bộ thất bại",
32
+ "Time": "Thời gian",
33
+ "Leader": "Leader",
34
+ "Task": "Nhiệm vụ",
35
+ "Status": "Trạng thái",
36
+ "Duration": "Thời lượng",
37
+ "Context": "Ngữ cảnh",
38
+ "Detail": "Chi tiết",
39
+ "Native plugin-ai sub-agent dispatches captured by the orchestrator observer. Execution still runs through AIEmployee/SubAgentsDispatcher.": "Các lượt dispatch sub-agent native của plugin-ai được observer của orchestrator ghi nhận. Việc thực thi vẫn chạy qua AIEmployee/SubAgentsDispatcher.",
40
+ "Any leader": "Leader bất kỳ",
41
+ "Any sub-agent": "Agent con bất kỳ",
42
+ "Any status": "Trạng thái bất kỳ",
43
+ "Running": "Đang chạy",
44
+ "Success": "Thành công",
45
+ "Error": "Lỗi",
46
+ "Reset": "Đặt lại",
47
+ "Refresh": "Tải lại",
48
+ "Sync": "Đồng bộ",
49
+ "{{count}} runs": "{{count}} lượt chạy",
50
+ "No runs match the current filters": "Không có lượt chạy khớp bộ lọc hiện tại",
51
+ "No native runs yet": "Chưa có lượt chạy native",
52
+ "Native Run Detail": "Chi tiết lượt chạy native",
53
+ "Harness": "Harness",
54
+ "Parent session": "Phiên cha",
55
+ "Sub session": "Phiên con",
56
+ "Tool call": "Lượt gọi tool",
57
+ "Started": "Bắt đầu",
58
+ "Ended": "Kết thúc",
59
+ "Execution Flow": "Luồng thực thi",
60
+ "No execution flow captured": "Chưa ghi nhận luồng thực thi",
61
+ "Native tool messages ({{count}})": "Thông điệp tool native ({{count}})",
62
+ "Session": "Phiên",
63
+ "Tool": "Tool",
64
+ "Invoke": "Invoke",
65
+ "Content": "Nội dung",
66
+ "No native tool messages": "Không có thông điệp tool native",
67
+ "Native messages ({{count}})": "Thông điệp native ({{count}})",
68
+ "No native messages loaded": "Chưa tải thông điệp native",
69
+ "Monitor metadata": "Metadata giám sát",
70
+ "Result": "Kết quả",
71
+ "Tag": "Tag",
72
+ "Title": "Tiêu đề",
73
+ "Settings": "Cài đặt",
74
+ "Actions": "Thao tác",
75
+ "Edit": "Sửa",
76
+ "Delete this profile?": "Xóa hồ sơ này?",
77
+ "Delete": "Xóa",
78
+ "Policy profiles control native observer, tracing retention, and memory/knowledge scopes.": "Hồ sơ chính sách kiểm soát observer native, thời gian lưu trace và phạm vi memory/knowledge.",
79
+ "New Policy": "Chính sách mới",
80
+ "Edit Policy Profile": "Sửa hồ sơ chính sách",
81
+ "New Policy Profile": "Hồ sơ chính sách mới",
82
+ "Cancel": "Hủy",
83
+ "Save": "Lưu",
84
+ "Tag is required": "Bắt buộc nhập tag",
85
+ "default": "default",
86
+ "Description": "Mô tả",
87
+ "Settings JSON": "JSON cài đặt",
88
+ "Settings JSON is required": "Bắt buộc nhập JSON cài đặt",
89
+ "Settings JSON is invalid: {{message}}": "JSON cài đặt không hợp lệ: {{message}}",
90
+ "Policy profile updated": "Đã cập nhật hồ sơ chính sách",
91
+ "Policy profile created": "Đã tạo hồ sơ chính sách",
92
+ "Save failed: {{message}}": "Lưu thất bại: {{message}}",
93
+ "Policy profile deleted": "Đã xóa hồ sơ chính sách",
94
+ "Delete failed: {{message}}": "Xóa thất bại: {{message}}",
95
+ "unknown error": "lỗi không xác định"
27
96
  }
@@ -1,27 +1,96 @@
1
- {
2
- "Agent Orchestrator": "智能体编排",
3
- "Orchestration Rules": "编排规则",
4
- "Execution Tracing": "执行追踪",
5
- "Agent Runs": "智能体运行",
6
- "Harness Profiles": "Harness 配置",
7
- "Skill Hub Definitions": "技能中心定义",
8
- "Execution History": "执行历史",
9
- "Skill Review Settings": "技能审核设置",
10
- "Metrics": "指标",
11
- "Swarm Tracing": "集群追踪",
12
- "Leader (Orchestrator)": "主控(编排者)",
13
- "Sub-Agent": "子智能体",
14
- "Max Delegation Depth": "最大委派深度",
15
- "Timeout (ms)": "超时时间(毫秒)",
16
- "Enabled": "已启用",
17
- "New Rule": "新建规则",
18
- "Edit Orchestration Rule": "编辑编排规则",
19
- "New Orchestration Rule": "新建编排规则",
20
- "Rule created": "规则已创建",
21
- "Rule updated": "规则已更新",
22
- "Rule deleted": "规则已删除",
23
- "Sub-Agent Conversation": "子智能体对话",
24
- "Task Summary": "任务摘要",
1
+ {
2
+ "Agent Orchestrator": "智能体编排",
3
+ "Orchestration Rules": "编排规则",
4
+ "Native Monitor": "原生监控",
5
+ "Execution Tracing": "执行追踪",
6
+ "Agent Runs": "智能体运行",
7
+ "Native Agent Runs": "原生智能体运行",
8
+ "Harness Profiles": "Harness 配置",
9
+ "Policy Profiles": "策略配置",
10
+ "Skill Hub Definitions": "技能中心定义",
11
+ "Execution History": "执行历史",
12
+ "Skill Review Settings": "技能审核设置",
13
+ "Metrics": "指标",
14
+ "Swarm Tracing": "集群追踪",
15
+ "Leader (Orchestrator)": "主控(编排者)",
16
+ "Sub-Agent": "子智能体",
17
+ "Max Delegation Depth": "最大委派深度",
18
+ "Timeout (ms)": "超时时间(毫秒)",
19
+ "Enabled": "已启用",
20
+ "New Rule": "新建规则",
21
+ "Edit Orchestration Rule": "编辑编排规则",
22
+ "New Orchestration Rule": "新建编排规则",
23
+ "Rule created": "规则已创建",
24
+ "Rule updated": "规则已更新",
25
+ "Rule deleted": "规则已删除",
26
+ "Sub-Agent Conversation": "子智能体对话",
27
+ "Task Summary": "任务摘要",
25
28
  "Parent Session": "父会话",
26
- "No sub-agent executions yet": "暂无子智能体执行记录"
29
+ "No sub-agent executions yet": "暂无子智能体执行记录",
30
+ "Synced {{count}} native runs": "已同步 {{count}} 条原生运行",
31
+ "Sync failed": "同步失败",
32
+ "Time": "时间",
33
+ "Leader": "主控",
34
+ "Task": "任务",
35
+ "Status": "状态",
36
+ "Duration": "耗时",
37
+ "Context": "上下文",
38
+ "Detail": "详情",
39
+ "Native plugin-ai sub-agent dispatches captured by the orchestrator observer. Execution still runs through AIEmployee/SubAgentsDispatcher.": "由 orchestrator observer 捕获的 plugin-ai 原生子智能体派发。执行仍然通过 AIEmployee/SubAgentsDispatcher。",
40
+ "Any leader": "任意主控",
41
+ "Any sub-agent": "任意子智能体",
42
+ "Any status": "任意状态",
43
+ "Running": "运行中",
44
+ "Success": "成功",
45
+ "Error": "错误",
46
+ "Reset": "重置",
47
+ "Refresh": "刷新",
48
+ "Sync": "同步",
49
+ "{{count}} runs": "{{count}} 条运行",
50
+ "No runs match the current filters": "没有匹配当前筛选条件的运行",
51
+ "No native runs yet": "暂无原生运行",
52
+ "Native Run Detail": "原生运行详情",
53
+ "Harness": "Harness",
54
+ "Parent session": "父会话",
55
+ "Sub session": "子会话",
56
+ "Tool call": "工具调用",
57
+ "Started": "开始",
58
+ "Ended": "结束",
59
+ "Execution Flow": "执行流程",
60
+ "No execution flow captured": "未捕获执行流程",
61
+ "Native tool messages ({{count}})": "原生工具消息({{count}})",
62
+ "Session": "会话",
63
+ "Tool": "工具",
64
+ "Invoke": "调用",
65
+ "Content": "内容",
66
+ "No native tool messages": "暂无原生工具消息",
67
+ "Native messages ({{count}})": "原生消息({{count}})",
68
+ "No native messages loaded": "未加载原生消息",
69
+ "Monitor metadata": "监控元数据",
70
+ "Result": "结果",
71
+ "Tag": "标签",
72
+ "Title": "标题",
73
+ "Settings": "设置",
74
+ "Actions": "操作",
75
+ "Edit": "编辑",
76
+ "Delete this profile?": "删除此配置?",
77
+ "Delete": "删除",
78
+ "Policy profiles control native observer, tracing retention, and memory/knowledge scopes.": "策略配置控制原生 observer、追踪保留时间以及记忆/知识范围。",
79
+ "New Policy": "新建策略",
80
+ "Edit Policy Profile": "编辑策略配置",
81
+ "New Policy Profile": "新建策略配置",
82
+ "Cancel": "取消",
83
+ "Save": "保存",
84
+ "Tag is required": "标签必填",
85
+ "default": "default",
86
+ "Description": "描述",
87
+ "Settings JSON": "设置 JSON",
88
+ "Settings JSON is required": "设置 JSON 必填",
89
+ "Settings JSON is invalid: {{message}}": "设置 JSON 无效:{{message}}",
90
+ "Policy profile updated": "策略配置已更新",
91
+ "Policy profile created": "策略配置已创建",
92
+ "Save failed: {{message}}": "保存失败:{{message}}",
93
+ "Policy profile deleted": "策略配置已删除",
94
+ "Delete failed: {{message}}": "删除失败:{{message}}",
95
+ "unknown error": "未知错误"
27
96
  }
@@ -51,6 +51,28 @@ var agent_execution_spans_default = (0, import_database.defineCollection)({
51
51
  type: "string",
52
52
  length: 100
53
53
  },
54
+ {
55
+ name: "source",
56
+ type: "string",
57
+ length: 100,
58
+ comment: "native-plugin-ai or legacy orchestrator source."
59
+ },
60
+ {
61
+ name: "parentSessionId",
62
+ type: "uuid",
63
+ comment: "Main AI conversation session id when this span comes from native plugin-ai."
64
+ },
65
+ {
66
+ name: "subSessionId",
67
+ type: "uuid",
68
+ comment: "Sub-agent AI conversation session id when this span comes from native plugin-ai."
69
+ },
70
+ {
71
+ name: "toolCallId",
72
+ type: "string",
73
+ length: 200,
74
+ comment: "Native AI tool call id associated with this span."
75
+ },
54
76
  {
55
77
  name: "type",
56
78
  type: "string",
@@ -166,11 +188,26 @@ var agent_execution_spans_default = (0, import_database.defineCollection)({
166
188
  {
167
189
  fields: ["parentSpanId"]
168
190
  },
191
+ {
192
+ fields: ["source"]
193
+ },
194
+ {
195
+ fields: ["parentSessionId"]
196
+ },
197
+ {
198
+ fields: ["subSessionId"]
199
+ },
200
+ {
201
+ fields: ["toolCallId"]
202
+ },
169
203
  {
170
204
  fields: ["type"]
171
205
  },
172
206
  {
173
207
  fields: ["status"]
208
+ },
209
+ {
210
+ fields: ["userId"]
174
211
  }
175
212
  ]
176
213
  });
@@ -46,7 +46,7 @@ var agent_harness_profiles_default = (0, import_database.defineCollection)({
46
46
  length: 100,
47
47
  allowNull: false,
48
48
  unique: true,
49
- comment: "Stable harness profile tag used by orchestration rules and agent loop runs."
49
+ comment: "Stable policy profile tag used by native sub-agent observer and context injection."
50
50
  },
51
51
  {
52
52
  name: "title",
@@ -66,7 +66,7 @@ var agent_harness_profiles_default = (0, import_database.defineCollection)({
66
66
  name: "settings",
67
67
  type: "json",
68
68
  defaultValue: {},
69
- comment: "Harness limits and behavior settings such as max parallel sub-agents, approval mode, and tool policy."
69
+ comment: "Policy settings such as native observer enablement, memory scopes, and tracing retention."
70
70
  },
71
71
  {
72
72
  name: "createdAt",