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.
Files changed (35) hide show
  1. package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.d.ts +91 -0
  2. package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.d.ts.map +1 -0
  3. package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.js +290 -0
  4. package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.js.map +1 -0
  5. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  6. package/dist/backend/backend/src/routes/api.routes.js +3 -0
  7. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  8. package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.d.ts +27 -0
  9. package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.d.ts.map +1 -0
  10. package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.js +40 -0
  11. package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.js.map +1 -0
  12. package/dist/backend/backend/src/services/agent/agent-registration.service.js +5 -5
  13. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  14. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +1 -1
  15. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +3 -3
  16. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  17. package/dist/backend/backend/src/services/index.d.ts +1 -0
  18. package/dist/backend/backend/src/services/index.d.ts.map +1 -1
  19. package/dist/backend/backend/src/services/index.js +1 -0
  20. package/dist/backend/backend/src/services/index.js.map +1 -1
  21. package/dist/backend/backend/src/services/workflow/unified-scheduler.service.d.ts +234 -0
  22. package/dist/backend/backend/src/services/workflow/unified-scheduler.service.d.ts.map +1 -0
  23. package/dist/backend/backend/src/services/workflow/unified-scheduler.service.js +636 -0
  24. package/dist/backend/backend/src/services/workflow/unified-scheduler.service.js.map +1 -0
  25. package/dist/backend/backend/src/services/workflow/unified-scheduler.types.d.ts +156 -0
  26. package/dist/backend/backend/src/services/workflow/unified-scheduler.types.d.ts.map +1 -0
  27. package/dist/backend/backend/src/services/workflow/unified-scheduler.types.js +81 -0
  28. package/dist/backend/backend/src/services/workflow/unified-scheduler.types.js.map +1 -0
  29. package/dist/cli/cli/src/commands/cloud.d.ts +31 -6
  30. package/dist/cli/cli/src/commands/cloud.d.ts.map +1 -1
  31. package/dist/cli/cli/src/commands/cloud.js +117 -6
  32. package/dist/cli/cli/src/commands/cloud.js.map +1 -1
  33. package/dist/cli/cli/src/index.js +1 -0
  34. package/dist/cli/cli/src/index.js.map +1 -1
  35. 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;AA+BjE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CA+FpE"}
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 when feature flag is enabled.
1243
- // When CREWLY_USE_MODULAR_PROMPTS=true, replaces the entire monolithic template
1244
- // with PromptAssemblyService handling identity, skills, communication, recovery,
1245
- // lifecycle, memory, soul, and team-reference modules with token budget enforcement.
1246
- if (process.env.CREWLY_USE_MODULAR_PROMPTS === 'true') {
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');