purecontext-mcp 1.11.1 → 1.13.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/AGENT_INSTRUCTIONS.md +50 -10
- package/AGENT_REFERENCE.md +46 -0
- package/CHANGELOG.md +57 -0
- package/assets/agent-rules.md +57 -0
- package/dist/cli/hooks.d.ts.map +1 -1
- package/dist/cli/hooks.js +19 -8
- package/dist/cli/hooks.js.map +1 -1
- package/dist/cli/install-writers.d.ts.map +1 -1
- package/dist/cli/install-writers.js +26 -48
- package/dist/cli/install-writers.js.map +1 -1
- package/dist/config/cli.d.ts +8 -0
- package/dist/config/cli.d.ts.map +1 -1
- package/dist/config/cli.js +35 -0
- package/dist/config/cli.js.map +1 -1
- package/dist/config/config-loader.js +12 -0
- package/dist/config/config-loader.js.map +1 -1
- package/dist/config/config-schema.d.ts +29 -0
- package/dist/config/config-schema.d.ts.map +1 -1
- package/dist/config/config-schema.js +54 -0
- package/dist/config/config-schema.js.map +1 -1
- package/dist/core/index-manager.d.ts.map +1 -1
- package/dist/core/index-manager.js +17 -14
- package/dist/core/index-manager.js.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/server/mcp-server.d.ts.map +1 -1
- package/dist/server/mcp-server.js +20 -0
- package/dist/server/mcp-server.js.map +1 -1
- package/dist/server/tools/check-consistency.d.ts +21 -0
- package/dist/server/tools/check-consistency.d.ts.map +1 -0
- package/dist/server/tools/check-consistency.js +214 -0
- package/dist/server/tools/check-consistency.js.map +1 -0
- package/dist/server/tools/check-index-staleness.d.ts +13 -0
- package/dist/server/tools/check-index-staleness.d.ts.map +1 -0
- package/dist/server/tools/check-index-staleness.js +127 -0
- package/dist/server/tools/check-index-staleness.js.map +1 -0
- package/dist/server/tools/compare-change-impact.d.ts.map +1 -1
- package/dist/server/tools/compare-change-impact.js +0 -0
- package/dist/server/tools/compare-change-impact.js.map +1 -1
- package/dist/server/tools/gate-envelope.d.ts +55 -0
- package/dist/server/tools/gate-envelope.d.ts.map +1 -0
- package/dist/server/tools/gate-envelope.js +119 -0
- package/dist/server/tools/gate-envelope.js.map +1 -0
- package/dist/server/tools/get-task-context.d.ts +52 -2
- package/dist/server/tools/get-task-context.d.ts.map +1 -1
- package/dist/server/tools/get-task-context.js +258 -20
- package/dist/server/tools/get-task-context.js.map +1 -1
- package/dist/server/tools/index-file.d.ts +13 -0
- package/dist/server/tools/index-file.d.ts.map +1 -0
- package/dist/server/tools/index-file.js +107 -0
- package/dist/server/tools/index-file.js.map +1 -0
- package/dist/server/tools/merge-readiness.d.ts +35 -0
- package/dist/server/tools/merge-readiness.d.ts.map +1 -0
- package/dist/server/tools/merge-readiness.js +118 -0
- package/dist/server/tools/merge-readiness.js.map +1 -0
- package/dist/server/tools/prepare-change.d.ts.map +1 -1
- package/dist/server/tools/prepare-change.js +10 -4
- package/dist/server/tools/prepare-change.js.map +1 -1
- package/dist/server/tools/verify-change.d.ts.map +1 -1
- package/dist/server/tools/verify-change.js +7 -1
- package/dist/server/tools/verify-change.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/04-configuration.md +23 -0
- package/docs/05-cli-reference.md +11 -0
- package/docs/06-tools-reference.md +79 -2
- package/docs/27-api-stability.md +27 -17
- package/docs/HARNESS-CONTRACT.md +128 -0
- package/package.json +3 -1
package/AGENT_INSTRUCTIONS.md
CHANGED
|
@@ -46,6 +46,7 @@ Do not read entire files to find code. Use the tools:
|
|
|
46
46
|
|
|
47
47
|
| Goal | Tool |
|
|
48
48
|
|------|------|
|
|
49
|
+
| Orient on a task (relevant symbols + files from a description) | `get_task_context` |
|
|
49
50
|
| Find a function/class/method by name | `search_symbols` |
|
|
50
51
|
| Find code by what it does | `search_semantic` |
|
|
51
52
|
| Find a literal string, comment, or config value | `search_text` |
|
|
@@ -56,6 +57,12 @@ Do not read entire files to find code. Use the tools:
|
|
|
56
57
|
| Know what breaks if I change a symbol | `get_blast_radius` |
|
|
57
58
|
| How risky is a symbol to change (composite verdict) | `get_symbol_risk` |
|
|
58
59
|
| Files that historically change together with this one | `get_co_change` |
|
|
60
|
+
| Impact verdict BEFORE editing existing code | `prepare_change` |
|
|
61
|
+
| Dedup / pattern check before writing NEW code | `check_consistency` |
|
|
62
|
+
| Re-index a file right after editing it (mid-task) | `index_file` |
|
|
63
|
+
| Confirm a finished edit is complete (plan vs actual) | `verify_change` |
|
|
64
|
+
| Did my change add a cycle / layer violation? | `compare_change_impact` |
|
|
65
|
+
| One go/no-go before merging a change | `merge_readiness` |
|
|
59
66
|
| Find all call sites for a symbol | `find_references` |
|
|
60
67
|
| Non-symbol file content (imports block, config) | `get_file_content` with `startLine`/`endLine` |
|
|
61
68
|
| All implementations of an interface | `find_implementations` |
|
|
@@ -107,6 +114,34 @@ If the response includes `verdict: "no_match"`, the symbol does not exist in thi
|
|
|
107
114
|
|
|
108
115
|
---
|
|
109
116
|
|
|
117
|
+
## Changing code safely — close the loop
|
|
118
|
+
|
|
119
|
+
PureContext is **judgment, not actuation** — it never edits files. You make the edit; these tools tell you what's safe before you start and what you missed after you finish. Run the loop for any non-trivial change:
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
1. get_task_context({ repoId, task }) → orient: relevant symbols/files + evidenceGaps
|
|
123
|
+
2a. EXISTING code → prepare_change({ repoId, intent, targetSymbolId | query })
|
|
124
|
+
→ predicted files, risk, missingCoChange, tests, gate
|
|
125
|
+
→ keep predictedFilePaths + missingCoChange for step 5
|
|
126
|
+
2b. NEW symbol → check_consistency({ repoId, name, kind, signature, intendedFilePath })
|
|
127
|
+
→ duplicates, pattern to follow, where it belongs
|
|
128
|
+
3. [make the edit]
|
|
129
|
+
4. index_file({ repoId, filePaths }) → refresh the index, O(one file) — NOT index_folder
|
|
130
|
+
5. verify_change({ repoId, diff, predictedFilePaths, predictedCoChange })
|
|
131
|
+
→ unaddressedCoChange, unplannedChanges, coverage gaps
|
|
132
|
+
6. merge_readiness({ repoId, diff, ... }) → one go/no-go: completeness + architecture regression
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Gate envelope.** `prepare_change`, `verify_change`, `compare_change_impact`, `check_consistency`, and `merge_readiness` each return `{ gate: "pass" | "warn" | "block", gateReasons, nextAction }`. Branch on `gate`: `pass` = proceed · `warn` = proceed with judgment · `block` = fix what `gateReasons` lists first.
|
|
136
|
+
|
|
137
|
+
- **`prepare_change`** intents: `rename` / `delete` / `modify` / `extract`. Returns `ambiguous_target` + candidates when a `query` has no clear winner (it never guesses) and `no_target` when nothing matches.
|
|
138
|
+
- **`verify_change`** is **stateless** — pass `predictedFilePaths` and `predictedCoChange` back inline from `prepare_change`. Co-change reconciliation is suppressed on low git signal (it won't invent "you forgot X").
|
|
139
|
+
- **`compare_change_impact`** reports only the regression *delta* vs a baseline `get_architecture_snapshot` — new cycles / layer violations the change introduced, never pre-existing ones.
|
|
140
|
+
|
|
141
|
+
> Mid-task freshness is the linchpin: after every write call `index_file` (single-file, repo-size-independent), never `index_folder` (it re-scans the whole tree and stalls). See `docs/HARNESS-CONTRACT.md` for full greenfield/brownfield loop recipes.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
110
145
|
## Key navigation patterns
|
|
111
146
|
|
|
112
147
|
### Modify a function safely
|
|
@@ -203,14 +238,18 @@ If the response includes `verdict: "no_match"`, the symbol does not exist in thi
|
|
|
203
238
|
|
|
204
239
|
## Keeping the index fresh
|
|
205
240
|
|
|
206
|
-
|
|
241
|
+
Searches are only as good as the index. The cheap, mid-task path is the single most important freshness habit:
|
|
207
242
|
|
|
208
243
|
```
|
|
209
|
-
|
|
210
|
-
|
|
244
|
+
index_file({ repoId, filePaths }) → re-index just the files you edited (O(one file))
|
|
245
|
+
check_index_staleness({ repoId, filePaths }) → is the index current? (no discovery pass)
|
|
246
|
+
index_folder({ path }) → cold start / first index of a repo (re-scans the whole tree)
|
|
247
|
+
index_folder({ path, force: true }) → full re-index (rebuild everything)
|
|
211
248
|
invalidate_cache({ repoId }) → clear hashes, then index_folder
|
|
212
249
|
```
|
|
213
250
|
|
|
251
|
+
**After editing a file, call `index_file` — never `index_folder`.** `index_folder` stats every file in the tree (discovery-bound, slow on large repos); `index_file` skips discovery entirely and re-indexes only what you pass. Reserve `index_folder` for the first index of a repo. Use `check_index_staleness` at task start to decide between a cold `index_folder` and targeted `index_file`.
|
|
252
|
+
|
|
214
253
|
### Claude Code hooks (optional but recommended)
|
|
215
254
|
|
|
216
255
|
Install the PureContext hooks to keep the index in sync automatically and preserve session orientation across context compaction:
|
|
@@ -219,15 +258,16 @@ Install the PureContext hooks to keep the index in sync automatically and preser
|
|
|
219
258
|
npx purecontext-mcp hooks --install
|
|
220
259
|
```
|
|
221
260
|
|
|
222
|
-
|
|
261
|
+
The hooks register as CLI commands in `~/.claude/settings.json` (no scripts copied — they update with the package). Highlights:
|
|
223
262
|
|
|
224
|
-
| Hook
|
|
225
|
-
|
|
226
|
-
| **
|
|
227
|
-
| **
|
|
228
|
-
| **
|
|
263
|
+
| Hook event | What it does |
|
|
264
|
+
|------------|-------------|
|
|
265
|
+
| **PostToolUse** | After `Edit`/`Write`, re-indexes the modified file via the cheap `index_file` path (bootstraps a full index on first sight) |
|
|
266
|
+
| **PreToolUse** | Soft edit guard — suggests `get_blast_radius` / `get_symbol_source` before editing |
|
|
267
|
+
| **PreCompact** | Injects the indexed-repo list before context compaction so orientation survives |
|
|
268
|
+
| **SubagentStart** | Injects condensed repo orientation for newly spawned subagents |
|
|
229
269
|
|
|
230
|
-
All hooks are Node.js
|
|
270
|
+
All hooks are Node.js — identical on Windows, Linux, and macOS.
|
|
231
271
|
|
|
232
272
|
---
|
|
233
273
|
|
package/AGENT_REFERENCE.md
CHANGED
|
@@ -9,6 +9,7 @@ The always-on instructions (mandatory workflow, decision rules, anti-patterns) l
|
|
|
9
9
|
|
|
10
10
|
| I need to… | Use |
|
|
11
11
|
|---|---|
|
|
12
|
+
| Orient on a task — get the relevant symbols + files from a task description | `get_task_context` |
|
|
12
13
|
| Find a function/class/method by name | `search_symbols` |
|
|
13
14
|
| Find code by what it does (meaning, not name) | `search_semantic` |
|
|
14
15
|
| Find a literal string, comment, or config value | `search_text` |
|
|
@@ -46,6 +47,10 @@ The always-on instructions (mandatory workflow, decision rules, anti-patterns) l
|
|
|
46
47
|
| Pre-edit impact verdict for an intended change | `prepare_change` |
|
|
47
48
|
| Confirm an applied change is complete (plan vs actual) | `verify_change` |
|
|
48
49
|
| Did my change introduce a new cycle / layer violation? | `compare_change_impact` |
|
|
50
|
+
| One go/no-go before merging a completed change | `merge_readiness` |
|
|
51
|
+
| Cheap single-file re-index after a write (mid-run) | `index_file` |
|
|
52
|
+
| Is the index current for these files? (no discovery) | `check_index_staleness` |
|
|
53
|
+
| Pre-write dedup/drift check for a NEW symbol (greenfield) | `check_consistency` |
|
|
49
54
|
| 5-axis codebase health score (CI gate / dashboard) | `health_radar` |
|
|
50
55
|
| Compare health before and after a refactoring | `diff_health_radar` |
|
|
51
56
|
| Detailed debt report with per-file rankings | `get_debt_report` |
|
|
@@ -86,6 +91,20 @@ Index a local directory. Returns `repoId`. Re-indexing is incremental — only c
|
|
|
86
91
|
- `force` (optional) — set `true` to force re-index of all files, even unchanged ones
|
|
87
92
|
- `fileLimit` (optional) — override the configured file limit for this run
|
|
88
93
|
|
|
94
|
+
### `index_file`
|
|
95
|
+
Targeted re-index of one or a few specific files WITHOUT the full-tree discovery pass `index_folder` performs — O(one file), independent of repo size. This is the mid-run freshness path: call it after writing/editing a file so subsequent searches reflect current state. Firing `index_folder` after every edit is discovery-bound and stalls; `index_file` does not.
|
|
96
|
+
|
|
97
|
+
- `repoId` (required)
|
|
98
|
+
- `filePaths` (required) — absolute or repo-relative; paths missing from disk are treated as deletions
|
|
99
|
+
|
|
100
|
+
The PostToolUse hook uses this automatically when installed.
|
|
101
|
+
|
|
102
|
+
### `check_index_staleness`
|
|
103
|
+
Cheaply check whether the index is current — no discovery pass. Pass `filePaths` for a per-file `fresh`/`stale` verdict (compares stored content hash vs disk); omit them for a repo-level summary (indexed? + last-indexed time + counts). Use at task start to decide cold `index_folder` vs targeted `index_file`.
|
|
104
|
+
|
|
105
|
+
- `repoId` (required)
|
|
106
|
+
- `filePaths` (optional)
|
|
107
|
+
|
|
89
108
|
### `resolve_repo`
|
|
90
109
|
Convert a local path to its `repoId` without indexing. Use when the project is already indexed but you don't have the `repoId` at hand.
|
|
91
110
|
|
|
@@ -172,6 +191,9 @@ Directory tree with file counts. Use when you need to understand the project's f
|
|
|
172
191
|
### `find_references`
|
|
173
192
|
Find all usage sites for a symbol across the repo. Use before renaming or modifying a symbol.
|
|
174
193
|
|
|
194
|
+
### `get_task_context`
|
|
195
|
+
Assemble a focused context bundle from a natural-language task description — the symbols and files most relevant to the work. The cold-start orientation front door. In the default `mode:"associative"` it discovers seed symbols, then **walks the real dependency + co-change graph** (imports, callers, historically co-changing files), so a structurally essential but lexically dissimilar symbol can be surfaced — not just keyword matches. Each item carries a `role` derived from the graph edge (`dependency`/`caller`/`historical`/`primary`) and `provenance`; the result adds `evidenceGaps` (`lowConfidenceSeeds`/`droppedByBudget`/`unselectedCoChange`) and `suggestedProbes[]` so you can decide whether to probe further. Works with zero embeddings (ranks by graph provenance). Pass `mode:"flat"` for legacy single-pass similarity. Fanout is governed by config `taskContext.*`.
|
|
196
|
+
|
|
175
197
|
---
|
|
176
198
|
|
|
177
199
|
## Dependency graph tools
|
|
@@ -404,6 +426,30 @@ Returns `verdict` (`complete` / `incomplete` / `scope_expanded`), `unaddressedCo
|
|
|
404
426
|
|
|
405
427
|
Returns `verdict` (`regressed` / `improved` / `unchanged` / `no_baseline`), `newCycles` / `newLayerViolations` (what the change introduced), and `resolvedCycles` / `resolvedLayerViolations`. Distinct from `analyze_diff`'s `architecturalFlags`, which flag *pre-existing* issues — this reports only the delta and never blames the change for problems it didn't create. With no baseline snapshot it returns `no_baseline` and degrades to current-state counts.
|
|
406
428
|
|
|
429
|
+
**`merge_readiness`** — one pre-merge go/no-go that folds `verify_change` (completeness) and `compare_change_impact` (architecture regression) into a single envelope. Thin consumer — no new analysis.
|
|
430
|
+
|
|
431
|
+
```json
|
|
432
|
+
{ "repoId": "...", "diff": "<git diff>", "predictedFilePaths": ["..."], "predictedCoChange": ["..."], "baselineSnapshotId": "<id>" }
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
Returns `gate` (`pass` / `warn` / `block`), `reasons[]`, and `unresolved[]` (the exact list of unaddressed co-change, untested changed symbols, new cycles, and new layer violations standing between the diff and a clean merge). `block` → fix `unresolved[]` and re-run.
|
|
436
|
+
|
|
437
|
+
### The normalized gate envelope
|
|
438
|
+
|
|
439
|
+
`prepare_change`, `verify_change`, `compare_change_impact`, `check_consistency`, and `merge_readiness` each return a stable `{ gate: "pass"|"warn"|"block", gateReasons[], nextAction }` a harness can branch on with one field — additive to their detailed verdicts. `pass` = proceed; `warn` = proceed with judgment; `block` = unfinished/regressed work.
|
|
440
|
+
|
|
441
|
+
### `check_consistency` — the greenfield pre-write front door
|
|
442
|
+
|
|
443
|
+
Before creating a NEW symbol/file (greenfield, where there is no git history yet), check it against the growing index — structural search only, no embedding provider needed (`mode: "structural"`).
|
|
444
|
+
|
|
445
|
+
```json
|
|
446
|
+
{ "repoId": "...", "name": "WindsurfConnector", "kind": "class", "intendedFilePath": "src/connectors/windsurf.ts" }
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
Returns `duplicates` ("you already wrote this"), `patternFit` (closest existing siblings to mirror), `placement` (does the intended path fit where siblings live?), `existingApiPointer` (what already lives in the target dir), and the gate envelope. On a near-empty index it returns `signalQuality: "low"` and suppresses duplicate claims (never invents "already exists").
|
|
450
|
+
|
|
451
|
+
> **Using PureContext inside an automated harness?** See `docs/HARNESS-CONTRACT.md` for the greenfield and brownfield loop recipes, the freshness rules (`index_file` mid-run, never `index_folder`), and the stable gate-envelope contract.
|
|
452
|
+
|
|
407
453
|
---
|
|
408
454
|
|
|
409
455
|
## Health & debt tools
|
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,63 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
+
## [1.13.0] - 2026-06-28
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
**Active context reconstruction — `get_task_context` associative mode**
|
|
19
|
+
|
|
20
|
+
`get_task_context` no longer does a single-shot "top-N similarity → one AI selection" pass. In the new default `associative` mode it discovers seed symbols, then **walks the real dependency and temporal graph** around them — imports (forward deps), callers (reverse deps via blast radius), and historically co-changing files — so a structurally essential but lexically dissimilar symbol (a dependency, a caller, a co-change partner) can now be selected.
|
|
21
|
+
|
|
22
|
+
- Each returned item carries a `role` **derived from the graph edge that surfaced it** (`dependency` / `caller` / `historical` / `primary`), plus a `provenance` object (`{ via, seedId?, confidence? }`). The AI keeps only the prose `relevanceReason`.
|
|
23
|
+
- New top-level `evidenceGaps` (`lowConfidenceSeeds`, `droppedByBudget`, `unselectedCoChange`) and `suggestedProbes[]` tell the agent what it still hasn't seen — the agent is the router and decides whether to probe further (no server-side reflective loop).
|
|
24
|
+
- Works **with zero embeddings**: when no AI/embedding provider is configured, results rank by graph provenance instead of keyword similarity — the floor rises from "top-N keyword guess" to "seeds + real graph neighborhood" (pure SQL).
|
|
25
|
+
- `_meta` gains `mode`, `seedsExpanded`, and `poolSize`.
|
|
26
|
+
- Pass `mode:"flat"` for the legacy single-pass similarity selection — **byte-identical to pre-1.13.0 output** (regression-guarded).
|
|
27
|
+
|
|
28
|
+
These are thin consumers of existing engines (`get_context_bundle`, `get_blast_radius`, `get_co_change`) — no new analysis engine.
|
|
29
|
+
|
|
30
|
+
### Configuration
|
|
31
|
+
|
|
32
|
+
- `taskContext.seedCount` (default 8) — top-N discovery hits expanded via the graph.
|
|
33
|
+
- `taskContext.expansionDepth` (default 1) — dep-graph hops walked per seed (forward + reverse).
|
|
34
|
+
- `taskContext.maxPool` (default 60) — candidate pool cap before ranking.
|
|
35
|
+
- `taskContext.maxCoChangePartners` (default 5) — co-change partner files pulled per seed.
|
|
36
|
+
- `taskContext.maxSymbolsPerPartner` (default 5) — symbols pulled per co-change partner file.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## [1.12.0] - 2026-06-28
|
|
41
|
+
|
|
42
|
+
### Added
|
|
43
|
+
|
|
44
|
+
**Harness Loop Fit — making PureContext usable inside automated codegen harnesses**
|
|
45
|
+
|
|
46
|
+
PureContext is the persistent cross-process brain a harness lacks: it tells the generating agent what already exists, what it's drifting from, and what it forgot — without re-reading the codebase from scratch every run. New tools across index freshness, greenfield consistency, and brownfield merge-gating:
|
|
47
|
+
|
|
48
|
+
- **`index_file`** — targeted re-index of one or a few files **without** the full-tree discovery pass `index_folder` performs (O(one file), independent of repo size). This is the mid-run freshness path: call it after writing a file so subsequent searches reflect current state. Firing `index_folder` after every edit is discovery-bound and stalls; `index_file` does not.
|
|
49
|
+
- **`check_index_staleness`** — cheaply check whether the index is current with no discovery pass. Pass `filePaths` for a per-file `fresh`/`stale` verdict (stored content hash vs disk); omit them for a repo-level summary. Use at task start to choose a cold `index_folder` vs targeted `index_file`.
|
|
50
|
+
- **`check_consistency`** — the greenfield pre-write front door: given an intended new symbol (name/kind/signature/target dir) it returns `duplicates` ("you already wrote this"), `patternFit` (sibling exemplars), `placement`, and `existingApiPointer`. Runs on **structural search alone — no embedding provider required** (`mode:"structural"`); `signalQuality:"low"` suppresses dedup on a sparse index.
|
|
51
|
+
- **`merge_readiness`** — one pre-merge go/no-go that folds `verify_change` (completeness vs the prediction) and `compare_change_impact` (architecture regression vs a baseline snapshot) into a single `{ gate, reasons[], unresolved[] }`. Thin consumer — no new analysis.
|
|
52
|
+
|
|
53
|
+
**Normalized gate envelope.** `prepare_change`, `verify_change`, `compare_change_impact`, `check_consistency`, and `merge_readiness` each return a stable `{ gate: "pass"|"warn"|"block", gateReasons[], nextAction }` a harness can branch on with a single field — additive to their detailed verdicts.
|
|
54
|
+
|
|
55
|
+
**`index-file` CLI subcommand + PostToolUse hook.** The Claude Code PostToolUse hook now calls the cheap targeted re-index (`purecontext-mcp index-file --repo <dir> <file...>`) instead of a full `index-folder`, bootstrapping a full index automatically the first time a repo is seen.
|
|
56
|
+
|
|
57
|
+
**`docs/HARNESS-CONTRACT.md`** — greenfield + brownfield loop recipes, freshness rules (`index_file` mid-run, never `index_folder`), and the stable gate-envelope contract.
|
|
58
|
+
|
|
59
|
+
### Fixed
|
|
60
|
+
|
|
61
|
+
- **No-op re-index churn.** `index_folder` used to skip persisting the content hash for files that yield 0 symbols and 0 imports, so those files were re-read and re-parsed on every run. The hash is now always persisted (delete-then-upsert even when empty), so a true no-op reports `filesIndexed: 0`. `reindexFiles` also now clears stale rows when an edit empties a file's last symbol (parity with a full index).
|
|
62
|
+
|
|
63
|
+
### Configuration
|
|
64
|
+
|
|
65
|
+
- `consistency.maxDuplicates` (default 5) — max duplicate candidates returned by `check_consistency`.
|
|
66
|
+
- `consistency.maxPatternFit` (default 5) — max sibling/pattern-fit exemplars returned.
|
|
67
|
+
- `consistency.maxApiPointer` (default 20) — max existing-symbol names listed for the target directory.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
14
71
|
## [1.11.0] - 2026-06-14
|
|
15
72
|
|
|
16
73
|
### Added
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
## PureContext MCP — Code Navigation & Safe Change
|
|
2
|
+
|
|
3
|
+
Use PureContext MCP tools to read and change code. Never read whole files to find code, and assess impact before you edit.
|
|
4
|
+
|
|
5
|
+
### Mandatory workflow
|
|
6
|
+
|
|
7
|
+
1. **Start every session**: `list_repos()` → get `repoId` (required for all tools). Not indexed? `index_folder({ path })`.
|
|
8
|
+
2. **Orient on a task**: `get_task_context({ repoId, task })` → the symbols and files most relevant to the work, walked over the real dependency + co-change graph (not just keyword matches), plus `evidenceGaps` for what you haven't seen yet.
|
|
9
|
+
3. **Find code**: `search_symbols` (by name) → read `summary`/`signature` → `get_symbol_source` only for what you'll edit. `search_semantic` for concepts, `search_text` for literals.
|
|
10
|
+
|
|
11
|
+
### Changing code safely — close the loop
|
|
12
|
+
|
|
13
|
+
PureContext is judgment, not actuation: it never edits files. You make the edit; these tools say what's safe and what you forgot.
|
|
14
|
+
|
|
15
|
+
1. **Before editing existing code**: `prepare_change({ repoId, intent, targetSymbolId | query })` → predicted files, risk, co-changing files you'd forget (`missingCoChange`), tests, and a `gate`. Keep `predictedFilePaths` + `missingCoChange` for step 5.
|
|
16
|
+
2. **Before writing a NEW symbol** (greenfield): `check_consistency({ repoId, name, kind, signature, intendedFilePath })` → duplicates ("you already wrote this"), the pattern to follow, where it belongs.
|
|
17
|
+
3. **Make the edit.**
|
|
18
|
+
4. **Refresh the index**: `index_file({ repoId, filePaths })` after each write — O(one file). Never `index_folder` mid-task (it re-scans the whole tree).
|
|
19
|
+
5. **Verify**: `verify_change({ repoId, diff, predictedFilePaths, predictedCoChange })` → did you address everything (and only what) you planned?
|
|
20
|
+
6. **Before merge**: `merge_readiness({ repoId, diff, ... })` → one go/no-go folding completeness + architecture regression.
|
|
21
|
+
|
|
22
|
+
Every gate tool returns `{ gate: "pass" | "warn" | "block", gateReasons, nextAction }` — branch on `gate`: `pass`=proceed, `warn`=proceed with judgment, `block`=fix first.
|
|
23
|
+
|
|
24
|
+
### Pick the right tool
|
|
25
|
+
|
|
26
|
+
| I need to… | Use |
|
|
27
|
+
|------------|-----|
|
|
28
|
+
| Orient on a task (relevant symbols + files) | `get_task_context` |
|
|
29
|
+
| Find a function/class/method by name | `search_symbols` |
|
|
30
|
+
| Find code by what it does (meaning) | `search_semantic` |
|
|
31
|
+
| Find a literal string / comment / config value | `search_text` |
|
|
32
|
+
| Read a symbol's implementation | `get_symbol_source` |
|
|
33
|
+
| Survey one file / whole project | `get_file_outline` / `get_repo_outline` |
|
|
34
|
+
| Know what breaks if I change a symbol | `get_blast_radius` |
|
|
35
|
+
| Find every call site of a symbol | `find_references` |
|
|
36
|
+
| Judge how risky a symbol is to change | `get_symbol_risk` |
|
|
37
|
+
| Files that historically change together | `get_co_change` |
|
|
38
|
+
| Impact verdict BEFORE an edit | `prepare_change` |
|
|
39
|
+
| Dedup / pattern check before writing NEW code | `check_consistency` |
|
|
40
|
+
| Re-index a file after editing it (mid-task) | `index_file` |
|
|
41
|
+
| Confirm a finished edit is complete | `verify_change` |
|
|
42
|
+
| Did my change add a cycle / layer violation? | `compare_change_impact` |
|
|
43
|
+
| One go/no-go before merging | `merge_readiness` |
|
|
44
|
+
| Pre-flight a rename / delete / move | `check_rename_safe` / `check_delete_safe` / `check_move_safe` |
|
|
45
|
+
| Find exported symbols with no tests | `find_untested_symbols` |
|
|
46
|
+
| Codebase health / debt report | `health_radar` / `get_debt_report` |
|
|
47
|
+
|
|
48
|
+
### Anti-patterns — never do these
|
|
49
|
+
|
|
50
|
+
- Do not read whole files to find a function — use `search_symbols` + `get_symbol_source`
|
|
51
|
+
- Do not call `get_symbol_source` for every result — read `summary` first
|
|
52
|
+
- Do not skip `list_repos` — every tool needs a `repoId`
|
|
53
|
+
- Do not run `index_folder` after every edit — use `index_file` (single-file, cheap)
|
|
54
|
+
- Do not use `search_text` for symbol lookups — use `search_symbols`
|
|
55
|
+
- Do not re-search after `verdict: "no_match"` — the symbol does not exist
|
|
56
|
+
|
|
57
|
+
Full tool reference, navigation patterns, and harness loop recipes: **`AGENT_REFERENCE.md`** and **`docs/HARNESS-CONTRACT.md`**.
|
package/dist/cli/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAoHH,wBAAgB,eAAe,IAAI,IAAI,CAetC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAenC;AAID,wBAAgB,aAAa,IAAI,IAAI,CAoDpC;AA6BD,wBAAgB,cAAc,IAAI,IAAI,CAuBrC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAoHH,wBAAgB,eAAe,IAAI,IAAI,CAetC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAenC;AAID,wBAAgB,aAAa,IAAI,IAAI,CAoDpC;AA6BD,wBAAgB,cAAc,IAAI,IAAI,CAuBrC;AA8CD,oDAAoD;AACpD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBvD;AAED,iEAAiE;AACjE,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAmCxD;AA+DD,qEAAqE;AACrE,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBvD;AAED,uDAAuD;AACvD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoB3D;AAED,8EAA8E;AAC9E,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3D;AAuED,qFAAqF;AACrF,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwC1D;AAED,8EAA8E;AAC9E,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CA8C1D;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAUpD"}
|
package/dist/cli/hooks.js
CHANGED
|
@@ -228,11 +228,17 @@ function findRepoRoot(filePath) {
|
|
|
228
228
|
dir = parent;
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
|
-
|
|
231
|
+
/**
|
|
232
|
+
* Targeted re-index of the edited files in one repo. Uses the cheap single-file
|
|
233
|
+
* path (index-file) rather than a full index-folder so the PostToolUse hook runs
|
|
234
|
+
* sub-second instead of stalling ~11s on every edit. index-file bootstraps a full
|
|
235
|
+
* index itself when the repo has not been indexed yet.
|
|
236
|
+
*/
|
|
237
|
+
function reindexFilesInRepo(repoRoot, filePaths) {
|
|
232
238
|
const selfScript = process.argv[1];
|
|
233
|
-
if (!selfScript)
|
|
239
|
+
if (!selfScript || filePaths.length === 0)
|
|
234
240
|
return;
|
|
235
|
-
spawnSync(process.execPath, [selfScript, 'index-
|
|
241
|
+
spawnSync(process.execPath, [selfScript, 'index-file', '--repo', repoRoot, ...filePaths], {
|
|
236
242
|
stdio: 'ignore',
|
|
237
243
|
timeout: 60_000,
|
|
238
244
|
});
|
|
@@ -284,14 +290,19 @@ export async function cmdHookPostToolUse() {
|
|
|
284
290
|
paths.push(fp);
|
|
285
291
|
}
|
|
286
292
|
}
|
|
287
|
-
|
|
293
|
+
// Group edited files by repo root, then targeted-reindex each root once
|
|
294
|
+
// (batches a MultiEdit's files into a single index-file call).
|
|
295
|
+
const byRoot = new Map();
|
|
288
296
|
for (const fp of paths) {
|
|
289
297
|
const root = findRepoRoot(fp);
|
|
290
|
-
if (root)
|
|
291
|
-
|
|
298
|
+
if (!root)
|
|
299
|
+
continue;
|
|
300
|
+
const list = byRoot.get(root) ?? [];
|
|
301
|
+
list.push(fp);
|
|
302
|
+
byRoot.set(root, list);
|
|
292
303
|
}
|
|
293
|
-
for (const root of
|
|
294
|
-
|
|
304
|
+
for (const [root, files] of byRoot)
|
|
305
|
+
reindexFilesInRepo(root, files);
|
|
295
306
|
}
|
|
296
307
|
catch { /* never block the edit */ }
|
|
297
308
|
process.exit(0);
|
package/dist/cli/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,aAAa,GACd,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,gBAAgB,EAAuB,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,iFAAiF;AAEjF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AACxD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAErD,iFAAiF;AAEjF,8EAA8E;AAC9E,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,kFAAkF;AAClF,SAAS,WAAW,CAAC,UAAkB;IACrC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC,OAAO,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;IAClC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;AACvD,CAAC;AAED,iFAAiF;AAEjF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAqEK,CAAC;AAE9B,iFAAiF;AAEjF,MAAM,UAAU,eAAe;IAC7B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IAEjB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAC9F,OAAO,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC;IACrG,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;IACvG,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;IAClG,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,wFAAwF,CAAC,CAAC;AACxG,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAElD,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,0BAA0B,cAAc,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,0BAA0B,kBAAkB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC;IAE5F,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,aAAa;IAC3B,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAA4B,CAAC;QACzF,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAA8B,CAAC;IAElE,KAAK,CAAC,WAAW,GAAG,cAAc,CAChC,KAAK,CAAC,WAAW,IAAI,EAAE,EACvB,EAAE,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAC3G,CAAC,4BAA4B,EAAE,kBAAkB,CAAC,CACnD,CAAC;IACF,KAAK,CAAC,UAAU,GAAG,cAAc,CAC/B,KAAK,CAAC,UAAU,IAAI,EAAE,EACtB,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,EACtF,CAAC,iCAAiC,EAAE,iBAAiB,CAAC,CACvD,CAAC;IACF,KAAK,CAAC,UAAU,GAAG,cAAc,CAC/B,KAAK,CAAC,UAAU,IAAI,EAAE,EACtB,EAAE,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAC1G,CAAC,4BAA4B,EAAE,iBAAiB,CAAC,CAClD,CAAC;IACF,KAAK,CAAC,cAAc,GAAG,cAAc,CACnC,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAc,EACzC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,sBAAsB,CAAC,EAAE,CAAC,EAAE,EAC3F,CAAC,sBAAsB,CAAC,CACzB,CAAC;IACF,KAAK,CAAC,cAAc,GAAG,cAAc,CACnC,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAc,EACzC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,sBAAsB,CAAC,EAAE,CAAC,EAAE,EAC3F,CAAC,sBAAsB,CAAC,CACzB,CAAC;IACF,KAAK,CAAC,aAAa,GAAG,cAAc,CAClC,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAc,EACxC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,EACzF,CAAC,oBAAoB,CAAC,CACvB,CAAC;IACF,KAAK,CAAC,aAAa,GAAG,cAAc,CAClC,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAc,EACxC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,EACzF,CAAC,oBAAoB,CAAC,CACvB,CAAC;IAEF,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,cAAc,aAAa,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,cAAc,CACrB,QAAmB,EACnB,KAA8B,EAC9B,YAAsB;IAEtB,yEAAyE;IACzE,oEAAoE;IACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACrC,MAAM,KAAK,GAAI,CAA+B,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,GAAG,GAAI,CAA4B,CAAC,OAAO,IAAI,EAAE,CAAC;YACxD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,iBAAiB;IACxB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;IAC1F,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAC3B,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,cAAc;IAC5B,MAAM,YAAY,GAAG,gCAAgC,CAAC;IACtD,MAAM,UAAU,GAAG,8BAA8B,CAAC;IAElD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,aAAa,CAAC,cAAc,EAAE,eAAe,GAAG,IAAI,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,cAAc,cAAc,EAAE,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE3C,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC1D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACrG,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,IAAI,CAAC;QAC7C,OAAO,IAAI,IAAI,GAAG,eAAe,GAAG,IAAI,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,cAAc,cAAc,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;IAC1F,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAC3B,CAAC;AAED,iFAAiF;AAEjF,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAEjF,SAAS,YAAY,CAAC,QAAgB;IACpC,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,OAAO,IAAI,EAAE,CAAC;QACZ,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YAClC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAAE,OAAO,GAAG,CAAC;QAChD,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAChC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;QAC5E,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA4B,CAAC;AACxF,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,GAAG;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAErE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAW,CAAC;QAEnD,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAExE,MAAM,QAAQ,GAAG,CAAE,KAAK,CAAC,UAAsC,EAAE,SAAS,IAAI,EAAE,CAAW,CAAC;QAC5F,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8BAA8B,MAAM,eAAe;YACnD,4EAA4E;YAC5E,qEAAqE;YACrE,sEAAsE,CACvE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAE7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAW,CAAC;QACnD,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;QAEtE,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAExE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChD,MAAM,EAAE,GAAG,SAAS,CAAC,SAA+B,CAAC;YACrD,IAAI,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAmC,CAAC;YACxE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,EAAE,GAAG,IAAI,CAAC,SAA+B,CAAC;gBAChD,IAAI,EAAE;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,IAAI;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,CAAC;IAEtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AASD,SAAS,gBAAgB;IACvB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,yEAAyE;IACzE,4EAA4E;IAC5E,2EAA2E;IAC3E,uDAAuD;IACvD,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,gBAAgB,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAEtB,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAEtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,EAA8B,CAAC;QACnC,IAAI,CAAC;YACH,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAC,GAAG,EAAe,CAAC;YAC/G,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC;gBAAS,CAAC;YAC5C,IAAI,CAAC;gBAAC,EAAE,EAAE,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAgB;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,+BAA+B;YAC/B,+BAA+B;YAC/B,4EAA4E;YAC5E,oDAAoD;SACrD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU;YAC1B,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;YACrE,CAAC,CAAC,SAAS,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,UAAU,IAAI,GAAG,wBAAwB,OAAO,GAAG,CAAC,CAAC;IACpG,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,qEAAqE;AACrE,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,MAAM,SAAS,EAAE,CAAC,CAAC,+BAA+B;IACpD,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAExB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAClC,aAAa,EAAE,oFAAoF;SACpG,CAAC,GAAG,IAAI,CAAC,CAAC;IACb,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,CAAuB,CAAC;QACvF,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAW,CAAC;QACxC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAW,CAAC;QAE1C,MAAM,UAAU,GAAG,YAAY,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClG,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEjC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,UAAU,EAAE,CAAC;YACf,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE;gBAC9E,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAE7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,CAAC;QAAC,MAAM,SAAS,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAcD,SAAS,aAAa;IACpB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,gBAAgB,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAEtB,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAEtB,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,EAA8B,CAAC;QACnC,IAAI,CAAC;YACH,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5D,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,iEAAiE,CAClE,CAAC,GAAG,EAAyG,CAAC;YAC/G,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,uDAAuD,CACxD,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAoB,CAAC;YAElC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CACxB,qFAAqF,CACtF,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAoB,CAAC;YAElC,2EAA2E;YAC3E,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CACxB,2JAA2J,CAC5J,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAoB,CAAC;YAElC,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,WAAW,EAAE,MAAM,CAAC,GAAG;gBACvB,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,mBAAmB,EAAE,OAAO,CAAC,GAAG;gBAChC,SAAS,EAAE,OAAO,CAAC,GAAG;aACvB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC;gBAAS,CAAC;YAC5C,IAAI,CAAC;gBAAC,EAAE,EAAE,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QAAC,MAAM,SAAS,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,KAAK,GAAa,CAAC,oCAAoC,CAAC,CAAC;QAE/D,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS;gBACzB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;gBACpE,CAAC,CAAC,SAAS,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,GAAG,YAAY,CAAC,CAAC,WAAW,IAAI,GAAG,sBAAsB,OAAO,EAAE,CAAC,CAAC;YACnG,IAAI,CAAC,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,mBAAmB,2CAA2C,CAAC,CAAC;YACtF,CAAC;YACD,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,gDAAgD,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC/E,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACnF,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;QACzF,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAE1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QAAC,MAAM,SAAS,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;QAE9B,MAAM,KAAK,GAAa,CAAC,mCAAmC,CAAC,CAAC;QAE9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACpE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS;oBACzB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;oBACpE,CAAC,CAAC,SAAS,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;gBAC3D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,GAAG,YAAY,CAAC,CAAC,WAAW,IAAI,GAAG,sBAAsB,OAAO,EAAE,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;QACtG,KAAK,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;QACxG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC;QAEvG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;IAC3C,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,eAAe,EAAE,CAAC;IACpB,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,YAAY,EAAE,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-writers.d.ts","sourceRoot":"","sources":["../../src/cli/install-writers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"install-writers.d.ts","sourceRoot":"","sources":["../../src/cli/install-writers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAIhD,eAAO,MAAM,YAAY,mCAAmC,CAAC;AAC7D,eAAO,MAAM,UAAU,iCAAiC,CAAC;AA6BzD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,aAAa,GAAG,MAAM,CAM7F;AA8BD;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAepF;AAgQD;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBpF;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBtF;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBtF;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBnF;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBrF;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBrF;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC7F;AAeD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAShG,CAAC"}
|
|
@@ -10,6 +10,7 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
|
10
10
|
import { spawnSync } from 'child_process';
|
|
11
11
|
import yaml from 'js-yaml';
|
|
12
12
|
import { join, dirname } from 'path';
|
|
13
|
+
import { fileURLToPath } from 'url';
|
|
13
14
|
import { homedir, platform } from 'os';
|
|
14
15
|
import { cmdHooksInstall } from './hooks.js';
|
|
15
16
|
import { getClaudeDesktopConfigPath } from './install-detect.js';
|
|
@@ -18,56 +19,33 @@ import { resolveServerLaunch, nodeMajor } from './resolve-node.js';
|
|
|
18
19
|
export const START_MARKER = '<!-- purecontext-mcp-start -->';
|
|
19
20
|
export const END_MARKER = '<!-- purecontext-mcp-end -->';
|
|
20
21
|
// ─── Shared instruction content ───────────────────────────────────────────────
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
| Find every call site of a symbol | \`find_references\` |
|
|
43
|
-
| See the callers/callees tree | \`get_call_hierarchy\` |
|
|
44
|
-
| Judge how risky a symbol is to change | \`get_symbol_risk\` |
|
|
45
|
-
| Find files that change together with this one | \`get_co_change\` |
|
|
46
|
-
| Pre-flight a rename / delete / move | \`check_rename_safe\` / \`check_delete_safe\` / \`check_move_safe\` |
|
|
47
|
-
| Find exported symbols with no tests | \`find_untested_symbols\` |
|
|
48
|
-
| Codebase health score / debt report | \`health_radar\` / \`get_debt_report\` |
|
|
49
|
-
|
|
50
|
-
### Before editing risky code
|
|
51
|
-
|
|
52
|
-
Before broad or automated edits to an unfamiliar symbol, check \`get_symbol_risk\` (composite churn + centrality + complexity + test-gap + co-change, banded \`low\`/\`review\`/\`high\`). For a \`high\` symbol, inspect its callers (\`get_blast_radius\`) and its historical co-changers (\`get_co_change\`) first — co-changing files are the second-order edits the import graph can't show you. \`search_symbols\` and \`get_symbol_source\` accept \`includeRisk: true\` to attach a compact \`{ band, riskScore }\` inline.
|
|
53
|
-
|
|
54
|
-
### Anti-patterns — never do these
|
|
55
|
-
|
|
56
|
-
- Do not read whole files to find a function — use \`search_symbols\` + \`get_symbol_source\`
|
|
57
|
-
- Do not call \`get_symbol_source\` for every result — read \`summary\` first
|
|
58
|
-
- Do not skip \`list_repos\` — every tool needs a \`repoId\`
|
|
59
|
-
- Do not use \`search_text\` for symbol lookups — it greps raw text; use \`search_symbols\`
|
|
60
|
-
- Do not re-search after \`verdict: "no_match"\` — the symbol does not exist
|
|
61
|
-
|
|
62
|
-
Full tool reference (every parameter), navigation patterns, and known limitations: **\`AGENT_REFERENCE.md\`**.`;
|
|
22
|
+
// Single source of truth for the compact always-on agent rules. It lives as
|
|
23
|
+
// plain markdown at the package root (`assets/agent-rules.md`) — edited there,
|
|
24
|
+
// read here. Both src/cli/ (dev + tests) and dist/cli/ (published package) sit
|
|
25
|
+
// exactly two levels under the package root, so the same relative path resolves
|
|
26
|
+
// in either layout. `assets/` is listed in package.json `files`, so it ships.
|
|
27
|
+
function agentRulesPath() {
|
|
28
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
29
|
+
return join(here, '..', '..', 'assets', 'agent-rules.md');
|
|
30
|
+
}
|
|
31
|
+
let cachedMarkdownContent = null;
|
|
32
|
+
function getMarkdownContent() {
|
|
33
|
+
if (cachedMarkdownContent !== null)
|
|
34
|
+
return cachedMarkdownContent;
|
|
35
|
+
const path = agentRulesPath();
|
|
36
|
+
if (!existsSync(path)) {
|
|
37
|
+
throw new Error(`PureContext: agent rules file not found at ${path}. ` +
|
|
38
|
+
'This file ships with the package — reinstall purecontext-mcp if it is missing.');
|
|
39
|
+
}
|
|
40
|
+
cachedMarkdownContent = readFileSync(path, 'utf-8').trimEnd();
|
|
41
|
+
return cachedMarkdownContent;
|
|
42
|
+
}
|
|
63
43
|
export function getPureContextInstructions(format) {
|
|
44
|
+
const content = getMarkdownContent();
|
|
64
45
|
if (format === 'mdc') {
|
|
65
|
-
return `---\ndescription: PureContext MCP code navigation rules\nalwaysApply: true\n---\n\n${
|
|
66
|
-
}
|
|
67
|
-
if (format === 'json-system') {
|
|
68
|
-
return MARKDOWN_CONTENT;
|
|
46
|
+
return `---\ndescription: PureContext MCP code navigation rules\nalwaysApply: true\n---\n\n${content}`;
|
|
69
47
|
}
|
|
70
|
-
return
|
|
48
|
+
return content;
|
|
71
49
|
}
|
|
72
50
|
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
73
51
|
function replaceMarkerBlock(existing, newBlock) {
|
|
@@ -337,7 +315,7 @@ export async function installCursor(projectRoot, scope) {
|
|
|
337
315
|
if (existsSync(filePath)) {
|
|
338
316
|
const existing = readFileSync(filePath, 'utf-8');
|
|
339
317
|
if (existing.includes(START_MARKER)) {
|
|
340
|
-
writeFileSync(filePath, replaceMarkerBlock(existing, markedBlock(
|
|
318
|
+
writeFileSync(filePath, replaceMarkerBlock(existing, markedBlock(getMarkdownContent())), 'utf-8');
|
|
341
319
|
return;
|
|
342
320
|
}
|
|
343
321
|
}
|