@exero1/claudecontext 0.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 +286 -0
- package/dist/installer/install.d.ts +12 -0
- package/dist/installer/install.d.ts.map +1 -0
- package/dist/installer/install.js +714 -0
- package/dist/installer/install.js.map +1 -0
- package/dist/src/cache/budget.d.ts +48 -0
- package/dist/src/cache/budget.d.ts.map +1 -0
- package/dist/src/cache/budget.js +55 -0
- package/dist/src/cache/budget.js.map +1 -0
- package/dist/src/cache/compressor.d.ts +21 -0
- package/dist/src/cache/compressor.d.ts.map +1 -0
- package/dist/src/cache/compressor.js +89 -0
- package/dist/src/cache/compressor.js.map +1 -0
- package/dist/src/cache/levels.d.ts +16 -0
- package/dist/src/cache/levels.d.ts.map +1 -0
- package/dist/src/cache/levels.js +41 -0
- package/dist/src/cache/levels.js.map +1 -0
- package/dist/src/cache/manager.d.ts +38 -0
- package/dist/src/cache/manager.d.ts.map +1 -0
- package/dist/src/cache/manager.js +196 -0
- package/dist/src/cache/manager.js.map +1 -0
- package/dist/src/cli.d.ts +3 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +279 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/detection/areas.d.ts +13 -0
- package/dist/src/detection/areas.d.ts.map +1 -0
- package/dist/src/detection/areas.js +96 -0
- package/dist/src/detection/areas.js.map +1 -0
- package/dist/src/detection/task.d.ts +28 -0
- package/dist/src/detection/task.d.ts.map +1 -0
- package/dist/src/detection/task.js +77 -0
- package/dist/src/detection/task.js.map +1 -0
- package/dist/src/gating/gate.d.ts +38 -0
- package/dist/src/gating/gate.d.ts.map +1 -0
- package/dist/src/gating/gate.js +74 -0
- package/dist/src/gating/gate.js.map +1 -0
- package/dist/src/graph/edges.d.ts +41 -0
- package/dist/src/graph/edges.d.ts.map +1 -0
- package/dist/src/graph/edges.js +115 -0
- package/dist/src/graph/edges.js.map +1 -0
- package/dist/src/graph/indexer.d.ts +38 -0
- package/dist/src/graph/indexer.d.ts.map +1 -0
- package/dist/src/graph/indexer.js +228 -0
- package/dist/src/graph/indexer.js.map +1 -0
- package/dist/src/graph/traversal.d.ts +25 -0
- package/dist/src/graph/traversal.d.ts.map +1 -0
- package/dist/src/graph/traversal.js +173 -0
- package/dist/src/graph/traversal.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +82 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/indexing/codebase.d.ts +30 -0
- package/dist/src/indexing/codebase.d.ts.map +1 -0
- package/dist/src/indexing/codebase.js +127 -0
- package/dist/src/indexing/codebase.js.map +1 -0
- package/dist/src/markdown/writer.d.ts +34 -0
- package/dist/src/markdown/writer.d.ts.map +1 -0
- package/dist/src/markdown/writer.js +96 -0
- package/dist/src/markdown/writer.js.map +1 -0
- package/dist/src/server.d.ts +15 -0
- package/dist/src/server.d.ts.map +1 -0
- package/dist/src/server.js +520 -0
- package/dist/src/server.js.map +1 -0
- package/dist/src/storage/db.d.ts +123 -0
- package/dist/src/storage/db.d.ts.map +1 -0
- package/dist/src/storage/db.js +318 -0
- package/dist/src/storage/db.js.map +1 -0
- package/dist/src/utils/glob.d.ts +11 -0
- package/dist/src/utils/glob.d.ts.map +1 -0
- package/dist/src/utils/glob.js +20 -0
- package/dist/src/utils/glob.js.map +1 -0
- package/hooks/post-write.mjs +57 -0
- package/hooks/pre-compact.mjs +44 -0
- package/hooks/pre-tool-use.mjs +87 -0
- package/hooks/session-start.mjs +54 -0
- package/package.json +51 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../installer/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token estimation and budget allocation.
|
|
3
|
+
* Uses character-based estimation: ceil(len / 3.5) + 15% safety margin.
|
|
4
|
+
* No WASM, no tiktoken — fast startup.
|
|
5
|
+
*/
|
|
6
|
+
export declare const TOTAL_BUDGET = 29000;
|
|
7
|
+
export declare const LEVEL_BUDGETS: {
|
|
8
|
+
readonly L0: 3000;
|
|
9
|
+
readonly L1: 8000;
|
|
10
|
+
readonly L2: 10000;
|
|
11
|
+
readonly L3: 2000;
|
|
12
|
+
readonly L4: 2000;
|
|
13
|
+
readonly graph: 4000;
|
|
14
|
+
};
|
|
15
|
+
export type LevelName = keyof typeof LEVEL_BUDGETS;
|
|
16
|
+
/**
|
|
17
|
+
* Per-level budget overrides. Any key omitted falls back to LEVEL_BUDGETS default.
|
|
18
|
+
* Loaded from .claudecontext/config.json `budgets` field at server startup.
|
|
19
|
+
*/
|
|
20
|
+
export interface BudgetConfig {
|
|
21
|
+
L0?: number;
|
|
22
|
+
L1?: number;
|
|
23
|
+
L2?: number;
|
|
24
|
+
L3?: number;
|
|
25
|
+
L4?: number;
|
|
26
|
+
graph?: number;
|
|
27
|
+
total?: number;
|
|
28
|
+
}
|
|
29
|
+
/** Estimate token count from raw text. */
|
|
30
|
+
export declare function estimateTokens(text: string): number;
|
|
31
|
+
/** Truncate text to fit within a token budget. Returns truncated text. */
|
|
32
|
+
export declare function truncateToTokens(text: string, maxTokens: number): string;
|
|
33
|
+
export interface BudgetAllocation {
|
|
34
|
+
L0: number;
|
|
35
|
+
L1: number;
|
|
36
|
+
L2: number;
|
|
37
|
+
L3: number;
|
|
38
|
+
L4: number;
|
|
39
|
+
graph: number;
|
|
40
|
+
total: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Dynamic budget scaling — if one level uses less than its budget,
|
|
44
|
+
* the remainder flows to the graph discovery budget.
|
|
45
|
+
* Pass `budgetConfig` to override per-level caps and/or total budget.
|
|
46
|
+
*/
|
|
47
|
+
export declare function allocateBudget(usedL0: number, usedL1: number, usedL2: number, usedL3: number, usedL4: number, budgetConfig?: BudgetConfig): BudgetAllocation;
|
|
48
|
+
//# sourceMappingURL=budget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../../src/cache/budget.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,YAAY,QAAS,CAAC;AAEnC,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,aAAa,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0CAA0C;AAC1C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAIxE;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,YAAY,GAC1B,gBAAgB,CAyBlB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token estimation and budget allocation.
|
|
3
|
+
* Uses character-based estimation: ceil(len / 3.5) + 15% safety margin.
|
|
4
|
+
* No WASM, no tiktoken — fast startup.
|
|
5
|
+
*/
|
|
6
|
+
export const TOTAL_BUDGET = 29_000; // tokens (bumped +2k for L3)
|
|
7
|
+
export const LEVEL_BUDGETS = {
|
|
8
|
+
L0: 3_000,
|
|
9
|
+
L1: 8_000,
|
|
10
|
+
L2: 10_000,
|
|
11
|
+
L3: 2_000,
|
|
12
|
+
L4: 2_000,
|
|
13
|
+
graph: 4_000,
|
|
14
|
+
};
|
|
15
|
+
/** Estimate token count from raw text. */
|
|
16
|
+
export function estimateTokens(text) {
|
|
17
|
+
const raw = Math.ceil(text.length / 3.5);
|
|
18
|
+
return Math.ceil(raw * 1.15); // 15% safety margin
|
|
19
|
+
}
|
|
20
|
+
/** Truncate text to fit within a token budget. Returns truncated text. */
|
|
21
|
+
export function truncateToTokens(text, maxTokens) {
|
|
22
|
+
const maxChars = Math.floor((maxTokens / 1.15) * 3.5);
|
|
23
|
+
if (text.length <= maxChars)
|
|
24
|
+
return text;
|
|
25
|
+
return text.slice(0, maxChars) + '\n[... truncated to fit token budget ...]';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Dynamic budget scaling — if one level uses less than its budget,
|
|
29
|
+
* the remainder flows to the graph discovery budget.
|
|
30
|
+
* Pass `budgetConfig` to override per-level caps and/or total budget.
|
|
31
|
+
*/
|
|
32
|
+
export function allocateBudget(usedL0, usedL1, usedL2, usedL3, usedL4, budgetConfig) {
|
|
33
|
+
const L0 = budgetConfig?.L0 ?? LEVEL_BUDGETS.L0;
|
|
34
|
+
const L1 = budgetConfig?.L1 ?? LEVEL_BUDGETS.L1;
|
|
35
|
+
const L2 = budgetConfig?.L2 ?? LEVEL_BUDGETS.L2;
|
|
36
|
+
const L3 = budgetConfig?.L3 ?? LEVEL_BUDGETS.L3;
|
|
37
|
+
const L4 = budgetConfig?.L4 ?? LEVEL_BUDGETS.L4;
|
|
38
|
+
const effectiveTotal = budgetConfig?.total ?? TOTAL_BUDGET;
|
|
39
|
+
const guaranteed = Math.min(usedL0, L0)
|
|
40
|
+
+ Math.min(usedL1, L1)
|
|
41
|
+
+ Math.min(usedL2, L2)
|
|
42
|
+
+ Math.min(usedL3, L3)
|
|
43
|
+
+ Math.min(usedL4, L4);
|
|
44
|
+
const graphBudget = Math.max(0, effectiveTotal - guaranteed);
|
|
45
|
+
return {
|
|
46
|
+
L0: Math.min(usedL0, L0),
|
|
47
|
+
L1: Math.min(usedL1, L1),
|
|
48
|
+
L2: Math.min(usedL2, L2),
|
|
49
|
+
L3: Math.min(usedL3, L3),
|
|
50
|
+
L4: Math.min(usedL4, L4),
|
|
51
|
+
graph: graphBudget,
|
|
52
|
+
total: guaranteed + graphBudget,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../../src/cache/budget.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,6BAA6B;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,KAAK,EAAE,KAAK;CACJ,CAAC;AAkBX,0CAA0C;AAC1C,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB;AACpD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,SAAiB;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACtD,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,2CAA2C,CAAC;AAC/E,CAAC;AAYD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,MAAc,EACd,MAAc,EACd,MAAc,EACd,MAAc,EACd,YAA2B;IAE3B,MAAM,EAAE,GAAG,YAAY,EAAE,EAAE,IAAI,aAAa,CAAC,EAAE,CAAC;IAChD,MAAM,EAAE,GAAG,YAAY,EAAE,EAAE,IAAI,aAAa,CAAC,EAAE,CAAC;IAChD,MAAM,EAAE,GAAG,YAAY,EAAE,EAAE,IAAI,aAAa,CAAC,EAAE,CAAC;IAChD,MAAM,EAAE,GAAG,YAAY,EAAE,EAAE,IAAI,aAAa,CAAC,EAAE,CAAC;IAChD,MAAM,EAAE,GAAG,YAAY,EAAE,EAAE,IAAI,aAAa,CAAC,EAAE,CAAC;IAChD,MAAM,cAAc,GAAG,YAAY,EAAE,KAAK,IAAI,YAAY,CAAC;IAE3D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;UACnC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;UACpB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;UACpB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;UACpB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEzB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,CAAC;IAE7D,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QACxB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QACxB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QACxB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QACxB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QACxB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,UAAU,GAAG,WAAW;KAChC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Db } from '../storage/db.js';
|
|
2
|
+
export interface CompressOptions {
|
|
3
|
+
/** Keep this many most-recently-touched files (default: 10). Compress triggered at >2× this. */
|
|
4
|
+
maxFiles?: number;
|
|
5
|
+
/** Archive oldest decisions when section exceeds this token count (default: 2000). */
|
|
6
|
+
maxDecisionTokens?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface CompressResult {
|
|
9
|
+
filesCompressed: number;
|
|
10
|
+
decisionsArchived: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Compress an L1 task file in place.
|
|
14
|
+
*
|
|
15
|
+
* @param taskFilePath - absolute path to the task markdown file
|
|
16
|
+
* @param db - Db instance (used to sort files by last_touched)
|
|
17
|
+
* @param opts - optional tuning
|
|
18
|
+
* @returns counts of items compressed/archived
|
|
19
|
+
*/
|
|
20
|
+
export declare function compressL1(taskFilePath: string, db: Db, opts?: CompressOptions): CompressResult;
|
|
21
|
+
//# sourceMappingURL=compressor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compressor.d.ts","sourceRoot":"","sources":["../../../src/cache/compressor.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAwBD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,EAAE,EACN,IAAI,CAAC,EAAE,eAAe,GACrB,cAAc,CA8DhB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* L1 task file compression.
|
|
3
|
+
*
|
|
4
|
+
* When a task file grows too large, this compressor:
|
|
5
|
+
* 1. Trims the "Files touched" section to the N most-recently-touched files.
|
|
6
|
+
* 2. Archives oldest "Decisions" entries to L4 when over the token budget.
|
|
7
|
+
*
|
|
8
|
+
* Both operations are deterministic and idempotent.
|
|
9
|
+
*/
|
|
10
|
+
import { basename } from 'node:path';
|
|
11
|
+
import { safeRead, patchSection } from '../markdown/writer.js';
|
|
12
|
+
import { estimateTokens } from './budget.js';
|
|
13
|
+
/**
|
|
14
|
+
* Extract bullet-list items from a named `## Section` in a markdown file.
|
|
15
|
+
* Returns the raw content of each `- ` line (without the leading `- `).
|
|
16
|
+
*/
|
|
17
|
+
function readSectionBullets(content, heading) {
|
|
18
|
+
const lines = content.split('\n');
|
|
19
|
+
const headingLine = `## ${heading}`;
|
|
20
|
+
const startIdx = lines.findIndex(l => l.trim() === headingLine);
|
|
21
|
+
if (startIdx === -1)
|
|
22
|
+
return [];
|
|
23
|
+
let endIdx = lines.length;
|
|
24
|
+
for (let i = startIdx + 1; i < lines.length; i++) {
|
|
25
|
+
if (lines[i]?.startsWith('## ')) {
|
|
26
|
+
endIdx = i;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return lines.slice(startIdx + 1, endIdx)
|
|
31
|
+
.map(l => l.trim())
|
|
32
|
+
.filter(l => l.startsWith('- '))
|
|
33
|
+
.map(l => l.slice(2).trim())
|
|
34
|
+
.filter(l => l.length > 0);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Compress an L1 task file in place.
|
|
38
|
+
*
|
|
39
|
+
* @param taskFilePath - absolute path to the task markdown file
|
|
40
|
+
* @param db - Db instance (used to sort files by last_touched)
|
|
41
|
+
* @param opts - optional tuning
|
|
42
|
+
* @returns counts of items compressed/archived
|
|
43
|
+
*/
|
|
44
|
+
export function compressL1(taskFilePath, db, opts) {
|
|
45
|
+
const maxFiles = opts?.maxFiles ?? 10;
|
|
46
|
+
const maxDecisionTokens = opts?.maxDecisionTokens ?? 2000;
|
|
47
|
+
const taskId = basename(taskFilePath, '.md');
|
|
48
|
+
const content = safeRead(taskFilePath);
|
|
49
|
+
if (!content)
|
|
50
|
+
return { filesCompressed: 0, decisionsArchived: 0 };
|
|
51
|
+
let filesCompressed = 0;
|
|
52
|
+
let decisionsArchived = 0;
|
|
53
|
+
// ── Compress "Files touched" ──────────────────────────────────────────────
|
|
54
|
+
const rawFiles = readSectionBullets(content, 'Files touched')
|
|
55
|
+
.filter(f => !f.startsWith('(')); // skip already-compressed summary lines
|
|
56
|
+
if (rawFiles.length > maxFiles * 2) {
|
|
57
|
+
const sorted = [...rawFiles].sort((a, b) => (db.getFile(b)?.last_touched ?? 0) - (db.getFile(a)?.last_touched ?? 0));
|
|
58
|
+
const keep = sorted.slice(0, maxFiles);
|
|
59
|
+
const archived = sorted.slice(maxFiles);
|
|
60
|
+
patchSection(taskFilePath, 'Files touched', [...keep.map(f => `- ${f}`), `- (${archived.length} more files — see archive)`].join('\n'));
|
|
61
|
+
filesCompressed = archived.length;
|
|
62
|
+
}
|
|
63
|
+
// Re-read after potential modification above
|
|
64
|
+
const content2 = safeRead(taskFilePath);
|
|
65
|
+
// ── Compress "Decisions" ──────────────────────────────────────────────────
|
|
66
|
+
const decisions = readSectionBullets(content2, 'Decisions').filter(Boolean);
|
|
67
|
+
if (decisions.length > 1 && estimateTokens(decisions.join('\n')) > maxDecisionTokens) {
|
|
68
|
+
const toKeep = [...decisions];
|
|
69
|
+
const toArchive = [];
|
|
70
|
+
while (toKeep.length > 1 && estimateTokens(toKeep.join('\n')) > maxDecisionTokens) {
|
|
71
|
+
const oldest = toKeep.shift();
|
|
72
|
+
if (oldest !== undefined)
|
|
73
|
+
toArchive.push(oldest);
|
|
74
|
+
}
|
|
75
|
+
if (toArchive.length > 0) {
|
|
76
|
+
db.insertArchive({
|
|
77
|
+
id: `${taskId}-decisions-${Date.now()}`,
|
|
78
|
+
task_id: taskId,
|
|
79
|
+
summary: `Archived decisions: ${toArchive.join(' | ').slice(0, 500)}`,
|
|
80
|
+
created_at: Date.now(),
|
|
81
|
+
source_level: 'L1',
|
|
82
|
+
});
|
|
83
|
+
patchSection(taskFilePath, 'Decisions', toKeep.map(d => `- ${d}`).join('\n'));
|
|
84
|
+
decisionsArchived = toArchive.length;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return { filesCompressed, decisionsArchived };
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=compressor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compressor.js","sourceRoot":"","sources":["../../../src/cache/compressor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Level configuration constants.
|
|
3
|
+
* L0–L4 hierarchy — each level has a budget, eviction strategy, and TTL.
|
|
4
|
+
*/
|
|
5
|
+
export interface LevelConfig {
|
|
6
|
+
name: string;
|
|
7
|
+
budget: number;
|
|
8
|
+
ttlDays: number;
|
|
9
|
+
description: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const LEVELS: Record<string, LevelConfig>;
|
|
12
|
+
/** L0 log: maximum number of lines to keep in working memory */
|
|
13
|
+
export declare const L0_MAX_LINES = 200;
|
|
14
|
+
/** L0 log: number of recent lines to include in bundle */
|
|
15
|
+
export declare const L0_BUNDLE_LINES = 50;
|
|
16
|
+
//# sourceMappingURL=levels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"levels.d.ts","sourceRoot":"","sources":["../../../src/cache/levels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA+BrC,CAAC;AAEX,gEAAgE;AAChE,eAAO,MAAM,YAAY,MAAM,CAAC;AAEhC,0DAA0D;AAC1D,eAAO,MAAM,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Level configuration constants.
|
|
3
|
+
* L0–L4 hierarchy — each level has a budget, eviction strategy, and TTL.
|
|
4
|
+
*/
|
|
5
|
+
export const LEVELS = {
|
|
6
|
+
L0: {
|
|
7
|
+
name: 'Working set',
|
|
8
|
+
budget: 3_000,
|
|
9
|
+
ttlDays: 0,
|
|
10
|
+
description: 'Last N tool calls, errors, diffs — append-only log, recovered on restart',
|
|
11
|
+
},
|
|
12
|
+
L1: {
|
|
13
|
+
name: 'Task cache',
|
|
14
|
+
budget: 8_000,
|
|
15
|
+
ttlDays: 30,
|
|
16
|
+
description: 'Goal, decisions, files touched, open Qs — per-branch markdown file',
|
|
17
|
+
},
|
|
18
|
+
L2: {
|
|
19
|
+
name: 'Area docs',
|
|
20
|
+
budget: 10_000,
|
|
21
|
+
ttlDays: 90,
|
|
22
|
+
description: 'Subsystem architecture, API contracts — docs/context/<area>.md',
|
|
23
|
+
},
|
|
24
|
+
L3: {
|
|
25
|
+
name: 'Project cache',
|
|
26
|
+
budget: 0, // NOT in bundle — auto-loaded by Claude Code
|
|
27
|
+
ttlDays: 0,
|
|
28
|
+
description: 'Rules, conventions, invariants — CLAUDE.md (never included in bundle)',
|
|
29
|
+
},
|
|
30
|
+
L4: {
|
|
31
|
+
name: 'Decision archive',
|
|
32
|
+
budget: 2_000,
|
|
33
|
+
ttlDays: 365,
|
|
34
|
+
description: 'Historical decisions, summaries — .claudecontext/archive/',
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
/** L0 log: maximum number of lines to keep in working memory */
|
|
38
|
+
export const L0_MAX_LINES = 200;
|
|
39
|
+
/** L0 log: number of recent lines to include in bundle */
|
|
40
|
+
export const L0_BUNDLE_LINES = 50;
|
|
41
|
+
//# sourceMappingURL=levels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"levels.js","sourceRoot":"","sources":["../../../src/cache/levels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,CAAC,MAAM,MAAM,GAAgC;IACjD,EAAE,EAAE;QACF,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,0EAA0E;KACxF;IACD,EAAE,EAAE;QACF,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,oEAAoE;KAClF;IACD,EAAE,EAAE;QACF,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,gEAAgE;KAC9E;IACD,EAAE,EAAE;QACF,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,CAAC,EAAI,6CAA6C;QAC1D,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,uEAAuE;KACrF;IACD,EAAE,EAAE;QACF,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,GAAG;QACZ,WAAW,EAAE,2DAA2D;KACzE;CACO,CAAC;AAEX,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAEhC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Db } from '../storage/db.js';
|
|
2
|
+
import { type BudgetConfig } from './budget.js';
|
|
3
|
+
import type { AreaDef } from '../graph/indexer.js';
|
|
4
|
+
export interface BundleOptions {
|
|
5
|
+
projectRoot: string;
|
|
6
|
+
stateDir: string;
|
|
7
|
+
taskId: string;
|
|
8
|
+
taskBranch: string;
|
|
9
|
+
areas: AreaDef[];
|
|
10
|
+
depth?: number;
|
|
11
|
+
budgetOverride?: number;
|
|
12
|
+
budgetConfig?: BudgetConfig;
|
|
13
|
+
}
|
|
14
|
+
export interface BundleResult {
|
|
15
|
+
markdown: string;
|
|
16
|
+
tokenCounts: {
|
|
17
|
+
L0: number;
|
|
18
|
+
L1: number;
|
|
19
|
+
L2: number;
|
|
20
|
+
L3: number;
|
|
21
|
+
L4: number;
|
|
22
|
+
graph: number;
|
|
23
|
+
total: number;
|
|
24
|
+
};
|
|
25
|
+
graphNodesIncluded: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Build the unified context bundle.
|
|
29
|
+
*
|
|
30
|
+
* Assembly order (task context first — most signal for Claude):
|
|
31
|
+
* 1. L1 — task cache (current task markdown) — most important signal
|
|
32
|
+
* 2. L0 — working set (recent tool calls / errors)
|
|
33
|
+
* 3. L2 — area docs (for areas matching files in task)
|
|
34
|
+
* 4. L4 — decision archive (recent entries)
|
|
35
|
+
* 5. Graph — 1-hop (V1) or BFS (V2) expansion from task files
|
|
36
|
+
*/
|
|
37
|
+
export declare function buildBundle(db: Db, opts: BundleOptions): BundleResult;
|
|
38
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/cache/manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAmE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAIjH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,YAAY,CAyJrE"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { join, resolve } from 'node:path';
|
|
3
|
+
import { estimateTokens, truncateToTokens, allocateBudget, LEVEL_BUDGETS } from './budget.js';
|
|
4
|
+
import { L0_BUNDLE_LINES } from './levels.js';
|
|
5
|
+
import { readLastLines, safeRead } from '../markdown/writer.js';
|
|
6
|
+
import { expandOneHop, expandBFS } from '../graph/traversal.js';
|
|
7
|
+
import { matchGlob } from '../utils/glob.js';
|
|
8
|
+
/**
|
|
9
|
+
* Build the unified context bundle.
|
|
10
|
+
*
|
|
11
|
+
* Assembly order (task context first — most signal for Claude):
|
|
12
|
+
* 1. L1 — task cache (current task markdown) — most important signal
|
|
13
|
+
* 2. L0 — working set (recent tool calls / errors)
|
|
14
|
+
* 3. L2 — area docs (for areas matching files in task)
|
|
15
|
+
* 4. L4 — decision archive (recent entries)
|
|
16
|
+
* 5. Graph — 1-hop (V1) or BFS (V2) expansion from task files
|
|
17
|
+
*/
|
|
18
|
+
export function buildBundle(db, opts) {
|
|
19
|
+
const depth = opts.depth ?? 1;
|
|
20
|
+
const stateDir = opts.stateDir;
|
|
21
|
+
const projectRoot = opts.projectRoot;
|
|
22
|
+
const bc = opts.budgetConfig;
|
|
23
|
+
// Effective per-level caps (budgetConfig overrides LEVEL_BUDGETS defaults)
|
|
24
|
+
const effL0 = bc?.L0 ?? LEVEL_BUDGETS.L0;
|
|
25
|
+
const effL1 = bc?.L1 ?? LEVEL_BUDGETS.L1;
|
|
26
|
+
const effL2 = bc?.L2 ?? LEVEL_BUDGETS.L2;
|
|
27
|
+
const effL3 = bc?.L3 ?? LEVEL_BUDGETS.L3;
|
|
28
|
+
const effL4 = bc?.L4 ?? LEVEL_BUDGETS.L4;
|
|
29
|
+
// ── L0: Working set ────────────────────────────────────────────────────────
|
|
30
|
+
const l0LogPath = join(stateDir, 'l0.log');
|
|
31
|
+
const l0Lines = readLastLines(l0LogPath, L0_BUNDLE_LINES);
|
|
32
|
+
const l0Raw = l0Lines.join('\n');
|
|
33
|
+
const l0Content = truncateToTokens(l0Raw, effL0);
|
|
34
|
+
const l0Tokens = estimateTokens(l0Content);
|
|
35
|
+
// ── L1: Task cache ─────────────────────────────────────────────────────────
|
|
36
|
+
const taskFilePath = join(projectRoot, 'tasks', `${opts.taskId}.md`);
|
|
37
|
+
const l1Raw = safeRead(taskFilePath);
|
|
38
|
+
const l1Content = truncateToTokens(l1Raw, effL1);
|
|
39
|
+
const l1Tokens = estimateTokens(l1Content);
|
|
40
|
+
// Extract file list from task for graph traversal root
|
|
41
|
+
// Resolve relative paths to absolute so they match DB edge keys (stored as absolute)
|
|
42
|
+
const taskFiles = extractFilesFromTask(l1Raw)
|
|
43
|
+
.map(f => f.startsWith('/') ? f : resolve(projectRoot, f));
|
|
44
|
+
// ── L3: Project rules (CLAUDE.md) ──────────────────────────────────────────
|
|
45
|
+
const claudeMdPath = join(projectRoot, 'CLAUDE.md');
|
|
46
|
+
const l3Raw = safeRead(claudeMdPath);
|
|
47
|
+
const l3Content = truncateToTokens(l3Raw, effL3);
|
|
48
|
+
const l3Tokens = estimateTokens(l3Content);
|
|
49
|
+
// ── L2: Area docs ──────────────────────────────────────────────────────────
|
|
50
|
+
const relevantAreas = findRelevantAreas(taskFiles, opts.areas);
|
|
51
|
+
const l2Parts = [];
|
|
52
|
+
let l2Tokens = 0;
|
|
53
|
+
for (const area of relevantAreas) {
|
|
54
|
+
const docPath = resolve(projectRoot, area.docPath);
|
|
55
|
+
if (!existsSync(docPath))
|
|
56
|
+
continue;
|
|
57
|
+
const content = safeRead(docPath);
|
|
58
|
+
const remaining = effL2 - l2Tokens;
|
|
59
|
+
if (remaining <= 0)
|
|
60
|
+
break;
|
|
61
|
+
const truncated = truncateToTokens(content, remaining);
|
|
62
|
+
l2Parts.push(`### ${area.name}\n${truncated}`);
|
|
63
|
+
l2Tokens += estimateTokens(truncated);
|
|
64
|
+
}
|
|
65
|
+
const l2Content = l2Parts.join('\n\n---\n\n');
|
|
66
|
+
// ── L4: Decision archive ───────────────────────────────────────────────────
|
|
67
|
+
const archive = db.getRecentArchive(10);
|
|
68
|
+
const l4Parts = archive.map(a => {
|
|
69
|
+
const date = new Date(a.created_at).toISOString().slice(0, 10);
|
|
70
|
+
return `**[${date}] ${a.task_id}:** ${a.summary}`;
|
|
71
|
+
});
|
|
72
|
+
const l4Raw = l4Parts.join('\n\n');
|
|
73
|
+
const l4Content = truncateToTokens(l4Raw, effL4);
|
|
74
|
+
const l4Tokens = estimateTokens(l4Content);
|
|
75
|
+
// ── Budget allocation ──────────────────────────────────────────────────────
|
|
76
|
+
const allocation = allocateBudget(l0Tokens, l1Tokens, l2Tokens, l3Tokens, l4Tokens, bc);
|
|
77
|
+
const graphBudget = allocation.graph;
|
|
78
|
+
// ── Graph expansion ────────────────────────────────────────────────────────
|
|
79
|
+
let graphSection = '';
|
|
80
|
+
let graphTokens = 0;
|
|
81
|
+
let graphNodesIncluded = 0;
|
|
82
|
+
if (taskFiles.length > 0 && graphBudget > 0) {
|
|
83
|
+
const result = depth <= 1
|
|
84
|
+
? expandOneHop(db, projectRoot, taskFiles, graphBudget)
|
|
85
|
+
: expandBFS(db, projectRoot, taskFiles, graphBudget, depth);
|
|
86
|
+
graphNodesIncluded = result.nodes.length;
|
|
87
|
+
graphTokens = result.tokensUsed;
|
|
88
|
+
if (result.nodes.length > 0) {
|
|
89
|
+
const parts = result.nodes.map(n => {
|
|
90
|
+
const header = `### \`${n.node}\` [${n.discoveredVia}]`;
|
|
91
|
+
const body = `<!-- FILE CONTENT START -->\n${n.content}\n<!-- FILE CONTENT END -->`;
|
|
92
|
+
return `${header}\n${body}`;
|
|
93
|
+
});
|
|
94
|
+
graphSection = parts.join('\n\n---\n\n');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// ── Assemble bundle ────────────────────────────────────────────────────────
|
|
98
|
+
// Header tokens are small but counted for accuracy (~85 tokens)
|
|
99
|
+
const headerText = [
|
|
100
|
+
`<!-- CLAUDECONTEXT BUNDLE (L0=${fmtTok(l0Tokens)} L1=${fmtTok(l1Tokens)} L2=${fmtTok(l2Tokens)} L3=${fmtTok(l3Tokens)} L4=${fmtTok(l4Tokens)} Graph=${fmtTok(graphTokens)}) -->`,
|
|
101
|
+
`<!-- Task: ${opts.taskId} | Branch: ${opts.taskBranch} | Graph depth: ${depth} hop(s) -->`,
|
|
102
|
+
].join('\n');
|
|
103
|
+
const headerTokens = estimateTokens(headerText);
|
|
104
|
+
const totalTokens = headerTokens + l0Tokens + l1Tokens + l2Tokens + l3Tokens + l4Tokens + graphTokens;
|
|
105
|
+
const header = [
|
|
106
|
+
`<!-- CLAUDECONTEXT BUNDLE (L0=${fmtTok(l0Tokens)} L1=${fmtTok(l1Tokens)} L2=${fmtTok(l2Tokens)} L3=${fmtTok(l3Tokens)} L4=${fmtTok(l4Tokens)} Graph=${fmtTok(graphTokens)} | Total=${fmtTok(totalTokens)}) -->`,
|
|
107
|
+
`<!-- Task: ${opts.taskId} | Branch: ${opts.taskBranch} | Graph depth: ${depth} hop(s) -->`,
|
|
108
|
+
].join('\n');
|
|
109
|
+
// Wrap content in delimiters to prevent prompt injection from file contents
|
|
110
|
+
const wrap = (content) => `<!-- CONTENT START -->\n${content}\n<!-- CONTENT END -->`;
|
|
111
|
+
const sections = [header];
|
|
112
|
+
// L1 first — task context is the most important signal
|
|
113
|
+
if (l1Content.trim()) {
|
|
114
|
+
sections.push(`## Task Context (L1 — tasks/${opts.taskId}.md)\n${wrap(l1Content)}`);
|
|
115
|
+
}
|
|
116
|
+
// L3 second — project-level rules and conventions
|
|
117
|
+
if (l3Content.trim()) {
|
|
118
|
+
sections.push(`## Project Rules (L3 — CLAUDE.md)\n${wrap(l3Content)}`);
|
|
119
|
+
}
|
|
120
|
+
// L0 third — recent activity
|
|
121
|
+
if (l0Content.trim()) {
|
|
122
|
+
sections.push(`## Working Set (L0 — recent activity)\n${wrap(l0Content)}`);
|
|
123
|
+
}
|
|
124
|
+
if (l2Content.trim()) {
|
|
125
|
+
sections.push(`## Area Documentation (L2)\n${wrap(l2Content)}`);
|
|
126
|
+
}
|
|
127
|
+
if (l4Content.trim()) {
|
|
128
|
+
sections.push(`## Decision Archive (L4)\n${wrap(l4Content)}`);
|
|
129
|
+
}
|
|
130
|
+
if (graphSection.trim()) {
|
|
131
|
+
sections.push(`## Graph-Discovered Context\n${graphSection}`);
|
|
132
|
+
}
|
|
133
|
+
sections.push('<!-- END CLAUDECONTEXT BUNDLE -->');
|
|
134
|
+
const markdown = sections.join('\n\n---\n\n');
|
|
135
|
+
return {
|
|
136
|
+
markdown,
|
|
137
|
+
tokenCounts: {
|
|
138
|
+
L0: l0Tokens,
|
|
139
|
+
L1: l1Tokens,
|
|
140
|
+
L2: l2Tokens,
|
|
141
|
+
L3: l3Tokens,
|
|
142
|
+
L4: l4Tokens,
|
|
143
|
+
graph: graphTokens,
|
|
144
|
+
total: totalTokens,
|
|
145
|
+
},
|
|
146
|
+
graphNodesIncluded,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
// ── Helpers ──────────────────────────────────────────────────────────────────
|
|
150
|
+
function fmtTok(n) {
|
|
151
|
+
if (n >= 1000)
|
|
152
|
+
return `${(n / 1000).toFixed(1)}k`;
|
|
153
|
+
return String(n);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Extract file paths from the "Files touched" section of an L1 task file.
|
|
157
|
+
*/
|
|
158
|
+
function extractFilesFromTask(taskContent) {
|
|
159
|
+
const lines = taskContent.split('\n');
|
|
160
|
+
const inSection = { value: false };
|
|
161
|
+
const files = [];
|
|
162
|
+
for (const line of lines) {
|
|
163
|
+
if (line.startsWith('## Files touched')) {
|
|
164
|
+
inSection.value = true;
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
if (inSection.value && line.startsWith('## ')) {
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
if (inSection.value) {
|
|
171
|
+
// Extract file paths — lines starting with - or bare paths
|
|
172
|
+
const trimmed = line.replace(/^[-*]\s*/, '').trim();
|
|
173
|
+
if (trimmed && !trimmed.startsWith('[') && trimmed.length > 0) {
|
|
174
|
+
// Basic validation: looks like a file path
|
|
175
|
+
if (trimmed.includes('.') || trimmed.includes('/')) {
|
|
176
|
+
files.push(trimmed);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return files;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Find area docs relevant to the given file list.
|
|
185
|
+
*/
|
|
186
|
+
function findRelevantAreas(files, areas) {
|
|
187
|
+
const relevant = [];
|
|
188
|
+
for (const area of areas) {
|
|
189
|
+
const matches = files.some(f => area.globs.some(glob => matchGlob(f, glob)));
|
|
190
|
+
if (matches)
|
|
191
|
+
relevant.push(area);
|
|
192
|
+
}
|
|
193
|
+
return relevant;
|
|
194
|
+
}
|
|
195
|
+
// matchGlob imported from utils/glob.ts — no duplicate logic here
|
|
196
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/cache/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAC;AACjH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA2B7C;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,EAAM,EAAE,IAAmB;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;IAE7B,2EAA2E;IAC3E,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,IAAI,aAAa,CAAC,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,IAAI,aAAa,CAAC,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,IAAI,aAAa,CAAC,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,IAAI,aAAa,CAAC,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,IAAI,aAAa,CAAC,EAAE,CAAC;IAEzC,8EAA8E;IAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE3C,8EAA8E;IAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE3C,uDAAuD;IACvD,qFAAqF;IACrF,MAAM,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IAE7D,8EAA8E;IAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE3C,8EAA8E;IAC9E,MAAM,aAAa,GAAG,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAS;QACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;QACnC,IAAI,SAAS,IAAI,CAAC;YAAE,MAAM;QAC1B,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC,CAAC;QAC/C,QAAQ,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE9C,8EAA8E;IAC9E,MAAM,OAAO,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC9B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,MAAM,IAAI,KAAK,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE3C,8EAA8E;IAC9E,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxF,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;IAErC,8EAA8E;IAC9E,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC;YACvB,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC;YACvD,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAE9D,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACzC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QAEhC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACjC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,aAAa,GAAG,CAAC;gBACxD,MAAM,IAAI,GAAG,gCAAgC,CAAC,CAAC,OAAO,6BAA6B,CAAC;gBACpF,OAAO,GAAG,MAAM,KAAK,IAAI,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,gEAAgE;IAChE,MAAM,UAAU,GAAG;QACjB,iCAAiC,MAAM,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,MAAM,CAAC,WAAW,CAAC,OAAO;QACjL,cAAc,IAAI,CAAC,MAAM,cAAc,IAAI,CAAC,UAAU,mBAAmB,KAAK,aAAa;KAC5F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IACtG,MAAM,MAAM,GAAG;QACb,iCAAiC,MAAM,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,MAAM,CAAC,WAAW,CAAC,YAAY,MAAM,CAAC,WAAW,CAAC,OAAO;QAChN,cAAc,IAAI,CAAC,MAAM,cAAc,IAAI,CAAC,UAAU,mBAAmB,KAAK,aAAa;KAC5F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,4EAA4E;IAC5E,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE,CAC/B,2BAA2B,OAAO,wBAAwB,CAAC;IAE7D,MAAM,QAAQ,GAAa,CAAC,MAAM,CAAC,CAAC;IAEpC,uDAAuD;IACvD,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,kDAAkD;IAClD,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,6BAA6B;IAC7B,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,0CAA0C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,gCAAgC,YAAY,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE9C,OAAO;QACL,QAAQ;QACR,WAAW,EAAE;YACX,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,WAAW;SACnB;QACD,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,SAAS,MAAM,CAAC,CAAS;IACvB,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAClD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACxC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;YACvB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM;QACR,CAAC;QACD,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,2DAA2D;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9D,2CAA2C;gBAC3C,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,KAAe,EAAE,KAAgB;IAC1D,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAC5C,CAAC;QACF,IAAI,OAAO;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,kEAAkE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":""}
|