somtum 3.0.0 → 3.1.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 +101 -840
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +29 -27
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/hook.d.ts.map +1 -1
- package/dist/cli/hook.js +1 -1
- package/dist/cli/hook.js.map +1 -1
- package/dist/cli/index.js +11 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +31 -8
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/serve.d.ts.map +1 -1
- package/dist/cli/serve.js +2 -0
- package/dist/cli/serve.js.map +1 -1
- package/dist/cli/stats.d.ts +4 -0
- package/dist/cli/stats.d.ts.map +1 -1
- package/dist/cli/stats.js +71 -43
- package/dist/cli/stats.js.map +1 -1
- package/dist/core/ledger.d.ts +28 -0
- package/dist/core/ledger.d.ts.map +1 -0
- package/dist/core/ledger.js +43 -0
- package/dist/core/ledger.js.map +1 -0
- package/dist/core/retriever/bm25.d.ts +1 -1
- package/dist/core/retriever/bm25.d.ts.map +1 -1
- package/dist/core/retriever/bm25.js +11 -1
- package/dist/core/retriever/bm25.js.map +1 -1
- package/dist/core/schema.d.ts +5 -0
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +6 -1
- package/dist/core/schema.js.map +1 -1
- package/dist/core/session_progress.d.ts +10 -0
- package/dist/core/session_progress.d.ts.map +1 -0
- package/dist/core/session_progress.js +39 -0
- package/dist/core/session_progress.js.map +1 -0
- package/dist/db/migrations/006_token_ledger.sql +33 -0
- package/dist/hooks/post_session.d.ts +1 -0
- package/dist/hooks/post_session.d.ts.map +1 -1
- package/dist/hooks/post_session.js +79 -39
- package/dist/hooks/post_session.js.map +1 -1
- package/dist/hooks/pre_prompt.d.ts.map +1 -1
- package/dist/hooks/pre_prompt.js +14 -1
- package/dist/hooks/pre_prompt.js.map +1 -1
- package/dist/hooks/pre_read.d.ts +16 -2
- package/dist/hooks/pre_read.d.ts.map +1 -1
- package/dist/hooks/pre_read.js +81 -26
- package/dist/hooks/pre_read.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +2 -0
- package/dist/mcp/tools.js.map +1 -1
- package/package.json +5 -3
|
@@ -1,27 +1,28 @@
|
|
|
1
|
-
import { readFileSync, appendFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
2
|
-
import { isAbsolute, join, resolve as resolvePath } from 'node:path';
|
|
3
1
|
import { createHash } from 'node:crypto';
|
|
2
|
+
import { appendFileSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { isAbsolute, join, resolve as resolvePath } from 'node:path';
|
|
4
4
|
import { ulid } from 'ulid';
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
import { loadConfig, GLOBAL_DIR } from '../config.js';
|
|
7
|
-
import { openDb } from '../core/db.js';
|
|
8
|
-
import { MemoryStore } from '../core/store.js';
|
|
9
|
-
import { generateIndex } from '../core/index_gen.js';
|
|
10
|
-
import { extract, estimateTokensSaved, } from '../core/extractor.js';
|
|
11
|
-
import { resolveProjectId, projectNameFromCwd } from '../core/project_id.js';
|
|
12
|
-
import { countTokens } from '../core/tokens.js';
|
|
13
|
-
import { pickBackend, callerFor, NO_BACKEND_MESSAGE } from '../core/llm_backend.js';
|
|
14
|
-
import { projectDir } from '../config.js';
|
|
15
|
-
import { Bm25Retriever } from '../core/retriever/bm25.js';
|
|
16
|
-
import { parseTranscript, renderTurns, extractPromptResponsePairs } from '../core/transcript.js';
|
|
17
6
|
import { findTranscript } from '../agents/index.js';
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
7
|
+
import { GLOBAL_DIR, loadConfig, projectDir } from '../config.js';
|
|
8
|
+
import { hashPrompt, PromptCache } from '../core/cache.js';
|
|
9
|
+
import { openDb } from '../core/db.js';
|
|
10
|
+
import { deduplicateObservations } from '../core/dedup.js';
|
|
20
11
|
import { ensureEmbedderConfigured } from '../core/embeddings_bootstrap.js';
|
|
21
|
-
import {
|
|
12
|
+
import { estimateTokensSaved, extract } from '../core/extractor.js';
|
|
22
13
|
import { FileFingerprintStore, matchesAnyGlob, statFile, summarizeFile, summaryHash, } from '../core/file_summary.js';
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
14
|
+
import { fingerprintFiles } from '../core/fingerprint.js';
|
|
15
|
+
import { generateIndex } from '../core/index_gen.js';
|
|
16
|
+
import { TokenLedger } from '../core/ledger.js';
|
|
17
|
+
import { callerFor, NO_BACKEND_MESSAGE, pickBackend } from '../core/llm_backend.js';
|
|
18
|
+
import { memoriesDir, writeMemoryMarkdown } from '../core/memory_files.js';
|
|
19
|
+
import { projectNameFromCwd, resolveProjectId } from '../core/project_id.js';
|
|
20
|
+
import { embedMissing } from '../core/reindex.js';
|
|
21
|
+
import { Bm25Retriever } from '../core/retriever/bm25.js';
|
|
22
|
+
import { SessionProgressStore } from '../core/session_progress.js';
|
|
23
|
+
import { MemoryStore } from '../core/store.js';
|
|
24
|
+
import { countTokens } from '../core/tokens.js';
|
|
25
|
+
import { extractPromptResponsePairs, parseTranscript, renderTurns } from '../core/transcript.js';
|
|
25
26
|
export const HookPayloadSchema = z
|
|
26
27
|
.object({
|
|
27
28
|
session_id: z.string().optional(),
|
|
@@ -144,6 +145,7 @@ async function populateFileSummaries(db, turns, opts) {
|
|
|
144
145
|
summary: result.value.summary,
|
|
145
146
|
summary_hash: summaryHash(result.value.summary),
|
|
146
147
|
});
|
|
148
|
+
opts.ledger.record(opts.projectId, 'file_summary', result.value.tokensSpent, opts.sessionId);
|
|
147
149
|
generated += 1;
|
|
148
150
|
}
|
|
149
151
|
else {
|
|
@@ -198,35 +200,61 @@ export async function runPostSession(payload, opts = {}) {
|
|
|
198
200
|
const dbPath = opts.dbPath ?? join(dir, 'db.sqlite');
|
|
199
201
|
const indexPath = opts.indexPath ?? join(dir ?? '.', 'index.md');
|
|
200
202
|
const db = opts.db ?? openDb({ path: dbPath });
|
|
203
|
+
let callerForSummaries = opts.caller;
|
|
201
204
|
try {
|
|
202
205
|
const store = new MemoryStore(db);
|
|
203
206
|
const resolved = resolveTranscript(parsed);
|
|
207
|
+
const ledger = new TokenLedger(db);
|
|
208
|
+
const progress = new SessionProgressStore(db);
|
|
209
|
+
// Only the turns not yet extracted for this session are sent: a session
|
|
210
|
+
// that compacts and then ends is extracted once, not twice.
|
|
211
|
+
const resumeAt = progress.resumeIndex(sessionId, resolved.turns);
|
|
212
|
+
const pending = resolved.turns.slice(resumeAt);
|
|
213
|
+
const pendingText = resolved.turns.length > 0 ? renderTurns(pending) : resolved.text;
|
|
204
214
|
// Cap transcript size to stay within model context limits.
|
|
205
215
|
// At ~4 chars/token, 60k tokens ≈ 240 KB of text. Anything beyond that
|
|
206
216
|
// risks a context-limit error in Haiku; we take the tail (most recent turns).
|
|
207
217
|
const MAX_TRANSCRIPT_TOKENS = 60_000;
|
|
208
|
-
const
|
|
209
|
-
const transcript = countTokens(rawTranscript) > MAX_TRANSCRIPT_TOKENS
|
|
218
|
+
const transcript = countTokens(pendingText) > MAX_TRANSCRIPT_TOKENS
|
|
210
219
|
? (() => {
|
|
211
220
|
const charBudget = MAX_TRANSCRIPT_TOKENS * 4;
|
|
212
|
-
hookLog(`[post_session] WARN: transcript truncated to last ~${charBudget} chars (was ${
|
|
213
|
-
return
|
|
221
|
+
hookLog(`[post_session] WARN: transcript truncated to last ~${charBudget} chars (was ${pendingText.length})`);
|
|
222
|
+
return pendingText.slice(-charBudget);
|
|
214
223
|
})()
|
|
215
|
-
:
|
|
224
|
+
: pendingText;
|
|
216
225
|
const transcriptTokens = countTokens(transcript);
|
|
217
|
-
let
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
226
|
+
let extraction = resumeAt > 0 ? 'incremental' : 'full';
|
|
227
|
+
let outcome = {
|
|
228
|
+
observations: [],
|
|
229
|
+
tokensSpent: 0,
|
|
230
|
+
retries: 0,
|
|
231
|
+
};
|
|
232
|
+
if (transcriptTokens === 0 || transcriptTokens < config.extraction.min_new_tokens) {
|
|
233
|
+
// Too little new material to be worth a model call. The cursor is not
|
|
234
|
+
// advanced, so these turns ride along with the next extraction.
|
|
235
|
+
extraction = 'skipped';
|
|
236
|
+
ledger.record(projectId, 'extraction_skipped', transcriptTokens, sessionId);
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
let caller = opts.caller;
|
|
240
|
+
if (!caller) {
|
|
241
|
+
const backend = pickBackend(config);
|
|
242
|
+
if (!backend)
|
|
243
|
+
throw new Error(NO_BACKEND_MESSAGE);
|
|
244
|
+
hookLog(`[post_session] extraction backend: ${backend}`);
|
|
245
|
+
caller = callerFor(backend, config);
|
|
246
|
+
}
|
|
247
|
+
callerForSummaries = caller;
|
|
248
|
+
outcome = await extract(transcript, caller, {
|
|
249
|
+
model: config.extraction.model,
|
|
250
|
+
maxObservations: config.extraction.max_observations_per_session,
|
|
251
|
+
maxRetries: config.extraction.max_retries,
|
|
252
|
+
});
|
|
253
|
+
ledger.record(projectId, 'extraction', outcome.tokensSpent, sessionId);
|
|
254
|
+
const gaveUp = outcome.retries > config.extraction.max_retries;
|
|
255
|
+
if (!gaveUp)
|
|
256
|
+
progress.markExtracted(sessionId, projectId, resolved.turns);
|
|
224
257
|
}
|
|
225
|
-
const outcome = await extract(transcript, caller, {
|
|
226
|
-
model: config.extraction.model,
|
|
227
|
-
maxObservations: config.extraction.max_observations_per_session,
|
|
228
|
-
maxRetries: config.extraction.max_retries,
|
|
229
|
-
});
|
|
230
258
|
const total = outcome.observations.length;
|
|
231
259
|
// Divide extraction cost across observations so per-observation tokens_spent adds up.
|
|
232
260
|
const perObsSpend = total > 0 ? Math.floor(outcome.tokensSpent / total) : 0;
|
|
@@ -260,7 +288,11 @@ export async function runPostSession(payload, opts = {}) {
|
|
|
260
288
|
const dedupResult = deduplicateObservations(db, projectId, insertedIds);
|
|
261
289
|
const tokensSavedTotal = store.totalTokensSaved(projectId);
|
|
262
290
|
const cacheEntriesAdded = config.cache.enabled
|
|
263
|
-
? populateCache(db, resolved.turns, {
|
|
291
|
+
? populateCache(db, resolved.turns, {
|
|
292
|
+
cwd,
|
|
293
|
+
model: config.extraction.model,
|
|
294
|
+
cache: config.cache,
|
|
295
|
+
})
|
|
264
296
|
: 0;
|
|
265
297
|
let embeddingsAdded = 0;
|
|
266
298
|
if (config.retrieval.embeddings.enabled) {
|
|
@@ -286,17 +318,25 @@ export async function runPostSession(payload, opts = {}) {
|
|
|
286
318
|
}
|
|
287
319
|
// Summaries are optional work: run them last, and only while the hook's
|
|
288
320
|
// time budget lasts, so they can never cost us the index or warm-start.
|
|
289
|
-
|
|
321
|
+
if (config.file_gating.enabled && !callerForSummaries) {
|
|
322
|
+
const backend = pickBackend(config);
|
|
323
|
+
if (backend)
|
|
324
|
+
callerForSummaries = callerFor(backend, config);
|
|
325
|
+
}
|
|
326
|
+
const summariesGenerated = config.file_gating.enabled && callerForSummaries
|
|
290
327
|
? await populateFileSummaries(db, resolved.turns, {
|
|
291
328
|
cwd,
|
|
292
329
|
projectId,
|
|
330
|
+
sessionId,
|
|
293
331
|
config,
|
|
294
|
-
caller,
|
|
332
|
+
caller: callerForSummaries,
|
|
333
|
+
ledger,
|
|
295
334
|
deadline: startedAt + SUMMARY_BUDGET_MS,
|
|
296
335
|
})
|
|
297
336
|
: 0;
|
|
298
337
|
return {
|
|
299
338
|
projectId,
|
|
339
|
+
extraction,
|
|
300
340
|
inserted,
|
|
301
341
|
superseded: dedupResult.superseded,
|
|
302
342
|
tokensSpent: outcome.tokensSpent,
|
|
@@ -357,7 +397,7 @@ export async function main() {
|
|
|
357
397
|
const raw = await readToEnd(process.stdin);
|
|
358
398
|
const payload = HookPayloadSchema.parse(JSON.parse(raw));
|
|
359
399
|
const result = await runPostSession(payload);
|
|
360
|
-
hookLog(`[post_session] ok — inserted=${result.inserted} superseded=${result.superseded} cache=${result.cacheEntriesAdded} summaries=${result.summariesGenerated}`);
|
|
400
|
+
hookLog(`[post_session] ok — extraction=${result.extraction} inserted=${result.inserted} superseded=${result.superseded} cache=${result.cacheEntriesAdded} summaries=${result.summariesGenerated}`);
|
|
361
401
|
writeFirstSessionFlag(result.projectId, result.inserted);
|
|
362
402
|
// Hooks communicate via stdout; keep output structured.
|
|
363
403
|
console.log(JSON.stringify({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post_session.js","sourceRoot":"","sources":["../../src/hooks/post_session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"post_session.js","sourceRoot":"","sources":["../../src/hooks/post_session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre_prompt.d.ts","sourceRoot":"","sources":["../../src/hooks/pre_prompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAU,KAAK,EAAE,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pre_prompt.d.ts","sourceRoot":"","sources":["../../src/hooks/pre_prompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAU,KAAK,EAAE,EAAE,MAAM,eAAe,CAAC;AAWhD,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,mBAAmB,CAAC;AAG5D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW/B,CAAC;AAEL,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,EAAE,CAAC;IACR,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,QAAQ,GAAG,sBAAsB,GAAG,gBAAgB,CAAC;IAC9D,kBAAkB,CAAC,EAAE;QACnB,aAAa,EAAE,kBAAkB,CAAC;QAClC,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AA2RD,wBAAsB,YAAY,CAChC,OAAO,EAAE,gBAAgB,EACzB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,eAAe,CAAC,CA2K1B"}
|
package/dist/hooks/pre_prompt.js
CHANGED
|
@@ -12,6 +12,8 @@ import { resolveProjectId } from '../core/project_id.js';
|
|
|
12
12
|
import { ensureEmbedderConfigured } from '../core/embeddings_bootstrap.js';
|
|
13
13
|
import { getEmbedder, isEmbedderReady } from '../core/embeddings.js';
|
|
14
14
|
import { RetrievalStatsStore } from '../core/retrieval_stats.js';
|
|
15
|
+
import { TokenLedger } from '../core/ledger.js';
|
|
16
|
+
import { countTokens } from '../core/tokens.js';
|
|
15
17
|
export const PrePromptPayloadSchema = z
|
|
16
18
|
.object({
|
|
17
19
|
prompt: z.string().optional(),
|
|
@@ -31,6 +33,15 @@ function clampContext(text, limit = MAX_INJECTED_CHARS) {
|
|
|
31
33
|
return text;
|
|
32
34
|
return `${text.slice(0, limit)}\n… [truncated]`;
|
|
33
35
|
}
|
|
36
|
+
function formatAge(ms) {
|
|
37
|
+
const min = Math.max(1, Math.round(ms / 60_000));
|
|
38
|
+
if (min < 60)
|
|
39
|
+
return `${min} min`;
|
|
40
|
+
const h = Math.round(min / 60);
|
|
41
|
+
if (h < 48)
|
|
42
|
+
return `${h} h`;
|
|
43
|
+
return `${Math.round(h / 24)} days`;
|
|
44
|
+
}
|
|
34
45
|
function embedderWithTimeout(p, label) {
|
|
35
46
|
const EMBEDDER_TIMEOUT_MS = 2000;
|
|
36
47
|
return Promise.race([
|
|
@@ -325,7 +336,8 @@ export async function runPrePrompt(payload, opts = {}) {
|
|
|
325
336
|
const header = matchKind === 'fuzzy' && similarity !== undefined
|
|
326
337
|
? `[somtum-cache: fuzzy match sim=${similarity.toFixed(3)}]`
|
|
327
338
|
: `[somtum-cache]`;
|
|
328
|
-
const context = clampContext(`${header} A
|
|
339
|
+
const context = clampContext(`${header} A response from ${formatAge(Date.now() - cacheHit.created_at)} ago to a matching prompt — verify it still applies before reusing it:\n---\n${cacheHit.response}\n---`);
|
|
340
|
+
new TokenLedger(db).record(projectId, 'injection', countTokens(context), parsed.session_id ?? null);
|
|
329
341
|
const out = {
|
|
330
342
|
ok: true,
|
|
331
343
|
hit: true,
|
|
@@ -370,6 +382,7 @@ export async function runPrePrompt(payload, opts = {}) {
|
|
|
370
382
|
const budget = `[somtum] injected ${memResult.injectedCount}/${memResult.totalCount} memories (~${approxTokens} tokens) | ${gating}`;
|
|
371
383
|
additionalContext = `${budget}\n${combined}`;
|
|
372
384
|
}
|
|
385
|
+
new TokenLedger(db).record(projectId, 'injection', countTokens(additionalContext), sessionId ?? null);
|
|
373
386
|
return {
|
|
374
387
|
ok: true,
|
|
375
388
|
hit: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre_prompt.js","sourceRoot":"","sources":["../../src/hooks/pre_prompt.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pre_prompt.js","sourceRoot":"","sources":["../../src/hooks/pre_prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACnG,OAAO,EAAE,MAAM,EAAW,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE;IACpE,OAAO,EAAE,8CAA8C;CACxD,CAAC,CAAC;AAwBL,4FAA4F;AAC5F,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,SAAS,YAAY,CAAC,IAAY,EAAE,KAAK,GAAG,kBAAkB;IAC5D,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC;AAClD,CAAC;AAED,SAAS,SAAS,CAAC,EAAU;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IACjD,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,GAAG,GAAG,MAAM,CAAC;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAC5B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;AACtC,CAAC;AAED,SAAS,mBAAmB,CAAI,CAAa,EAAE,KAAa;IAC1D,MAAM,mBAAmB,GAAG,IAAI,CAAC;IACjC,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC/B,UAAU,CACR,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,mBAAmB,IAAI,CAAC,CAAC,EAC5E,mBAAmB,CACpB,CAAC,KAAK,EAAE,CACV;KACF,CAAC,CAAC;AACL,CAAC;AAED,uEAAuE;AACvE,SAAS,WAAW,CAAC,CAAS,EAAE,CAAS;IACvC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAC7B,IAAI,GAAG,CACL,CAAC;SACE,WAAW,EAAE;SACb,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAC/B,CAAC;IACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC7C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;IAC7C,OAAO,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAWD,SAAS,WAAW,CAAC,SAAiB;IACpC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,MAAM,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB;IACpC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAiB,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,KAAmB;IAC1D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACxC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;QACrE,+EAA+E;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,SAAS;YACjE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAwB,CAAC;gBACrE,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM;oBAAE,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,2BAA2B;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;IACnD,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB;IACrC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;AACH,CAAC;AAWD,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,MAAM,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB,EAAE,SAAiB;IAC9D,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAmB,CAAC;QACpE,8EAA8E;QAC9E,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QACrD,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,SAAiB,EAAE,GAAgB;IACjF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACxC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,MAAM,KAAK,GAAmB;YAC5B,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAAC;YACvD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC;QACF,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;IACnD,CAAC;AACH,CAAC;AASD,SAAS,uBAAuB,CAAC,SAAiB;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAElC,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,gFAAgF;YAChF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,MAAM,EAAE,CAAC;gBAAE,SAAS;YAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAqB,CAAC;gBACnE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC;gBACpD,IAAI,GAAG,GAAG,EAAE,CAAC,UAAU,IAAI,MAAM;oBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAC/D,CAAC;YAAC,MAAM,CAAC;gBACP,2BAA2B;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAUD,sFAAsF;AACtF,SAAS,YAAY,CAAC,IAAyB,EAAE,CAAS;IACxD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,2EAA2E;AAC3E,mEAAmE;AACnE,qFAAqF;AACrF,KAAK,UAAU,kBAAkB,CAC/B,EAAM,EACN,QAAmB,EACnB,SAAiB,EACjB,MAAc,EACd,MAAc,EACd,eAAoC;IAEpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE3C,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;IAEhF,MAAM,gBAAgB,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;IAC/C,IAAI,cAAiC,CAAC;IACtC,IAAI,CAAC;QACH,cAAc,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oDAAoD;IACpD,IAAI,aAAa,GAAsB,EAAE,CAAC;IAC1C,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;YACpD,aAAa,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE;gBACnD,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACnB,SAAS,EAAE,iBAAiB;aAC7B,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG,YAAY,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/D,4EAA4E;IAC5E,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC;IACvE,qFAAqF;IACrF,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,KAAK,QAAQ,IAAI,WAAW,EAAE,CAAC;YACpD,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GACd,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC;QAC/B,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,MAAM,KAAK,GAAG,OAAO;SAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACnF,IAAI,CAAC,SAAS,CAAC,CAAC;IAEnB,MAAM,OAAO,GAAG,YAAY,CAC1B,yDAAyD,KAAK,sBAAsB,EACpF,KAAK,CACN,CAAC;IAEF,OAAO;QACL,OAAO;QACP,aAAa,EAAE,OAAO,CAAC,MAAM;QAC7B,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,UAAU;QACV,aAAa,EAAE,OAAO,CAAC,MAAM;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAyB,EACzB,OAAyB,EAAE;IAE3B,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IACzD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAElF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAE/E,kFAAkF;IAClF,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;IACvE,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAE/C,yEAAyE;IACzE,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEpE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAEvC,4EAA4E;QAC5E,+EAA+E;QAC/E,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;gBAC7B,IACE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM;oBACpC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,GAAG,EAC9C,CAAC;oBACD,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC/C,CAAC;gBACD,qDAAqD;gBACrD,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,IAAI,QAAQ,GAAsB,IAAI,CAAC;QACvC,IAAI,SAAS,GAAsB,OAAO,CAAC;QAC3C,IAAI,UAA8B,CAAC;QACnC,IAAI,MAAM,GAA8B,QAAQ,CAAC;QAEjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,GAAG,gBAAgB,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAE3C,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACjF,wBAAwB,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,eAAe,EAAE,EAAE,CAAC;oBACtB,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,CAAC;wBACzE,MAAM,KAAK,GAAG,MAAM,mBAAmB,CACrC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EACjE,aAAa,CACd,CAAC;wBACF,IAAI,KAAK,EAAE,CAAC;4BACV,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;4BACvB,SAAS,GAAG,OAAO,CAAC;4BACpB,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;wBAChC,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,2DAA2D;oBAC7D,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC;gBAC9E,IAAI,OAAO,KAAK,QAAQ,CAAC,mBAAmB,EAAE,CAAC;oBAC7C,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC9B,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM,GAAG,sBAAsB,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACzD,YAAY,CAAC,SAAS,EAAE;gBACtB,cAAc,EAAE,QAAQ,CAAC,EAAE;gBAC3B,WAAW,EAAE,WAAW;gBACxB,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE;aACnB,CAAC,CAAC;YAEH,MAAM,MAAM,GACV,SAAS,KAAK,OAAO,IAAI,UAAU,KAAK,SAAS;gBAC/C,CAAC,CAAC,kCAAkC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;gBAC5D,CAAC,CAAC,gBAAgB,CAAC;YACvB,MAAM,OAAO,GAAG,YAAY,CAC1B,GAAG,MAAM,oBAAoB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,gFAAgF,QAAQ,CAAC,QAAQ,OAAO,CACjL,CAAC;YACF,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;YACpG,MAAM,GAAG,GAAoB;gBAC3B,EAAE,EAAE,IAAI;gBACR,GAAG,EAAE,IAAI;gBACT,SAAS;gBACT,kBAAkB,EAAE;oBAClB,aAAa,EAAE,kBAAkB;oBACjC,iBAAiB,EAAE,OAAO;iBAC3B;aACF,CAAC;YACF,IAAI,UAAU,KAAK,SAAS;gBAAE,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;YAC1D,OAAO,GAAG,CAAC;QACb,CAAC;QAED,2EAA2E;QAC3E,yDAAyD;QACzD,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,MAAM,SAAS,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,sEAAsE;QACtE,uEAAuE;QACvE,MAAM,eAAe,GACnB,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;QAEzF,MAAM,SAAS,GAAG,MAAM,kBAAkB,CACxC,EAAE,EACF,QAAQ,EACR,SAAS,EACT,MAAM,EACN,MAAM,EACN,eAAe,CAChB,CAAC;QACF,IAAI,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAC3B,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,WAAW;gBAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChE,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAE9E,iEAAiE;YACjE,IAAI,iBAAiB,GAAG,QAAQ,CAAC;YACjC,IAAI,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC;gBACnF,MAAM,MAAM,GAAG,qBAAqB,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,UAAU,eAAe,YAAY,cAAc,MAAM,EAAE,CAAC;gBACrI,iBAAiB,GAAG,GAAG,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/C,CAAC;YACD,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,iBAAiB,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC;YAEtG,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,GAAG,EAAE,KAAK;gBACV,MAAM;gBACN,kBAAkB,EAAE;oBAClB,aAAa,EAAE,kBAAkB;oBACjC,iBAAiB;iBAClB;aACF,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC1C,CAAC;YAAS,CAAC;QACT,IAAI,MAAM;YAAE,EAAE,CAAC,KAAK,EAAE,CAAC;QACvB,QAAQ,EAAE,KAAK,EAAE,CAAC;IACpB,CAAC;AACH,CAAC"}
|
package/dist/hooks/pre_read.d.ts
CHANGED
|
@@ -6,33 +6,46 @@ export declare const PreReadPayloadSchema: z.ZodObject<{
|
|
|
6
6
|
tool_input: z.ZodOptional<z.ZodObject<{
|
|
7
7
|
file_path: z.ZodOptional<z.ZodString>;
|
|
8
8
|
notebook_path: z.ZodOptional<z.ZodString>;
|
|
9
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
9
11
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
10
12
|
file_path: z.ZodOptional<z.ZodString>;
|
|
11
13
|
notebook_path: z.ZodOptional<z.ZodString>;
|
|
14
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
15
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
12
16
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
13
17
|
file_path: z.ZodOptional<z.ZodString>;
|
|
14
18
|
notebook_path: z.ZodOptional<z.ZodString>;
|
|
19
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
15
21
|
}, z.ZodTypeAny, "passthrough">>>;
|
|
16
22
|
cwd: z.ZodOptional<z.ZodString>;
|
|
17
23
|
project_id: z.ZodOptional<z.ZodString>;
|
|
24
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
18
25
|
hook_event_name: z.ZodOptional<z.ZodString>;
|
|
19
26
|
}, "strip", z.ZodTypeAny, {
|
|
20
27
|
project_id?: string | undefined;
|
|
28
|
+
session_id?: string | undefined;
|
|
21
29
|
cwd?: string | undefined;
|
|
22
30
|
hook_event_name?: string | undefined;
|
|
23
31
|
tool_name?: string | undefined;
|
|
24
32
|
tool_input?: z.objectOutputType<{
|
|
25
33
|
file_path: z.ZodOptional<z.ZodString>;
|
|
26
34
|
notebook_path: z.ZodOptional<z.ZodString>;
|
|
35
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
27
37
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
28
38
|
}, {
|
|
29
39
|
project_id?: string | undefined;
|
|
40
|
+
session_id?: string | undefined;
|
|
30
41
|
cwd?: string | undefined;
|
|
31
42
|
hook_event_name?: string | undefined;
|
|
32
43
|
tool_name?: string | undefined;
|
|
33
44
|
tool_input?: z.objectInputType<{
|
|
34
45
|
file_path: z.ZodOptional<z.ZodString>;
|
|
35
46
|
notebook_path: z.ZodOptional<z.ZodString>;
|
|
47
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
48
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
36
49
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
37
50
|
}>;
|
|
38
51
|
export type PreReadPayload = z.infer<typeof PreReadPayloadSchema>;
|
|
@@ -46,10 +59,11 @@ export interface PreReadOptions {
|
|
|
46
59
|
export interface PreReadOutput {
|
|
47
60
|
ok: boolean;
|
|
48
61
|
gated: boolean;
|
|
49
|
-
reason?: 'gating-disabled' | 'wrong-tool' | 'no-path' | 'file-missing' | 'excluded' | 'below-threshold' | 'no-summary' | 'stale-summary';
|
|
62
|
+
reason?: 'gating-disabled' | 'wrong-tool' | 'no-path' | 'targeted-read' | 'no-session' | 'file-missing' | 'excluded' | 'below-threshold' | 'no-summary' | 'stale-summary' | 'reread';
|
|
50
63
|
hookSpecificOutput?: {
|
|
51
64
|
hookEventName: 'PreToolUse';
|
|
52
|
-
|
|
65
|
+
permissionDecision: 'deny';
|
|
66
|
+
permissionDecisionReason: string;
|
|
53
67
|
};
|
|
54
68
|
}
|
|
55
69
|
export declare function runPreRead(payload: PreReadPayload, opts?: PreReadOptions): PreReadOutput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre_read.d.ts","sourceRoot":"","sources":["../../src/hooks/pre_read.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pre_read.d.ts","sourceRoot":"","sources":["../../src/hooks/pre_read.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAU,KAAK,EAAE,EAAE,MAAM,eAAe,CAAC;AAKhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,EAAE,CAAC;IACR,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EACH,iBAAiB,GACjB,YAAY,GACZ,SAAS,GACT,eAAe,GACf,YAAY,GACZ,cAAc,GACd,UAAU,GACV,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,QAAQ,CAAC;IACb,kBAAkB,CAAC,EAAE;QACnB,aAAa,EAAE,YAAY,CAAC;QAC5B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,wBAAwB,EAAE,MAAM,CAAC;KAClC,CAAC;CACH;AAoDD,wBAAgB,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,GAAE,cAAmB,GAAG,aAAa,CAkE5F"}
|
package/dist/hooks/pre_read.js
CHANGED
|
@@ -1,77 +1,132 @@
|
|
|
1
|
-
import { join } from 'node:path';
|
|
1
|
+
import { isAbsolute, join, resolve as resolvePath } from 'node:path';
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { createHash } from 'node:crypto';
|
|
2
4
|
import { z } from 'zod';
|
|
3
|
-
import { loadConfig, projectDir } from '../config.js';
|
|
5
|
+
import { loadConfig, projectDir, GLOBAL_DIR } from '../config.js';
|
|
4
6
|
import { openDb } from '../core/db.js';
|
|
5
7
|
import { resolveProjectId } from '../core/project_id.js';
|
|
6
8
|
import { FileFingerprintStore, statFile, matchesAnyGlob } from '../core/file_summary.js';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
import { TokenLedger } from '../core/ledger.js';
|
|
10
|
+
import { countTokens } from '../core/tokens.js';
|
|
11
|
+
// Claude Code's PreToolUse payload. Only whole-file Reads are gated.
|
|
9
12
|
export const PreReadPayloadSchema = z.object({
|
|
10
13
|
tool_name: z.string().optional(),
|
|
11
14
|
tool_input: z
|
|
12
15
|
.object({
|
|
13
16
|
file_path: z.string().optional(),
|
|
14
17
|
notebook_path: z.string().optional(),
|
|
18
|
+
offset: z.number().optional(),
|
|
19
|
+
limit: z.number().optional(),
|
|
15
20
|
})
|
|
16
21
|
.passthrough()
|
|
17
22
|
.optional(),
|
|
18
23
|
cwd: z.string().optional(),
|
|
19
24
|
project_id: z.string().optional(),
|
|
25
|
+
session_id: z.string().optional(),
|
|
20
26
|
hook_event_name: z.string().optional(),
|
|
21
27
|
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return
|
|
28
|
+
function gateStatePath(projectId) {
|
|
29
|
+
const prefix = createHash('sha1').update(projectId).digest('hex').slice(0, 12);
|
|
30
|
+
return join(GLOBAL_DIR, 'session', `gate_${prefix}.json`);
|
|
31
|
+
}
|
|
32
|
+
function readGateState(projectId, sessionId) {
|
|
33
|
+
try {
|
|
34
|
+
const p = gateStatePath(projectId);
|
|
35
|
+
if (existsSync(p)) {
|
|
36
|
+
const s = JSON.parse(readFileSync(p, 'utf8'));
|
|
37
|
+
if (s.session_id === sessionId)
|
|
38
|
+
return s;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
/* fall through to a fresh state */
|
|
43
|
+
}
|
|
44
|
+
return { session_id: sessionId, offered: [], reread: [] };
|
|
45
|
+
}
|
|
46
|
+
function writeGateState(projectId, state) {
|
|
47
|
+
try {
|
|
48
|
+
mkdirSync(join(GLOBAL_DIR, 'session'), { recursive: true });
|
|
49
|
+
writeFileSync(gateStatePath(projectId), JSON.stringify(state), 'utf8');
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// Non-fatal; worst case the next Read is offered a summary again.
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function buildDenyReason(path, summary, tokens) {
|
|
56
|
+
return `[somtum] Summary of ${path} (~${tokens} tokens in full, unchanged since it was summarized):
|
|
25
57
|
---
|
|
26
58
|
${summary}
|
|
27
59
|
---
|
|
28
|
-
|
|
60
|
+
The full read was skipped to save tokens. If you need the exact contents (to edit the file, or for line-level detail), call Read on this file again and it will go through.`;
|
|
29
61
|
}
|
|
62
|
+
const pass = (reason) => ({
|
|
63
|
+
ok: true,
|
|
64
|
+
gated: false,
|
|
65
|
+
reason,
|
|
66
|
+
});
|
|
30
67
|
export function runPreRead(payload, opts = {}) {
|
|
31
68
|
const parsed = PreReadPayloadSchema.parse(payload);
|
|
32
69
|
const cwd = opts.cwd ?? parsed.cwd ?? process.cwd();
|
|
33
70
|
const config = opts.config ?? loadConfig({ cwd });
|
|
34
71
|
if (!config.file_gating.enabled)
|
|
35
|
-
return
|
|
36
|
-
if (
|
|
37
|
-
return
|
|
38
|
-
}
|
|
72
|
+
return pass('gating-disabled');
|
|
73
|
+
if (parsed.tool_name !== 'Read')
|
|
74
|
+
return pass('wrong-tool');
|
|
39
75
|
const path = parsed.tool_input?.file_path;
|
|
40
76
|
if (!path)
|
|
41
|
-
return
|
|
42
|
-
if (
|
|
43
|
-
return
|
|
77
|
+
return pass('no-path');
|
|
78
|
+
if (parsed.tool_input?.offset !== undefined || parsed.tool_input?.limit !== undefined) {
|
|
79
|
+
return pass('targeted-read');
|
|
44
80
|
}
|
|
81
|
+
// Without a session id there is no way to let a second Read through.
|
|
82
|
+
const sessionId = parsed.session_id;
|
|
83
|
+
if (!sessionId)
|
|
84
|
+
return pass('no-session');
|
|
85
|
+
if (matchesAnyGlob(path, config.file_gating.exclude_globs))
|
|
86
|
+
return pass('excluded');
|
|
45
87
|
let stat;
|
|
46
88
|
try {
|
|
47
89
|
stat = statFile(path, { cwd });
|
|
48
90
|
}
|
|
49
91
|
catch {
|
|
50
|
-
return
|
|
92
|
+
return pass('file-missing');
|
|
51
93
|
}
|
|
52
94
|
if (!stat)
|
|
53
|
-
return
|
|
54
|
-
if (stat.tokens < config.file_gating.min_file_size_tokens)
|
|
55
|
-
return
|
|
56
|
-
}
|
|
95
|
+
return pass('file-missing');
|
|
96
|
+
if (stat.tokens < config.file_gating.min_file_size_tokens)
|
|
97
|
+
return pass('below-threshold');
|
|
57
98
|
const projectId = opts.projectId ?? parsed.project_id ?? resolveProjectId(cwd);
|
|
58
99
|
const ownsDb = opts.db === undefined;
|
|
59
100
|
const dbPath = opts.dbPath ?? join(projectDir(projectId), 'db.sqlite');
|
|
60
101
|
const db = opts.db ?? openDb({ path: dbPath });
|
|
61
102
|
try {
|
|
62
|
-
const
|
|
63
|
-
const fp = store.get(projectId, path);
|
|
103
|
+
const fp = new FileFingerprintStore(db).get(projectId, path);
|
|
64
104
|
if (!fp || !fp.summary)
|
|
65
|
-
return
|
|
66
|
-
if (fp.content_hash !== stat.contentHash)
|
|
67
|
-
return
|
|
105
|
+
return pass('no-summary');
|
|
106
|
+
if (fp.content_hash !== stat.contentHash)
|
|
107
|
+
return pass('stale-summary');
|
|
108
|
+
const ledger = new TokenLedger(db);
|
|
109
|
+
const key = isAbsolute(path) ? path : resolvePath(cwd, path);
|
|
110
|
+
const state = readGateState(projectId, sessionId);
|
|
111
|
+
if (state.offered.includes(key)) {
|
|
112
|
+
if (!state.reread.includes(key)) {
|
|
113
|
+
state.reread.push(key);
|
|
114
|
+
writeGateState(projectId, state);
|
|
115
|
+
ledger.record(projectId, 'file_gate_reread', stat.tokens, sessionId);
|
|
116
|
+
}
|
|
117
|
+
return pass('reread');
|
|
68
118
|
}
|
|
119
|
+
state.offered.push(key);
|
|
120
|
+
writeGateState(projectId, state);
|
|
121
|
+
ledger.record(projectId, 'file_gate_denied', stat.tokens, sessionId);
|
|
122
|
+
ledger.record(projectId, 'file_gate_summary', countTokens(fp.summary), sessionId);
|
|
69
123
|
return {
|
|
70
124
|
ok: true,
|
|
71
125
|
gated: true,
|
|
72
126
|
hookSpecificOutput: {
|
|
73
127
|
hookEventName: 'PreToolUse',
|
|
74
|
-
|
|
128
|
+
permissionDecision: 'deny',
|
|
129
|
+
permissionDecisionReason: buildDenyReason(path, fp.summary, stat.tokens),
|
|
75
130
|
},
|
|
76
131
|
};
|
|
77
132
|
}
|