crewly 1.20.385 → 1.20.387
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 +6 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +6 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js +24 -1
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +6 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-meeting-pack.d.ts.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-meeting-pack.js +3 -0
- package/dist/backend/backend/src/services/drive/drive-meeting-pack.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +4 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts +22 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js +52 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts +30 -0
- package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-agent-post.service.js +43 -0
- package/dist/backend/backend/src/services/slack/slack-agent-post.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 +7 -0
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.d.ts +26 -0
- package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.js +134 -80
- package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-post-log.d.ts +48 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-post-log.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-post-log.js +101 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-post-log.js.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.d.ts +33 -2
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.js +57 -3
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.js.map +1 -1
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.loader.d.ts +4 -2
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.loader.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.loader.js +6 -3
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.loader.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +6 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +6 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/template/template.service.d.ts +26 -0
- package/dist/cli/backend/src/services/template/template.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/template/template.service.js +134 -80
- package/dist/cli/backend/src/services/template/template.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-pulls-post-log.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/v3/owner-receipt/owner-pulls-post-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEjF,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yCAAyC;AACzC,qBAAa,iBAAiB;IAQH,OAAO,CAAC,QAAQ,CAAC,GAAG;IAP7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,KAAK,CAAuC;IAEpD;;;OAGG;gBACS,GAAG,EAAE,MAAM,EAAmB,GAAG,GAAE,MAAM,IAAuB;IAI5E;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7C;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAK1B,QAAQ;IAsBtB,qDAAqD;YACvC,IAAI;CAOnB"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Post log for the weekly owner-pulls line (#1387): one JSON line per post an
|
|
3
|
+
* agent started in a DM — a top-level post while it owed no answer there
|
|
4
|
+
* (decided by `SlackAgentPostService`, reported by `onAgentStartedDmPost`).
|
|
5
|
+
* Nothing else records these, and they are where an "FYI that did not need an
|
|
6
|
+
* answer" comes from.
|
|
7
|
+
*
|
|
8
|
+
* Only who, when and whether it ended with a question are kept, never the
|
|
9
|
+
* text. Append-only, best effort: a failed write is logged and never blocks a
|
|
10
|
+
* post. Past {@link OWNER_RECEIPT_CONSTANTS.PULLS_WEEKLY.POST_LOG_MAX_BYTES}
|
|
11
|
+
* the file is rewritten with the last two weeks only.
|
|
12
|
+
*
|
|
13
|
+
* @module services/v3/owner-receipt/owner-pulls-post-log
|
|
14
|
+
*/
|
|
15
|
+
import * as fs from 'fs/promises';
|
|
16
|
+
import * as path from 'path';
|
|
17
|
+
import { OWNER_RECEIPT_CONSTANTS } from '../../../constants.js';
|
|
18
|
+
import { LoggerService } from '../../core/logger.service.js';
|
|
19
|
+
import { endsWithQuestion } from './owner-pulls-weekly.js';
|
|
20
|
+
/** File-backed post log (JSON lines). */
|
|
21
|
+
export class OwnerPullsPostLog {
|
|
22
|
+
now;
|
|
23
|
+
file;
|
|
24
|
+
chain = Promise.resolve();
|
|
25
|
+
/**
|
|
26
|
+
* @param dir - Directory (the Request files' directory)
|
|
27
|
+
* @param now - Clock
|
|
28
|
+
*/
|
|
29
|
+
constructor(dir, now = () => new Date()) {
|
|
30
|
+
this.now = now;
|
|
31
|
+
this.file = path.join(dir, OWNER_RECEIPT_CONSTANTS.PULLS_WEEKLY.POST_LOG_FILENAME);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Log a post an agent started in a DM.
|
|
35
|
+
*
|
|
36
|
+
* @param post - The reported post
|
|
37
|
+
* @returns Resolves once written (or skipped when it has no text)
|
|
38
|
+
*/
|
|
39
|
+
note(post) {
|
|
40
|
+
if (!post.agent || !post.text.trim())
|
|
41
|
+
return Promise.resolve();
|
|
42
|
+
const record = { at: this.now().toISOString(), agent: post.agent, endsWithQuestion: endsWithQuestion(post.text) };
|
|
43
|
+
const run = this.chain.then(async () => {
|
|
44
|
+
try {
|
|
45
|
+
await fs.appendFile(this.file, `${JSON.stringify(record)}\n`, 'utf8');
|
|
46
|
+
const { size } = await fs.stat(this.file);
|
|
47
|
+
if (size > OWNER_RECEIPT_CONSTANTS.PULLS_WEEKLY.POST_LOG_MAX_BYTES)
|
|
48
|
+
await this.trim();
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
LoggerService.getInstance()
|
|
52
|
+
.createComponentLogger('OwnerPullsPostLog')
|
|
53
|
+
.warn('Agent post could not be logged (non-fatal)', { error: err instanceof Error ? err.message : String(err) });
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
this.chain = run.catch(() => undefined);
|
|
57
|
+
return run;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Read every logged post. Malformed lines are skipped.
|
|
61
|
+
*
|
|
62
|
+
* @returns Posts, oldest first
|
|
63
|
+
*/
|
|
64
|
+
async read() {
|
|
65
|
+
await this.chain;
|
|
66
|
+
return this.readFile();
|
|
67
|
+
}
|
|
68
|
+
async readFile() {
|
|
69
|
+
let raw;
|
|
70
|
+
try {
|
|
71
|
+
raw = await fs.readFile(this.file, 'utf8');
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
const out = [];
|
|
77
|
+
for (const line of raw.split('\n')) {
|
|
78
|
+
if (!line.trim())
|
|
79
|
+
continue;
|
|
80
|
+
try {
|
|
81
|
+
const obj = JSON.parse(line);
|
|
82
|
+
if (typeof obj.at === 'string' && typeof obj.agent === 'string') {
|
|
83
|
+
out.push({ at: obj.at, agent: obj.agent, endsWithQuestion: obj.endsWithQuestion === true });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
/* skip a torn line */
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return out;
|
|
91
|
+
}
|
|
92
|
+
/** Keep only the two weeks the weekly line reads. */
|
|
93
|
+
async trim() {
|
|
94
|
+
const keepFrom = this.now().getTime() - 2 * OWNER_RECEIPT_CONSTANTS.PULLS_WEEKLY.WINDOW_MS;
|
|
95
|
+
const kept = (await this.readFile()).filter((p) => Date.parse(p.at) >= keepFrom);
|
|
96
|
+
const tmp = `${this.file}.tmp`;
|
|
97
|
+
await fs.writeFile(tmp, kept.map((p) => `${JSON.stringify(p)}\n`).join(''), 'utf8');
|
|
98
|
+
await fs.rename(tmp, this.file);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=owner-pulls-post-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-pulls-post-log.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/v3/owner-receipt/owner-pulls-post-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Owner pulls, weekly (#1387
|
|
2
|
+
* Owner pulls, weekly (#1387) — how often agents put something in
|
|
3
3
|
* front of the owner, by kind and by team, and what became of it.
|
|
4
4
|
*
|
|
5
5
|
* Measures only; it never changes when agents ping the owner. Pure functions:
|
|
@@ -44,7 +44,8 @@ export interface PullRecord {
|
|
|
44
44
|
kind: PullKind;
|
|
45
45
|
/** Team name, or the unknown-team label */
|
|
46
46
|
team: string;
|
|
47
|
-
|
|
47
|
+
/** What became of it; absent when nothing tracks it (a plain agent post) */
|
|
48
|
+
outcome?: PullOutcome;
|
|
48
49
|
}
|
|
49
50
|
/** Facts about one agent post to the owner that is not a card. */
|
|
50
51
|
export interface AgentPostFacts {
|
|
@@ -104,10 +105,40 @@ export declare function pullsFromOpenItems(items: ReadonlyArray<{
|
|
|
104
105
|
requestId: string;
|
|
105
106
|
item: RequestOpenItem;
|
|
106
107
|
}>, cardedKeys: ReadonlySet<string>, teamOfAgent: (session: string) => string | null): PullRecord[];
|
|
108
|
+
/** An agent-started post in the owner's DM, as the post log keeps it. */
|
|
109
|
+
export interface AgentPostRecord {
|
|
110
|
+
/** When it was posted (ISO) */
|
|
111
|
+
at: string;
|
|
112
|
+
/** Agent session that posted */
|
|
113
|
+
agent: string;
|
|
114
|
+
/** Its last sentence is a question */
|
|
115
|
+
endsWithQuestion: boolean;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Whether a post's last sentence is a question (`?` or `?` at its end, past
|
|
119
|
+
* trailing emoji, quotes and closing brackets).
|
|
120
|
+
*
|
|
121
|
+
* @param text - Post text
|
|
122
|
+
* @returns True when it ends with a question
|
|
123
|
+
*/
|
|
124
|
+
export declare function endsWithQuestion(text: string): boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Turn agent-started posts in the owner's DM into pull records, by the FYI
|
|
127
|
+
* rule. A post the same agent made right around a card it opened is that
|
|
128
|
+
* card's post: the card already counts it. Whether a WorkItem then stayed
|
|
129
|
+
* blocked on the owner is not known for a post, so rule 3 is not applied.
|
|
130
|
+
*
|
|
131
|
+
* @param posts - Logged posts
|
|
132
|
+
* @param decisions - Every card (for rule 2)
|
|
133
|
+
* @param teamOfAgent - Team name for an agent session, or null
|
|
134
|
+
* @returns Records (no outcome: nothing tracks an answer to a plain post)
|
|
135
|
+
*/
|
|
136
|
+
export declare function pullsFromAgentPosts(posts: readonly AgentPostRecord[], decisions: readonly OwnerDecision[], teamOfAgent: (session: string) => string | null): PullRecord[];
|
|
107
137
|
/** Counts for one week. */
|
|
108
138
|
export interface PullsWeek {
|
|
109
139
|
total: number;
|
|
110
140
|
byKind: Record<PullKind, number>;
|
|
141
|
+
/** Only pulls whose outcome is tracked (not plain agent posts) */
|
|
111
142
|
byOutcome: Record<PullOutcome, number>;
|
|
112
143
|
/** Most pulls first, then by name */
|
|
113
144
|
byTeam: Array<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-pulls-weekly.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/v3/owner-receipt/owner-pulls-weekly.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,4CAA4C;AAC5C,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;AAE/D,oDAAoD;AACpD,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAA2C,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvE,uDAAuD;AACvD,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAAgD,CAAC;AAEjG,mCAAmC;AACnC,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"owner-pulls-weekly.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/v3/owner-receipt/owner-pulls-weekly.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Owner pulls, weekly (#1387
|
|
2
|
+
* Owner pulls, weekly (#1387) — how often agents put something in
|
|
3
3
|
* front of the owner, by kind and by team, and what became of it.
|
|
4
4
|
*
|
|
5
5
|
* Measures only; it never changes when agents ping the owner. Pure functions:
|
|
@@ -158,6 +158,58 @@ export function pullsFromOpenItems(items, cardedKeys, teamOfAgent) {
|
|
|
158
158
|
}
|
|
159
159
|
return out;
|
|
160
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Whether a post's last sentence is a question (`?` or `?` at its end, past
|
|
163
|
+
* trailing emoji, quotes and closing brackets).
|
|
164
|
+
*
|
|
165
|
+
* @param text - Post text
|
|
166
|
+
* @returns True when it ends with a question
|
|
167
|
+
*/
|
|
168
|
+
export function endsWithQuestion(text) {
|
|
169
|
+
return /[??][\s\p{Extended_Pictographic}\p{Pe}\p{Pf}"'*_~`]*$/u.test(text.trim());
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Turn agent-started posts in the owner's DM into pull records, by the FYI
|
|
173
|
+
* rule. A post the same agent made right around a card it opened is that
|
|
174
|
+
* card's post: the card already counts it. Whether a WorkItem then stayed
|
|
175
|
+
* blocked on the owner is not known for a post, so rule 3 is not applied.
|
|
176
|
+
*
|
|
177
|
+
* @param posts - Logged posts
|
|
178
|
+
* @param decisions - Every card (for rule 2)
|
|
179
|
+
* @param teamOfAgent - Team name for an agent session, or null
|
|
180
|
+
* @returns Records (no outcome: nothing tracks an answer to a plain post)
|
|
181
|
+
*/
|
|
182
|
+
export function pullsFromAgentPosts(posts, decisions, teamOfAgent) {
|
|
183
|
+
const window = OWNER_RECEIPT_CONSTANTS.PULLS_WEEKLY.CARD_POST_WINDOW_MS;
|
|
184
|
+
const cardTimes = new Map();
|
|
185
|
+
for (const d of decisions) {
|
|
186
|
+
// Only a card that counts as a pull may stand in for the post.
|
|
187
|
+
if ((d.system && d.kind !== 'spend_cap') || !decisionPullOutcome(d))
|
|
188
|
+
continue;
|
|
189
|
+
const at = Date.parse(d.askedAt ?? d.createdAt);
|
|
190
|
+
if (!Number.isFinite(at))
|
|
191
|
+
continue;
|
|
192
|
+
for (const who of new Set([d.asker, d.requestedBy])) {
|
|
193
|
+
if (who)
|
|
194
|
+
cardTimes.set(who, [...(cardTimes.get(who) ?? []), at]);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
const out = [];
|
|
198
|
+
for (const post of posts) {
|
|
199
|
+
const at = Date.parse(post.at);
|
|
200
|
+
if (!Number.isFinite(at))
|
|
201
|
+
continue;
|
|
202
|
+
const openedDecisionCard = (cardTimes.get(post.agent) ?? []).some((t) => Math.abs(t - at) <= window);
|
|
203
|
+
if (openedDecisionCard)
|
|
204
|
+
continue;
|
|
205
|
+
out.push({
|
|
206
|
+
at: post.at,
|
|
207
|
+
kind: classifyAgentPost({ endsWithQuestion: post.endsWithQuestion, openedDecisionCard, workItemBlockedOnOwner: false, reportsFailure: false }),
|
|
208
|
+
team: teamOfAgent(post.agent) ?? OWNER_RECEIPT_CONSTANTS.UNASSIGNED_TEAM,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
return out;
|
|
212
|
+
}
|
|
161
213
|
function emptyWeek() {
|
|
162
214
|
return {
|
|
163
215
|
total: 0,
|
|
@@ -175,7 +227,8 @@ function countWeek(records, fromMs, toMs) {
|
|
|
175
227
|
continue;
|
|
176
228
|
week.total += 1;
|
|
177
229
|
week.byKind[r.kind] += 1;
|
|
178
|
-
|
|
230
|
+
if (r.outcome)
|
|
231
|
+
week.byOutcome[r.outcome] += 1;
|
|
179
232
|
teams.set(r.team, (teams.get(r.team) ?? 0) + 1);
|
|
180
233
|
}
|
|
181
234
|
week.byTeam = [...teams.entries()].map(([team, count]) => ({ team, count })).sort((a, b) => b.count - a.count || a.team.localeCompare(b.team));
|
|
@@ -249,7 +302,8 @@ export function renderPullsWeekly(w) {
|
|
|
249
302
|
const kinds = PULL_KINDS.filter((k) => thisWeek.byKind[k] > 0).map((k) => `${thisWeek.byKind[k]} ${PULLS_WEEKLY_KIND_LABELS[k]}`);
|
|
250
303
|
lines.push(`• By kind: ${kinds.join(', ')}`);
|
|
251
304
|
const outcomes = PULL_OUTCOMES.filter((o) => thisWeek.byOutcome[o] > 0).map((o) => `${o.replace('_', ' ')} ${thisWeek.byOutcome[o]}`);
|
|
252
|
-
|
|
305
|
+
if (outcomes.length > 0)
|
|
306
|
+
lines.push(`• ${outcomes.join(', ').replace(/^./, (c) => c.toUpperCase())}`);
|
|
253
307
|
const max = OWNER_RECEIPT_CONSTANTS.PULLS_WEEKLY.MAX_TEAMS;
|
|
254
308
|
const shown = thisWeek.byTeam.slice(0, max).map((t) => `${t.team} ${t.count}`);
|
|
255
309
|
const rest = thisWeek.byTeam.length - shown.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-pulls-weekly.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/v3/owner-receipt/owner-pulls-weekly.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAO1F,oDAAoD;AACpD,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAWtF,uDAAuD;AACvD,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"owner-pulls-weekly.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/v3/owner-receipt/owner-pulls-weekly.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Loader for the weekly owner-pulls rollup (#1387): reads decision cards,
|
|
3
|
-
* Request open items and trace owner touches, and hands them to the pure
|
|
3
|
+
* Request open items, agent-started DM posts and trace owner touches, and hands them to the pure
|
|
4
4
|
* rollup in {@link ./owner-pulls-weekly}.
|
|
5
5
|
*
|
|
6
6
|
* @module services/v3/owner-receipt/owner-pulls-weekly.loader
|
|
7
7
|
*/
|
|
8
8
|
import type { OwnerDecision } from '../../../types/decision.types.js';
|
|
9
9
|
import type { Request } from '../../../types/v2/request.types.js';
|
|
10
|
-
import { type PullsWeekly } from './owner-pulls-weekly.js';
|
|
10
|
+
import { type AgentPostRecord, type PullsWeekly } from './owner-pulls-weekly.js';
|
|
11
11
|
/** Where the loader reads from. */
|
|
12
12
|
export interface PullsWeeklyLoaderDeps {
|
|
13
13
|
listDecisions: () => Promise<OwnerDecision[]>;
|
|
@@ -24,6 +24,8 @@ export interface PullsWeeklyLoaderDeps {
|
|
|
24
24
|
createdAt: string;
|
|
25
25
|
ownerTouches: number;
|
|
26
26
|
}>>;
|
|
27
|
+
/** Posts agents started in the owner's DM (the post log); absent = not counted */
|
|
28
|
+
listAgentPosts?: () => Promise<AgentPostRecord[]>;
|
|
27
29
|
}
|
|
28
30
|
/**
|
|
29
31
|
* Build the `loadPullsWeekly` dependency of the owner receipt service.
|
package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-pulls-weekly.loader.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/v3/owner-receipt/owner-pulls-weekly.loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,
|
|
1
|
+
{"version":3,"file":"owner-pulls-weekly.loader.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/v3/owner-receipt/owner-pulls-weekly.loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,mCAAmC;AACnC,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9C,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,0BAA0B;IAC1B,aAAa,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC/G,kFAAkF;IAClF,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CACnD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,WAAW,CAAC,CA8BxG"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Loader for the weekly owner-pulls rollup (#1387): reads decision cards,
|
|
3
|
-
* Request open items and trace owner touches, and hands them to the pure
|
|
3
|
+
* Request open items, agent-started DM posts and trace owner touches, and hands them to the pure
|
|
4
4
|
* rollup in {@link ./owner-pulls-weekly}.
|
|
5
5
|
*
|
|
6
6
|
* @module services/v3/owner-receipt/owner-pulls-weekly.loader
|
|
7
7
|
*/
|
|
8
8
|
import { OWNER_RECEIPT_CONSTANTS } from '../../../constants.js';
|
|
9
|
-
import { countOwnerTouches, pullsFromDecisions, pullsFromOpenItems, rollupPulls, } from './owner-pulls-weekly.js';
|
|
9
|
+
import { countOwnerTouches, pullsFromAgentPosts, pullsFromDecisions, pullsFromOpenItems, rollupPulls, } from './owner-pulls-weekly.js';
|
|
10
10
|
/**
|
|
11
11
|
* Build the `loadPullsWeekly` dependency of the owner receipt service.
|
|
12
12
|
*
|
|
@@ -16,11 +16,13 @@ import { countOwnerTouches, pullsFromDecisions, pullsFromOpenItems, rollupPulls,
|
|
|
16
16
|
export function createPullsWeeklyLoader(deps) {
|
|
17
17
|
return async (now) => {
|
|
18
18
|
const span = OWNER_RECEIPT_CONSTANTS.PULLS_WEEKLY.WINDOW_MS;
|
|
19
|
-
const [decisions, requests, teams, teamNames] = await Promise.all([
|
|
19
|
+
const [decisions, requests, teams, teamNames, posts] = await Promise.all([
|
|
20
20
|
deps.listDecisions(),
|
|
21
21
|
deps.listRequests(),
|
|
22
22
|
deps.loadTeamIndex(),
|
|
23
23
|
deps.loadTeamNameById ? deps.loadTeamNameById() : Promise.resolve(new Map()),
|
|
24
|
+
// The pulls stand without the post count.
|
|
25
|
+
deps.listAgentPosts ? deps.listAgentPosts().catch(() => []) : Promise.resolve([]),
|
|
24
26
|
]);
|
|
25
27
|
const cardedKeys = new Set();
|
|
26
28
|
for (const d of decisions)
|
|
@@ -30,6 +32,7 @@ export function createPullsWeeklyLoader(deps) {
|
|
|
30
32
|
const records = [
|
|
31
33
|
...pullsFromDecisions(decisions, (d) => teamNames.get(d.teamId ?? '') ?? teams.get(d.asker) ?? teams.get(d.requestedBy) ?? null),
|
|
32
34
|
...pullsFromOpenItems(items, cardedKeys, (session) => teams.get(session) ?? null),
|
|
35
|
+
...pullsFromAgentPosts(posts, decisions, (session) => teams.get(session) ?? null),
|
|
33
36
|
];
|
|
34
37
|
let touches;
|
|
35
38
|
if (deps.listTraceTouches) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-pulls-weekly.loader.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/v3/owner-receipt/owner-pulls-weekly.loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,
|
|
1
|
+
{"version":3,"file":"owner-pulls-weekly.loader.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/v3/owner-receipt/owner-pulls-weekly.loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -6191,6 +6191,12 @@ export declare const OWNER_RECEIPT_CONSTANTS: {
|
|
|
6191
6191
|
readonly MAX_TEAMS: 3;
|
|
6192
6192
|
/** Traces read for the owner-touch count (most recent first) */
|
|
6193
6193
|
readonly MAX_TRACES: 500;
|
|
6194
|
+
/** Log of agent-started posts in the owner's DM (JSON lines, in the Requests dir) */
|
|
6195
|
+
readonly POST_LOG_FILENAME: "owner-pulls-posts.jsonl";
|
|
6196
|
+
/** The post log is rewritten with only the last two weeks once it grows past this (bytes) */
|
|
6197
|
+
readonly POST_LOG_MAX_BYTES: number;
|
|
6198
|
+
/** A post this close to a card the same agent opened is that card's post, counted once (ms) */
|
|
6199
|
+
readonly CARD_POST_WINDOW_MS: number;
|
|
6194
6200
|
};
|
|
6195
6201
|
/**
|
|
6196
6202
|
* Daily spot-check of verified WorkItems (#1315, phase 1): re-check that the
|