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.
Files changed (52) hide show
  1. package/dist/backend/backend/src/constants.d.ts +6 -0
  2. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  3. package/dist/backend/backend/src/constants.js +6 -0
  4. package/dist/backend/backend/src/constants.js.map +1 -1
  5. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.d.ts.map +1 -1
  6. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js +24 -1
  7. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js.map +1 -1
  8. package/dist/backend/backend/src/index.d.ts.map +1 -1
  9. package/dist/backend/backend/src/index.js +6 -0
  10. package/dist/backend/backend/src/index.js.map +1 -1
  11. package/dist/backend/backend/src/services/drive/drive-meeting-pack.d.ts.map +1 -1
  12. package/dist/backend/backend/src/services/drive/drive-meeting-pack.js +3 -0
  13. package/dist/backend/backend/src/services/drive/drive-meeting-pack.js.map +1 -1
  14. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +4 -1
  15. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js.map +1 -1
  16. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts +22 -1
  17. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts.map +1 -1
  18. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js +52 -1
  19. package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js.map +1 -1
  20. package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts +30 -0
  21. package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts.map +1 -1
  22. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js +43 -0
  23. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js.map +1 -1
  24. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  25. package/dist/backend/backend/src/services/slack/slack-initializer.js +7 -0
  26. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  27. package/dist/backend/backend/src/services/template/template.service.d.ts +26 -0
  28. package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
  29. package/dist/backend/backend/src/services/template/template.service.js +134 -80
  30. package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
  31. package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-post-log.d.ts +48 -0
  32. package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-post-log.d.ts.map +1 -0
  33. package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-post-log.js +101 -0
  34. package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-post-log.js.map +1 -0
  35. package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.d.ts +33 -2
  36. package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.d.ts.map +1 -1
  37. package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.js +57 -3
  38. package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.js.map +1 -1
  39. package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.loader.d.ts +4 -2
  40. package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.loader.d.ts.map +1 -1
  41. package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.loader.js +6 -3
  42. package/dist/backend/backend/src/services/v3/owner-receipt/owner-pulls-weekly.loader.js.map +1 -1
  43. package/dist/backend/build-info.json +2 -2
  44. package/dist/cli/backend/src/constants.d.ts +6 -0
  45. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  46. package/dist/cli/backend/src/constants.js +6 -0
  47. package/dist/cli/backend/src/constants.js.map +1 -1
  48. package/dist/cli/backend/src/services/template/template.service.d.ts +26 -0
  49. package/dist/cli/backend/src/services/template/template.service.d.ts.map +1 -1
  50. package/dist/cli/backend/src/services/template/template.service.js +134 -80
  51. package/dist/cli/backend/src/services/template/template.service.js.map +1 -1
  52. 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, first slice) — how often agents put something in
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
- outcome: PullOutcome;
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":"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"}
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, first slice) — how often agents put something in
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
- week.byOutcome[r.outcome] += 1;
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
- lines.push(`• ${outcomes.join(', ').replace(/^./, (c) => c.toUpperCase())}`);
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":"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"}
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.
@@ -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,EAKL,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;CAChH;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,WAAW,CAAC,CA2BxG"}
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,GAEZ,MAAM,yBAAyB,CAAC;AAiBjC;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAA2B;IACjE,OAAO,KAAK,EAAE,GAAS,EAAwB,EAAE;QAC/C,MAAM,IAAI,GAAG,uBAAuB,CAAC,YAAY,CAAC,SAAS,CAAC;QAC5D,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChE,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,EAAkB,CAAC;SAC7F,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,SAAS;YAAE,IAAI,CAAC,CAAC,UAAU;gBAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAChH,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACtG,MAAM,OAAO,GAAG;YACd,GAAG,kBAAkB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;YAChI,GAAG,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;SAClF,CAAC;QACF,IAAI,OAA2D,CAAC;QAChE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBACjD,OAAO,GAAG,iBAAiB,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;YACxH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,SAAS,CAAC,CAAC,0CAA0C;YACjE,CAAC;QACH,CAAC;QACD,OAAO,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC"}
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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"}
@@ -1,4 +1,4 @@
1
1
  {
2
- "commit": "7b07ad1fc45844a4a817dea25b3993505737535a",
3
- "builtAt": "2026-10-21T18:54:36.948Z"
2
+ "commit": "057bc214310ec7e0e32fa432b52df0f3111955eb",
3
+ "builtAt": "2026-10-22T03:56:01.094Z"
4
4
  }
@@ -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