crewly 1.20.364 → 1.20.366
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/roles/team-leader/prompt.md +2 -0
- package/config/skills/agent/core/attach-file/SKILL.md +7 -0
- package/config/skills/agent/core/attach-file/execute.sh +8 -3
- package/config/skills/agent/core/complete-task/SKILL.md +4 -2
- package/config/skills/agent/core/complete-task/execute.sh +9 -1
- package/config/skills/agent/core/complete-task/explicit-id.test.sh +13 -2
- package/config/skills/agent/core/create-task/SKILL.md +2 -0
- package/config/skills/agent/core/create-task/execute.sh +27 -1
- package/config/skills/agent/core/create-task/execute.test.sh +67 -0
- package/config/skills/agent/core/handoff-task/execute.sh +12 -5
- package/config/skills/agent/core/handoff-task/explicit-id.test.sh +70 -0
- package/config/skills/agent/core/reply/SKILL.md +10 -2
- package/config/skills/agent/core/reply-channel/SKILL.md +17 -0
- package/config/skills/agent/core/reply-channel/execute.sh +17 -2
- package/config/skills/agent/core/reply-channel/execute.test.sh +15 -2
- package/config/skills/agent/core/send-message/SKILL.md +14 -0
- package/config/skills/agent/core/slack-post/SKILL.md +3 -3
- package/config/skills/orchestrator/delegate-task/SKILL.md +1 -1
- package/config/skills/orchestrator/reply-slack/execute.sh +6 -2
- package/config/skills/orchestrator/send-pdf-to-slack/SKILL.md +2 -1
- package/config/skills/orchestrator/send-pdf-to-slack/execute.sh +10 -2
- package/config/skills/registry.json +6 -6
- package/config/skills/team-leader/delegate-task/SKILL.md +1 -1
- package/config/skills/team-leader/delegate-task/execute.sh +6 -0
- package/dist/backend/backend/src/constants.d.ts +26 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +26 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +7 -3
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/agent-reply.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/agent-reply.controller.js +2 -0
- package/dist/backend/backend/src/controllers/chat/agent-reply.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts +12 -0
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +56 -7
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts +9 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +159 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +89 -2
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +58 -4
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +36 -2
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +9 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +16 -10
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +19 -11
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/agent-message-envelope.d.ts +106 -0
- package/dist/backend/backend/src/services/messaging/agent-message-envelope.d.ts.map +1 -0
- package/dist/backend/backend/src/services/messaging/agent-message-envelope.js +124 -0
- package/dist/backend/backend/src/services/messaging/agent-message-envelope.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/owner-hook-message.d.ts +62 -13
- package/dist/backend/backend/src/services/messaging/owner-hook-message.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-hook-message.js +196 -22
- package/dist/backend/backend/src/services/messaging/owner-hook-message.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +15 -5
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js +22 -0
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/agent-mention-post-guard.d.ts +69 -0
- package/dist/backend/backend/src/services/orc/agent-mention-post-guard.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/agent-mention-post-guard.js +81 -0
- package/dist/backend/backend/src/services/orc/agent-mention-post-guard.js.map +1 -0
- package/dist/backend/backend/src/services/orc/message-route.d.ts +129 -0
- package/dist/backend/backend/src/services/orc/message-route.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/message-route.js +197 -0
- package/dist/backend/backend/src/services/orc/message-route.js.map +1 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts +34 -3
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.js +65 -8
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.text.d.ts +15 -2
- package/dist/backend/backend/src/services/orc/owner-completion-report.text.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.text.js +21 -6
- package/dist/backend/backend/src/services/orc/owner-completion-report.text.js.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.d.ts +16 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.js +19 -3
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/orc/reply-destination-resolver.d.ts +76 -4
- package/dist/backend/backend/src/services/orc/reply-destination-resolver.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/reply-destination-resolver.js +343 -45
- package/dist/backend/backend/src/services/orc/reply-destination-resolver.js.map +1 -1
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts +70 -8
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.js +256 -100
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/orc/triggered-by.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/triggered-by.js +9 -0
- package/dist/backend/backend/src/services/orc/triggered-by.js.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.d.ts +2 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.js +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.js.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts +16 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js +33 -4
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts +1 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/room-responder.d.ts +7 -3
- package/dist/backend/backend/src/services/slack/room-responder.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/room-responder.js +26 -20
- package/dist/backend/backend/src/services/slack/room-responder.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts +1 -1
- package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-agent-post.service.js +20 -13
- package/dist/backend/backend/src/services/slack/slack-agent-post.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +17 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +35 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts +20 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +58 -3
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +31 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +62 -5
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/trace/turn-trigger.d.ts +34 -1
- package/dist/backend/backend/src/services/trace/turn-trigger.d.ts.map +1 -1
- package/dist/backend/backend/src/services/trace/turn-trigger.js +76 -6
- package/dist/backend/backend/src/services/trace/turn-trigger.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +26 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +26 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +16 -10
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +19 -11
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/cli/backend/src/services/messaging/agent-message-envelope.d.ts +106 -0
- package/dist/cli/backend/src/services/messaging/agent-message-envelope.d.ts.map +1 -0
- package/dist/cli/backend/src/services/messaging/agent-message-envelope.js +124 -0
- package/dist/cli/backend/src/services/messaging/agent-message-envelope.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +15 -5
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js +22 -0
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
- package/dist/cli/backend/src/services/orc/message-route.d.ts +129 -0
- package/dist/cli/backend/src/services/orc/message-route.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/message-route.js +197 -0
- package/dist/cli/backend/src/services/orc/message-route.js.map +1 -0
- package/dist/cli/backend/src/services/orc/owner-completion-report.text.d.ts +15 -2
- package/dist/cli/backend/src/services/orc/owner-completion-report.text.d.ts.map +1 -1
- package/dist/cli/backend/src/services/orc/owner-completion-report.text.js +21 -6
- package/dist/cli/backend/src/services/orc/owner-completion-report.text.js.map +1 -1
- package/dist/cli/backend/src/services/orc/work-item-destination.d.ts +2 -1
- package/dist/cli/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
- package/dist/cli/backend/src/services/orc/work-item-destination.js +1 -1
- package/dist/cli/backend/src/services/orc/work-item-destination.js.map +1 -1
- package/dist/cli/backend/src/services/slack/room-responder.d.ts +7 -3
- package/dist/cli/backend/src/services/slack/room-responder.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/room-responder.js +26 -20
- package/dist/cli/backend/src/services/slack/room-responder.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +17 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +35 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.d.ts +20 -1
- package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.js +58 -3
- package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +31 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +62 -5
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/trace/turn-trigger.d.ts +34 -1
- package/dist/cli/backend/src/services/trace/turn-trigger.d.ts.map +1 -1
- package/dist/cli/backend/src/services/trace/turn-trigger.js +76 -6
- package/dist/cli/backend/src/services/trace/turn-trigger.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,8 +15,9 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @module services/trace/turn-trigger
|
|
17
17
|
*/
|
|
18
|
+
import { type MessageRoute } from '../orc/message-route.js';
|
|
18
19
|
/** Fine-grained kinds of what started a turn. */
|
|
19
|
-
export declare const TURN_TRIGGER_KINDS: readonly ["owner_message", "agent_message", "dispatch", "redelivery", "follow_up", "owner_report_due", "follow_through", "stale_item", "decision", "restart", "scheduled", "app_change", "status", "system"];
|
|
20
|
+
export declare const TURN_TRIGGER_KINDS: readonly ["owner_message", "agent_message", "delegated_result", "dispatch", "redelivery", "follow_up", "owner_report_due", "follow_through", "stale_item", "decision", "restart", "scheduled", "app_change", "status", "system"];
|
|
20
21
|
/** What started a turn. */
|
|
21
22
|
export type TurnTriggerKind = (typeof TURN_TRIGGER_KINDS)[number];
|
|
22
23
|
/** A classified delivery. */
|
|
@@ -28,6 +29,16 @@ export interface ClassifiedTrigger {
|
|
|
28
29
|
ticket?: string;
|
|
29
30
|
/** Chat conversation of an owner message (`[CHAT:<id>]`) */
|
|
30
31
|
conversationId?: string;
|
|
32
|
+
/** Slack thread key of an owner message (`[SLACK-THREAD:<key>]`), when it names one */
|
|
33
|
+
thread?: string;
|
|
34
|
+
/**
|
|
35
|
+
* The destination the message carries (message-route.ts): the route token
|
|
36
|
+
* of an agent message or a delegated result. The answer to the whole
|
|
37
|
+
* chain goes there.
|
|
38
|
+
*/
|
|
39
|
+
route?: MessageRoute;
|
|
40
|
+
/** Sending agent named by the text itself (`[RESULT] From <session>`) */
|
|
41
|
+
textSender?: string;
|
|
31
42
|
}
|
|
32
43
|
/** The trigger of a session's current turn. */
|
|
33
44
|
export interface TurnTrigger extends ClassifiedTrigger {
|
|
@@ -69,6 +80,8 @@ export declare function classifyTurnTrigger(text: string): ClassifiedTrigger;
|
|
|
69
80
|
*/
|
|
70
81
|
export declare class TurnTriggerTracker {
|
|
71
82
|
private readonly current;
|
|
83
|
+
/** Per session: the latest trigger that names what the agent answers ({@link ROUTED_KINDS}) */
|
|
84
|
+
private readonly routed;
|
|
72
85
|
private readonly sends;
|
|
73
86
|
/** Per session: conversation id → when the owner last wrote to it there */
|
|
74
87
|
private readonly ownerAsks;
|
|
@@ -106,6 +119,26 @@ export declare class TurnTriggerTracker {
|
|
|
106
119
|
* @returns True within {@link TURN_TRIGGER_CONSTANTS.OWNER_ANSWER_WINDOW_MS}
|
|
107
120
|
*/
|
|
108
121
|
ownerAskedRecently(session: string, conversationId: string, now?: number): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Whether the owner wrote to `session` in `conversationId` within `windowMs`.
|
|
124
|
+
*
|
|
125
|
+
* @param session - Agent session
|
|
126
|
+
* @param conversationId - Conversation
|
|
127
|
+
* @param windowMs - How far back
|
|
128
|
+
* @param now - Clock (epoch ms)
|
|
129
|
+
* @returns True when the owner asked there within the window
|
|
130
|
+
*/
|
|
131
|
+
ownerAskedWithin(session: string, conversationId: string, windowMs: number, now?: number): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* The latest trigger of `session` that names what it is answering (an
|
|
134
|
+
* owner message, an agent message, a delegated result, a dispatch), while
|
|
135
|
+
* fresh. Reminders and notices delivered since do not replace it.
|
|
136
|
+
*
|
|
137
|
+
* @param session - Agent session
|
|
138
|
+
* @param now - Clock (epoch ms)
|
|
139
|
+
* @returns The trigger, or null
|
|
140
|
+
*/
|
|
141
|
+
routedTrigger(session: string, now?: number): TurnTrigger | null;
|
|
109
142
|
/**
|
|
110
143
|
* The trigger of `session`'s current turn, while fresh.
|
|
111
144
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-trigger.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/turn-trigger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"turn-trigger.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/turn-trigger.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,11 +17,14 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import { TURN_TRIGGER_CONSTANTS } from '../../constants.js';
|
|
19
19
|
import { parseInboundOrigin } from '../orc/orc-reply-route.service.js';
|
|
20
|
+
import { parseAgentMessageSender } from '../messaging/agent-message-envelope.js';
|
|
21
|
+
import { parseRouteToken } from '../orc/message-route.js';
|
|
20
22
|
const C = TURN_TRIGGER_CONSTANTS;
|
|
21
23
|
/** Fine-grained kinds of what started a turn. */
|
|
22
24
|
export const TURN_TRIGGER_KINDS = [
|
|
23
25
|
'owner_message',
|
|
24
26
|
'agent_message',
|
|
27
|
+
'delegated_result',
|
|
25
28
|
'dispatch',
|
|
26
29
|
'redelivery',
|
|
27
30
|
'follow_up',
|
|
@@ -57,18 +60,33 @@ export function classifyTurnTrigger(text) {
|
|
|
57
60
|
}
|
|
58
61
|
return { triggerKind: 'restart', ...workItemOf(t) };
|
|
59
62
|
}
|
|
63
|
+
// Another agent's message opens with its sender header (crewly#1375),
|
|
64
|
+
// and names the route it carries (message-routing audit 2026-10-18).
|
|
65
|
+
if (parseAgentMessageSender(t)) {
|
|
66
|
+
const route = parseRouteToken(firstLine(t));
|
|
67
|
+
return { triggerKind: 'agent_message', ...(route ? { route } : {}) };
|
|
68
|
+
}
|
|
69
|
+
// A delegate's result for work this agent handed out: it names the work
|
|
70
|
+
// item and the route the delegator was answering when it delegated.
|
|
71
|
+
const result = RESULT_RE.exec(t);
|
|
72
|
+
if (result) {
|
|
73
|
+
const route = parseRouteToken(firstLine(t));
|
|
74
|
+
const about = /about WorkItem ([A-Za-z0-9_-]{6,})/.exec(firstLine(t))?.[1];
|
|
75
|
+
return { triggerKind: 'delegated_result', textSender: result[1], ...(about ? { workItemId: about } : {}), ...(route ? { route } : {}) };
|
|
76
|
+
}
|
|
60
77
|
// An owner's chat message opens with its routing prefix; checked before
|
|
61
78
|
// the harness tags, which the owner's own text may quote.
|
|
62
79
|
const chat = parseInboundOrigin(t);
|
|
63
80
|
if (chat)
|
|
64
|
-
return { triggerKind: 'owner_message', conversationId: chat.conversationId };
|
|
81
|
+
return { triggerKind: 'owner_message', conversationId: chat.conversationId, ...(chat.slackThreadKey ? { thread: chat.slackThreadKey } : {}) };
|
|
65
82
|
if (/^\s*\[(?:OWNER MESSAGE\]|SLACK[A-Z_-]*[:\]]|REMOTE:)/.test(t))
|
|
66
83
|
return { triggerKind: 'owner_message' };
|
|
67
84
|
if (/\[TASK RE-DELIVERY\]|\[CREWLY-DISPATCH\] \d+ WorkItems? (?:is|are) still queued/.test(t))
|
|
68
85
|
return { triggerKind: 'redelivery', ...workItemOf(t) };
|
|
69
86
|
if (/\[TRIGGER WAKE\]|\[SCHEDULED\]|\[SCHEDULED CHECK-IN/.test(t))
|
|
70
87
|
return { triggerKind: 'scheduled', ...workItemOf(t) };
|
|
71
|
-
|
|
88
|
+
// A hand-off moves running work (and its origin) to this agent.
|
|
89
|
+
if (/\[CREWLY-DISPATCH\]|\[TASK ASSIGNMENT\]|^\s*\[TASK\]|^\s*\[TASK HANDOFF\]/.test(t))
|
|
72
90
|
return { triggerKind: 'dispatch', ...workItemOf(t) };
|
|
73
91
|
const followUp = /\[FOLLOW-UP\s+([A-Z][A-Z0-9]*-\d+)?/.exec(t);
|
|
74
92
|
if (followUp)
|
|
@@ -98,6 +116,19 @@ function workItemOf(text) {
|
|
|
98
116
|
const m = /WorkItem(?: ID)?:?\s+([A-Za-z0-9_-]{6,})/.exec(text);
|
|
99
117
|
return m ? { workItemId: m[1] } : {};
|
|
100
118
|
}
|
|
119
|
+
/** `[RESULT] From <session>` — a delegate's result relayed to its delegator. */
|
|
120
|
+
const RESULT_RE = /^\s*\[RESULT\] From ([a-z0-9][a-z0-9_-]*)/;
|
|
121
|
+
/** The first line of a text (where harness headers live). */
|
|
122
|
+
function firstLine(text) {
|
|
123
|
+
const nl = text.indexOf('\n');
|
|
124
|
+
return nl < 0 ? text : text.slice(0, nl);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Trigger kinds that name what the agent is answering. A reminder, a status
|
|
128
|
+
* digest or a system notice arriving later does not change what a bare
|
|
129
|
+
* reply answers (message-routing audit 2026-10-18).
|
|
130
|
+
*/
|
|
131
|
+
const ROUTED_KINDS = new Set(['owner_message', 'agent_message', 'delegated_result', 'dispatch', 'scheduled']);
|
|
101
132
|
/** Recognisable start of a text (whitespace collapsed). */
|
|
102
133
|
function fingerprint(text) {
|
|
103
134
|
return text.replace(/\s+/g, ' ').trim().slice(0, C.SENDER_MATCH_CHARS);
|
|
@@ -107,6 +138,8 @@ function fingerprint(text) {
|
|
|
107
138
|
*/
|
|
108
139
|
export class TurnTriggerTracker {
|
|
109
140
|
current = new Map();
|
|
141
|
+
/** Per session: the latest trigger that names what the agent answers ({@link ROUTED_KINDS}) */
|
|
142
|
+
routed = new Map();
|
|
110
143
|
sends = new Map();
|
|
111
144
|
/** Per session: conversation id → when the owner last wrote to it there */
|
|
112
145
|
ownerAsks = new Map();
|
|
@@ -142,12 +175,14 @@ export class TurnTriggerTracker {
|
|
|
142
175
|
*/
|
|
143
176
|
noteDelivery(session, text, opts = {}, now = Date.now()) {
|
|
144
177
|
const classified = classifyTurnTrigger(text);
|
|
145
|
-
const
|
|
146
|
-
|
|
178
|
+
const { textSender, ...rest } = classified;
|
|
179
|
+
// The sender header names it even when the send was not noted here (crewly#1375).
|
|
180
|
+
const sender = opts.sender || this.takeSender(session, text, now) || parseAgentMessageSender(text) || textSender;
|
|
181
|
+
const base = sender && (rest.triggerKind === 'system' || rest.triggerKind === 'status')
|
|
147
182
|
? { triggerKind: 'agent_message' }
|
|
148
|
-
:
|
|
183
|
+
: rest;
|
|
149
184
|
let trigger;
|
|
150
|
-
if (base.triggerKind === 'agent_message' && sender) {
|
|
185
|
+
if ((base.triggerKind === 'agent_message' || base.triggerKind === 'delegated_result') && sender) {
|
|
151
186
|
const up = this.trigger(sender, now);
|
|
152
187
|
const via = [...(up?.viaAgents ?? []), sender].filter((s, i, a) => a.indexOf(s) === i).slice(-C.MAX_VIA_AGENTS);
|
|
153
188
|
trigger = {
|
|
@@ -167,6 +202,8 @@ export class TurnTriggerTracker {
|
|
|
167
202
|
trigger.traceId = opts.traceId;
|
|
168
203
|
if (session)
|
|
169
204
|
this.current.set(session, trigger);
|
|
205
|
+
if (session && ROUTED_KINDS.has(trigger.triggerKind))
|
|
206
|
+
this.routed.set(session, trigger);
|
|
170
207
|
if (session && trigger.triggerKind === 'owner_message' && trigger.conversationId) {
|
|
171
208
|
const asks = this.ownerAsks.get(session) ?? new Map();
|
|
172
209
|
asks.set(trigger.conversationId, now);
|
|
@@ -188,6 +225,38 @@ export class TurnTriggerTracker {
|
|
|
188
225
|
const at = this.ownerAsks.get(session)?.get(conversationId);
|
|
189
226
|
return at !== undefined && now - at <= C.OWNER_ANSWER_WINDOW_MS;
|
|
190
227
|
}
|
|
228
|
+
/**
|
|
229
|
+
* Whether the owner wrote to `session` in `conversationId` within `windowMs`.
|
|
230
|
+
*
|
|
231
|
+
* @param session - Agent session
|
|
232
|
+
* @param conversationId - Conversation
|
|
233
|
+
* @param windowMs - How far back
|
|
234
|
+
* @param now - Clock (epoch ms)
|
|
235
|
+
* @returns True when the owner asked there within the window
|
|
236
|
+
*/
|
|
237
|
+
ownerAskedWithin(session, conversationId, windowMs, now = Date.now()) {
|
|
238
|
+
const at = this.ownerAsks.get(session)?.get(conversationId);
|
|
239
|
+
return at !== undefined && now - at <= windowMs;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* The latest trigger of `session` that names what it is answering (an
|
|
243
|
+
* owner message, an agent message, a delegated result, a dispatch), while
|
|
244
|
+
* fresh. Reminders and notices delivered since do not replace it.
|
|
245
|
+
*
|
|
246
|
+
* @param session - Agent session
|
|
247
|
+
* @param now - Clock (epoch ms)
|
|
248
|
+
* @returns The trigger, or null
|
|
249
|
+
*/
|
|
250
|
+
routedTrigger(session, now = Date.now()) {
|
|
251
|
+
const t = session ? this.routed.get(session) : undefined;
|
|
252
|
+
if (!t)
|
|
253
|
+
return null;
|
|
254
|
+
if (now - t.at > C.FRESH_MS) {
|
|
255
|
+
this.routed.delete(session);
|
|
256
|
+
return null;
|
|
257
|
+
}
|
|
258
|
+
return t;
|
|
259
|
+
}
|
|
191
260
|
/**
|
|
192
261
|
* The trigger of `session`'s current turn, while fresh.
|
|
193
262
|
*
|
|
@@ -208,6 +277,7 @@ export class TurnTriggerTracker {
|
|
|
208
277
|
/** Forget everything (tests). */
|
|
209
278
|
reset() {
|
|
210
279
|
this.current.clear();
|
|
280
|
+
this.routed.clear();
|
|
211
281
|
this.sends.clear();
|
|
212
282
|
this.ownerAsks.clear();
|
|
213
283
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-trigger.js","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/turn-trigger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"turn-trigger.js","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/turn-trigger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "crewly",
|
|
3
|
-
"version": "1.20.
|
|
3
|
+
"version": "1.20.366",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Multi-agent orchestration platform for AI coding teams — coordinates Claude Code, Gemini CLI, and Codex agents with a real-time web dashboard",
|
|
6
6
|
"workspaces": [
|