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
|
@@ -1174,6 +1174,13 @@ export const SLACK_AGENT_DM_CONSTANTS = {
|
|
|
1174
1174
|
* sentence about it stay together).
|
|
1175
1175
|
*/
|
|
1176
1176
|
ATTACH_FOLLOWS_REPLY_MS: 2 * 60 * 1000,
|
|
1177
|
+
/**
|
|
1178
|
+
* An unanswered DM thread older than this no longer attracts an answer
|
|
1179
|
+
* that names no thread: an orc answer to a new question landed under an
|
|
1180
|
+
* 18-hour-old one (steamfun-ops 2026-10-01, crewly#1015 §8). The answer
|
|
1181
|
+
* goes where the agent's current turn came from instead.
|
|
1182
|
+
*/
|
|
1183
|
+
OPEN_THREAD_MAX_AGE_MS: 60 * 60 * 1000,
|
|
1177
1184
|
};
|
|
1178
1185
|
/**
|
|
1179
1186
|
* Stable per-thread keys for Slack conversations (2026-09-28).
|
|
@@ -1571,6 +1578,25 @@ export const SLACK_TEAM_CHANNEL_CONSTANTS = {
|
|
|
1571
1578
|
ROOM_UNANSWERED_FALLBACK_MS: 90 * 1000,
|
|
1572
1579
|
/** The in-thread line when nobody could take an owner's room message. */
|
|
1573
1580
|
ROOM_UNANSWERED_NOTE: 'No agent picked up this message (nobody in the room was awake to take it). Please @ an agent and send it again.',
|
|
1581
|
+
/**
|
|
1582
|
+
* How long routing an owner's recorded room message may take to REACH
|
|
1583
|
+
* dispatch before the route guard rescues it with the unanswered-message
|
|
1584
|
+
* fallback. Dispatch itself (sequential cold starts) is never timed.
|
|
1585
|
+
* crewly#1015 §7.
|
|
1586
|
+
*/
|
|
1587
|
+
ROUTE_STALL_MS: 4 * 60 * 1000,
|
|
1588
|
+
/** Env override for ROUTE_STALL_MS (ms; tests) */
|
|
1589
|
+
ROUTE_STALL_ENV: 'CREWLY_ROOM_ROUTE_STALL_MS',
|
|
1590
|
+
/**
|
|
1591
|
+
* Each step before dispatch (room presence, dispatch plan, seen reaction,
|
|
1592
|
+
* placeholders, roster, ticket intake, thread context) may take this long;
|
|
1593
|
+
* then routing goes on without it.
|
|
1594
|
+
*/
|
|
1595
|
+
ROUTE_STEP_TIMEOUT_MS: 30 * 1000,
|
|
1596
|
+
/** Env override for ROUTE_STEP_TIMEOUT_MS (ms; tests) */
|
|
1597
|
+
ROUTE_STEP_TIMEOUT_ENV: 'CREWLY_ROOM_ROUTE_STEP_TIMEOUT_MS',
|
|
1598
|
+
/** The in-thread line when routing an owner's room message got stuck and no agent here could take it. */
|
|
1599
|
+
ROOM_ROUTE_STALLED_NOTE: "Crewly couldn't get this message to an agent (routing it got stuck). Please @ an agent and send it again.",
|
|
1574
1600
|
/** How many recent huddle turns to scan for the room's last local speaker. */
|
|
1575
1601
|
ROOM_LAST_SPEAKER_SCAN: 50,
|
|
1576
1602
|
/** Fallback icon when a member has no avatar */
|
|
@@ -1704,6 +1730,13 @@ export const ORC_STATUS_FORWARDING = {
|
|
|
1704
1730
|
* swallows it (2026-09-30, #steamfun运维组: Avery's whole answer to the
|
|
1705
1731
|
* owner went to the orc and never reached Slack).
|
|
1706
1732
|
*/
|
|
1733
|
+
/**
|
|
1734
|
+
* Any status-shaped opening — `[WAITING]`, `[PENDING]`, `[IN-PROGRESS]`,
|
|
1735
|
+
* an all-caps tag in brackets — from the orchestrator posting as an agent
|
|
1736
|
+
* is its own status report, not an answer to a person (crewly#1015
|
|
1737
|
+
* review: report-status takes free-form `--status`).
|
|
1738
|
+
*/
|
|
1739
|
+
STATUS_SHAPED: /^\s*(?:-{3,}(?:\s|\\n)*)?\[[A-Z][A-Z0-9 _-]{2,}\]/,
|
|
1707
1740
|
STATUS_MARKERS:
|
|
1708
1741
|
// A structured body (report-status --structured, complete-task) opens with a
|
|
1709
1742
|
// `---` rule — followed by a real newline, or a literal `\n` from an older skill.
|
|
@@ -1755,6 +1788,66 @@ export const ORC_WAKE_CONSTANTS = {
|
|
|
1755
1788
|
* Every owner message delivered to an agent here ends in an answer or in one
|
|
1756
1789
|
* plain-words note saying who it is waiting on and why.
|
|
1757
1790
|
*/
|
|
1791
|
+
/**
|
|
1792
|
+
* Failed turns of the in-process Crewly Agent runtime (crewly#1015 §2,
|
|
1793
|
+
* specs/2026-10-03-harness-drop-gaps.md §2): one retry, then the owner /
|
|
1794
|
+
* orchestrator is told.
|
|
1795
|
+
*/
|
|
1796
|
+
export const IN_PROCESS_TURN_FAILURE_CONSTANTS = {
|
|
1797
|
+
/** Wait before the one re-delivery of a message whose turn failed */
|
|
1798
|
+
RETRY_DELAY_MS: 60 * 1000,
|
|
1799
|
+
/** Re-deliveries of one message before it is reported */
|
|
1800
|
+
MAX_RETRIES: 1,
|
|
1801
|
+
/** How long a message's attempt count is remembered */
|
|
1802
|
+
ATTEMPT_TTL_MS: 2 * 60 * 60 * 1000,
|
|
1803
|
+
/** Characters of the failed message quoted in a report */
|
|
1804
|
+
PREVIEW_CHARS: 160,
|
|
1805
|
+
/** Characters of the error quoted in a report */
|
|
1806
|
+
ERROR_CHARS: 160,
|
|
1807
|
+
};
|
|
1808
|
+
/**
|
|
1809
|
+
* Mirroring the orchestrator's answers in its own (dashboard) chat to an
|
|
1810
|
+
* owner who is not looking at it (crewly#1015 §11).
|
|
1811
|
+
*/
|
|
1812
|
+
export const ORC_CHAT_OWNER_MIRROR_CONSTANTS = {
|
|
1813
|
+
/** At most one DM per conversation this often; later answers are batched into the next */
|
|
1814
|
+
MIN_INTERVAL_MS: 10 * 60 * 1000,
|
|
1815
|
+
/**
|
|
1816
|
+
* A post on a system-event turn that belongs to the chat (a delegated
|
|
1817
|
+
* result, a promise follow-up whose origin is that chat) is mirrored when
|
|
1818
|
+
* the owner wrote in that chat within this window (follow-up H1).
|
|
1819
|
+
*/
|
|
1820
|
+
SYSTEM_TURN_OWNER_WINDOW_MS: 24 * 60 * 60 * 1000,
|
|
1821
|
+
/** At most this many system-turn mirrors per conversation per 24 h */
|
|
1822
|
+
SYSTEM_TURN_DAILY_CAP: 3,
|
|
1823
|
+
/** Ids (WorkItems / requests / tickets) read from one system event */
|
|
1824
|
+
SYSTEM_EVENT_MAX_IDS: 5,
|
|
1825
|
+
/** The same text in the same conversation is mirrored once in this window */
|
|
1826
|
+
DEDUPE_WINDOW_MS: 24 * 60 * 60 * 1000,
|
|
1827
|
+
/** Conversations that already reach the owner on another messenger (id prefixes, lower-case) */
|
|
1828
|
+
OTHER_MESSENGER_PREFIXES: ['telegram-', 'gchat-', 'whatsapp-'],
|
|
1829
|
+
/** chat-v2 owner-turn sources of other messengers */
|
|
1830
|
+
OTHER_MESSENGER_SOURCES: ['telegram', 'google-chat', 'google_chat', 'whatsapp'],
|
|
1831
|
+
};
|
|
1832
|
+
/**
|
|
1833
|
+
* Liveness monitor (crewly#1015 §12): a gap in the backend's life — the
|
|
1834
|
+
* computer asleep, the event loop stuck, the process stopped without a
|
|
1835
|
+
* clean shutdown — is told to the owner once it is back.
|
|
1836
|
+
*/
|
|
1837
|
+
export const LIVENESS_MONITOR_CONSTANTS = {
|
|
1838
|
+
/** Record under CREWLY_HOME */
|
|
1839
|
+
STORE_FILENAME: 'liveness.json',
|
|
1840
|
+
/** How often the record is written */
|
|
1841
|
+
TICK_MS: 30 * 1000,
|
|
1842
|
+
/** A gap longer than this is told to the owner */
|
|
1843
|
+
GAP_ALERT_MS: 10 * 60 * 1000,
|
|
1844
|
+
/** A pending alert is retried each tick (Slack may come up late) for at most this long */
|
|
1845
|
+
ALERT_RETRY_MAX_MS: 2 * 60 * 60 * 1000,
|
|
1846
|
+
/** At most one crash DM this often; crashes in between are merged into the next one with a count */
|
|
1847
|
+
CRASH_MERGE_WINDOW_MS: 60 * 60 * 1000,
|
|
1848
|
+
/** Crashes kept waiting to be told (oldest dropped) */
|
|
1849
|
+
CRASH_UNSENT_MAX: 50,
|
|
1850
|
+
};
|
|
1758
1851
|
export const OWNER_MESSAGE_WATCHDOG_CONSTANTS = {
|
|
1759
1852
|
/** T1: no answer and no working placeholder → re-deliver to the responsible agent */
|
|
1760
1853
|
NUDGE_AFTER_MS: 10 * 60 * 1000,
|
|
@@ -1772,6 +1865,16 @@ export const OWNER_MESSAGE_WATCHDOG_CONSTANTS = {
|
|
|
1772
1865
|
STALE_DROP_MS: 6 * 60 * 60 * 1000,
|
|
1773
1866
|
/** A message parked on a sign-in (`login_wait`) is kept this long for re-delivery after the login */
|
|
1774
1867
|
LOGIN_WAIT_DROP_MS: 24 * 60 * 60 * 1000,
|
|
1868
|
+
/**
|
|
1869
|
+
* A message parked because its agent's turns keep failing (`failed_wait`,
|
|
1870
|
+
* crewly#1015 §2) is re-delivered after these waits (backing off), and
|
|
1871
|
+
* always when the agent's next turn succeeds; after the last one only a
|
|
1872
|
+
* successful turn re-delivers it. A failure for lack of credit / quota is
|
|
1873
|
+
* never retried on a timer: only a successful turn (credit restored, the
|
|
1874
|
+
* agent moved to another runtime, the owner acted) brings it back. Kept
|
|
1875
|
+
* for LOGIN_WAIT_DROP_MS.
|
|
1876
|
+
*/
|
|
1877
|
+
FAILED_RETRY_BACKOFF_MS: [30 * 60 * 1000, 2 * 60 * 60 * 1000, 6 * 60 * 60 * 1000],
|
|
1775
1878
|
/** Cap on open entries (oldest dropped with a warning) */
|
|
1776
1879
|
MAX_ENTRIES: 500,
|
|
1777
1880
|
/**
|
|
@@ -1812,6 +1915,8 @@ export const OWNER_MESSAGE_WATCHDOG_CONSTANTS = {
|
|
|
1812
1915
|
NOTE_SILENT_TEXT: "⏳ {name} got your message but hasn't replied in {waited} min; I've sent a reminder.",
|
|
1813
1916
|
/** Shown in a note when a failed delivery left no error detail */
|
|
1814
1917
|
NOTE_UNKNOWN_DETAIL: 'reason unknown',
|
|
1918
|
+
/** The agent took the message but its run failed (crewly#1015 §2) */
|
|
1919
|
+
NOTE_TURN_FAILED_TEXT: "⚠️ {name} couldn't answer your message — its run failed ({detail}). Your message is kept and delivered again once {name} is working.",
|
|
1815
1920
|
/** The agent hit a daily token cap (specs/2026-10-02-spend-cap.md) */
|
|
1816
1921
|
NOTE_SPEND_CAP_TEXT: "⏳ Still waiting on {name} — {name} hit its daily token cap ({cap}). Your message is kept and delivered when the cap resets at midnight or you boost it (reply `boost {who} by 10M today` or `unlimited today for {who}`).",
|
|
1817
1922
|
};
|
|
@@ -3457,6 +3562,52 @@ export const SLACK_FILE_DOWNLOAD_CONSTANTS = {
|
|
|
3457
3562
|
/** MIME types eligible for text extraction */
|
|
3458
3563
|
EXTRACTABLE_MIMES: ['application/pdf'],
|
|
3459
3564
|
};
|
|
3565
|
+
/**
|
|
3566
|
+
* One responder per owner message in Slack rooms
|
|
3567
|
+
* (specs/2026-10-03-one-responder-per-message.md).
|
|
3568
|
+
*/
|
|
3569
|
+
export const ROOM_RESPONDER_CONSTANTS = {
|
|
3570
|
+
/** Longest the router waits for the decision path's outcome on a card-thread reply */
|
|
3571
|
+
DECISION_WAIT_MS: 8_000,
|
|
3572
|
+
/** Longest the router waits for the Slack thread read before choosing a thread owner */
|
|
3573
|
+
THREAD_CONTEXT_WAIT_MS: 3_000,
|
|
3574
|
+
/** Distinct Slack messages whose decision outcome is remembered (memo for the shared run) */
|
|
3575
|
+
DECISION_MEMO_MAX: 200,
|
|
3576
|
+
/** Thread rows the reply gate reads (newest) */
|
|
3577
|
+
GATE_THREAD_SCAN: 200,
|
|
3578
|
+
/** Characters of the existing answer shown when a reply is held */
|
|
3579
|
+
GATE_EXCERPT_CHARS: 300,
|
|
3580
|
+
/** Pause before the one retry of a Slack thread read that failed */
|
|
3581
|
+
THREAD_READ_RETRY_BACKOFF_MS: 400,
|
|
3582
|
+
/** Longest the one retry waits in all, a Slack rate limit's retry-after included */
|
|
3583
|
+
THREAD_READ_RETRY_MAX_WAIT_MS: 2_000,
|
|
3584
|
+
/**
|
|
3585
|
+
* A note-only watch (a machine that is not the room's watcher but cannot be
|
|
3586
|
+
* sure the watcher is live, or cannot tell who it is) waits this long, then
|
|
3587
|
+
* only tells the owner — it never hands the message to anyone.
|
|
3588
|
+
*/
|
|
3589
|
+
NOTE_ONLY_WATCH_MS: 120 * 1000,
|
|
3590
|
+
/**
|
|
3591
|
+
* With colleagues on other machines in the room, this machine's chat log
|
|
3592
|
+
* is trusted to name a thread's last speaker only when its latest agent
|
|
3593
|
+
* turn there is this recent (Cloud never forwards other machines' bot
|
|
3594
|
+
* posts, so an older log may have missed them).
|
|
3595
|
+
*/
|
|
3596
|
+
LOCAL_LOG_FRESH_MS: 10 * 60 * 1000,
|
|
3597
|
+
/** Huddle-row metadata: the responders the harness chose for an owner message (the reply gate reads it) */
|
|
3598
|
+
CHOSEN_RESPONDERS_METADATA_KEY: 'roomResponders',
|
|
3599
|
+
};
|
|
3600
|
+
/** The context-only queue: room messages an agent hears on its next turn instead of now. */
|
|
3601
|
+
export const ROOM_CONTEXT_CONSTANTS = {
|
|
3602
|
+
/** Entries kept per (agent, room); oldest dropped first */
|
|
3603
|
+
MAX_ENTRIES: 6,
|
|
3604
|
+
/** Characters kept of each message */
|
|
3605
|
+
PER_ENTRY_CHARS: 300,
|
|
3606
|
+
/** Entries older than this are dropped unread */
|
|
3607
|
+
TTL_MS: 6 * 60 * 60 * 1000,
|
|
3608
|
+
/** (agent, room) queues kept at most */
|
|
3609
|
+
MAX_QUEUES: 500,
|
|
3610
|
+
};
|
|
3460
3611
|
/**
|
|
3461
3612
|
* Message source identifiers for the queue processor.
|
|
3462
3613
|
* Determines delivery strategy (timeouts, retry behavior).
|
|
@@ -5532,6 +5683,13 @@ export const OPEN_ITEMS_CONSTANTS = {
|
|
|
5532
5683
|
REPLY_LABEL: 'Reply in thread',
|
|
5533
5684
|
/** `WorkItem.metadata` key of a follow-up WorkItem */
|
|
5534
5685
|
FOLLOW_UP_METADATA_KEY: 'openItemFollowUp',
|
|
5686
|
+
/**
|
|
5687
|
+
* `WorkItem.metadata` key naming the agent session that cancelled an item
|
|
5688
|
+
* through the cancel API (absent: the owner, or a caller with no session).
|
|
5689
|
+
* A promise whose follow-up another agent cancelled is told to the owner
|
|
5690
|
+
* (crewly#1015 §10).
|
|
5691
|
+
*/
|
|
5692
|
+
CANCELLED_BY_METADATA_KEY: 'cancelledBy',
|
|
5535
5693
|
/** The one line every agent prompt carries */
|
|
5536
5694
|
PROMPT_LINE: 'If you promise the owner something or ask them a question, say it plainly; Crewly tracks it. Use `ask-owner` for real decisions.',
|
|
5537
5695
|
/** Max characters of the quoted context a question card carries when its question points back at earlier text */
|