crewly 1.20.143 → 1.20.144
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/constants.ts +59 -0
- package/config/index.ts +2 -0
- package/config/skills/orchestrator/delegate-task/execute.sh +11 -0
- package/config/skills/orchestrator/delegate-task/execute.test.sh +38 -0
- package/config/skills/orchestrator/reply-chat/SKILL.md +11 -1
- package/config/skills/orchestrator/reply-chat/execute.sh +13 -1
- package/config/skills/orchestrator/reply-slack/SKILL.md +1 -0
- package/config/skills/orchestrator/reply-slack/execute.sh +11 -2
- package/dist/backend/backend/src/constants.d.ts +43 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +24 -1
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +36 -1
- package/dist/backend/backend/src/controllers/chat/chat.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 +69 -7
- 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 +4 -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 +9 -2
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +8 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +71 -2
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +5 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +15 -0
- 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 +20 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/orc-reply-route.service.d.ts +217 -0
- package/dist/backend/backend/src/services/orc/orc-reply-route.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-reply-route.service.js +300 -0
- package/dist/backend/backend/src/services/orc/orc-reply-route.service.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +32 -2
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +59 -5
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +4 -2
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +6 -3
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/system/auto-update.service.d.ts +292 -0
- package/dist/backend/backend/src/services/system/auto-update.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/system/auto-update.service.js +590 -0
- package/dist/backend/backend/src/services/system/auto-update.service.js.map +1 -0
- package/dist/backend/backend/src/services/system/auto-update.utils.d.ts +265 -0
- package/dist/backend/backend/src/services/system/auto-update.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/services/system/auto-update.utils.js +397 -0
- package/dist/backend/backend/src/services/system/auto-update.utils.js.map +1 -0
- package/dist/backend/backend/src/services/system/version-check.service.d.ts +15 -1
- package/dist/backend/backend/src/services/system/version-check.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/system/version-check.service.js +21 -2
- package/dist/backend/backend/src/services/system/version-check.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +7 -1
- 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 +14 -2
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/cascade-request-status.js +16 -1
- package/dist/backend/backend/src/services/v3/cascade-request-status.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-completion.d.ts +128 -0
- package/dist/backend/backend/src/services/v3/request-completion.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-completion.js +311 -0
- package/dist/backend/backend/src/services/v3/request-completion.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js +3 -0
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js +17 -3
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +8 -0
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.js +11 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts +8 -0
- package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/settings.types.js +4 -0
- package/dist/backend/backend/src/types/settings.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/backend/config/constants.d.ts +56 -0
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +57 -0
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/backend/config/index.d.ts +2 -2
- package/dist/backend/config/index.d.ts.map +1 -1
- package/dist/backend/config/index.js +2 -2
- package/dist/backend/config/index.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +43 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +24 -1
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +5 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +15 -0
- 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 +20 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/cli/backend/src/services/orc/orc-reply-route.service.d.ts +217 -0
- package/dist/cli/backend/src/services/orc/orc-reply-route.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-reply-route.service.js +300 -0
- package/dist/cli/backend/src/services/orc/orc-reply-route.service.js.map +1 -0
- package/dist/cli/backend/src/services/system/auto-update.utils.d.ts +265 -0
- package/dist/cli/backend/src/services/system/auto-update.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/services/system/auto-update.utils.js +397 -0
- package/dist/cli/backend/src/services/system/auto-update.utils.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +7 -1
- 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 +14 -2
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/request-completion.d.ts +128 -0
- package/dist/cli/backend/src/services/v3/request-completion.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/request-completion.js +311 -0
- package/dist/cli/backend/src/services/v3/request-completion.js.map +1 -0
- package/dist/cli/backend/src/services/v3/v3-data.service.d.ts +8 -0
- package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/v3-data.service.js +11 -1
- package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -1
- package/dist/cli/backend/src/types/settings.types.d.ts +8 -0
- package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.js +4 -0
- package/dist/cli/backend/src/types/settings.types.js.map +1 -1
- package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/start.js +14 -3
- package/dist/cli/cli/src/commands/start.js.map +1 -1
- package/dist/cli/cli/src/commands/update-status.d.ts +85 -0
- package/dist/cli/cli/src/commands/update-status.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/update-status.js +162 -0
- package/dist/cli/cli/src/commands/update-status.js.map +1 -0
- package/dist/cli/cli/src/constants.d.ts +1 -1
- package/dist/cli/cli/src/constants.d.ts.map +1 -1
- package/dist/cli/cli/src/constants.js +1 -1
- package/dist/cli/cli/src/constants.js.map +1 -1
- package/dist/cli/cli/src/index.js +7 -0
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/cli/src/utils/backend-respawn.d.ts +50 -0
- package/dist/cli/cli/src/utils/backend-respawn.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/backend-respawn.js +59 -0
- package/dist/cli/cli/src/utils/backend-respawn.js.map +1 -0
- package/dist/cli/config/constants.d.ts +56 -0
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +57 -0
- package/dist/cli/config/constants.js.map +1 -1
- package/dist/cli/config/index.d.ts +2 -2
- package/dist/cli/config/index.d.ts.map +1 -1
- package/dist/cli/config/index.js +2 -2
- package/dist/cli/config/index.js.map +1 -1
- package/frontend/dist/assets/{index-e05af897.js → index-71670b91.js} +22 -22
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator reply routing — "answer where you were asked".
|
|
3
|
+
*
|
|
4
|
+
* Tracks, per agent session, the conversation its latest user-originated
|
|
5
|
+
* message came from (the *turn origin*), and decides where a reply the
|
|
6
|
+
* orchestrator posts during or right after that turn should land.
|
|
7
|
+
*
|
|
8
|
+
* Incident 2026-09-26 03:23–03:34 UTC: the owner was talking to the orc in a
|
|
9
|
+
* Slack DM (D0C381XPD3L → chat-v2 channel a721f48d). A reconciler WorkItem
|
|
10
|
+
* redispatch then started a system turn with no `[CHAT:…]` prefix. In it the
|
|
11
|
+
* orc:
|
|
12
|
+
* - filed `report-status [BLOCKED]` and `reply-chat` without a
|
|
13
|
+
* conversationId; `/api/chat/agent-response` fell back to
|
|
14
|
+
* `ChatService.getCurrentConversation()`, which only sees system-owned
|
|
15
|
+
* channels — never the owner's orchestrator DM — and returned #think-tank
|
|
16
|
+
* (b79a6e4d), so the summary was mirrored into Slack #pro-think-tank;
|
|
17
|
+
* - called `reply-slack` on D0AC7NF5N7L, the owner's DM with the *master*
|
|
18
|
+
* Crewly bot, not the orc-bot DM the conversation was in.
|
|
19
|
+
* The question in that summary ("reply start Ella") never reached the owner.
|
|
20
|
+
*
|
|
21
|
+
* What counts as "the reply": anything the orchestrator posts to a
|
|
22
|
+
* user-facing conversation through `/api/chat/agent-response` (reply-chat,
|
|
23
|
+
* report-status) or to a Slack DM through `/api/slack/send` (reply-slack).
|
|
24
|
+
* It is re-routed to the turn origin when it targets a conversation the orc
|
|
25
|
+
* has not received a user message from recently, unless the caller marked it
|
|
26
|
+
* as a deliberate cross-post. Posts to Slack channels (team notifications,
|
|
27
|
+
* delegation) and `reply-channel` writes are not replies and are untouched.
|
|
28
|
+
*
|
|
29
|
+
* @module services/orc/orc-reply-route.service
|
|
30
|
+
*/
|
|
31
|
+
import { ORC_REPLY_ROUTE_CONSTANTS } from '../../constants.js';
|
|
32
|
+
/**
|
|
33
|
+
* `[CHAT:<id>…]` / `[GCHAT:<id>…]` at the start of a delivered message. Both
|
|
34
|
+
* delivery paths put it first: the chat-v2 dispatcher (`[CHAT:<channel>]
|
|
35
|
+
* <sender@name>`) and the message queue (`[CHAT:<conversation>:<fp>] …`).
|
|
36
|
+
* System deliveries (`[SYSTEM]`, `[CREWLY-DISPATCH]`, reminders) never do.
|
|
37
|
+
*/
|
|
38
|
+
const CHAT_PREFIX = /^\s*\[G?CHAT:([^\]\s]+)[^\]]*\]/;
|
|
39
|
+
/**
|
|
40
|
+
* The message queue appends `:<last 8 chars of the message id>` to the
|
|
41
|
+
* conversation id as a delivery fingerprint.
|
|
42
|
+
*/
|
|
43
|
+
const QUEUE_FINGERPRINT_SUFFIX = /^(.+):[A-Za-z0-9-]{8}$/;
|
|
44
|
+
/** `[SLACK:<channel>]` or `[SLACK:<channel>:<threadTs>]`, anywhere. */
|
|
45
|
+
const SLACK_MARKER = /\[SLACK:([^:\]\s]+)(?::([^\]\s]+))?\]/;
|
|
46
|
+
/**
|
|
47
|
+
* Parses the routing header of a message delivered to an agent.
|
|
48
|
+
*
|
|
49
|
+
* @param message - The exact text delivered to the agent
|
|
50
|
+
* @returns The origin, or null for system-originated deliveries
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* parseInboundOrigin('[CHAT:a721f48d] <owner@Orchestrator>\n\nhi');
|
|
55
|
+
* // → { conversationId: 'a721f48d' }
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export function parseInboundOrigin(message) {
|
|
59
|
+
const chat = CHAT_PREFIX.exec(message);
|
|
60
|
+
if (!chat)
|
|
61
|
+
return null;
|
|
62
|
+
const raw = chat[1];
|
|
63
|
+
const fp = QUEUE_FINGERPRINT_SUFFIX.exec(raw);
|
|
64
|
+
const origin = { conversationId: fp ? fp[1] : raw };
|
|
65
|
+
const slack = SLACK_MARKER.exec(message);
|
|
66
|
+
if (slack) {
|
|
67
|
+
origin.slackChannelId = slack[1];
|
|
68
|
+
if (slack[2])
|
|
69
|
+
origin.slackThreadTs = slack[2];
|
|
70
|
+
}
|
|
71
|
+
return origin;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Whether a Slack channel id is a direct-message conversation.
|
|
75
|
+
*
|
|
76
|
+
* @param slackChannelId - Slack channel id
|
|
77
|
+
* @returns True for `D…` ids
|
|
78
|
+
*/
|
|
79
|
+
export function isSlackDm(slackChannelId) {
|
|
80
|
+
return slackChannelId.startsWith(ORC_REPLY_ROUTE_CONSTANTS.SLACK_DM_PREFIX);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Tracks turn origins and decides reply targets. Process-wide singleton; all
|
|
84
|
+
* state is in memory (a restart starts every agent on a fresh turn anyway).
|
|
85
|
+
*/
|
|
86
|
+
export class OrcReplyRouteService {
|
|
87
|
+
static instance = null;
|
|
88
|
+
sessions = new Map();
|
|
89
|
+
/**
|
|
90
|
+
* @returns The shared instance
|
|
91
|
+
*/
|
|
92
|
+
static getInstance() {
|
|
93
|
+
if (!OrcReplyRouteService.instance)
|
|
94
|
+
OrcReplyRouteService.instance = new OrcReplyRouteService();
|
|
95
|
+
return OrcReplyRouteService.instance;
|
|
96
|
+
}
|
|
97
|
+
/** Drops the shared instance (tests). */
|
|
98
|
+
static resetInstance() {
|
|
99
|
+
OrcReplyRouteService.instance = null;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Records a message delivered to an agent. User-originated messages (those
|
|
103
|
+
* with a `[CHAT:…]` header) become the session's turn origin; system
|
|
104
|
+
* deliveries leave the origin alone, so a system turn that follows a user
|
|
105
|
+
* turn still answers the user where they asked.
|
|
106
|
+
*
|
|
107
|
+
* @param sessionName - Receiving agent session
|
|
108
|
+
* @param message - Exact delivered text
|
|
109
|
+
* @param now - Clock override for tests
|
|
110
|
+
* @returns The new origin, or null when the message was system-originated
|
|
111
|
+
*/
|
|
112
|
+
noteDelivery(sessionName, message, now = Date.now()) {
|
|
113
|
+
const parsed = parseInboundOrigin(message);
|
|
114
|
+
if (!parsed)
|
|
115
|
+
return null;
|
|
116
|
+
const state = this.stateFor(sessionName);
|
|
117
|
+
const origin = { ...parsed, receivedAt: now };
|
|
118
|
+
state.origin = origin;
|
|
119
|
+
remember(state.conversations, origin.conversationId, now);
|
|
120
|
+
if (origin.slackChannelId)
|
|
121
|
+
remember(state.slackChannels, origin.slackChannelId, now);
|
|
122
|
+
return origin;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* The session's turn origin, however old.
|
|
126
|
+
*
|
|
127
|
+
* @param sessionName - Agent session
|
|
128
|
+
* @returns The last user-originated origin, or undefined
|
|
129
|
+
*/
|
|
130
|
+
getLastOrigin(sessionName) {
|
|
131
|
+
return this.sessions.get(sessionName)?.origin;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* The session's turn origin if it is still fresh.
|
|
135
|
+
*
|
|
136
|
+
* @param sessionName - Agent session
|
|
137
|
+
* @param now - Clock override for tests
|
|
138
|
+
* @returns The origin within {@link ORC_REPLY_ROUTE_CONSTANTS.ORIGIN_TTL_MS}
|
|
139
|
+
*/
|
|
140
|
+
getFreshOrigin(sessionName, now = Date.now()) {
|
|
141
|
+
const origin = this.getLastOrigin(sessionName);
|
|
142
|
+
if (!origin)
|
|
143
|
+
return undefined;
|
|
144
|
+
return now - origin.receivedAt <= ORC_REPLY_ROUTE_CONSTANTS.ORIGIN_TTL_MS ? origin : undefined;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Decides which conversation a chat reply (reply-chat, report-status)
|
|
148
|
+
* belongs in.
|
|
149
|
+
*
|
|
150
|
+
* - No conversation named → the turn origin (any age: it is still a better
|
|
151
|
+
* guess than "the newest channel in the system"); none known → caller's
|
|
152
|
+
* own fallback.
|
|
153
|
+
* - A conversation named → kept when it is the origin, when the session
|
|
154
|
+
* received a user message there recently, when the caller marked a
|
|
155
|
+
* cross-post, or when there is no fresh origin to prefer. Otherwise the
|
|
156
|
+
* reply goes to the origin.
|
|
157
|
+
*
|
|
158
|
+
* @param sessionName - Replying agent session
|
|
159
|
+
* @param requested - Conversation the caller named, if any
|
|
160
|
+
* @param options - Cross-post flag and clock
|
|
161
|
+
* @returns The decision
|
|
162
|
+
*/
|
|
163
|
+
resolveConversationReply(sessionName, requested, options = {}) {
|
|
164
|
+
const now = options.now ?? Date.now();
|
|
165
|
+
if (!requested) {
|
|
166
|
+
const last = this.getLastOrigin(sessionName);
|
|
167
|
+
return last
|
|
168
|
+
? { action: 'defaulted-to-origin', conversationId: last.conversationId, origin: last, reason: 'no conversation named — using the conversation the turn came from' }
|
|
169
|
+
: { action: 'no-origin', reason: 'no conversation named and no turn origin known' };
|
|
170
|
+
}
|
|
171
|
+
const origin = this.getFreshOrigin(sessionName, now);
|
|
172
|
+
if (!origin)
|
|
173
|
+
return { action: 'as-requested', conversationId: requested, reason: 'no fresh turn origin' };
|
|
174
|
+
if (requested === origin.conversationId) {
|
|
175
|
+
return { action: 'as-requested', conversationId: requested, origin, reason: 'is the turn origin' };
|
|
176
|
+
}
|
|
177
|
+
if (options.crossPost) {
|
|
178
|
+
return { action: 'as-requested', conversationId: requested, origin, reason: 'explicit cross-post' };
|
|
179
|
+
}
|
|
180
|
+
if (this.receivedRecently(this.sessions.get(sessionName)?.conversations, requested, now)) {
|
|
181
|
+
return { action: 'as-requested', conversationId: requested, origin, reason: 'received a user message there recently' };
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
action: 'rerouted-to-origin',
|
|
185
|
+
conversationId: origin.conversationId,
|
|
186
|
+
origin,
|
|
187
|
+
reason: 'named a conversation the turn did not come from and no user wrote in recently',
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Decides whether a Slack post is a misdirected reply. Only DMs are
|
|
192
|
+
* candidates — posting in a channel is how the orchestrator notifies teams
|
|
193
|
+
* and delegates, so channel posts are always sent as asked.
|
|
194
|
+
*
|
|
195
|
+
* @param sessionName - Posting agent session
|
|
196
|
+
* @param slackChannelId - Slack channel the caller named
|
|
197
|
+
* @param options - Cross-post flag, clock, and the Slack DM the origin
|
|
198
|
+
* conversation is bridged to (when the delivered message had no marker)
|
|
199
|
+
* @returns The decision
|
|
200
|
+
*/
|
|
201
|
+
resolveSlackReply(sessionName, slackChannelId, options = {}) {
|
|
202
|
+
const now = options.now ?? Date.now();
|
|
203
|
+
if (!isSlackDm(slackChannelId)) {
|
|
204
|
+
return { action: 'as-requested', reason: 'channel post — cross-posting allowed' };
|
|
205
|
+
}
|
|
206
|
+
const origin = this.getFreshOrigin(sessionName, now);
|
|
207
|
+
if (!origin)
|
|
208
|
+
return { action: 'as-requested', reason: 'no fresh turn origin' };
|
|
209
|
+
const originSlack = origin.slackChannelId ?? options.originSlackChannelId;
|
|
210
|
+
if (originSlack === slackChannelId) {
|
|
211
|
+
return { action: 'as-requested', origin, reason: 'is the turn origin' };
|
|
212
|
+
}
|
|
213
|
+
if (options.crossPost)
|
|
214
|
+
return { action: 'as-requested', origin, reason: 'explicit cross-post' };
|
|
215
|
+
if (this.receivedRecently(this.sessions.get(sessionName)?.slackChannels, slackChannelId, now)) {
|
|
216
|
+
return { action: 'as-requested', origin, reason: 'received a user message there recently' };
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
action: 'rerouted-to-origin',
|
|
220
|
+
origin,
|
|
221
|
+
reason: 'posted to a Slack DM the turn did not come from and no user wrote in recently',
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Plans where a Slack post by `sessionName` should go.
|
|
226
|
+
*
|
|
227
|
+
* When {@link resolveSlackReply} re-routes, the destination is the origin's
|
|
228
|
+
* own Slack conversation if the delivered message carried a `[SLACK:…]`
|
|
229
|
+
* marker (the master-bot bridge), else the origin chat-v2 conversation —
|
|
230
|
+
* which the Slack DM bridge mirrors into the agent-bot DM the owner wrote
|
|
231
|
+
* in, under the right bot.
|
|
232
|
+
*
|
|
233
|
+
* @param sessionName - Posting agent session
|
|
234
|
+
* @param target - Slack channel/thread the caller named, and its cross-post flag
|
|
235
|
+
* @param findDmSlackChannel - Maps a chat-v2 conversation to the Slack DM it
|
|
236
|
+
* is bridged to, when it is
|
|
237
|
+
* @param now - Clock override for tests
|
|
238
|
+
* @returns The plan and the decision behind it
|
|
239
|
+
*/
|
|
240
|
+
planSlackReply(sessionName, target, findDmSlackChannel, now = Date.now()) {
|
|
241
|
+
const fresh = this.getFreshOrigin(sessionName, now);
|
|
242
|
+
const originSlackChannelId = fresh && !fresh.slackChannelId ? findDmSlackChannel(fresh.conversationId) : undefined;
|
|
243
|
+
const decision = this.resolveSlackReply(sessionName, target.channelId, {
|
|
244
|
+
crossPost: target.crossPost,
|
|
245
|
+
originSlackChannelId,
|
|
246
|
+
now,
|
|
247
|
+
});
|
|
248
|
+
if (decision.action !== 'rerouted-to-origin' || !decision.origin) {
|
|
249
|
+
return { plan: { kind: 'slack', channelId: target.channelId, threadTs: target.threadTs }, decision };
|
|
250
|
+
}
|
|
251
|
+
const origin = decision.origin;
|
|
252
|
+
const plan = origin.slackChannelId
|
|
253
|
+
? { kind: 'slack', channelId: origin.slackChannelId, threadTs: origin.slackThreadTs }
|
|
254
|
+
: { kind: 'conversation', conversationId: origin.conversationId };
|
|
255
|
+
return { plan, decision };
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Whether an inbound map saw `key` within the recent-inbound window.
|
|
259
|
+
*
|
|
260
|
+
* @param seen - Inbound map
|
|
261
|
+
* @param key - Conversation or Slack channel id
|
|
262
|
+
* @param now - Epoch ms
|
|
263
|
+
* @returns True when recent
|
|
264
|
+
*/
|
|
265
|
+
receivedRecently(seen, key, now) {
|
|
266
|
+
const at = seen?.get(key);
|
|
267
|
+
return at !== undefined && now - at <= ORC_REPLY_ROUTE_CONSTANTS.RECENT_INBOUND_MS;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* @param sessionName - Agent session
|
|
271
|
+
* @returns Its state, created on first use
|
|
272
|
+
*/
|
|
273
|
+
stateFor(sessionName) {
|
|
274
|
+
let state = this.sessions.get(sessionName);
|
|
275
|
+
if (!state) {
|
|
276
|
+
state = { conversations: new Map(), slackChannels: new Map() };
|
|
277
|
+
this.sessions.set(sessionName, state);
|
|
278
|
+
}
|
|
279
|
+
return state;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Records `key` as seen at `at`, keeping the map bounded (oldest first out;
|
|
284
|
+
* Map preserves insertion order, and re-inserting moves a key to the end).
|
|
285
|
+
*
|
|
286
|
+
* @param map - Inbound map
|
|
287
|
+
* @param key - Conversation or Slack channel id
|
|
288
|
+
* @param at - Epoch ms
|
|
289
|
+
*/
|
|
290
|
+
function remember(map, key, at) {
|
|
291
|
+
map.delete(key);
|
|
292
|
+
map.set(key, at);
|
|
293
|
+
while (map.size > ORC_REPLY_ROUTE_CONSTANTS.MAX_TRACKED_CONVERSATIONS) {
|
|
294
|
+
const oldest = map.keys().next().value;
|
|
295
|
+
if (oldest === undefined)
|
|
296
|
+
break;
|
|
297
|
+
map.delete(oldest);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
//# sourceMappingURL=orc-reply-route.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orc-reply-route.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orc/orc-reply-route.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AA2D/D;;;;;GAKG;AACH,MAAM,WAAW,GAAG,iCAAiC,CAAC;AAEtD;;;GAGG;AACH,MAAM,wBAAwB,GAAG,wBAAwB,CAAC;AAE1D,uEAAuE;AACvE,MAAM,YAAY,GAAG,uCAAuC,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,EAAE,GAAG,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAkB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACnE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,cAAsB;IAC9C,OAAO,cAAc,CAAC,UAAU,CAAC,yBAAyB,CAAC,eAAe,CAAC,CAAC;AAC9E,CAAC;AAWD;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAAC,QAAQ,GAAgC,IAAI,CAAC;IAE3C,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEjE;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,oBAAoB,CAAC,QAAQ;YAAE,oBAAoB,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC/F,OAAO,oBAAoB,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,yCAAyC;IACzC,MAAM,CAAC,aAAa;QAClB,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvC,CAAC;IAED;;;;;;;;;;OAUG;IACH,YAAY,CAAC,WAAmB,EAAE,OAAe,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;QACzE,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,MAAM,GAAe,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QAC1D,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,cAAc;YAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACrF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,WAAmB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAChD,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,WAAmB,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,OAAO,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,yBAAyB,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACjG,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,wBAAwB,CACtB,WAAmB,EACnB,SAA6B,EAC7B,UAA0B,EAAE;QAE5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC7C,OAAO,IAAI;gBACT,CAAC,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,mEAAmE,EAAE;gBACnK,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,gDAAgD,EAAE,CAAC;QACxF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;QAC1G,IAAI,SAAS,KAAK,MAAM,CAAC,cAAc,EAAE,CAAC;YACxC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;QACrG,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;QACtG,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;YACzF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC;QACzH,CAAC;QACD,OAAO;YACL,MAAM,EAAE,oBAAoB;YAC5B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,MAAM;YACN,MAAM,EAAE,+EAA+E;SACxF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,iBAAiB,CACf,WAAmB,EACnB,cAAsB,EACtB,UAA8D,EAAE;QAEhE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC;QACpF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;QAC/E,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;QAC1E,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;YACnC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;QAC1E,CAAC;QACD,IAAI,OAAO,CAAC,SAAS;YAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;QAChG,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC;YAC9F,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC;QAC9F,CAAC;QACD,OAAO;YACL,MAAM,EAAE,oBAAoB;YAC5B,MAAM;YACN,MAAM,EAAE,+EAA+E;SACxF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CACZ,WAAmB,EACnB,MAAqE,EACrE,kBAAkE,EAClE,MAAc,IAAI,CAAC,GAAG,EAAE;QAExB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,oBAAoB,GACxB,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE;YACrE,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,oBAAoB;YACpB,GAAG;SACJ,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,oBAAoB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC;QACvG,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC/B,MAAM,IAAI,GAAmB,MAAM,CAAC,cAAc;YAChD,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE;YACrF,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;QACpE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED;;;;;;;OAOG;IACK,gBAAgB,CAAC,IAAqC,EAAE,GAAW,EAAE,GAAW;QACtF,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,EAAE,KAAK,SAAS,IAAI,GAAG,GAAG,EAAE,IAAI,yBAAyB,CAAC,iBAAiB,CAAC;IACrF,CAAC;IAED;;;OAGG;IACK,QAAQ,CAAC,WAAmB;QAClC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,aAAa,EAAE,IAAI,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;AAGH;;;;;;;GAOG;AACH,SAAS,QAAQ,CAAC,GAAwB,EAAE,GAAW,EAAE,EAAU;IACjE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACjB,OAAO,GAAG,CAAC,IAAI,GAAG,yBAAyB,CAAC,yBAAyB,EAAE,CAAC;QACtE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM;QAChC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;AACH,CAAC"}
|
|
@@ -76,8 +76,18 @@ export declare function detectExpiredClaims(claims: TaskClaim[], gracePeriodMs?:
|
|
|
76
76
|
* Recomputes the correct status for a Request based on its WorkItems' statuses.
|
|
77
77
|
* This is the core "truth recomputation" — events are hints, this is truth.
|
|
78
78
|
*
|
|
79
|
+
* "All terminal" is not "done". Completion is decided by
|
|
80
|
+
* {@link evaluateRequestCompletion}: cancelled items never count as delivered
|
|
81
|
+
* work, and a Request whose only finished items are Plan/Review bookkeeping
|
|
82
|
+
* is not done — it goes `blocked` so it surfaces instead of closing silently
|
|
83
|
+
* (2026-09-26, Request d86b5faf closed on `{verified:2, cancelled:2}` while
|
|
84
|
+
* the re-routed real work was still running). An all-cancelled Request is
|
|
85
|
+
* `cancelled`, not `done`.
|
|
86
|
+
*
|
|
79
87
|
* @param request - The Request to reconcile
|
|
80
|
-
* @param workItems -
|
|
88
|
+
* @param workItems - The Request's effective WorkItems — its own items plus
|
|
89
|
+
* any replacements of superseded cancellations (see
|
|
90
|
+
* `collectRequestWorkItems`)
|
|
81
91
|
* @returns Correction if status needs updating, null otherwise
|
|
82
92
|
*/
|
|
83
93
|
export declare function reconcileRequestStatus(request: Request, workItems: WorkItem[]): ReconcileCorrection | null;
|
|
@@ -294,11 +304,31 @@ export declare function detectUnverifiedWorkItems(workItems: WorkItem[], nowMs?:
|
|
|
294
304
|
items: WorkItem[];
|
|
295
305
|
unverifiedIds: string[];
|
|
296
306
|
};
|
|
307
|
+
/**
|
|
308
|
+
* Whether any of a WorkItem's `dependsOn` prerequisites is still unfinished.
|
|
309
|
+
*
|
|
310
|
+
* A dependency absent from `workItemMap` is treated as resolved, matching
|
|
311
|
+
* {@link detectDependencyResolvedWorkItems}: the reconciler's active set
|
|
312
|
+
* omits `done`/`cancelled` items, so "missing" means "already terminal".
|
|
313
|
+
*
|
|
314
|
+
* @param wi - WorkItem to check
|
|
315
|
+
* @param workItemMap - WorkItems by id (the reconciler's active set)
|
|
316
|
+
* @returns True when at least one dependency exists and is non-terminal
|
|
317
|
+
*/
|
|
318
|
+
export declare function hasUnresolvedDependencies(wi: WorkItem, workItemMap: ReadonlyMap<string, WorkItem>): boolean;
|
|
297
319
|
/**
|
|
298
320
|
* Detects blocked WorkItems whose assigned agent is now alive,
|
|
299
321
|
* suggesting they can be re-queued for retry.
|
|
300
322
|
*
|
|
301
|
-
*
|
|
323
|
+
* Only for items blocked by an agent outage. An item blocked on its
|
|
324
|
+
* `dependsOn` prerequisites waits for {@link detectDependencyResolvedWorkItems}
|
|
325
|
+
* — its target being online says nothing about whether the prerequisite is
|
|
326
|
+
* done. (2026-09-26, Request d86b5faf: Execute and Review were blocked on
|
|
327
|
+
* Plan, their target `crewly-orc` was active, so this rule re-queued both 19s
|
|
328
|
+
* after creation; the orc then ran Execute before Plan and it was verified.)
|
|
329
|
+
*
|
|
330
|
+
* @param workItems - Active WorkItems (the rule inspects the blocked ones and
|
|
331
|
+
* uses the rest to resolve dependencies)
|
|
302
332
|
* @param agentHealthMap - Map of agent session → health info
|
|
303
333
|
* @returns Corrections to re-queue recoverable WorkItems
|
|
304
334
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-rules.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/reconciler/reconcile-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,OAAO,EAEP,SAAS,EACT,mBAAmB,EACnB,UAAU,EAEV,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"reconcile-rules.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/reconciler/reconcile-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { isValidRequestTransition, isLeaseExpired, isGracePeriodExceeded, TERMINAL_WORK_ITEM_STATUSES, TERMINAL_REQUEST_STATUSES, WORK_ITEM_TRANSITIONS, createCorrection, DEFAULT_GRACE_PERIOD_MS, getTtlAnchorAt, } from '../../types/v2/index.js';
|
|
11
11
|
import { DISPOSITION_REQUIRED_STATUSES, isWorkItemDisposed, isExplicitlyBlocked, } from '../../types/v2/work-item.types.js';
|
|
12
|
+
import { evaluateRequestCompletion } from '../v3/request-completion.js';
|
|
12
13
|
// ---------------------------------------------------------------------------
|
|
13
14
|
// Rule: Detect Stuck WorkItems
|
|
14
15
|
// ---------------------------------------------------------------------------
|
|
@@ -156,8 +157,18 @@ export function detectExpiredClaims(claims, gracePeriodMs = DEFAULT_GRACE_PERIOD
|
|
|
156
157
|
* Recomputes the correct status for a Request based on its WorkItems' statuses.
|
|
157
158
|
* This is the core "truth recomputation" — events are hints, this is truth.
|
|
158
159
|
*
|
|
160
|
+
* "All terminal" is not "done". Completion is decided by
|
|
161
|
+
* {@link evaluateRequestCompletion}: cancelled items never count as delivered
|
|
162
|
+
* work, and a Request whose only finished items are Plan/Review bookkeeping
|
|
163
|
+
* is not done — it goes `blocked` so it surfaces instead of closing silently
|
|
164
|
+
* (2026-09-26, Request d86b5faf closed on `{verified:2, cancelled:2}` while
|
|
165
|
+
* the re-routed real work was still running). An all-cancelled Request is
|
|
166
|
+
* `cancelled`, not `done`.
|
|
167
|
+
*
|
|
159
168
|
* @param request - The Request to reconcile
|
|
160
|
-
* @param workItems -
|
|
169
|
+
* @param workItems - The Request's effective WorkItems — its own items plus
|
|
170
|
+
* any replacements of superseded cancellations (see
|
|
171
|
+
* `collectRequestWorkItems`)
|
|
161
172
|
* @returns Correction if status needs updating, null otherwise
|
|
162
173
|
*/
|
|
163
174
|
export function reconcileRequestStatus(request, workItems) {
|
|
@@ -191,14 +202,25 @@ export function reconcileRequestStatus(request, workItems) {
|
|
|
191
202
|
});
|
|
192
203
|
}
|
|
193
204
|
const statuses = workItems.map(wi => wi.status);
|
|
194
|
-
const
|
|
205
|
+
const completion = evaluateRequestCompletion(workItems);
|
|
195
206
|
const anyRunning = statuses.some(s => s === 'running');
|
|
196
207
|
const allBlockedOrFailed = statuses.length > 0 && statuses.every(s => s === 'blocked' || s === 'failed' || s === 'cancelled');
|
|
197
208
|
const hasQueued = statuses.some(s => s === 'queued' || s === 'scheduled');
|
|
198
209
|
let expectedStatus = request.status;
|
|
199
|
-
|
|
210
|
+
let completionNote = '';
|
|
211
|
+
if (completion.outcome === 'complete') {
|
|
200
212
|
expectedStatus = request.requiresConfirmation ? 'waiting_confirmation' : 'done';
|
|
201
213
|
}
|
|
214
|
+
else if (completion.outcome === 'nothing_live') {
|
|
215
|
+
expectedStatus = 'cancelled';
|
|
216
|
+
completionNote = ` — ${completion.reason}`;
|
|
217
|
+
}
|
|
218
|
+
else if (completion.outcome === 'bookkeeping_only') {
|
|
219
|
+
// Everything that is left is finished, yet nothing was delivered. Not
|
|
220
|
+
// done; park it where the orchestrator's blocked-request views see it.
|
|
221
|
+
expectedStatus = 'blocked';
|
|
222
|
+
completionNote = ` — ${completion.reason}`;
|
|
223
|
+
}
|
|
202
224
|
else if (anyRunning) {
|
|
203
225
|
expectedStatus = 'running'; // At least one task is actively running
|
|
204
226
|
}
|
|
@@ -217,7 +239,7 @@ export function reconcileRequestStatus(request, workItems) {
|
|
|
217
239
|
entityId: request.id,
|
|
218
240
|
previousState: request.status,
|
|
219
241
|
newState: expectedStatus,
|
|
220
|
-
reason: `Recomputed from WorkItem statuses: ${JSON.stringify(countByStatus(statuses))}`,
|
|
242
|
+
reason: `Recomputed from WorkItem statuses: ${JSON.stringify(countByStatus(statuses))}${completionNote}`,
|
|
221
243
|
evidence: `${workItems.length} WorkItems: ${statuses.join(', ')}`,
|
|
222
244
|
});
|
|
223
245
|
}
|
|
@@ -604,17 +626,46 @@ export function detectUnverifiedWorkItems(workItems, nowMs = Date.now(), escalat
|
|
|
604
626
|
// ---------------------------------------------------------------------------
|
|
605
627
|
// Rule: Recover Blocked WorkItems
|
|
606
628
|
// ---------------------------------------------------------------------------
|
|
629
|
+
/**
|
|
630
|
+
* Whether any of a WorkItem's `dependsOn` prerequisites is still unfinished.
|
|
631
|
+
*
|
|
632
|
+
* A dependency absent from `workItemMap` is treated as resolved, matching
|
|
633
|
+
* {@link detectDependencyResolvedWorkItems}: the reconciler's active set
|
|
634
|
+
* omits `done`/`cancelled` items, so "missing" means "already terminal".
|
|
635
|
+
*
|
|
636
|
+
* @param wi - WorkItem to check
|
|
637
|
+
* @param workItemMap - WorkItems by id (the reconciler's active set)
|
|
638
|
+
* @returns True when at least one dependency exists and is non-terminal
|
|
639
|
+
*/
|
|
640
|
+
export function hasUnresolvedDependencies(wi, workItemMap) {
|
|
641
|
+
const dependsOn = wi.dependsOn;
|
|
642
|
+
if (!dependsOn || dependsOn.length === 0)
|
|
643
|
+
return false;
|
|
644
|
+
return dependsOn.some((depId) => {
|
|
645
|
+
const dep = workItemMap.get(depId);
|
|
646
|
+
return dep !== undefined && !TERMINAL_WORK_ITEM_STATUSES.has(dep.status);
|
|
647
|
+
});
|
|
648
|
+
}
|
|
607
649
|
/**
|
|
608
650
|
* Detects blocked WorkItems whose assigned agent is now alive,
|
|
609
651
|
* suggesting they can be re-queued for retry.
|
|
610
652
|
*
|
|
611
|
-
*
|
|
653
|
+
* Only for items blocked by an agent outage. An item blocked on its
|
|
654
|
+
* `dependsOn` prerequisites waits for {@link detectDependencyResolvedWorkItems}
|
|
655
|
+
* — its target being online says nothing about whether the prerequisite is
|
|
656
|
+
* done. (2026-09-26, Request d86b5faf: Execute and Review were blocked on
|
|
657
|
+
* Plan, their target `crewly-orc` was active, so this rule re-queued both 19s
|
|
658
|
+
* after creation; the orc then ran Execute before Plan and it was verified.)
|
|
659
|
+
*
|
|
660
|
+
* @param workItems - Active WorkItems (the rule inspects the blocked ones and
|
|
661
|
+
* uses the rest to resolve dependencies)
|
|
612
662
|
* @param agentHealthMap - Map of agent session → health info
|
|
613
663
|
* @returns Corrections to re-queue recoverable WorkItems
|
|
614
664
|
*/
|
|
615
665
|
export function detectRecoverableWorkItems(workItems, agentHealthMap) {
|
|
616
666
|
const corrections = [];
|
|
617
667
|
const recoverableIds = [];
|
|
668
|
+
const workItemMap = new Map(workItems.map((w) => [w.id, w]));
|
|
618
669
|
for (const wi of workItems) {
|
|
619
670
|
if (wi.status !== 'blocked')
|
|
620
671
|
continue;
|
|
@@ -623,6 +674,9 @@ export function detectRecoverableWorkItems(workItems, agentHealthMap) {
|
|
|
623
674
|
// here re-dispatched the item every few minutes (2026-09-25, WI 92327d6d).
|
|
624
675
|
if (isExplicitlyBlocked(wi))
|
|
625
676
|
continue;
|
|
677
|
+
// A dependency block is not an outage either — see the JSDoc above.
|
|
678
|
+
if (hasUnresolvedDependencies(wi, workItemMap))
|
|
679
|
+
continue;
|
|
626
680
|
if (wi.retryCount >= wi.maxRetries)
|
|
627
681
|
continue;
|
|
628
682
|
// If the agent is back online, re-queue
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-rules.js","sourceRoot":"","sources":["../../../../../../backend/src/services/reconciler/reconcile-rules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reconcile-rules.js","sourceRoot":"","sources":["../../../../../../backend/src/services/reconciler/reconcile-rules.ts"],"names":[],"mappings":"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"}
|