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,59 +1,59 @@
1
- import { defineCollection } from '@nocobase/database';
2
-
3
- export default defineCollection({
4
- name: 'agentHarnessProfiles',
5
- title: 'Agent Harness Profiles',
6
- fields: [
7
- {
8
- name: 'id',
9
- type: 'bigInt',
10
- autoIncrement: true,
11
- primaryKey: true,
12
- },
13
- {
14
- name: 'tag',
15
- type: 'string',
16
- length: 100,
17
- allowNull: false,
18
- unique: true,
19
- comment: 'Stable harness profile tag used by orchestration rules and agent loop runs.',
20
- },
21
- {
22
- name: 'title',
23
- type: 'string',
24
- length: 200,
25
- },
26
- {
27
- name: 'description',
28
- type: 'text',
29
- },
30
- {
31
- name: 'enabled',
32
- type: 'boolean',
33
- defaultValue: true,
34
- },
35
- {
36
- name: 'settings',
37
- type: 'json',
38
- defaultValue: {},
39
- comment: 'Harness limits and behavior settings such as max parallel sub-agents, approval mode, and tool policy.',
40
- },
41
- {
42
- name: 'createdAt',
43
- type: 'date',
44
- },
45
- {
46
- name: 'updatedAt',
47
- type: 'date',
48
- },
49
- ],
50
- indexes: [
51
- {
52
- unique: true,
53
- fields: ['tag'],
54
- },
55
- {
56
- fields: ['enabled'],
57
- },
58
- ],
59
- });
1
+ import { defineCollection } from '@nocobase/database';
2
+
3
+ export default defineCollection({
4
+ name: 'agentHarnessProfiles',
5
+ title: 'Agent Harness Profiles',
6
+ fields: [
7
+ {
8
+ name: 'id',
9
+ type: 'bigInt',
10
+ autoIncrement: true,
11
+ primaryKey: true,
12
+ },
13
+ {
14
+ name: 'tag',
15
+ type: 'string',
16
+ length: 100,
17
+ allowNull: false,
18
+ unique: true,
19
+ comment: 'Stable harness profile tag used by orchestration rules and agent loop runs.',
20
+ },
21
+ {
22
+ name: 'title',
23
+ type: 'string',
24
+ length: 200,
25
+ },
26
+ {
27
+ name: 'description',
28
+ type: 'text',
29
+ },
30
+ {
31
+ name: 'enabled',
32
+ type: 'boolean',
33
+ defaultValue: true,
34
+ },
35
+ {
36
+ name: 'settings',
37
+ type: 'json',
38
+ defaultValue: {},
39
+ comment: 'Harness limits and behavior settings such as max parallel sub-agents, approval mode, and tool policy.',
40
+ },
41
+ {
42
+ name: 'createdAt',
43
+ type: 'date',
44
+ },
45
+ {
46
+ name: 'updatedAt',
47
+ type: 'date',
48
+ },
49
+ ],
50
+ indexes: [
51
+ {
52
+ unique: true,
53
+ fields: ['tag'],
54
+ },
55
+ {
56
+ fields: ['enabled'],
57
+ },
58
+ ],
59
+ });
@@ -1,71 +1,71 @@
1
- import { defineCollection } from '@nocobase/database';
2
-
3
- export default defineCollection({
4
- name: 'agentLoopEvents',
5
- title: 'Agent Loop Events',
6
- fields: [
7
- {
8
- name: 'id',
9
- type: 'bigInt',
10
- autoIncrement: true,
11
- primaryKey: true,
12
- },
13
- {
14
- name: 'run',
15
- type: 'belongsTo',
16
- target: 'agentLoopRuns',
17
- foreignKey: 'runId',
18
- },
19
- {
20
- name: 'step',
21
- type: 'belongsTo',
22
- target: 'agentLoopSteps',
23
- foreignKey: 'stepId',
24
- },
25
- {
26
- name: 'type',
27
- type: 'string',
28
- length: 80,
29
- },
30
- {
31
- name: 'title',
32
- type: 'string',
33
- length: 500,
34
- },
35
- {
36
- name: 'content',
37
- type: 'text',
38
- },
39
- {
40
- name: 'status',
41
- type: 'string',
42
- length: 30,
43
- },
44
- {
45
- name: 'payload',
46
- type: 'json',
47
- defaultValue: {},
48
- },
49
- {
50
- name: 'user',
51
- type: 'belongsTo',
52
- target: 'users',
53
- foreignKey: 'userId',
54
- },
55
- {
56
- name: 'createdAt',
57
- type: 'date',
58
- },
59
- ],
60
- indexes: [
61
- {
62
- fields: ['runId'],
63
- },
64
- {
65
- fields: ['stepId'],
66
- },
67
- {
68
- fields: ['type'],
69
- },
70
- ],
71
- });
1
+ import { defineCollection } from '@nocobase/database';
2
+
3
+ export default defineCollection({
4
+ name: 'agentLoopEvents',
5
+ title: 'Agent Loop Events',
6
+ fields: [
7
+ {
8
+ name: 'id',
9
+ type: 'bigInt',
10
+ autoIncrement: true,
11
+ primaryKey: true,
12
+ },
13
+ {
14
+ name: 'run',
15
+ type: 'belongsTo',
16
+ target: 'agentLoopRuns',
17
+ foreignKey: 'runId',
18
+ },
19
+ {
20
+ name: 'step',
21
+ type: 'belongsTo',
22
+ target: 'agentLoopSteps',
23
+ foreignKey: 'stepId',
24
+ },
25
+ {
26
+ name: 'type',
27
+ type: 'string',
28
+ length: 80,
29
+ },
30
+ {
31
+ name: 'title',
32
+ type: 'string',
33
+ length: 500,
34
+ },
35
+ {
36
+ name: 'content',
37
+ type: 'text',
38
+ },
39
+ {
40
+ name: 'status',
41
+ type: 'string',
42
+ length: 30,
43
+ },
44
+ {
45
+ name: 'payload',
46
+ type: 'json',
47
+ defaultValue: {},
48
+ },
49
+ {
50
+ name: 'user',
51
+ type: 'belongsTo',
52
+ target: 'users',
53
+ foreignKey: 'userId',
54
+ },
55
+ {
56
+ name: 'createdAt',
57
+ type: 'date',
58
+ },
59
+ ],
60
+ indexes: [
61
+ {
62
+ fields: ['runId'],
63
+ },
64
+ {
65
+ fields: ['stepId'],
66
+ },
67
+ {
68
+ fields: ['type'],
69
+ },
70
+ ],
71
+ });
@@ -40,7 +40,8 @@ export default defineCollection({
40
40
  type: 'string',
41
41
  length: 30,
42
42
  defaultValue: 'planning',
43
- comment: 'planning, waiting_plan_approval, approved, running, waiting_user, needs_replan, succeeded, failed, rejected, canceled',
43
+ comment:
44
+ 'planning, waiting_plan_approval, approved, running, waiting_user, needs_replan, succeeded, failed, rejected, canceled',
44
45
  },
45
46
  {
46
47
  name: 'currentStepId',
@@ -113,6 +114,42 @@ export default defineCollection({
113
114
  name: 'summary',
114
115
  type: 'text',
115
116
  },
117
+ {
118
+ name: 'totalInputTokens',
119
+ type: 'integer',
120
+ defaultValue: 0,
121
+ comment: 'Accumulated input/prompt tokens across all spans in this run',
122
+ },
123
+ {
124
+ name: 'totalOutputTokens',
125
+ type: 'integer',
126
+ defaultValue: 0,
127
+ comment: 'Accumulated output/completion tokens across all spans in this run',
128
+ },
129
+ {
130
+ name: 'totalTokens',
131
+ type: 'integer',
132
+ defaultValue: 0,
133
+ comment: 'Total accumulated tokens (input + output) across all spans in this run',
134
+ },
135
+ {
136
+ name: 'totalCost',
137
+ type: 'float',
138
+ defaultValue: 0,
139
+ comment: 'Estimated total cost in USD across all spans in this run',
140
+ },
141
+ {
142
+ name: 'budgetMaxTokens',
143
+ type: 'integer',
144
+ allowNull: true,
145
+ comment: 'Maximum allowed tokens for this run (null = unlimited)',
146
+ },
147
+ {
148
+ name: 'budgetMaxCost',
149
+ type: 'float',
150
+ allowNull: true,
151
+ comment: 'Maximum allowed cost in USD for this run (null = unlimited)',
152
+ },
116
153
  {
117
154
  name: 'metadata',
118
155
  type: 'json',
@@ -1,144 +1,144 @@
1
- import { defineCollection } from '@nocobase/database';
2
-
3
- export default defineCollection({
4
- name: 'agentLoopSteps',
5
- title: 'Agent Loop Steps',
6
- fields: [
7
- {
8
- name: 'id',
9
- type: 'bigInt',
10
- autoIncrement: true,
11
- primaryKey: true,
12
- },
13
- {
14
- name: 'run',
15
- type: 'belongsTo',
16
- target: 'agentLoopRuns',
17
- foreignKey: 'runId',
18
- },
19
- {
20
- name: 'parentStep',
21
- type: 'belongsTo',
22
- target: 'agentLoopSteps',
23
- foreignKey: 'parentStepId',
24
- },
25
- {
26
- name: 'planKey',
27
- type: 'string',
28
- length: 100,
29
- },
30
- {
31
- name: 'index',
32
- type: 'integer',
33
- defaultValue: 0,
34
- },
35
- {
36
- name: 'title',
37
- type: 'string',
38
- length: 500,
39
- },
40
- {
41
- name: 'description',
42
- type: 'text',
43
- },
44
- {
45
- name: 'type',
46
- type: 'string',
47
- length: 30,
48
- comment: 'reasoning, skill, tool, sub_agent, verification',
49
- },
50
- {
51
- name: 'target',
52
- type: 'string',
53
- length: 200,
54
- },
55
- {
56
- name: 'input',
57
- type: 'json',
58
- defaultValue: {},
59
- },
60
- {
61
- name: 'output',
62
- type: 'json',
63
- defaultValue: {},
64
- },
65
- {
66
- name: 'status',
67
- type: 'string',
68
- length: 30,
69
- defaultValue: 'pending',
70
- comment: 'pending, running, waiting_user, succeeded, failed, skipped',
71
- },
72
- {
73
- name: 'attempt',
74
- type: 'integer',
75
- defaultValue: 0,
76
- },
77
- {
78
- name: 'maxAttempts',
79
- type: 'integer',
80
- defaultValue: 2,
81
- },
82
- {
83
- name: 'dependsOn',
84
- type: 'json',
85
- defaultValue: [],
86
- },
87
- {
88
- name: 'dependencyPolicy',
89
- type: 'string',
90
- length: 30,
91
- defaultValue: 'require_success',
92
- comment: 'require_success or allow_skipped',
93
- },
94
- {
95
- name: 'approval',
96
- type: 'json',
97
- defaultValue: {},
98
- },
99
- {
100
- name: 'error',
101
- type: 'text',
102
- },
103
- {
104
- name: 'agentExecutionSpanId',
105
- type: 'bigInt',
106
- },
107
- {
108
- name: 'skillExecutionId',
109
- type: 'bigInt',
110
- },
111
- {
112
- name: 'metadata',
113
- type: 'json',
114
- defaultValue: {},
115
- },
116
- {
117
- name: 'startedAt',
118
- type: 'date',
119
- },
120
- {
121
- name: 'endedAt',
122
- type: 'date',
123
- },
124
- {
125
- name: 'createdAt',
126
- type: 'date',
127
- },
128
- {
129
- name: 'updatedAt',
130
- type: 'date',
131
- },
132
- ],
133
- indexes: [
134
- {
135
- fields: ['runId'],
136
- },
137
- {
138
- fields: ['status'],
139
- },
140
- {
141
- fields: ['planKey'],
142
- },
143
- ],
144
- });
1
+ import { defineCollection } from '@nocobase/database';
2
+
3
+ export default defineCollection({
4
+ name: 'agentLoopSteps',
5
+ title: 'Agent Loop Steps',
6
+ fields: [
7
+ {
8
+ name: 'id',
9
+ type: 'bigInt',
10
+ autoIncrement: true,
11
+ primaryKey: true,
12
+ },
13
+ {
14
+ name: 'run',
15
+ type: 'belongsTo',
16
+ target: 'agentLoopRuns',
17
+ foreignKey: 'runId',
18
+ },
19
+ {
20
+ name: 'parentStep',
21
+ type: 'belongsTo',
22
+ target: 'agentLoopSteps',
23
+ foreignKey: 'parentStepId',
24
+ },
25
+ {
26
+ name: 'planKey',
27
+ type: 'string',
28
+ length: 100,
29
+ },
30
+ {
31
+ name: 'index',
32
+ type: 'integer',
33
+ defaultValue: 0,
34
+ },
35
+ {
36
+ name: 'title',
37
+ type: 'string',
38
+ length: 500,
39
+ },
40
+ {
41
+ name: 'description',
42
+ type: 'text',
43
+ },
44
+ {
45
+ name: 'type',
46
+ type: 'string',
47
+ length: 30,
48
+ comment: 'reasoning, skill, tool, sub_agent, verification',
49
+ },
50
+ {
51
+ name: 'target',
52
+ type: 'string',
53
+ length: 200,
54
+ },
55
+ {
56
+ name: 'input',
57
+ type: 'json',
58
+ defaultValue: {},
59
+ },
60
+ {
61
+ name: 'output',
62
+ type: 'json',
63
+ defaultValue: {},
64
+ },
65
+ {
66
+ name: 'status',
67
+ type: 'string',
68
+ length: 30,
69
+ defaultValue: 'pending',
70
+ comment: 'pending, running, waiting_user, succeeded, failed, skipped',
71
+ },
72
+ {
73
+ name: 'attempt',
74
+ type: 'integer',
75
+ defaultValue: 0,
76
+ },
77
+ {
78
+ name: 'maxAttempts',
79
+ type: 'integer',
80
+ defaultValue: 2,
81
+ },
82
+ {
83
+ name: 'dependsOn',
84
+ type: 'json',
85
+ defaultValue: [],
86
+ },
87
+ {
88
+ name: 'dependencyPolicy',
89
+ type: 'string',
90
+ length: 30,
91
+ defaultValue: 'require_success',
92
+ comment: 'require_success or allow_skipped',
93
+ },
94
+ {
95
+ name: 'approval',
96
+ type: 'json',
97
+ defaultValue: {},
98
+ },
99
+ {
100
+ name: 'error',
101
+ type: 'text',
102
+ },
103
+ {
104
+ name: 'agentExecutionSpanId',
105
+ type: 'bigInt',
106
+ },
107
+ {
108
+ name: 'skillExecutionId',
109
+ type: 'bigInt',
110
+ },
111
+ {
112
+ name: 'metadata',
113
+ type: 'json',
114
+ defaultValue: {},
115
+ },
116
+ {
117
+ name: 'startedAt',
118
+ type: 'date',
119
+ },
120
+ {
121
+ name: 'endedAt',
122
+ type: 'date',
123
+ },
124
+ {
125
+ name: 'createdAt',
126
+ type: 'date',
127
+ },
128
+ {
129
+ name: 'updatedAt',
130
+ type: 'date',
131
+ },
132
+ ],
133
+ indexes: [
134
+ {
135
+ fields: ['runId'],
136
+ },
137
+ {
138
+ fields: ['status'],
139
+ },
140
+ {
141
+ fields: ['planKey'],
142
+ },
143
+ ],
144
+ });
@@ -46,6 +46,20 @@ export default defineCollection({
46
46
  comment:
47
47
  'Max LangGraph reasoning steps (tool-call + LLM-step iterations) per delegation. Lower = safer; higher = more complex multi-step tasks. Default 50.',
48
48
  },
49
+ {
50
+ name: 'budgetMaxTokens',
51
+ type: 'integer',
52
+ defaultValue: 0,
53
+ allowNull: true,
54
+ comment: 'Maximum tokens allowed per sub-agent invocation (0 = unlimited)',
55
+ },
56
+ {
57
+ name: 'budgetMaxCost',
58
+ type: 'float',
59
+ defaultValue: 0,
60
+ allowNull: true,
61
+ comment: 'Maximum cost in USD allowed per sub-agent invocation (0 = unlimited)',
62
+ },
49
63
  {
50
64
  name: 'harnessTag',
51
65
  type: 'string',