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
@@ -5,13 +5,13 @@ interface AIEmployeeInfo {
5
5
  username: string;
6
6
  nickname: string;
7
7
  about?: string;
8
- skills: string[];
8
+ tools: string[];
9
9
  }
10
10
 
11
11
  interface AIEmployeesContextType {
12
12
  employees: AIEmployeeInfo[];
13
13
  employeeMap: Map<string, string>;
14
- skillsMap: Map<string, Set<string>>;
14
+ toolNamesMap: Map<string, Set<string>>;
15
15
  loading: boolean;
16
16
  refresh: () => void;
17
17
  }
@@ -19,18 +19,59 @@ interface AIEmployeesContextType {
19
19
  const AIEmployeesContext = createContext<AIEmployeesContextType>({
20
20
  employees: [],
21
21
  employeeMap: new Map(),
22
- skillsMap: new Map(),
22
+ toolNamesMap: new Map(),
23
23
  loading: false,
24
24
  refresh: () => {},
25
25
  });
26
26
 
27
+ const orchestratorToolNames = new Set([
28
+ 'orchestrator_plan_goal',
29
+ 'orchestrator_execute_plan',
30
+ 'orchestrator_status',
31
+ 'orchestrator_cancel',
32
+ 'external_rag_search',
33
+ 'skill_hub_execute',
34
+ ]);
35
+
36
+ function isToolLikeName(name: string) {
37
+ return (
38
+ orchestratorToolNames.has(name) ||
39
+ name.startsWith('delegate_') ||
40
+ name.startsWith('dispatch_subagents_') ||
41
+ name.startsWith('skill_hub_') ||
42
+ name.startsWith('browser_') ||
43
+ name.startsWith('drawio-')
44
+ );
45
+ }
46
+
47
+ function extractToolNames(skillSettings: any) {
48
+ const tools = Array.isArray(skillSettings?.tools)
49
+ ? skillSettings.tools
50
+ .map((tool: any) => (typeof tool === 'string' ? tool : tool?.name))
51
+ .filter((name: any): name is string => typeof name === 'string' && name.length > 0)
52
+ : [];
53
+
54
+ const legacyTools = Array.isArray(skillSettings?.skills)
55
+ ? skillSettings.skills
56
+ .map((skill: any) => {
57
+ if (typeof skill === 'string') {
58
+ return isToolLikeName(skill) ? skill : null;
59
+ }
60
+ return skill?.name;
61
+ })
62
+ .filter((name: any): name is string => typeof name === 'string' && name.length > 0)
63
+ : [];
64
+
65
+ return Array.from(new Set([...tools, ...legacyTools]));
66
+ }
67
+
27
68
  /**
28
69
  * P3 FIX: Shared context provider that fetches aiEmployees once
29
70
  * and shares the data across RulesTab, TracingTab, and AIEmployeeSelect.
30
71
  *
31
- * Also exposes each employee's configured skills so RulesTab can warn when
72
+ * Also exposes each employee's configured tools so RulesTab can warn when
32
73
  * a delegation rule exists but the leader hasn't added the corresponding
33
- * delegate_<leader>_to_<sub> tool to its skillSettings.
74
+ * delegate_<leader>_to_<sub> tool to its skillSettings.tools.
34
75
  */
35
76
  export const AIEmployeesProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
36
77
  const { data, loading, refresh } = useRequest({
@@ -41,27 +82,23 @@ export const AIEmployeesProvider: React.FC<{ children: React.ReactNode }> = ({ c
41
82
  const value = React.useMemo(() => {
42
83
  const rawEmployees = (data as any)?.data || [];
43
84
  const employees: AIEmployeeInfo[] = rawEmployees.map((emp: any) => {
44
- const skills = Array.isArray(emp.skillSettings?.skills)
45
- ? emp.skillSettings.skills
46
- .map((s: any) => (typeof s === 'string' ? s : s?.name))
47
- .filter((name: any): name is string => typeof name === 'string' && name.length > 0)
48
- : [];
85
+ const tools = extractToolNames(emp.skillSettings);
49
86
  return {
50
87
  username: emp.username,
51
88
  nickname: emp.nickname || emp.username,
52
89
  about: emp.about?.substring(0, 80),
53
- skills,
90
+ tools,
54
91
  };
55
92
  });
56
93
 
57
94
  const employeeMap = new Map<string, string>();
58
- const skillsMap = new Map<string, Set<string>>();
95
+ const toolNamesMap = new Map<string, Set<string>>();
59
96
  for (const emp of employees) {
60
97
  employeeMap.set(emp.username, emp.nickname);
61
- skillsMap.set(emp.username, new Set(emp.skills));
98
+ toolNamesMap.set(emp.username, new Set(emp.tools));
62
99
  }
63
100
 
64
- return { employees, employeeMap, skillsMap, loading, refresh };
101
+ return { employees, employeeMap, toolNamesMap, loading, refresh };
65
102
  }, [data, loading, refresh]);
66
103
 
67
104
  return <AIEmployeesContext.Provider value={value}>{children}</AIEmployeesContext.Provider>;