@agntk/core 0.1.1 → 0.2.0
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 +56 -90
- package/dist/advanced/index.d.ts +9 -2
- package/dist/advanced/index.d.ts.map +1 -1
- package/dist/advanced/index.js +13 -2
- package/dist/advanced/index.js.map +1 -1
- package/dist/agent.d.ts +27 -31
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +228 -275
- package/dist/agent.js.map +1 -1
- package/dist/config/schema.d.ts +38 -38
- package/dist/evals/runner.js +16 -9
- package/dist/evals/runner.js.map +1 -1
- package/dist/evals/types.d.ts +1 -1
- package/dist/evals/types.d.ts.map +1 -1
- package/dist/index.d.ts +4 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -9
- package/dist/index.js.map +1 -1
- package/dist/observability/langfuse.d.ts +2 -2
- package/dist/observability/langfuse.d.ts.map +1 -1
- package/dist/observability/langfuse.js +39 -17
- package/dist/observability/langfuse.js.map +1 -1
- package/dist/presets/sub-agent-configs.d.ts +11 -3
- package/dist/presets/sub-agent-configs.d.ts.map +1 -1
- package/dist/presets/sub-agent-configs.js +5 -10
- package/dist/presets/sub-agent-configs.js.map +1 -1
- package/dist/presets/tools.d.ts +5 -5
- package/dist/tools/browser/tool.d.ts +2 -2
- package/dist/tools/browser/types.d.ts +2 -2
- package/dist/tools/plan/tools.d.ts +1 -1
- package/dist/tools/plan/types.d.ts +2 -2
- package/dist/tools/progress/index.d.ts +2 -2
- package/dist/tools/spawn-agent/index.d.ts +7 -9
- package/dist/tools/spawn-agent/index.d.ts.map +1 -1
- package/dist/tools/spawn-agent/index.js +2 -4
- package/dist/tools/spawn-agent/index.js.map +1 -1
- package/dist/types/agent.d.ts +69 -199
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/agent.js +4 -2
- package/dist/types/agent.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/usage-limits.d.ts +1 -1
- package/dist/usage-limits.js +1 -1
- package/dist/workflow/index.d.ts +1 -5
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +1 -9
- package/dist/workflow/index.js.map +1 -1
- package/dist/wrappers/best-of-n.d.ts +1 -1
- package/dist/wrappers/best-of-n.d.ts.map +1 -1
- package/dist/wrappers/best-of-n.js +11 -6
- package/dist/wrappers/best-of-n.js.map +1 -1
- package/package.json +4 -14
- package/dist/memory/engine.d.ts +0 -130
- package/dist/memory/engine.d.ts.map +0 -1
- package/dist/memory/engine.js +0 -227
- package/dist/memory/engine.js.map +0 -1
- package/dist/memory/vectra-store.d.ts +0 -31
- package/dist/memory/vectra-store.d.ts.map +0 -1
- package/dist/memory/vectra-store.js +0 -122
- package/dist/memory/vectra-store.js.map +0 -1
- package/dist/pool/index.d.ts +0 -7
- package/dist/pool/index.d.ts.map +0 -1
- package/dist/pool/index.js +0 -6
- package/dist/pool/index.js.map +0 -1
- package/dist/pool/specialist-pool.d.ts +0 -59
- package/dist/pool/specialist-pool.d.ts.map +0 -1
- package/dist/pool/specialist-pool.js +0 -224
- package/dist/pool/specialist-pool.js.map +0 -1
- package/dist/pool/tools.d.ts +0 -63
- package/dist/pool/tools.d.ts.map +0 -1
- package/dist/pool/tools.js +0 -83
- package/dist/pool/tools.js.map +0 -1
- package/dist/pool/types.d.ts +0 -79
- package/dist/pool/types.d.ts.map +0 -1
- package/dist/pool/types.js +0 -5
- package/dist/pool/types.js.map +0 -1
- package/dist/presets/index.d.ts +0 -5
- package/dist/presets/index.d.ts.map +0 -1
- package/dist/presets/index.js +0 -5
- package/dist/presets/index.js.map +0 -1
- package/dist/presets/role-registry.d.ts +0 -41
- package/dist/presets/role-registry.d.ts.map +0 -1
- package/dist/presets/role-registry.js +0 -213
- package/dist/presets/role-registry.js.map +0 -1
- package/dist/presets/roles.d.ts +0 -105
- package/dist/presets/roles.d.ts.map +0 -1
- package/dist/presets/roles.js +0 -207
- package/dist/presets/roles.js.map +0 -1
- package/dist/prompts/templates.d.ts +0 -11
- package/dist/prompts/templates.d.ts.map +0 -1
- package/dist/prompts/templates.js +0 -115
- package/dist/prompts/templates.js.map +0 -1
- package/dist/streaming/data-parts.d.ts +0 -163
- package/dist/streaming/data-parts.d.ts.map +0 -1
- package/dist/streaming/data-parts.js +0 -14
- package/dist/streaming/data-parts.js.map +0 -1
- package/dist/streaming/index.d.ts +0 -8
- package/dist/streaming/index.d.ts.map +0 -1
- package/dist/streaming/index.js +0 -10
- package/dist/streaming/index.js.map +0 -1
- package/dist/streaming/transient.d.ts +0 -136
- package/dist/streaming/transient.d.ts.map +0 -1
- package/dist/streaming/transient.js +0 -201
- package/dist/streaming/transient.js.map +0 -1
- package/dist/tools/provider.d.ts +0 -97
- package/dist/tools/provider.d.ts.map +0 -1
- package/dist/tools/provider.js +0 -178
- package/dist/tools/provider.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -35
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -149
- package/dist/utils/logger.js.map +0 -1
- package/dist/workflow/builders/adapt.d.ts +0 -20
- package/dist/workflow/builders/adapt.d.ts.map +0 -1
- package/dist/workflow/builders/adapt.js +0 -33
- package/dist/workflow/builders/adapt.js.map +0 -1
- package/dist/workflow/builders/index.d.ts +0 -8
- package/dist/workflow/builders/index.d.ts.map +0 -1
- package/dist/workflow/builders/index.js +0 -7
- package/dist/workflow/builders/index.js.map +0 -1
- package/dist/workflow/builders/parallel.d.ts +0 -25
- package/dist/workflow/builders/parallel.d.ts.map +0 -1
- package/dist/workflow/builders/parallel.js +0 -60
- package/dist/workflow/builders/parallel.js.map +0 -1
- package/dist/workflow/builders/pipeline.d.ts +0 -22
- package/dist/workflow/builders/pipeline.d.ts.map +0 -1
- package/dist/workflow/builders/pipeline.js +0 -48
- package/dist/workflow/builders/pipeline.js.map +0 -1
- package/dist/workflow/builders/types.d.ts +0 -54
- package/dist/workflow/builders/types.d.ts.map +0 -1
- package/dist/workflow/builders/types.js +0 -5
- package/dist/workflow/builders/types.js.map +0 -1
- package/dist/workflow/durable-agent.d.ts +0 -128
- package/dist/workflow/durable-agent.d.ts.map +0 -1
- package/dist/workflow/durable-agent.js +0 -323
- package/dist/workflow/durable-agent.js.map +0 -1
- package/dist/workflow/schedulers.d.ts +0 -231
- package/dist/workflow/schedulers.d.ts.map +0 -1
- package/dist/workflow/schedulers.js +0 -250
- package/dist/workflow/schedulers.js.map +0 -1
- package/dist/workflow/team/create-team.d.ts +0 -34
- package/dist/workflow/team/create-team.d.ts.map +0 -1
- package/dist/workflow/team/create-team.js +0 -242
- package/dist/workflow/team/create-team.js.map +0 -1
- package/dist/workflow/team/index.d.ts +0 -9
- package/dist/workflow/team/index.d.ts.map +0 -1
- package/dist/workflow/team/index.js +0 -8
- package/dist/workflow/team/index.js.map +0 -1
- package/dist/workflow/team/machines.d.ts +0 -152
- package/dist/workflow/team/machines.d.ts.map +0 -1
- package/dist/workflow/team/machines.js +0 -197
- package/dist/workflow/team/machines.js.map +0 -1
- package/dist/workflow/team/task-board.d.ts +0 -47
- package/dist/workflow/team/task-board.d.ts.map +0 -1
- package/dist/workflow/team/task-board.js +0 -111
- package/dist/workflow/team/task-board.js.map +0 -1
- package/dist/workflow/team/tools.d.ts +0 -66
- package/dist/workflow/team/tools.d.ts.map +0 -1
- package/dist/workflow/team/tools.js +0 -100
- package/dist/workflow/team/tools.js.map +0 -1
- package/dist/workflow/team/types.d.ts +0 -109
- package/dist/workflow/team/types.d.ts.map +0 -1
- package/dist/workflow/team/types.js +0 -5
- package/dist/workflow/team/types.js.map +0 -1
- package/dist/workflow/templates.d.ts +0 -71
- package/dist/workflow/templates.d.ts.map +0 -1
- package/dist/workflow/templates.js +0 -132
- package/dist/workflow/templates.js.map +0 -1
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @agntk/core - Scheduled Workflows
|
|
3
|
-
*
|
|
4
|
-
* Implements recurring task execution using Workflow DevKit's `sleep()`.
|
|
5
|
-
* Each scheduled workflow is a durable loop: execute → sleep → repeat.
|
|
6
|
-
* Zero compute cost during sleep — the workflow runtime suspends the process.
|
|
7
|
-
*
|
|
8
|
-
* @see ADV-SCHEDULER-018
|
|
9
|
-
* @see https://useworkflow.dev
|
|
10
|
-
*/
|
|
11
|
-
import { createLogger } from '@agntk/logger';
|
|
12
|
-
import { sleep } from './hooks.js';
|
|
13
|
-
import { parseDuration, formatDuration } from './utils.js';
|
|
14
|
-
const log = createLogger('@agntk/core:workflow:scheduler');
|
|
15
|
-
// ============================================================================
|
|
16
|
-
// Scheduled Workflow Factory
|
|
17
|
-
// ============================================================================
|
|
18
|
-
/**
|
|
19
|
-
* Create a scheduled workflow that loops with durable sleep.
|
|
20
|
-
*
|
|
21
|
-
* The workflow executes a task, sleeps for the configured interval,
|
|
22
|
-
* and repeats. Under the Workflow runtime, sleep is zero-compute.
|
|
23
|
-
*
|
|
24
|
-
* @param config - Schedule configuration
|
|
25
|
-
* @returns A `ScheduledWorkflow` instance (call `.start()` to begin)
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```typescript
|
|
29
|
-
* const daily = createScheduledWorkflow({
|
|
30
|
-
* name: 'daily-briefing',
|
|
31
|
-
* interval: '1d',
|
|
32
|
-
* task: async (iteration) => {
|
|
33
|
-
* const agent = createAgent({ role: 'analyst' });
|
|
34
|
-
* const result = await agent.generate({
|
|
35
|
-
* prompt: 'Generate a daily briefing summary.',
|
|
36
|
-
* });
|
|
37
|
-
* return result.text;
|
|
38
|
-
* },
|
|
39
|
-
* onTick: (text, i) => console.log(`Briefing #${i}:`, text),
|
|
40
|
-
* });
|
|
41
|
-
*
|
|
42
|
-
* await daily.start(); // Loops forever with 1d sleep between ticks
|
|
43
|
-
* ```
|
|
44
|
-
*/
|
|
45
|
-
export function createScheduledWorkflow(config) {
|
|
46
|
-
const { name, description, interval, task, maxIterations = Infinity, immediate = true, onTick, onError, } = config;
|
|
47
|
-
// Validate interval eagerly
|
|
48
|
-
const intervalMs = parseDuration(interval);
|
|
49
|
-
let _running = false;
|
|
50
|
-
let _cancelled = false;
|
|
51
|
-
let _iteration = 0;
|
|
52
|
-
const _results = [];
|
|
53
|
-
log.info('Scheduled workflow created', {
|
|
54
|
-
name,
|
|
55
|
-
interval,
|
|
56
|
-
intervalMs,
|
|
57
|
-
maxIterations: maxIterations === Infinity ? 'infinite' : maxIterations,
|
|
58
|
-
immediate,
|
|
59
|
-
});
|
|
60
|
-
async function executeTick(iteration) {
|
|
61
|
-
log.debug('Executing tick', { name, iteration });
|
|
62
|
-
try {
|
|
63
|
-
const result = await task(iteration);
|
|
64
|
-
const tickResult = {
|
|
65
|
-
iteration,
|
|
66
|
-
success: true,
|
|
67
|
-
result,
|
|
68
|
-
completedAt: new Date(),
|
|
69
|
-
};
|
|
70
|
-
if (onTick) {
|
|
71
|
-
await onTick(result, iteration);
|
|
72
|
-
}
|
|
73
|
-
log.info('Tick completed', { name, iteration });
|
|
74
|
-
return tickResult;
|
|
75
|
-
}
|
|
76
|
-
catch (err) {
|
|
77
|
-
const error = err instanceof Error ? err : new Error(String(err));
|
|
78
|
-
log.error('Tick failed', { name, iteration, error: error.message });
|
|
79
|
-
const tickResult = {
|
|
80
|
-
iteration,
|
|
81
|
-
success: false,
|
|
82
|
-
error: error.message,
|
|
83
|
-
completedAt: new Date(),
|
|
84
|
-
};
|
|
85
|
-
if (onError) {
|
|
86
|
-
const shouldContinue = await onError(error, iteration);
|
|
87
|
-
if (!shouldContinue) {
|
|
88
|
-
log.info('onError returned false — stopping schedule', { name });
|
|
89
|
-
_cancelled = true;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return tickResult;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
async function start() {
|
|
96
|
-
if (_running) {
|
|
97
|
-
throw new Error(`Schedule "${name}" is already running`);
|
|
98
|
-
}
|
|
99
|
-
_running = true;
|
|
100
|
-
_cancelled = false;
|
|
101
|
-
_iteration = 0;
|
|
102
|
-
_results.length = 0;
|
|
103
|
-
log.info('Schedule started', { name, interval, maxIterations: maxIterations === Infinity ? 'infinite' : maxIterations });
|
|
104
|
-
try {
|
|
105
|
-
while (_iteration < maxIterations && !_cancelled) {
|
|
106
|
-
// Sleep before first tick if not immediate
|
|
107
|
-
if (_iteration === 0 && !immediate) {
|
|
108
|
-
log.debug('Waiting for first interval before executing', { name, interval });
|
|
109
|
-
await sleep(interval, { reason: `${name}: waiting for first interval` });
|
|
110
|
-
if (_cancelled)
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
// Execute the tick
|
|
114
|
-
const tickResult = await executeTick(_iteration);
|
|
115
|
-
_results.push(tickResult);
|
|
116
|
-
_iteration++;
|
|
117
|
-
if (_cancelled)
|
|
118
|
-
break;
|
|
119
|
-
// Sleep between iterations (skip after last)
|
|
120
|
-
if (_iteration < maxIterations) {
|
|
121
|
-
log.debug('Sleeping between ticks', {
|
|
122
|
-
name,
|
|
123
|
-
iteration: _iteration,
|
|
124
|
-
interval,
|
|
125
|
-
intervalMs,
|
|
126
|
-
});
|
|
127
|
-
await sleep(interval, {
|
|
128
|
-
reason: `${name}: interval sleep (iteration ${_iteration})`,
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
finally {
|
|
134
|
-
_running = false;
|
|
135
|
-
}
|
|
136
|
-
const result = {
|
|
137
|
-
name,
|
|
138
|
-
totalIterations: _results.length,
|
|
139
|
-
cancelled: _cancelled,
|
|
140
|
-
ticks: [..._results],
|
|
141
|
-
};
|
|
142
|
-
log.info('Schedule completed', {
|
|
143
|
-
name,
|
|
144
|
-
totalIterations: result.totalIterations,
|
|
145
|
-
cancelled: result.cancelled,
|
|
146
|
-
});
|
|
147
|
-
return result;
|
|
148
|
-
}
|
|
149
|
-
function cancel() {
|
|
150
|
-
if (!_running) {
|
|
151
|
-
log.warn('cancel() called but schedule is not running', { name });
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
log.info('Schedule cancelled', { name, iteration: _iteration });
|
|
155
|
-
_cancelled = true;
|
|
156
|
-
}
|
|
157
|
-
return {
|
|
158
|
-
name,
|
|
159
|
-
description,
|
|
160
|
-
interval,
|
|
161
|
-
start,
|
|
162
|
-
cancel,
|
|
163
|
-
get isRunning() {
|
|
164
|
-
return _running;
|
|
165
|
-
},
|
|
166
|
-
get completedIterations() {
|
|
167
|
-
return _results.length;
|
|
168
|
-
},
|
|
169
|
-
get results() {
|
|
170
|
-
return [..._results];
|
|
171
|
-
},
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Create a daily briefing scheduled workflow.
|
|
176
|
-
*
|
|
177
|
-
* Runs a briefing generation task once per day (configurable),
|
|
178
|
-
* delivering the result via a callback.
|
|
179
|
-
*
|
|
180
|
-
* @example
|
|
181
|
-
* ```typescript
|
|
182
|
-
* const briefing = createDailyBriefing({
|
|
183
|
-
* generateBriefing: async () => {
|
|
184
|
-
* const agent = createAgent({ role: 'analyst' });
|
|
185
|
-
* const result = await agent.generate({
|
|
186
|
-
* prompt: 'Summarize today\'s calendar, emails, and tasks.',
|
|
187
|
-
* });
|
|
188
|
-
* return result.text;
|
|
189
|
-
* },
|
|
190
|
-
* deliver: (text) => sendSlackMessage('#daily', text),
|
|
191
|
-
* });
|
|
192
|
-
*
|
|
193
|
-
* await briefing.start();
|
|
194
|
-
* ```
|
|
195
|
-
*/
|
|
196
|
-
export function createDailyBriefing(options) {
|
|
197
|
-
const { generateBriefing, deliver, interval = '1d', maxIterations, } = options;
|
|
198
|
-
return createScheduledWorkflow({
|
|
199
|
-
name: 'daily-briefing',
|
|
200
|
-
description: 'Generate and deliver a daily briefing summary',
|
|
201
|
-
interval,
|
|
202
|
-
maxIterations,
|
|
203
|
-
task: generateBriefing,
|
|
204
|
-
onTick: deliver,
|
|
205
|
-
onError: async (error, iteration) => {
|
|
206
|
-
log.error('Daily briefing failed', { iteration, error: error.message });
|
|
207
|
-
return true; // Continue schedule despite error
|
|
208
|
-
},
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Create a weekly report scheduled workflow.
|
|
213
|
-
*
|
|
214
|
-
* Runs a report generation task once per week (configurable),
|
|
215
|
-
* delivering the result via a callback.
|
|
216
|
-
*
|
|
217
|
-
* @example
|
|
218
|
-
* ```typescript
|
|
219
|
-
* const report = createWeeklyReport({
|
|
220
|
-
* generateReport: async (week) => {
|
|
221
|
-
* const agent = createAgent({ role: 'analyst' });
|
|
222
|
-
* const result = await agent.generate({
|
|
223
|
-
* prompt: `Generate weekly report #${week + 1}.`,
|
|
224
|
-
* });
|
|
225
|
-
* return result.text;
|
|
226
|
-
* },
|
|
227
|
-
* deliver: (text) => sendEmail('team@company.com', 'Weekly Report', text),
|
|
228
|
-
* });
|
|
229
|
-
*
|
|
230
|
-
* await report.start();
|
|
231
|
-
* ```
|
|
232
|
-
*/
|
|
233
|
-
export function createWeeklyReport(options) {
|
|
234
|
-
const { generateReport, deliver, interval = '7d', maxIterations, } = options;
|
|
235
|
-
return createScheduledWorkflow({
|
|
236
|
-
name: 'weekly-report',
|
|
237
|
-
description: 'Generate and deliver a weekly report',
|
|
238
|
-
interval,
|
|
239
|
-
maxIterations,
|
|
240
|
-
task: generateReport,
|
|
241
|
-
onTick: deliver,
|
|
242
|
-
onError: async (error, iteration) => {
|
|
243
|
-
log.error('Weekly report failed', { week: iteration, error: error.message });
|
|
244
|
-
return true; // Continue schedule despite error
|
|
245
|
-
},
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
// Re-export used helpers for convenience
|
|
249
|
-
export { parseDuration, formatDuration };
|
|
250
|
-
//# sourceMappingURL=schedulers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schedulers.js","sourceRoot":"","sources":["../../src/workflow/schedulers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview createTeam — public API for team coordination.
|
|
3
|
-
*
|
|
4
|
-
* Creates a Team that satisfies the Workflow interface, enabling
|
|
5
|
-
* composition with createPipeline and createParallel.
|
|
6
|
-
*/
|
|
7
|
-
import type { TeamConfig, Team } from './types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Create a team of agents that coordinate via messaging, claim tasks
|
|
10
|
-
* from a shared board, and produce synthesized results.
|
|
11
|
-
*
|
|
12
|
-
* Satisfies the Workflow interface so it can be used inside createPipeline
|
|
13
|
-
* or createParallel.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* const team = createTeam({
|
|
18
|
-
* name: 'research-team',
|
|
19
|
-
* lead: { name: 'lead', agent: leadAgent },
|
|
20
|
-
* members: [
|
|
21
|
-
* { name: 'researcher', agent: researchAgent },
|
|
22
|
-
* { name: 'writer', agent: writerAgent },
|
|
23
|
-
* ],
|
|
24
|
-
* tasks: [
|
|
25
|
-
* { id: 'research', description: 'Research the topic' },
|
|
26
|
-
* { id: 'write', description: 'Write the report', dependsOn: ['research'] },
|
|
27
|
-
* ],
|
|
28
|
-
* });
|
|
29
|
-
*
|
|
30
|
-
* const result = await team.execute({ prompt: 'quantum computing' });
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
export declare function createTeam(config: TeamConfig): Team;
|
|
34
|
-
//# sourceMappingURL=create-team.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-team.d.ts","sourceRoot":"","sources":["../../../src/workflow/team/create-team.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,UAAU,EAEV,IAAI,EAOL,MAAM,SAAS,CAAC;AAOjB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CA4JnD"}
|
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview createTeam — public API for team coordination.
|
|
3
|
-
*
|
|
4
|
-
* Creates a Team that satisfies the Workflow interface, enabling
|
|
5
|
-
* composition with createPipeline and createParallel.
|
|
6
|
-
*/
|
|
7
|
-
import { createLogger } from '@agntk/logger';
|
|
8
|
-
import { TaskBoard } from './task-board.js';
|
|
9
|
-
import { teamCoordinationMachine, teammateMachine } from './machines.js';
|
|
10
|
-
const log = createLogger('@agntk/core:team');
|
|
11
|
-
/**
|
|
12
|
-
* Create a team of agents that coordinate via messaging, claim tasks
|
|
13
|
-
* from a shared board, and produce synthesized results.
|
|
14
|
-
*
|
|
15
|
-
* Satisfies the Workflow interface so it can be used inside createPipeline
|
|
16
|
-
* or createParallel.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* const team = createTeam({
|
|
21
|
-
* name: 'research-team',
|
|
22
|
-
* lead: { name: 'lead', agent: leadAgent },
|
|
23
|
-
* members: [
|
|
24
|
-
* { name: 'researcher', agent: researchAgent },
|
|
25
|
-
* { name: 'writer', agent: writerAgent },
|
|
26
|
-
* ],
|
|
27
|
-
* tasks: [
|
|
28
|
-
* { id: 'research', description: 'Research the topic' },
|
|
29
|
-
* { id: 'write', description: 'Write the report', dependsOn: ['research'] },
|
|
30
|
-
* ],
|
|
31
|
-
* });
|
|
32
|
-
*
|
|
33
|
-
* const result = await team.execute({ prompt: 'quantum computing' });
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
export function createTeam(config) {
|
|
37
|
-
const { name, lead, members, tasks = [] } = config;
|
|
38
|
-
if (!lead)
|
|
39
|
-
throw new Error('Team must have a lead');
|
|
40
|
-
if (members.length === 0)
|
|
41
|
-
throw new Error('Team must have at least one member');
|
|
42
|
-
// Internal state
|
|
43
|
-
const taskBoard = new TaskBoard(tasks);
|
|
44
|
-
const messages = [];
|
|
45
|
-
const outputs = [];
|
|
46
|
-
const memberPhases = new Map();
|
|
47
|
-
let teamPhase = 'planning';
|
|
48
|
-
// Initialize member phases
|
|
49
|
-
memberPhases.set(lead.name, 'idle');
|
|
50
|
-
for (const member of members) {
|
|
51
|
-
memberPhases.set(member.name, 'idle');
|
|
52
|
-
}
|
|
53
|
-
const allMembers = [lead, ...members];
|
|
54
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
55
|
-
// Team interface implementation
|
|
56
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
57
|
-
const team = {
|
|
58
|
-
name,
|
|
59
|
-
memberCount: allMembers.length,
|
|
60
|
-
getTaskBoard() {
|
|
61
|
-
return taskBoard.getAll();
|
|
62
|
-
},
|
|
63
|
-
getMessages() {
|
|
64
|
-
return [...messages];
|
|
65
|
-
},
|
|
66
|
-
getPhase() {
|
|
67
|
-
return teamPhase;
|
|
68
|
-
},
|
|
69
|
-
sendMessage(from, to, content) {
|
|
70
|
-
if (!memberPhases.has(from))
|
|
71
|
-
throw new Error(`Unknown sender: ${from}`);
|
|
72
|
-
if (to !== 'all' && !memberPhases.has(to))
|
|
73
|
-
throw new Error(`Unknown recipient: ${to}`);
|
|
74
|
-
const msg = { from, to, content, timestamp: Date.now() };
|
|
75
|
-
messages.push(msg);
|
|
76
|
-
log.debug('Message sent', { from, to, contentLen: content.length });
|
|
77
|
-
},
|
|
78
|
-
broadcast(from, content) {
|
|
79
|
-
if (!memberPhases.has(from))
|
|
80
|
-
throw new Error(`Unknown sender: ${from}`);
|
|
81
|
-
const msg = { from, to: 'all', content, timestamp: Date.now() };
|
|
82
|
-
messages.push(msg);
|
|
83
|
-
log.debug('Broadcast', { from, contentLen: content.length });
|
|
84
|
-
},
|
|
85
|
-
claimTask(taskId, memberName) {
|
|
86
|
-
if (!memberPhases.has(memberName))
|
|
87
|
-
return false;
|
|
88
|
-
const claimed = taskBoard.claim(taskId, memberName);
|
|
89
|
-
if (claimed) {
|
|
90
|
-
memberPhases.set(memberName, 'working');
|
|
91
|
-
log.info('Task claimed', { taskId, memberName });
|
|
92
|
-
}
|
|
93
|
-
return claimed;
|
|
94
|
-
},
|
|
95
|
-
completeTask(taskId, result) {
|
|
96
|
-
const allTasks = taskBoard.getAll();
|
|
97
|
-
const taskState = allTasks.find((t) => t.task.id === taskId);
|
|
98
|
-
if (!taskState || taskState.status !== 'claimed')
|
|
99
|
-
return false;
|
|
100
|
-
const memberName = taskState.claimedBy;
|
|
101
|
-
const completed = taskBoard.complete(taskId, result);
|
|
102
|
-
if (completed) {
|
|
103
|
-
memberPhases.set(memberName, 'idle');
|
|
104
|
-
outputs.push({ memberName, taskId, text: result });
|
|
105
|
-
log.info('Task completed', { taskId, memberName });
|
|
106
|
-
}
|
|
107
|
-
return completed;
|
|
108
|
-
},
|
|
109
|
-
getPersistedSnapshot() {
|
|
110
|
-
return {
|
|
111
|
-
name,
|
|
112
|
-
phase: teamPhase,
|
|
113
|
-
members: allMembers.map((m) => ({
|
|
114
|
-
name: m.name,
|
|
115
|
-
phase: memberPhases.get(m.name) ?? 'idle',
|
|
116
|
-
})),
|
|
117
|
-
tasks: taskBoard.getAll(),
|
|
118
|
-
messages: [...messages],
|
|
119
|
-
outputs: [...outputs],
|
|
120
|
-
};
|
|
121
|
-
},
|
|
122
|
-
async execute(input) {
|
|
123
|
-
log.info('Team executing', { name, prompt: input.prompt.slice(0, 100) });
|
|
124
|
-
teamPhase = 'planning';
|
|
125
|
-
// Phase 1: Planning — lead agent plans the work
|
|
126
|
-
log.info('Phase: planning');
|
|
127
|
-
const planPrompt = buildPlanPrompt(input.prompt, tasks, members);
|
|
128
|
-
const planResult = await lead.agent.generate({ prompt: planPrompt });
|
|
129
|
-
const plan = planResult.text ?? '';
|
|
130
|
-
// Phase 2: Executing — members work on tasks
|
|
131
|
-
teamPhase = 'executing';
|
|
132
|
-
log.info('Phase: executing');
|
|
133
|
-
if (tasks.length > 0) {
|
|
134
|
-
// Task-based execution: each member works on available tasks
|
|
135
|
-
await executeTaskBased(team, allMembers, taskBoard, input.prompt, plan);
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
// Prompt-based execution: each member processes the prompt
|
|
139
|
-
await executePromptBased(allMembers, input.prompt, plan, outputs);
|
|
140
|
-
}
|
|
141
|
-
// Phase 3: Synthesizing
|
|
142
|
-
teamPhase = 'synthesizing';
|
|
143
|
-
log.info('Phase: synthesizing');
|
|
144
|
-
let finalText;
|
|
145
|
-
if (config.synthesize) {
|
|
146
|
-
finalText = await config.synthesize(outputs);
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
// Default: lead agent synthesizes
|
|
150
|
-
const synthPrompt = buildSynthesisPrompt(input.prompt, outputs);
|
|
151
|
-
const synthResult = await lead.agent.generate({ prompt: synthPrompt });
|
|
152
|
-
finalText = synthResult.text ?? '';
|
|
153
|
-
}
|
|
154
|
-
teamPhase = 'completed';
|
|
155
|
-
log.info('Team completed', { name, outputLength: finalText.length });
|
|
156
|
-
// Mark all members completed
|
|
157
|
-
for (const m of allMembers) {
|
|
158
|
-
memberPhases.set(m.name, 'completed');
|
|
159
|
-
}
|
|
160
|
-
return {
|
|
161
|
-
text: finalText,
|
|
162
|
-
metadata: {
|
|
163
|
-
teamName: name,
|
|
164
|
-
memberCount: allMembers.length,
|
|
165
|
-
taskCount: tasks.length,
|
|
166
|
-
messageCount: messages.length,
|
|
167
|
-
outputs: outputs.map((o) => ({ member: o.memberName, taskId: o.taskId })),
|
|
168
|
-
},
|
|
169
|
-
};
|
|
170
|
-
},
|
|
171
|
-
};
|
|
172
|
-
return team;
|
|
173
|
-
}
|
|
174
|
-
// ============================================================================
|
|
175
|
-
// Internal execution helpers
|
|
176
|
-
// ============================================================================
|
|
177
|
-
function buildPlanPrompt(prompt, tasks, members) {
|
|
178
|
-
const memberList = members.map((m) => `- ${m.name}${m.role ? ` (${m.role})` : ''}`).join('\n');
|
|
179
|
-
if (tasks.length > 0) {
|
|
180
|
-
const taskList = tasks.map((t) => {
|
|
181
|
-
const deps = t.dependsOn?.length ? ` [depends on: ${t.dependsOn.join(', ')}]` : '';
|
|
182
|
-
return `- ${t.id}: ${t.description}${deps}`;
|
|
183
|
-
}).join('\n');
|
|
184
|
-
return (`You are the team lead. Plan how to accomplish this task with your team.\n\n` +
|
|
185
|
-
`Task: ${prompt}\n\nTeam members:\n${memberList}\n\nAvailable tasks:\n${taskList}\n\n` +
|
|
186
|
-
`Create a brief plan for task assignment.`);
|
|
187
|
-
}
|
|
188
|
-
return (`You are the team lead. Plan how to accomplish this task with your team.\n\n` +
|
|
189
|
-
`Task: ${prompt}\n\nTeam members:\n${memberList}\n\n` +
|
|
190
|
-
`Create a brief plan for how each member should contribute.`);
|
|
191
|
-
}
|
|
192
|
-
function buildSynthesisPrompt(prompt, outputs) {
|
|
193
|
-
const outputText = outputs
|
|
194
|
-
.map((o) => `[${o.memberName}${o.taskId ? ` / task:${o.taskId}` : ''}]: ${o.text}`)
|
|
195
|
-
.join('\n\n');
|
|
196
|
-
return (`Synthesize the following team outputs into a cohesive final result.\n\n` +
|
|
197
|
-
`Original task: ${prompt}\n\nTeam outputs:\n${outputText}`);
|
|
198
|
-
}
|
|
199
|
-
async function executeTaskBased(team, allMembers, taskBoard, prompt, plan) {
|
|
200
|
-
// Simple round-robin task execution
|
|
201
|
-
const maxRounds = 10;
|
|
202
|
-
let round = 0;
|
|
203
|
-
while (!taskBoard.isAllCompleted() && round < maxRounds) {
|
|
204
|
-
round++;
|
|
205
|
-
const available = taskBoard.getAvailable();
|
|
206
|
-
if (available.length === 0 && !taskBoard.isAllCompleted()) {
|
|
207
|
-
// Tasks may still be claimed but not completed — break to avoid infinite loop
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
// Assign available tasks to idle members
|
|
211
|
-
const executions = [];
|
|
212
|
-
for (const taskState of available) {
|
|
213
|
-
// Find an idle member
|
|
214
|
-
const member = allMembers.find((m) => !taskBoard.getAll().some((t) => t.status === 'claimed' && t.claimedBy === m.name));
|
|
215
|
-
if (!member)
|
|
216
|
-
break;
|
|
217
|
-
if (team.claimTask(taskState.task.id, member.name)) {
|
|
218
|
-
executions.push((async () => {
|
|
219
|
-
const taskPrompt = `${plan}\n\nYour task: ${taskState.task.description}\nContext: ${prompt}`;
|
|
220
|
-
const result = await member.agent.generate({ prompt: taskPrompt });
|
|
221
|
-
team.completeTask(taskState.task.id, result.text ?? '');
|
|
222
|
-
})());
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
if (executions.length > 0) {
|
|
226
|
-
await Promise.all(executions);
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
break;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
async function executePromptBased(allMembers, prompt, plan, outputs) {
|
|
234
|
-
// All members (except lead, index 0) execute in parallel
|
|
235
|
-
const memberPromises = allMembers.slice(1).map(async (member) => {
|
|
236
|
-
const memberPrompt = `${plan}\n\nYour role: ${member.role ?? member.name}\nTask: ${prompt}`;
|
|
237
|
-
const result = await member.agent.generate({ prompt: memberPrompt });
|
|
238
|
-
outputs.push({ memberName: member.name, text: result.text ?? '' });
|
|
239
|
-
});
|
|
240
|
-
await Promise.all(memberPromises);
|
|
241
|
-
}
|
|
242
|
-
//# sourceMappingURL=create-team.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-team.js","sourceRoot":"","sources":["../../../src/workflow/team/create-team.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Team module barrel exports.
|
|
3
|
-
*/
|
|
4
|
-
export { createTeam } from './create-team.js';
|
|
5
|
-
export { TaskBoard } from './task-board.js';
|
|
6
|
-
export { createTeamTools } from './tools.js';
|
|
7
|
-
export { teamCoordinationMachine, teammateMachine } from './machines.js';
|
|
8
|
-
export type { TeamConfig, TeamMemberConfig, Team, TeamPhase, TeammatePhase, TeamMessage, TeamOutput, TaskDefinition, TaskState, TeamSnapshot, } from './types.js';
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/workflow/team/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtE,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,IAAI,EACJ,SAAS,EACT,aAAa,EACb,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,YAAY,GACb,MAAM,SAAS,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Team module barrel exports.
|
|
3
|
-
*/
|
|
4
|
-
export { createTeam } from './create-team.js';
|
|
5
|
-
export { TaskBoard } from './task-board.js';
|
|
6
|
-
export { createTeamTools } from './tools.js';
|
|
7
|
-
export { teamCoordinationMachine, teammateMachine } from './machines.js';
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/workflow/team/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|