crewly 1.20.256 → 1.20.258
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/dist/backend/backend/src/constants.d.ts +52 -4
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +56 -8
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +9 -0
- package/dist/backend/backend/src/controllers/monitoring/terminal.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 +96 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/apps/apps.wiring.d.ts +11 -0
- package/dist/backend/backend/src/services/apps/apps.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/apps/apps.wiring.js +22 -1
- package/dist/backend/backend/src/services/apps/apps.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-item-card.d.ts +38 -17
- package/dist/backend/backend/src/services/open-items/open-item-card.d.ts.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-item-card.js +118 -31
- package/dist/backend/backend/src/services/open-items/open-item-card.js.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +50 -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 +95 -5
- package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-items.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-items.wiring.js +8 -0
- package/dist/backend/backend/src/services/open-items/open-items.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts +257 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.js +522 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.js.map +1 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.d.ts +76 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.js +130 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.js.map +1 -0
- package/dist/backend/backend/src/services/orc/owner-request-context.d.ts +119 -0
- package/dist/backend/backend/src/services/orc/owner-request-context.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/owner-request-context.js +163 -0
- package/dist/backend/backend/src/services/orc/owner-request-context.js.map +1 -0
- package/dist/backend/backend/src/services/orc/work-item-destination.d.ts +31 -4
- package/dist/backend/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.js +28 -8
- package/dist/backend/backend/src/services/orc/work-item-destination.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts +1 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js +8 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +19 -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 +34 -4
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +52 -4
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +56 -8
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-item-card.d.ts +38 -17
- package/dist/cli/backend/src/services/open-items/open-item-card.d.ts.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-item-card.js +118 -31
- package/dist/cli/backend/src/services/open-items/open-item-card.js.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-items.service.d.ts +50 -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 +95 -5
- package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -1
- package/dist/cli/backend/src/services/orc/owner-request-context.d.ts +119 -0
- package/dist/cli/backend/src/services/orc/owner-request-context.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/owner-request-context.js +163 -0
- package/dist/cli/backend/src/services/orc/owner-request-context.js.map +1 -0
- package/dist/cli/backend/src/services/orc/work-item-destination.d.ts +31 -4
- package/dist/cli/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
- package/dist/cli/backend/src/services/orc/work-item-destination.js +28 -8
- package/dist/cli/backend/src/services/orc/work-item-destination.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +19 -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 +34 -4
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wiring for {@link OwnerCompletionReportService}: where an owner origin is
|
|
3
|
+
* on this machine, how the harness posts its own summary there, and which
|
|
4
|
+
* posts count as "an agent answered there". The service stays transport-free.
|
|
5
|
+
*
|
|
6
|
+
* @module services/orc/owner-completion-report.wiring
|
|
7
|
+
*/
|
|
8
|
+
import { SLACK_THREAD_KEY_CONSTANTS, SLACK_TYPING_CONSTANTS } from '../../constants.js';
|
|
9
|
+
import { parseSlackThreadKey, slackThreadTag } from '../slack/slack-thread-key.js';
|
|
10
|
+
/**
|
|
11
|
+
* Resolve where an owner origin is.
|
|
12
|
+
*
|
|
13
|
+
* @param origin - Owner origin
|
|
14
|
+
* @param commentLink - App comment → its Slack thread
|
|
15
|
+
* @returns The place, or null when the origin names none
|
|
16
|
+
*/
|
|
17
|
+
export async function resolveReportPlace(origin, commentLink) {
|
|
18
|
+
const ac = origin.appComment;
|
|
19
|
+
if (ac?.appId && ac.commentId) {
|
|
20
|
+
const link = origin.slackChannelId && origin.threadTs
|
|
21
|
+
? { slackChannelId: origin.slackChannelId, threadTs: origin.threadTs }
|
|
22
|
+
: await commentLink(ac.appId, ac.commentId).catch(() => null);
|
|
23
|
+
return {
|
|
24
|
+
kind: 'app-comment',
|
|
25
|
+
appId: ac.appId,
|
|
26
|
+
commentId: ac.commentId,
|
|
27
|
+
...(link ? { slackChannelId: link.slackChannelId, threadTs: link.threadTs } : {}),
|
|
28
|
+
label: link
|
|
29
|
+
? `the owner's app comment (app ${ac.appId}, comment ${ac.commentId}; its Slack thread ${slackThreadTag(link.slackChannelId, link.threadTs)})`
|
|
30
|
+
: `the owner's app comment (app ${ac.appId}, comment ${ac.commentId})`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (origin.slackChannelId) {
|
|
34
|
+
return {
|
|
35
|
+
kind: 'slack',
|
|
36
|
+
slackChannelId: origin.slackChannelId,
|
|
37
|
+
...(origin.threadTs ? { threadTs: origin.threadTs } : {}),
|
|
38
|
+
label: origin.threadTs ? `Slack thread ${slackThreadTag(origin.slackChannelId, origin.threadTs)}` : `Slack conversation ${origin.slackChannelId}`,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (origin.conversationId) {
|
|
42
|
+
return {
|
|
43
|
+
kind: 'chat',
|
|
44
|
+
conversationId: origin.conversationId,
|
|
45
|
+
...(origin.chatThreadId ? { chatThreadId: origin.chatThreadId } : {}),
|
|
46
|
+
label: `the owner's Crewly chat (conversation ${origin.conversationId})`,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Post the harness's summary in the owner's place: an app comment gets a
|
|
53
|
+
* reply (mirrored to its Slack thread); Slack as the agent's bot, else as
|
|
54
|
+
* Crewly; a chat as the agent. Never throws.
|
|
55
|
+
*
|
|
56
|
+
* @param place - Where
|
|
57
|
+
* @param agentSession - The responsible agent
|
|
58
|
+
* @param text - The summary
|
|
59
|
+
* @param t - Transports
|
|
60
|
+
* @returns True when posted somewhere in that place
|
|
61
|
+
*/
|
|
62
|
+
export async function postReportFallback(place, agentSession, text, t) {
|
|
63
|
+
const attempt = async (fn) => {
|
|
64
|
+
if (!fn)
|
|
65
|
+
return false;
|
|
66
|
+
try {
|
|
67
|
+
await fn();
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
if (place.kind === 'app-comment') {
|
|
75
|
+
if (await attempt(t.replyComment ? () => t.replyComment(place.appId, place.commentId, agentSession, text) : null))
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
if (place.kind !== 'chat' && place.slackChannelId) {
|
|
79
|
+
const ch = place.slackChannelId;
|
|
80
|
+
if (await attempt(t.slackAsAgent ? () => t.slackAsAgent(agentSession, ch, text, place.threadTs) : null))
|
|
81
|
+
return true;
|
|
82
|
+
if (await attempt(t.slackAsCrewly ? () => t.slackAsCrewly(ch, text, place.threadTs) : null))
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
if (place.kind === 'chat') {
|
|
86
|
+
return attempt(t.chatAsAgent ? () => t.chatAsAgent(place.conversationId, agentSession, text) : null);
|
|
87
|
+
}
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Feed a chat-v2 row: an agent's (non-interim) post answers its conversation
|
|
92
|
+
* (and the Slack thread its reply was mirrored into).
|
|
93
|
+
*
|
|
94
|
+
* @param service - The report service
|
|
95
|
+
* @param message - The row
|
|
96
|
+
*/
|
|
97
|
+
export function onChatRow(service, message) {
|
|
98
|
+
if (message.senderType !== 'agent')
|
|
99
|
+
return;
|
|
100
|
+
const meta = message.metadata ?? {};
|
|
101
|
+
if (meta[SLACK_TYPING_CONSTANTS.INTERIM_METADATA_KEY] === true)
|
|
102
|
+
return;
|
|
103
|
+
service.noteChatAnswer(message.channelId, message.threadId);
|
|
104
|
+
const key = parseSlackThreadKey(meta[SLACK_THREAD_KEY_CONSTANTS.METADATA_KEY]);
|
|
105
|
+
if (key)
|
|
106
|
+
service.noteSlackAnswer(key.slackChannelId, key.threadTs);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Feed a Slack post made through this machine's SlackService.
|
|
110
|
+
*
|
|
111
|
+
* @param service - The report service
|
|
112
|
+
* @param post - Where it went
|
|
113
|
+
*/
|
|
114
|
+
export function onSlackOutboundPost(service, post) {
|
|
115
|
+
if (post.notAnAnswer || !post.channelId)
|
|
116
|
+
return;
|
|
117
|
+
service.noteSlackAnswer(post.channelId, post.threadTs);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Feed an inbound Slack message: an agent (any machine) posting there.
|
|
121
|
+
*
|
|
122
|
+
* @param service - The report service
|
|
123
|
+
* @param message - Inbound fields
|
|
124
|
+
*/
|
|
125
|
+
export function onSlackInboundPost(service, message) {
|
|
126
|
+
if (!message.authorAgentSession || !message.channelId)
|
|
127
|
+
return;
|
|
128
|
+
service.noteSlackAnswer(message.channelId, message.threadTs);
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=owner-completion-report.wiring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-completion-report.wiring.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orc/owner-completion-report.wiring.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Owner requests an agent is handling that are not chat turns.
|
|
3
|
+
*
|
|
4
|
+
* A chat / Slack message from the owner becomes the agent's turn origin
|
|
5
|
+
* (OrcReplyRouteService) and the work it starts inherits an owner origin.
|
|
6
|
+
* Two other ways an owner request reaches an agent left no trace:
|
|
7
|
+
*
|
|
8
|
+
* - an app comment: the owner commented in a Crewly App and the comment was
|
|
9
|
+
* delivered to the app's agent as an `[APP CHANGES]` message (no `[CHAT:…]`
|
|
10
|
+
* header, so no turn origin);
|
|
11
|
+
* - a hand-over: the agent that got the owner's request messaged a colleague
|
|
12
|
+
* (send-message) to do it.
|
|
13
|
+
*
|
|
14
|
+
* Incident 2026-10-07: the owner's comment in the schedule app reached Lyra,
|
|
15
|
+
* Lyra handed it to Ella by message, Ella opened CREW-305/309/310 and
|
|
16
|
+
* delegated them. Every item was verified and nobody told the owner: none of
|
|
17
|
+
* them carried an owner origin.
|
|
18
|
+
*
|
|
19
|
+
* This registry remembers, per agent session, the owner request it is
|
|
20
|
+
* handling, in memory like turn origins, while it is fresh
|
|
21
|
+
* (`OWNER_COMPLETION_REPORT_CONSTANTS.CONTEXT_FRESH_MS`). The task pool reads
|
|
22
|
+
* it when the agent creates work (`inheritedOrigin`).
|
|
23
|
+
*
|
|
24
|
+
* @module services/orc/owner-request-context
|
|
25
|
+
*/
|
|
26
|
+
import type { WorkItemOrigin } from './work-item-destination.js';
|
|
27
|
+
/** An owner request an agent is handling. */
|
|
28
|
+
export interface OwnerRequestContext {
|
|
29
|
+
/** The owner origin work started from it inherits */
|
|
30
|
+
origin: Extract<WorkItemOrigin, {
|
|
31
|
+
kind: 'owner';
|
|
32
|
+
}>;
|
|
33
|
+
/** When it reached this agent (epoch ms) */
|
|
34
|
+
at: number;
|
|
35
|
+
/** How it reached this agent */
|
|
36
|
+
via: 'app-comment' | 'hand-over';
|
|
37
|
+
}
|
|
38
|
+
/** Resolves an app comment to the Slack thread it is mirrored in, when there is one. */
|
|
39
|
+
export type AppCommentThreadResolver = (appId: string, commentId: string) => Promise<{
|
|
40
|
+
slackChannelId: string;
|
|
41
|
+
threadTs: string;
|
|
42
|
+
} | null>;
|
|
43
|
+
/** The sender's owner turn, as an owner origin (null when it has no fresh one). */
|
|
44
|
+
export type TurnOwnerOriginLookup = (session: string, now: number) => {
|
|
45
|
+
origin: Extract<WorkItemOrigin, {
|
|
46
|
+
kind: 'owner';
|
|
47
|
+
}>;
|
|
48
|
+
at: number;
|
|
49
|
+
} | null;
|
|
50
|
+
/** Per-session owner request contexts. */
|
|
51
|
+
export declare class OwnerRequestContextRegistry {
|
|
52
|
+
private readonly contexts;
|
|
53
|
+
private appCommentThread;
|
|
54
|
+
private turnLookup;
|
|
55
|
+
/**
|
|
56
|
+
* Wire how an app comment resolves to its Slack thread (apps wiring).
|
|
57
|
+
*
|
|
58
|
+
* @param resolver - Resolver, or null
|
|
59
|
+
*/
|
|
60
|
+
setAppCommentThreadResolver(resolver: AppCommentThreadResolver | null): void;
|
|
61
|
+
/**
|
|
62
|
+
* Wire the sender's owner chat turn lookup used by {@link relay} (boot).
|
|
63
|
+
*
|
|
64
|
+
* @param lookup - Lookup, or null
|
|
65
|
+
*/
|
|
66
|
+
setTurnLookup(lookup: TurnOwnerOriginLookup | null): void;
|
|
67
|
+
/**
|
|
68
|
+
* An owner app comment was delivered to `session`.
|
|
69
|
+
*
|
|
70
|
+
* @param session - Receiving agent
|
|
71
|
+
* @param comment - App and comment id
|
|
72
|
+
* @param now - Clock
|
|
73
|
+
*/
|
|
74
|
+
noteAppComment(session: string, comment: {
|
|
75
|
+
appId: string;
|
|
76
|
+
commentId: string;
|
|
77
|
+
}, now?: number): void;
|
|
78
|
+
/**
|
|
79
|
+
* `sender` messaged `target`: when the sender is handling a fresh owner
|
|
80
|
+
* request (its own chat turn or a context), the target now handles it too.
|
|
81
|
+
* The origin keeps who received it from the owner. A target with a newer
|
|
82
|
+
* owner request of its own keeps that one.
|
|
83
|
+
*
|
|
84
|
+
* @param sender - Sending agent
|
|
85
|
+
* @param target - Receiving agent
|
|
86
|
+
* @param now - Clock
|
|
87
|
+
* @returns True when the target took the sender's request
|
|
88
|
+
*/
|
|
89
|
+
relay(sender: string, target: string, now?: number): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* The fresh owner request `session` is handling, if any.
|
|
92
|
+
*
|
|
93
|
+
* @param session - Agent
|
|
94
|
+
* @param now - Clock
|
|
95
|
+
* @returns The context, or null
|
|
96
|
+
*/
|
|
97
|
+
get(session: string, now?: number): OwnerRequestContext | null;
|
|
98
|
+
/**
|
|
99
|
+
* {@link get}, with an app comment origin completed with the comment's
|
|
100
|
+
* Slack thread (so the work's answers land in it). Never throws.
|
|
101
|
+
*
|
|
102
|
+
* @param session - Agent
|
|
103
|
+
* @param now - Clock
|
|
104
|
+
* @returns The context, or null
|
|
105
|
+
*/
|
|
106
|
+
resolve(session: string, now?: number): Promise<OwnerRequestContext | null>;
|
|
107
|
+
/** Forget everything (tests). */
|
|
108
|
+
clear(): void;
|
|
109
|
+
private set;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* The process-wide registry.
|
|
113
|
+
*
|
|
114
|
+
* @returns The registry
|
|
115
|
+
*/
|
|
116
|
+
export declare function getOwnerRequestContext(): OwnerRequestContextRegistry;
|
|
117
|
+
/** Drop the process-wide registry (tests). */
|
|
118
|
+
export declare function resetOwnerRequestContext(): void;
|
|
119
|
+
//# sourceMappingURL=owner-request-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-request-context.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orc/owner-request-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,6CAA6C;AAC7C,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnD,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,GAAG,EAAE,aAAa,GAAG,WAAW,CAAC;CAClC;AAED,wFAAwF;AACxF,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC;AAE1I,mFAAmF;AACnF,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK;IAAE,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC;AAEhJ,0CAA0C;AAC1C,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IACnE,OAAO,CAAC,gBAAgB,CAAyC;IACjE,OAAO,CAAC,UAAU,CAAsC;IAExD;;;;OAIG;IACH,2BAA2B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI,GAAG,IAAI;IAI5E;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI;IAIzD;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI;IAS9G;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO;IAcxE;;;;;;OAMG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,mBAAmB,GAAG,IAAI;IAU1E;;;;;;;OAOG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAa7F,iCAAiC;IACjC,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,GAAG;CASZ;AAID;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,2BAA2B,CAGpE;AAED,8CAA8C;AAC9C,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Owner requests an agent is handling that are not chat turns.
|
|
3
|
+
*
|
|
4
|
+
* A chat / Slack message from the owner becomes the agent's turn origin
|
|
5
|
+
* (OrcReplyRouteService) and the work it starts inherits an owner origin.
|
|
6
|
+
* Two other ways an owner request reaches an agent left no trace:
|
|
7
|
+
*
|
|
8
|
+
* - an app comment: the owner commented in a Crewly App and the comment was
|
|
9
|
+
* delivered to the app's agent as an `[APP CHANGES]` message (no `[CHAT:…]`
|
|
10
|
+
* header, so no turn origin);
|
|
11
|
+
* - a hand-over: the agent that got the owner's request messaged a colleague
|
|
12
|
+
* (send-message) to do it.
|
|
13
|
+
*
|
|
14
|
+
* Incident 2026-10-07: the owner's comment in the schedule app reached Lyra,
|
|
15
|
+
* Lyra handed it to Ella by message, Ella opened CREW-305/309/310 and
|
|
16
|
+
* delegated them. Every item was verified and nobody told the owner: none of
|
|
17
|
+
* them carried an owner origin.
|
|
18
|
+
*
|
|
19
|
+
* This registry remembers, per agent session, the owner request it is
|
|
20
|
+
* handling, in memory like turn origins, while it is fresh
|
|
21
|
+
* (`OWNER_COMPLETION_REPORT_CONSTANTS.CONTEXT_FRESH_MS`). The task pool reads
|
|
22
|
+
* it when the agent creates work (`inheritedOrigin`).
|
|
23
|
+
*
|
|
24
|
+
* @module services/orc/owner-request-context
|
|
25
|
+
*/
|
|
26
|
+
import { OWNER_COMPLETION_REPORT_CONSTANTS as C } from '../../constants.js';
|
|
27
|
+
/** Per-session owner request contexts. */
|
|
28
|
+
export class OwnerRequestContextRegistry {
|
|
29
|
+
contexts = new Map();
|
|
30
|
+
appCommentThread = null;
|
|
31
|
+
turnLookup = null;
|
|
32
|
+
/**
|
|
33
|
+
* Wire how an app comment resolves to its Slack thread (apps wiring).
|
|
34
|
+
*
|
|
35
|
+
* @param resolver - Resolver, or null
|
|
36
|
+
*/
|
|
37
|
+
setAppCommentThreadResolver(resolver) {
|
|
38
|
+
this.appCommentThread = resolver;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Wire the sender's owner chat turn lookup used by {@link relay} (boot).
|
|
42
|
+
*
|
|
43
|
+
* @param lookup - Lookup, or null
|
|
44
|
+
*/
|
|
45
|
+
setTurnLookup(lookup) {
|
|
46
|
+
this.turnLookup = lookup;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* An owner app comment was delivered to `session`.
|
|
50
|
+
*
|
|
51
|
+
* @param session - Receiving agent
|
|
52
|
+
* @param comment - App and comment id
|
|
53
|
+
* @param now - Clock
|
|
54
|
+
*/
|
|
55
|
+
noteAppComment(session, comment, now = Date.now()) {
|
|
56
|
+
if (!session || !comment.appId || !comment.commentId)
|
|
57
|
+
return;
|
|
58
|
+
this.set(session, {
|
|
59
|
+
origin: { kind: 'owner', receivedBy: session, appComment: { appId: comment.appId, commentId: comment.commentId } },
|
|
60
|
+
at: now,
|
|
61
|
+
via: 'app-comment',
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* `sender` messaged `target`: when the sender is handling a fresh owner
|
|
66
|
+
* request (its own chat turn or a context), the target now handles it too.
|
|
67
|
+
* The origin keeps who received it from the owner. A target with a newer
|
|
68
|
+
* owner request of its own keeps that one.
|
|
69
|
+
*
|
|
70
|
+
* @param sender - Sending agent
|
|
71
|
+
* @param target - Receiving agent
|
|
72
|
+
* @param now - Clock
|
|
73
|
+
* @returns True when the target took the sender's request
|
|
74
|
+
*/
|
|
75
|
+
relay(sender, target, now = Date.now()) {
|
|
76
|
+
if (!sender || !target || sender === target)
|
|
77
|
+
return false;
|
|
78
|
+
const fromTurn = this.turnLookup?.(sender, now) ?? null;
|
|
79
|
+
const own = this.get(sender, now);
|
|
80
|
+
const best = fromTurn && own ? (own.at > fromTurn.at ? own : fromTurn) : own ?? fromTurn;
|
|
81
|
+
if (!best)
|
|
82
|
+
return false;
|
|
83
|
+
const targetTurn = this.turnLookup?.(target, now) ?? null;
|
|
84
|
+
const current = this.get(target, now);
|
|
85
|
+
if (targetTurn && targetTurn.at > best.at)
|
|
86
|
+
return false;
|
|
87
|
+
if (current && current.via === 'app-comment' && current.at > best.at)
|
|
88
|
+
return false;
|
|
89
|
+
this.set(target, { origin: { ...best.origin, receivedBy: best.origin.receivedBy ?? sender }, at: now, via: 'hand-over' });
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The fresh owner request `session` is handling, if any.
|
|
94
|
+
*
|
|
95
|
+
* @param session - Agent
|
|
96
|
+
* @param now - Clock
|
|
97
|
+
* @returns The context, or null
|
|
98
|
+
*/
|
|
99
|
+
get(session, now = Date.now()) {
|
|
100
|
+
const ctx = this.contexts.get(session);
|
|
101
|
+
if (!ctx)
|
|
102
|
+
return null;
|
|
103
|
+
if (now - ctx.at > C.CONTEXT_FRESH_MS) {
|
|
104
|
+
this.contexts.delete(session);
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
return ctx;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* {@link get}, with an app comment origin completed with the comment's
|
|
111
|
+
* Slack thread (so the work's answers land in it). Never throws.
|
|
112
|
+
*
|
|
113
|
+
* @param session - Agent
|
|
114
|
+
* @param now - Clock
|
|
115
|
+
* @returns The context, or null
|
|
116
|
+
*/
|
|
117
|
+
async resolve(session, now = Date.now()) {
|
|
118
|
+
const ctx = this.get(session, now);
|
|
119
|
+
if (!ctx)
|
|
120
|
+
return null;
|
|
121
|
+
const ac = ctx.origin.appComment;
|
|
122
|
+
if (!ac || ctx.origin.slackChannelId || !this.appCommentThread)
|
|
123
|
+
return ctx;
|
|
124
|
+
const thread = await this.appCommentThread(ac.appId, ac.commentId).catch(() => null);
|
|
125
|
+
if (!thread)
|
|
126
|
+
return ctx;
|
|
127
|
+
const resolved = { ...ctx, origin: { ...ctx.origin, slackChannelId: thread.slackChannelId, threadTs: thread.threadTs } };
|
|
128
|
+
// Keep the resolved form while it is still the current one.
|
|
129
|
+
if (this.contexts.get(session) === ctx)
|
|
130
|
+
this.contexts.set(session, resolved);
|
|
131
|
+
return resolved;
|
|
132
|
+
}
|
|
133
|
+
/** Forget everything (tests). */
|
|
134
|
+
clear() {
|
|
135
|
+
this.contexts.clear();
|
|
136
|
+
}
|
|
137
|
+
set(session, ctx) {
|
|
138
|
+
this.contexts.delete(session);
|
|
139
|
+
this.contexts.set(session, ctx);
|
|
140
|
+
while (this.contexts.size > C.MAX_CONTEXT_SESSIONS) {
|
|
141
|
+
const oldest = this.contexts.keys().next().value;
|
|
142
|
+
if (oldest === undefined)
|
|
143
|
+
break;
|
|
144
|
+
this.contexts.delete(oldest);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
let registry = null;
|
|
149
|
+
/**
|
|
150
|
+
* The process-wide registry.
|
|
151
|
+
*
|
|
152
|
+
* @returns The registry
|
|
153
|
+
*/
|
|
154
|
+
export function getOwnerRequestContext() {
|
|
155
|
+
if (!registry)
|
|
156
|
+
registry = new OwnerRequestContextRegistry();
|
|
157
|
+
return registry;
|
|
158
|
+
}
|
|
159
|
+
/** Drop the process-wide registry (tests). */
|
|
160
|
+
export function resetOwnerRequestContext() {
|
|
161
|
+
registry = null;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=owner-request-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-request-context.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orc/owner-request-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,13 +24,22 @@ import type { WorkItem } from '../../types/v2/work-item.types.js';
|
|
|
24
24
|
import type { TurnOrigin } from './orc-reply-route.service.js';
|
|
25
25
|
/** The origin a work item carries in `metadata.origin`. */
|
|
26
26
|
export type WorkItemOrigin =
|
|
27
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Asked by the owner in a conversation / Slack thread / app comment.
|
|
29
|
+
* `receivedBy`: the agent the owner's message reached (it reports the
|
|
30
|
+
* finished work back); `appComment`: the Crewly App comment it came from.
|
|
31
|
+
*/
|
|
28
32
|
{
|
|
29
33
|
kind: 'owner';
|
|
30
34
|
conversationId?: string;
|
|
31
35
|
slackChannelId?: string;
|
|
32
36
|
threadTs?: string;
|
|
33
37
|
chatThreadId?: string;
|
|
38
|
+
receivedBy?: string;
|
|
39
|
+
appComment?: {
|
|
40
|
+
appId: string;
|
|
41
|
+
commentId: string;
|
|
42
|
+
};
|
|
34
43
|
}
|
|
35
44
|
/** Work on a project ticket */
|
|
36
45
|
| {
|
|
@@ -122,9 +131,10 @@ export declare function originOfWorkItem(wi: WorkItem): WorkItemOrigin | null;
|
|
|
122
131
|
* The origin an owner turn gives the work started from it.
|
|
123
132
|
*
|
|
124
133
|
* @param turn - The owner's turn origin (OrcReplyRouteService)
|
|
134
|
+
* @param receivedBy - The agent the owner's message reached, when known
|
|
125
135
|
* @returns An owner origin
|
|
126
136
|
*/
|
|
127
|
-
export declare function ownerOriginFromTurn(turn: TurnOrigin): WorkItemOrigin;
|
|
137
|
+
export declare function ownerOriginFromTurn(turn: TurnOrigin, receivedBy?: string): WorkItemOrigin;
|
|
128
138
|
/** Inputs of {@link inheritedOrigin}. */
|
|
129
139
|
export interface InheritOriginInput {
|
|
130
140
|
/** The item being created */
|
|
@@ -135,6 +145,17 @@ export interface InheritOriginInput {
|
|
|
135
145
|
creatorDestination: WorkDestination | null;
|
|
136
146
|
/** The creating agent's current work item */
|
|
137
147
|
creatorWorkItem: WorkItem | null;
|
|
148
|
+
/** The creating agent (stamped as `receivedBy` on an owner origin taken from its turn) */
|
|
149
|
+
creatorSession?: string;
|
|
150
|
+
/**
|
|
151
|
+
* An owner request the creator is handling that is not a chat turn: an
|
|
152
|
+
* app comment delivered to it, or an owner request a colleague handed it
|
|
153
|
+
* (see `owner-request-context.ts`). `at` = when it reached the creator.
|
|
154
|
+
*/
|
|
155
|
+
creatorOwnerContext?: {
|
|
156
|
+
origin: WorkItemOrigin;
|
|
157
|
+
at: number;
|
|
158
|
+
} | null;
|
|
138
159
|
}
|
|
139
160
|
/**
|
|
140
161
|
* The origin a new work item inherits (owner request → delegate → verify /
|
|
@@ -143,8 +164,14 @@ export interface InheritOriginInput {
|
|
|
143
164
|
* Atlas with no origin, and the answer's file landed in an unrelated thread.
|
|
144
165
|
*
|
|
145
166
|
* Order: an origin already stamped wins (null = keep it); then the parent's;
|
|
146
|
-
* then the creator's current owner request
|
|
147
|
-
*
|
|
167
|
+
* then the creator's current owner request (the newer of its owner turn and
|
|
168
|
+
* its owner context — an app comment or a colleague's hand-over — when that
|
|
169
|
+
* is newer than its current work item); then the creator's current work
|
|
170
|
+
* item's.
|
|
171
|
+
*
|
|
172
|
+
* Incident 2026-10-07: the owner's app comment reached Lyra (no chat turn),
|
|
173
|
+
* Lyra handed it to Ella by message, and Ella's tickets carried no owner
|
|
174
|
+
* origin, so nothing linked their completion back to the owner.
|
|
148
175
|
*
|
|
149
176
|
* @param input - New item, its parent, the creator's current work
|
|
150
177
|
* @returns The origin to stamp, or null (nothing to inherit / already stamped)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-item-destination.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orc/work-item-destination.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,mCAAmC,CAAC;AAClF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG/D,2DAA2D;AAC3D,MAAM,MAAM,cAAc;AACxB
|
|
1
|
+
{"version":3,"file":"work-item-destination.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orc/work-item-destination.ts"],"names":[],"mappings":"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"}
|
|
@@ -118,9 +118,10 @@ export function originOfWorkItem(wi) {
|
|
|
118
118
|
* The origin an owner turn gives the work started from it.
|
|
119
119
|
*
|
|
120
120
|
* @param turn - The owner's turn origin (OrcReplyRouteService)
|
|
121
|
+
* @param receivedBy - The agent the owner's message reached, when known
|
|
121
122
|
* @returns An owner origin
|
|
122
123
|
*/
|
|
123
|
-
export function ownerOriginFromTurn(turn) {
|
|
124
|
+
export function ownerOriginFromTurn(turn, receivedBy) {
|
|
124
125
|
const key = parseSlackThreadKey(turn.slackThreadKey);
|
|
125
126
|
const slackChannelId = key?.slackChannelId ?? turn.slackChannelId;
|
|
126
127
|
const threadTs = key?.threadTs ?? turn.slackThreadTs;
|
|
@@ -130,6 +131,7 @@ export function ownerOriginFromTurn(turn) {
|
|
|
130
131
|
...(slackChannelId ? { slackChannelId } : {}),
|
|
131
132
|
...(threadTs ? { threadTs } : {}),
|
|
132
133
|
...(turn.chatThreadId ? { chatThreadId: turn.chatThreadId } : {}),
|
|
134
|
+
...(receivedBy ? { receivedBy } : {}),
|
|
133
135
|
};
|
|
134
136
|
}
|
|
135
137
|
/**
|
|
@@ -139,8 +141,14 @@ export function ownerOriginFromTurn(turn) {
|
|
|
139
141
|
* Atlas with no origin, and the answer's file landed in an unrelated thread.
|
|
140
142
|
*
|
|
141
143
|
* Order: an origin already stamped wins (null = keep it); then the parent's;
|
|
142
|
-
* then the creator's current owner request
|
|
143
|
-
*
|
|
144
|
+
* then the creator's current owner request (the newer of its owner turn and
|
|
145
|
+
* its owner context — an app comment or a colleague's hand-over — when that
|
|
146
|
+
* is newer than its current work item); then the creator's current work
|
|
147
|
+
* item's.
|
|
148
|
+
*
|
|
149
|
+
* Incident 2026-10-07: the owner's app comment reached Lyra (no chat turn),
|
|
150
|
+
* Lyra handed it to Ella by message, and Ella's tickets carried no owner
|
|
151
|
+
* origin, so nothing linked their completion back to the owner.
|
|
144
152
|
*
|
|
145
153
|
* @param input - New item, its parent, the creator's current work
|
|
146
154
|
* @returns The origin to stamp, or null (nothing to inherit / already stamped)
|
|
@@ -154,12 +162,24 @@ export function inheritedOrigin(input) {
|
|
|
154
162
|
if (fromParent)
|
|
155
163
|
return fromParent;
|
|
156
164
|
}
|
|
165
|
+
const { creatorWorkItem, creatorSession } = input;
|
|
166
|
+
const wiStart = creatorWorkItem ? startOf(creatorWorkItem) : -Infinity;
|
|
167
|
+
const wiOrigin = creatorWorkItem ? originOfWorkItem(creatorWorkItem) : null;
|
|
168
|
+
let fromTurn = null;
|
|
157
169
|
const dest = input.creatorDestination;
|
|
158
|
-
if (dest?.kind === 'owner-origin')
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
170
|
+
if (dest?.kind === 'owner-origin') {
|
|
171
|
+
// planWorkDestination also answers owner-origin for a work item that was
|
|
172
|
+
// itself asked by the owner (receivedAt = its start): keep that item's
|
|
173
|
+
// own origin then, which knows who received the request.
|
|
174
|
+
const isTheWorkItem = !!creatorWorkItem && wiOrigin?.kind === 'owner' && dest.origin.receivedAt <= wiStart;
|
|
175
|
+
if (!isTheWorkItem)
|
|
176
|
+
fromTurn = { origin: ownerOriginFromTurn(dest.origin, creatorSession), at: dest.origin.receivedAt };
|
|
177
|
+
}
|
|
178
|
+
const ctx = input.creatorOwnerContext && input.creatorOwnerContext.at >= wiStart ? input.creatorOwnerContext : null;
|
|
179
|
+
const pick = fromTurn && ctx ? (ctx.at > fromTurn.at ? ctx : fromTurn) : fromTurn ?? ctx;
|
|
180
|
+
if (pick)
|
|
181
|
+
return pick.origin;
|
|
182
|
+
return wiOrigin;
|
|
163
183
|
}
|
|
164
184
|
/**
|
|
165
185
|
* Shape check for a stamped origin.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-item-destination.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orc/work-item-destination.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"work-item-destination.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orc/work-item-destination.ts"],"names":[],"mappings":"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"}
|
package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export type ProjectTicketAccess = 'owner' | 'orchestrator' | 'lead' | 'member' |
|
|
|
31
31
|
export interface ProjectTicketPool {
|
|
32
32
|
addToPool(workItem: WorkItem, options?: {
|
|
33
33
|
creatorSession?: string;
|
|
34
|
+
ownerOriginOnly?: boolean;
|
|
34
35
|
}): Promise<void>;
|
|
35
36
|
claimSpecificItem(agentId: string, workItemId: string): Promise<{
|
|
36
37
|
workItem: WorkItem;
|