crewly 1.20.293 → 1.20.295

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 (137) hide show
  1. package/config/hooks/agent-status/report.sh +11 -7
  2. package/config/roles/orchestrator/fragments/recovery.md +3 -0
  3. package/config/roles/orchestrator/prompt.md +3 -3
  4. package/config/roles/team-leader/tl-addon.md +6 -0
  5. package/config/skills/orchestrator/find-owner-for/SKILL.md +43 -0
  6. package/config/skills/orchestrator/find-owner-for/execute.sh +37 -0
  7. package/config/skills/orchestrator/team-roster/SKILL.md +44 -0
  8. package/config/skills/orchestrator/team-roster/execute.sh +27 -0
  9. package/config/skills/team-leader/update-charter/SKILL.md +48 -0
  10. package/config/skills/team-leader/update-charter/execute.sh +21 -0
  11. package/dist/backend/backend/src/constants.d.ts +63 -2
  12. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  13. package/dist/backend/backend/src/constants.js +48 -2
  14. package/dist/backend/backend/src/constants.js.map +1 -1
  15. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts +2 -0
  16. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
  17. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +18 -1
  18. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
  19. package/dist/backend/backend/src/controllers/team/team-charter.controller.d.ts +20 -0
  20. package/dist/backend/backend/src/controllers/team/team-charter.controller.d.ts.map +1 -0
  21. package/dist/backend/backend/src/controllers/team/team-charter.controller.js +81 -0
  22. package/dist/backend/backend/src/controllers/team/team-charter.controller.js.map +1 -0
  23. package/dist/backend/backend/src/controllers/team/team.controller.d.ts +1 -0
  24. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  25. package/dist/backend/backend/src/controllers/team/team.controller.js +5 -1
  26. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  27. package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
  28. package/dist/backend/backend/src/controllers/team/team.routes.js +3 -0
  29. package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
  30. package/dist/backend/backend/src/controllers/team-roster/team-roster.controller.d.ts +31 -0
  31. package/dist/backend/backend/src/controllers/team-roster/team-roster.controller.d.ts.map +1 -0
  32. package/dist/backend/backend/src/controllers/team-roster/team-roster.controller.js +68 -0
  33. package/dist/backend/backend/src/controllers/team-roster/team-roster.controller.js.map +1 -0
  34. package/dist/backend/backend/src/index.d.ts.map +1 -1
  35. package/dist/backend/backend/src/index.js +14 -1
  36. package/dist/backend/backend/src/index.js.map +1 -1
  37. package/dist/backend/backend/src/models/Team.d.ts +3 -0
  38. package/dist/backend/backend/src/models/Team.d.ts.map +1 -1
  39. package/dist/backend/backend/src/models/Team.js +3 -0
  40. package/dist/backend/backend/src/models/Team.js.map +1 -1
  41. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  42. package/dist/backend/backend/src/routes/api.routes.js +3 -0
  43. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  44. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts +1 -0
  45. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/agent/resource-mode.service.js +4 -3
  47. package/dist/backend/backend/src/services/agent/resource-mode.service.js.map +1 -1
  48. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +1 -0
  49. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
  50. package/dist/backend/backend/src/services/ai/prompt-modules/index.js +1 -0
  51. package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
  52. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +4 -0
  54. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  55. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  56. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +2 -2
  57. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  58. package/dist/backend/backend/src/services/ai/prompt-modules/team-roster.module.d.ts +44 -0
  59. package/dist/backend/backend/src/services/ai/prompt-modules/team-roster.module.d.ts.map +1 -0
  60. package/dist/backend/backend/src/services/ai/prompt-modules/team-roster.module.js +61 -0
  61. package/dist/backend/backend/src/services/ai/prompt-modules/team-roster.module.js.map +1 -0
  62. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +52 -1
  63. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  64. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +101 -29
  65. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  66. package/dist/backend/backend/src/services/messaging/deferred-start-retry.d.ts +45 -0
  67. package/dist/backend/backend/src/services/messaging/deferred-start-retry.d.ts.map +1 -0
  68. package/dist/backend/backend/src/services/messaging/deferred-start-retry.js +70 -0
  69. package/dist/backend/backend/src/services/messaging/deferred-start-retry.js.map +1 -0
  70. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js +1 -1
  71. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  72. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  73. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +13 -1
  74. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  75. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts +3 -2
  76. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  77. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js +8 -2
  78. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  79. package/dist/backend/backend/src/services/team-roster/team-roster.builder.d.ts +147 -0
  80. package/dist/backend/backend/src/services/team-roster/team-roster.builder.d.ts.map +1 -0
  81. package/dist/backend/backend/src/services/team-roster/team-roster.builder.js +492 -0
  82. package/dist/backend/backend/src/services/team-roster/team-roster.builder.js.map +1 -0
  83. package/dist/backend/backend/src/services/team-roster/team-roster.service.d.ts +79 -0
  84. package/dist/backend/backend/src/services/team-roster/team-roster.service.d.ts.map +1 -0
  85. package/dist/backend/backend/src/services/team-roster/team-roster.service.js +145 -0
  86. package/dist/backend/backend/src/services/team-roster/team-roster.service.js.map +1 -0
  87. package/dist/backend/backend/src/types/index.d.ts +12 -0
  88. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  89. package/dist/backend/backend/src/types/index.js.map +1 -1
  90. package/dist/backend/build-info.json +2 -2
  91. package/dist/cli/backend/src/constants.d.ts +63 -2
  92. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  93. package/dist/cli/backend/src/constants.js +48 -2
  94. package/dist/cli/backend/src/constants.js.map +1 -1
  95. package/dist/cli/backend/src/models/Team.d.ts +3 -0
  96. package/dist/cli/backend/src/models/Team.d.ts.map +1 -1
  97. package/dist/cli/backend/src/models/Team.js +3 -0
  98. package/dist/cli/backend/src/models/Team.js.map +1 -1
  99. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts +1 -0
  100. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
  101. package/dist/cli/backend/src/services/agent/resource-mode.service.js +4 -3
  102. package/dist/cli/backend/src/services/agent/resource-mode.service.js.map +1 -1
  103. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  104. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +4 -0
  105. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  106. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  107. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +2 -2
  108. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  109. package/dist/cli/backend/src/services/ai/prompt-modules/team-roster.module.d.ts +44 -0
  110. package/dist/cli/backend/src/services/ai/prompt-modules/team-roster.module.d.ts.map +1 -0
  111. package/dist/cli/backend/src/services/ai/prompt-modules/team-roster.module.js +61 -0
  112. package/dist/cli/backend/src/services/ai/prompt-modules/team-roster.module.js.map +1 -0
  113. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +52 -1
  114. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  115. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +101 -29
  116. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  117. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js +1 -1
  118. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  119. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  120. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +13 -1
  121. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  122. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts +3 -2
  123. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  124. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js +8 -2
  125. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  126. package/dist/cli/backend/src/services/team-roster/team-roster.builder.d.ts +147 -0
  127. package/dist/cli/backend/src/services/team-roster/team-roster.builder.d.ts.map +1 -0
  128. package/dist/cli/backend/src/services/team-roster/team-roster.builder.js +492 -0
  129. package/dist/cli/backend/src/services/team-roster/team-roster.builder.js.map +1 -0
  130. package/dist/cli/backend/src/services/team-roster/team-roster.service.d.ts +79 -0
  131. package/dist/cli/backend/src/services/team-roster/team-roster.service.d.ts.map +1 -0
  132. package/dist/cli/backend/src/services/team-roster/team-roster.service.js +145 -0
  133. package/dist/cli/backend/src/services/team-roster/team-roster.service.js.map +1 -0
  134. package/dist/cli/backend/src/types/index.d.ts +12 -0
  135. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  136. package/dist/cli/backend/src/types/index.js.map +1 -1
  137. package/package.json +1 -1
