crewly 1.20.202 → 1.20.204
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/reply/SKILL.md +1 -0
- package/config/skills/agent/core/reply/execute.sh +7 -1
- package/config/skills/agent/core/reply-channel/SKILL.md +4 -0
- package/config/skills/agent/core/reply-channel/execute.sh +12 -1
- package/dist/backend/backend/src/constants.d.ts +158 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +158 -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 +1 -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 +11 -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 +50 -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 +6 -0
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +30 -2
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/session/session.controller.js +7 -0
- package/dist/backend/backend/src/controllers/session/session.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 +4 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +28 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +141 -35
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +7 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +11 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts +22 -0
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js +39 -3
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/in-process-turn-failure.service.d.ts +140 -0
- package/dist/backend/backend/src/services/agent/in-process-turn-failure.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/in-process-turn-failure.service.js +267 -0
- package/dist/backend/backend/src/services/agent/in-process-turn-failure.service.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +117 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +165 -9
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/room-context-backlog.d.ts +93 -0
- package/dist/backend/backend/src/services/chat-v2/room-context-backlog.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/room-context-backlog.js +138 -0
- package/dist/backend/backend/src/services/chat-v2/room-context-backlog.js.map +1 -0
- package/dist/backend/backend/src/services/decisions/decision-card.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-card.js +5 -1
- package/dist/backend/backend/src/services/decisions/decision-card.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts +43 -1
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.js +110 -7
- package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts +2 -0
- package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.js +1 -0
- package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/drain-queued-delivery.d.ts +59 -0
- package/dist/backend/backend/src/services/messaging/drain-queued-delivery.d.ts.map +1 -0
- package/dist/backend/backend/src/services/messaging/drain-queued-delivery.js +70 -0
- package/dist/backend/backend/src/services/messaging/drain-queued-delivery.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.d.ts +46 -1
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.js +109 -0
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.d.ts +2 -0
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js +6 -0
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +51 -1
- package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js +73 -3
- package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/liveness-monitor.service.d.ts +168 -0
- package/dist/backend/backend/src/services/monitoring/liveness-monitor.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/liveness-monitor.service.js +280 -0
- package/dist/backend/backend/src/services/monitoring/liveness-monitor.service.js.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +21 -0
- package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-items.service.js +72 -3
- package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/orc-chat-owner-mirror.d.ts +153 -0
- package/dist/backend/backend/src/services/orc/orc-chat-owner-mirror.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-chat-owner-mirror.js +276 -0
- package/dist/backend/backend/src/services/orc/orc-chat-owner-mirror.js.map +1 -0
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts +16 -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 +22 -2
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.d.ts +9 -0
- package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.js +11 -0
- package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/room-responder.d.ts +144 -0
- package/dist/backend/backend/src/services/slack/room-responder.d.ts.map +1 -0
- package/dist/backend/backend/src/services/slack/room-responder.js +236 -0
- package/dist/backend/backend/src/services/slack/room-responder.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts +11 -2
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js +22 -1
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js +64 -2
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts +8 -2
- package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.js +7 -4
- package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +148 -2
- 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 +784 -231
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts +27 -0
- package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-thread-context.service.js +52 -0
- package/dist/backend/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts +30 -5
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js +41 -8
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +1 -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 +8 -3
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-channel-hooks.d.ts +13 -1
- package/dist/backend/backend/src/services/v3/ticket-channel-hooks.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js +36 -3
- package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +54 -3
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +117 -9
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
- package/dist/backend/backend/src/types/decision.types.d.ts +7 -0
- package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +158 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +158 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +7 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +11 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts +22 -0
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js +39 -3
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/in-process-turn-failure.service.d.ts +140 -0
- package/dist/cli/backend/src/services/agent/in-process-turn-failure.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/in-process-turn-failure.service.js +267 -0
- package/dist/cli/backend/src/services/agent/in-process-turn-failure.service.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +117 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +165 -9
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/room-context-backlog.d.ts +93 -0
- package/dist/cli/backend/src/services/chat-v2/room-context-backlog.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/room-context-backlog.js +138 -0
- package/dist/cli/backend/src/services/chat-v2/room-context-backlog.js.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision-card.d.ts.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-card.js +5 -1
- package/dist/cli/backend/src/services/decisions/decision-card.js.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts +43 -1
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision.service.js +110 -7
- package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.d.ts +46 -1
- package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.js +109 -0
- package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.js.map +1 -1
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +51 -1
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +73 -3
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-items.service.d.ts +21 -0
- package/dist/cli/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-items.service.js +72 -3
- package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -1
- package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.d.ts +9 -0
- package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.js +11 -0
- package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.js.map +1 -1
- package/dist/cli/backend/src/services/runtime-fallback/reset-time.d.ts +66 -0
- package/dist/cli/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/reset-time.js +211 -0
- package/dist/cli/backend/src/services/runtime-fallback/reset-time.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +113 -0
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.js +257 -0
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -0
- package/dist/cli/backend/src/services/slack/room-responder.d.ts +144 -0
- package/dist/cli/backend/src/services/slack/room-responder.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/room-responder.js +236 -0
- package/dist/cli/backend/src/services/slack/room-responder.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts +11 -2
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js +22 -1
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +148 -2
- 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 +784 -231
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts +27 -0
- package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-thread-context.service.js +52 -0
- package/dist/cli/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts +30 -5
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js +41 -8
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +1 -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 +8 -3
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-channel-hooks.d.ts +13 -1
- package/dist/cli/backend/src/services/v3/ticket-channel-hooks.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js +36 -3
- package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js.map +1 -1
- package/dist/cli/backend/src/types/decision.types.d.ts +7 -0
- package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -25,6 +25,7 @@ import { ticketLineOf } from '../v3/ticket-channel-hooks.js';
|
|
|
25
25
|
import { isSlackDm, OrcReplyRouteService } from '../orc/orc-reply-route.service.js';
|
|
26
26
|
import { getActingFor } from '../people/acting-for.service.js';
|
|
27
27
|
import { formatSlackThreadKey, slackThreadOfMetadata, slackThreadTag, parseSlackThreadKey } from '../slack/slack-thread-key.js';
|
|
28
|
+
import { RoomContextBacklog, renderContextOnlyBlock } from './room-context-backlog.js';
|
|
28
29
|
// ---------------------------------------------------------------------------
|
|
29
30
|
// Prompt formatter
|
|
30
31
|
// ---------------------------------------------------------------------------
|
|
@@ -164,6 +165,11 @@ export function peopleAddressingLine(args, mode) {
|
|
|
164
165
|
return null;
|
|
165
166
|
return `Addressed to: nobody was @'d, and this conversation's recent messages were people talking to ${who}. This message may continue that person-to-person exchange, not a question for you. Reply only if asked. By default, stay silent.`;
|
|
166
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Told to the one agent the harness picked to answer a room message
|
|
170
|
+
* (specs/2026-10-03-one-responder-per-message.md).
|
|
171
|
+
*/
|
|
172
|
+
export const SOLE_RESPONDER_LINE = 'Responder: you are the one agent answering this for the room; the others only see it as context and will not reply. If a colleague should answer instead, @ them in your reply.';
|
|
167
173
|
export function defaultFormatPrompt(args) {
|
|
168
174
|
const { channelId, channelName, senderId, content, clientMessageId, responseMode, threadId, replyVia, channelRoster } = args;
|
|
169
175
|
// Nobody named this agent, so it may be reading someone else's
|
|
@@ -208,7 +214,7 @@ export function defaultFormatPrompt(args) {
|
|
|
208
214
|
: args.wakeRole === 'team-leader'
|
|
209
215
|
? `分派本频道的消息: 消息没有 @ 任何人,而频道里此刻没有一个 agent 醒着,所以叫醒了你(本频道负责人)来决定该谁回答。若该你回答:**先**运行 \`${workingCmd}\`,再用 \`reply-channel\` skill 回复(${cmd})。若该别的成员回答:用 reply-channel 发一句简短的话 @他(例如「@名字 这个你来」),他会被叫醒并接手;你自己不要替他回答。若与谁都无关,什么都不做。`
|
|
210
216
|
: mode === 'optional'
|
|
211
|
-
? `回复本频道: 这条消息没有 @
|
|
217
|
+
? `回复本频道: 这条消息没有 @ 你,转给你是让你自己判断要不要回${args.soleResponder ? '' : '(频道里醒着的 agent 都会收到,各自判断)'}。若你是本频道的负责人(team leader),关于团队本身的问题(谁负责、有哪些成员、在做什么)由你来答,依据下面的成员名单和你的团队上下文,不要说"没有记录"。若与你的工作相关、你有对应的上下文或知识而决定回复:**先**运行 \`${workingCmd}\`,让对方看到你接手了,再用 \`reply-channel\` skill 回复(${cmd})。若是频道里的人之间在交流、或与你无关,什么都不要做——不要回复,不要发 --working,也不要为此展开调查。${args.roomPresence ? wakeColleague : ''}`
|
|
212
218
|
: `回复本频道: 用 \`reply-channel\` skill(${cmd})——命令原样运行${identity ? ',开头的 CREWLY_SESSION_NAME=… 不要删,它告诉系统是你在回复' : ''};reply-channel 报错时把命令原样再跑一次,或改用上面的 \`reply\`;不要换别的回复方式(别的方式发不到这个 thread,对方看不到)。回复会以你的名字发到 Slack 同一个 thread;之后这个 thread 里的追问会直接转给你,不需要再被 @。需要同事(本机或其他机器上的 agent)接手时,在回复里写 @名字 即可,会转成真正的 Slack 提及并送达对方。多个 agent 讨论时必须收敛:每人在同一个 thread 里最多发言两轮;team leader(没有则第一个发言的人)负责在两轮后汇总结论并明确写「结论」;结论发出后其他人不再回复,除非有明确反对并说明理由。不要为了礼貌互相致谢或复述对方观点。`;
|
|
213
219
|
}
|
|
214
220
|
else if (args.slackDmChannelId && mode === 'required') {
|
|
@@ -252,11 +258,13 @@ export function defaultFormatPrompt(args) {
|
|
|
252
258
|
...(threadParts ? [slackThreadTag(threadParts.slackChannelId, threadParts.threadTs)] : []),
|
|
253
259
|
...(args.ticketLine ? [args.ticketLine] : []),
|
|
254
260
|
``,
|
|
261
|
+
...(args.contextOnlyBlock ? [args.contextOnlyBlock, ``] : []),
|
|
255
262
|
...(contextBlock ? [contextBlock, ``] : []),
|
|
256
263
|
trimmed,
|
|
257
264
|
``,
|
|
258
265
|
`---`,
|
|
259
266
|
replyHint + actionGuard,
|
|
267
|
+
...(args.soleResponder ? [SOLE_RESPONDER_LINE] : []),
|
|
260
268
|
...(addressedTo ? [addressedTo] : []),
|
|
261
269
|
...(channelRoster ? [`本频道成员(可 @ 的同事): ${channelRoster}`] : []),
|
|
262
270
|
...(args.roomPresence ? [`此刻谁醒着: ${args.roomPresence}`] : []),
|
|
@@ -282,6 +290,8 @@ export class ChatV2DispatcherService {
|
|
|
282
290
|
recentTurnsFor;
|
|
283
291
|
onDispatched;
|
|
284
292
|
refuseDelivery;
|
|
293
|
+
/** Room messages queued as context only, shown on each agent's next prompt from the room */
|
|
294
|
+
contextBacklog;
|
|
285
295
|
logger;
|
|
286
296
|
constructor(options) {
|
|
287
297
|
this.agentSink = options.agentSink;
|
|
@@ -295,6 +305,7 @@ export class ChatV2DispatcherService {
|
|
|
295
305
|
this.recentTurnsFor = options.recentTurnsFor;
|
|
296
306
|
this.onDispatched = options.onDispatched;
|
|
297
307
|
this.refuseDelivery = options.refuseDelivery;
|
|
308
|
+
this.contextBacklog = options.contextBacklog ?? new RoomContextBacklog();
|
|
298
309
|
this.logger = LoggerService.getInstance().createComponentLogger('ChatV2Dispatcher');
|
|
299
310
|
}
|
|
300
311
|
/**
|
|
@@ -491,13 +502,51 @@ export class ChatV2DispatcherService {
|
|
|
491
502
|
reason: 'huddle has no members',
|
|
492
503
|
};
|
|
493
504
|
}
|
|
494
|
-
const { targets, mentioned, wakeRoles } = await this.computeHuddleTargets(channel, message, options, members);
|
|
505
|
+
const { targets, mentioned, wakeRoles, contextOnly, responderName } = await this.computeHuddleTargets(channel, message, options, members);
|
|
495
506
|
// Dedicated agents never get another person's message (issue #968).
|
|
496
507
|
for (const sessionName of [...targets.keys()]) {
|
|
497
508
|
if (await this.isRefused(sessionName, message))
|
|
498
509
|
targets.delete(sessionName);
|
|
499
510
|
}
|
|
500
|
-
|
|
511
|
+
const listeners = [];
|
|
512
|
+
for (const sessionName of contextOnly) {
|
|
513
|
+
if (!(await this.isRefused(sessionName, message)))
|
|
514
|
+
listeners.push(sessionName);
|
|
515
|
+
}
|
|
516
|
+
this.queueContextOnly(channel, message, options, listeners, responderName);
|
|
517
|
+
const result = await this.deliverToHuddleTargets(channel, message, options, members, targets, mentioned, wakeRoles);
|
|
518
|
+
return options.oneResponder ? { ...result, contextOnly: listeners } : result;
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Queue a room message as context only for the members that are not
|
|
522
|
+
* answering it — no turn, no wake-up. Each sees it at the top of its next
|
|
523
|
+
* prompt from this room (specs/2026-10-03-one-responder-per-message.md).
|
|
524
|
+
*
|
|
525
|
+
* @param channel - The room
|
|
526
|
+
* @param message - The message
|
|
527
|
+
* @param options - Dispatch options (thread id)
|
|
528
|
+
* @param sessions - Members that only listen
|
|
529
|
+
* @param responderName - Who answers it, when anyone does
|
|
530
|
+
*/
|
|
531
|
+
queueContextOnly(channel, message, options, sessions, responderName) {
|
|
532
|
+
if (sessions.length === 0)
|
|
533
|
+
return;
|
|
534
|
+
const threadId = options.threadId && options.threadId !== message.id ? options.threadId : message.threadId;
|
|
535
|
+
for (const session of sessions) {
|
|
536
|
+
this.contextBacklog.add(session, channel.id, {
|
|
537
|
+
messageId: message.id,
|
|
538
|
+
sender: message.senderId,
|
|
539
|
+
content: message.content,
|
|
540
|
+
...(threadId ? { threadId } : {}),
|
|
541
|
+
...(responderName ? { responderName } : {}),
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
this.logger.info('Room message queued as context only for the listening members', {
|
|
545
|
+
channelId: channel.id,
|
|
546
|
+
messageId: message.id,
|
|
547
|
+
listeners: sessions,
|
|
548
|
+
responder: responderName ?? null,
|
|
549
|
+
});
|
|
501
550
|
}
|
|
502
551
|
/**
|
|
503
552
|
* Who a huddle message will be delivered to, and which of them owe a reply —
|
|
@@ -564,7 +613,10 @@ export class ChatV2DispatcherService {
|
|
|
564
613
|
const targets = new Map();
|
|
565
614
|
for (const m of mentioned)
|
|
566
615
|
targets.set(m, 'required');
|
|
567
|
-
return { targets, mentioned, wakeRoles: new Map() };
|
|
616
|
+
return { targets, mentioned, wakeRoles: new Map(), contextOnly: [] };
|
|
617
|
+
}
|
|
618
|
+
if (options.oneResponder) {
|
|
619
|
+
return this.computeOneResponder(channel, message, options, options.oneResponder, memberSet, mentioned);
|
|
568
620
|
}
|
|
569
621
|
const engaged = options.threadId && this.threadParticipantsFor
|
|
570
622
|
? this.threadParticipantsFor(channel.id, options.threadId).filter((m) => memberSet.has(m))
|
|
@@ -613,7 +665,104 @@ export class ChatV2DispatcherService {
|
|
|
613
665
|
targets.set(leader, 'optional');
|
|
614
666
|
}
|
|
615
667
|
}
|
|
616
|
-
return { targets, mentioned, wakeRoles };
|
|
668
|
+
return { targets, mentioned, wakeRoles, contextOnly: [] };
|
|
669
|
+
}
|
|
670
|
+
/**
|
|
671
|
+
* Exactly one responder (specs/2026-10-03-one-responder-per-message.md §1):
|
|
672
|
+
* b. @-mentioned members (an explicit @ always wins) → required;
|
|
673
|
+
* a/c. the caller's pinned responder — the decision's asker, or the
|
|
674
|
+
* Slack thread's owner (null: nobody here) → required;
|
|
675
|
+
* c'. no pin, a thread reply: the agent that spoke last in it here;
|
|
676
|
+
* d. otherwise the room rules, narrowed to one: the leader when awake,
|
|
677
|
+
* else the awake agent that spoke last in the room, else the first
|
|
678
|
+
* awake one — optional, as the leader always was. Nobody awake: the
|
|
679
|
+
* existing wake-up rules.
|
|
680
|
+
* Every other member listens: context only.
|
|
681
|
+
*
|
|
682
|
+
* @param channel - The huddle
|
|
683
|
+
* @param message - The message
|
|
684
|
+
* @param options - Dispatch options
|
|
685
|
+
* @param one - The one-responder options
|
|
686
|
+
* @param memberSet - Members that may hear it (author excluded)
|
|
687
|
+
* @param mentioned - Members @'d
|
|
688
|
+
* @returns Targets, context-only members and the responder's name
|
|
689
|
+
*/
|
|
690
|
+
async computeOneResponder(channel, message, options, one, memberSet, mentioned) {
|
|
691
|
+
const targets = new Map();
|
|
692
|
+
const wakeRoles = new Map();
|
|
693
|
+
const pinned = one.pinned;
|
|
694
|
+
const isThreadReply = !!options.threadId && options.threadId !== message.id;
|
|
695
|
+
if (mentioned.length > 0) {
|
|
696
|
+
for (const m of mentioned)
|
|
697
|
+
targets.set(m, 'required');
|
|
698
|
+
}
|
|
699
|
+
else if (pinned) {
|
|
700
|
+
if (pinned.session && pinned.reason !== 'decision-consumed' && memberSet.has(pinned.session)) {
|
|
701
|
+
targets.set(pinned.session, 'required');
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
else {
|
|
705
|
+
const lastSpeaker = isThreadReply && this.lastThreadSpeakerFor ? this.lastThreadSpeakerFor(channel.id, options.threadId) : null;
|
|
706
|
+
if (lastSpeaker && memberSet.has(lastSpeaker)) {
|
|
707
|
+
targets.set(lastSpeaker, 'required');
|
|
708
|
+
}
|
|
709
|
+
else {
|
|
710
|
+
const room = options.room;
|
|
711
|
+
const awakeHere = room ? room.awakeHere.filter((m) => memberSet.has(m)) : [];
|
|
712
|
+
if (room && awakeHere.length > 0) {
|
|
713
|
+
targets.set(await this.pickOneAwake(channel.id, awakeHere), 'optional');
|
|
714
|
+
}
|
|
715
|
+
else if (room && room.awakeElsewhere) {
|
|
716
|
+
// Colleagues on another machine are awake and have it.
|
|
717
|
+
}
|
|
718
|
+
else if (room && room.wakeWhenAllAsleep) {
|
|
719
|
+
targets.set(room.wakeWhenAllAsleep.agentSession, 'optional');
|
|
720
|
+
wakeRoles.set(room.wakeWhenAllAsleep.agentSession, room.wakeWhenAllAsleep.kind);
|
|
721
|
+
}
|
|
722
|
+
else if ((!room || room.wakeWhenAllAsleep === undefined) && this.huddleLeaderFor) {
|
|
723
|
+
const leader = await this.huddleLeaderFor(channel.id).catch(() => null);
|
|
724
|
+
if (leader && memberSet.has(leader))
|
|
725
|
+
targets.set(leader, 'optional');
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
const holder = pinned?.alreadyHas;
|
|
730
|
+
const contextOnly = [...memberSet].filter((m) => !targets.has(m) && m !== holder);
|
|
731
|
+
const first = [...targets.keys()][0];
|
|
732
|
+
const responderName = pinned && mentioned.length === 0
|
|
733
|
+
? pinned.name ?? (pinned.session ? one.nameFor?.(pinned.session) ?? pinned.session : undefined)
|
|
734
|
+
: first
|
|
735
|
+
? [...targets.keys()].map((s) => one.nameFor?.(s) ?? s).join(', ')
|
|
736
|
+
: undefined;
|
|
737
|
+
return { targets, mentioned, wakeRoles, contextOnly, ...(responderName ? { responderName } : {}) };
|
|
738
|
+
}
|
|
739
|
+
/**
|
|
740
|
+
* Of several awake members, the one that answers an un-@'d message: the
|
|
741
|
+
* room's leader, else whoever of them spoke last in the room, else the
|
|
742
|
+
* first by session name (a stable choice).
|
|
743
|
+
*
|
|
744
|
+
* @param channelId - The room
|
|
745
|
+
* @param awake - Awake members (non-empty)
|
|
746
|
+
* @returns One of them
|
|
747
|
+
*/
|
|
748
|
+
async pickOneAwake(channelId, awake) {
|
|
749
|
+
if (awake.length === 1)
|
|
750
|
+
return awake[0];
|
|
751
|
+
const leader = this.huddleLeaderFor ? await this.huddleLeaderFor(channelId).catch(() => null) : null;
|
|
752
|
+
if (leader && awake.includes(leader))
|
|
753
|
+
return leader;
|
|
754
|
+
let turns = [];
|
|
755
|
+
try {
|
|
756
|
+
turns = this.recentTurnsFor?.(channelId, undefined) ?? [];
|
|
757
|
+
}
|
|
758
|
+
catch {
|
|
759
|
+
turns = [];
|
|
760
|
+
}
|
|
761
|
+
for (let i = turns.length - 1; i >= 0; i--) {
|
|
762
|
+
if (awake.includes(turns[i].senderId))
|
|
763
|
+
return turns[i].senderId;
|
|
764
|
+
}
|
|
765
|
+
return [...awake].sort()[0];
|
|
617
766
|
}
|
|
618
767
|
/**
|
|
619
768
|
* Deliver a huddle message to the targets {@link computeHuddleTargets} chose.
|
|
@@ -639,7 +788,7 @@ export class ChatV2DispatcherService {
|
|
|
639
788
|
const outcomes = [];
|
|
640
789
|
let anyDispatched = false;
|
|
641
790
|
const namedExplicitly = new Set(mentioned);
|
|
642
|
-
const promptFor = (sessionName, responseMode) => this.formatPrompt({
|
|
791
|
+
const promptFor = (sessionName, responseMode, contextOnlyBlock) => this.formatPrompt({
|
|
643
792
|
channelId: channel.id,
|
|
644
793
|
channelName: channel.name,
|
|
645
794
|
addressedDirectly: namedExplicitly.has(sessionName),
|
|
@@ -660,15 +809,22 @@ export class ChatV2DispatcherService {
|
|
|
660
809
|
slackContext: slackContextOf(options, sessionName),
|
|
661
810
|
ticketLine: ticketLineOf(message),
|
|
662
811
|
...(options.peopleAddressing ? { peopleAddressing: options.peopleAddressing } : {}),
|
|
812
|
+
...(options.oneResponder ? { soleResponder: true } : {}),
|
|
813
|
+
...(contextOnlyBlock ? { contextOnlyBlock } : {}),
|
|
663
814
|
});
|
|
664
815
|
/** One delivery attempt; false when the sink refused (typically: no session). */
|
|
665
816
|
const attempt = async (sessionName, responseMode) => {
|
|
817
|
+
// What this agent only listened to in the room since its last prompt here.
|
|
818
|
+
const heard = this.contextBacklog.take(sessionName, channel.id, message.id);
|
|
666
819
|
try {
|
|
667
820
|
this.noteActingFor(sessionName, message);
|
|
668
|
-
const result = await this.agentSink.sendMessageToAgent(sessionName, promptFor(sessionName, responseMode));
|
|
669
|
-
|
|
821
|
+
const result = await this.agentSink.sendMessageToAgent(sessionName, promptFor(sessionName, responseMode, renderContextOnlyBlock(heard)));
|
|
822
|
+
if (!result.success)
|
|
823
|
+
this.contextBacklog.restore(sessionName, channel.id, heard);
|
|
824
|
+
return result.success ? { ok: true, ...(result.queued ? { queued: true } : {}) } : { ok: false, error: result.error ?? 'unknown sink failure' };
|
|
670
825
|
}
|
|
671
826
|
catch (err) {
|
|
827
|
+
this.contextBacklog.restore(sessionName, channel.id, heard);
|
|
672
828
|
const errMsg = err instanceof Error ? err.message : String(err);
|
|
673
829
|
this.logger.error('chat-v2 huddle dispatch threw', { channelId: channel.id, sessionName, err: errMsg });
|
|
674
830
|
return { ok: false, error: errMsg };
|
|
@@ -698,7 +854,7 @@ export class ChatV2DispatcherService {
|
|
|
698
854
|
}
|
|
699
855
|
if (result.ok) {
|
|
700
856
|
const silent = isSilentByDefault(options.peopleAddressing, responseMode, namedExplicitly.has(sessionName));
|
|
701
|
-
outcomes.push({ sessionName, responseMode, dispatched: true, ...(silent ? { silentByDefault: true } : {}) });
|
|
857
|
+
outcomes.push({ sessionName, responseMode, dispatched: true, ...(silent ? { silentByDefault: true } : {}), ...(result.queued ? { queued: true } : {}) });
|
|
702
858
|
anyDispatched = true;
|
|
703
859
|
this.noteOriginThread(sessionName, channel.id, options.threadId ?? message.threadId ?? message.id);
|
|
704
860
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-v2.dispatcher.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/chat-v2/chat-v2.dispatcher.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat-v2.dispatcher.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/chat-v2/chat-v2.dispatcher.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Room context backlog.
|
|
3
|
+
*
|
|
4
|
+
* Room messages an agent should know about but not answer
|
|
5
|
+
* (specs/2026-10-03-one-responder-per-message.md "Everyone else: context
|
|
6
|
+
* only"). Instead of a turn of their own — which would wake a sleeping agent
|
|
7
|
+
* or spend a full prompt on "do nothing" — they wait here and are put at the
|
|
8
|
+
* top of the agent's next prompt from the same room.
|
|
9
|
+
*
|
|
10
|
+
* In memory and bounded: a restart loses it, which is acceptable because the
|
|
11
|
+
* Slack thread context still shows the thread when the agent is next
|
|
12
|
+
* addressed there.
|
|
13
|
+
*
|
|
14
|
+
* @module services/chat-v2/room-context-backlog
|
|
15
|
+
*/
|
|
16
|
+
/** One queued room message. */
|
|
17
|
+
export interface RoomContextEntry {
|
|
18
|
+
/** The chat message id (deduplicates a hand-off re-route) */
|
|
19
|
+
messageId: string;
|
|
20
|
+
/** Who wrote it, as the prompt names them */
|
|
21
|
+
sender: string;
|
|
22
|
+
/** The message text */
|
|
23
|
+
content: string;
|
|
24
|
+
/** Thread root id it belongs to, when it is a thread reply */
|
|
25
|
+
threadId?: string;
|
|
26
|
+
/** Who is answering it, when anyone is (display name) */
|
|
27
|
+
responderName?: string;
|
|
28
|
+
/** Epoch ms when it was queued */
|
|
29
|
+
at: number;
|
|
30
|
+
}
|
|
31
|
+
/** Constructor options. */
|
|
32
|
+
export interface RoomContextBacklogOptions {
|
|
33
|
+
/** Clock override for tests */
|
|
34
|
+
now?: () => number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The line the prompt shows for one entry.
|
|
38
|
+
*
|
|
39
|
+
* @param entry - The queued message
|
|
40
|
+
* @returns One English line
|
|
41
|
+
*/
|
|
42
|
+
export declare function contextOnlyLine(entry: Pick<RoomContextEntry, 'sender' | 'content' | 'threadId' | 'responderName'>): string;
|
|
43
|
+
/**
|
|
44
|
+
* Render queued entries as the block that goes at the top of a prompt.
|
|
45
|
+
*
|
|
46
|
+
* @param entries - Entries, oldest first
|
|
47
|
+
* @returns The block, or '' when there are none
|
|
48
|
+
*/
|
|
49
|
+
export declare function renderContextOnlyBlock(entries: readonly RoomContextEntry[]): string;
|
|
50
|
+
/**
|
|
51
|
+
* Per (agent, room) queue of context-only messages.
|
|
52
|
+
*/
|
|
53
|
+
export declare class RoomContextBacklog {
|
|
54
|
+
private readonly queues;
|
|
55
|
+
private readonly now;
|
|
56
|
+
constructor(options?: RoomContextBacklogOptions);
|
|
57
|
+
private static key;
|
|
58
|
+
/**
|
|
59
|
+
* Queue a message for an agent, to be shown on its next prompt from this room.
|
|
60
|
+
*
|
|
61
|
+
* @param agentSession - The agent
|
|
62
|
+
* @param channelId - The room (chat-v2 channel id)
|
|
63
|
+
* @param entry - The message (its `at` is set here)
|
|
64
|
+
*/
|
|
65
|
+
add(agentSession: string, channelId: string, entry: Omit<RoomContextEntry, 'at'>): void;
|
|
66
|
+
/**
|
|
67
|
+
* Take (and clear) what an agent has queued for a room.
|
|
68
|
+
*
|
|
69
|
+
* @param agentSession - The agent
|
|
70
|
+
* @param channelId - The room
|
|
71
|
+
* @param excludeMessageId - The message being delivered now (never shown as its own context)
|
|
72
|
+
* @returns Entries, oldest first
|
|
73
|
+
*/
|
|
74
|
+
take(agentSession: string, channelId: string, excludeMessageId?: string): RoomContextEntry[];
|
|
75
|
+
/**
|
|
76
|
+
* Put entries back after a delivery failed, ahead of anything queued since.
|
|
77
|
+
*
|
|
78
|
+
* @param agentSession - The agent
|
|
79
|
+
* @param channelId - The room
|
|
80
|
+
* @param entries - What {@link take} returned
|
|
81
|
+
*/
|
|
82
|
+
restore(agentSession: string, channelId: string, entries: readonly RoomContextEntry[]): void;
|
|
83
|
+
/**
|
|
84
|
+
* What an agent has queued for a room, without taking it (tests, diagnostics).
|
|
85
|
+
*
|
|
86
|
+
* @param agentSession - The agent
|
|
87
|
+
* @param channelId - The room
|
|
88
|
+
* @returns Entries, oldest first
|
|
89
|
+
*/
|
|
90
|
+
peek(agentSession: string, channelId: string): RoomContextEntry[];
|
|
91
|
+
private fresh;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=room-context-backlog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"room-context-backlog.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/chat-v2/room-context-backlog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,+BAA+B;AAC/B,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,2BAA2B;AAC3B,MAAM,WAAW,yBAAyB;IACxC,+BAA+B;IAC/B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAcD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,CAAC,GAAG,MAAM,CAM1H;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM,CAOnF;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,OAAO,GAAE,yBAA8B;IAInD,OAAO,CAAC,MAAM,CAAC,GAAG;IAIlB;;;;;;OAMG;IACH,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,IAAI;IAevF;;;;;;;OAOG;IACH,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAQ5F;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,gBAAgB,EAAE,GAAG,IAAI;IAQ5F;;;;;;OAMG;IACH,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAIjE,OAAO,CAAC,KAAK;CAId"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Room context backlog.
|
|
3
|
+
*
|
|
4
|
+
* Room messages an agent should know about but not answer
|
|
5
|
+
* (specs/2026-10-03-one-responder-per-message.md "Everyone else: context
|
|
6
|
+
* only"). Instead of a turn of their own — which would wake a sleeping agent
|
|
7
|
+
* or spend a full prompt on "do nothing" — they wait here and are put at the
|
|
8
|
+
* top of the agent's next prompt from the same room.
|
|
9
|
+
*
|
|
10
|
+
* In memory and bounded: a restart loses it, which is acceptable because the
|
|
11
|
+
* Slack thread context still shows the thread when the agent is next
|
|
12
|
+
* addressed there.
|
|
13
|
+
*
|
|
14
|
+
* @module services/chat-v2/room-context-backlog
|
|
15
|
+
*/
|
|
16
|
+
import { ROOM_CONTEXT_CONSTANTS } from '../../constants.js';
|
|
17
|
+
/**
|
|
18
|
+
* Collapse whitespace and clip.
|
|
19
|
+
*
|
|
20
|
+
* @param text - Text
|
|
21
|
+
* @param max - Most characters
|
|
22
|
+
* @returns The clipped text
|
|
23
|
+
*/
|
|
24
|
+
function clip(text, max) {
|
|
25
|
+
const flat = text.replace(/\s+/g, ' ').trim();
|
|
26
|
+
return flat.length > max ? `${flat.slice(0, max)}…` : flat;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The line the prompt shows for one entry.
|
|
30
|
+
*
|
|
31
|
+
* @param entry - The queued message
|
|
32
|
+
* @returns One English line
|
|
33
|
+
*/
|
|
34
|
+
export function contextOnlyLine(entry) {
|
|
35
|
+
const where = entry.threadId ? ` (thread ${entry.threadId})` : '';
|
|
36
|
+
const who = entry.responderName
|
|
37
|
+
? ` — ${entry.responderName} is answering this; do not reply unless you are asked.`
|
|
38
|
+
: ' — not addressed to you; do not reply unless you are asked.';
|
|
39
|
+
return ` - ${entry.sender}${where}: ${clip(entry.content, ROOM_CONTEXT_CONSTANTS.PER_ENTRY_CHARS)}${who}`;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Render queued entries as the block that goes at the top of a prompt.
|
|
43
|
+
*
|
|
44
|
+
* @param entries - Entries, oldest first
|
|
45
|
+
* @returns The block, or '' when there are none
|
|
46
|
+
*/
|
|
47
|
+
export function renderContextOnlyBlock(entries) {
|
|
48
|
+
if (entries.length === 0)
|
|
49
|
+
return '';
|
|
50
|
+
return [
|
|
51
|
+
'[Context only — not for you to answer] Messages in this room since your last turn:',
|
|
52
|
+
...entries.map((e) => contextOnlyLine(e)),
|
|
53
|
+
'[end of context-only messages]',
|
|
54
|
+
].join('\n');
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Per (agent, room) queue of context-only messages.
|
|
58
|
+
*/
|
|
59
|
+
export class RoomContextBacklog {
|
|
60
|
+
queues = new Map();
|
|
61
|
+
now;
|
|
62
|
+
constructor(options = {}) {
|
|
63
|
+
this.now = options.now ?? (() => Date.now());
|
|
64
|
+
}
|
|
65
|
+
static key(agentSession, channelId) {
|
|
66
|
+
return `${agentSession}\u0000${channelId}`;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Queue a message for an agent, to be shown on its next prompt from this room.
|
|
70
|
+
*
|
|
71
|
+
* @param agentSession - The agent
|
|
72
|
+
* @param channelId - The room (chat-v2 channel id)
|
|
73
|
+
* @param entry - The message (its `at` is set here)
|
|
74
|
+
*/
|
|
75
|
+
add(agentSession, channelId, entry) {
|
|
76
|
+
const key = RoomContextBacklog.key(agentSession, channelId);
|
|
77
|
+
const list = this.fresh(this.queues.get(key) ?? []);
|
|
78
|
+
if (list.some((e) => e.messageId === entry.messageId))
|
|
79
|
+
return;
|
|
80
|
+
list.push({ ...entry, at: this.now() });
|
|
81
|
+
while (list.length > ROOM_CONTEXT_CONSTANTS.MAX_ENTRIES)
|
|
82
|
+
list.shift();
|
|
83
|
+
this.queues.delete(key);
|
|
84
|
+
this.queues.set(key, list);
|
|
85
|
+
while (this.queues.size > ROOM_CONTEXT_CONSTANTS.MAX_QUEUES) {
|
|
86
|
+
const oldest = this.queues.keys().next().value;
|
|
87
|
+
if (oldest === undefined)
|
|
88
|
+
break;
|
|
89
|
+
this.queues.delete(oldest);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Take (and clear) what an agent has queued for a room.
|
|
94
|
+
*
|
|
95
|
+
* @param agentSession - The agent
|
|
96
|
+
* @param channelId - The room
|
|
97
|
+
* @param excludeMessageId - The message being delivered now (never shown as its own context)
|
|
98
|
+
* @returns Entries, oldest first
|
|
99
|
+
*/
|
|
100
|
+
take(agentSession, channelId, excludeMessageId) {
|
|
101
|
+
const key = RoomContextBacklog.key(agentSession, channelId);
|
|
102
|
+
const list = this.queues.get(key);
|
|
103
|
+
if (!list)
|
|
104
|
+
return [];
|
|
105
|
+
this.queues.delete(key);
|
|
106
|
+
return this.fresh(list).filter((e) => e.messageId !== excludeMessageId);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Put entries back after a delivery failed, ahead of anything queued since.
|
|
110
|
+
*
|
|
111
|
+
* @param agentSession - The agent
|
|
112
|
+
* @param channelId - The room
|
|
113
|
+
* @param entries - What {@link take} returned
|
|
114
|
+
*/
|
|
115
|
+
restore(agentSession, channelId, entries) {
|
|
116
|
+
if (entries.length === 0)
|
|
117
|
+
return;
|
|
118
|
+
const key = RoomContextBacklog.key(agentSession, channelId);
|
|
119
|
+
const later = this.queues.get(key) ?? [];
|
|
120
|
+
const merged = [...entries, ...later.filter((e) => !entries.some((x) => x.messageId === e.messageId))];
|
|
121
|
+
this.queues.set(key, merged.slice(-ROOM_CONTEXT_CONSTANTS.MAX_ENTRIES));
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* What an agent has queued for a room, without taking it (tests, diagnostics).
|
|
125
|
+
*
|
|
126
|
+
* @param agentSession - The agent
|
|
127
|
+
* @param channelId - The room
|
|
128
|
+
* @returns Entries, oldest first
|
|
129
|
+
*/
|
|
130
|
+
peek(agentSession, channelId) {
|
|
131
|
+
return this.fresh(this.queues.get(RoomContextBacklog.key(agentSession, channelId)) ?? []);
|
|
132
|
+
}
|
|
133
|
+
fresh(list) {
|
|
134
|
+
const cutoff = this.now() - ROOM_CONTEXT_CONSTANTS.TTL_MS;
|
|
135
|
+
return list.filter((e) => e.at >= cutoff);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=room-context-backlog.js.map
|