plugin-agent-orchestrator 1.0.28 → 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.
- package/README.md +9 -7
- package/dist/client/index.js +1 -1
- package/dist/client-v2/{214.723affb37c13bf7a.js → 214.79650a549273f163.js} +1 -1
- package/dist/client-v2/264.718a107e43fc163c.js +10 -0
- package/dist/client-v2/373.f5d5292e53c4e832.js +10 -0
- package/dist/client-v2/{41.1805b2edfaa4afe2.js → 41.ba6e080cc0488143.js} +1 -1
- package/dist/client-v2/418.29e713f79131eece.js +10 -0
- package/dist/client-v2/619.bd3c5698b40705c3.js +10 -0
- package/dist/client-v2/677.a991ce0250ff5c77.js +10 -0
- package/dist/client-v2/{70.a15d7fcec7c41768.js → 70.bda9518881c05360.js} +1 -1
- package/dist/client-v2/925.f5370de8f6632d65.js +10 -0
- package/dist/client-v2/index.js +1 -1
- package/dist/externalVersion.js +7 -10
- package/dist/locale/en-US.json +94 -25
- package/dist/locale/vi-VN.json +94 -25
- package/dist/locale/zh-CN.json +94 -25
- package/dist/server/collections/agent-execution-spans.js +37 -0
- package/dist/server/collections/agent-harness-profiles.js +2 -2
- package/dist/server/collections/agent-memory-contexts.js +125 -0
- package/dist/server/collections/orchestrator-logs.js +2 -2
- package/dist/server/migrations/20260425000000-add-interaction-schema.js +3 -1
- package/dist/server/migrations/20260427000000-change-packages-to-text.js +3 -1
- package/dist/server/migrations/20260427000001-change-other-json-to-text.js +6 -2
- package/dist/server/migrations/20260524001000-add-plan-approval-and-harness-profiles.js +21 -19
- package/dist/server/migrations/20260621000000-native-policy-profile-defaults.js +193 -0
- package/dist/server/plugin.js +128 -74
- package/dist/server/resources/agent-monitor.js +454 -0
- package/dist/server/services/AgentHarness.js +24 -499
- package/dist/server/services/AgentMemoryContextService.js +216 -0
- package/dist/server/services/ExecutionSpanService.js +2 -2
- package/dist/server/services/NativeSubAgentObserver.js +413 -0
- package/dist/server/skill-hub/plugin.js +81 -5
- package/dist/server/skill-hub/tasks/SkillExecutionTask.js +9 -3
- package/dist/server/tools/delegate-task.js +11 -589
- package/dist/server/utils/skill-settings.js +18 -1
- package/package.json +47 -49
- package/src/client/AIEmployeesContext.tsx +5 -18
- package/src/client/AgentRunsTab.tsx +2 -771
- package/src/client/HarnessProfilesTab.tsx +2 -257
- package/src/client/OrchestratorSettings.tsx +97 -106
- package/src/client/RulesTab.tsx +2 -788
- package/src/client/plugin.tsx +0 -2
- package/src/client/skill-hub/components/ExecutionHistory.tsx +200 -202
- package/src/client/skill-hub/components/ExecutionProgress.tsx +51 -55
- package/src/client/skill-hub/components/LoopSettings.tsx +331 -331
- package/src/client/skill-hub/components/SkillEditor.tsx +43 -39
- package/src/client/skill-hub/components/SkillManager.tsx +194 -181
- package/src/client/skill-hub/components/SkillTestPanel.tsx +141 -145
- package/src/client/skill-hub/locale.ts +16 -16
- package/src/client/skill-hub/tools/SkillHubCard.tsx +104 -109
- package/src/client/skill-hub/tools/loopTemplates.ts +52 -52
- package/src/client/skill-hub/utils/jsonFields.ts +7 -3
- package/src/client-v2/components/AIEmployeesContext.tsx +3 -16
- package/src/client-v2/components/AgentRunsTab.tsx +182 -455
- package/src/client-v2/components/HarnessProfilesTab.tsx +34 -31
- package/src/client-v2/components/RulesTab.tsx +2 -782
- package/src/client-v2/components/TracingTab.tsx +1 -1
- package/src/client-v2/hooks/useApiRequest.ts +8 -1
- package/src/client-v2/pages/RulesPage.tsx +2 -2
- package/src/client-v2/plugin.tsx +3 -3
- package/src/locale/en-US.json +94 -25
- package/src/locale/vi-VN.json +94 -25
- package/src/locale/zh-CN.json +94 -25
- package/src/server/__tests__/native-sub-agent-observer.test.ts +246 -0
- package/src/server/__tests__/skill-settings.test.ts +6 -6
- package/src/server/__tests__/smoke.test.ts +1 -0
- package/src/server/collections/agent-execution-spans.ts +37 -0
- package/src/server/collections/agent-harness-profiles.ts +59 -59
- package/src/server/collections/agent-loop-events.ts +71 -71
- package/src/server/collections/agent-loop-steps.ts +144 -144
- package/src/server/collections/agent-memory-contexts.ts +95 -0
- package/src/server/collections/orchestrator-logs.ts +4 -4
- package/src/server/collections/skill-definitions.ts +111 -111
- package/src/server/collections/skill-executions.ts +106 -106
- package/src/server/collections/skill-loop-configs.ts +65 -65
- package/src/server/migrations/20260423000000-add-progress-fields.ts +14 -14
- package/src/server/migrations/20260425000000-add-interaction-schema.ts +3 -1
- package/src/server/migrations/20260427000000-change-packages-to-text.ts +4 -2
- package/src/server/migrations/20260427000001-change-other-json-to-text.ts +9 -5
- package/src/server/migrations/20260524000000-add-agent-loop-fields-to-skill-executions.ts +30 -30
- package/src/server/migrations/20260524001000-add-plan-approval-and-harness-profiles.ts +145 -142
- package/src/server/migrations/20260615000000-normalize-ai-employee-tool-bindings.ts +2 -2
- package/src/server/migrations/20260621000000-native-policy-profile-defaults.ts +193 -0
- package/src/server/plugin.ts +151 -94
- package/src/server/resources/agent-monitor.ts +482 -0
- package/src/server/services/AgentHarness.ts +38 -623
- package/src/server/services/AgentMemoryContextService.ts +256 -0
- package/src/server/services/AgentPlanValidator.ts +73 -73
- package/src/server/services/ExecutionSpanService.ts +6 -2
- package/src/server/services/FileManager.ts +144 -144
- package/src/server/services/NativeSubAgentObserver.ts +507 -0
- package/src/server/services/SkillManager.ts +583 -583
- package/src/server/services/SkillRepositoryService.ts +5 -7
- package/src/server/services/TokenTracker.ts +3 -3
- package/src/server/services/WorkerEnvManager.ts +1 -2
- package/src/server/skill-hub/actions/git-import.ts +5 -7
- package/src/server/skill-hub/plugin.ts +89 -6
- package/src/server/skill-hub/tasks/SkillExecutionTask.ts +470 -460
- package/src/server/skill-hub/utils/json-fields.ts +1 -1
- package/src/server/tools/delegate-task.ts +13 -847
- package/src/server/utils/skill-settings.ts +24 -6
- package/dist/client-v2/264.0533912e6c5ea2d7.js +0 -10
- package/dist/client-v2/418.5ae055abf141820e.js +0 -10
- package/dist/client-v2/619.d99d3c9e61c99064.js +0 -10
- package/dist/client-v2/892.72db4161511c8a16.js +0 -10
- package/dist/client-v2/926.87f660b670d85bcc.js +0 -10
- package/src/client/tools/PlanApprovalCard.tsx +0 -176
- package/src/client/tools/registerOrchestratorCards.ts +0 -17
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { Button, Card, Drawer, Form, Input, Popconfirm, Space, Switch, Table, Tag, Typography, message } from 'antd';
|
|
3
3
|
import { DeleteOutlined, EditOutlined, PlusOutlined } from '@ant-design/icons';
|
|
4
4
|
import { useApiClient as useAPIClient, useRequest } from '../hooks/useApiRequest';
|
|
5
|
+
import { useT } from '../skill-hub/locale';
|
|
5
6
|
|
|
6
7
|
const { Text } = Typography;
|
|
7
8
|
|
|
@@ -13,6 +14,7 @@ const parseSettings = (value: string) => {
|
|
|
13
14
|
|
|
14
15
|
export const HarnessProfilesTab: React.FC = () => {
|
|
15
16
|
const api = useAPIClient();
|
|
17
|
+
const t = useT();
|
|
16
18
|
const [open, setOpen] = React.useState(false);
|
|
17
19
|
const [editingRecord, setEditingRecord] = React.useState<any>(null);
|
|
18
20
|
const [form] = Form.useForm();
|
|
@@ -46,11 +48,12 @@ export const HarnessProfilesTab: React.FC = () => {
|
|
|
46
48
|
enabled: true,
|
|
47
49
|
settingsText: JSON.stringify(
|
|
48
50
|
{
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
nativeObserverEnabled: true,
|
|
52
|
+
memoryInjectionEnabled: true,
|
|
53
|
+
memoryScopes: ['public', 'user', 'agent_user'],
|
|
54
|
+
knowledgeScopes: ['public', 'private'],
|
|
55
|
+
maxMemoryContextChars: 6000,
|
|
56
|
+
tracingRetentionDays: 30,
|
|
54
57
|
},
|
|
55
58
|
null,
|
|
56
59
|
2,
|
|
@@ -70,7 +73,7 @@ export const HarnessProfilesTab: React.FC = () => {
|
|
|
70
73
|
try {
|
|
71
74
|
settings = parseSettings(values.settingsText);
|
|
72
75
|
} catch (error: any) {
|
|
73
|
-
message.error(
|
|
76
|
+
message.error(t('Settings JSON is invalid: {{message}}', { message: error?.message || error }));
|
|
74
77
|
return;
|
|
75
78
|
}
|
|
76
79
|
|
|
@@ -90,20 +93,20 @@ export const HarnessProfilesTab: React.FC = () => {
|
|
|
90
93
|
params: { filterByTk: editingRecord.id },
|
|
91
94
|
data: payload,
|
|
92
95
|
});
|
|
93
|
-
message.success('
|
|
96
|
+
message.success(t('Policy profile updated'));
|
|
94
97
|
} else {
|
|
95
98
|
await api.request({
|
|
96
99
|
url: 'agentHarnessProfiles:create',
|
|
97
100
|
method: 'post',
|
|
98
101
|
data: payload,
|
|
99
102
|
});
|
|
100
|
-
message.success('
|
|
103
|
+
message.success(t('Policy profile created'));
|
|
101
104
|
}
|
|
102
105
|
closeDrawer();
|
|
103
106
|
refresh();
|
|
104
107
|
} catch (error: any) {
|
|
105
108
|
const msg = error?.response?.data?.errors?.[0]?.message || error?.message || 'unknown error';
|
|
106
|
-
message.error(
|
|
109
|
+
message.error(t('Save failed: {{message}}', { message: msg }));
|
|
107
110
|
}
|
|
108
111
|
};
|
|
109
112
|
|
|
@@ -114,29 +117,29 @@ export const HarnessProfilesTab: React.FC = () => {
|
|
|
114
117
|
method: 'delete',
|
|
115
118
|
params: { filterByTk: id },
|
|
116
119
|
});
|
|
117
|
-
message.success('
|
|
120
|
+
message.success(t('Policy profile deleted'));
|
|
118
121
|
refresh();
|
|
119
122
|
} catch (error: any) {
|
|
120
|
-
message.error(
|
|
123
|
+
message.error(t('Delete failed: {{message}}', { message: error?.message || t('unknown error') }));
|
|
121
124
|
}
|
|
122
125
|
};
|
|
123
126
|
|
|
124
127
|
const columns = [
|
|
125
128
|
{
|
|
126
|
-
title: 'Tag',
|
|
129
|
+
title: t('Tag'),
|
|
127
130
|
dataIndex: 'tag',
|
|
128
131
|
key: 'tag',
|
|
129
132
|
width: 140,
|
|
130
133
|
render: (tag: string) => <Tag color="blue">{tag}</Tag>,
|
|
131
134
|
},
|
|
132
135
|
{
|
|
133
|
-
title: 'Title',
|
|
136
|
+
title: t('Title'),
|
|
134
137
|
dataIndex: 'title',
|
|
135
138
|
key: 'title',
|
|
136
139
|
render: (title: string, record: any) => title || record.tag,
|
|
137
140
|
},
|
|
138
141
|
{
|
|
139
|
-
title: 'Enabled',
|
|
142
|
+
title: t('Enabled'),
|
|
140
143
|
dataIndex: 'enabled',
|
|
141
144
|
key: 'enabled',
|
|
142
145
|
width: 90,
|
|
@@ -157,7 +160,7 @@ export const HarnessProfilesTab: React.FC = () => {
|
|
|
157
160
|
),
|
|
158
161
|
},
|
|
159
162
|
{
|
|
160
|
-
title: 'Settings',
|
|
163
|
+
title: t('Settings'),
|
|
161
164
|
key: 'settings',
|
|
162
165
|
render: (_: any, record: any) => (
|
|
163
166
|
<Space size={4} wrap>
|
|
@@ -172,17 +175,17 @@ export const HarnessProfilesTab: React.FC = () => {
|
|
|
172
175
|
),
|
|
173
176
|
},
|
|
174
177
|
{
|
|
175
|
-
title: 'Actions',
|
|
178
|
+
title: t('Actions'),
|
|
176
179
|
key: 'actions',
|
|
177
180
|
width: 150,
|
|
178
181
|
render: (_: any, record: any) => (
|
|
179
182
|
<Space>
|
|
180
183
|
<Button type="link" size="small" icon={<EditOutlined />} onClick={() => openDrawer(record)}>
|
|
181
|
-
Edit
|
|
184
|
+
{t('Edit')}
|
|
182
185
|
</Button>
|
|
183
|
-
<Popconfirm title=
|
|
186
|
+
<Popconfirm title={t('Delete this profile?')} onConfirm={() => deleteProfile(record.id)}>
|
|
184
187
|
<Button type="link" size="small" danger icon={<DeleteOutlined />}>
|
|
185
|
-
Delete
|
|
188
|
+
{t('Delete')}
|
|
186
189
|
</Button>
|
|
187
190
|
</Popconfirm>
|
|
188
191
|
</Space>
|
|
@@ -196,10 +199,10 @@ export const HarnessProfilesTab: React.FC = () => {
|
|
|
196
199
|
<Space direction="vertical" size={16} style={{ width: '100%' }}>
|
|
197
200
|
<div style={{ display: 'flex', justifyContent: 'space-between', gap: 16 }}>
|
|
198
201
|
<Text type="secondary">
|
|
199
|
-
|
|
202
|
+
{t('Policy profiles control native observer, tracing retention, and memory/knowledge scopes.')}
|
|
200
203
|
</Text>
|
|
201
204
|
<Button type="primary" icon={<PlusOutlined />} onClick={() => openDrawer()}>
|
|
202
|
-
New
|
|
205
|
+
{t('New Policy')}
|
|
203
206
|
</Button>
|
|
204
207
|
</div>
|
|
205
208
|
<Table
|
|
@@ -214,37 +217,37 @@ export const HarnessProfilesTab: React.FC = () => {
|
|
|
214
217
|
</Card>
|
|
215
218
|
|
|
216
219
|
<Drawer
|
|
217
|
-
title={editingRecord ? 'Edit
|
|
220
|
+
title={editingRecord ? t('Edit Policy Profile') : t('New Policy Profile')}
|
|
218
221
|
width={560}
|
|
219
222
|
open={open}
|
|
220
223
|
onClose={closeDrawer}
|
|
221
224
|
extra={
|
|
222
225
|
<Space>
|
|
223
|
-
<Button onClick={closeDrawer}>Cancel</Button>
|
|
226
|
+
<Button onClick={closeDrawer}>{t('Cancel')}</Button>
|
|
224
227
|
<Button type="primary" onClick={() => form.submit()}>
|
|
225
|
-
Save
|
|
228
|
+
{t('Save')}
|
|
226
229
|
</Button>
|
|
227
230
|
</Space>
|
|
228
231
|
}
|
|
229
232
|
>
|
|
230
233
|
<Form form={form} layout="vertical" onFinish={saveProfile}>
|
|
231
|
-
<Form.Item name="tag" label=
|
|
232
|
-
<Input placeholder=
|
|
234
|
+
<Form.Item name="tag" label={t('Tag')} rules={[{ required: true, message: t('Tag is required') }]}>
|
|
235
|
+
<Input placeholder={t('default')} disabled={editingRecord?.tag === 'default'} />
|
|
233
236
|
</Form.Item>
|
|
234
|
-
<Form.Item name="title" label=
|
|
237
|
+
<Form.Item name="title" label={t('Title')}>
|
|
235
238
|
<Input />
|
|
236
239
|
</Form.Item>
|
|
237
|
-
<Form.Item name="description" label=
|
|
240
|
+
<Form.Item name="description" label={t('Description')}>
|
|
238
241
|
<Input.TextArea rows={3} />
|
|
239
242
|
</Form.Item>
|
|
240
243
|
<Form.Item
|
|
241
244
|
name="settingsText"
|
|
242
|
-
label=
|
|
243
|
-
rules={[{ required: true, message: 'Settings JSON is required' }]}
|
|
245
|
+
label={t('Settings JSON')}
|
|
246
|
+
rules={[{ required: true, message: t('Settings JSON is required') }]}
|
|
244
247
|
>
|
|
245
248
|
<Input.TextArea rows={12} spellCheck={false} />
|
|
246
249
|
</Form.Item>
|
|
247
|
-
<Form.Item name="enabled" label=
|
|
250
|
+
<Form.Item name="enabled" label={t('Enabled')} valuePropName="checked">
|
|
248
251
|
<Switch />
|
|
249
252
|
</Form.Item>
|
|
250
253
|
</Form>
|