@@ -1787,9 +1787,13 @@ export class SlackTeamChannelService {
1787
1787
  // actually holds the message.
1788
1788
  if (this.deps.typing && typingTargets.length > 0) {
1789
1789
  const outcomes = new Map((dispatch?.huddleOutcomes ?? []).map((o) => [o.sessionName, o.dispatched]));
1790
+ const deferred = new Set((dispatch?.huddleOutcomes ?? []).filter((o) => o.deferred).map((o) => o.sessionName));
1790
1791
  for (const { session, key } of typingTargets) {
1791
1792
  const delivered = outcomes.get(session) ?? dispatch?.dispatched ?? false;
1792
- if (delivered)
1793
+ // Start deferred, message held on the agent's queue: delivered, just later.
1794
+ if (delivered && deferred.has(session))
1795
+ await this.deps.typing.setPhase(key, 'queued');
1796
+ else if (delivered)
1793
1797
  await this.deps.typing.setPhase(key, 'typing');
1794
1798
  else
1795
1799
  await this.deps.typing.fail(key);
@@ -3189,6 +3193,14 @@ export class SlackTeamChannelService {
3189
3193
  if (room && isAdhocMapping(room))
3190
3194
  return await this.mirrorOwnerPost(room, dto);
3191
3195
  }
3196
+ // A colleague agent on another machine: its post was made in Slack by
3197
+ // that machine and reached this one from Slack, stored as a user turn on
3198
+ // purpose (so it dispatches to the local agents it @'d). Mirroring it
3199
+ // would post it twice, so it is skipped — say so instead of the
3200
+ // misleading "senderType=user" (Rex, 2026-10-11).
3201
+ if (dto.senderType === 'user' && typeof dto.metadata?.[OWNER_EVIDENCE_METADATA.REMOTE_AGENT_SESSION] === 'string') {
3202
+ return skip('remote-agent-already-in-slack');
3203
+ }
3192
3204
  if (dto.senderType !== 'agent')
3193
3205
  return skip(`senderType=${dto.senderType}`);
3194
3206
  if (dto.metadata?.source === 'slack')