plugin-agent-orchestrator 1.0.20 → 1.0.22

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 (158) hide show
  1. package/dist/client/index.js +1 -1
  2. package/dist/externalVersion.js +6 -6
  3. package/dist/server/collections/agent-execution-spans.js +24 -0
  4. package/dist/server/collections/agent-loop-runs.js +36 -0
  5. package/dist/server/collections/orchestrator-config.js +14 -0
  6. package/dist/server/migrations/20260601000000-add-token-fields.js +101 -0
  7. package/dist/server/plugin.js +56 -0
  8. package/dist/server/resources/agent-loop.js +33 -25
  9. package/dist/server/resources/tracing.js +5 -8
  10. package/dist/server/services/AgentHarness.js +56 -90
  11. package/dist/server/services/AgentLoopController.js +164 -125
  12. package/dist/server/services/AgentLoopRepository.js +16 -34
  13. package/dist/server/services/AgentLoopService.js +7 -1
  14. package/dist/server/services/AgentPlannerService.js +5 -25
  15. package/dist/server/services/AgentRegistryService.js +34 -24
  16. package/dist/server/services/CircuitBreaker.js +120 -0
  17. package/dist/server/services/ContextAggregator.js +201 -0
  18. package/dist/server/services/ExecutionSpanService.js +2 -5
  19. package/dist/server/services/RunEventBus.js +73 -0
  20. package/dist/server/services/TokenTracker.js +173 -0
  21. package/dist/server/tools/agent-loop.js +30 -63
  22. package/dist/server/tools/delegate-task.js +14 -72
  23. package/dist/server/tools/orchestrator-plan.js +10 -47
  24. package/dist/server/types.js +24 -0
  25. package/dist/server/utils/ctx-utils.js +152 -0
  26. package/dist/server/utils/logging.js +86 -0
  27. package/package.json +44 -44
  28. package/src/client/AgentRunsTab.tsx +764 -764
  29. package/src/client/HarnessProfilesTab.tsx +247 -247
  30. package/src/client/OrchestratorSettings.tsx +106 -106
  31. package/src/client/RulesTab.tsx +716 -716
  32. package/src/client/hooks/useRunEventStream.ts +76 -0
  33. package/src/client/index.tsx +2 -1
  34. package/src/client/plugin.tsx +27 -27
  35. package/src/client/skill-hub/components/LoopSettings.tsx +331 -331
  36. package/src/client/skill-hub/index.tsx +51 -51
  37. package/src/client/skill-hub/tools/InteractionSchemasProvider.tsx +99 -99
  38. package/src/client/skill-hub/tools/SkillHubCard.tsx +109 -109
  39. package/src/client/skill-hub/tools/loopTemplates.ts +52 -52
  40. package/src/client/skill-hub/tools/registerSkillLoopCards.ts +58 -58
  41. package/src/client/tools/PlanApprovalCard.tsx +175 -175
  42. package/src/client/tools/registerOrchestratorCards.ts +7 -7
  43. package/src/server/__tests__/agent-loop-controller.test.ts +375 -0
  44. package/src/server/__tests__/circuit-breaker.test.ts +169 -0
  45. package/src/server/__tests__/context-aggregator.test.ts +222 -0
  46. package/src/server/__tests__/parallel-execution.test.ts +318 -0
  47. package/src/server/__tests__/smoke.test.ts +120 -0
  48. package/src/server/collections/agent-execution-spans.ts +24 -0
  49. package/src/server/collections/agent-harness-profiles.ts +59 -59
  50. package/src/server/collections/agent-loop-events.ts +71 -71
  51. package/src/server/collections/agent-loop-runs.ts +38 -1
  52. package/src/server/collections/agent-loop-steps.ts +144 -144
  53. package/src/server/collections/orchestrator-config.ts +14 -0
  54. package/src/server/collections/skill-executions.ts +106 -106
  55. package/src/server/collections/skill-loop-configs.ts +65 -65
  56. package/src/server/migrations/20260524000000-add-agent-loop-fields-to-skill-executions.ts +30 -30
  57. package/src/server/migrations/20260524001000-add-plan-approval-and-harness-profiles.ts +142 -142
  58. package/src/server/migrations/20260601000000-add-token-fields.ts +89 -0
  59. package/src/server/plugin.ts +68 -0
  60. package/src/server/resources/agent-loop.ts +21 -12
  61. package/src/server/resources/tracing.ts +3 -7
  62. package/src/server/services/AgentHarness.ts +78 -116
  63. package/src/server/services/AgentLoopController.ts +197 -122
  64. package/src/server/services/AgentLoopRepository.ts +9 -25
  65. package/src/server/services/AgentLoopService.ts +13 -1
  66. package/src/server/services/AgentPlanValidator.ts +73 -73
  67. package/src/server/services/AgentPlannerService.ts +2 -25
  68. package/src/server/services/AgentRegistryService.ts +40 -31
  69. package/src/server/services/CircuitBreaker.ts +116 -0
  70. package/src/server/services/ContextAggregator.ts +239 -0
  71. package/src/server/services/ExecutionSpanService.ts +2 -4
  72. package/src/server/services/RunEventBus.ts +45 -0
  73. package/src/server/services/TokenTracker.ts +209 -0
  74. package/src/server/skill-hub/plugin.ts +898 -898
  75. package/src/server/skill-hub/tasks/SkillExecutionTask.ts +460 -460
  76. package/src/server/tools/agent-loop.ts +18 -57
  77. package/src/server/tools/delegate-task.ts +11 -93
  78. package/src/server/tools/orchestrator-plan.ts +26 -50
  79. package/src/server/tools/skill-execute.ts +160 -160
  80. package/src/server/types.ts +55 -0
  81. package/src/server/utils/ctx-utils.ts +118 -0
  82. package/src/server/utils/logging.ts +63 -0
  83. package/dist/client/AIEmployeeSelect.d.ts +0 -11
  84. package/dist/client/AIEmployeesContext.d.ts +0 -30
  85. package/dist/client/AgentRunsTab.d.ts +0 -2
  86. package/dist/client/HarnessProfilesTab.d.ts +0 -2
  87. package/dist/client/OrchestratorSettings.d.ts +0 -3
  88. package/dist/client/RulesTab.d.ts +0 -2
  89. package/dist/client/TracingTab.d.ts +0 -2
  90. package/dist/client/index.d.ts +0 -1
  91. package/dist/client/plugin.d.ts +0 -6
  92. package/dist/client/skill-hub/components/ExecutionHistory.d.ts +0 -2
  93. package/dist/client/skill-hub/components/ExecutionProgress.d.ts +0 -20
  94. package/dist/client/skill-hub/components/GitSkillImport.d.ts +0 -7
  95. package/dist/client/skill-hub/components/LoopSettings.d.ts +0 -2
  96. package/dist/client/skill-hub/components/SkillEditor.d.ts +0 -7
  97. package/dist/client/skill-hub/components/SkillManager.d.ts +0 -2
  98. package/dist/client/skill-hub/components/SkillMetrics.d.ts +0 -2
  99. package/dist/client/skill-hub/components/SkillTestPanel.d.ts +0 -7
  100. package/dist/client/skill-hub/index.d.ts +0 -11
  101. package/dist/client/skill-hub/locale.d.ts +0 -3
  102. package/dist/client/skill-hub/tools/InteractionSchemasProvider.d.ts +0 -6
  103. package/dist/client/skill-hub/tools/SkillHubCard.d.ts +0 -3
  104. package/dist/client/skill-hub/tools/loopTemplates.d.ts +0 -22
  105. package/dist/client/skill-hub/tools/registerSkillLoopCards.d.ts +0 -1
  106. package/dist/client/skill-hub/utils/jsonFields.d.ts +0 -3
  107. package/dist/client/tools/PlanApprovalCard.d.ts +0 -3
  108. package/dist/client/tools/registerOrchestratorCards.d.ts +0 -1
  109. package/dist/index.d.ts +0 -2
  110. package/dist/server/collections/agent-execution-spans.d.ts +0 -9
  111. package/dist/server/collections/agent-harness-profiles.d.ts +0 -2
  112. package/dist/server/collections/agent-loop-events.d.ts +0 -2
  113. package/dist/server/collections/agent-loop-runs.d.ts +0 -2
  114. package/dist/server/collections/agent-loop-steps.d.ts +0 -2
  115. package/dist/server/collections/orchestrator-config.d.ts +0 -2
  116. package/dist/server/collections/orchestrator-logs.d.ts +0 -8
  117. package/dist/server/collections/skill-definitions.d.ts +0 -3
  118. package/dist/server/collections/skill-executions.d.ts +0 -3
  119. package/dist/server/collections/skill-loop-configs.d.ts +0 -3
  120. package/dist/server/collections/skill-worker-configs.d.ts +0 -3
  121. package/dist/server/index.d.ts +0 -1
  122. package/dist/server/migrations/20260423000000-add-progress-fields.d.ts +0 -4
  123. package/dist/server/migrations/20260425000000-add-interaction-schema.d.ts +0 -4
  124. package/dist/server/migrations/20260427000000-add-tracing-detail-fields.d.ts +0 -7
  125. package/dist/server/migrations/20260427000000-change-packages-to-text.d.ts +0 -4
  126. package/dist/server/migrations/20260427000001-change-other-json-to-text.d.ts +0 -4
  127. package/dist/server/migrations/20260429000000-add-llm-fields.d.ts +0 -7
  128. package/dist/server/migrations/20260429000000-fix-inputargs-json-to-text.d.ts +0 -16
  129. package/dist/server/migrations/20260503000000-add-orchestrator-trace-fields.d.ts +0 -7
  130. package/dist/server/migrations/20260524000000-add-agent-loop-fields-to-skill-executions.d.ts +0 -7
  131. package/dist/server/migrations/20260524001000-add-plan-approval-and-harness-profiles.d.ts +0 -12
  132. package/dist/server/plugin.d.ts +0 -16
  133. package/dist/server/resources/agent-loop.d.ts +0 -3
  134. package/dist/server/resources/tracing.d.ts +0 -7
  135. package/dist/server/services/AgentHarness.d.ts +0 -42
  136. package/dist/server/services/AgentLoopController.d.ts +0 -205
  137. package/dist/server/services/AgentLoopRepository.d.ts +0 -20
  138. package/dist/server/services/AgentLoopService.d.ts +0 -149
  139. package/dist/server/services/AgentPlanValidator.d.ts +0 -4
  140. package/dist/server/services/AgentPlannerService.d.ts +0 -8
  141. package/dist/server/services/AgentRegistryService.d.ts +0 -13
  142. package/dist/server/services/CodeValidator.d.ts +0 -32
  143. package/dist/server/services/ExecutionSpanService.d.ts +0 -46
  144. package/dist/server/services/FileManager.d.ts +0 -28
  145. package/dist/server/services/SandboxRunner.d.ts +0 -41
  146. package/dist/server/services/SkillManager.d.ts +0 -6
  147. package/dist/server/services/SkillRepositoryService.d.ts +0 -22
  148. package/dist/server/services/WorkerEnvManager.d.ts +0 -26
  149. package/dist/server/skill-hub/actions/git-import.d.ts +0 -21
  150. package/dist/server/skill-hub/mcp/McpController.d.ts +0 -15
  151. package/dist/server/skill-hub/plugin.d.ts +0 -61
  152. package/dist/server/skill-hub/tasks/SkillExecutionTask.d.ts +0 -16
  153. package/dist/server/skill-hub/utils/json-fields.d.ts +0 -7
  154. package/dist/server/tools/agent-loop.d.ts +0 -235
  155. package/dist/server/tools/delegate-task.d.ts +0 -19
  156. package/dist/server/tools/external-rag-search.d.ts +0 -42
  157. package/dist/server/tools/orchestrator-plan.d.ts +0 -205
  158. package/dist/server/tools/skill-execute.d.ts +0 -36
