plugin-agent-orchestrator 1.0.22 → 1.0.25

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 (103) 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 +8 -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 +60 -19
  34. package/src/client/AgentRunsTab.tsx +769 -764
  35. package/src/client/HarnessProfilesTab.tsx +257 -247
  36. package/src/client/RulesTab.tsx +787 -716
  37. package/src/client/TracingTab.tsx +9 -6
  38. package/src/client/plugin.tsx +34 -27
  39. package/src/client/skill-hub/components/ExecutionHistory.tsx +9 -8
  40. package/src/client/skill-hub/components/GitSkillImport.tsx +12 -5
  41. package/src/client/skill-hub/components/LoopSettings.tsx +2 -2
  42. package/src/client/skill-hub/components/SkillEditor.tsx +2 -2
  43. package/src/client/skill-hub/components/SkillManager.tsx +2 -2
  44. package/src/client/skill-hub/components/SkillMetrics.tsx +157 -124
  45. package/src/client/skill-hub/components/SkillTestPanel.tsx +14 -13
  46. package/src/client/skill-hub/index.tsx +58 -51
  47. package/src/client/skill-hub/locale.ts +1 -1
  48. package/src/client/skill-hub/tools/InteractionSchemasProvider.tsx +132 -99
  49. package/src/client/skill-hub/tools/registerSkillLoopCards.ts +71 -58
  50. package/src/client/tools/PlanApprovalCard.tsx +3 -2
  51. package/src/client/tools/registerOrchestratorCards.ts +17 -7
  52. package/src/client-v2/components/AIEmployeeSelect.tsx +47 -0
  53. package/src/client-v2/components/AIEmployeesContext.tsx +110 -0
  54. package/src/client-v2/components/AgentRunsTab.tsx +767 -0
  55. package/src/client-v2/components/HarnessProfilesTab.tsx +254 -0
  56. package/src/client-v2/components/RulesTab.tsx +782 -0
  57. package/src/client-v2/components/TracingTab.tsx +432 -0
  58. package/src/client-v2/hooks/useApiRequest.ts +114 -0
  59. package/src/client-v2/index.tsx +1 -0
  60. package/src/client-v2/pages/AgentRunsPage.tsx +13 -0
  61. package/src/client-v2/pages/ExecutionHistoryPage.tsx +10 -0
  62. package/src/client-v2/pages/HarnessProfilesPage.tsx +10 -0
  63. package/src/client-v2/pages/LoopSettingsPage.tsx +10 -0
  64. package/src/client-v2/pages/RulesPage.tsx +13 -0
  65. package/src/client-v2/pages/SkillDefinitionsPage.tsx +10 -0
  66. package/src/client-v2/pages/SkillMetricsPage.tsx +10 -0
  67. package/src/client-v2/pages/TracingPage.tsx +13 -0
  68. package/src/client-v2/plugin.tsx +70 -0
  69. package/src/client-v2/skill-hub/components/ExecutionHistory.tsx +196 -0
  70. package/src/client-v2/skill-hub/components/FileLinkList.tsx +37 -0
  71. package/src/client-v2/skill-hub/components/GitSkillImport.tsx +539 -0
  72. package/src/client-v2/skill-hub/components/LoopSettings.tsx +331 -0
  73. package/src/client-v2/skill-hub/components/SkillEditor.tsx +453 -0
  74. package/src/client-v2/skill-hub/components/SkillManager.tsx +174 -0
  75. package/src/client-v2/skill-hub/components/SkillMetrics.tsx +157 -0
  76. package/src/client-v2/skill-hub/components/SkillTestPanel.tsx +135 -0
  77. package/src/client-v2/skill-hub/locale.ts +13 -0
  78. package/src/client-v2/skill-hub/tools/loopTemplates.ts +52 -0
  79. package/src/client-v2/skill-hub/utils/jsonFields.ts +41 -0
  80. package/src/client-v2/utils/jsonFields.ts +41 -0
  81. package/src/locale/en-US.json +7 -0
  82. package/src/locale/vi-VN.json +7 -0
  83. package/src/locale/zh-CN.json +27 -0
  84. package/src/server/__tests__/agent-registry-service.test.ts +147 -0
  85. package/src/server/__tests__/code-validator.test.ts +63 -0
  86. package/src/server/__tests__/skill-execute.test.ts +33 -0
  87. package/src/server/__tests__/skill-settings.test.ts +63 -0
  88. package/src/server/migrations/20260615000000-normalize-ai-employee-tool-bindings.ts +39 -0
  89. package/src/server/plugin.ts +62 -21
  90. package/src/server/services/AgentHarness.ts +49 -22
  91. package/src/server/services/AgentLoopController.ts +17 -6
  92. package/src/server/services/AgentLoopService.ts +1 -1
  93. package/src/server/services/AgentPlannerService.ts +10 -0
  94. package/src/server/services/AgentRegistryService.ts +89 -47
  95. package/src/server/services/CircuitBreaker.ts +10 -0
  96. package/src/server/services/CodeValidator.ts +237 -159
  97. package/src/server/services/SandboxRunner.ts +203 -189
  98. package/src/server/skill-hub/plugin.ts +933 -898
  99. package/src/server/tools/delegate-task.ts +12 -9
  100. package/src/server/tools/skill-execute.ts +194 -160
  101. package/src/server/utils/ai-manager.ts +24 -0
  102. package/src/server/utils/ctx-utils.ts +14 -0
  103. package/src/server/utils/skill-settings.ts +116 -0
