crewly 1.20.363 → 1.20.365
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/roles/orchestrator/prompt.md +3 -3
- package/config/roles/team-leader/prompt.md +4 -0
- package/config/skills/agent/core/reply/SKILL.md +10 -2
- package/config/skills/agent/core/reply-channel/SKILL.md +10 -0
- package/config/skills/agent/core/send-message/SKILL.md +14 -0
- package/config/skills/orchestrator/delegate-task/SKILL.md +14 -0
- package/config/skills/orchestrator/delegate-task/execute.sh +19 -2
- package/config/skills/orchestrator/delegate-task/execute.test.sh +30 -0
- package/config/skills/team-leader/delegate-task/execute.sh +6 -0
- package/dist/backend/backend/src/constants.d.ts +11 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +11 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/agent-reply.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/agent-reply.controller.js +2 -0
- package/dist/backend/backend/src/controllers/chat/agent-reply.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +14 -1
- 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.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +59 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +40 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.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 +7 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +9 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js +5 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/agent-message-envelope.d.ts +98 -0
- package/dist/backend/backend/src/services/messaging/agent-message-envelope.d.ts.map +1 -0
- package/dist/backend/backend/src/services/messaging/agent-message-envelope.js +115 -0
- package/dist/backend/backend/src/services/messaging/agent-message-envelope.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/owner-hook-message.d.ts +7 -0
- 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 +36 -1
- package/dist/backend/backend/src/services/messaging/owner-hook-message.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +15 -5
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js +22 -0
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/agent-mention-post-guard.d.ts +66 -0
- package/dist/backend/backend/src/services/orc/agent-mention-post-guard.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/agent-mention-post-guard.js +78 -0
- package/dist/backend/backend/src/services/orc/agent-mention-post-guard.js.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-status-router.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/orc-status-router.service.js +5 -2
- package/dist/backend/backend/src/services/orc/orc-status-router.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts +84 -5
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.js +168 -19
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.text.d.ts +42 -2
- package/dist/backend/backend/src/services/orc/owner-completion-report.text.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.text.js +45 -5
- package/dist/backend/backend/src/services/orc/owner-completion-report.text.js.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.d.ts +16 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.js +19 -3
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/orc/reply-destination-resolver.d.ts +33 -4
- package/dist/backend/backend/src/services/orc/reply-destination-resolver.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/reply-destination-resolver.js +97 -12
- 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 +6 -0
- 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 +42 -1
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/orc/team-lead-report.d.ts +120 -0
- package/dist/backend/backend/src/services/orc/team-lead-report.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/team-lead-report.js +198 -0
- package/dist/backend/backend/src/services/orc/team-lead-report.js.map +1 -0
- package/dist/backend/backend/src/services/orc/team-lead-report.wiring.d.ts +53 -0
- package/dist/backend/backend/src/services/orc/team-lead-report.wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/team-lead-report.wiring.js +85 -0
- package/dist/backend/backend/src/services/orc/team-lead-report.wiring.js.map +1 -0
- package/dist/backend/backend/src/services/orc/work-item-destination.d.ts +35 -0
- 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 +38 -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 +6 -0
- 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 +8 -0
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/slack/room-responder.d.ts +7 -3
- package/dist/backend/backend/src/services/slack/room-responder.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/room-responder.js +26 -20
- package/dist/backend/backend/src/services/slack/room-responder.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +17 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +35 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +36 -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 +72 -1
- 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.map +1 -1
- package/dist/backend/backend/src/services/trace/turn-trigger.js +6 -1
- package/dist/backend/backend/src/services/trace/turn-trigger.js.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts +6 -0
- package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +11 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +11 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js +5 -1
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/cli/backend/src/services/messaging/agent-message-envelope.d.ts +98 -0
- package/dist/cli/backend/src/services/messaging/agent-message-envelope.d.ts.map +1 -0
- package/dist/cli/backend/src/services/messaging/agent-message-envelope.js +115 -0
- package/dist/cli/backend/src/services/messaging/agent-message-envelope.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +15 -5
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js +22 -0
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
- package/dist/cli/backend/src/services/orc/owner-completion-report.text.d.ts +42 -2
- package/dist/cli/backend/src/services/orc/owner-completion-report.text.d.ts.map +1 -1
- package/dist/cli/backend/src/services/orc/owner-completion-report.text.js +45 -5
- package/dist/cli/backend/src/services/orc/owner-completion-report.text.js.map +1 -1
- package/dist/cli/backend/src/services/orc/team-lead-report.d.ts +120 -0
- package/dist/cli/backend/src/services/orc/team-lead-report.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/team-lead-report.js +198 -0
- package/dist/cli/backend/src/services/orc/team-lead-report.js.map +1 -0
- package/dist/cli/backend/src/services/orc/team-lead-report.wiring.d.ts +53 -0
- package/dist/cli/backend/src/services/orc/team-lead-report.wiring.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/team-lead-report.wiring.js +85 -0
- package/dist/cli/backend/src/services/orc/team-lead-report.wiring.js.map +1 -0
- package/dist/cli/backend/src/services/orc/work-item-destination.d.ts +35 -0
- 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 +38 -1
- package/dist/cli/backend/src/services/orc/work-item-destination.js.map +1 -1
- package/dist/cli/backend/src/services/slack/room-responder.d.ts +7 -3
- package/dist/cli/backend/src/services/slack/room-responder.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/room-responder.js +26 -20
- package/dist/cli/backend/src/services/slack/room-responder.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +17 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +35 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +36 -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 +72 -1
- 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.map +1 -1
- package/dist/cli/backend/src/services/trace/turn-trigger.js +6 -1
- package/dist/cli/backend/src/services/trace/turn-trigger.js.map +1 -1
- package/dist/cli/backend/src/types/event-bus.types.d.ts +6 -0
- package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/event-bus.types.js.map +1 -1
- package/package.json +1 -1
|
@@ -86,6 +86,23 @@ export function slackChannelNameFor(teamName, prefix = '') {
|
|
|
86
86
|
const joined = p ? `${p}-${body}` : body;
|
|
87
87
|
return joined.slice(0, SLACK_TEAM_CHANNEL_CONSTANTS.MAX_CHANNEL_NAME_LENGTH).replace(/-+$/g, '') || 'team';
|
|
88
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Whether a Slack thread's owner's machine provably received a room message:
|
|
91
|
+
* Cloud's delivery facts name it among the machines it pushed to, and Cloud
|
|
92
|
+
* has not marked that machine as unproven in the room. Without delivery
|
|
93
|
+
* facts (older Cloud builds) nothing is proven: the caller keeps the room's
|
|
94
|
+
* rules, so a message is never left with nobody (crewly#1376).
|
|
95
|
+
*
|
|
96
|
+
* @param room - Cloud's room presence for the message
|
|
97
|
+
* @param owner - The thread owner's roster entry
|
|
98
|
+
* @returns True when the owner's machine has the message
|
|
99
|
+
*/
|
|
100
|
+
export function threadOwnerMachineHasIt(room, owner) {
|
|
101
|
+
const targets = room.delivery?.targets;
|
|
102
|
+
if (!Array.isArray(targets) || targets.length === 0 || !owner.instanceId)
|
|
103
|
+
return false;
|
|
104
|
+
return owner.verified !== false && targets.includes(owner.instanceId);
|
|
105
|
+
}
|
|
89
106
|
/**
|
|
90
107
|
* The machine that owns an un-@'d message in a shared room, from Cloud's
|
|
91
108
|
* presence snapshot alone — every machine computes the same answer from
|
|
@@ -2168,7 +2185,8 @@ export class SlackTeamChannelService {
|
|
|
2168
2185
|
// stale or retired machine never answers. Every machine judges by the
|
|
2169
2186
|
// same snapshot (its own agents included). A card's asker is the
|
|
2170
2187
|
// exception: its machine's decision path takes the reply.
|
|
2171
|
-
const
|
|
2188
|
+
const ownerMember = room?.members.find((m) => localAgentSession(m.agentSession) === localAgentSession(agent.session)) ?? null;
|
|
2189
|
+
const live = !room || !!ownerMember?.awake;
|
|
2172
2190
|
if (live || via === 'card') {
|
|
2173
2191
|
if (agent.local)
|
|
2174
2192
|
return { ...base, pinned: { session: agent.session, answeredBy: agent.session, name: agent.name, reason: 'thread-owner' } };
|
|
@@ -2179,6 +2197,22 @@ export class SlackTeamChannelService {
|
|
|
2179
2197
|
const watch = !(via === 'card' && live);
|
|
2180
2198
|
return { ...base, pinned: { session: null, answeredBy: agent.session, name: agent.name, reason: 'thread-owner', ...(watch ? watchFlags() : {}) } };
|
|
2181
2199
|
}
|
|
2200
|
+
// The thread owner is asleep, but its machine provably has the message
|
|
2201
|
+
// (Cloud pushed it there): that machine wakes it, and no agent of
|
|
2202
|
+
// another machine answers by its own room rules (crewly#1376: the Air's
|
|
2203
|
+
// Rex, not on the team, answered an un-@'d owner message in a thread
|
|
2204
|
+
// Atlas on the Mac owned).
|
|
2205
|
+
if (room && ownerMember && threadOwnerMachineHasIt(room, ownerMember)) {
|
|
2206
|
+
if (agent.local && !isSessionPaused(agent.session)) {
|
|
2207
|
+
return { ...base, pinned: { session: agent.session, answeredBy: agent.session, name: agent.name, reason: 'thread-owner' } };
|
|
2208
|
+
}
|
|
2209
|
+
if (!agent.local) {
|
|
2210
|
+
// Waking takes a minute or two: the watcher here only tells the
|
|
2211
|
+
// owner if nothing came, and never hands the message to our agents.
|
|
2212
|
+
const watch = isWatcher || noteOnlyHere ? { watchHere: true, watchNoteOnly: true } : {};
|
|
2213
|
+
return { ...base, pinned: { session: null, answeredBy: agent.session, name: agent.name, reason: 'thread-owner', ...watch } };
|
|
2214
|
+
}
|
|
2215
|
+
}
|
|
2182
2216
|
return ownsRoom ? base : deferToRoomOwner;
|
|
2183
2217
|
}
|
|
2184
2218
|
catch (err) {
|