crewly 1.20.365 → 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.
Files changed (136) hide show
  1. package/config/skills/agent/core/attach-file/SKILL.md +7 -0
  2. package/config/skills/agent/core/attach-file/execute.sh +8 -3
  3. package/config/skills/agent/core/complete-task/SKILL.md +4 -2
  4. package/config/skills/agent/core/complete-task/execute.sh +9 -1
  5. package/config/skills/agent/core/complete-task/explicit-id.test.sh +13 -2
  6. package/config/skills/agent/core/create-task/SKILL.md +2 -0
  7. package/config/skills/agent/core/create-task/execute.sh +27 -1
  8. package/config/skills/agent/core/create-task/execute.test.sh +67 -0
  9. package/config/skills/agent/core/handoff-task/execute.sh +12 -5
  10. package/config/skills/agent/core/handoff-task/explicit-id.test.sh +70 -0
  11. package/config/skills/agent/core/reply-channel/SKILL.md +12 -5
  12. package/config/skills/agent/core/reply-channel/execute.sh +17 -2
  13. package/config/skills/agent/core/reply-channel/execute.test.sh +15 -2
  14. package/config/skills/agent/core/slack-post/SKILL.md +3 -3
  15. package/config/skills/orchestrator/delegate-task/SKILL.md +1 -1
  16. package/config/skills/orchestrator/reply-slack/execute.sh +6 -2
  17. package/config/skills/orchestrator/send-pdf-to-slack/SKILL.md +2 -1
  18. package/config/skills/orchestrator/send-pdf-to-slack/execute.sh +10 -2
  19. package/config/skills/registry.json +6 -6
  20. package/config/skills/team-leader/delegate-task/SKILL.md +1 -1
  21. package/config/skills/team-leader/delegate-task/execute.sh +6 -0
  22. package/dist/backend/backend/src/constants.d.ts +26 -0
  23. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  24. package/dist/backend/backend/src/constants.js +26 -0
  25. package/dist/backend/backend/src/constants.js.map +1 -1
  26. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
  27. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +7 -3
  28. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
  29. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts +12 -0
  30. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  31. package/dist/backend/backend/src/controllers/chat/chat.controller.js +56 -7
  32. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  33. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts +9 -0
  34. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
  35. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +111 -11
  36. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
  37. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  38. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +52 -4
  39. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  40. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  41. package/dist/backend/backend/src/controllers/slack/slack.controller.js +58 -4
  42. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  43. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  44. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +36 -2
  45. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  46. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +16 -10
  47. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  48. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +19 -11
  49. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  50. package/dist/backend/backend/src/services/messaging/agent-message-envelope.d.ts +8 -0
  51. package/dist/backend/backend/src/services/messaging/agent-message-envelope.d.ts.map +1 -1
  52. package/dist/backend/backend/src/services/messaging/agent-message-envelope.js +10 -1
  53. package/dist/backend/backend/src/services/messaging/agent-message-envelope.js.map +1 -1
  54. package/dist/backend/backend/src/services/messaging/owner-hook-message.d.ts +62 -20
  55. package/dist/backend/backend/src/services/messaging/owner-hook-message.d.ts.map +1 -1
  56. package/dist/backend/backend/src/services/messaging/owner-hook-message.js +178 -39
  57. package/dist/backend/backend/src/services/messaging/owner-hook-message.js.map +1 -1
  58. package/dist/backend/backend/src/services/orc/agent-mention-post-guard.d.ts +8 -5
  59. package/dist/backend/backend/src/services/orc/agent-mention-post-guard.d.ts.map +1 -1
  60. package/dist/backend/backend/src/services/orc/agent-mention-post-guard.js +13 -10
  61. package/dist/backend/backend/src/services/orc/agent-mention-post-guard.js.map +1 -1
  62. package/dist/backend/backend/src/services/orc/message-route.d.ts +129 -0
  63. package/dist/backend/backend/src/services/orc/message-route.d.ts.map +1 -0
  64. package/dist/backend/backend/src/services/orc/message-route.js +197 -0
  65. package/dist/backend/backend/src/services/orc/message-route.js.map +1 -0
  66. package/dist/backend/backend/src/services/orc/reply-destination-resolver.d.ts +49 -6
  67. package/dist/backend/backend/src/services/orc/reply-destination-resolver.d.ts.map +1 -1
  68. package/dist/backend/backend/src/services/orc/reply-destination-resolver.js +284 -69
  69. package/dist/backend/backend/src/services/orc/reply-destination-resolver.js.map +1 -1
  70. package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts +64 -8
  71. package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts.map +1 -1
  72. package/dist/backend/backend/src/services/orc/reply-destination.wiring.js +215 -100
  73. package/dist/backend/backend/src/services/orc/reply-destination.wiring.js.map +1 -1
  74. package/dist/backend/backend/src/services/orc/triggered-by.d.ts.map +1 -1
  75. package/dist/backend/backend/src/services/orc/triggered-by.js +9 -0
  76. package/dist/backend/backend/src/services/orc/triggered-by.js.map +1 -1
  77. package/dist/backend/backend/src/services/orc/work-item-destination.d.ts +2 -1
  78. package/dist/backend/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
  79. package/dist/backend/backend/src/services/orc/work-item-destination.js +1 -1
  80. package/dist/backend/backend/src/services/orc/work-item-destination.js.map +1 -1
  81. package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts +10 -1
  82. package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts.map +1 -1
  83. package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js +25 -4
  84. package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js.map +1 -1
  85. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts +1 -0
  86. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts +1 -1
  88. package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts.map +1 -1
  89. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js +20 -13
  90. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js.map +1 -1
  91. package/dist/backend/backend/src/services/slack/slack.service.d.ts +20 -1
  92. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  93. package/dist/backend/backend/src/services/slack/slack.service.js +58 -3
  94. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  95. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +31 -0
  96. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  97. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +62 -5
  98. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  99. package/dist/backend/backend/src/services/trace/turn-trigger.d.ts +34 -1
  100. package/dist/backend/backend/src/services/trace/turn-trigger.d.ts.map +1 -1
  101. package/dist/backend/backend/src/services/trace/turn-trigger.js +74 -9
  102. package/dist/backend/backend/src/services/trace/turn-trigger.js.map +1 -1
  103. package/dist/backend/build-info.json +2 -2
  104. package/dist/cli/backend/src/constants.d.ts +26 -0
  105. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  106. package/dist/cli/backend/src/constants.js +26 -0
  107. package/dist/cli/backend/src/constants.js.map +1 -1
  108. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +16 -10
  109. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  110. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +19 -11
  111. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  112. package/dist/cli/backend/src/services/messaging/agent-message-envelope.d.ts +8 -0
  113. package/dist/cli/backend/src/services/messaging/agent-message-envelope.d.ts.map +1 -1
  114. package/dist/cli/backend/src/services/messaging/agent-message-envelope.js +10 -1
  115. package/dist/cli/backend/src/services/messaging/agent-message-envelope.js.map +1 -1
  116. package/dist/cli/backend/src/services/orc/message-route.d.ts +129 -0
  117. package/dist/cli/backend/src/services/orc/message-route.d.ts.map +1 -0
  118. package/dist/cli/backend/src/services/orc/message-route.js +197 -0
  119. package/dist/cli/backend/src/services/orc/message-route.js.map +1 -0
  120. package/dist/cli/backend/src/services/orc/work-item-destination.d.ts +2 -1
  121. package/dist/cli/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
  122. package/dist/cli/backend/src/services/orc/work-item-destination.js +1 -1
  123. package/dist/cli/backend/src/services/orc/work-item-destination.js.map +1 -1
  124. package/dist/cli/backend/src/services/slack/slack.service.d.ts +20 -1
  125. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
  126. package/dist/cli/backend/src/services/slack/slack.service.js +58 -3
  127. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
  128. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +31 -0
  129. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  130. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +62 -5
  131. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  132. package/dist/cli/backend/src/services/trace/turn-trigger.d.ts +34 -1
  133. package/dist/cli/backend/src/services/trace/turn-trigger.d.ts.map +1 -1
  134. package/dist/cli/backend/src/services/trace/turn-trigger.js +74 -9
  135. package/dist/cli/backend/src/services/trace/turn-trigger.js.map +1 -1
  136. 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 agent's turn origin / current work — the owner's turn origin only
