crewly 1.4.63 → 1.4.65
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/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.d.ts +91 -0
- package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.js +290 -0
- package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.js.map +1 -0
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +3 -0
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.d.ts +27 -0
- package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.js +40 -0
- package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.js.map +1 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +5 -5
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js +3 -3
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
- package/dist/backend/backend/src/services/index.d.ts +1 -0
- package/dist/backend/backend/src/services/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/index.js +1 -0
- package/dist/backend/backend/src/services/index.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/unified-scheduler.service.d.ts +234 -0
- package/dist/backend/backend/src/services/workflow/unified-scheduler.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/workflow/unified-scheduler.service.js +636 -0
- package/dist/backend/backend/src/services/workflow/unified-scheduler.service.js.map +1 -0
- package/dist/backend/backend/src/services/workflow/unified-scheduler.types.d.ts +156 -0
- package/dist/backend/backend/src/services/workflow/unified-scheduler.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/workflow/unified-scheduler.types.js +81 -0
- package/dist/backend/backend/src/services/workflow/unified-scheduler.types.js.map +1 -0
- package/dist/cli/cli/src/commands/cloud.d.ts +31 -6
- package/dist/cli/cli/src/commands/cloud.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/cloud.js +117 -6
- package/dist/cli/cli/src/commands/cloud.js.map +1 -1
- package/dist/cli/cli/src/index.js +1 -0
- package/dist/cli/cli/src/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Scheduler REST API Controller
|
|
3
|
+
*
|
|
4
|
+
* Handlers for unified schedule CRUD operations, pause/resume,
|
|
5
|
+
* manual trigger, and scheduler health reporting.
|
|
6
|
+
*
|
|
7
|
+
* @module controllers/scheduler/unified-scheduler.controller
|
|
8
|
+
*/
|
|
9
|
+
import type { Request, Response } from 'express';
|
|
10
|
+
/**
|
|
11
|
+
* GET /api/unified-scheduler/schedules
|
|
12
|
+
*
|
|
13
|
+
* Lists all schedules. Supports optional `?target=session-name` filter.
|
|
14
|
+
*
|
|
15
|
+
* @param req - Express request (query: target?)
|
|
16
|
+
* @param res - Express response with schedule array
|
|
17
|
+
*/
|
|
18
|
+
export declare function listSchedules(req: Request, res: Response): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* POST /api/unified-scheduler/schedules
|
|
21
|
+
*
|
|
22
|
+
* Creates a new schedule after validating required fields and type-specific constraints.
|
|
23
|
+
*
|
|
24
|
+
* @param req - Express request with schedule data in body
|
|
25
|
+
* @param res - Express response with created schedule (201)
|
|
26
|
+
*/
|
|
27
|
+
export declare function createSchedule(req: Request, res: Response): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* GET /api/unified-scheduler/schedules/:id
|
|
30
|
+
*
|
|
31
|
+
* Retrieves a single schedule by its ID.
|
|
32
|
+
*
|
|
33
|
+
* @param req - Express request with id param
|
|
34
|
+
* @param res - Express response with schedule or 404
|
|
35
|
+
*/
|
|
36
|
+
export declare function getSchedule(req: Request, res: Response): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* PUT /api/unified-scheduler/schedules/:id
|
|
39
|
+
*
|
|
40
|
+
* Partially updates a schedule. Only provided fields are changed.
|
|
41
|
+
*
|
|
42
|
+
* @param req - Express request with id param and partial schedule in body
|
|
43
|
+
* @param res - Express response with updated schedule or 404
|
|
44
|
+
*/
|
|
45
|
+
export declare function updateSchedule(req: Request, res: Response): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* DELETE /api/unified-scheduler/schedules/:id
|
|
48
|
+
*
|
|
49
|
+
* Deletes a schedule by its ID.
|
|
50
|
+
*
|
|
51
|
+
* @param req - Express request with id param
|
|
52
|
+
* @param res - Express response with success flag or 404
|
|
53
|
+
*/
|
|
54
|
+
export declare function deleteSchedule(req: Request, res: Response): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* POST /api/unified-scheduler/schedules/:id/pause
|
|
57
|
+
*
|
|
58
|
+
* Pauses an active schedule.
|
|
59
|
+
*
|
|
60
|
+
* @param req - Express request with id param
|
|
61
|
+
* @param res - Express response with updated schedule or 404
|
|
62
|
+
*/
|
|
63
|
+
export declare function pauseSchedule(req: Request, res: Response): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* POST /api/unified-scheduler/schedules/:id/resume
|
|
66
|
+
*
|
|
67
|
+
* Resumes a paused schedule.
|
|
68
|
+
*
|
|
69
|
+
* @param req - Express request with id param
|
|
70
|
+
* @param res - Express response with updated schedule or 404
|
|
71
|
+
*/
|
|
72
|
+
export declare function resumeSchedule(req: Request, res: Response): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* POST /api/unified-scheduler/schedules/:id/trigger
|
|
75
|
+
*
|
|
76
|
+
* Manually triggers a schedule immediately, regardless of its timer.
|
|
77
|
+
*
|
|
78
|
+
* @param req - Express request with id param
|
|
79
|
+
* @param res - Express response with trigger result or 404
|
|
80
|
+
*/
|
|
81
|
+
export declare function triggerSchedule(req: Request, res: Response): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* GET /api/unified-scheduler/health
|
|
84
|
+
*
|
|
85
|
+
* Returns scheduler health statistics: state, active/paused counts, total triggers.
|
|
86
|
+
*
|
|
87
|
+
* @param _req - Express request (unused)
|
|
88
|
+
* @param res - Express response with health data
|
|
89
|
+
*/
|
|
90
|
+
export declare function getHealth(_req: Request, res: Response): Promise<void>;
|
|
91
|
+
//# sourceMappingURL=unified-scheduler.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unified-scheduler.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/scheduler/unified-scheduler.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAoFjD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAW9E;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/E;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB5E;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB/E;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/E;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB9E;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/E;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhF;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3E"}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Scheduler REST API Controller
|
|
3
|
+
*
|
|
4
|
+
* Handlers for unified schedule CRUD operations, pause/resume,
|
|
5
|
+
* manual trigger, and scheduler health reporting.
|
|
6
|
+
*
|
|
7
|
+
* @module controllers/scheduler/unified-scheduler.controller
|
|
8
|
+
*/
|
|
9
|
+
import { UnifiedSchedulerService } from '../../services/workflow/unified-scheduler.service.js';
|
|
10
|
+
/** Valid schedule types accepted by the API. */
|
|
11
|
+
const VALID_SCHEDULE_TYPES = ['cron', 'interval', 'idle'];
|
|
12
|
+
/**
|
|
13
|
+
* Validates a 5-field cron expression (minute hour dom month dow).
|
|
14
|
+
*
|
|
15
|
+
* Performs a basic structural check — five space-separated fields,
|
|
16
|
+
* each consisting of digits, wildcards, ranges, steps, or lists.
|
|
17
|
+
*
|
|
18
|
+
* @param expr - The cron expression string to validate
|
|
19
|
+
* @returns true if the expression has the correct structure
|
|
20
|
+
*/
|
|
21
|
+
function isValidCronExpression(expr) {
|
|
22
|
+
const parts = expr.trim().split(/\s+/);
|
|
23
|
+
if (parts.length !== 5)
|
|
24
|
+
return false;
|
|
25
|
+
const fieldPattern = /^[0-9*,/\-]+$/;
|
|
26
|
+
return parts.every((p) => fieldPattern.test(p));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Validates the request body for creating or updating a schedule.
|
|
30
|
+
*
|
|
31
|
+
* @param body - The request body object
|
|
32
|
+
* @param isUpdate - When true, all fields are optional (partial update)
|
|
33
|
+
* @returns An error message string if validation fails, or null if valid
|
|
34
|
+
*/
|
|
35
|
+
function validateScheduleBody(body, isUpdate) {
|
|
36
|
+
if (!isUpdate) {
|
|
37
|
+
if (!body.target || typeof body.target !== 'string') {
|
|
38
|
+
return 'Missing required field: target';
|
|
39
|
+
}
|
|
40
|
+
if (!body.type || !VALID_SCHEDULE_TYPES.includes(body.type)) {
|
|
41
|
+
return `Invalid or missing field: type (must be one of: ${VALID_SCHEDULE_TYPES.join(', ')})`;
|
|
42
|
+
}
|
|
43
|
+
if (!body.message || typeof body.message !== 'string') {
|
|
44
|
+
return 'Missing required field: message';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const type = body.type;
|
|
48
|
+
if (type === 'cron') {
|
|
49
|
+
if (!body.cron || typeof body.cron !== 'string' || !isValidCronExpression(body.cron)) {
|
|
50
|
+
return 'Field cron is required and must be a valid 5-field cron expression when type is cron';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (type === 'interval') {
|
|
54
|
+
if (body.intervalMinutes === undefined ||
|
|
55
|
+
typeof body.intervalMinutes !== 'number' ||
|
|
56
|
+
body.intervalMinutes <= 0) {
|
|
57
|
+
return 'Field intervalMinutes is required and must be > 0 when type is interval';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (type === 'idle') {
|
|
61
|
+
if (body.idleTimeoutMinutes === undefined ||
|
|
62
|
+
typeof body.idleTimeoutMinutes !== 'number' ||
|
|
63
|
+
body.idleTimeoutMinutes <= 0) {
|
|
64
|
+
return 'Field idleTimeoutMinutes is required and must be > 0 when type is idle';
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// For updates, validate type if provided
|
|
68
|
+
if (isUpdate && body.type !== undefined) {
|
|
69
|
+
if (!VALID_SCHEDULE_TYPES.includes(body.type)) {
|
|
70
|
+
return `Invalid field: type (must be one of: ${VALID_SCHEDULE_TYPES.join(', ')})`;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* GET /api/unified-scheduler/schedules
|
|
77
|
+
*
|
|
78
|
+
* Lists all schedules. Supports optional `?target=session-name` filter.
|
|
79
|
+
*
|
|
80
|
+
* @param req - Express request (query: target?)
|
|
81
|
+
* @param res - Express response with schedule array
|
|
82
|
+
*/
|
|
83
|
+
export async function listSchedules(req, res) {
|
|
84
|
+
try {
|
|
85
|
+
const service = UnifiedSchedulerService.getInstance();
|
|
86
|
+
const target = req.query.target;
|
|
87
|
+
const schedules = await service.list(target);
|
|
88
|
+
res.json({ schedules });
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
res.status(500).json({
|
|
92
|
+
error: error instanceof Error ? error.message : 'Failed to list schedules',
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* POST /api/unified-scheduler/schedules
|
|
98
|
+
*
|
|
99
|
+
* Creates a new schedule after validating required fields and type-specific constraints.
|
|
100
|
+
*
|
|
101
|
+
* @param req - Express request with schedule data in body
|
|
102
|
+
* @param res - Express response with created schedule (201)
|
|
103
|
+
*/
|
|
104
|
+
export async function createSchedule(req, res) {
|
|
105
|
+
try {
|
|
106
|
+
const validationError = validateScheduleBody(req.body, false);
|
|
107
|
+
if (validationError) {
|
|
108
|
+
res.status(400).json({ error: validationError });
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const service = UnifiedSchedulerService.getInstance();
|
|
112
|
+
const schedule = await service.create(req.body);
|
|
113
|
+
res.status(201).json(schedule);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
res.status(500).json({
|
|
117
|
+
error: error instanceof Error ? error.message : 'Failed to create schedule',
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* GET /api/unified-scheduler/schedules/:id
|
|
123
|
+
*
|
|
124
|
+
* Retrieves a single schedule by its ID.
|
|
125
|
+
*
|
|
126
|
+
* @param req - Express request with id param
|
|
127
|
+
* @param res - Express response with schedule or 404
|
|
128
|
+
*/
|
|
129
|
+
export async function getSchedule(req, res) {
|
|
130
|
+
try {
|
|
131
|
+
const service = UnifiedSchedulerService.getInstance();
|
|
132
|
+
const schedule = await service.get(req.params.id);
|
|
133
|
+
if (!schedule) {
|
|
134
|
+
res.status(404).json({ error: `Schedule ${req.params.id} not found` });
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
res.json(schedule);
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
res.status(500).json({
|
|
141
|
+
error: error instanceof Error ? error.message : 'Failed to get schedule',
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* PUT /api/unified-scheduler/schedules/:id
|
|
147
|
+
*
|
|
148
|
+
* Partially updates a schedule. Only provided fields are changed.
|
|
149
|
+
*
|
|
150
|
+
* @param req - Express request with id param and partial schedule in body
|
|
151
|
+
* @param res - Express response with updated schedule or 404
|
|
152
|
+
*/
|
|
153
|
+
export async function updateSchedule(req, res) {
|
|
154
|
+
try {
|
|
155
|
+
const validationError = validateScheduleBody(req.body, true);
|
|
156
|
+
if (validationError) {
|
|
157
|
+
res.status(400).json({ error: validationError });
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const service = UnifiedSchedulerService.getInstance();
|
|
161
|
+
const schedule = await service.update(req.params.id, req.body);
|
|
162
|
+
if (!schedule) {
|
|
163
|
+
res.status(404).json({ error: `Schedule ${req.params.id} not found` });
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
res.json(schedule);
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
res.status(500).json({
|
|
170
|
+
error: error instanceof Error ? error.message : 'Failed to update schedule',
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* DELETE /api/unified-scheduler/schedules/:id
|
|
176
|
+
*
|
|
177
|
+
* Deletes a schedule by its ID.
|
|
178
|
+
*
|
|
179
|
+
* @param req - Express request with id param
|
|
180
|
+
* @param res - Express response with success flag or 404
|
|
181
|
+
*/
|
|
182
|
+
export async function deleteSchedule(req, res) {
|
|
183
|
+
try {
|
|
184
|
+
const service = UnifiedSchedulerService.getInstance();
|
|
185
|
+
const deleted = await service.delete(req.params.id);
|
|
186
|
+
if (!deleted) {
|
|
187
|
+
res.status(404).json({ error: `Schedule ${req.params.id} not found` });
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
res.json({ success: true, id: req.params.id });
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
res.status(500).json({
|
|
194
|
+
error: error instanceof Error ? error.message : 'Failed to delete schedule',
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* POST /api/unified-scheduler/schedules/:id/pause
|
|
200
|
+
*
|
|
201
|
+
* Pauses an active schedule.
|
|
202
|
+
*
|
|
203
|
+
* @param req - Express request with id param
|
|
204
|
+
* @param res - Express response with updated schedule or 404
|
|
205
|
+
*/
|
|
206
|
+
export async function pauseSchedule(req, res) {
|
|
207
|
+
try {
|
|
208
|
+
const service = UnifiedSchedulerService.getInstance();
|
|
209
|
+
const schedule = await service.pause(req.params.id);
|
|
210
|
+
if (!schedule) {
|
|
211
|
+
res.status(404).json({ error: `Schedule ${req.params.id} not found` });
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
res.json(schedule);
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
res.status(500).json({
|
|
218
|
+
error: error instanceof Error ? error.message : 'Failed to pause schedule',
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* POST /api/unified-scheduler/schedules/:id/resume
|
|
224
|
+
*
|
|
225
|
+
* Resumes a paused schedule.
|
|
226
|
+
*
|
|
227
|
+
* @param req - Express request with id param
|
|
228
|
+
* @param res - Express response with updated schedule or 404
|
|
229
|
+
*/
|
|
230
|
+
export async function resumeSchedule(req, res) {
|
|
231
|
+
try {
|
|
232
|
+
const service = UnifiedSchedulerService.getInstance();
|
|
233
|
+
const schedule = await service.resume(req.params.id);
|
|
234
|
+
if (!schedule) {
|
|
235
|
+
res.status(404).json({ error: `Schedule ${req.params.id} not found` });
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
res.json(schedule);
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
res.status(500).json({
|
|
242
|
+
error: error instanceof Error ? error.message : 'Failed to resume schedule',
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* POST /api/unified-scheduler/schedules/:id/trigger
|
|
248
|
+
*
|
|
249
|
+
* Manually triggers a schedule immediately, regardless of its timer.
|
|
250
|
+
*
|
|
251
|
+
* @param req - Express request with id param
|
|
252
|
+
* @param res - Express response with trigger result or 404
|
|
253
|
+
*/
|
|
254
|
+
export async function triggerSchedule(req, res) {
|
|
255
|
+
try {
|
|
256
|
+
const service = UnifiedSchedulerService.getInstance();
|
|
257
|
+
const result = await service.triggerNow(req.params.id);
|
|
258
|
+
if (!result) {
|
|
259
|
+
res.status(404).json({ error: `Schedule ${req.params.id} not found` });
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
res.json(result);
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
res.status(500).json({
|
|
266
|
+
error: error instanceof Error ? error.message : 'Failed to trigger schedule',
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* GET /api/unified-scheduler/health
|
|
272
|
+
*
|
|
273
|
+
* Returns scheduler health statistics: state, active/paused counts, total triggers.
|
|
274
|
+
*
|
|
275
|
+
* @param _req - Express request (unused)
|
|
276
|
+
* @param res - Express response with health data
|
|
277
|
+
*/
|
|
278
|
+
export async function getHealth(_req, res) {
|
|
279
|
+
try {
|
|
280
|
+
const service = UnifiedSchedulerService.getInstance();
|
|
281
|
+
const health = await service.getHealth();
|
|
282
|
+
res.json(health);
|
|
283
|
+
}
|
|
284
|
+
catch (error) {
|
|
285
|
+
res.status(500).json({
|
|
286
|
+
error: error instanceof Error ? error.message : 'Failed to get scheduler health',
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
//# sourceMappingURL=unified-scheduler.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unified-scheduler.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/scheduler/unified-scheduler.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.routes.d.ts","sourceRoot":"","sources":["../../../../../backend/src/routes/api.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"api.routes.d.ts","sourceRoot":"","sources":["../../../../../backend/src/routes/api.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAgCjE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAkGpE"}
|
|
@@ -10,6 +10,7 @@ import { registerScheduledMessageRoutes } from './modules/scheduled-messages.rou
|
|
|
10
10
|
import { registerDeliveryLogRoutes } from './modules/delivery-logs.routes.js';
|
|
11
11
|
import { registerConfigRoutes } from './modules/config.routes.js';
|
|
12
12
|
import { registerCronTaskRoutes } from './modules/cron-task.routes.js';
|
|
13
|
+
import { createUnifiedSchedulerRoutes } from './modules/unified-scheduler.routes.js';
|
|
13
14
|
import { createFactoryRoutes } from './factory.routes.js';
|
|
14
15
|
import { selfImprovementRouter } from '../controllers/self-improvement/index.js';
|
|
15
16
|
import { createMessagingRouter } from '../controllers/messaging/messaging.routes.js';
|
|
@@ -104,6 +105,8 @@ export function createApiRoutes(apiController) {
|
|
|
104
105
|
registerDeliveryLogRoutes(router, apiController);
|
|
105
106
|
registerConfigRoutes(router, apiController);
|
|
106
107
|
registerCronTaskRoutes(router);
|
|
108
|
+
// Unified Scheduler (cron + interval + idle — consolidation)
|
|
109
|
+
router.use('/unified-scheduler', createUnifiedSchedulerRoutes());
|
|
107
110
|
return router;
|
|
108
111
|
}
|
|
109
112
|
//# sourceMappingURL=api.routes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.routes.js","sourceRoot":"","sources":["../../../../../backend/src/routes/api.routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.routes.js","sourceRoot":"","sources":["../../../../../backend/src/routes/api.routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Scheduler Routes
|
|
3
|
+
*
|
|
4
|
+
* Defines Express routes for the unified scheduler API,
|
|
5
|
+
* mapping HTTP verbs + paths to controller handlers.
|
|
6
|
+
*
|
|
7
|
+
* @module routes/modules/unified-scheduler.routes
|
|
8
|
+
*/
|
|
9
|
+
import { Router } from 'express';
|
|
10
|
+
/**
|
|
11
|
+
* Creates and returns the Express router for unified scheduler endpoints.
|
|
12
|
+
*
|
|
13
|
+
* Mounts the following routes (relative to wherever this router is mounted):
|
|
14
|
+
* - GET /schedules — List all schedules
|
|
15
|
+
* - POST /schedules — Create a schedule
|
|
16
|
+
* - GET /schedules/:id — Get a single schedule
|
|
17
|
+
* - PUT /schedules/:id — Update a schedule
|
|
18
|
+
* - DELETE /schedules/:id — Delete a schedule
|
|
19
|
+
* - POST /schedules/:id/pause — Pause a schedule
|
|
20
|
+
* - POST /schedules/:id/resume — Resume a schedule
|
|
21
|
+
* - POST /schedules/:id/trigger — Manually trigger a schedule
|
|
22
|
+
* - GET /health — Scheduler health stats
|
|
23
|
+
*
|
|
24
|
+
* @returns Express Router with all unified scheduler routes registered
|
|
25
|
+
*/
|
|
26
|
+
export declare function createUnifiedSchedulerRoutes(): Router;
|
|
27
|
+
//# sourceMappingURL=unified-scheduler.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unified-scheduler.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/routes/modules/unified-scheduler.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAcrD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Scheduler Routes
|
|
3
|
+
*
|
|
4
|
+
* Defines Express routes for the unified scheduler API,
|
|
5
|
+
* mapping HTTP verbs + paths to controller handlers.
|
|
6
|
+
*
|
|
7
|
+
* @module routes/modules/unified-scheduler.routes
|
|
8
|
+
*/
|
|
9
|
+
import { Router } from 'express';
|
|
10
|
+
import * as ctrl from '../../controllers/scheduler/unified-scheduler.controller.js';
|
|
11
|
+
/**
|
|
12
|
+
* Creates and returns the Express router for unified scheduler endpoints.
|
|
13
|
+
*
|
|
14
|
+
* Mounts the following routes (relative to wherever this router is mounted):
|
|
15
|
+
* - GET /schedules — List all schedules
|
|
16
|
+
* - POST /schedules — Create a schedule
|
|
17
|
+
* - GET /schedules/:id — Get a single schedule
|
|
18
|
+
* - PUT /schedules/:id — Update a schedule
|
|
19
|
+
* - DELETE /schedules/:id — Delete a schedule
|
|
20
|
+
* - POST /schedules/:id/pause — Pause a schedule
|
|
21
|
+
* - POST /schedules/:id/resume — Resume a schedule
|
|
22
|
+
* - POST /schedules/:id/trigger — Manually trigger a schedule
|
|
23
|
+
* - GET /health — Scheduler health stats
|
|
24
|
+
*
|
|
25
|
+
* @returns Express Router with all unified scheduler routes registered
|
|
26
|
+
*/
|
|
27
|
+
export function createUnifiedSchedulerRoutes() {
|
|
28
|
+
const router = Router();
|
|
29
|
+
router.get('/schedules', ctrl.listSchedules);
|
|
30
|
+
router.post('/schedules', ctrl.createSchedule);
|
|
31
|
+
router.get('/schedules/:id', ctrl.getSchedule);
|
|
32
|
+
router.put('/schedules/:id', ctrl.updateSchedule);
|
|
33
|
+
router.delete('/schedules/:id', ctrl.deleteSchedule);
|
|
34
|
+
router.post('/schedules/:id/pause', ctrl.pauseSchedule);
|
|
35
|
+
router.post('/schedules/:id/resume', ctrl.resumeSchedule);
|
|
36
|
+
router.post('/schedules/:id/trigger', ctrl.triggerSchedule);
|
|
37
|
+
router.get('/health', ctrl.getHealth);
|
|
38
|
+
return router;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=unified-scheduler.routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unified-scheduler.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/routes/modules/unified-scheduler.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,6DAA6D,CAAC;AAEpF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,4BAA4B;IAC3C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1D,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5D,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAEtC,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -1239,11 +1239,11 @@ export class AgentRegistrationService {
|
|
|
1239
1239
|
});
|
|
1240
1240
|
}
|
|
1241
1241
|
}
|
|
1242
|
-
// Phase 5: Use modular prompt assembly
|
|
1243
|
-
//
|
|
1244
|
-
//
|
|
1245
|
-
//
|
|
1246
|
-
if (process.env.CREWLY_USE_MODULAR_PROMPTS
|
|
1242
|
+
// Phase 5: Use modular prompt assembly (enabled by default, disable with CREWLY_USE_MODULAR_PROMPTS=false).
|
|
1243
|
+
// Replaces the entire monolithic template with PromptAssemblyService — handling identity,
|
|
1244
|
+
// skills, communication, recovery, lifecycle, memory, soul, and team-reference modules
|
|
1245
|
+
// with token budget enforcement.
|
|
1246
|
+
if (process.env.CREWLY_USE_MODULAR_PROMPTS !== 'false') {
|
|
1247
1247
|
this.logger.info('Using modular prompt assembly (Phase 5)', { sessionName, role });
|
|
1248
1248
|
const agentSkillsPath = path.join(this.projectRoot, 'config', 'skills', 'agent');
|
|
1249
1249
|
const tlSkillsPath = path.join(this.projectRoot, 'config', 'skills', 'team-leader');
|