@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.
Files changed (78) hide show
  1. package/README.md +286 -0
  2. package/dist/installer/install.d.ts +12 -0
  3. package/dist/installer/install.d.ts.map +1 -0
  4. package/dist/installer/install.js +714 -0
  5. package/dist/installer/install.js.map +1 -0
  6. package/dist/src/cache/budget.d.ts +48 -0
  7. package/dist/src/cache/budget.d.ts.map +1 -0
  8. package/dist/src/cache/budget.js +55 -0
  9. package/dist/src/cache/budget.js.map +1 -0
  10. package/dist/src/cache/compressor.d.ts +21 -0
  11. package/dist/src/cache/compressor.d.ts.map +1 -0
  12. package/dist/src/cache/compressor.js +89 -0
  13. package/dist/src/cache/compressor.js.map +1 -0
  14. package/dist/src/cache/levels.d.ts +16 -0
  15. package/dist/src/cache/levels.d.ts.map +1 -0
  16. package/dist/src/cache/levels.js +41 -0
  17. package/dist/src/cache/levels.js.map +1 -0
  18. package/dist/src/cache/manager.d.ts +38 -0
  19. package/dist/src/cache/manager.d.ts.map +1 -0
  20. package/dist/src/cache/manager.js +196 -0
  21. package/dist/src/cache/manager.js.map +1 -0
  22. package/dist/src/cli.d.ts +3 -0
  23. package/dist/src/cli.d.ts.map +1 -0
  24. package/dist/src/cli.js +279 -0
  25. package/dist/src/cli.js.map +1 -0
  26. package/dist/src/detection/areas.d.ts +13 -0
  27. package/dist/src/detection/areas.d.ts.map +1 -0
  28. package/dist/src/detection/areas.js +96 -0
  29. package/dist/src/detection/areas.js.map +1 -0
  30. package/dist/src/detection/task.d.ts +28 -0
  31. package/dist/src/detection/task.d.ts.map +1 -0
  32. package/dist/src/detection/task.js +77 -0
  33. package/dist/src/detection/task.js.map +1 -0
  34. package/dist/src/gating/gate.d.ts +38 -0
  35. package/dist/src/gating/gate.d.ts.map +1 -0
  36. package/dist/src/gating/gate.js +74 -0
  37. package/dist/src/gating/gate.js.map +1 -0
  38. package/dist/src/graph/edges.d.ts +41 -0
  39. package/dist/src/graph/edges.d.ts.map +1 -0
  40. package/dist/src/graph/edges.js +115 -0
  41. package/dist/src/graph/edges.js.map +1 -0
  42. package/dist/src/graph/indexer.d.ts +38 -0
  43. package/dist/src/graph/indexer.d.ts.map +1 -0
  44. package/dist/src/graph/indexer.js +228 -0
  45. package/dist/src/graph/indexer.js.map +1 -0
  46. package/dist/src/graph/traversal.d.ts +25 -0
  47. package/dist/src/graph/traversal.d.ts.map +1 -0
  48. package/dist/src/graph/traversal.js +173 -0
  49. package/dist/src/graph/traversal.js.map +1 -0
  50. package/dist/src/index.d.ts +3 -0
  51. package/dist/src/index.d.ts.map +1 -0
  52. package/dist/src/index.js +82 -0
  53. package/dist/src/index.js.map +1 -0
  54. package/dist/src/indexing/codebase.d.ts +30 -0
  55. package/dist/src/indexing/codebase.d.ts.map +1 -0
  56. package/dist/src/indexing/codebase.js +127 -0
  57. package/dist/src/indexing/codebase.js.map +1 -0
  58. package/dist/src/markdown/writer.d.ts +34 -0
  59. package/dist/src/markdown/writer.d.ts.map +1 -0
  60. package/dist/src/markdown/writer.js +96 -0
  61. package/dist/src/markdown/writer.js.map +1 -0
  62. package/dist/src/server.d.ts +15 -0
  63. package/dist/src/server.d.ts.map +1 -0
  64. package/dist/src/server.js +520 -0
  65. package/dist/src/server.js.map +1 -0
  66. package/dist/src/storage/db.d.ts +123 -0
  67. package/dist/src/storage/db.d.ts.map +1 -0
  68. package/dist/src/storage/db.js +318 -0
  69. package/dist/src/storage/db.js.map +1 -0
  70. package/dist/src/utils/glob.d.ts +11 -0
  71. package/dist/src/utils/glob.d.ts.map +1 -0
  72. package/dist/src/utils/glob.js +20 -0
  73. package/dist/src/utils/glob.js.map +1 -0
  74. package/hooks/post-write.mjs +57 -0
  75. package/hooks/pre-compact.mjs +44 -0
  76. package/hooks/pre-tool-use.mjs +87 -0
  77. package/hooks/session-start.mjs +54 -0
  78. 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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":""}