crewly 1.20.365 → 1.20.367
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/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 +3 -0
- package/config/skills/agent/core/reply-channel/SKILL.md +12 -5
- 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/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 +32 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +33 -1
- 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 +15 -0
- 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 +33 -3
- 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 +111 -11
- 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 +52 -4
- 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/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 +8 -0
- package/dist/backend/backend/src/services/messaging/agent-message-envelope.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/agent-message-envelope.js +10 -1
- package/dist/backend/backend/src/services/messaging/agent-message-envelope.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-hook-message.d.ts +62 -20
- 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 +178 -39
- package/dist/backend/backend/src/services/messaging/owner-hook-message.js.map +1 -1
- package/dist/backend/backend/src/services/orc/agent-mention-post-guard.d.ts +8 -5
- package/dist/backend/backend/src/services/orc/agent-mention-post-guard.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/agent-mention-post-guard.js +13 -10
- package/dist/backend/backend/src/services/orc/agent-mention-post-guard.js.map +1 -1
- 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/reply-destination-resolver.d.ts +49 -6
- 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 +284 -69
- 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 +64 -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 +215 -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 +10 -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 +25 -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/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.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 +74 -9
- 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 +32 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +33 -1
- 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 +8 -0
- package/dist/cli/backend/src/services/messaging/agent-message-envelope.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/agent-message-envelope.js +10 -1
- package/dist/cli/backend/src/services/messaging/agent-message-envelope.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/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/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 +74 -9
- package/dist/cli/backend/src/services/trace/turn-trigger.js.map +1 -1
- package/package.json +1 -1
|
@@ -19,9 +19,16 @@
|
|
|
19
19
|
* agent's message (crewly#1375) — never the owner's last thread;
|
|
20
20
|
* 6. the reference the harness last prompted the agent about, when newer
|
|
21
21
|
* than its last owner turn;
|
|
22
|
-
* 7. the
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
* 7. the route of the input the agent is answering (message-route.ts): the
|
|
23
|
+
* owner message it was given last (its turn origin), the route a
|
|
24
|
+
* delegated result carries back, or the work item a dispatch handed
|
|
25
|
+
* over; with no such input, the agent's one live work item.
|
|
26
|
+
*
|
|
27
|
+
* Nothing else. There is no guess (message-routing audit 2026-10-18, R2):
|
|
28
|
+
* not the newest owner turn when the input was something else, not the
|
|
29
|
+
* newest of several work items, not the owner DM, not a channel's top
|
|
30
|
+
* level. When nothing names the destination the reply is refused with the
|
|
31
|
+
* ids that would work.
|
|
25
32
|
*
|
|
26
33
|
* Pure decision logic; collaborators are injected
|
|
27
34
|
* (`reply-destination.wiring.ts` wires the real ones).
|
|
@@ -32,7 +39,8 @@ import { REPLY_ROUTING_CONSTANTS, SLACK_THREAD_KEY_CONSTANTS } from '../../const
|
|
|
32
39
|
import { parseTicketNumber } from '../../types/v2/ticket.types.js';
|
|
33
40
|
import { formatSlackThreadKey, parseSlackThreadKey } from '../slack/slack-thread-key.js';
|
|
34
41
|
import { hasReference } from './agent-prompt-reference.service.js';
|
|
35
|
-
import {
|
|
42
|
+
import { leadReportOf, originOfWorkItem, planWorkDestination } from './work-item-destination.js';
|
|
43
|
+
import { describeRoute, replyCommandFor } from './message-route.js';
|
|
36
44
|
/**
|
|
37
45
|
* What the resolver needs to know about an agent's latest input, from its
|
|
38
46
|
* turn trigger.
|
|
@@ -43,15 +51,18 @@ import { currentWorkItemOf, leadReportOf, originOfWorkItem, planWorkDestination
|
|
|
43
51
|
export function latestInputOf(trigger) {
|
|
44
52
|
if (!trigger)
|
|
45
53
|
return null;
|
|
54
|
+
const route = trigger.route ? { route: trigger.route } : {};
|
|
46
55
|
switch (trigger.triggerKind) {
|
|
47
56
|
case 'owner_message':
|
|
48
|
-
return { kind: 'owner', at: trigger.at };
|
|
57
|
+
return { kind: 'owner', at: trigger.at, ...(trigger.conversationId ? { conversationId: trigger.conversationId } : {}), ...(trigger.thread ? { thread: trigger.thread } : {}) };
|
|
49
58
|
case 'agent_message':
|
|
50
|
-
return trigger.sender ? { kind: 'agent', sender: trigger.sender, at: trigger.at } : { kind: 'other', at: trigger.at };
|
|
59
|
+
return trigger.sender ? { kind: 'agent', sender: trigger.sender, at: trigger.at, ...route } : { kind: 'other', at: trigger.at };
|
|
60
|
+
case 'delegated_result':
|
|
61
|
+
return { kind: 'result', at: trigger.at, ...(trigger.sender ? { sender: trigger.sender } : {}), ...(trigger.workItemId ? { workItemId: trigger.workItemId } : {}), ...route };
|
|
51
62
|
// New work the harness handed over; a reminder or a redelivery nag is not.
|
|
52
63
|
case 'dispatch':
|
|
53
64
|
case 'scheduled':
|
|
54
|
-
return { kind: 'dispatch', at: trigger.at };
|
|
65
|
+
return { kind: 'dispatch', at: trigger.at, ...(trigger.workItemId ? { workItemId: trigger.workItemId } : {}) };
|
|
55
66
|
default:
|
|
56
67
|
return { kind: 'other', at: trigger.at };
|
|
57
68
|
}
|
|
@@ -276,11 +287,18 @@ export async function validateHints(session, hints, origin, deps) {
|
|
|
276
287
|
ignored,
|
|
277
288
|
};
|
|
278
289
|
}
|
|
290
|
+
// Work delegated into this thread (the delegate is not in the room): the
|
|
291
|
+
// thread named by its chat id is the same Slack thread as its key (#1109).
|
|
292
|
+
if (msg && (!conv || msg.channelId === conv)) {
|
|
293
|
+
const delegated = await delegatedSlackThread(session, parseSlackThreadKey(threadOfMessage(msg, deps.slackChannelOfConversation(msg.channelId))), deps);
|
|
294
|
+
if (delegated)
|
|
295
|
+
return { destination: delegated, ignored };
|
|
296
|
+
}
|
|
279
297
|
ignored.push({ hint: `thread ${rawThread}`, why: !msg ? 'no such message' : msg.channelId !== conv && conv ? `that message is not in conversation ${conv}` : 'you are not in its conversation' });
|
|
280
298
|
// A thread that is ANOTHER conversation's message contradicts the
|
|
281
299
|
// conversation: neither is used. An unknown id only loses the thread.
|
|
282
300
|
if (conv && msg) {
|
|
283
|
-
ignored.push({ hint: `conversation ${conv}`, why: 'its thread is in another conversation' });
|
|
301
|
+
ignored.push({ hint: `conversation ${conv}`, why: msg.channelId === conv ? 'you are not in that conversation' : 'its thread is in another conversation' });
|
|
284
302
|
return { destination: null, ignored };
|
|
285
303
|
}
|
|
286
304
|
if (!conv)
|
|
@@ -288,13 +306,82 @@ export async function validateHints(session, hints, origin, deps) {
|
|
|
288
306
|
}
|
|
289
307
|
if (conv) {
|
|
290
308
|
if (await deps.ownsConversation(session, conv)) {
|
|
309
|
+
// The thread comes only from the owner message the agent is answering
|
|
310
|
+
// (`origin` is passed only then), never from its last owner thread in
|
|
311
|
+
// that conversation (message-routing audit 2026-10-18, R2).
|
|
291
312
|
const thread = origin?.conversationId === conv ? origin.slackThreadKey ?? origin.chatThreadId : undefined;
|
|
292
|
-
|
|
313
|
+
if (!thread && needsThread(deps.slackChannelOfConversation(conv))) {
|
|
314
|
+
ignored.push({ hint: `conversation ${conv}`, why: 'it is a Slack channel, no usable thread was named, and the message you are answering is not in it; name the thread with --thread <[SLACK-THREAD:…] key or message id>' });
|
|
315
|
+
return { destination: null, ignored };
|
|
316
|
+
}
|
|
317
|
+
return { destination: { kind: 'conversation', conversationId: conv, ...(thread ? { thread } : {}), source: 'hint', reason: thread ? 'named the conversation of the owner message it answers' : 'named its own conversation' }, ignored };
|
|
293
318
|
}
|
|
319
|
+
// Not in the room, but the current work was delegated into one of its
|
|
320
|
+
// Slack threads: that thread, never the room's top level (2026-10-18:
|
|
321
|
+
// Kai's PDF for Steve's #daily-info thread was posted top level).
|
|
322
|
+
const workThread = await currentWorkThreadIn(session, conv, deps);
|
|
323
|
+
const delegated = await delegatedSlackThread(session, workThread, deps);
|
|
324
|
+
if (delegated)
|
|
325
|
+
return { destination: delegated, ignored };
|
|
294
326
|
ignored.push({ hint: `conversation ${conv}`, why: 'not a conversation you are in' });
|
|
295
327
|
}
|
|
296
328
|
return { destination: null, ignored };
|
|
297
329
|
}
|
|
330
|
+
/**
|
|
331
|
+
* The Slack thread a non-member may post in because its open work was
|
|
332
|
+
* delegated into it (#1109), as a destination.
|
|
333
|
+
*
|
|
334
|
+
* @param session - Agent
|
|
335
|
+
* @param key - The thread, if known
|
|
336
|
+
* @param deps - Collaborators
|
|
337
|
+
* @returns The Slack destination, or null when the thread was not delegated to the agent
|
|
338
|
+
*/
|
|
339
|
+
async function delegatedSlackThread(session, key, deps) {
|
|
340
|
+
if (!key || !deps.delegatedThread)
|
|
341
|
+
return null;
|
|
342
|
+
if (!(await deps.delegatedThread(session, key.slackChannelId, key.threadTs).catch(() => false)))
|
|
343
|
+
return null;
|
|
344
|
+
const keyText = formatSlackThreadKey(key.slackChannelId, key.threadTs);
|
|
345
|
+
const reason = `Slack thread ${keyText} was delegated to you`;
|
|
346
|
+
return { kind: 'work', destination: { kind: 'slack', target: key.slackChannelId, threadTs: key.threadTs, reason }, source: 'hint', reason };
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* The Slack thread of a conversation the agent's open work came from (an
|
|
350
|
+
* owner origin in that conversation with a Slack thread). Only when that is
|
|
351
|
+
* ONE thread: with two pieces of work from different threads of the room,
|
|
352
|
+
* the newest is not a safe guess, and the caller fails loudly instead.
|
|
353
|
+
*
|
|
354
|
+
* @param session - Agent
|
|
355
|
+
* @param conversationId - chat-v2 conversation
|
|
356
|
+
* @param deps - Collaborators
|
|
357
|
+
* @returns The thread, or null when there is none or more than one
|
|
358
|
+
*/
|
|
359
|
+
async function currentWorkThreadIn(session, conversationId, deps) {
|
|
360
|
+
const items = await deps.poolItems().catch(() => []);
|
|
361
|
+
const threads = new Map();
|
|
362
|
+
for (const wi of items) {
|
|
363
|
+
if (wi.target !== session || !OPEN_WORK_STATUSES.has(wi.status))
|
|
364
|
+
continue;
|
|
365
|
+
const origin = originOfWorkItem(wi);
|
|
366
|
+
if (origin?.kind !== 'owner' || origin.conversationId !== conversationId || !origin.slackChannelId || !origin.threadTs)
|
|
367
|
+
continue;
|
|
368
|
+
threads.set(formatSlackThreadKey(origin.slackChannelId, origin.threadTs), { slackChannelId: origin.slackChannelId, threadTs: origin.threadTs });
|
|
369
|
+
}
|
|
370
|
+
return threads.size === 1 ? [...threads.values()][0] : null;
|
|
371
|
+
}
|
|
372
|
+
/** Work an agent still owes an answer for. */
|
|
373
|
+
const OPEN_WORK_STATUSES = new Set(['queued', 'proposed', 'accepted', 'running', 'blocked', 'escalated']);
|
|
374
|
+
/**
|
|
375
|
+
* Whether a post into a conversation must name a thread: a Slack channel
|
|
376
|
+
* (not a DM). A chat-only conversation or a Slack DM takes a post at its
|
|
377
|
+
* top level.
|
|
378
|
+
*
|
|
379
|
+
* @param slackChannelId - The conversation's Slack channel, or null
|
|
380
|
+
* @returns True for a Slack channel
|
|
381
|
+
*/
|
|
382
|
+
function needsThread(slackChannelId) {
|
|
383
|
+
return !!slackChannelId && /^[CG]/.test(slackChannelId);
|
|
384
|
+
}
|
|
298
385
|
/**
|
|
299
386
|
* Whether a prompt reference may steer a bare reply: the agent owes the
|
|
300
387
|
* owner nothing, and the last message delivered to it is that prompt.
|
|
@@ -329,9 +416,13 @@ export async function resolveReplyDestination(input, deps) {
|
|
|
329
416
|
return { destination: d, ignoredHints };
|
|
330
417
|
}
|
|
331
418
|
const origin = deps.turnOrigin(session);
|
|
419
|
+
const latest = deps.latestInput?.(session) ?? null;
|
|
420
|
+
// The owner message the agent is answering: its turn origin, only while
|
|
421
|
+
// that message is the latest input naming what the agent answers.
|
|
422
|
+
const answered = answeredOwnerOrigin(origin, latest);
|
|
332
423
|
// 4. Hints the harness can stand behind.
|
|
333
424
|
if (input.hints && (input.hints.conversationId || input.hints.thread)) {
|
|
334
|
-
const v = await validateHints(session, input.hints,
|
|
425
|
+
const v = await validateHints(session, input.hints, answered, deps);
|
|
335
426
|
ignoredHints.push(...v.ignored);
|
|
336
427
|
if (v.destination)
|
|
337
428
|
return { destination: v.destination, ignoredHints };
|
|
@@ -349,9 +440,8 @@ export async function resolveReplyDestination(input, deps) {
|
|
|
349
440
|
// 5. The latest input was another agent's message: the answer goes back to
|
|
350
441
|
// that agent (agent-to-agent), never into the owner's last thread
|
|
351
442
|
// (crewly#1375: Pia's answer to Atlas landed in the owner's video thread).
|
|
352
|
-
const latest = deps.latestInput?.(session) ?? null;
|
|
353
443
|
if (latest?.kind === 'agent' && latest.sender && latest.sender !== session) {
|
|
354
|
-
return { destination: await answerToAgent(session, latest
|
|
444
|
+
return { destination: await answerToAgent(session, latest, origin, deps), ignoredHints };
|
|
355
445
|
}
|
|
356
446
|
// 6. What the harness last prompted the agent about — only when the agent
|
|
357
447
|
// owes the owner nothing and that prompt is the last thing it was given:
|
|
@@ -362,41 +452,86 @@ export async function resolveReplyDestination(input, deps) {
|
|
|
362
452
|
if (d && d.kind !== 'unresolved')
|
|
363
453
|
return { destination: { ...d, source: 'prompt', reason: `the harness prompted you about it (${d.reason})` }, ignoredHints };
|
|
364
454
|
}
|
|
365
|
-
// 7
|
|
366
|
-
//
|
|
367
|
-
//
|
|
368
|
-
const
|
|
455
|
+
// 7. The route of the input being answered. An owner message from another
|
|
456
|
+
// conversation shown mid-turn makes even that unsafe: the answer to it
|
|
457
|
+
// landed in the turn origin's thread (Ella, 2026-10-06).
|
|
458
|
+
const routed = await fromLatestInput(input, deps, origin, answered, latest);
|
|
369
459
|
const pending = deps.surfacedOwnerConversations?.(session) ?? [];
|
|
370
|
-
const
|
|
371
|
-
const others = [...new Set(pending.filter((c) => c !==
|
|
372
|
-
if (others.length > 0 &&
|
|
373
|
-
const options = [...(
|
|
460
|
+
const routedConv = routed.kind === 'conversation' ? routed.conversationId : undefined;
|
|
461
|
+
const others = [...new Set(pending.filter((c) => c !== routedConv))];
|
|
462
|
+
if (others.length > 0 && routed.kind !== 'unresolved') {
|
|
463
|
+
const options = [...(routedConv ? [routedConv] : []), ...others];
|
|
374
464
|
return {
|
|
375
465
|
destination: {
|
|
376
466
|
kind: 'unresolved',
|
|
377
467
|
reason: `more than one owner conversation is waiting on you (${options.join(', ')}) — say which one this reply is for`,
|
|
378
|
-
fix: `reply --conversation ${others[0]} "<your message>" (or
|
|
468
|
+
fix: `reply --conversation ${others[0]} --thread <its thread> "<your message>" (or ${answered ? `--conversation ${answered.conversationId}${answered.slackThreadKey ?? answered.chatThreadId ? ` --thread ${answered.slackThreadKey ?? answered.chatThreadId}` : ''}` : '--conversation <id> --thread <thread>'} for the message your turn started with)`,
|
|
379
469
|
},
|
|
380
470
|
ignoredHints,
|
|
381
471
|
};
|
|
382
472
|
}
|
|
383
|
-
return {
|
|
473
|
+
return { destination: routed, ignoredHints };
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* The owner's turn origin, when the owner message behind it is the latest
|
|
477
|
+
* input that names what the agent answers. Otherwise the origin is just
|
|
478
|
+
* "the agent's last owner thread", which says nothing about this reply.
|
|
479
|
+
*
|
|
480
|
+
* @param origin - The agent's turn origin
|
|
481
|
+
* @param latest - Its latest routed input
|
|
482
|
+
* @returns The origin, or undefined
|
|
483
|
+
*/
|
|
484
|
+
export function answeredOwnerOrigin(origin, latest) {
|
|
485
|
+
if (!origin || latest?.kind !== 'owner')
|
|
486
|
+
return undefined;
|
|
487
|
+
if (latest.conversationId && latest.conversationId !== origin.conversationId)
|
|
488
|
+
return undefined;
|
|
489
|
+
return origin;
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Whether a route is the replying agent's own: an owner conversation it is in,
|
|
493
|
+
* or a work item targeted at it. A message from another agent that carries
|
|
494
|
+
* such a route is about the replier's own request, so a bare reply could be
|
|
495
|
+
* meant for that agent or for the owner.
|
|
496
|
+
*
|
|
497
|
+
* @param session - Replying agent
|
|
498
|
+
* @param route - The route the message carries
|
|
499
|
+
* @param deps - Collaborators
|
|
500
|
+
* @returns True when the route is the replier's
|
|
501
|
+
*/
|
|
502
|
+
async function isOwnRoute(session, route, deps) {
|
|
503
|
+
if (route.kind === 'owner')
|
|
504
|
+
return deps.ownsConversation(session, route.conversationId).catch(() => false);
|
|
505
|
+
const wi = await deps.workItem(route.workItemId).catch(() => null);
|
|
506
|
+
return wi?.target === session;
|
|
384
507
|
}
|
|
385
508
|
/**
|
|
386
509
|
* Step 5 of {@link resolveReplyDestination}: the answer to another agent's
|
|
387
510
|
* message goes back to that agent — unless the agent also owes the owner an
|
|
388
|
-
* answer,
|
|
389
|
-
*
|
|
511
|
+
* answer, holds work whose answer goes elsewhere, or the message is about the
|
|
512
|
+
* agent's own request (its route): then a bare reply could mean either, and
|
|
513
|
+
* the agent is told to name it.
|
|
390
514
|
*
|
|
391
515
|
* @param session - Replying agent
|
|
392
|
-
* @param
|
|
516
|
+
* @param latest - The other agent's message (the latest input)
|
|
393
517
|
* @param origin - The replying agent's owner turn origin, if any
|
|
394
518
|
* @param deps - Collaborators
|
|
395
519
|
* @returns The sender as destination, or `unresolved` with both commands
|
|
396
520
|
*/
|
|
397
|
-
async function answerToAgent(session,
|
|
521
|
+
async function answerToAgent(session, latest, origin, deps) {
|
|
522
|
+
const sender = latest.sender;
|
|
398
523
|
const toAgent = `send-message --to ${sender} "<your answer>" (to answer ${sender})`;
|
|
399
|
-
const
|
|
524
|
+
const ownRoute = latest.route && (await isOwnRoute(session, latest.route, deps)) ? latest.route : undefined;
|
|
525
|
+
if (ownRoute) {
|
|
526
|
+
return {
|
|
527
|
+
kind: 'unresolved',
|
|
528
|
+
reason: `your latest message is from ${sender} (another agent) about ${describeRoute(ownRoute)}, which you answer — say whether this reply is for ${sender} or for the owner`,
|
|
529
|
+
fix: `${toAgent}, or ${replyCommandFor(ownRoute)} (the consolidated answer for the owner)`,
|
|
530
|
+
};
|
|
531
|
+
}
|
|
532
|
+
const forOwner = origin
|
|
533
|
+
? `reply --conversation ${origin.conversationId}${origin.slackThreadKey ?? origin.chatThreadId ? ` --thread ${origin.slackThreadKey ?? origin.chatThreadId}` : ''} "<message>"`
|
|
534
|
+
: 'reply --to <message id from the owner\'s message> "<message>"';
|
|
400
535
|
const pendingOwner = deps.owesOwner(session) || (deps.surfacedOwnerConversations?.(session) ?? []).length > 0;
|
|
401
536
|
if (pendingOwner) {
|
|
402
537
|
return {
|
|
@@ -406,8 +541,9 @@ async function answerToAgent(session, sender, origin, deps) {
|
|
|
406
541
|
};
|
|
407
542
|
}
|
|
408
543
|
const items = await deps.poolItems().catch(() => []);
|
|
409
|
-
const workItem
|
|
410
|
-
|
|
544
|
+
for (const workItem of liveItemsOf(items, session)) {
|
|
545
|
+
if (!originOfWorkItem(workItem))
|
|
546
|
+
continue;
|
|
411
547
|
const planned = planWorkDestination({ workItem, now: deps.now() });
|
|
412
548
|
if (!(planned.kind === 'agent' && planned.sessionName === sender)) {
|
|
413
549
|
return {
|
|
@@ -420,54 +556,133 @@ async function answerToAgent(session, sender, origin, deps) {
|
|
|
420
556
|
const reason = `answering ${sender}'s message (another agent, not the owner)`;
|
|
421
557
|
return { kind: 'work', destination: { kind: 'agent', sessionName: sender, reason }, source: 'agent-message', reason };
|
|
422
558
|
}
|
|
559
|
+
/** Statuses in which a work item is live work of its target. */
|
|
560
|
+
const LIVE_STATUSES = new Set(['running', 'accepted']);
|
|
561
|
+
/**
|
|
562
|
+
* The agent's live work items (running / accepted), oldest first.
|
|
563
|
+
*
|
|
564
|
+
* @param items - Pool items
|
|
565
|
+
* @param session - Agent
|
|
566
|
+
* @returns Its live items
|
|
567
|
+
*/
|
|
568
|
+
export function liveItemsOf(items, session) {
|
|
569
|
+
return items
|
|
570
|
+
.filter((w) => w.target === session && LIVE_STATUSES.has(w.status))
|
|
571
|
+
.sort((a, b) => (Date.parse(a.startedAt ?? a.createdAt) || 0) - (Date.parse(b.startedAt ?? b.createdAt) || 0));
|
|
572
|
+
}
|
|
423
573
|
/**
|
|
424
|
-
*
|
|
425
|
-
*
|
|
574
|
+
* Where a work item's answer goes, refusing the places that are not a
|
|
575
|
+
* destination it names: a work item with no origin, or an owner origin with
|
|
576
|
+
* no place, is not posted at a channel's top level.
|
|
577
|
+
*
|
|
578
|
+
* @param wi - Work item
|
|
579
|
+
* @param session - Replying agent
|
|
580
|
+
* @param deps - Collaborators
|
|
581
|
+
* @returns The destination, or `unresolved`
|
|
426
582
|
*/
|
|
427
|
-
|
|
428
|
-
const
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
const
|
|
583
|
+
function destinationOfWorkItem(wi, session, deps) {
|
|
584
|
+
const noPlace = {
|
|
585
|
+
kind: 'unresolved',
|
|
586
|
+
reason: `work item ${wi.id} names no conversation or thread to answer in`,
|
|
587
|
+
fix: 'reply --to <owner message id> "<message>", or reply --conversation <id> --thread <thread> "<message>"',
|
|
588
|
+
};
|
|
589
|
+
const origin = originOfWorkItem(wi);
|
|
590
|
+
if (!origin)
|
|
591
|
+
return noPlace;
|
|
592
|
+
const planned = planWorkDestination({ workItem: wi, now: deps.now() });
|
|
434
593
|
if (planned.kind === 'owner-origin') {
|
|
435
594
|
const o = planned.origin;
|
|
436
595
|
const thread = o.slackThreadKey ?? o.chatThreadId;
|
|
437
|
-
|
|
438
|
-
// A dispatch delivered after the owner's message started other work: the
|
|
439
|
-
// owner's thread is not this turn's origin any more (crewly#1375).
|
|
440
|
-
if (fromOwner && latest?.kind === 'dispatch' && latest.at > o.receivedAt) {
|
|
441
|
-
return {
|
|
442
|
-
destination: {
|
|
443
|
-
kind: 'unresolved',
|
|
444
|
-
reason: `a dispatch came in after the owner's message in conversation ${o.conversationId}, so a bare reply may not be for that thread`,
|
|
445
|
-
fix: `${workItem ? `reply --work-item ${workItem.id} "<message>" (for the dispatched work), or ` : ''}reply --conversation ${o.conversationId} "<message>" (to answer the owner there)`,
|
|
446
|
-
},
|
|
447
|
-
ignoredHints,
|
|
448
|
-
};
|
|
449
|
-
}
|
|
450
|
-
return {
|
|
451
|
-
destination: { kind: 'conversation', conversationId: o.conversationId, ...(thread ? { thread } : {}), source: fromOwner ? 'turn-origin' : 'current-work', reason: planned.reason },
|
|
452
|
-
ignoredHints,
|
|
453
|
-
};
|
|
454
|
-
}
|
|
455
|
-
const isScheduled = !!workItem && originOfWorkItem(workItem)?.kind === 'trigger';
|
|
456
|
-
// Team work its lead reports in the team channel (crewly#1371) goes there, not to the owner DM.
|
|
457
|
-
const isLeadReported = !!workItem && !!leadReportOf(workItem);
|
|
458
|
-
if (planned.kind !== 'new-top-level' || isScheduled || isLeadReported) {
|
|
459
|
-
return { destination: { kind: 'work', destination: planned, source: 'current-work', reason: planned.reason }, ignoredHints };
|
|
596
|
+
return { kind: 'conversation', conversationId: o.conversationId, ...(thread ? { thread } : {}), source: 'current-work', reason: planned.reason };
|
|
460
597
|
}
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
return
|
|
598
|
+
if (planned.kind === 'agent' && planned.sessionName === session)
|
|
599
|
+
return noPlace;
|
|
600
|
+
// A top-level post only for work whose origin says so: a scheduled task, or
|
|
601
|
+
// team work its lead reports in the team channel (crewly#1371).
|
|
602
|
+
if (planned.kind === 'new-top-level' && origin.kind !== 'trigger' && !leadReportOf(wi))
|
|
603
|
+
return noPlace;
|
|
604
|
+
return { kind: 'work', destination: planned, source: 'current-work', reason: planned.reason };
|
|
605
|
+
}
|
|
606
|
+
/**
|
|
607
|
+
* Where a route goes.
|
|
608
|
+
*
|
|
609
|
+
* @param session - Replying agent
|
|
610
|
+
* @param route - The route
|
|
611
|
+
* @param deps - Collaborators
|
|
612
|
+
* @returns The destination (source `route`), or `unresolved`
|
|
613
|
+
*/
|
|
614
|
+
export async function resolveRoute(session, route, deps) {
|
|
615
|
+
if (route.kind === 'work-item') {
|
|
616
|
+
const wi = await deps.workItem(route.workItemId).catch(() => null);
|
|
617
|
+
if (!wi)
|
|
618
|
+
return { kind: 'unresolved', reason: `there is no work item ${route.workItemId}`, fix: 'reply --to <owner message id> "<message>"' };
|
|
619
|
+
const d = destinationOfWorkItem(wi, session, deps);
|
|
620
|
+
return d.kind === 'unresolved' ? d : { ...d, source: 'route', reason: `the request this answers (${describeRoute(route)}): ${d.reason}` };
|
|
467
621
|
}
|
|
622
|
+
const v = await validateHints(session, { conversationId: route.conversationId, ...(route.thread ? { thread: route.thread } : {}) }, undefined, deps);
|
|
623
|
+
if (v.destination)
|
|
624
|
+
return { ...v.destination, source: 'route', reason: `the request this answers (${describeRoute(route)})` };
|
|
468
625
|
return {
|
|
469
|
-
|
|
470
|
-
|
|
626
|
+
kind: 'unresolved',
|
|
627
|
+
reason: `the request this answers is ${describeRoute(route)}, and you cannot post there (${v.ignored.map((i) => `${i.hint}: ${i.why}`).join('; ') || 'not a conversation you are in'})`,
|
|
628
|
+
fix: 'send the answer to the agent who asked you (send-message --to <agent>), so it answers the owner',
|
|
471
629
|
};
|
|
472
630
|
}
|
|
631
|
+
/**
|
|
632
|
+
* Step 7 of {@link resolveReplyDestination}: the route of the latest input
|
|
633
|
+
* that names what the agent answers. Never a guess: when that input names no
|
|
634
|
+
* place, the agent is told which ids would work.
|
|
635
|
+
*
|
|
636
|
+
* @param input - Agent
|
|
637
|
+
* @param deps - Collaborators
|
|
638
|
+
* @param origin - Its turn origin
|
|
639
|
+
* @param answered - Its turn origin when the owner message behind it is the input answered
|
|
640
|
+
* @param latest - Its latest routed input
|
|
641
|
+
* @returns The destination, or `unresolved`
|
|
642
|
+
*/
|
|
643
|
+
async function fromLatestInput(input, deps, origin, answered, latest) {
|
|
644
|
+
const { session } = input;
|
|
645
|
+
const items = await deps.poolItems().catch(() => []);
|
|
646
|
+
const live = liveItemsOf(items, session);
|
|
647
|
+
const options = [
|
|
648
|
+
...live.map((w) => `reply --work-item ${w.id} "<message>" (${JSON.stringify(w.title.slice(0, 60))})`),
|
|
649
|
+
...(origin ? [`reply --conversation ${origin.conversationId}${origin.slackThreadKey ?? origin.chatThreadId ? ` --thread ${origin.slackThreadKey ?? origin.chatThreadId}` : ''} "<message>" (the owner's last message to you)`] : []),
|
|
650
|
+
];
|
|
651
|
+
const refuse = (reason) => ({
|
|
652
|
+
kind: 'unresolved',
|
|
653
|
+
reason,
|
|
654
|
+
fix: options.length > 0 ? options.join('; or ') : 'reply --to <message id from your prompt> "<message>" (or --work-item <id> / --ticket <id>)',
|
|
655
|
+
});
|
|
656
|
+
if (latest?.kind === 'owner') {
|
|
657
|
+
if (!answered)
|
|
658
|
+
return refuse('Crewly does not know which thread the owner message you are answering is in');
|
|
659
|
+
const thread = answered.slackThreadKey ?? answered.chatThreadId;
|
|
660
|
+
return { kind: 'conversation', conversationId: answered.conversationId, ...(thread ? { thread } : {}), source: 'turn-origin', reason: 'answering the owner message you were given last' };
|
|
661
|
+
}
|
|
662
|
+
if (latest?.kind === 'result') {
|
|
663
|
+
const sender = latest.sender ?? 'your delegate';
|
|
664
|
+
if (!latest.route) {
|
|
665
|
+
return refuse(`your latest message is ${sender}'s result for work you delegated, and nothing names where the answer goes (you delegated it while answering no owner message or work item)`);
|
|
666
|
+
}
|
|
667
|
+
return resolveRoute(session, latest.route, deps);
|
|
668
|
+
}
|
|
669
|
+
if (latest?.kind === 'dispatch' && latest.workItemId) {
|
|
670
|
+
const wi = await deps.workItem(latest.workItemId).catch(() => null);
|
|
671
|
+
if (!wi)
|
|
672
|
+
return refuse(`the work item you were handed (${latest.workItemId}) is not in the pool`);
|
|
673
|
+
// An owner message delivered before the dispatch is still unanswered:
|
|
674
|
+
// a bare reply could be for either (crewly#1375).
|
|
675
|
+
if (origin && origin.receivedAt < latest.at && deps.owesOwner(session)) {
|
|
676
|
+
return refuse(`a dispatch came in after the owner's message in conversation ${origin.conversationId}, and you still owe the owner an answer — say which one this reply is for`);
|
|
677
|
+
}
|
|
678
|
+
return destinationOfWorkItem(wi, session, deps);
|
|
679
|
+
}
|
|
680
|
+
// Nothing names what this reply answers: only the agent's ONE live work
|
|
681
|
+
// item is unambiguous. Several are never resolved to the newest.
|
|
682
|
+
if (live.length === 1)
|
|
683
|
+
return destinationOfWorkItem(live[0], session, deps);
|
|
684
|
+
if (live.length > 1)
|
|
685
|
+
return refuse(`you have ${live.length} live work items and your latest input names none of them — say which one this reply is for`);
|
|
686
|
+
return refuse('nothing you were given names where this reply goes (no owner message, work item or agent message you are answering)');
|
|
687
|
+
}
|
|
473
688
|
//# sourceMappingURL=reply-destination-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reply-destination-resolver.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orc/reply-destination-resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reply-destination-resolver.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orc/reply-destination-resolver.ts"],"names":[],"mappings":"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"}
|