crewly 1.20.358 → 1.20.359
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 +59 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +59 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +21 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +162 -11
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.js +5 -0
- package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/startup-briefing.service.d.ts +10 -0
- package/dist/backend/backend/src/services/memory/startup-briefing.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/startup-briefing.service.js +65 -22
- package/dist/backend/backend/src/services/memory/startup-briefing.service.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-binding.d.ts +25 -2
- package/dist/backend/backend/src/services/session/session-binding.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-binding.js +32 -4
- package/dist/backend/backend/src/services/session/session-binding.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts +3 -1
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.d.ts +27 -2
- package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.js +105 -8
- package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/work-record-transcript.d.ts +64 -0
- package/dist/backend/backend/src/services/wiki/work-record-transcript.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/work-record-transcript.js +194 -0
- package/dist/backend/backend/src/services/wiki/work-record-transcript.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/work-record.d.ts +239 -0
- package/dist/backend/backend/src/services/wiki/work-record.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/work-record.js +631 -0
- package/dist/backend/backend/src/services/wiki/work-record.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/work-record.service.d.ts +209 -0
- package/dist/backend/backend/src/services/wiki/work-record.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/work-record.service.js +514 -0
- package/dist/backend/backend/src/services/wiki/work-record.service.js.map +1 -0
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +59 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +59 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/memory/startup-briefing.service.d.ts +10 -0
- package/dist/cli/backend/src/services/memory/startup-briefing.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/startup-briefing.service.js +65 -22
- package/dist/cli/backend/src/services/memory/startup-briefing.service.js.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +3 -1
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
- package/dist/cli/backend/src/services/wiki/work-record-transcript.d.ts +64 -0
- package/dist/cli/backend/src/services/wiki/work-record-transcript.d.ts.map +1 -0
- package/dist/cli/backend/src/services/wiki/work-record-transcript.js +194 -0
- package/dist/cli/backend/src/services/wiki/work-record-transcript.js.map +1 -0
- package/dist/cli/backend/src/services/wiki/work-record.d.ts +239 -0
- package/dist/cli/backend/src/services/wiki/work-record.d.ts.map +1 -0
- package/dist/cli/backend/src/services/wiki/work-record.js +631 -0
- package/dist/cli/backend/src/services/wiki/work-record.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiki-log-compile.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki-log-compile.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"wiki-log-compile.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki-log-compile.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAyB7D,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;IACzD,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAS/C;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAIpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAEZ,MAAM,GAAE,iBAAmD;IAIxF,MAAM,CAAC,WAAW,IAAI,qBAAqB;IAK3C,uBAAuB;IACvB,MAAM,CAAC,gBAAgB,IAAI,IAAI;IAI/B;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,qBAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiEjG;;;;;;OAMG;IACG,UAAU,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,GAAE,qBAA0B,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAc9G;;;;;;OAMG;IACH,OAAO,CAAC,KAAK;IAeb;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAYtB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAWpB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,UAAU;IAiBlB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IA+C5B,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,SAAS;YAIH,SAAS;YAQT,UAAU;CAGzB"}
|
|
@@ -13,6 +13,9 @@
|
|
|
13
13
|
* not compile them again. No LLM; an agent can still rewrite a digest into
|
|
14
14
|
* a proper topic page.
|
|
15
15
|
*
|
|
16
|
+
* Work records (#1349, `work_record` entries) get their own sections ahead
|
|
17
|
+
* of the learning groups: "Work done", "Errors and fixes", "Collaboration".
|
|
18
|
+
*
|
|
16
19
|
* @module services/wiki/wiki-log-compile.service
|
|
17
20
|
*/
|
|
18
21
|
import * as path from 'path';
|
|
@@ -22,6 +25,7 @@ import { WIKI_LOG_CONSTANTS } from '../../constants.js';
|
|
|
22
25
|
import { atomicWriteJson, safeReadJson } from '../../utils/file-io.utils.js';
|
|
23
26
|
import { WikiIngestService } from './wiki-ingest.service.js';
|
|
24
27
|
import { logBodyKey, logEntryCategory, logEntryTopic, parseLogEntries, recentContentEntries, } from './wiki-log-entries.js';
|
|
28
|
+
import { isWorkRecordEntry, parseWorkRecordBody } from './work-record.js';
|
|
25
29
|
/**
|
|
26
30
|
* ISO-8601 week label (`YYYY-Www`) of a date.
|
|
27
31
|
*
|
|
@@ -96,14 +100,18 @@ export class WikiLogCompileService {
|
|
|
96
100
|
return { ...base, reason: 'too_few_entries' };
|
|
97
101
|
const week = isoWeekLabel(now);
|
|
98
102
|
const pagePath = `${WIKI_LOG_CONSTANTS.COMPILE_DIR}/${week}.md`;
|
|
99
|
-
const
|
|
100
|
-
const
|
|
103
|
+
const { records, others } = this.splitRecords(candidates);
|
|
104
|
+
const groups = this.group(others);
|
|
105
|
+
const body = this.renderBody(groups, candidates, now, records);
|
|
101
106
|
const result = { ...base, compiled: true, entriesCompiled: candidates.length, pagePath, groups: groups.length };
|
|
102
107
|
if (dryRun) {
|
|
103
|
-
this.logger.info('WikiLogCompile dry run — would write digest', { vaultPath, pagePath, entries: candidates.length, groups: groups.length });
|
|
108
|
+
this.logger.info('WikiLogCompile dry run — would write digest', { vaultPath, pagePath, entries: candidates.length, groups: groups.length, records: records.length });
|
|
104
109
|
return result;
|
|
105
110
|
}
|
|
106
|
-
const counts = this.categoryCounts(
|
|
111
|
+
const counts = this.categoryCounts(others);
|
|
112
|
+
const summaryLead = records.length > 0
|
|
113
|
+
? `${records.length} work record${records.length === 1 ? '' : 's'}${others.length > 0 ? ` and ${others.length} learnings (${counts})` : ''} from the vault log`
|
|
114
|
+
: `${candidates.length} learnings from the vault log (${counts})`;
|
|
107
115
|
const outcome = await this.ingest.ingest({
|
|
108
116
|
vaultPath,
|
|
109
117
|
sourceType: 'record_learning',
|
|
@@ -112,7 +120,7 @@ export class WikiLogCompileService {
|
|
|
112
120
|
callerSession: 'system:wiki-log-compile',
|
|
113
121
|
targetRelativePath: pagePath,
|
|
114
122
|
title: `Digest ${week}`,
|
|
115
|
-
summary: `${
|
|
123
|
+
summary: `${summaryLead} compiled ${new Date(now).toISOString().slice(0, 10)} — read before working on these topics; promote what still matters to its own page.`,
|
|
116
124
|
keepBecause: 'reusable_method',
|
|
117
125
|
tags: ['digest', week],
|
|
118
126
|
});
|
|
@@ -187,18 +195,43 @@ export class WikiLogCompileService {
|
|
|
187
195
|
.join(', ');
|
|
188
196
|
}
|
|
189
197
|
/**
|
|
190
|
-
*
|
|
198
|
+
* Separate work records (#1349) from learnings. A record whose body does
|
|
199
|
+
* not parse is kept as a learning so nothing is dropped.
|
|
200
|
+
*
|
|
201
|
+
* @param entries - Candidate entries
|
|
202
|
+
* @returns Records with parsed fields, and the rest
|
|
203
|
+
*/
|
|
204
|
+
splitRecords(entries) {
|
|
205
|
+
const records = [];
|
|
206
|
+
const others = [];
|
|
207
|
+
for (const e of entries) {
|
|
208
|
+
const parsed = isWorkRecordEntry(e) ? parseWorkRecordBody(e.body) : null;
|
|
209
|
+
if (parsed)
|
|
210
|
+
records.push({ entry: e, parsed });
|
|
211
|
+
else
|
|
212
|
+
others.push(e);
|
|
213
|
+
}
|
|
214
|
+
return { records, others };
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Markdown body of one compile run: a dated heading; when the run holds
|
|
218
|
+
* work records, `### Work done`, `### Errors and fixes` and
|
|
219
|
+
* `### Collaboration` (the digest renders task titles, never ticket ids —
|
|
220
|
+
* those stay on each record's `meta:` line); then one `###` per learning
|
|
191
221
|
* group with one bullet per entry (author, date, body clipped).
|
|
192
222
|
*
|
|
193
|
-
* @param groups - Grouped entries
|
|
223
|
+
* @param groups - Grouped learning entries
|
|
194
224
|
* @param all - All entries in the run (for the date range)
|
|
195
225
|
* @param now - Epoch ms of the run
|
|
226
|
+
* @param records - Work records in the run
|
|
196
227
|
* @returns Markdown
|
|
197
228
|
*/
|
|
198
|
-
renderBody(groups, all, now) {
|
|
229
|
+
renderBody(groups, all, now, records = []) {
|
|
199
230
|
const first = all[0]?.timestamp.slice(0, 10) ?? '';
|
|
200
231
|
const last = all[all.length - 1]?.timestamp.slice(0, 10) ?? '';
|
|
201
232
|
const lines = [`## Compiled ${new Date(now).toISOString().slice(0, 10)} — ${all.length} entries from ${first} to ${last}`, ''];
|
|
233
|
+
if (records.length > 0)
|
|
234
|
+
lines.push(...this.renderRecordSections(records));
|
|
202
235
|
for (const g of groups) {
|
|
203
236
|
lines.push(`### ${g.label} (${g.members.length})`, '');
|
|
204
237
|
for (const e of g.members) {
|
|
@@ -210,6 +243,70 @@ export class WikiLogCompileService {
|
|
|
210
243
|
}
|
|
211
244
|
return lines.join('\n').trim();
|
|
212
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* The three record sections. "Work done" lists every record (asked by →
|
|
248
|
+
* done by → outputs → outcome); "Errors and fixes" the records that met
|
|
249
|
+
* errors; "Collaboration" counts, per pair, delegations, asks and reviews.
|
|
250
|
+
*
|
|
251
|
+
* @param records - Records of the run, oldest first
|
|
252
|
+
* @returns Markdown lines (each section followed by a blank line)
|
|
253
|
+
*/
|
|
254
|
+
renderRecordSections(records) {
|
|
255
|
+
const lines = [`### Work done (${records.length})`, ''];
|
|
256
|
+
for (const { entry, parsed } of records) {
|
|
257
|
+
const parts = [`asked by ${parsed.askedBy || 'unknown'}`, `done by ${parsed.doneBy || 'unknown'}`];
|
|
258
|
+
if (parsed.did)
|
|
259
|
+
parts.push(this.clipText(parsed.did, WIKI_LOG_CONSTANTS.COMPILE_ENTRY_MAX_CHARS / 2));
|
|
260
|
+
if (parsed.outputs.length)
|
|
261
|
+
parts.push(`outputs: ${parsed.outputs.slice(0, 3).join('; ')}`);
|
|
262
|
+
lines.push(`- ${entry.timestamp.slice(0, 10)} · **${parsed.title}** — ${parts.join(' → ')} → ${parsed.outcome || 'unknown'}`);
|
|
263
|
+
}
|
|
264
|
+
lines.push('');
|
|
265
|
+
const withErrors = records.filter((r) => r.parsed.errors.length > 0);
|
|
266
|
+
if (withErrors.length > 0) {
|
|
267
|
+
lines.push(`### Errors and fixes (${withErrors.length})`, '');
|
|
268
|
+
for (const { entry, parsed } of withErrors) {
|
|
269
|
+
lines.push(`- ${entry.timestamp.slice(0, 10)} · ${parsed.title} (${parsed.doneBy || 'unknown'}): ${this.clipText(parsed.errors.join('; '), WIKI_LOG_CONSTANTS.COMPILE_ENTRY_MAX_CHARS)}`);
|
|
270
|
+
}
|
|
271
|
+
lines.push('');
|
|
272
|
+
}
|
|
273
|
+
const pairs = new Map();
|
|
274
|
+
const count = (from, to, how) => {
|
|
275
|
+
if (!from || !to || from === to)
|
|
276
|
+
return;
|
|
277
|
+
const key = `${from} → ${to}`;
|
|
278
|
+
const byHow = pairs.get(key) ?? new Map();
|
|
279
|
+
byHow.set(how, (byHow.get(how) ?? 0) + 1);
|
|
280
|
+
pairs.set(key, byHow);
|
|
281
|
+
};
|
|
282
|
+
for (const { parsed } of records) {
|
|
283
|
+
const asker = parsed.askedBy.replace(/\s*\((?:team lead|orchestrator)\)/, '').replace(/\s+for the owner.*$/, '').replace(/\s*\([^)]*\)$/, '').trim();
|
|
284
|
+
if (asker && !asker.startsWith('schedule') && asker !== 'Crewly (system)')
|
|
285
|
+
count(asker, parsed.doneBy, 'delegation');
|
|
286
|
+
for (const h of parsed.helpers) {
|
|
287
|
+
if (h.how === 'delegated')
|
|
288
|
+
count(parsed.doneBy, h.name, 'delegation');
|
|
289
|
+
else if (h.how === 'asked')
|
|
290
|
+
count(parsed.doneBy, h.name, h.rest.includes('answered') ? 'ask answered' : 'ask unanswered');
|
|
291
|
+
else
|
|
292
|
+
count(h.name, parsed.doneBy, 'review');
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
if (pairs.size > 0) {
|
|
296
|
+
lines.push(`### Collaboration (${pairs.size} pair${pairs.size === 1 ? '' : 's'})`, '');
|
|
297
|
+
const rows = [...pairs.entries()]
|
|
298
|
+
.map(([pair, byHow]) => ({ pair, total: [...byHow.values()].reduce((a, b) => a + b, 0), detail: [...byHow.entries()].sort((a, b) => b[1] - a[1]).map(([how, n]) => `${n} ${how}${n === 1 || how.endsWith('answered') ? '' : 's'}`).join(', ') }))
|
|
299
|
+
.sort((a, b) => b.total - a.total || a.pair.localeCompare(b.pair));
|
|
300
|
+
for (const r of rows)
|
|
301
|
+
lines.push(`- ${r.pair}: ${r.detail}`);
|
|
302
|
+
lines.push('');
|
|
303
|
+
}
|
|
304
|
+
return lines;
|
|
305
|
+
}
|
|
306
|
+
clipText(text, max) {
|
|
307
|
+
const flat = text.replace(/\s+/g, ' ').trim();
|
|
308
|
+
return flat.length > max ? `${flat.slice(0, max - 1)}…` : flat;
|
|
309
|
+
}
|
|
213
310
|
statePath(vaultPath) {
|
|
214
311
|
return path.join(vaultPath, WIKI_LOG_CONSTANTS.COMPILE_STATE_FILE);
|
|
215
312
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiki-log-compile.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki-log-compile.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wiki-log-compile.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki-log-compile.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transcript facts for a work record (#1349).
|
|
3
|
+
*
|
|
4
|
+
* Reads a bounded tail of the doer's Claude Code transcript and keeps only
|
|
5
|
+
* what happened inside the task window: failed tool calls (with whether the
|
|
6
|
+
* same call later succeeded), files written, PR / commit references and
|
|
7
|
+
* messages posted. Only the main chain counts (`isSidechain` entries belong
|
|
8
|
+
* to subagents). Tool results are read for their error flag and the first
|
|
9
|
+
* line of an exit code, never copied.
|
|
10
|
+
*
|
|
11
|
+
* Codex rollouts are not read (their shape differs; the trace covers them).
|
|
12
|
+
*
|
|
13
|
+
* @module services/wiki/work-record-transcript
|
|
14
|
+
*/
|
|
15
|
+
import type { WorkRecordError } from './work-record.js';
|
|
16
|
+
/** What the transcript slice says about a task. */
|
|
17
|
+
export interface TranscriptWindowFacts {
|
|
18
|
+
errors: WorkRecordError[];
|
|
19
|
+
filesWritten: string[];
|
|
20
|
+
urls: string[];
|
|
21
|
+
commits: string[];
|
|
22
|
+
/** Messages the agent posted through a reply / post skill. */
|
|
23
|
+
posts: number;
|
|
24
|
+
/** Tool calls seen inside the window. */
|
|
25
|
+
toolCalls: number;
|
|
26
|
+
}
|
|
27
|
+
/** Task window. */
|
|
28
|
+
export interface TranscriptWindow {
|
|
29
|
+
fromMs: number;
|
|
30
|
+
toMs: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Read the end of a file as whole lines (the first partial line is dropped).
|
|
34
|
+
*
|
|
35
|
+
* @param file - Path
|
|
36
|
+
* @param maxBytes - Bytes from the end
|
|
37
|
+
* @returns Text, '' when the file cannot be read
|
|
38
|
+
*/
|
|
39
|
+
export declare function readTranscriptTail(file: string, maxBytes?: number): Promise<string>;
|
|
40
|
+
/**
|
|
41
|
+
* Facts from whole Claude transcript lines inside a window.
|
|
42
|
+
*
|
|
43
|
+
* @param text - JSONL text (whole lines)
|
|
44
|
+
* @param window - Task window (epoch ms); entries outside it are ignored
|
|
45
|
+
* @param roots - Project roots to make file paths relative to
|
|
46
|
+
* @returns Facts (empty when nothing fell in the window)
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const facts = parseClaudeTranscriptWindow(await readTranscriptTail(file), { fromMs, toMs }, [projectPath]);
|
|
51
|
+
* facts.errors; // [{ what: 'Bash `npm test` exit 1', resolved: 'fixed' }]
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function parseClaudeTranscriptWindow(text: string, window: TranscriptWindow, roots?: readonly string[]): TranscriptWindowFacts;
|
|
55
|
+
/**
|
|
56
|
+
* Whether a transcript is worth reading for an item that ended at `endedMs`:
|
|
57
|
+
* the tail only holds recent turns.
|
|
58
|
+
*
|
|
59
|
+
* @param endedMs - When the item ended (epoch ms)
|
|
60
|
+
* @param now - Clock
|
|
61
|
+
* @returns True when the window may still be in the tail
|
|
62
|
+
*/
|
|
63
|
+
export declare function transcriptWorthReading(endedMs: number, now?: number): boolean;
|
|
64
|
+
//# sourceMappingURL=work-record-transcript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-record-transcript.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/work-record-transcript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxD,mDAAmD;AACnD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mBAAmB;AACnB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAeD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAgC,GAAG,OAAO,CAAC,MAAM,CAAC,CAelH;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,GAAE,SAAS,MAAM,EAAO,GAAG,qBAAqB,CAmExI;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAEzF"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transcript facts for a work record (#1349).
|
|
3
|
+
*
|
|
4
|
+
* Reads a bounded tail of the doer's Claude Code transcript and keeps only
|
|
5
|
+
* what happened inside the task window: failed tool calls (with whether the
|
|
6
|
+
* same call later succeeded), files written, PR / commit references and
|
|
7
|
+
* messages posted. Only the main chain counts (`isSidechain` entries belong
|
|
8
|
+
* to subagents). Tool results are read for their error flag and the first
|
|
9
|
+
* line of an exit code, never copied.
|
|
10
|
+
*
|
|
11
|
+
* Codex rollouts are not read (their shape differs; the trace covers them).
|
|
12
|
+
*
|
|
13
|
+
* @module services/wiki/work-record-transcript
|
|
14
|
+
*/
|
|
15
|
+
import * as fs from 'fs/promises';
|
|
16
|
+
import { WORK_RECORD_CONSTANTS } from '../../constants.js';
|
|
17
|
+
import { redactSensitive } from './wiki-redaction.js';
|
|
18
|
+
const C = WORK_RECORD_CONSTANTS;
|
|
19
|
+
const PR_URL_RE = /https:\/\/github\.com\/[\w.-]+\/[\w.-]+\/(?:pull|issues)\/\d+/g;
|
|
20
|
+
const COMMIT_LINE_RE = /^\[[^\]\s]+ (?:\(root-commit\) )?([0-9a-f]{7,12})\]/m;
|
|
21
|
+
const EXIT_CODE_RE = /^Exit code (\d+)/m;
|
|
22
|
+
const POST_SKILL_RE = /\b(?:reply-chat|reply-channel|reply|slack-post|send-chat-response|send-message|slack-file|whatsapp-send|gmail-send)\b/;
|
|
23
|
+
const FILE_TOOLS = new Set(['Write', 'Edit', 'MultiEdit', 'NotebookEdit']);
|
|
24
|
+
/**
|
|
25
|
+
* Read the end of a file as whole lines (the first partial line is dropped).
|
|
26
|
+
*
|
|
27
|
+
* @param file - Path
|
|
28
|
+
* @param maxBytes - Bytes from the end
|
|
29
|
+
* @returns Text, '' when the file cannot be read
|
|
30
|
+
*/
|
|
31
|
+
export async function readTranscriptTail(file, maxBytes = C.TRANSCRIPT_TAIL_BYTES) {
|
|
32
|
+
let handle = null;
|
|
33
|
+
try {
|
|
34
|
+
handle = await fs.open(file, 'r');
|
|
35
|
+
const { size } = await handle.stat();
|
|
36
|
+
const start = Math.max(0, size - maxBytes);
|
|
37
|
+
const buf = Buffer.alloc(size - start);
|
|
38
|
+
await handle.read(buf, 0, buf.length, start);
|
|
39
|
+
const text = buf.toString('utf-8');
|
|
40
|
+
return start > 0 ? text.slice(text.indexOf('\n') + 1) : text;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return '';
|
|
44
|
+
}
|
|
45
|
+
finally {
|
|
46
|
+
await handle?.close();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Facts from whole Claude transcript lines inside a window.
|
|
51
|
+
*
|
|
52
|
+
* @param text - JSONL text (whole lines)
|
|
53
|
+
* @param window - Task window (epoch ms); entries outside it are ignored
|
|
54
|
+
* @param roots - Project roots to make file paths relative to
|
|
55
|
+
* @returns Facts (empty when nothing fell in the window)
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const facts = parseClaudeTranscriptWindow(await readTranscriptTail(file), { fromMs, toMs }, [projectPath]);
|
|
60
|
+
* facts.errors; // [{ what: 'Bash `npm test` exit 1', resolved: 'fixed' }]
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export function parseClaudeTranscriptWindow(text, window, roots = []) {
|
|
64
|
+
const facts = { errors: [], filesWritten: [], urls: [], commits: [], posts: 0, toolCalls: 0 };
|
|
65
|
+
const uses = new Map();
|
|
66
|
+
const failed = [];
|
|
67
|
+
const succeededKeys = new Map();
|
|
68
|
+
const files = new Set();
|
|
69
|
+
const urls = new Set();
|
|
70
|
+
const commits = new Set();
|
|
71
|
+
const from = window.fromMs - C.TRANSCRIPT_WINDOW_SLACK_MS;
|
|
72
|
+
const to = window.toMs + C.TRANSCRIPT_WINDOW_SLACK_MS;
|
|
73
|
+
for (const line of text.split('\n')) {
|
|
74
|
+
if (line.length < 20 || !(line.includes('"tool_use"') || line.includes('"tool_result"') || line.includes('"type":"text"')))
|
|
75
|
+
continue;
|
|
76
|
+
let entry;
|
|
77
|
+
try {
|
|
78
|
+
entry = JSON.parse(line);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (entry.isSidechain === true || entry.isMeta === true || entry.isApiErrorMessage === true)
|
|
84
|
+
continue;
|
|
85
|
+
const at = Date.parse(typeof entry.timestamp === 'string' ? entry.timestamp : '');
|
|
86
|
+
if (!Number.isFinite(at) || at < from || at > to)
|
|
87
|
+
continue;
|
|
88
|
+
const content = entry.message?.content;
|
|
89
|
+
if (!Array.isArray(content))
|
|
90
|
+
continue;
|
|
91
|
+
for (const block of content) {
|
|
92
|
+
if (block?.type === 'tool_use' && typeof block.id === 'string' && typeof block.name === 'string') {
|
|
93
|
+
const use = describeToolUse(block.name, block.input, roots, at);
|
|
94
|
+
uses.set(block.id, use);
|
|
95
|
+
facts.toolCalls++;
|
|
96
|
+
if (FILE_TOOLS.has(block.name)) {
|
|
97
|
+
const p = filePathOf(block.input);
|
|
98
|
+
if (p)
|
|
99
|
+
files.add(relative(p, roots));
|
|
100
|
+
}
|
|
101
|
+
if (block.name === 'Bash' && POST_SKILL_RE.test(commandOf(block.input)))
|
|
102
|
+
facts.posts++;
|
|
103
|
+
}
|
|
104
|
+
else if (block?.type === 'tool_result' && typeof block.tool_use_id === 'string') {
|
|
105
|
+
const use = uses.get(block.tool_use_id);
|
|
106
|
+
const resultText = resultTextOf(block.content);
|
|
107
|
+
const exit = resultText.match(EXIT_CODE_RE);
|
|
108
|
+
const nonZeroExit = exit ? Number(exit[1]) !== 0 : false;
|
|
109
|
+
if (block.is_error === true || nonZeroExit) {
|
|
110
|
+
if (use)
|
|
111
|
+
failed.push({ use: exit && nonZeroExit ? { ...use, summary: `${use.summary} exit ${exit[1]}` } : use, at });
|
|
112
|
+
}
|
|
113
|
+
else if (use) {
|
|
114
|
+
succeededKeys.set(use.key, at);
|
|
115
|
+
}
|
|
116
|
+
for (const u of resultText.match(PR_URL_RE) ?? [])
|
|
117
|
+
urls.add(u);
|
|
118
|
+
const commit = resultText.match(COMMIT_LINE_RE);
|
|
119
|
+
if (commit && use?.name === 'Bash' && /\bgit\s+commit\b/.test(use.summary))
|
|
120
|
+
commits.add(commit[1]);
|
|
121
|
+
}
|
|
122
|
+
else if (block?.type === 'text' && typeof block.text === 'string' && entry.type === 'assistant') {
|
|
123
|
+
for (const u of block.text.match(PR_URL_RE) ?? [])
|
|
124
|
+
urls.add(u);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const seen = new Set();
|
|
129
|
+
for (const f of failed) {
|
|
130
|
+
const what = redactSensitive(f.use.summary);
|
|
131
|
+
if (seen.has(what))
|
|
132
|
+
continue;
|
|
133
|
+
seen.add(what);
|
|
134
|
+
const later = succeededKeys.get(f.use.key);
|
|
135
|
+
facts.errors.push({ what, resolved: later !== undefined && later > f.at ? 'fixed' : 'unresolved' });
|
|
136
|
+
if (facts.errors.length >= C.MAX_ERRORS)
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
facts.filesWritten = [...files].slice(0, C.MAX_OUTPUTS);
|
|
140
|
+
facts.urls = [...urls].slice(0, C.MAX_OUTPUTS);
|
|
141
|
+
facts.commits = [...commits].slice(0, C.MAX_OUTPUTS);
|
|
142
|
+
return facts;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Whether a transcript is worth reading for an item that ended at `endedMs`:
|
|
146
|
+
* the tail only holds recent turns.
|
|
147
|
+
*
|
|
148
|
+
* @param endedMs - When the item ended (epoch ms)
|
|
149
|
+
* @param now - Clock
|
|
150
|
+
* @returns True when the window may still be in the tail
|
|
151
|
+
*/
|
|
152
|
+
export function transcriptWorthReading(endedMs, now = Date.now()) {
|
|
153
|
+
return Number.isFinite(endedMs) && now - endedMs <= C.TRANSCRIPT_MAX_AGE_MS;
|
|
154
|
+
}
|
|
155
|
+
// ---------------------------------------------------------------------------
|
|
156
|
+
function describeToolUse(name, input, roots, at) {
|
|
157
|
+
if (name === 'Bash') {
|
|
158
|
+
const command = commandOf(input).replace(/\s+/g, ' ').trim();
|
|
159
|
+
const shown = command.length > 80 ? `${command.slice(0, 79)}…` : command;
|
|
160
|
+
return { name, summary: `Bash \`${shown}\``, key: `Bash:${command.slice(0, 200)}`, at };
|
|
161
|
+
}
|
|
162
|
+
const p = filePathOf(input);
|
|
163
|
+
if (p)
|
|
164
|
+
return { name, summary: `${name} ${relative(p, roots)}`, key: `${name}:${p}`, at };
|
|
165
|
+
return { name, summary: `${name} call`, key: `${name}:`, at };
|
|
166
|
+
}
|
|
167
|
+
function commandOf(input) {
|
|
168
|
+
const c = input?.command;
|
|
169
|
+
return typeof c === 'string' ? c : '';
|
|
170
|
+
}
|
|
171
|
+
function filePathOf(input) {
|
|
172
|
+
const p = input;
|
|
173
|
+
const v = p?.file_path ?? p?.notebook_path ?? p?.path;
|
|
174
|
+
return typeof v === 'string' && v.length > 0 ? v : null;
|
|
175
|
+
}
|
|
176
|
+
function relative(file, roots) {
|
|
177
|
+
for (const root of roots) {
|
|
178
|
+
if (root && file.startsWith(`${root}/`))
|
|
179
|
+
return file.slice(root.length + 1);
|
|
180
|
+
}
|
|
181
|
+
return file;
|
|
182
|
+
}
|
|
183
|
+
function resultTextOf(content) {
|
|
184
|
+
if (typeof content === 'string')
|
|
185
|
+
return content.slice(0, 4_000);
|
|
186
|
+
if (Array.isArray(content)) {
|
|
187
|
+
return content
|
|
188
|
+
.map((c) => (typeof c?.text === 'string' ? (c.text) : ''))
|
|
189
|
+
.join('\n')
|
|
190
|
+
.slice(0, 4_000);
|
|
191
|
+
}
|
|
192
|
+
return '';
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=work-record-transcript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-record-transcript.js","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/work-record-transcript.ts"],"names":[],"mappings":"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"}
|