23
- * while no newer dispatch came in (crewly#1375);
24
- * 8. the agent's owner DM.
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 { currentWorkItemOf, leadReportOf, originOfWorkItem, planWorkDestination } from './work-item-destination.js';
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
- return { destination: { kind: 'conversation', conversationId: conv, ...(thread ? { thread } : {}), source: 'hint', reason: 'named its own conversation' }, ignored };
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, origin, deps);
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.sender, origin, deps), ignoredHints };
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–8 guess from the turn origin / work / DM. An owner message from
366
- // another conversation shown mid-turn makes that guess unsafe: the answer
367
- // to it landed in the turn origin's thread (Ella, 2026-10-06).
368
- const guessed = await guessDestination(input, deps, origin, prompt, latest);
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 guessedConv = guessed.destination.kind === 'conversation' ? guessed.destination.conversationId : undefined;
371
- const others = [...new Set(pending.filter((c) => c !== guessedConv))];
372
- if (others.length > 0 && guessed.destination.kind !== 'unresolved') {
373
- const options = [...(guessedConv ? [guessedConv] : []), ...others];
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 --conversation ${guessedConv ?? '<id>'} for the conversation your turn started in)`,
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 { ...guessed, ignoredHints: [...ignoredHints, ...guessed.ignoredHints] };
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, or holds work whose answer goes elsewhere: then a bare reply could
389
- * mean either, and the agent is told to name it.
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 sender - The agent whose message is the latest input
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, sender, origin, deps) {
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 forOwner = origin ? `reply --conversation ${origin.conversationId} "<message>"` : 'reply --to <message id from the owner\'s message> "<message>"';
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 = currentWorkItemOf(items, session);
410
- if (workItem && originOfWorkItem(workItem)) {
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
- * Steps 7–8 of {@link resolveReplyDestination}: turn origin / current work,
425
- * then the owner DM.
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
- async function guessDestination(input, deps, origin, prompt, latest) {
428
- const { session } = input;
429
- const ignoredHints = [];
430
- // 7. Turn origin / current work.
431
- const items = await deps.poolItems().catch(() => []);
432
- const workItem = currentWorkItemOf(items, session);
433
- const planned = planWorkDestination({ workItem, ownerOrigin: origin, now: deps.now() });
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
- const fromOwner = o === origin;
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
- // 8. The owner DM; a team-channel top-level post only when there is none.
462
- if (!input.noOwnerDm) {
463
- const dm = await deps.ownerDm(session).catch(() => null);
464
- if (dm)
465
- return { destination: { kind: 'conversation', conversationId: dm, source: 'owner-dm', reason: `${planned.reason} — your DM with the owner` }, ignoredHints };
466
- return { destination: { kind: 'work', destination: planned, source: 'current-work', reason: `${planned.reason} (no owner DM)` }, ignoredHints };
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
- destination: { kind: 'unresolved', reason: planned.reason, fix: fixCommand(prompt?.reference) },
470
- ignoredHints,
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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"}