@ugm/desiagent 0.1.21
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 +251 -0
- package/dist/__tests__/test-utils.d.ts +24 -0
- package/dist/__tests__/test-utils.d.ts.map +1 -0
- package/dist/__tests__/test-utils.js +32 -0
- package/dist/__tests__/test-utils.js.map +1 -0
- package/dist/core/execution/agents.d.ts +60 -0
- package/dist/core/execution/agents.d.ts.map +1 -0
- package/dist/core/execution/agents.js +249 -0
- package/dist/core/execution/agents.js.map +1 -0
- package/dist/core/execution/artifacts.d.ts +27 -0
- package/dist/core/execution/artifacts.d.ts.map +1 -0
- package/dist/core/execution/artifacts.js +93 -0
- package/dist/core/execution/artifacts.js.map +1 -0
- package/dist/core/execution/costs.d.ts +160 -0
- package/dist/core/execution/costs.d.ts.map +1 -0
- package/dist/core/execution/costs.js +196 -0
- package/dist/core/execution/costs.js.map +1 -0
- package/dist/core/execution/dagExecutor.d.ts +112 -0
- package/dist/core/execution/dagExecutor.d.ts.map +1 -0
- package/dist/core/execution/dagExecutor.js +647 -0
- package/dist/core/execution/dagExecutor.js.map +1 -0
- package/dist/core/execution/dags.d.ts +167 -0
- package/dist/core/execution/dags.d.ts.map +1 -0
- package/dist/core/execution/dags.js +713 -0
- package/dist/core/execution/dags.js.map +1 -0
- package/dist/core/execution/executions.d.ts +158 -0
- package/dist/core/execution/executions.d.ts.map +1 -0
- package/dist/core/execution/executions.js +258 -0
- package/dist/core/execution/executions.js.map +1 -0
- package/dist/core/execution/goals.d.ts +62 -0
- package/dist/core/execution/goals.d.ts.map +1 -0
- package/dist/core/execution/goals.js +245 -0
- package/dist/core/execution/goals.js.map +1 -0
- package/dist/core/execution/runs.d.ts +65 -0
- package/dist/core/execution/runs.d.ts.map +1 -0
- package/dist/core/execution/runs.js +219 -0
- package/dist/core/execution/runs.js.map +1 -0
- package/dist/core/execution/tools.d.ts +24 -0
- package/dist/core/execution/tools.d.ts.map +1 -0
- package/dist/core/execution/tools.js +33 -0
- package/dist/core/execution/tools.js.map +1 -0
- package/dist/core/orchestration/index.d.ts +7 -0
- package/dist/core/orchestration/index.d.ts.map +1 -0
- package/dist/core/orchestration/index.js +7 -0
- package/dist/core/orchestration/index.js.map +1 -0
- package/dist/core/orchestration/orchestrator.d.ts +39 -0
- package/dist/core/orchestration/orchestrator.d.ts.map +1 -0
- package/dist/core/orchestration/orchestrator.js +141 -0
- package/dist/core/orchestration/orchestrator.js.map +1 -0
- package/dist/core/orchestration/planner.d.ts +63 -0
- package/dist/core/orchestration/planner.d.ts.map +1 -0
- package/dist/core/orchestration/planner.js +99 -0
- package/dist/core/orchestration/planner.js.map +1 -0
- package/dist/core/providers/factory.d.ts +25 -0
- package/dist/core/providers/factory.d.ts.map +1 -0
- package/dist/core/providers/factory.js +86 -0
- package/dist/core/providers/factory.js.map +1 -0
- package/dist/core/providers/index.d.ts +11 -0
- package/dist/core/providers/index.d.ts.map +1 -0
- package/dist/core/providers/index.js +10 -0
- package/dist/core/providers/index.js.map +1 -0
- package/dist/core/providers/ollama.d.ts +36 -0
- package/dist/core/providers/ollama.d.ts.map +1 -0
- package/dist/core/providers/ollama.js +123 -0
- package/dist/core/providers/ollama.js.map +1 -0
- package/dist/core/providers/openai.d.ts +33 -0
- package/dist/core/providers/openai.d.ts.map +1 -0
- package/dist/core/providers/openai.js +114 -0
- package/dist/core/providers/openai.js.map +1 -0
- package/dist/core/providers/openrouter.d.ts +38 -0
- package/dist/core/providers/openrouter.d.ts.map +1 -0
- package/dist/core/providers/openrouter.js +269 -0
- package/dist/core/providers/openrouter.js.map +1 -0
- package/dist/core/providers/types.d.ts +101 -0
- package/dist/core/providers/types.d.ts.map +1 -0
- package/dist/core/providers/types.js +7 -0
- package/dist/core/providers/types.js.map +1 -0
- package/dist/core/tools/base.d.ts +56 -0
- package/dist/core/tools/base.d.ts.map +1 -0
- package/dist/core/tools/base.js +60 -0
- package/dist/core/tools/base.js.map +1 -0
- package/dist/core/tools/bash.d.ts +50 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +179 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/edit.d.ts +39 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +67 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/executor.d.ts +33 -0
- package/dist/core/tools/executor.d.ts.map +1 -0
- package/dist/core/tools/executor.js +105 -0
- package/dist/core/tools/executor.js.map +1 -0
- package/dist/core/tools/fetchPage.d.ts +46 -0
- package/dist/core/tools/fetchPage.d.ts.map +1 -0
- package/dist/core/tools/fetchPage.js +87 -0
- package/dist/core/tools/fetchPage.js.map +1 -0
- package/dist/core/tools/fetchURLs.d.ts +39 -0
- package/dist/core/tools/fetchURLs.d.ts.map +1 -0
- package/dist/core/tools/fetchURLs.js +67 -0
- package/dist/core/tools/fetchURLs.js.map +1 -0
- package/dist/core/tools/glob.d.ts +36 -0
- package/dist/core/tools/glob.d.ts.map +1 -0
- package/dist/core/tools/glob.js +78 -0
- package/dist/core/tools/glob.js.map +1 -0
- package/dist/core/tools/grep.d.ts +51 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +152 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/index.d.ts +22 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +22 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/llmExecute.d.ts +153 -0
- package/dist/core/tools/llmExecute.d.ts.map +1 -0
- package/dist/core/tools/llmExecute.js +105 -0
- package/dist/core/tools/llmExecute.js.map +1 -0
- package/dist/core/tools/readEmail.d.ts +68 -0
- package/dist/core/tools/readEmail.d.ts.map +1 -0
- package/dist/core/tools/readEmail.js +182 -0
- package/dist/core/tools/readEmail.js.map +1 -0
- package/dist/core/tools/readFile.d.ts +42 -0
- package/dist/core/tools/readFile.d.ts.map +1 -0
- package/dist/core/tools/readFile.js +79 -0
- package/dist/core/tools/readFile.js.map +1 -0
- package/dist/core/tools/registry.d.ts +53 -0
- package/dist/core/tools/registry.d.ts.map +1 -0
- package/dist/core/tools/registry.js +112 -0
- package/dist/core/tools/registry.js.map +1 -0
- package/dist/core/tools/sendEmail.d.ts +83 -0
- package/dist/core/tools/sendEmail.d.ts.map +1 -0
- package/dist/core/tools/sendEmail.js +132 -0
- package/dist/core/tools/sendEmail.js.map +1 -0
- package/dist/core/tools/sendWebhook.d.ts +48 -0
- package/dist/core/tools/sendWebhook.d.ts.map +1 -0
- package/dist/core/tools/sendWebhook.js +61 -0
- package/dist/core/tools/sendWebhook.js.map +1 -0
- package/dist/core/tools/webSearch.d.ts +34 -0
- package/dist/core/tools/webSearch.d.ts.map +1 -0
- package/dist/core/tools/webSearch.js +104 -0
- package/dist/core/tools/webSearch.js.map +1 -0
- package/dist/core/tools/writeFile.d.ts +49 -0
- package/dist/core/tools/writeFile.d.ts.map +1 -0
- package/dist/core/tools/writeFile.js +120 -0
- package/dist/core/tools/writeFile.js.map +1 -0
- package/dist/db/client.d.ts +22 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +178 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/schema.d.ts +1846 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +175 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/errors/index.d.ts +80 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +135 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +172 -0
- package/dist/index.js.map +1 -0
- package/dist/services/initDB.d.ts +17 -0
- package/dist/services/initDB.d.ts.map +1 -0
- package/dist/services/initDB.js +212 -0
- package/dist/services/initDB.js.map +1 -0
- package/dist/types/agent.d.ts +354 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +63 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/client.d.ts +309 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/client.js +2 -0
- package/dist/types/client.js.map +1 -0
- package/dist/types/config.d.ts +96 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +33 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/dag.d.ts +253 -0
- package/dist/types/dag.d.ts.map +1 -0
- package/dist/types/dag.js +46 -0
- package/dist/types/dag.js.map +1 -0
- package/dist/types/execution.d.ts +171 -0
- package/dist/types/execution.d.ts.map +1 -0
- package/dist/types/execution.js +41 -0
- package/dist/types/execution.js.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +11 -0
- package/dist/types/index.js.map +1 -0
- package/dist/util/cron-validator.d.ts +16 -0
- package/dist/util/cron-validator.d.ts.map +1 -0
- package/dist/util/cron-validator.js +31 -0
- package/dist/util/cron-validator.js.map +1 -0
- package/dist/util/dag-utils.d.ts +54 -0
- package/dist/util/dag-utils.d.ts.map +1 -0
- package/dist/util/dag-utils.js +167 -0
- package/dist/util/dag-utils.js.map +1 -0
- package/dist/util/logger.d.ts +21 -0
- package/dist/util/logger.d.ts.map +1 -0
- package/dist/util/logger.js +87 -0
- package/dist/util/logger.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Goals Service
|
|
3
|
+
*
|
|
4
|
+
* Manages goal creation, updates, listing, and execution.
|
|
5
|
+
* Goals represent high-level objectives for agents to accomplish.
|
|
6
|
+
*/
|
|
7
|
+
import { eq, and, desc } from 'drizzle-orm';
|
|
8
|
+
import { nanoid } from 'nanoid';
|
|
9
|
+
import { goals, schedules, runs } from '../../db/schema.js';
|
|
10
|
+
import { NotFoundError, ValidationError } from '../../errors/index.js';
|
|
11
|
+
import { getLogger } from '../../util/logger.js';
|
|
12
|
+
/**
|
|
13
|
+
* Create a goal ID with 'goal_' prefix
|
|
14
|
+
*/
|
|
15
|
+
export function generateGoalId() {
|
|
16
|
+
return `goal_${nanoid(21)}`;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create a schedule ID with 'sched_' prefix
|
|
20
|
+
*/
|
|
21
|
+
export function generateScheduleId() {
|
|
22
|
+
return `sched_${nanoid(21)}`;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* GoalsService handles all goal-related operations
|
|
26
|
+
*/
|
|
27
|
+
export class GoalsService {
|
|
28
|
+
db;
|
|
29
|
+
logger = getLogger();
|
|
30
|
+
constructor(db) {
|
|
31
|
+
this.db = db;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create a new goal
|
|
35
|
+
*/
|
|
36
|
+
async create(objective, params) {
|
|
37
|
+
this.logger.debug(`Creating goal: ${objective}`);
|
|
38
|
+
const goalId = generateGoalId();
|
|
39
|
+
const now = new Date();
|
|
40
|
+
await this.db.insert(goals).values({
|
|
41
|
+
id: goalId,
|
|
42
|
+
objective,
|
|
43
|
+
params: params || {},
|
|
44
|
+
status: 'active',
|
|
45
|
+
createdAt: now,
|
|
46
|
+
updatedAt: now,
|
|
47
|
+
});
|
|
48
|
+
const goal = await this.db.query.goals.findFirst({
|
|
49
|
+
where: eq(goals.id, goalId),
|
|
50
|
+
});
|
|
51
|
+
if (!goal) {
|
|
52
|
+
throw new Error('Failed to create goal');
|
|
53
|
+
}
|
|
54
|
+
return this.mapGoal(goal);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get a goal by ID
|
|
58
|
+
*/
|
|
59
|
+
async get(id) {
|
|
60
|
+
const goal = await this.db.query.goals.findFirst({
|
|
61
|
+
where: eq(goals.id, id),
|
|
62
|
+
with: {
|
|
63
|
+
schedules: true,
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
if (!goal) {
|
|
67
|
+
throw new NotFoundError('Goal', id);
|
|
68
|
+
}
|
|
69
|
+
return this.mapGoal(goal);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* List all goals with optional filtering
|
|
73
|
+
*/
|
|
74
|
+
async list(filter) {
|
|
75
|
+
const conditions = [];
|
|
76
|
+
if (filter?.status) {
|
|
77
|
+
conditions.push(eq(goals.status, filter.status));
|
|
78
|
+
}
|
|
79
|
+
const query = this.db.query.goals.findMany({
|
|
80
|
+
where: conditions.length > 0 ? and(...conditions) : undefined,
|
|
81
|
+
orderBy: [desc(goals.createdAt)],
|
|
82
|
+
with: {
|
|
83
|
+
schedules: true,
|
|
84
|
+
},
|
|
85
|
+
limit: filter?.limit || 100,
|
|
86
|
+
offset: filter?.offset || 0,
|
|
87
|
+
});
|
|
88
|
+
const allGoals = await query;
|
|
89
|
+
return allGoals.map((g) => this.mapGoal(g));
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Update a goal
|
|
93
|
+
*/
|
|
94
|
+
async update(id, updates) {
|
|
95
|
+
const existing = await this.db.query.goals.findFirst({
|
|
96
|
+
where: eq(goals.id, id),
|
|
97
|
+
});
|
|
98
|
+
if (!existing) {
|
|
99
|
+
throw new NotFoundError('Goal', id);
|
|
100
|
+
}
|
|
101
|
+
const updateData = {
|
|
102
|
+
updatedAt: new Date(),
|
|
103
|
+
};
|
|
104
|
+
if (updates.objective !== undefined) {
|
|
105
|
+
updateData.objective = updates.objective;
|
|
106
|
+
}
|
|
107
|
+
if (updates.params !== undefined) {
|
|
108
|
+
updateData.params = updates.params;
|
|
109
|
+
}
|
|
110
|
+
if (updates.status !== undefined) {
|
|
111
|
+
updateData.status = updates.status;
|
|
112
|
+
}
|
|
113
|
+
await this.db.update(goals).set(updateData).where(eq(goals.id, id));
|
|
114
|
+
const updated = await this.db.query.goals.findFirst({
|
|
115
|
+
where: eq(goals.id, id),
|
|
116
|
+
});
|
|
117
|
+
if (!updated) {
|
|
118
|
+
throw new Error('Failed to update goal');
|
|
119
|
+
}
|
|
120
|
+
return this.mapGoal(updated);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Delete a goal
|
|
124
|
+
*/
|
|
125
|
+
async delete(id) {
|
|
126
|
+
const existing = await this.db.query.goals.findFirst({
|
|
127
|
+
where: eq(goals.id, id),
|
|
128
|
+
});
|
|
129
|
+
if (!existing) {
|
|
130
|
+
throw new NotFoundError('Goal', id);
|
|
131
|
+
}
|
|
132
|
+
await this.db.delete(goals).where(eq(goals.id, id));
|
|
133
|
+
this.logger.debug(`Deleted goal: ${id}`);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Pause a goal (deactivate schedules)
|
|
137
|
+
*/
|
|
138
|
+
async pause(id) {
|
|
139
|
+
const existing = await this.db.query.goals.findFirst({
|
|
140
|
+
where: eq(goals.id, id),
|
|
141
|
+
});
|
|
142
|
+
if (!existing) {
|
|
143
|
+
throw new NotFoundError('Goal', id);
|
|
144
|
+
}
|
|
145
|
+
await this.db.update(goals)
|
|
146
|
+
.set({ status: 'paused', updatedAt: new Date() })
|
|
147
|
+
.where(eq(goals.id, id));
|
|
148
|
+
// Mark all schedules as inactive
|
|
149
|
+
await this.db.update(schedules)
|
|
150
|
+
.set({ active: false })
|
|
151
|
+
.where(eq(schedules.goalId, id));
|
|
152
|
+
const updated = await this.db.query.goals.findFirst({
|
|
153
|
+
where: eq(goals.id, id),
|
|
154
|
+
});
|
|
155
|
+
if (!updated) {
|
|
156
|
+
throw new Error('Failed to pause goal');
|
|
157
|
+
}
|
|
158
|
+
return this.mapGoal(updated);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Resume a paused goal (reactivate schedules)
|
|
162
|
+
*/
|
|
163
|
+
async resume(id) {
|
|
164
|
+
const existing = await this.db.query.goals.findFirst({
|
|
165
|
+
where: eq(goals.id, id),
|
|
166
|
+
});
|
|
167
|
+
if (!existing) {
|
|
168
|
+
throw new NotFoundError('Goal', id);
|
|
169
|
+
}
|
|
170
|
+
await this.db.update(goals)
|
|
171
|
+
.set({ status: 'active', updatedAt: new Date() })
|
|
172
|
+
.where(eq(goals.id, id));
|
|
173
|
+
// Mark all schedules as active
|
|
174
|
+
await this.db.update(schedules)
|
|
175
|
+
.set({ active: true })
|
|
176
|
+
.where(eq(schedules.goalId, id));
|
|
177
|
+
const updated = await this.db.query.goals.findFirst({
|
|
178
|
+
where: eq(goals.id, id),
|
|
179
|
+
});
|
|
180
|
+
if (!updated) {
|
|
181
|
+
throw new Error('Failed to resume goal');
|
|
182
|
+
}
|
|
183
|
+
return this.mapGoal(updated);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Trigger goal execution (creates a run)
|
|
187
|
+
* Note: Actual execution is handled by the orchestrator
|
|
188
|
+
*/
|
|
189
|
+
async run(id) {
|
|
190
|
+
const goal = await this.get(id);
|
|
191
|
+
if (goal.status !== 'active') {
|
|
192
|
+
throw new ValidationError(`Cannot run goal with status: ${goal.status}`, 'status', goal.status);
|
|
193
|
+
}
|
|
194
|
+
// Create a new run
|
|
195
|
+
const runId = `run_${nanoid(21)}`;
|
|
196
|
+
const now = new Date();
|
|
197
|
+
const stepBudget = goal.metadata?.stepBudget || 20;
|
|
198
|
+
await this.db.insert(runs).values({
|
|
199
|
+
id: runId,
|
|
200
|
+
goalId: id,
|
|
201
|
+
status: 'pending',
|
|
202
|
+
stepBudget,
|
|
203
|
+
stepsExecuted: 0,
|
|
204
|
+
workingMemory: {},
|
|
205
|
+
createdAt: now,
|
|
206
|
+
});
|
|
207
|
+
const run = await this.db.query.runs.findFirst({
|
|
208
|
+
where: eq(runs.id, runId),
|
|
209
|
+
});
|
|
210
|
+
if (!run) {
|
|
211
|
+
throw new Error('Failed to create run');
|
|
212
|
+
}
|
|
213
|
+
this.logger.info(`Created run: ${runId} for goal: ${id}`);
|
|
214
|
+
// Run is now in orchestrator's hands
|
|
215
|
+
// The orchestrator will execute it asynchronously
|
|
216
|
+
return {
|
|
217
|
+
id: run.id,
|
|
218
|
+
goalId: run.goalId,
|
|
219
|
+
status: run.status,
|
|
220
|
+
createdAt: run.createdAt,
|
|
221
|
+
updatedAt: run.createdAt,
|
|
222
|
+
metadata: {
|
|
223
|
+
stepsExecuted: run.stepsExecuted,
|
|
224
|
+
stepBudget: run.stepBudget,
|
|
225
|
+
},
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Map database record to Goal type
|
|
230
|
+
*/
|
|
231
|
+
mapGoal(record) {
|
|
232
|
+
return {
|
|
233
|
+
id: record.id,
|
|
234
|
+
objective: record.objective,
|
|
235
|
+
status: record.status,
|
|
236
|
+
createdAt: record.createdAt,
|
|
237
|
+
updatedAt: record.updatedAt,
|
|
238
|
+
metadata: {
|
|
239
|
+
...record.params,
|
|
240
|
+
...record.metadata,
|
|
241
|
+
},
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=goals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goals.js","sourceRoot":"","sources":["../../../src/core/execution/goals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runs Service
|
|
3
|
+
*
|
|
4
|
+
* Manages run tracking, step retrieval, and run lifecycle.
|
|
5
|
+
* Runs represent individual executions of goals.
|
|
6
|
+
*/
|
|
7
|
+
import type { DrizzleDB } from '../../db/client.js';
|
|
8
|
+
import type { Run, Step } from '../../types/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Create a run ID with 'run_' prefix
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateRunId(): string;
|
|
13
|
+
/**
|
|
14
|
+
* Create a step ID with 'step_' prefix
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateStepId(): string;
|
|
17
|
+
/**
|
|
18
|
+
* RunsService handles all run-related operations
|
|
19
|
+
*/
|
|
20
|
+
export declare class RunsService {
|
|
21
|
+
private db;
|
|
22
|
+
private logger;
|
|
23
|
+
constructor(db: DrizzleDB);
|
|
24
|
+
/**
|
|
25
|
+
* Get a run by ID
|
|
26
|
+
*/
|
|
27
|
+
get(id: string): Promise<Run>;
|
|
28
|
+
/**
|
|
29
|
+
* List runs with optional filtering
|
|
30
|
+
*/
|
|
31
|
+
list(filter?: Record<string, any>): Promise<Run[]>;
|
|
32
|
+
/**
|
|
33
|
+
* Get steps for a run
|
|
34
|
+
*/
|
|
35
|
+
getSteps(runId: string): Promise<Step[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Delete a run
|
|
38
|
+
*/
|
|
39
|
+
delete(id: string): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Internal: Create a new run (used by orchestrator)
|
|
42
|
+
*/
|
|
43
|
+
_create(goalId: string, stepBudget: number): Promise<Run>;
|
|
44
|
+
/**
|
|
45
|
+
* Internal: Add a step to a run
|
|
46
|
+
*/
|
|
47
|
+
_addStep(runId: string, stepNo: number, thought: string, toolName?: string, toolInput?: Record<string, any>, observation?: string, durationMs?: number, error?: string): Promise<Step>;
|
|
48
|
+
/**
|
|
49
|
+
* Internal: Update run status
|
|
50
|
+
*/
|
|
51
|
+
_updateStatus(runId: string, status: 'pending' | 'running' | 'completed' | 'failed', error?: string): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Internal: Update working memory
|
|
54
|
+
*/
|
|
55
|
+
_updateWorkingMemory(runId: string, memory: Record<string, any>): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Map database record to Run type
|
|
58
|
+
*/
|
|
59
|
+
private mapRun;
|
|
60
|
+
/**
|
|
61
|
+
* Map database record to Step type
|
|
62
|
+
*/
|
|
63
|
+
private mapStep;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=runs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../src/core/execution/runs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAItD;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,MAAM,CAAe;gBAEjB,EAAE,EAAE,SAAS;IAIzB;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAenC;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAwBxD;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAiB9C;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAavC;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAyB/D;;OAEG;IACG,QAAQ,CACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,GAAE,MAAU,EACtB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IA4BhB;;OAEG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,EACtD,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAoBhB;;OAEG;IACG,oBAAoB,CACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC;IAMhB;;OAEG;IACH,OAAO,CAAC,MAAM;IAgBd;;OAEG;IACH,OAAO,CAAC,OAAO;CAsBhB"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runs Service
|
|
3
|
+
*
|
|
4
|
+
* Manages run tracking, step retrieval, and run lifecycle.
|
|
5
|
+
* Runs represent individual executions of goals.
|
|
6
|
+
*/
|
|
7
|
+
import { eq, and, desc } from 'drizzle-orm';
|
|
8
|
+
import { nanoid } from 'nanoid';
|
|
9
|
+
import { runs, steps } from '../../db/schema.js';
|
|
10
|
+
import { NotFoundError } from '../../errors/index.js';
|
|
11
|
+
import { getLogger } from '../../util/logger.js';
|
|
12
|
+
/**
|
|
13
|
+
* Create a run ID with 'run_' prefix
|
|
14
|
+
*/
|
|
15
|
+
export function generateRunId() {
|
|
16
|
+
return `run_${nanoid(21)}`;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create a step ID with 'step_' prefix
|
|
20
|
+
*/
|
|
21
|
+
export function generateStepId() {
|
|
22
|
+
return `step_${nanoid(21)}`;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* RunsService handles all run-related operations
|
|
26
|
+
*/
|
|
27
|
+
export class RunsService {
|
|
28
|
+
db;
|
|
29
|
+
logger = getLogger();
|
|
30
|
+
constructor(db) {
|
|
31
|
+
this.db = db;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get a run by ID
|
|
35
|
+
*/
|
|
36
|
+
async get(id) {
|
|
37
|
+
const run = await this.db.query.runs.findFirst({
|
|
38
|
+
where: eq(runs.id, id),
|
|
39
|
+
with: {
|
|
40
|
+
goal: true,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
if (!run) {
|
|
44
|
+
throw new NotFoundError('Run', id);
|
|
45
|
+
}
|
|
46
|
+
return this.mapRun(run);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* List runs with optional filtering
|
|
50
|
+
*/
|
|
51
|
+
async list(filter) {
|
|
52
|
+
const conditions = [];
|
|
53
|
+
if (filter?.goalId) {
|
|
54
|
+
conditions.push(eq(runs.goalId, filter.goalId));
|
|
55
|
+
}
|
|
56
|
+
if (filter?.status) {
|
|
57
|
+
conditions.push(eq(runs.status, filter.status));
|
|
58
|
+
}
|
|
59
|
+
const allRuns = await this.db.query.runs.findMany({
|
|
60
|
+
where: conditions.length > 0 ? and(...conditions) : undefined,
|
|
61
|
+
with: {
|
|
62
|
+
goal: true,
|
|
63
|
+
},
|
|
64
|
+
orderBy: [desc(runs.createdAt)],
|
|
65
|
+
limit: filter?.limit || 50,
|
|
66
|
+
offset: filter?.offset || 0,
|
|
67
|
+
});
|
|
68
|
+
return allRuns.map((r) => this.mapRun(r));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get steps for a run
|
|
72
|
+
*/
|
|
73
|
+
async getSteps(runId) {
|
|
74
|
+
const run = await this.db.query.runs.findFirst({
|
|
75
|
+
where: eq(runs.id, runId),
|
|
76
|
+
});
|
|
77
|
+
if (!run) {
|
|
78
|
+
throw new NotFoundError('Run', runId);
|
|
79
|
+
}
|
|
80
|
+
const runSteps = await this.db.query.steps.findMany({
|
|
81
|
+
where: eq(steps.runId, runId),
|
|
82
|
+
orderBy: [steps.stepNo],
|
|
83
|
+
});
|
|
84
|
+
return runSteps.map((s) => this.mapStep(s));
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Delete a run
|
|
88
|
+
*/
|
|
89
|
+
async delete(id) {
|
|
90
|
+
const existing = await this.db.query.runs.findFirst({
|
|
91
|
+
where: eq(runs.id, id),
|
|
92
|
+
});
|
|
93
|
+
if (!existing) {
|
|
94
|
+
throw new NotFoundError('Run', id);
|
|
95
|
+
}
|
|
96
|
+
await this.db.delete(runs).where(eq(runs.id, id));
|
|
97
|
+
this.logger.debug(`Deleted run: ${id}`);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Internal: Create a new run (used by orchestrator)
|
|
101
|
+
*/
|
|
102
|
+
async _create(goalId, stepBudget) {
|
|
103
|
+
const runId = generateRunId();
|
|
104
|
+
const now = new Date();
|
|
105
|
+
await this.db.insert(runs).values({
|
|
106
|
+
id: runId,
|
|
107
|
+
goalId,
|
|
108
|
+
status: 'pending',
|
|
109
|
+
stepBudget,
|
|
110
|
+
stepsExecuted: 0,
|
|
111
|
+
workingMemory: {},
|
|
112
|
+
createdAt: now,
|
|
113
|
+
});
|
|
114
|
+
const run = await this.db.query.runs.findFirst({
|
|
115
|
+
where: eq(runs.id, runId),
|
|
116
|
+
});
|
|
117
|
+
if (!run) {
|
|
118
|
+
throw new Error('Failed to create run');
|
|
119
|
+
}
|
|
120
|
+
return this.mapRun(run);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Internal: Add a step to a run
|
|
124
|
+
*/
|
|
125
|
+
async _addStep(runId, stepNo, thought, toolName, toolInput, observation, durationMs = 0, error) {
|
|
126
|
+
const stepId = generateStepId();
|
|
127
|
+
const now = new Date();
|
|
128
|
+
await this.db.insert(steps).values({
|
|
129
|
+
id: stepId,
|
|
130
|
+
runId,
|
|
131
|
+
stepNo,
|
|
132
|
+
thought,
|
|
133
|
+
toolName,
|
|
134
|
+
toolInput,
|
|
135
|
+
observation,
|
|
136
|
+
durationMs,
|
|
137
|
+
error,
|
|
138
|
+
createdAt: now,
|
|
139
|
+
});
|
|
140
|
+
const step = await this.db.query.steps.findFirst({
|
|
141
|
+
where: eq(steps.id, stepId),
|
|
142
|
+
});
|
|
143
|
+
if (!step) {
|
|
144
|
+
throw new Error('Failed to create step');
|
|
145
|
+
}
|
|
146
|
+
return this.mapStep(step);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Internal: Update run status
|
|
150
|
+
*/
|
|
151
|
+
async _updateStatus(runId, status, error) {
|
|
152
|
+
const updateData = {
|
|
153
|
+
status,
|
|
154
|
+
};
|
|
155
|
+
if (status === 'running') {
|
|
156
|
+
updateData.startedAt = new Date();
|
|
157
|
+
}
|
|
158
|
+
else if (status === 'completed' || status === 'failed') {
|
|
159
|
+
updateData.endedAt = new Date();
|
|
160
|
+
}
|
|
161
|
+
if (error) {
|
|
162
|
+
updateData.error = error;
|
|
163
|
+
}
|
|
164
|
+
await this.db.update(runs)
|
|
165
|
+
.set(updateData)
|
|
166
|
+
.where(eq(runs.id, runId));
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Internal: Update working memory
|
|
170
|
+
*/
|
|
171
|
+
async _updateWorkingMemory(runId, memory) {
|
|
172
|
+
await this.db.update(runs)
|
|
173
|
+
.set({ workingMemory: memory })
|
|
174
|
+
.where(eq(runs.id, runId));
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Map database record to Run type
|
|
178
|
+
*/
|
|
179
|
+
mapRun(record) {
|
|
180
|
+
return {
|
|
181
|
+
id: record.id,
|
|
182
|
+
goalId: record.goalId,
|
|
183
|
+
status: record.status,
|
|
184
|
+
createdAt: record.createdAt,
|
|
185
|
+
updatedAt: record.updatedAt,
|
|
186
|
+
completedAt: record.endedAt,
|
|
187
|
+
failureReason: record.error,
|
|
188
|
+
metadata: {
|
|
189
|
+
stepsExecuted: record.stepsExecuted,
|
|
190
|
+
stepBudget: record.stepBudget,
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Map database record to Step type
|
|
196
|
+
*/
|
|
197
|
+
mapStep(record) {
|
|
198
|
+
return {
|
|
199
|
+
id: record.id,
|
|
200
|
+
runId: record.runId,
|
|
201
|
+
index: record.stepNo,
|
|
202
|
+
type: record.observation ?
|
|
203
|
+
'tool_result'
|
|
204
|
+
: record.toolName ?
|
|
205
|
+
'tool_call'
|
|
206
|
+
: 'thought',
|
|
207
|
+
content: record.thought,
|
|
208
|
+
toolName: record.toolName,
|
|
209
|
+
toolInput: record.toolInput,
|
|
210
|
+
toolOutput: record.observation,
|
|
211
|
+
timestamp: record.createdAt,
|
|
212
|
+
metadata: {
|
|
213
|
+
durationMs: record.durationMs,
|
|
214
|
+
error: record.error,
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=runs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../src/core/execution/runs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools Service
|
|
3
|
+
*
|
|
4
|
+
* Lists available tools for agents.
|
|
5
|
+
* Tools are registered at initialization and exposed through this service.
|
|
6
|
+
*/
|
|
7
|
+
import type { ToolDefinition } from '../../types/index.js';
|
|
8
|
+
import type { ToolRegistry } from '../tools/registry.js';
|
|
9
|
+
/**
|
|
10
|
+
* ToolsService handles tool listing and queries
|
|
11
|
+
*/
|
|
12
|
+
export declare class ToolsService {
|
|
13
|
+
private registry;
|
|
14
|
+
constructor(registry: ToolRegistry);
|
|
15
|
+
/**
|
|
16
|
+
* List all available tools
|
|
17
|
+
*/
|
|
18
|
+
list(filter?: Record<string, any>): Promise<ToolDefinition[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Get a specific tool by name
|
|
21
|
+
*/
|
|
22
|
+
get(name: string): Promise<ToolDefinition | null>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/core/execution/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAe;gBAEnB,QAAQ,EAAE,YAAY;IAIlC;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAUnE;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAIxD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools Service
|
|
3
|
+
*
|
|
4
|
+
* Lists available tools for agents.
|
|
5
|
+
* Tools are registered at initialization and exposed through this service.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* ToolsService handles tool listing and queries
|
|
9
|
+
*/
|
|
10
|
+
export class ToolsService {
|
|
11
|
+
registry;
|
|
12
|
+
constructor(registry) {
|
|
13
|
+
this.registry = registry;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* List all available tools
|
|
17
|
+
*/
|
|
18
|
+
async list(filter) {
|
|
19
|
+
let tools = this.registry.getAllDefinitions();
|
|
20
|
+
if (filter?.name) {
|
|
21
|
+
tools = tools.filter((t) => t.function.name === filter.name);
|
|
22
|
+
}
|
|
23
|
+
return tools;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get a specific tool by name
|
|
27
|
+
*/
|
|
28
|
+
async get(name) {
|
|
29
|
+
const tool = this.registry.get(name);
|
|
30
|
+
return tool ? tool.toJSONSchema() : null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/core/execution/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,QAAQ,CAAe;IAE/B,YAAY,QAAsB;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAA4B;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAE9C,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;YACjB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/orchestration/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/orchestration/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAA2C,MAAM,cAAc,CAAC"}
|