crbro-memory 2.5.1 → 2.7.0
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/README.md +515 -487
- package/SECURITY.md +222 -0
- package/bin/crbro.mjs +241 -6
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +6 -3
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/engine/backup.d.ts.map +1 -1
- package/dist/engine/backup.js +5 -1
- package/dist/engine/backup.js.map +1 -1
- package/dist/engine/cortex.d.ts +61 -0
- package/dist/engine/cortex.d.ts.map +1 -1
- package/dist/engine/cortex.js +270 -24
- package/dist/engine/cortex.js.map +1 -1
- package/dist/engine/hookverify.d.ts +42 -0
- package/dist/engine/hookverify.d.ts.map +1 -0
- package/dist/engine/hookverify.js +169 -0
- package/dist/engine/hookverify.js.map +1 -0
- package/dist/engine/maintenance.d.ts.map +1 -1
- package/dist/engine/maintenance.js +15 -2
- package/dist/engine/maintenance.js.map +1 -1
- package/dist/engine/postmortem.d.ts +73 -0
- package/dist/engine/postmortem.d.ts.map +1 -0
- package/dist/engine/postmortem.js +423 -0
- package/dist/engine/postmortem.js.map +1 -0
- package/dist/engine/prefrontal.d.ts +1 -0
- package/dist/engine/prefrontal.d.ts.map +1 -1
- package/dist/engine/prefrontal.js +8 -2
- package/dist/engine/prefrontal.js.map +1 -1
- package/dist/engine/secrets.d.ts +9 -0
- package/dist/engine/secrets.d.ts.map +1 -1
- package/dist/engine/secrets.js +7 -0
- package/dist/engine/secrets.js.map +1 -1
- package/dist/engine/triggers.d.ts +11 -4
- package/dist/engine/triggers.d.ts.map +1 -1
- package/dist/engine/triggers.js +53 -14
- package/dist/engine/triggers.js.map +1 -1
- package/dist/engine/usage.d.ts +61 -0
- package/dist/engine/usage.d.ts.map +1 -0
- package/dist/engine/usage.js +252 -0
- package/dist/engine/usage.js.map +1 -0
- package/dist/search/index.d.ts +40 -0
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +186 -5
- package/dist/search/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +100 -11
- package/dist/server.js.map +1 -1
- package/dist/sync/materialize.d.ts.map +1 -1
- package/dist/sync/materialize.js +54 -1
- package/dist/sync/materialize.js.map +1 -1
- package/dist/types/index.d.ts +28 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/ids.d.ts +6 -0
- package/dist/utils/ids.d.ts.map +1 -1
- package/dist/utils/ids.js +14 -4
- package/dist/utils/ids.js.map +1 -1
- package/dist/utils/transcripts.d.ts +63 -0
- package/dist/utils/transcripts.d.ts.map +1 -0
- package/dist/utils/transcripts.js +242 -0
- package/dist/utils/transcripts.js.map +1 -0
- package/hooks/crbro-guard.mjs +18 -2
- package/hooks/crbro-lifecycle.mjs +608 -0
- package/hooks/crbro-subagent.mjs +17 -4
- package/package.json +63 -62
package/dist/sync/materialize.js
CHANGED
|
@@ -56,7 +56,7 @@ function applyOps(base, ops, fallback) {
|
|
|
56
56
|
// reported rather than resolved. Overwriting someone's local name because a
|
|
57
57
|
// teammate spelled it differently is not a merge, it is a stomp.
|
|
58
58
|
const neuron = base
|
|
59
|
-
? { ...base, facts: [...base.facts], decisions: [...base.decisions], patterns: [...base.patterns], preferences: [...base.preferences], tags: [...base.tags], connections: [...base.connections], errors: [...(base.errors || [])], debts: [...(base.debts || [])], entry_dates: { ...(base.entry_dates || {}) }, entry_status: { ...(base.entry_status || {}) }, map: base.map ? { ...base.map } : undefined }
|
|
59
|
+
? { ...base, facts: [...base.facts], decisions: [...base.decisions], patterns: [...base.patterns], preferences: [...base.preferences], tags: [...base.tags], connections: [...base.connections], errors: [...(base.errors || [])], debts: [...(base.debts || [])], entry_dates: { ...(base.entry_dates || {}) }, entry_status: { ...(base.entry_status || {}) }, ...(base.entry_source ? { entry_source: { ...base.entry_source } } : {}), map: base.map ? { ...base.map } : undefined }
|
|
60
60
|
: {
|
|
61
61
|
id,
|
|
62
62
|
name: neuronOp && neuronOp.op === 'neuron' ? neuronOp.name : id,
|
|
@@ -88,6 +88,32 @@ function applyOps(base, ops, fallback) {
|
|
|
88
88
|
const k = (0, ops_js_1.entryId)(text);
|
|
89
89
|
neuron.entry_dates[k] = earliest(neuron.entry_dates[k] || '', at);
|
|
90
90
|
};
|
|
91
|
+
// Who wrote a pattern, error or debt that arrived here (2.7) — the
|
|
92
|
+
// sidecar twin of a fact's `source: team:<by>`, so recall can say a line
|
|
93
|
+
// is a teammate's. Only for entries this replay ADDS: one already here was
|
|
94
|
+
// here first, and its origin does not change because someone else agrees.
|
|
95
|
+
// Two authors adding the same line in one replay: the earliest `at` wins,
|
|
96
|
+
// then the smaller name, so every machine lands on the same author
|
|
97
|
+
// whatever order the logs were read in.
|
|
98
|
+
const puestas = new Map();
|
|
99
|
+
const procedencia = (text, by, at, nueva) => {
|
|
100
|
+
if (!by)
|
|
101
|
+
return;
|
|
102
|
+
const k = (0, ops_js_1.entryId)(text);
|
|
103
|
+
const previa = puestas.get(k);
|
|
104
|
+
if (!previa && !nueva)
|
|
105
|
+
return; // it was here before this replay: not a teammate's
|
|
106
|
+
if (previa) {
|
|
107
|
+
const a = typeof at === 'string' ? at : '';
|
|
108
|
+
if (!(a < previa.at || (a === previa.at && by < previa.by)))
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
else if (neuron.entry_source?.[k]) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
puestas.set(k, { at: typeof at === 'string' ? at : '', by });
|
|
115
|
+
(neuron.entry_source ||= {})[k] = `team:${by}`;
|
|
116
|
+
};
|
|
91
117
|
if (base && neuronOp && neuronOp.op === 'neuron') {
|
|
92
118
|
if (neuronOp.name && base.name && (0, ops_js_1.normalizeText)(neuronOp.name) !== (0, ops_js_1.normalizeText)(base.name)) {
|
|
93
119
|
report.divergence.push({ field: 'name', mine: base.name, theirs: neuronOp.name, from: neuronOp.by });
|
|
@@ -195,7 +221,10 @@ function applyOps(base, ops, fallback) {
|
|
|
195
221
|
if (!neuron.patterns.some(p => (0, ops_js_1.normalizeText)(p) === (0, ops_js_1.normalizeText)(op.text))) {
|
|
196
222
|
neuron.patterns.push(op.text);
|
|
197
223
|
report.patterns_added++;
|
|
224
|
+
procedencia(op.text, op.by, op.at, true);
|
|
198
225
|
}
|
|
226
|
+
else
|
|
227
|
+
procedencia(op.text, op.by, op.at, false);
|
|
199
228
|
fechar(op.text, op.at);
|
|
200
229
|
}
|
|
201
230
|
else if (op.op === 'tag') {
|
|
@@ -210,7 +239,10 @@ function applyOps(base, ops, fallback) {
|
|
|
210
239
|
if (!neuron.errors.some(e => (0, ops_js_1.normalizeText)(e) === (0, ops_js_1.normalizeText)(op.text))) {
|
|
211
240
|
neuron.errors.push(op.text);
|
|
212
241
|
report.errors_added++;
|
|
242
|
+
procedencia(op.text, op.by, op.at, true);
|
|
213
243
|
}
|
|
244
|
+
else
|
|
245
|
+
procedencia(op.text, op.by, op.at, false);
|
|
214
246
|
fechar(op.text, op.at);
|
|
215
247
|
}
|
|
216
248
|
else if (op.op === 'debt') {
|
|
@@ -219,7 +251,10 @@ function applyOps(base, ops, fallback) {
|
|
|
219
251
|
if (!neuron.debts.some(d => (0, ops_js_1.normalizeText)(d) === (0, ops_js_1.normalizeText)(op.text))) {
|
|
220
252
|
neuron.debts.push(op.text);
|
|
221
253
|
report.debts_added++;
|
|
254
|
+
procedencia(op.text, op.by, op.at, true);
|
|
222
255
|
}
|
|
256
|
+
else
|
|
257
|
+
procedencia(op.text, op.by, op.at, false);
|
|
223
258
|
fechar(op.text, op.at);
|
|
224
259
|
}
|
|
225
260
|
}
|
|
@@ -350,6 +385,24 @@ function applyOps(base, ops, fallback) {
|
|
|
350
385
|
}
|
|
351
386
|
neuron.entry_status = ordenado;
|
|
352
387
|
}
|
|
388
|
+
// Origins (2.7): same pruning, same fixed order. Absent stays absent, so a
|
|
389
|
+
// neuron nobody else wrote to is byte-identical to what 2.6 produced.
|
|
390
|
+
if (neuron.entry_source) {
|
|
391
|
+
const vivos = new Set([
|
|
392
|
+
...neuron.decisions.map(d => d.text),
|
|
393
|
+
...neuron.patterns, ...neuron.preferences,
|
|
394
|
+
...(neuron.errors || []), ...(neuron.debts || []),
|
|
395
|
+
].map(ops_js_1.entryId));
|
|
396
|
+
const ordenado = {};
|
|
397
|
+
for (const k of Object.keys(neuron.entry_source).sort()) {
|
|
398
|
+
if (vivos.has(k))
|
|
399
|
+
ordenado[k] = neuron.entry_source[k];
|
|
400
|
+
}
|
|
401
|
+
if (Object.keys(ordenado).length)
|
|
402
|
+
neuron.entry_source = ordenado;
|
|
403
|
+
else
|
|
404
|
+
delete neuron.entry_source;
|
|
405
|
+
}
|
|
353
406
|
report.authors = [...new Set(ops.map(o => o.by).filter(Boolean))].sort();
|
|
354
407
|
return { neuron, report };
|
|
355
408
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialize.js","sourceRoot":"","sources":["../../src/sync/materialize.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"materialize.js","sourceRoot":"","sources":["../../src/sync/materialize.ts"],"names":[],"mappings":";AAAA,oEAAoE;AACpE,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,uEAAuE;AACvE,EAAE;AACF,+EAA+E;AAC/E,iBAAiB;AACjB,6BAA6B;AAC7B,oDAAoD;AACpD,uEAAuE;AACvE,6EAA6E;AAC7E,uDAAuD;;AAkDvD,4BAkWC;AAlZD,0CAAqC;AAGrC,qCAAkD;AA0BlD;;;;GAIG;AACH,MAAM,IAAI,GAA+B,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AACpF,MAAM,OAAO,GAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AAEpE,SAAS,MAAM,CAAC,CAAyB;IACvC,OAAO,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,wDAAwD;AACxD,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACjB,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACjB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,SAAgB,QAAQ,CACtB,IAAmB,EACnB,GAAS,EACT,QAAyB;IAEzB,MAAM,MAAM,GAAgB;QAC1B,WAAW,EAAE,CAAC;QACd,eAAe,EAAE,CAAC;QAClB,gBAAgB,EAAE,CAAC;QACnB,eAAe,EAAE,CAAC;QAClB,cAAc,EAAE,CAAC;QACjB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,eAAe,EAAE,CAAC;QAClB,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;KACf,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IAClD,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,QAAQ,EAAE,GAAG,IAAI,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;IAE3D,wEAAwE;IACxE,yEAAyE;IACzE,4EAA4E;IAC5E,iEAAiE;IACjE,MAAM,MAAM,GAAW,IAAI;QACzB,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE;QACxd,CAAC,CAAC;YACE,EAAE;YACF,IAAI,EAAE,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC/D,MAAM,EAAE,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC1E,IAAI,EAAE,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAmB;YAC3F,OAAO,EAAE,IAAA,WAAG,GAAE;YACd,aAAa,EAAE,IAAA,WAAG,GAAE;YACpB,YAAY,EAAE,CAAC;YACf,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,EAAE;YACf,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,EAAE;SACjB,CAAC;IAEN,0EAA0E;IAC1E,8DAA8D;IAC9D,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE;QAC1C,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,CAAC;QACxB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC;IACF,mEAAmE;IACnE,yEAAyE;IACzE,2EAA2E;IAC3E,0EAA0E;IAC1E,0EAA0E;IAC1E,mEAAmE;IACnE,wCAAwC;IACxC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsC,CAAC;IAC9D,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAU,EAAE,KAAc,EAAE,EAAE;QAC3E,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,MAAM,CAAC,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;YAAE,OAAO,CAAG,mDAAmD;QACpF,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;gBAAE,OAAO;QACtE,CAAC;aAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7D,CAAC,MAAM,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC;IACjD,CAAC,CAAC;IAEF,IAAI,IAAI,IAAI,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QACjD,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAA,sBAAa,EAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5F,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,IAAA,sBAAa,EAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,SAAS,GAAe,EAAE,CAAC;IAEjC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;YACrB,MAAM,EAAE,GAAG,EAAY,CAAC;YACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAA,sBAAa,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACzE,IAAI,QAAQ,EAAE,CAAC;gBACb,kEAAkE;gBAClE,yDAAyD;gBACzD,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC;gBACpC,sEAAsE;gBACtE,sEAAsE;gBACtE,oEAAoE;gBACpE,4DAA4D;gBAC5D,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC5B,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBACjD,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBACvE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM;oBAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtG,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAS;gBACjB,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,UAAU,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;gBACxB,KAAK,EAAE,EAAE,CAAC,EAAE;gBACZ,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;gBACvB,EAAE,EAAE,EAAE,CAAC,GAAG;gBACV,MAAM,EAAE,QAAQ;aACjB,CAAC;YACF,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM;gBAAE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,IAAA,sBAAa,EAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YACzC,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;aAAM,IAAI,EAAE,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,EAAc,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,4DAA4D;IAC5D,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,OAAO,KAAK,KAAK;YAAE,SAAS;QAChC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC;QACvB,IAAI,EAAE,CAAC,GAAG;YAAE,MAAM,CAAC,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC;QAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;YAAE,MAAM,CAAC,eAAe,EAAE,CAAC;;YACvD,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACjC,CAAC;IAED,gEAAgE;IAChE,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACjC,YAAY,CAAC,GAAG,CAAC,GAAI,CAAgC,CAAC,EAAE,IAAI,IAAA,sBAAa,EAAC,CAAC,CAAC,IAAI,CAAC,IAAK,CAAgC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACrI,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,EAAE,KAAK,UAAU;YAAE,SAAS;QACnC,MAAM,GAAG,GAAG,EAAgB,CAAC;QAC7B,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACpC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,EAAE;YACZ,SAAS,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE;YACxB,EAAE,EAAE,GAAG,CAAC,GAAG;YACX,EAAE,EAAE,GAAG,CAAC,EAAE;SACC,CAAC,CAAC;QACf,MAAM,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,gEAAgE;IAChE,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,sBAAa,EAAC,CAAC,CAAC,KAAK,IAAA,sBAAa,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC5E,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC3C,CAAC;;gBAAM,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACjD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,sBAAa,EAAC,CAAC,CAAC,KAAK,IAAA,sBAAa,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACxE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;aAAM,IAAI,EAAE,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,sBAAa,EAAC,CAAC,CAAC,KAAK,IAAA,sBAAa,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC1E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC5B,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC3C,CAAC;;gBAAM,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACjD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,sBAAa,EAAC,CAAC,CAAC,KAAK,IAAA,sBAAa,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACzE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM,CAAC,WAAW,EAAE,CAAC;gBACrB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC3C,CAAC;;gBAAM,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACjD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,sEAAsE;IACtE,uEAAuE;IACvE,iEAAiE;IACjE,MAAM,QAAQ,GAAG;QACf,KAAK,EAAE,IAAI,GAAG,EAAU,EAAE,IAAI,EAAE,IAAI,GAAG,EAAU;QACjD,QAAQ,EAAE,IAAI,GAAG,EAAU,EAAE,OAAO,EAAE,IAAI,GAAG,EAAU;KACxD,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,EAAa,CAAC;YACzB,IAAI,EAAE,CAAC,KAAK,KAAK,OAAO,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,UAAU,IAAI,EAAE,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACrG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAA,gBAAO,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,eAAe,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACzD,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAClC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAA,gBAAO,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,eAAe,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;IACxD,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;QACtC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAA,gBAAO,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,CAAC,eAAe,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;IAC5D,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAO,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,CAAC,eAAe,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC3D,CAAC;IAED,gEAAgE;IAChE,sEAAsE;IACtE,yEAAyE;IACzE,4DAA4D;IAC5D,2EAA2E;IAC3E,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,yEAAyE;IACzE,iDAAiD;IACjD,MAAM,EAAE,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAEzD,IAAI,OAAO,GAAiB,IAAI,CAAC;IACjC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,EAAE,KAAK,KAAK;YAAE,SAAS;QAC9B,MAAM,EAAE,GAAG,EAAW,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QACzC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAA,gBAAO,EAAC,EAAE,CAAC,IAAI,CAAC,GAAG,IAAA,gBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,GAAG,EAAE,CAAC;IAC3F,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;QACzB,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,CAAC,KAAK;eACd,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;eACvB,CAAC,KAAK,KAAK,OAAO,IAAI,IAAA,gBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAA,gBAAO,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,IAAA,sBAAa,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACvC,iEAAiE;gBACjE,8DAA8D;gBAC9D,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,MAAM,CAAC,GAAG,CAAC;oBAClB,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC5B,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,KAAK,IAAI,IAAA,sBAAa,EAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAA,sBAAa,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/E,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;gBACpE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACzB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACnB,IAAI,MAAM,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,MAAM,CAAC,KAAK;QAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAEtC,2EAA2E;IAC3E,0EAA0E;IAC1E,uDAAuD;IACvD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC;YACpB,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,WAAW;YACzC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;SAClD,CAAC,GAAG,CAAC,gBAAO,CAAC,CAAC,CAAC;QAChB,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACvD,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;IAChC,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,qEAAqE;IACrE,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC;YACpB,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACpC,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,WAAW;YACzC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;SAClD,CAAC,GAAG,CAAC,gBAAO,CAAC,CAAC,CAAC;QAChB,MAAM,QAAQ,GAAwC,EAAE,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACxD,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED,2EAA2E;IAC3E,sEAAsE;IACtE,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC;YACpB,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACpC,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,WAAW;YACzC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;SAClD,CAAC,GAAG,CAAC,gBAAO,CAAC,CAAC,CAAC;QAChB,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACxD,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC;;YAC5D,OAAO,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -26,6 +26,14 @@ export interface Fact {
|
|
|
26
26
|
* vocabulary gaps, and the one no embedding model replaces.
|
|
27
27
|
*/
|
|
28
28
|
keys?: string[];
|
|
29
|
+
/**
|
|
30
|
+
* How many times this exact line was learned: 1 when written, +1 each time
|
|
31
|
+
* a session stores the same text again (the exact-duplicate branch of
|
|
32
|
+
* learn). Absent means 1, so a fact written before 2.7 is valid as it is.
|
|
33
|
+
* Local only: it never travels as a sync op. The miner does not count —
|
|
34
|
+
* re-reading the same file is not a second witness.
|
|
35
|
+
*/
|
|
36
|
+
confirmations?: number;
|
|
29
37
|
}
|
|
30
38
|
export interface Decision {
|
|
31
39
|
text: string;
|
|
@@ -98,6 +106,16 @@ export interface Neuron {
|
|
|
98
106
|
* op — it survives a sync only because applyOps copies and prunes it.
|
|
99
107
|
*/
|
|
100
108
|
entry_status?: Record<string, EntryRetirement>;
|
|
109
|
+
/**
|
|
110
|
+
* Where a decision, pattern, error or debt came from when it was not this
|
|
111
|
+
* machine's own session, keyed by entryId(text) like entry_dates: the same
|
|
112
|
+
* values Fact.source takes — 'team:<author>' (arrived through a shared
|
|
113
|
+
* space) or 'miner' (any other non-session source a caller passes). Absent key === written here. A sidecar for
|
|
114
|
+
* the same reason as the other two (2.7): the arrays keep their type and a
|
|
115
|
+
* brain without it is valid as it is. Read by recall to say, only when it
|
|
116
|
+
* is not the user's own, where a line came from.
|
|
117
|
+
*/
|
|
118
|
+
entry_source?: Record<string, string>;
|
|
101
119
|
/**
|
|
102
120
|
* The living map of the system: where it lives, what serves what, which
|
|
103
121
|
* pieces talk to each other, the traps. One document, replaced whole on
|
|
@@ -264,6 +282,16 @@ export interface SearchResult {
|
|
|
264
282
|
added: string;
|
|
265
283
|
preview: string;
|
|
266
284
|
chars: number;
|
|
285
|
+
origin?: string;
|
|
286
|
+
by?: string;
|
|
267
287
|
}>;
|
|
288
|
+
/**
|
|
289
|
+
* Where the matching entry came from, set ONLY when it is not the user's
|
|
290
|
+
* own (2.7): 'team:<space>' for a line a teammate wrote, 'miner' for the
|
|
291
|
+
* background miner ('import' only if a caller passes that source; no shipped writer does). Absent === own.
|
|
292
|
+
*/
|
|
293
|
+
origin?: string;
|
|
294
|
+
/** With origin team:…, the teammate who wrote it, when known. */
|
|
295
|
+
by?: string;
|
|
268
296
|
}
|
|
269
297
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;AAE/D,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAGf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/ids.d.ts
CHANGED
|
@@ -33,6 +33,12 @@ export declare function sessionId(date?: string): string;
|
|
|
33
33
|
* Validate that a string is a valid neuron ID.
|
|
34
34
|
*/
|
|
35
35
|
export declare function isValidNeuronId(id: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* The first technology a text names as a whole word ("git", "firebase"), or
|
|
38
|
+
* null. Whole words on purpose: inferNeuronType's substring test is fine for
|
|
39
|
+
* a topic name and wrong for a sentence ("rest" inside "interesting").
|
|
40
|
+
*/
|
|
41
|
+
export declare function techKeywordIn(text: string): string | null;
|
|
36
42
|
/**
|
|
37
43
|
* Infer neuron type from topic name using simple heuristics.
|
|
38
44
|
* Falls back to 'project' if unsure.
|
package/dist/utils/ids.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/utils/ids.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAYpD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAU/C;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQnD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAI/D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/utils/ids.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAYpD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAU/C;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQnD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAI/D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEnD;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGzD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAwBzD"}
|
package/dist/utils/ids.js
CHANGED
|
@@ -8,6 +8,7 @@ exports.neuronId = neuronId;
|
|
|
8
8
|
exports.synapseId = synapseId;
|
|
9
9
|
exports.sessionId = sessionId;
|
|
10
10
|
exports.isValidNeuronId = isValidNeuronId;
|
|
11
|
+
exports.techKeywordIn = techKeywordIn;
|
|
11
12
|
exports.inferNeuronType = inferNeuronType;
|
|
12
13
|
const TYPE_PREFIXES = {
|
|
13
14
|
project: 'project_',
|
|
@@ -83,6 +84,18 @@ function sessionId(date) {
|
|
|
83
84
|
function isValidNeuronId(id) {
|
|
84
85
|
return /^(project|tech|lang|person|domain|process|protocol)_[a-z0-9_]+$/.test(id);
|
|
85
86
|
}
|
|
87
|
+
const TECH_KEYWORDS = ['firebase', 'react', 'node', 'docker', 'kubernetes', 'aws', 'gcp', 'cloud', 'api', 'rest',
|
|
88
|
+
'graphql', 'mongodb', 'postgres', 'redis', 'nginx', 'webpack', 'vite', 'git', 'npm', 'supabase', 'stripe',
|
|
89
|
+
'vercel', 'netlify', 'cloudflare', 'orama', 'chromadb', 'openai', 'gemini', 'claude'];
|
|
90
|
+
/**
|
|
91
|
+
* The first technology a text names as a whole word ("git", "firebase"), or
|
|
92
|
+
* null. Whole words on purpose: inferNeuronType's substring test is fine for
|
|
93
|
+
* a topic name and wrong for a sentence ("rest" inside "interesting").
|
|
94
|
+
*/
|
|
95
|
+
function techKeywordIn(text) {
|
|
96
|
+
const words = new Set(text.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean));
|
|
97
|
+
return TECH_KEYWORDS.find(kw => words.has(kw)) ?? null;
|
|
98
|
+
}
|
|
86
99
|
/**
|
|
87
100
|
* Infer neuron type from topic name using simple heuristics.
|
|
88
101
|
* Falls back to 'project' if unsure.
|
|
@@ -90,10 +103,7 @@ function isValidNeuronId(id) {
|
|
|
90
103
|
function inferNeuronType(topic) {
|
|
91
104
|
const lower = topic.toLowerCase();
|
|
92
105
|
// Tech keywords
|
|
93
|
-
|
|
94
|
-
'graphql', 'mongodb', 'postgres', 'redis', 'nginx', 'webpack', 'vite', 'git', 'npm', 'supabase', 'stripe',
|
|
95
|
-
'vercel', 'netlify', 'cloudflare', 'orama', 'chromadb', 'openai', 'gemini', 'claude'];
|
|
96
|
-
if (techKeywords.some(kw => lower.includes(kw)))
|
|
106
|
+
if (TECH_KEYWORDS.some(kw => lower.includes(kw)))
|
|
97
107
|
return 'tech';
|
|
98
108
|
// Language keywords
|
|
99
109
|
const langKeywords = ['python', 'javascript', 'typescript', 'php', 'rust', 'go', 'java', 'swift', 'kotlin', 'css', 'html', 'sql'];
|
package/dist/utils/ids.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/utils/ids.ts"],"names":[],"mappings":";AAAA,oEAAoE;AACpE,2CAA2C;;AAkB3C,kCAUC;AAUD,0CAQC;AAMD,4BAIC;AAOD,8BAIC;AAMD,8BAGC;AAKD,0CAEC;AAMD,
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/utils/ids.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/** Where Claude Code keeps its per-project session logs. */
|
|
2
|
+
export declare function claudeProjectsRoot(): string;
|
|
3
|
+
/** The folder name Claude Code uses for a working directory. */
|
|
4
|
+
export declare function encodeProjectDir(dir: string): string;
|
|
5
|
+
export interface SessionFiles {
|
|
6
|
+
/** Encoded project folder name, as on disk. */
|
|
7
|
+
project: string;
|
|
8
|
+
sessionId: string;
|
|
9
|
+
/** The session's own log, or null when only subagent logs survive. */
|
|
10
|
+
main: string | null;
|
|
11
|
+
/** Every subagent and workflow-agent log under <session>/subagents/. */
|
|
12
|
+
subagents: string[];
|
|
13
|
+
/** Newest modification time among all of the above. */
|
|
14
|
+
mtimeMs: number;
|
|
15
|
+
/** Total size on disk of all of the above. */
|
|
16
|
+
bytes: number;
|
|
17
|
+
}
|
|
18
|
+
export interface FindOptions {
|
|
19
|
+
/** Defaults to claudeProjectsRoot(). */
|
|
20
|
+
root?: string;
|
|
21
|
+
/** Only sessions with a file modified in the last N days. */
|
|
22
|
+
days?: number;
|
|
23
|
+
/** Session id, or a prefix of it (case-insensitive). */
|
|
24
|
+
session?: string;
|
|
25
|
+
/** A working folder or part of the encoded folder name. */
|
|
26
|
+
project?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The sessions on disk that match, newest first. Only directory listings and
|
|
30
|
+
* stat() — no file is opened.
|
|
31
|
+
*/
|
|
32
|
+
export declare function findSessions(opts?: FindOptions): Promise<SessionFiles[]>;
|
|
33
|
+
export interface ReadStats {
|
|
34
|
+
/** Lines seen, including skipped ones. */
|
|
35
|
+
lines: number;
|
|
36
|
+
/** Lines that passed the byte filter but were not valid JSON (torn, foreign). */
|
|
37
|
+
broken: number;
|
|
38
|
+
/** Lines longer than maxLineBytes, skipped without being assembled. */
|
|
39
|
+
oversized: number;
|
|
40
|
+
}
|
|
41
|
+
export declare function newReadStats(): ReadStats;
|
|
42
|
+
export interface ReadOptions {
|
|
43
|
+
/** A line longer than this is skipped as it streams past. Default 16 MB. */
|
|
44
|
+
maxLineBytes?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Decode and parse a line only if its raw bytes contain at least one of
|
|
47
|
+
* these strings. Cheap, and it keeps most of a transcript as bytes nobody
|
|
48
|
+
* looks at. The caller still checks the parsed fields: this is a pre-filter.
|
|
49
|
+
*/
|
|
50
|
+
anyOf?: string[];
|
|
51
|
+
/** Counters, filled in as the file is read. */
|
|
52
|
+
stats?: ReadStats;
|
|
53
|
+
}
|
|
54
|
+
export declare const DEFAULT_MAX_LINE_BYTES: number;
|
|
55
|
+
/**
|
|
56
|
+
* Parsed JSONL entries with their 1-based line number. Streams the file in
|
|
57
|
+
* 1 MB chunks; memory stays bounded by the longest accepted line.
|
|
58
|
+
*/
|
|
59
|
+
export declare function readJsonl(file: string, opts?: ReadOptions): AsyncGenerator<{
|
|
60
|
+
line: number;
|
|
61
|
+
entry: any;
|
|
62
|
+
}>;
|
|
63
|
+
//# sourceMappingURL=transcripts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcripts.d.ts","sourceRoot":"","sources":["../../src/utils/transcripts.ts"],"names":[],"mappings":"AA8BA,4DAA4D;AAC5D,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,wEAAwE;IACxE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA4BD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA0DlF;AAID,MAAM,WAAW,SAAS;IACxB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,YAAY,IAAI,SAAS,CAExC;AAED,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AAEvD;;;GAGG;AACH,wBAAuB,SAAS,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,WAAgB,GACrB,cAAc,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,CAAC,CA4E9C"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ─── Claude Code transcripts, read without reading them ─────────
|
|
3
|
+
//
|
|
4
|
+
// `crbro usage` and `crbro postmortem` both walk the session logs Claude Code
|
|
5
|
+
// keeps on disk. This is the one reader they share, and it is built around two
|
|
6
|
+
// facts about those files:
|
|
7
|
+
//
|
|
8
|
+
// 1. They are big. A long session with workflows writes 200–300 MB into a
|
|
9
|
+
// single .jsonl, and one line can hold a whole tool result. So nothing here
|
|
10
|
+
// loads a file: lines are cut from a byte stream, a line longer than
|
|
11
|
+
// `maxLineBytes` is skipped without ever being assembled, and a caller can
|
|
12
|
+
// say which bytes a line must contain before it is decoded or parsed at
|
|
13
|
+
// all — most lines are thrown away as raw bytes.
|
|
14
|
+
// 2. They are private. Each caller decides which fields it touches; this
|
|
15
|
+
// module never looks inside an entry. A torn last line (the session is
|
|
16
|
+
// still writing) or a foreign line is counted and skipped, never fatal.
|
|
17
|
+
//
|
|
18
|
+
// Layout, as found under ~/.claude/projects on a real machine (2026-10):
|
|
19
|
+
//
|
|
20
|
+
// <projects>/<project>/<session>.jsonl the session
|
|
21
|
+
// <projects>/<project>/<session>/subagents/agent-<id>.jsonl Task subagents
|
|
22
|
+
// <projects>/<project>/<session>/subagents/workflows/<wf>/agent-<id>.jsonl workflow agents
|
|
23
|
+
//
|
|
24
|
+
// <project> is the working folder with every character that is not a letter or
|
|
25
|
+
// a digit turned into "-" (C:\Users\me\repo → C--Users-me-repo).
|
|
26
|
+
// CLAUDE_CONFIG_DIR, when set, moves ~/.claude and is honoured.
|
|
27
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
28
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.DEFAULT_MAX_LINE_BYTES = void 0;
|
|
32
|
+
exports.claudeProjectsRoot = claudeProjectsRoot;
|
|
33
|
+
exports.encodeProjectDir = encodeProjectDir;
|
|
34
|
+
exports.findSessions = findSessions;
|
|
35
|
+
exports.newReadStats = newReadStats;
|
|
36
|
+
exports.readJsonl = readJsonl;
|
|
37
|
+
const fs_1 = require("fs");
|
|
38
|
+
const path_1 = __importDefault(require("path"));
|
|
39
|
+
const os_1 = __importDefault(require("os"));
|
|
40
|
+
/** Where Claude Code keeps its per-project session logs. */
|
|
41
|
+
function claudeProjectsRoot() {
|
|
42
|
+
const base = process.env.CLAUDE_CONFIG_DIR?.trim() || path_1.default.join(os_1.default.homedir(), '.claude');
|
|
43
|
+
return path_1.default.join(base, 'projects');
|
|
44
|
+
}
|
|
45
|
+
/** The folder name Claude Code uses for a working directory. */
|
|
46
|
+
function encodeProjectDir(dir) {
|
|
47
|
+
return dir.replace(/[^A-Za-z0-9]/g, '-');
|
|
48
|
+
}
|
|
49
|
+
/** Deep enough for subagents/workflows/<wf>/agent-*.jsonl, and no deeper. */
|
|
50
|
+
const SUBAGENT_MAX_DEPTH = 4;
|
|
51
|
+
async function listJsonl(dir, depth, out) {
|
|
52
|
+
if (depth > SUBAGENT_MAX_DEPTH)
|
|
53
|
+
return;
|
|
54
|
+
let entries;
|
|
55
|
+
try {
|
|
56
|
+
entries = await fs_1.promises.readdir(dir, { withFileTypes: true });
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
for (const e of entries) {
|
|
62
|
+
const p = path_1.default.join(dir, e.name);
|
|
63
|
+
if (e.isDirectory())
|
|
64
|
+
await listJsonl(p, depth + 1, out);
|
|
65
|
+
else if (e.isFile() && e.name.endsWith('.jsonl'))
|
|
66
|
+
out.push(p);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function projectMatches(dirName, filter) {
|
|
70
|
+
const name = dirName.toLowerCase();
|
|
71
|
+
const raw = filter.trim().toLowerCase();
|
|
72
|
+
if (!raw)
|
|
73
|
+
return true;
|
|
74
|
+
const encoded = encodeProjectDir(filter.trim()).toLowerCase();
|
|
75
|
+
return name === encoded || name.includes(raw) || name.includes(encoded);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The sessions on disk that match, newest first. Only directory listings and
|
|
79
|
+
* stat() — no file is opened.
|
|
80
|
+
*/
|
|
81
|
+
async function findSessions(opts = {}) {
|
|
82
|
+
const root = opts.root ?? claudeProjectsRoot();
|
|
83
|
+
const cutoff = opts.days !== undefined && opts.days > 0 ? Date.now() - opts.days * 86_400_000 : -Infinity;
|
|
84
|
+
const wanted = opts.session?.trim().toLowerCase();
|
|
85
|
+
let projects;
|
|
86
|
+
try {
|
|
87
|
+
projects = await fs_1.promises.readdir(root, { withFileTypes: true });
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
const out = [];
|
|
93
|
+
for (const p of projects) {
|
|
94
|
+
if (!p.isDirectory())
|
|
95
|
+
continue;
|
|
96
|
+
if (opts.project && !projectMatches(p.name, opts.project))
|
|
97
|
+
continue;
|
|
98
|
+
const projectDir = path_1.default.join(root, p.name);
|
|
99
|
+
let entries;
|
|
100
|
+
try {
|
|
101
|
+
entries = await fs_1.promises.readdir(projectDir, { withFileTypes: true });
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
const ids = new Set();
|
|
107
|
+
for (const e of entries) {
|
|
108
|
+
if (e.isFile() && e.name.endsWith('.jsonl'))
|
|
109
|
+
ids.add(e.name.slice(0, -'.jsonl'.length));
|
|
110
|
+
else if (e.isDirectory())
|
|
111
|
+
ids.add(e.name);
|
|
112
|
+
}
|
|
113
|
+
for (const sessionId of ids) {
|
|
114
|
+
if (wanted && !sessionId.toLowerCase().startsWith(wanted))
|
|
115
|
+
continue;
|
|
116
|
+
const mainPath = path_1.default.join(projectDir, `${sessionId}.jsonl`);
|
|
117
|
+
const subagents = [];
|
|
118
|
+
await listJsonl(path_1.default.join(projectDir, sessionId, 'subagents'), 0, subagents);
|
|
119
|
+
let main = null;
|
|
120
|
+
let mtimeMs = 0;
|
|
121
|
+
let bytes = 0;
|
|
122
|
+
try {
|
|
123
|
+
const st = await fs_1.promises.stat(mainPath);
|
|
124
|
+
if (st.isFile()) {
|
|
125
|
+
main = mainPath;
|
|
126
|
+
mtimeMs = st.mtimeMs;
|
|
127
|
+
bytes += st.size;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch { /* subagents only, or not a session folder at all */ }
|
|
131
|
+
if (!main && subagents.length === 0)
|
|
132
|
+
continue; // e.g. a memory/ or tool-results/ folder
|
|
133
|
+
for (const f of subagents) {
|
|
134
|
+
try {
|
|
135
|
+
const st = await fs_1.promises.stat(f);
|
|
136
|
+
mtimeMs = Math.max(mtimeMs, st.mtimeMs);
|
|
137
|
+
bytes += st.size;
|
|
138
|
+
}
|
|
139
|
+
catch { /* vanished between listing and stat */ }
|
|
140
|
+
}
|
|
141
|
+
if (mtimeMs < cutoff)
|
|
142
|
+
continue;
|
|
143
|
+
subagents.sort();
|
|
144
|
+
out.push({ project: p.name, sessionId, main, subagents, mtimeMs, bytes });
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return out.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
148
|
+
}
|
|
149
|
+
function newReadStats() {
|
|
150
|
+
return { lines: 0, broken: 0, oversized: 0 };
|
|
151
|
+
}
|
|
152
|
+
exports.DEFAULT_MAX_LINE_BYTES = 16 * 1024 * 1024;
|
|
153
|
+
/**
|
|
154
|
+
* Parsed JSONL entries with their 1-based line number. Streams the file in
|
|
155
|
+
* 1 MB chunks; memory stays bounded by the longest accepted line.
|
|
156
|
+
*/
|
|
157
|
+
async function* readJsonl(file, opts = {}) {
|
|
158
|
+
const max = opts.maxLineBytes ?? exports.DEFAULT_MAX_LINE_BYTES;
|
|
159
|
+
const stats = opts.stats ?? newReadStats();
|
|
160
|
+
const needles = (opts.anyOf ?? []).map(s => Buffer.from(s, 'utf8'));
|
|
161
|
+
let parts = [];
|
|
162
|
+
let partLen = 0;
|
|
163
|
+
let skipping = false;
|
|
164
|
+
let lineNo = 0;
|
|
165
|
+
const take = (buf) => {
|
|
166
|
+
if (needles.length && !needles.some(n => buf.includes(n)))
|
|
167
|
+
return null;
|
|
168
|
+
let text = buf.toString('utf8');
|
|
169
|
+
if (text.endsWith('\r'))
|
|
170
|
+
text = text.slice(0, -1);
|
|
171
|
+
if (!text.trim())
|
|
172
|
+
return null;
|
|
173
|
+
try {
|
|
174
|
+
return { line: lineNo, entry: JSON.parse(text) };
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
stats.broken++;
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
const stream = (0, fs_1.createReadStream)(file, { highWaterMark: 1 << 20 });
|
|
182
|
+
try {
|
|
183
|
+
for await (const chunk of stream) {
|
|
184
|
+
let start = 0;
|
|
185
|
+
while (start < chunk.length) {
|
|
186
|
+
const nl = chunk.indexOf(10, start);
|
|
187
|
+
if (nl === -1) {
|
|
188
|
+
if (!skipping) {
|
|
189
|
+
const piece = chunk.subarray(start);
|
|
190
|
+
if (partLen + piece.length > max) {
|
|
191
|
+
skipping = true;
|
|
192
|
+
parts = [];
|
|
193
|
+
partLen = 0;
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
parts.push(piece);
|
|
197
|
+
partLen += piece.length;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
lineNo++;
|
|
203
|
+
stats.lines++;
|
|
204
|
+
if (skipping) {
|
|
205
|
+
skipping = false;
|
|
206
|
+
stats.oversized++;
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
const piece = chunk.subarray(start, nl);
|
|
210
|
+
if (partLen + piece.length > max) {
|
|
211
|
+
stats.oversized++;
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
const r = take(parts.length ? Buffer.concat([...parts, piece]) : piece);
|
|
215
|
+
if (r)
|
|
216
|
+
yield r;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
parts = [];
|
|
220
|
+
partLen = 0;
|
|
221
|
+
start = nl + 1;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
finally {
|
|
226
|
+
stream.destroy();
|
|
227
|
+
}
|
|
228
|
+
// A last line with no newline: usually the session is still writing it.
|
|
229
|
+
if (skipping) {
|
|
230
|
+
lineNo++;
|
|
231
|
+
stats.lines++;
|
|
232
|
+
stats.oversized++;
|
|
233
|
+
}
|
|
234
|
+
else if (partLen > 0) {
|
|
235
|
+
lineNo++;
|
|
236
|
+
stats.lines++;
|
|
237
|
+
const r = take(Buffer.concat(parts));
|
|
238
|
+
if (r)
|
|
239
|
+
yield r;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=transcripts.js.map
|