crewly 1.20.170 → 1.20.171
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/config/skills/agent/core/schedule-followup/execute.sh +1 -1
- package/config/skills/agent/core/watch-for-event/execute.sh +1 -1
- package/config/skills/orchestrator/delegate-task/execute.sh +1 -0
- package/dist/backend/backend/src/constants.d.ts +8 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +8 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/trigger/trigger.controller.d.ts +13 -2
- package/dist/backend/backend/src/controllers/trigger/trigger.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/trigger/trigger.controller.js +31 -8
- package/dist/backend/backend/src/controllers/trigger/trigger.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +29 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/v3/escalation.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/escalation.service.js +4 -2
- package/dist/backend/backend/src/services/v3/escalation.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.js +4 -1
- package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/trigger-classification.d.ts +87 -0
- package/dist/backend/backend/src/services/v3/trigger-classification.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/trigger-classification.js +120 -0
- package/dist/backend/backend/src/services/v3/trigger-classification.js.map +1 -0
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +50 -2
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js +101 -4
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/trigger-expiry.d.ts +70 -0
- package/dist/backend/backend/src/services/v3/trigger-expiry.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/trigger-expiry.js +136 -0
- package/dist/backend/backend/src/services/v3/trigger-expiry.js.map +1 -0
- package/dist/backend/backend/src/types/v2/index.d.ts +2 -2
- package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/index.js +1 -1
- package/dist/backend/backend/src/types/v2/index.js.map +1 -1
- package/dist/backend/backend/src/types/v2/trigger.types.d.ts +80 -4
- package/dist/backend/backend/src/types/v2/trigger.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/trigger.types.js +35 -0
- package/dist/backend/backend/src/types/v2/trigger.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +8 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +8 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/types/v2/index.d.ts +2 -2
- package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/index.js +1 -1
- package/dist/cli/backend/src/types/v2/index.js.map +1 -1
- package/dist/cli/backend/src/types/v2/trigger.types.d.ts +80 -4
- package/dist/cli/backend/src/types/v2/trigger.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/trigger.types.js +35 -0
- package/dist/cli/backend/src/types/v2/trigger.types.js.map +1 -1
- package/frontend/dist/assets/{index-9153caca.js → index-212a6639.js} +291 -290
- package/frontend/dist/assets/index-769ba7ac.css +42 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/frontend/dist/assets/index-0707e2ac.css +0 -42
|
@@ -7,26 +7,34 @@
|
|
|
7
7
|
* @module controllers/trigger/trigger.controller
|
|
8
8
|
*/
|
|
9
9
|
import { TriggerEngine } from '../../services/v3/trigger-engine.service.js';
|
|
10
|
-
import { validateCreateTriggerInput, isValidTriggerStatus } from '../../types/v2/trigger.types.js';
|
|
10
|
+
import { validateCreateTriggerInput, isValidTriggerStatus, isRecurringTrigger } from '../../types/v2/trigger.types.js';
|
|
11
|
+
import { resolveTriggerCreator } from '../../services/v3/trigger-classification.js';
|
|
12
|
+
import { readAgentSessionHeader, isOwnerDashboardRequest } from '../../utils/agent-caller.utils.js';
|
|
13
|
+
import { ORCHESTRATOR_SESSION_NAME } from '../../constants.js';
|
|
11
14
|
// ---------------------------------------------------------------------------
|
|
12
15
|
// Helpers
|
|
13
16
|
// ---------------------------------------------------------------------------
|
|
14
17
|
function engine() {
|
|
15
18
|
return TriggerEngine.getInstance();
|
|
16
19
|
}
|
|
17
|
-
// ---------------------------------------------------------------------------
|
|
18
|
-
// Handlers
|
|
19
|
-
// ---------------------------------------------------------------------------
|
|
20
20
|
/**
|
|
21
21
|
* GET /api/triggers
|
|
22
|
-
* Lists all triggers, optionally filtered by ?status
|
|
22
|
+
* Lists all triggers, optionally filtered by ?status=. Active and paused
|
|
23
|
+
* recurring triggers with a `maxFires` cap carry `projectedLastFireAt`.
|
|
23
24
|
*/
|
|
24
25
|
export async function listTriggers(req, res) {
|
|
25
26
|
const { status } = req.query;
|
|
26
27
|
const statusFilter = typeof status === 'string' && isValidTriggerStatus(status)
|
|
27
28
|
? status
|
|
28
29
|
: undefined;
|
|
29
|
-
const
|
|
30
|
+
const eng = engine();
|
|
31
|
+
const triggers = eng.list(statusFilter).map((t) => {
|
|
32
|
+
if ((t.status !== 'active' && t.status !== 'paused') || t.maxFires === undefined || !isRecurringTrigger(t)) {
|
|
33
|
+
return t;
|
|
34
|
+
}
|
|
35
|
+
const projectedLastFireAt = eng.projectLastFireAt(t.id);
|
|
36
|
+
return projectedLastFireAt ? { ...t, projectedLastFireAt } : t;
|
|
37
|
+
});
|
|
30
38
|
res.json({ success: true, data: triggers });
|
|
31
39
|
}
|
|
32
40
|
/**
|
|
@@ -51,10 +59,25 @@ export async function getTrigger(req, res) {
|
|
|
51
59
|
}
|
|
52
60
|
/**
|
|
53
61
|
* POST /api/triggers
|
|
54
|
-
* Creates a new trigger
|
|
62
|
+
* Creates a new trigger.
|
|
63
|
+
*
|
|
64
|
+
* `createdBy` / `createdBySession` / `internal` come from the caller, not the
|
|
65
|
+
* body: an `X-Agent-Session` call belongs to that agent, a dashboard call to
|
|
66
|
+
* the owner (see resolveTriggerCreator).
|
|
55
67
|
*/
|
|
56
68
|
export async function createTrigger(req, res) {
|
|
57
|
-
const
|
|
69
|
+
const body = (req.body ?? {});
|
|
70
|
+
const callerSession = readAgentSessionHeader(req);
|
|
71
|
+
const creator = resolveTriggerCreator({
|
|
72
|
+
requestedCreatedBy: body.createdBy,
|
|
73
|
+
requestedInternal: typeof body.internal === 'boolean' ? body.internal : undefined,
|
|
74
|
+
callerSession,
|
|
75
|
+
callerIsOrchestrator: callerSession === ORCHESTRATOR_SESSION_NAME,
|
|
76
|
+
isOwnerDashboard: isOwnerDashboardRequest(req),
|
|
77
|
+
});
|
|
78
|
+
const input = { ...body, ...creator };
|
|
79
|
+
if (!creator.createdBySession)
|
|
80
|
+
delete input.createdBySession;
|
|
58
81
|
const errors = validateCreateTriggerInput(input);
|
|
59
82
|
if (errors.length > 0) {
|
|
60
83
|
res.status(400).json({ success: false, error: errors.join(', ') });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/trigger/trigger.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE5E,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"trigger.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/trigger/trigger.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../backend/src/index.ts"],"names":[],"mappings":";AA2CA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAyNjD,qBAAa,YAAY;IACxB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAqE;IACnF,gFAAgF;IAChF,OAAO,CAAC,iBAAiB,CAAC,CAAyD;IAEnF,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,uBAAuB,CAA2B;IAC1D,OAAO,CAAC,sBAAsB,CAA0B;IACxD,OAAO,CAAC,4BAA4B,CAAgC;IACpE,OAAO,CAAC,uBAAuB,CAA2B;IAC1D,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,qBAAqB,CAAyB;IACtD,OAAO,CAAC,wBAAwB,CAA4B;IAC5D,OAAO,CAAC,eAAe,CAAmB;IAC1C,qEAAqE;IACrE,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,sBAAsB,CAAuC;IACrE,OAAO,CAAC,sBAAsB,CAAiD;IAC/E,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,0BAA0B,CAA2C;IAC7E,kGAAkG;IAClG,OAAO,CAAC,sBAAsB,CAAuC;IAGrE,OAAO,CAAC,+BAA+B,CAAgD;IACvF,+FAA+F;IAC/F,OAAO,CAAC,oBAAoB,CAAqC;IACjE,8HAA8H;IAC9H,OAAO,CAAC,0BAA0B,CAA2C;IAC7E,OAAO,CAAC,6BAA6B,CAA8C;IACnF,OAAO,CAAC,wBAAwB,CAAyC;IACzE,OAAO,CAAC,2BAA2B,CAA+B;IAClE,OAAO,CAAC,0BAA0B,CAA8B;IAChE,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,kBAAkB,CAA0C;IAKpE,OAAO,CAAC,aAAa,CAAuE;IAC5F,OAAO,CAAC,gBAAgB,CAET;IAGf,OAAO,CAAC,cAAc,CAAS;IAC/B,oEAAoE;IACpE,OAAO,CAAC,qBAAqB,CAA6C;IAC1E,OAAO,CAAC,qBAAqB,CAA2G;IACxI,OAAO,CAAC,gBAAgB,CAAiG;IACzH,oFAAoF;IACpF,OAAO,CAAC,oBAAoB,CAAK;IACjC,2EAA2E;IAC3E,OAAO,CAAC,sBAAsB,CAA8B;IAC5D,OAAO,CAAC,wBAAwB,CAA+B;gBAEnD,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAsE3C,OAAO,CAAC,kBAAkB;IA8pC1B,OAAO,CAAC,mBAAmB;IAmD3B,OAAO,CAAC,eAAe;IAoLvB,OAAO,CAAC,kBAAkB;IAwBpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../backend/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2471,6 +2471,8 @@ export class CrewlyServer {
|
|
|
2471
2471
|
triggerEngine.setActionHandler(async (trigger, action) => {
|
|
2472
2472
|
const triggerId = trigger.id;
|
|
2473
2473
|
const logger = this.logger;
|
|
2474
|
+
// What this fire did, shown to the owner as the trigger's last result.
|
|
2475
|
+
let outcome;
|
|
2474
2476
|
// 1. sendMessage — enqueue a message to the orchestrator session
|
|
2475
2477
|
if (action.sendMessage) {
|
|
2476
2478
|
const { target, message } = action.sendMessage;
|
|
@@ -2483,8 +2485,10 @@ export class CrewlyServer {
|
|
|
2483
2485
|
source: 'system_event',
|
|
2484
2486
|
});
|
|
2485
2487
|
logger.info('TriggerEngine: sendMessage enqueued', { triggerId, target });
|
|
2488
|
+
outcome = { status: 'ok' };
|
|
2486
2489
|
}
|
|
2487
2490
|
catch (err) {
|
|
2491
|
+
outcome = { status: 'failed', detail: err instanceof Error ? err.message : String(err) };
|
|
2488
2492
|
logger.warn('TriggerEngine: sendMessage failed', {
|
|
2489
2493
|
triggerId,
|
|
2490
2494
|
error: err instanceof Error ? err.message : String(err),
|
|
@@ -2530,6 +2534,7 @@ export class CrewlyServer {
|
|
|
2530
2534
|
const duplicate = findOpenDuplicateWorkItem(poolItems, draft)
|
|
2531
2535
|
?? findCoveringVerifyItem(poolItems, trigger, draft);
|
|
2532
2536
|
if (duplicate) {
|
|
2537
|
+
outcome = { status: 'skipped', detail: 'same work still open', workItemId: duplicate.id };
|
|
2533
2538
|
logger.debug('TriggerEngine: WorkItem skipped — same work already open', {
|
|
2534
2539
|
triggerId,
|
|
2535
2540
|
target: workItem.target,
|
|
@@ -2548,9 +2553,11 @@ export class CrewlyServer {
|
|
|
2548
2553
|
workItemId: workItem.id,
|
|
2549
2554
|
});
|
|
2550
2555
|
logger.info('TriggerEngine: WorkItem enqueued', { triggerId, workItemId: workItem.id });
|
|
2556
|
+
outcome = { status: 'ok', workItemId: workItem.id };
|
|
2551
2557
|
}
|
|
2552
2558
|
}
|
|
2553
2559
|
catch (err) {
|
|
2560
|
+
outcome = { status: 'failed', detail: err instanceof Error ? err.message : String(err) };
|
|
2554
2561
|
logger.warn('TriggerEngine: createWorkItem failed', {
|
|
2555
2562
|
triggerId,
|
|
2556
2563
|
error: err instanceof Error ? err.message : String(err),
|
|
@@ -2606,6 +2613,28 @@ export class CrewlyServer {
|
|
|
2606
2613
|
});
|
|
2607
2614
|
}
|
|
2608
2615
|
}
|
|
2616
|
+
return outcome;
|
|
2617
|
+
});
|
|
2618
|
+
// Expiry heads-up: a capped recurring trigger close to its last
|
|
2619
|
+
// fire gets one work item to its team lead (renew or ask the
|
|
2620
|
+
// owner). Never renews anything itself.
|
|
2621
|
+
triggerEngine.setExpiryNotifier(async (trigger, _remaining, lastFireAt) => {
|
|
2622
|
+
const { TaskPoolService } = await import('./services/task-pool/task-pool.service.js');
|
|
2623
|
+
const { createWorkItem } = await import('./types/v2/work-item.types.js');
|
|
2624
|
+
const { buildExpiryNotice, resolveExpiryNoticeTarget } = await import('./services/v3/trigger-expiry.js');
|
|
2625
|
+
const teams = await this.storageService.getTeams().catch(() => []);
|
|
2626
|
+
const target = resolveExpiryNoticeTarget(trigger, teams);
|
|
2627
|
+
const notice = buildExpiryNotice(trigger, lastFireAt);
|
|
2628
|
+
await TaskPoolService.getInstance().addToPool(createWorkItem({
|
|
2629
|
+
title: notice.title,
|
|
2630
|
+
description: notice.description,
|
|
2631
|
+
type: 'delegate',
|
|
2632
|
+
owner: 'team_lead',
|
|
2633
|
+
target,
|
|
2634
|
+
triggerId: trigger.id,
|
|
2635
|
+
}));
|
|
2636
|
+
this.logger.info('TriggerEngine: expiry heads-up queued', { triggerId: trigger.id, target });
|
|
2637
|
+
return true;
|
|
2609
2638
|
});
|
|
2610
2639
|
await triggerEngine.start();
|
|
2611
2640
|
this.logger.info('TriggerEngine started with action handler wired');
|