@@ -1,106 +1,106 @@
1
- import { CollectionOptions } from '@nocobase/database';
2
-
3
- export default {
4
- name: 'skillExecutions',
5
- title: 'Skill Executions',
6
- fields: [
7
- {
8
- name: 'id',
9
- type: 'bigInt',
10
- autoIncrement: true,
11
- primaryKey: true,
12
- },
13
- {
14
- name: 'skill',
15
- type: 'belongsTo',
16
- target: 'skillDefinitions',
17
- foreignKey: 'skillId',
18
- },
19
- {
20
- // 'pending' | 'running' | 'succeeded' | 'failed' | 'canceled' | 'timeout'
21
- name: 'status',
22
- type: 'string',
23
- length: 20,
24
- defaultValue: 'pending',
25
- },
26
- {
27
- name: 'inputArgs',
28
- type: 'text',
29
- },
30
- {
31
- // Final code after template rendering
32
- name: 'executedCode',
33
- type: 'text',
34
- },
35
- {
36
- name: 'stdout',
37
- type: 'text',
38
- },
39
- {
40
- name: 'stderr',
41
- type: 'text',
42
- },
43
- {
44
- // [{ name, size, mimeType }]
45
- name: 'outputFiles',
46
- type: 'text',
47
- defaultValue: null,
48
- },
49
- {
50
- name: 'durationMs',
51
- type: 'integer',
52
- },
53
- {
54
- name: 'sessionId',
55
- type: 'string',
56
- length: 100,
57
- allowNull: true,
58
- },
59
- {
60
- name: 'orchestratorRootRunId',
61
- type: 'string',
62
- length: 100,
63
- allowNull: true,
64
- },
65
- {
66
- name: 'orchestratorSpanId',
67
- type: 'string',
68
- length: 100,
69
- allowNull: true,
70
- },
71
- {
72
- name: 'orchestratorParentSpanId',
73
- type: 'string',
74
- length: 100,
75
- allowNull: true,
76
- },
77
- {
78
- name: 'orchestratorToolCallId',
79
- type: 'string',
80
- length: 100,
81
- allowNull: true,
82
- },
83
- {
84
- name: 'agentLoopRunId',
85
- type: 'string',
86
- length: 100,
87
- allowNull: true,
88
- },
89
- {
90
- name: 'agentLoopStepId',
91
- type: 'string',
92
- length: 100,
93
- allowNull: true,
94
- },
95
- {
96
- name: 'triggeredBy',
97
- type: 'belongsTo',
98
- target: 'users',
99
- foreignKey: 'triggeredById',
100
- },
101
- {
102
- name: 'createdAt',
103
- type: 'date',
104
- },
105
- ],
106
- } as CollectionOptions;
1
+ import { CollectionOptions } from '@nocobase/database';
2
+
3
+ export default {
4
+ name: 'skillExecutions',
5
+ title: 'Skill Executions',
6
+ fields: [
7
+ {
8
+ name: 'id',
9
+ type: 'bigInt',
10
+ autoIncrement: true,
11
+ primaryKey: true,
12
+ },
13
+ {
14
+ name: 'skill',
15
+ type: 'belongsTo',
16
+ target: 'skillDefinitions',
17
+ foreignKey: 'skillId',
18
+ },
19
+ {
20
+ // 'pending' | 'running' | 'succeeded' | 'failed' | 'canceled' | 'timeout'
21
+ name: 'status',
22
+ type: 'string',
23
+ length: 20,
24
+ defaultValue: 'pending',
25
+ },
26
+ {
27
+ name: 'inputArgs',
28
+ type: 'text',
29
+ },
30
+ {
31
+ // Final code after template rendering
32
+ name: 'executedCode',
33
+ type: 'text',
34
+ },
35
+ {
36
+ name: 'stdout',
37
+ type: 'text',
38
+ },
39
+ {
40
+ name: 'stderr',
41
+ type: 'text',
42
+ },
43
+ {
44
+ // [{ name, size, mimeType }]
45
+ name: 'outputFiles',
46
+ type: 'text',
47
+ defaultValue: null,
48
+ },
49
+ {
50
+ name: 'durationMs',
51
+ type: 'integer',
52
+ },
53
+ {
54
+ name: 'sessionId',
55
+ type: 'string',
56
+ length: 100,
57
+ allowNull: true,
58
+ },
59
+ {
60
+ name: 'orchestratorRootRunId',
61
+ type: 'string',
62
+ length: 100,
63
+ allowNull: true,
64
+ },
65
+ {
66
+ name: 'orchestratorSpanId',
67
+ type: 'string',
68
+ length: 100,
69
+ allowNull: true,
70
+ },
71
+ {
72
+ name: 'orchestratorParentSpanId',
73
+ type: 'string',
74
+ length: 100,
75
+ allowNull: true,
76
+ },
77
+ {
78
+ name: 'orchestratorToolCallId',
79
+ type: 'string',
80
+ length: 100,
81
+ allowNull: true,
82
+ },
83
+ {
84
+ name: 'agentLoopRunId',
85
+ type: 'string',
86
+ length: 100,
87
+ allowNull: true,
88
+ },
89
+ {
90
+ name: 'agentLoopStepId',
91
+ type: 'string',
92
+ length: 100,
93
+ allowNull: true,
94
+ },
95
+ {
96
+ name: 'triggeredBy',
97
+ type: 'belongsTo',
98
+ target: 'users',
99
+ foreignKey: 'triggeredById',
100
+ },
101
+ {
102
+ name: 'createdAt',
103
+ type: 'date',
104
+ },
105
+ ],
106
+ } as CollectionOptions;
@@ -1,65 +1,65 @@
1
- import { CollectionOptions } from '@nocobase/database';
2
-
3
- export default {
4
- name: 'skillLoopConfigs',
5
- title: 'Skill Loop Configs',
6
- fields: [
7
- {
8
- name: 'id',
9
- type: 'bigInt',
10
- autoIncrement: true,
11
- primaryKey: true,
12
- },
13
- {
14
- name: 'skill',
15
- type: 'belongsTo',
16
- target: 'skillDefinitions',
17
- foreignKey: 'skillId',
18
- },
19
- {
20
- name: 'enabled',
21
- type: 'boolean',
22
- defaultValue: true,
23
- },
24
- {
25
- name: 'title',
26
- type: 'string',
27
- length: 200,
28
- },
29
- {
30
- name: 'templateKey',
31
- type: 'string',
32
- length: 80,
33
- defaultValue: 'confirm',
34
- },
35
- {
36
- name: 'prompt',
37
- type: 'text',
38
- },
39
- {
40
- // Resolved interaction schema consumed by the generic Skill Hub UI card.
41
- name: 'schema',
42
- type: 'text',
43
- },
44
- {
45
- // Optional template-specific state for future loop renderers.
46
- name: 'config',
47
- type: 'text',
48
- defaultValue: null,
49
- },
50
- {
51
- name: 'createdAt',
52
- type: 'date',
53
- },
54
- {
55
- name: 'updatedAt',
56
- type: 'date',
57
- },
58
- {
59
- name: 'createdBy',
60
- type: 'belongsTo',
61
- target: 'users',
62
- foreignKey: 'createdById',
63
- },
64
- ],
65
- } as CollectionOptions;
1
+ import { CollectionOptions } from '@nocobase/database';
2
+
3
+ export default {
4
+ name: 'skillLoopConfigs',
5
+ title: 'Skill Loop Configs',
6
+ fields: [
7
+ {
8
+ name: 'id',
9
+ type: 'bigInt',
10
+ autoIncrement: true,
11
+ primaryKey: true,
12
+ },
13
+ {
14
+ name: 'skill',
15
+ type: 'belongsTo',
16
+ target: 'skillDefinitions',
17
+ foreignKey: 'skillId',
18
+ },
19
+ {
20
+ name: 'enabled',
21
+ type: 'boolean',
22
+ defaultValue: true,
23
+ },
24
+ {
25
+ name: 'title',
26
+ type: 'string',
27
+ length: 200,
28
+ },
29
+ {
30
+ name: 'templateKey',
31
+ type: 'string',
32
+ length: 80,
33
+ defaultValue: 'confirm',
34
+ },
35
+ {
36
+ name: 'prompt',
37
+ type: 'text',
38
+ },
39
+ {
40
+ // Resolved interaction schema consumed by the generic Skill Hub UI card.
41
+ name: 'schema',
42
+ type: 'text',
43
+ },
44
+ {
45
+ // Optional template-specific state for future loop renderers.
46
+ name: 'config',
47
+ type: 'text',
48
+ defaultValue: null,
49
+ },
50
+ {
51
+ name: 'createdAt',
52
+ type: 'date',
53
+ },
54
+ {
55
+ name: 'updatedAt',
56
+ type: 'date',
57
+ },
58
+ {
59
+ name: 'createdBy',
60
+ type: 'belongsTo',
61
+ target: 'users',
62
+ foreignKey: 'createdById',
63
+ },
64
+ ],
65
+ } as CollectionOptions;
@@ -1,30 +1,30 @@
1
- import { Migration } from '@nocobase/server';
2
-
3
- export default class AddAgentLoopFieldsToSkillExecutions extends Migration {
4
- on = 'afterLoad';
5
- appVersion = '>=0.1.0';
6
-
7
- async up() {
8
- const queryInterface = (this as any).db.sequelize.getQueryInterface();
9
- const tablePrefix = (this as any).db.options.tablePrefix || '';
10
- const tableName = `${tablePrefix}skillExecutions`;
11
- const tableExists = await queryInterface.tableExists(tableName).catch(() => false);
12
- if (!tableExists) return;
13
-
14
- const tableDesc = await queryInterface.describeTable(tableName);
15
- const addIfMissing = async (name: string) => {
16
- if (tableDesc[name]) return;
17
- await queryInterface.addColumn(tableName, name, {
18
- type: 'VARCHAR(100)',
19
- allowNull: true,
20
- });
21
- };
22
-
23
- await addIfMissing('agentLoopRunId');
24
- await addIfMissing('agentLoopStepId');
25
- }
26
-
27
- async down() {
28
- // No rollback: these nullable trace-link columns are backward compatible.
29
- }
30
- }
1
+ import { Migration } from '@nocobase/server';
2
+
3
+ export default class AddAgentLoopFieldsToSkillExecutions extends Migration {
4
+ on = 'afterLoad';
5
+ appVersion = '>=0.1.0';
6
+
7
+ async up() {
8
+ const queryInterface = (this as any).db.sequelize.getQueryInterface();
9
+ const tablePrefix = (this as any).db.options.tablePrefix || '';
10
+ const tableName = `${tablePrefix}skillExecutions`;
11
+ const tableExists = await queryInterface.tableExists(tableName).catch(() => false);
12
+ if (!tableExists) return;
13
+
14
+ const tableDesc = await queryInterface.describeTable(tableName);
15
+ const addIfMissing = async (name: string) => {
16
+ if (tableDesc[name]) return;
17
+ await queryInterface.addColumn(tableName, name, {
18
+ type: 'VARCHAR(100)',
19
+ allowNull: true,
20
+ });
21
+ };
22
+
23
+ await addIfMissing('agentLoopRunId');
24
+ await addIfMissing('agentLoopStepId');
25
+ }
26
+
27
+ async down() {
28
+ // No rollback: these nullable trace-link columns are backward compatible.
29
+ }
30
+ }