crewly 1.20.143 → 1.20.145
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/constants.ts +59 -0
- package/config/index.ts +2 -0
- package/config/roles/orchestrator/prompt.md +9 -0
- package/config/skills/orchestrator/delegate-task/execute.sh +11 -0
- package/config/skills/orchestrator/delegate-task/execute.test.sh +38 -0
- package/config/skills/orchestrator/harness-login/SKILL.md +88 -0
- package/config/skills/orchestrator/harness-login/execute.sh +75 -0
- package/config/skills/orchestrator/harness-login/execute.test.sh +72 -0
- package/config/skills/orchestrator/reply-chat/SKILL.md +11 -1
- package/config/skills/orchestrator/reply-chat/execute.sh +13 -1
- package/config/skills/orchestrator/reply-slack/SKILL.md +1 -0
- package/config/skills/orchestrator/reply-slack/execute.sh +11 -2
- package/dist/backend/backend/src/constants.d.ts +55 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +36 -1
- package/dist/backend/backend/src/constants.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 +36 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/harness/harness.routes.d.ts +1 -0
- package/dist/backend/backend/src/controllers/harness/harness.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/harness/harness.routes.js +3 -0
- package/dist/backend/backend/src/controllers/harness/harness.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/harness/owner-login.controller.d.ts +61 -0
- package/dist/backend/backend/src/controllers/harness/owner-login.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/harness/owner-login.controller.js +133 -0
- package/dist/backend/backend/src/controllers/harness/owner-login.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +69 -7
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +4 -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 +9 -2
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +8 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +75 -3
- 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 +28 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts +11 -1
- package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/codex-runtime.service.js +18 -0
- package/dist/backend/backend/src/services/agent/codex-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +12 -0
- 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 +18 -3
- 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/runtime-agent.service.abstract.d.ts +29 -0
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +48 -0
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +15 -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 +20 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +147 -5
- package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-relogin.service.js +210 -20
- package/dist/backend/backend/src/services/harness/harness-relogin.service.js.map +1 -1
- package/dist/backend/backend/src/services/harness/owner-login-request.d.ts +87 -0
- package/dist/backend/backend/src/services/harness/owner-login-request.d.ts.map +1 -0
- package/dist/backend/backend/src/services/harness/owner-login-request.js +191 -0
- package/dist/backend/backend/src/services/harness/owner-login-request.js.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-reply-route.service.d.ts +217 -0
- package/dist/backend/backend/src/services/orc/orc-reply-route.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-reply-route.service.js +300 -0
- package/dist/backend/backend/src/services/orc/orc-reply-route.service.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +32 -2
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +59 -5
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +4 -2
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +6 -3
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts +68 -9
- 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 +121 -11
- package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.js.map +1 -1
- package/dist/backend/backend/src/services/system/auto-update.service.d.ts +292 -0
- package/dist/backend/backend/src/services/system/auto-update.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/system/auto-update.service.js +590 -0
- package/dist/backend/backend/src/services/system/auto-update.service.js.map +1 -0
- package/dist/backend/backend/src/services/system/auto-update.utils.d.ts +265 -0
- package/dist/backend/backend/src/services/system/auto-update.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/services/system/auto-update.utils.js +397 -0
- package/dist/backend/backend/src/services/system/auto-update.utils.js.map +1 -0
- package/dist/backend/backend/src/services/system/version-check.service.d.ts +15 -1
- package/dist/backend/backend/src/services/system/version-check.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/system/version-check.service.js +21 -2
- package/dist/backend/backend/src/services/system/version-check.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +7 -1
- 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 +14 -2
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/cascade-request-status.js +16 -1
- package/dist/backend/backend/src/services/v3/cascade-request-status.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-completion.d.ts +128 -0
- package/dist/backend/backend/src/services/v3/request-completion.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-completion.js +311 -0
- package/dist/backend/backend/src/services/v3/request-completion.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js +3 -0
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js +17 -3
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +8 -0
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.js +11 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts +8 -0
- package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/settings.types.js +4 -0
- package/dist/backend/backend/src/types/settings.types.js.map +1 -1
- package/dist/backend/backend/src/utils/agent-reply-filter.utils.d.ts +75 -0
- package/dist/backend/backend/src/utils/agent-reply-filter.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/agent-reply-filter.utils.js +127 -0
- package/dist/backend/backend/src/utils/agent-reply-filter.utils.js.map +1 -0
- package/dist/backend/build-info.json +2 -2
- package/dist/backend/config/constants.d.ts +56 -0
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +57 -0
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/backend/config/index.d.ts +2 -2
- package/dist/backend/config/index.d.ts.map +1 -1
- package/dist/backend/config/index.js +2 -2
- package/dist/backend/config/index.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +55 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +36 -1
- 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 +28 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts +11 -1
- package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/codex-runtime.service.js +18 -0
- package/dist/cli/backend/src/services/agent/codex-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +12 -0
- 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 +18 -3
- 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/runtime-agent.service.abstract.d.ts +29 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +48 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +15 -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 +20 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +147 -5
- package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-relogin.service.js +210 -20
- package/dist/cli/backend/src/services/harness/harness-relogin.service.js.map +1 -1
- package/dist/cli/backend/src/services/harness/owner-login-request.d.ts +87 -0
- package/dist/cli/backend/src/services/harness/owner-login-request.d.ts.map +1 -0
- package/dist/cli/backend/src/services/harness/owner-login-request.js +191 -0
- package/dist/cli/backend/src/services/harness/owner-login-request.js.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-reply-route.service.d.ts +217 -0
- package/dist/cli/backend/src/services/orc/orc-reply-route.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-reply-route.service.js +300 -0
- package/dist/cli/backend/src/services/orc/orc-reply-route.service.js.map +1 -0
- package/dist/cli/backend/src/services/system/auto-update.utils.d.ts +265 -0
- package/dist/cli/backend/src/services/system/auto-update.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/services/system/auto-update.utils.js +397 -0
- package/dist/cli/backend/src/services/system/auto-update.utils.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +7 -1
- 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 +14 -2
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/request-completion.d.ts +128 -0
- package/dist/cli/backend/src/services/v3/request-completion.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/request-completion.js +311 -0
- package/dist/cli/backend/src/services/v3/request-completion.js.map +1 -0
- package/dist/cli/backend/src/services/v3/v3-data.service.d.ts +8 -0
- package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/v3-data.service.js +11 -1
- package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -1
- package/dist/cli/backend/src/types/settings.types.d.ts +8 -0
- package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.js +4 -0
- package/dist/cli/backend/src/types/settings.types.js.map +1 -1
- package/dist/cli/backend/src/utils/agent-reply-filter.utils.d.ts +75 -0
- package/dist/cli/backend/src/utils/agent-reply-filter.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/agent-reply-filter.utils.js +127 -0
- package/dist/cli/backend/src/utils/agent-reply-filter.utils.js.map +1 -0
- package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/start.js +14 -3
- package/dist/cli/cli/src/commands/start.js.map +1 -1
- package/dist/cli/cli/src/commands/update-status.d.ts +85 -0
- package/dist/cli/cli/src/commands/update-status.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/update-status.js +162 -0
- package/dist/cli/cli/src/commands/update-status.js.map +1 -0
- package/dist/cli/cli/src/constants.d.ts +1 -1
- package/dist/cli/cli/src/constants.d.ts.map +1 -1
- package/dist/cli/cli/src/constants.js +1 -1
- package/dist/cli/cli/src/constants.js.map +1 -1
- package/dist/cli/cli/src/index.js +7 -0
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/cli/src/utils/backend-respawn.d.ts +50 -0
- package/dist/cli/cli/src/utils/backend-respawn.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/backend-respawn.js +59 -0
- package/dist/cli/cli/src/utils/backend-respawn.js.map +1 -0
- package/dist/cli/config/constants.d.ts +56 -0
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +57 -0
- package/dist/cli/config/constants.js.map +1 -1
- package/dist/cli/config/index.d.ts +2 -2
- package/dist/cli/config/index.d.ts.map +1 -1
- package/dist/cli/config/index.js +2 -2
- package/dist/cli/config/index.js.map +1 -1
- package/frontend/dist/assets/{index-e05af897.js → index-71670b91.js} +22 -22
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
- package/packages/crewly-agent/src/runtime/agent-runner.service.test.ts +39 -0
- package/packages/crewly-agent/src/runtime/agent-runner.service.ts +17 -17
- package/packages/crewly-agent/src/runtime/interactive-login-guard.test.ts +60 -0
- package/packages/crewly-agent/src/runtime/interactive-login-guard.ts +76 -0
- package/packages/crewly-agent/src/runtime/reply-tool-calls.test.ts +53 -0
- package/packages/crewly-agent/src/runtime/reply-tool-calls.ts +76 -0
- package/packages/crewly-agent/src/runtime/tool-registry.test.ts +8 -0
- package/packages/crewly-agent/src/runtime/tool-registry.ts +14 -0
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator reply routing — "answer where you were asked".
|
|
3
|
+
*
|
|
4
|
+
* Tracks, per agent session, the conversation its latest user-originated
|
|
5
|
+
* message came from (the *turn origin*), and decides where a reply the
|
|
6
|
+
* orchestrator posts during or right after that turn should land.
|
|
7
|
+
*
|
|
8
|
+
* Incident 2026-09-26 03:23–03:34 UTC: the owner was talking to the orc in a
|
|
9
|
+
* Slack DM (D0C381XPD3L → chat-v2 channel a721f48d). A reconciler WorkItem
|
|
10
|
+
* redispatch then started a system turn with no `[CHAT:…]` prefix. In it the
|
|
11
|
+
* orc:
|
|
12
|
+
* - filed `report-status [BLOCKED]` and `reply-chat` without a
|
|
13
|
+
* conversationId; `/api/chat/agent-response` fell back to
|
|
14
|
+
* `ChatService.getCurrentConversation()`, which only sees system-owned
|
|
15
|
+
* channels — never the owner's orchestrator DM — and returned #think-tank
|
|
16
|
+
* (b79a6e4d), so the summary was mirrored into Slack #pro-think-tank;
|
|
17
|
+
* - called `reply-slack` on D0AC7NF5N7L, the owner's DM with the *master*
|
|
18
|
+
* Crewly bot, not the orc-bot DM the conversation was in.
|
|
19
|
+
* The question in that summary ("reply start Ella") never reached the owner.
|
|
20
|
+
*
|
|
21
|
+
* What counts as "the reply": anything the orchestrator posts to a
|
|
22
|
+
* user-facing conversation through `/api/chat/agent-response` (reply-chat,
|
|
23
|
+
* report-status) or to a Slack DM through `/api/slack/send` (reply-slack).
|
|
24
|
+
* It is re-routed to the turn origin when it targets a conversation the orc
|
|
25
|
+
* has not received a user message from recently, unless the caller marked it
|
|
26
|
+
* as a deliberate cross-post. Posts to Slack channels (team notifications,
|
|
27
|
+
* delegation) and `reply-channel` writes are not replies and are untouched.
|
|
28
|
+
*
|
|
29
|
+
* @module services/orc/orc-reply-route.service
|
|
30
|
+
*/
|
|
31
|
+
import { ORC_REPLY_ROUTE_CONSTANTS } from '../../constants.js';
|
|
32
|
+
/**
|
|
33
|
+
* `[CHAT:<id>…]` / `[GCHAT:<id>…]` at the start of a delivered message. Both
|
|
34
|
+
* delivery paths put it first: the chat-v2 dispatcher (`[CHAT:<channel>]
|
|
35
|
+
* <sender@name>`) and the message queue (`[CHAT:<conversation>:<fp>] …`).
|
|
36
|
+
* System deliveries (`[SYSTEM]`, `[CREWLY-DISPATCH]`, reminders) never do.
|
|
37
|
+
*/
|
|
38
|
+
const CHAT_PREFIX = /^\s*\[G?CHAT:([^\]\s]+)[^\]]*\]/;
|
|
39
|
+
/**
|
|
40
|
+
* The message queue appends `:<last 8 chars of the message id>` to the
|
|
41
|
+
* conversation id as a delivery fingerprint.
|
|
42
|
+
*/
|
|
43
|
+
const QUEUE_FINGERPRINT_SUFFIX = /^(.+):[A-Za-z0-9-]{8}$/;
|
|
44
|
+
/** `[SLACK:<channel>]` or `[SLACK:<channel>:<threadTs>]`, anywhere. */
|
|
45
|
+
const SLACK_MARKER = /\[SLACK:([^:\]\s]+)(?::([^\]\s]+))?\]/;
|
|
46
|
+
/**
|
|
47
|
+
* Parses the routing header of a message delivered to an agent.
|
|
48
|
+
*
|
|
49
|
+
* @param message - The exact text delivered to the agent
|
|
50
|
+
* @returns The origin, or null for system-originated deliveries
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* parseInboundOrigin('[CHAT:a721f48d] <owner@Orchestrator>\n\nhi');
|
|
55
|
+
* // → { conversationId: 'a721f48d' }
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export function parseInboundOrigin(message) {
|
|
59
|
+
const chat = CHAT_PREFIX.exec(message);
|
|
60
|
+
if (!chat)
|
|
61
|
+
return null;
|
|
62
|
+
const raw = chat[1];
|
|
63
|
+
const fp = QUEUE_FINGERPRINT_SUFFIX.exec(raw);
|
|
64
|
+
const origin = { conversationId: fp ? fp[1] : raw };
|
|
65
|
+
const slack = SLACK_MARKER.exec(message);
|
|
66
|
+
if (slack) {
|
|
67
|
+
origin.slackChannelId = slack[1];
|
|
68
|
+
if (slack[2])
|
|
69
|
+
origin.slackThreadTs = slack[2];
|
|
70
|
+
}
|
|
71
|
+
return origin;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Whether a Slack channel id is a direct-message conversation.
|
|
75
|
+
*
|
|
76
|
+
* @param slackChannelId - Slack channel id
|
|
77
|
+
* @returns True for `D…` ids
|
|
78
|
+
*/
|
|
79
|
+
export function isSlackDm(slackChannelId) {
|
|
80
|
+
return slackChannelId.startsWith(ORC_REPLY_ROUTE_CONSTANTS.SLACK_DM_PREFIX);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Tracks turn origins and decides reply targets. Process-wide singleton; all
|
|
84
|
+
* state is in memory (a restart starts every agent on a fresh turn anyway).
|
|
85
|
+
*/
|
|
86
|
+
export class OrcReplyRouteService {
|
|
87
|
+
static instance = null;
|
|
88
|
+
sessions = new Map();
|
|
89
|
+
/**
|
|
90
|
+
* @returns The shared instance
|
|
91
|
+
*/
|
|
92
|
+
static getInstance() {
|
|
93
|
+
if (!OrcReplyRouteService.instance)
|
|
94
|
+
OrcReplyRouteService.instance = new OrcReplyRouteService();
|
|
95
|
+
return OrcReplyRouteService.instance;
|
|
96
|
+
}
|
|
97
|
+
/** Drops the shared instance (tests). */
|
|
98
|
+
static resetInstance() {
|
|
99
|
+
OrcReplyRouteService.instance = null;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Records a message delivered to an agent. User-originated messages (those
|
|
103
|
+
* with a `[CHAT:…]` header) become the session's turn origin; system
|
|
104
|
+
* deliveries leave the origin alone, so a system turn that follows a user
|
|
105
|
+
* turn still answers the user where they asked.
|
|
106
|
+
*
|
|
107
|
+
* @param sessionName - Receiving agent session
|
|
108
|
+
* @param message - Exact delivered text
|
|
109
|
+
* @param now - Clock override for tests
|
|
110
|
+
* @returns The new origin, or null when the message was system-originated
|
|
111
|
+
*/
|
|
112
|
+
noteDelivery(sessionName, message, now = Date.now()) {
|
|
113
|
+
const parsed = parseInboundOrigin(message);
|
|
114
|
+
if (!parsed)
|
|
115
|
+
return null;
|
|
116
|
+
const state = this.stateFor(sessionName);
|
|
117
|
+
const origin = { ...parsed, receivedAt: now };
|
|
118
|
+
state.origin = origin;
|
|
119
|
+
remember(state.conversations, origin.conversationId, now);
|
|
120
|
+
if (origin.slackChannelId)
|
|
121
|
+
remember(state.slackChannels, origin.slackChannelId, now);
|
|
122
|
+
return origin;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* The session's turn origin, however old.
|
|
126
|
+
*
|
|
127
|
+
* @param sessionName - Agent session
|
|
128
|
+
* @returns The last user-originated origin, or undefined
|
|
129
|
+
*/
|
|
130
|
+
getLastOrigin(sessionName) {
|
|
131
|
+
return this.sessions.get(sessionName)?.origin;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* The session's turn origin if it is still fresh.
|
|
135
|
+
*
|
|
136
|
+
* @param sessionName - Agent session
|
|
137
|
+
* @param now - Clock override for tests
|
|
138
|
+
* @returns The origin within {@link ORC_REPLY_ROUTE_CONSTANTS.ORIGIN_TTL_MS}
|
|
139
|
+
*/
|
|
140
|
+
getFreshOrigin(sessionName, now = Date.now()) {
|
|
141
|
+
const origin = this.getLastOrigin(sessionName);
|
|
142
|
+
if (!origin)
|
|
143
|
+
return undefined;
|
|
144
|
+
return now - origin.receivedAt <= ORC_REPLY_ROUTE_CONSTANTS.ORIGIN_TTL_MS ? origin : undefined;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Decides which conversation a chat reply (reply-chat, report-status)
|
|
148
|
+
* belongs in.
|
|
149
|
+
*
|
|
150
|
+
* - No conversation named → the turn origin (any age: it is still a better
|
|
151
|
+
* guess than "the newest channel in the system"); none known → caller's
|
|
152
|
+
* own fallback.
|
|
153
|
+
* - A conversation named → kept when it is the origin, when the session
|
|
154
|
+
* received a user message there recently, when the caller marked a
|
|
155
|
+
* cross-post, or when there is no fresh origin to prefer. Otherwise the
|
|
156
|
+
* reply goes to the origin.
|
|
157
|
+
*
|
|
158
|
+
* @param sessionName - Replying agent session
|
|
159
|
+
* @param requested - Conversation the caller named, if any
|
|
160
|
+
* @param options - Cross-post flag and clock
|
|
161
|
+
* @returns The decision
|
|
162
|
+
*/
|
|
163
|
+
resolveConversationReply(sessionName, requested, options = {}) {
|
|
164
|
+
const now = options.now ?? Date.now();
|
|
165
|
+
if (!requested) {
|
|
166
|
+
const last = this.getLastOrigin(sessionName);
|
|
167
|
+
return last
|
|
168
|
+
? { action: 'defaulted-to-origin', conversationId: last.conversationId, origin: last, reason: 'no conversation named — using the conversation the turn came from' }
|
|
169
|
+
: { action: 'no-origin', reason: 'no conversation named and no turn origin known' };
|
|
170
|
+
}
|
|
171
|
+
const origin = this.getFreshOrigin(sessionName, now);
|
|
172
|
+
if (!origin)
|
|
173
|
+
return { action: 'as-requested', conversationId: requested, reason: 'no fresh turn origin' };
|
|
174
|
+
if (requested === origin.conversationId) {
|
|
175
|
+
return { action: 'as-requested', conversationId: requested, origin, reason: 'is the turn origin' };
|
|
176
|
+
}
|
|
177
|
+
if (options.crossPost) {
|
|
178
|
+
return { action: 'as-requested', conversationId: requested, origin, reason: 'explicit cross-post' };
|
|
179
|
+
}
|
|
180
|
+
if (this.receivedRecently(this.sessions.get(sessionName)?.conversations, requested, now)) {
|
|
181
|
+
return { action: 'as-requested', conversationId: requested, origin, reason: 'received a user message there recently' };
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
action: 'rerouted-to-origin',
|
|
185
|
+
conversationId: origin.conversationId,
|
|
186
|
+
origin,
|
|
187
|
+
reason: 'named a conversation the turn did not come from and no user wrote in recently',
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Decides whether a Slack post is a misdirected reply. Only DMs are
|
|
192
|
+
* candidates — posting in a channel is how the orchestrator notifies teams
|
|
193
|
+
* and delegates, so channel posts are always sent as asked.
|
|
194
|
+
*
|
|
195
|
+
* @param sessionName - Posting agent session
|
|
196
|
+
* @param slackChannelId - Slack channel the caller named
|
|
197
|
+
* @param options - Cross-post flag, clock, and the Slack DM the origin
|
|
198
|
+
* conversation is bridged to (when the delivered message had no marker)
|
|
199
|
+
* @returns The decision
|
|
200
|
+
*/
|
|
201
|
+
resolveSlackReply(sessionName, slackChannelId, options = {}) {
|
|
202
|
+
const now = options.now ?? Date.now();
|
|
203
|
+
if (!isSlackDm(slackChannelId)) {
|
|
204
|
+
return { action: 'as-requested', reason: 'channel post — cross-posting allowed' };
|
|
205
|
+
}
|
|
206
|
+
const origin = this.getFreshOrigin(sessionName, now);
|
|
207
|
+
if (!origin)
|
|
208
|
+
return { action: 'as-requested', reason: 'no fresh turn origin' };
|
|
209
|
+
const originSlack = origin.slackChannelId ?? options.originSlackChannelId;
|
|
210
|
+
if (originSlack === slackChannelId) {
|
|
211
|
+
return { action: 'as-requested', origin, reason: 'is the turn origin' };
|
|
212
|
+
}
|
|
213
|
+
if (options.crossPost)
|
|
214
|
+
return { action: 'as-requested', origin, reason: 'explicit cross-post' };
|
|
215
|
+
if (this.receivedRecently(this.sessions.get(sessionName)?.slackChannels, slackChannelId, now)) {
|
|
216
|
+
return { action: 'as-requested', origin, reason: 'received a user message there recently' };
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
action: 'rerouted-to-origin',
|
|
220
|
+
origin,
|
|
221
|
+
reason: 'posted to a Slack DM the turn did not come from and no user wrote in recently',
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Plans where a Slack post by `sessionName` should go.
|
|
226
|
+
*
|
|
227
|
+
* When {@link resolveSlackReply} re-routes, the destination is the origin's
|
|
228
|
+
* own Slack conversation if the delivered message carried a `[SLACK:…]`
|
|
229
|
+
* marker (the master-bot bridge), else the origin chat-v2 conversation —
|
|
230
|
+
* which the Slack DM bridge mirrors into the agent-bot DM the owner wrote
|
|
231
|
+
* in, under the right bot.
|
|
232
|
+
*
|
|
233
|
+
* @param sessionName - Posting agent session
|
|
234
|
+
* @param target - Slack channel/thread the caller named, and its cross-post flag
|
|
235
|
+
* @param findDmSlackChannel - Maps a chat-v2 conversation to the Slack DM it
|
|
236
|
+
* is bridged to, when it is
|
|
237
|
+
* @param now - Clock override for tests
|
|
238
|
+
* @returns The plan and the decision behind it
|
|
239
|
+
*/
|
|
240
|
+
planSlackReply(sessionName, target, findDmSlackChannel, now = Date.now()) {
|
|
241
|
+
const fresh = this.getFreshOrigin(sessionName, now);
|
|
242
|
+
const originSlackChannelId = fresh && !fresh.slackChannelId ? findDmSlackChannel(fresh.conversationId) : undefined;
|
|
243
|
+
const decision = this.resolveSlackReply(sessionName, target.channelId, {
|
|
244
|
+
crossPost: target.crossPost,
|
|
245
|
+
originSlackChannelId,
|
|
246
|
+
now,
|
|
247
|
+
});
|
|
248
|
+
if (decision.action !== 'rerouted-to-origin' || !decision.origin) {
|
|
249
|
+
return { plan: { kind: 'slack', channelId: target.channelId, threadTs: target.threadTs }, decision };
|
|
250
|
+
}
|
|
251
|
+
const origin = decision.origin;
|
|
252
|
+
const plan = origin.slackChannelId
|
|
253
|
+
? { kind: 'slack', channelId: origin.slackChannelId, threadTs: origin.slackThreadTs }
|
|
254
|
+
: { kind: 'conversation', conversationId: origin.conversationId };
|
|
255
|
+
return { plan, decision };
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Whether an inbound map saw `key` within the recent-inbound window.
|
|
259
|
+
*
|
|
260
|
+
* @param seen - Inbound map
|
|
261
|
+
* @param key - Conversation or Slack channel id
|
|
262
|
+
* @param now - Epoch ms
|
|
263
|
+
* @returns True when recent
|
|
264
|
+
*/
|
|
265
|
+
receivedRecently(seen, key, now) {
|
|
266
|
+
const at = seen?.get(key);
|
|
267
|
+
return at !== undefined && now - at <= ORC_REPLY_ROUTE_CONSTANTS.RECENT_INBOUND_MS;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* @param sessionName - Agent session
|
|
271
|
+
* @returns Its state, created on first use
|
|
272
|
+
*/
|
|
273
|
+
stateFor(sessionName) {
|
|
274
|
+
let state = this.sessions.get(sessionName);
|
|
275
|
+
if (!state) {
|
|
276
|
+
state = { conversations: new Map(), slackChannels: new Map() };
|
|
277
|
+
this.sessions.set(sessionName, state);
|
|
278
|
+
}
|
|
279
|
+
return state;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Records `key` as seen at `at`, keeping the map bounded (oldest first out;
|
|
284
|
+
* Map preserves insertion order, and re-inserting moves a key to the end).
|
|
285
|
+
*
|
|
286
|
+
* @param map - Inbound map
|
|
287
|
+
* @param key - Conversation or Slack channel id
|
|
288
|
+
* @param at - Epoch ms
|
|
289
|
+
*/
|
|
290
|
+
function remember(map, key, at) {
|
|
291
|
+
map.delete(key);
|
|
292
|
+
map.set(key, at);
|
|
293
|
+
while (map.size > ORC_REPLY_ROUTE_CONSTANTS.MAX_TRACKED_CONVERSATIONS) {
|
|
294
|
+
const oldest = map.keys().next().value;
|
|
295
|
+
if (oldest === undefined)
|
|
296
|
+
break;
|
|
297
|
+
map.delete(oldest);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
//# sourceMappingURL=orc-reply-route.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orc-reply-route.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orc/orc-reply-route.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,8 +76,18 @@ export declare function detectExpiredClaims(claims: TaskClaim[], gracePeriodMs?:
|
|
|
76
76
|
* Recomputes the correct status for a Request based on its WorkItems' statuses.
|
|
77
77
|
* This is the core "truth recomputation" — events are hints, this is truth.
|
|
78
78
|
*
|
|
79
|
+
* "All terminal" is not "done". Completion is decided by
|
|
80
|
+
* {@link evaluateRequestCompletion}: cancelled items never count as delivered
|
|
81
|
+
* work, and a Request whose only finished items are Plan/Review bookkeeping
|
|
82
|
+
* is not done — it goes `blocked` so it surfaces instead of closing silently
|
|
83
|
+
* (2026-09-26, Request d86b5faf closed on `{verified:2, cancelled:2}` while
|
|
84
|
+
* the re-routed real work was still running). An all-cancelled Request is
|
|
85
|
+
* `cancelled`, not `done`.
|
|
86
|
+
*
|
|
79
87
|
* @param request - The Request to reconcile
|
|
80
|
-
* @param workItems -
|
|
88
|
+
* @param workItems - The Request's effective WorkItems — its own items plus
|
|
89
|
+
* any replacements of superseded cancellations (see
|
|
90
|
+
* `collectRequestWorkItems`)
|
|
81
91
|
* @returns Correction if status needs updating, null otherwise
|
|
82
92
|
*/
|
|
83
93
|
export declare function reconcileRequestStatus(request: Request, workItems: WorkItem[]): ReconcileCorrection | null;
|
|
@@ -294,11 +304,31 @@ export declare function detectUnverifiedWorkItems(workItems: WorkItem[], nowMs?:
|
|
|
294
304
|
items: WorkItem[];
|
|
295
305
|
unverifiedIds: string[];
|
|
296
306
|
};
|
|
307
|
+
/**
|
|
308
|
+
* Whether any of a WorkItem's `dependsOn` prerequisites is still unfinished.
|
|
309
|
+
*
|
|
310
|
+
* A dependency absent from `workItemMap` is treated as resolved, matching
|
|
311
|
+
* {@link detectDependencyResolvedWorkItems}: the reconciler's active set
|
|
312
|
+
* omits `done`/`cancelled` items, so "missing" means "already terminal".
|
|
313
|
+
*
|
|
314
|
+
* @param wi - WorkItem to check
|
|
315
|
+
* @param workItemMap - WorkItems by id (the reconciler's active set)
|
|
316
|
+
* @returns True when at least one dependency exists and is non-terminal
|
|
317
|
+
*/
|
|
318
|
+
export declare function hasUnresolvedDependencies(wi: WorkItem, workItemMap: ReadonlyMap<string, WorkItem>): boolean;
|
|
297
319
|
/**
|
|
298
320
|
* Detects blocked WorkItems whose assigned agent is now alive,
|
|
299
321
|
* suggesting they can be re-queued for retry.
|
|
300
322
|
*
|
|
301
|
-
*
|
|
323
|
+
* Only for items blocked by an agent outage. An item blocked on its
|
|
324
|
+
* `dependsOn` prerequisites waits for {@link detectDependencyResolvedWorkItems}
|
|
325
|
+
* — its target being online says nothing about whether the prerequisite is
|
|
326
|
+
* done. (2026-09-26, Request d86b5faf: Execute and Review were blocked on
|
|
327
|
+
* Plan, their target `crewly-orc` was active, so this rule re-queued both 19s
|
|
328
|
+
* after creation; the orc then ran Execute before Plan and it was verified.)
|
|
329
|
+
*
|
|
330
|
+
* @param workItems - Active WorkItems (the rule inspects the blocked ones and
|
|
331
|
+
* uses the rest to resolve dependencies)
|
|
302
332
|
* @param agentHealthMap - Map of agent session → health info
|
|
303
333
|
* @returns Corrections to re-queue recoverable WorkItems
|
|
304
334
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-rules.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/reconciler/reconcile-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,OAAO,EAEP,SAAS,EACT,mBAAmB,EACnB,UAAU,EAEV,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"reconcile-rules.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/reconciler/reconcile-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { isValidRequestTransition, isLeaseExpired, isGracePeriodExceeded, TERMINAL_WORK_ITEM_STATUSES, TERMINAL_REQUEST_STATUSES, WORK_ITEM_TRANSITIONS, createCorrection, DEFAULT_GRACE_PERIOD_MS, getTtlAnchorAt, } from '../../types/v2/index.js';
|
|
11
11
|
import { DISPOSITION_REQUIRED_STATUSES, isWorkItemDisposed, isExplicitlyBlocked, } from '../../types/v2/work-item.types.js';
|
|
12
|
+
import { evaluateRequestCompletion } from '../v3/request-completion.js';
|
|
12
13
|
// ---------------------------------------------------------------------------
|
|
13
14
|
// Rule: Detect Stuck WorkItems
|
|
14
15
|
// ---------------------------------------------------------------------------
|
|
@@ -156,8 +157,18 @@ export function detectExpiredClaims(claims, gracePeriodMs = DEFAULT_GRACE_PERIOD
|
|
|
156
157
|
* Recomputes the correct status for a Request based on its WorkItems' statuses.
|
|
157
158
|
* This is the core "truth recomputation" — events are hints, this is truth.
|
|
158
159
|
*
|
|
160
|
+
* "All terminal" is not "done". Completion is decided by
|
|
161
|
+
* {@link evaluateRequestCompletion}: cancelled items never count as delivered
|
|
162
|
+
* work, and a Request whose only finished items are Plan/Review bookkeeping
|
|
163
|
+
* is not done — it goes `blocked` so it surfaces instead of closing silently
|
|
164
|
+
* (2026-09-26, Request d86b5faf closed on `{verified:2, cancelled:2}` while
|
|
165
|
+
* the re-routed real work was still running). An all-cancelled Request is
|
|
166
|
+
* `cancelled`, not `done`.
|
|
167
|
+
*
|
|
159
168
|
* @param request - The Request to reconcile
|
|
160
|
-
* @param workItems -
|
|
169
|
+
* @param workItems - The Request's effective WorkItems — its own items plus
|
|
170
|
+
* any replacements of superseded cancellations (see
|
|
171
|
+
* `collectRequestWorkItems`)
|
|
161
172
|
* @returns Correction if status needs updating, null otherwise
|
|
162
173
|
*/
|
|
163
174
|
export function reconcileRequestStatus(request, workItems) {
|
|
@@ -191,14 +202,25 @@ export function reconcileRequestStatus(request, workItems) {
|
|
|
191
202
|
});
|
|
192
203
|
}
|
|
193
204
|
const statuses = workItems.map(wi => wi.status);
|
|
194
|
-
const
|
|
205
|
+
const completion = evaluateRequestCompletion(workItems);
|
|
195
206
|
const anyRunning = statuses.some(s => s === 'running');
|
|
196
207
|
const allBlockedOrFailed = statuses.length > 0 && statuses.every(s => s === 'blocked' || s === 'failed' || s === 'cancelled');
|
|
197
208
|
const hasQueued = statuses.some(s => s === 'queued' || s === 'scheduled');
|
|
198
209
|
let expectedStatus = request.status;
|
|
199
|
-
|
|
210
|
+
let completionNote = '';
|
|
211
|
+
if (completion.outcome === 'complete') {
|
|
200
212
|
expectedStatus = request.requiresConfirmation ? 'waiting_confirmation' : 'done';
|
|
201
213
|
}
|
|
214
|
+
else if (completion.outcome === 'nothing_live') {
|
|
215
|
+
expectedStatus = 'cancelled';
|
|
216
|
+
completionNote = ` — ${completion.reason}`;
|
|
217
|
+
}
|
|
218
|
+
else if (completion.outcome === 'bookkeeping_only') {
|
|
219
|
+
// Everything that is left is finished, yet nothing was delivered. Not
|
|
220
|
+
// done; park it where the orchestrator's blocked-request views see it.
|
|
221
|
+
expectedStatus = 'blocked';
|
|
222
|
+
completionNote = ` — ${completion.reason}`;
|
|
223
|
+
}
|
|
202
224
|
else if (anyRunning) {
|
|
203
225
|
expectedStatus = 'running'; // At least one task is actively running
|
|
204
226
|
}
|
|
@@ -217,7 +239,7 @@ export function reconcileRequestStatus(request, workItems) {
|
|
|
217
239
|
entityId: request.id,
|
|
218
240
|
previousState: request.status,
|
|
219
241
|
newState: expectedStatus,
|
|
220
|
-
reason: `Recomputed from WorkItem statuses: ${JSON.stringify(countByStatus(statuses))}`,
|
|
242
|
+
reason: `Recomputed from WorkItem statuses: ${JSON.stringify(countByStatus(statuses))}${completionNote}`,
|
|
221
243
|
evidence: `${workItems.length} WorkItems: ${statuses.join(', ')}`,
|
|
222
244
|
});
|
|
223
245
|
}
|
|
@@ -604,17 +626,46 @@ export function detectUnverifiedWorkItems(workItems, nowMs = Date.now(), escalat
|
|
|
604
626
|
// ---------------------------------------------------------------------------
|
|
605
627
|
// Rule: Recover Blocked WorkItems
|
|
606
628
|
// ---------------------------------------------------------------------------
|
|
629
|
+
/**
|
|
630
|
+
* Whether any of a WorkItem's `dependsOn` prerequisites is still unfinished.
|
|
631
|
+
*
|
|
632
|
+
* A dependency absent from `workItemMap` is treated as resolved, matching
|
|
633
|
+
* {@link detectDependencyResolvedWorkItems}: the reconciler's active set
|
|
634
|
+
* omits `done`/`cancelled` items, so "missing" means "already terminal".
|
|
635
|
+
*
|
|
636
|
+
* @param wi - WorkItem to check
|
|
637
|
+
* @param workItemMap - WorkItems by id (the reconciler's active set)
|
|
638
|
+
* @returns True when at least one dependency exists and is non-terminal
|
|
639
|
+
*/
|
|
640
|
+
export function hasUnresolvedDependencies(wi, workItemMap) {
|
|
641
|
+
const dependsOn = wi.dependsOn;
|
|
642
|
+
if (!dependsOn || dependsOn.length === 0)
|
|
643
|
+
return false;
|
|
644
|
+
return dependsOn.some((depId) => {
|
|
645
|
+
const dep = workItemMap.get(depId);
|
|
646
|
+
return dep !== undefined && !TERMINAL_WORK_ITEM_STATUSES.has(dep.status);
|
|
647
|
+
});
|
|
648
|
+
}
|
|
607
649
|
/**
|
|
608
650
|
* Detects blocked WorkItems whose assigned agent is now alive,
|
|
609
651
|
* suggesting they can be re-queued for retry.
|
|
610
652
|
*
|
|
611
|
-
*
|
|
653
|
+
* Only for items blocked by an agent outage. An item blocked on its
|
|
654
|
+
* `dependsOn` prerequisites waits for {@link detectDependencyResolvedWorkItems}
|
|
655
|
+
* — its target being online says nothing about whether the prerequisite is
|
|
656
|
+
* done. (2026-09-26, Request d86b5faf: Execute and Review were blocked on
|
|
657
|
+
* Plan, their target `crewly-orc` was active, so this rule re-queued both 19s
|
|
658
|
+
* after creation; the orc then ran Execute before Plan and it was verified.)
|
|
659
|
+
*
|
|
660
|
+
* @param workItems - Active WorkItems (the rule inspects the blocked ones and
|
|
661
|
+
* uses the rest to resolve dependencies)
|
|
612
662
|
* @param agentHealthMap - Map of agent session → health info
|
|
613
663
|
* @returns Corrections to re-queue recoverable WorkItems
|
|
614
664
|
*/
|
|
615
665
|
export function detectRecoverableWorkItems(workItems, agentHealthMap) {
|
|
616
666
|
const corrections = [];
|
|
617
667
|
const recoverableIds = [];
|
|
668
|
+
const workItemMap = new Map(workItems.map((w) => [w.id, w]));
|
|
618
669
|
for (const wi of workItems) {
|
|
619
670
|
if (wi.status !== 'blocked')
|
|
620
671
|
continue;
|
|
@@ -623,6 +674,9 @@ export function detectRecoverableWorkItems(workItems, agentHealthMap) {
|
|
|
623
674
|
// here re-dispatched the item every few minutes (2026-09-25, WI 92327d6d).
|
|
624
675
|
if (isExplicitlyBlocked(wi))
|
|
625
676
|
continue;
|
|
677
|
+
// A dependency block is not an outage either — see the JSDoc above.
|
|
678
|
+
if (hasUnresolvedDependencies(wi, workItemMap))
|
|
679
|
+
continue;
|
|
626
680
|
if (wi.retryCount >= wi.maxRetries)
|
|
627
681
|
continue;
|
|
628
682
|
// If the agent is back online, re-queue
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-rules.js","sourceRoot":"","sources":["../../../../../../backend/src/services/reconciler/reconcile-rules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reconcile-rules.js","sourceRoot":"","sources":["../../../../../../backend/src/services/reconciler/reconcile-rules.ts"],"names":[],"mappings":"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"}
|