@@ -0,0 +1,110 @@
1
+ import React, { createContext, useContext } from 'react';
2
+ import { useRequest } from '../hooks/useApiRequest';
3
+
4
+ interface AIEmployeeInfo {
5
+ username: string;
6
+ nickname: string;
7
+ about?: string;
8
+ tools: string[];
9
+ }
10
+
11
+ interface AIEmployeesContextType {
12
+ employees: AIEmployeeInfo[];
13
+ employeeMap: Map<string, string>;
14
+ toolNamesMap: Map<string, Set<string>>;
15
+ loading: boolean;
16
+ refresh: () => void;
17
+ }
18
+
19
+ const AIEmployeesContext = createContext<AIEmployeesContextType>({
20
+ employees: [],
21
+ employeeMap: new Map(),
22
+ toolNamesMap: new Map(),
23
+ loading: false,
24
+ refresh: () => {},
25
+ });
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
+
68
+ /**
69
+ * Shared context provider that fetches aiEmployees once and shares the data
70
+ * across RulesTab, TracingTab, AgentRunsTab, and AIEmployeeSelect.
71
+ *
72
+ * Also exposes each employee's configured tools so RulesTab can warn when a
73
+ * delegation rule exists but the leader hasn't added the corresponding
74
+ * delegate_<leader>_to_<sub> tool to its skillSettings.tools.
75
+ */
76
+ export const AIEmployeesProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
77
+ const { data, loading, refresh } = useRequest({
78
+ url: 'aiEmployees:list',
79
+ params: { pageSize: 200 },
80
+ });
81
+
82
+ const value = React.useMemo(() => {
83
+ const rawEmployees = (data as any)?.data || [];
84
+ const employees: AIEmployeeInfo[] = rawEmployees.map((emp: any) => {
85
+ const tools = extractToolNames(emp.skillSettings);
86
+ return {
87
+ username: emp.username,
88
+ nickname: emp.nickname || emp.username,
89
+ about: emp.about?.substring(0, 80),
90
+ tools,
91
+ };
92
+ });
93
+
94
+ const employeeMap = new Map<string, string>();
95
+ const toolNamesMap = new Map<string, Set<string>>();
96
+ for (const emp of employees) {
97
+ employeeMap.set(emp.username, emp.nickname);
98
+ toolNamesMap.set(emp.username, new Set(emp.tools));
99
+ }
100
+
101
+ return { employees, employeeMap, toolNamesMap, loading, refresh };
102
+ }, [data, loading, refresh]);
103
+
104
+ return <AIEmployeesContext.Provider value={value}>{children}</AIEmployeesContext.Provider>;
105
+ };
106
+
107
+ /**
108
+ * Hook to access shared AI employees data.
109
+ */
110
+ export const useAIEmployees = () => useContext(AIEmployeesContext);