@ruso-0/nreki 11.2.1 → 11.3.1

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/CHANGELOG.md CHANGED
@@ -2,6 +2,60 @@
2
2
 
3
3
  All notable changes to NREKI will be documented in this file.
4
4
 
5
+ ## [11.3.1] - 2026-05-19
6
+
7
+ ### Changed
8
+
9
+ - **`SYMBOL_REPLACE_LIMIT` default raised 40 L → 100 L.** The legacy 40 L guillotine on `mode:"replace"` was introduced in v9.1 (`3661c31`, 2026-04-13) as a magic number without empirical justification. Phase 1 measurement of 2 880 functions across 5 production TypeScript codebases (NREKI src/, zod, ajv, eventsource, ajv-formats) showed the 40 L cap blocked **10.45% of real-world functions** and **19.06% of NREKI's own source** — a self-inconsistency. The new default (100 L) blocks only 3.02% aggregate (true outliers) and matches NREKI's pre-existing outline auto-expand cutoff (`<=100L` in v10.1.1). The other 10 defense-in-depth gates (anti-sweep shield, kernel TS validation, TTRD, blast radius, Fiedler bridge, Chronos friction, auto-backup, ACID, file lock, topology invalidate) remain unchanged and continue to detect every defect class the size-only gate was incidentally catching.
10
+ - Error message now reports the active threshold and points to the env override:
11
+ `Blocked: Symbol "X" is 55L (>100L). Use mode:"patch" with search_text and replace_text, or override via NREKI_SYMBOL_LIMIT env.`
12
+
13
+ ### Added
14
+
15
+ - **`NREKI_SYMBOL_LIMIT` env override** — accepts any integer 1..1000. Parse failures fall back to the default and warn on stderr (never silently disable the gate). Backward-compat: users who prefer the legacy 40 L behavior can set `NREKI_SYMBOL_LIMIT=40`.
16
+ - **`src/limits.ts`** — central, named export `SYMBOL_REPLACE_LIMIT` replaces the magic number `40` in two locations (`src/semantic-edit.ts:637` batch path, `src/semantic-edit.ts:1029` single-edit path).
17
+ - **Empirical analysis docs**:
18
+ - `docs/threshold-empirical-analysis.md` — methodology, samples, percentile distribution, false-positive rates per threshold (40 / 50 / 60 / 70 / 80 / 100 / 120 / 150).
19
+ - `docs/furia-threshold-review.md` — adversarial Q1–Q5 review (arbitrariness check, risk surface analysis, ratio-vs-absolute, env-override constraints, legitimate-rewrite scenario).
20
+ - `scripts/analyze-symbol-sizes.mjs` — reproducible analysis script (TypeScript Compiler API), regenerable on demand.
21
+ - **Tests** — `tests/semantic-edit.test.ts` adds three cases: (a) 55 L symbol is now allowed, (b) 120 L god-function still blocked, (c) error message dynamically reflects active threshold.
22
+
23
+ ### Templates
24
+
25
+ - `templates/CLAUDE.md`, `templates/AGENTS.md`, `templates/SKILL.md` updated to document the new 100 L default and the `NREKI_SYMBOL_LIMIT` override.
26
+
27
+ ### Migration
28
+
29
+ - **Existing users:** the only externally-visible change is that symbols 41–100 L now accept `mode:"replace"` where they were previously rejected. No file format change, no API change, no breaking signature. To restore exact pre-v11.3.1 behavior, set `NREKI_SYMBOL_LIMIT=40` in your environment.
30
+
31
+ ## [11.3.0] - 2026-05-19
32
+
33
+ ### Added
34
+
35
+ - **Agent-aware `nreki init` CLI** — pre-v11.3.0 `nreki init` unconditionally wrote `CLAUDE.md`, `AGENTS.md`, `SKILL.md` plus a Claude Code-specific PreToolUse hook into every project regardless of which AI coding agent the user actually ran. v11.3.0 detects the agent from filesystem signals (`.claude/` / `CLAUDE.md` → claude, `.cursor/` / `.cursorrules` → cursor, `.clinerules` → cline, `.github/copilot-instructions.md` → copilot) and installs only the files that agent reads:
36
+ - **claude**: `CLAUDE.md`, `SKILL.md`, `.claude/hooks/nreki-enforcer.mjs`, `.claude/settings.json` PreToolUse merge.
37
+ - **cursor**: `.cursor/rules/nreki.mdc` with `alwaysApply: true` frontmatter.
38
+ - **cline**: `.clinerules/nreki.md`.
39
+ - **copilot**: `.github/copilot-instructions.md` (appended if pre-existing).
40
+ - **generic** (no signal): `AGENTS.md` + an honest disclosure pointing at the `--agent` flag.
41
+ Flags: `--agent <claude|cursor|cline|copilot|generic>` overrides detection; `--force` rewrites an existing NREKI block; `--dry-run` previews the plan without filesystem writes. The pre-existing NREKI marker check is preserved per file, so `nreki init` remains idempotent.
42
+ - **`tests/cli-init.test.ts`** — 28 filesystem-based tests covering detection priority, all agent install paths, idempotency (marker-based skip), `--force` rewrite, `--dry-run` no-op semantics, and end-to-end auto-detection.
43
+
44
+ ### Changed
45
+
46
+ - The Claude Code enforcer hook moved from a TypeScript template literal in `src/index.ts` (`getEnforcerScriptContent()`) to a real file at `templates/hooks/nreki-enforcer.mjs`. Template content is read at runtime via `fs.readFileSync`, so future edits to the hook source no longer require navigating nested backslash-escape gymnastics. The runtime behavior of the hook is unchanged.
47
+ - `nreki --help` now documents the `init` subcommand flags.
48
+
49
+ ### Internal
50
+
51
+ - `src/init/agent-detect.ts` — pure detector returning `{ agent, reason, detected }`.
52
+ - `src/init/init-runner.ts` — orchestrator with `parseInitArgs`, `runInit`, and `formatAction`. Pure functions over the filesystem so tests can `mkdtemp` and assert against on-disk outcomes. The Claude-Code-only `.claude/settings.json` merge is conservative: it preserves user-added PreToolUse matchers and only inserts the ones NREKI owns; malformed JSON aborts the merge with a clear message instead of clobbering the file.
53
+
54
+ ### Migration notes
55
+
56
+ - Existing Claude Code installs are unaffected: the detector sees their `.claude/` directory and continues to install the same Claude-Code files. Re-running `nreki init` on a v11.2.x Claude Code project will report all four target files as `[skip]` (markers already present).
57
+ - Cursor / Cline / Copilot users on v11.2.x who ran `nreki init` and ended up with stray `CLAUDE.md` / `SKILL.md` files can safely delete them — v11.3.0 will now write the correct agent-specific files for them on the next run.
58
+
5
59
  ## [11.2.1] - 2026-05-19
6
60
 
7
61
  Hot-fix release. v11.2.0 surfaced an EOF-style MCP crash on real-world
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  <img src="https://img.shields.io/npm/v/@ruso-0/nreki?style=for-the-badge&color=blue" alt="npm version">
5
5
  <img src="https://img.shields.io/badge/Tests-783-brightgreen?style=for-the-badge" alt="783 Tests">
6
6
  <img src="https://img.shields.io/badge/AHI-9.7%2F10-brightgreen?style=for-the-badge" alt="AHI 9.7/10">
7
- <img src="https://img.shields.io/badge/Languages-TS%20%7C%20JS%20%7C%20Go%20%7C%20Python%20%7C%20Kotlin%20%7C%20Java%20%7C%20C%2B%2B-blue?style=for-the-badge" alt="Multi-language">
7
+ <img src="https://img.shields.io/badge/Languages-TS%20%7C%20JS%20%7C%20Go%20%7C%20Python%20%7C%20Kotlin%20%7C%20Java%20%7C%20C%2B%2B-blue?style=for-the-badge" alt="Multi-language">
8
8
  <img src="https://img.shields.io/badge/Cloud-Zero-orange?style=for-the-badge" alt="Zero Cloud">
9
9
  <img src="https://img.shields.io/badge/License-Apache_2.0-yellow?style=for-the-badge" alt="Apache 2.0">
10
10
  </p>
@@ -24,11 +24,24 @@ claude mcp add nreki -- npx -y @ruso-0/nreki
24
24
  # Cursor / any MCP client - add to mcp.json:
25
25
  { "mcpServers": { "nreki": { "command": "npx", "args": ["-y", "@ruso-0/nreki"] } } }
26
26
 
27
- # Optional: installs CLAUDE.md instructions + CLI hook firewall
28
- npx @ruso-0/nreki init
27
+ # Optional: agent-aware instructions install (v11.3.0+)
28
+ npx @ruso-0/nreki init # auto-detect agent (Claude Code / Cursor / Cline / Copilot / generic)
29
+ npx @ruso-0/nreki init --agent cursor # explicit; valid: claude, cursor, cline, copilot, generic
30
+ npx @ruso-0/nreki init --dry-run # preview the plan, write nothing
31
+ npx @ruso-0/nreki init --force # rewrite an existing NREKI block
29
32
  ```
30
33
 
31
- First run indexes the project automatically. Zero config for TS/JS; point a `tsconfig.json` at your code and NREKI detects the right validation mode.
34
+ What `nreki init` writes per agent:
35
+
36
+ | Agent | Detected via | Files installed |
37
+ |-----------|----------------------------------------|-----------------------------------------------------------------------|
38
+ | `claude` | `.claude/` or `CLAUDE.md` | `CLAUDE.md`, `SKILL.md`, `.claude/hooks/nreki-enforcer.mjs`, `.claude/settings.json` |
39
+ | `cursor` | `.cursor/` or `.cursorrules` | `.cursor/rules/nreki.mdc` (with `alwaysApply: true` frontmatter) |
40
+ | `cline` | `.clinerules` (file or dir) | `.clinerules/nreki.md` |
41
+ | `copilot` | `.github/copilot-instructions.md` | `.github/copilot-instructions.md` (appended) |
42
+ | `generic` | none of the above | `AGENTS.md` |
43
+
44
+ First MCP run indexes the project automatically in the background — `hybrid_search` returns BM25 results immediately while NREKI's semantic index warms (v11.2.1+). Zero config for TS/JS; point a `tsconfig.json` at your code and NREKI detects the right validation mode.
32
45
 
33
46
  ## How it works
34
47
 
@@ -53,33 +66,33 @@ Three tools (`nreki_navigate`, `nreki_code`, `nreki_guard`), 23 actions, 4 langu
53
66
  - **Defect radar + ghost oracle.** Four inline detectors and a 0-ext-refs tagger run during `outline` - free signals, no extra tool call.
54
67
  - **Executable engrams.** Pin insights to symbols. Engrams prefixed `ASSERT` survive AST mutation; everything else invalidates on body change so memory can't go stale.
55
68
 
56
- ## Language support (Validation + Auto-heal)
69
+ ## Language support (Validation + Auto-heal)
57
70
 
58
71
  | Language | Validation | Auto-heal |
59
72
  |----------|------------|-----------|
60
73
  | TypeScript / JavaScript | Full (TS Compiler API) | TS CodeFix API |
61
- | Go | gopls LSP sidecar | codeAction (atomic) |
62
- | Python | pyright LSP sidecar | codeAction (atomic) |
63
-
64
- ## AST parser coverage
65
-
66
- NREKI's tree-sitter parser layer indexes additional languages for
67
- foveal compression + symbol retrieval + semantic-edit syntactic
68
- validation. These languages do **not** have LSP sidecars and
69
- therefore receive no auto-heal; otherwise their files participate
70
- in the retrieval index identically to TypeScript files.
71
-
72
- | Language | Extensions | Parser | Foveal | Syntax check | LSP auto-heal | Type Ledger |
73
- |-------------|-----------------------------------------|--------|--------|--------------|---------------|-------------|
74
- | TypeScript | .ts .tsx .mts .cts | ✓ | ✓ | ✓ | ✓ (tsc) | ✓ |
75
- | JavaScript | .js .jsx .mjs .cjs | ✓ | ✓ | ✓ | ✓ (tsc) | ✓ |
76
- | Python | .py | ✓ | ✓ | ✓ | ✓ (pyright) | — |
77
- | Go | .go | ✓ | ✓ | ✓ | ✓ (gopls) | — |
78
- | CSS | .css | ✓ | ✓ | ✓ | — | — |
79
- | JSON | .json | ✓ | ✓ | ✓ | — | — |
80
- | HTML | .html | ✓ | ✓ | ✓ | — | — |
81
- | **Kotlin** | .kt .kts | ✓ | ✓ | ✓ | — | — |
82
- | **Java** | .java | ✓ | ✓ | ✓ | — | — |
74
+ | Go | gopls LSP sidecar | codeAction (atomic) |
75
+ | Python | pyright LSP sidecar | codeAction (atomic) |
76
+
77
+ ## AST parser coverage
78
+
79
+ NREKI's tree-sitter parser layer indexes additional languages for
80
+ foveal compression + symbol retrieval + semantic-edit syntactic
81
+ validation. These languages do **not** have LSP sidecars and
82
+ therefore receive no auto-heal; otherwise their files participate
83
+ in the retrieval index identically to TypeScript files.
84
+
85
+ | Language | Extensions | Parser | Foveal | Syntax check | LSP auto-heal | Type Ledger |
86
+ |-------------|-----------------------------------------|--------|--------|--------------|---------------|-------------|
87
+ | TypeScript | .ts .tsx .mts .cts | ✓ | ✓ | ✓ | ✓ (tsc) | ✓ |
88
+ | JavaScript | .js .jsx .mjs .cjs | ✓ | ✓ | ✓ | ✓ (tsc) | ✓ |
89
+ | Python | .py | ✓ | ✓ | ✓ | ✓ (pyright) | — |
90
+ | Go | .go | ✓ | ✓ | ✓ | ✓ (gopls) | — |
91
+ | CSS | .css | ✓ | ✓ | ✓ | — | — |
92
+ | JSON | .json | ✓ | ✓ | ✓ | — | — |
93
+ | HTML | .html | ✓ | ✓ | ✓ | — | — |
94
+ | **Kotlin** | .kt .kts | ✓ | ✓ | ✓ | — | — |
95
+ | **Java** | .java | ✓ | ✓ | ✓ | — | — |
83
96
  | **C++** | .cpp .cc .cxx .hpp .hh .hxx .h* | ✓ | ✓ | ✓ | — | — |
84
97
  | **C** | .c .h* | ✓ | ✓ | ✓ | — | — |
85
98
 
@@ -90,8 +103,8 @@ broader JVM / native cross-platform ecosystem.
90
103
  > *`.h` headers are routed at parse time: headers containing
91
104
  > C++ markers (template, namespace, class, `#ifdef __cplusplus`)
92
105
  > use the C++ grammar; pure C headers use the C grammar. Default
93
- > to C grammar for ambiguous cases.
94
-
106
+ > to C grammar for ambiguous cases.
107
+
95
108
  **Known limitation (v11.0.x):** cross-file import detection for
96
109
  Kotlin / Java / C++ / C is not yet implemented. Repo-map dependency edges
97
110
  for files in these languages are intra-file only until v11.0.x.1.
@@ -110,14 +123,14 @@ propagate to vendor `wasm/` directory due to skip-if-exists logic in
110
123
  **chunks table lacks language column.** Retrieval language-aware scoring
111
124
  requires runtime path extension filtering. Breaking migration tracked as
112
125
  issue #6 (coordinated with v11.0.2 XML activation due to noise risk
113
- amplification).
114
-
115
- **Type Ledger (cross-file architectural dependency mapping) remains
116
- TypeScript-specific by design** - it relies on TypeScript compiler-
117
- derived type information. Multi-language Type Ledger expansion is
118
- tracked under the Phase 8 roadmap.
119
-
120
- ## Docs & links
126
+ amplification).
127
+
128
+ **Type Ledger (cross-file architectural dependency mapping) remains
129
+ TypeScript-specific by design** - it relies on TypeScript compiler-
130
+ derived type information. Multi-language Type Ledger expansion is
131
+ tracked under the Phase 8 roadmap.
132
+
133
+ ## Docs & links
121
134
 
122
135
  - **[CHANGELOG.md](CHANGELOG.md)** - full version history (every patch, every release, every test count).
123
136
  - **[templates/CLAUDE.md](templates/CLAUDE.md)** - optimized instructions auto-installed by `npx @ruso-0/nreki init`.
package/dist/index.js CHANGED
@@ -47,14 +47,21 @@ if (args.includes("--version") || args.includes("-v")) {
47
47
  }
48
48
  if (args.includes("--help") || args.includes("-h")) {
49
49
  console.log(`
50
- NREKI v${VERSION} - Semantic validation for Claude Code
50
+ NREKI v${VERSION} - Semantic validation MCP server for AI coding agents
51
51
 
52
52
  Usage:
53
- npx @ruso-0/nreki [options]
54
- npx @ruso-0/nreki init # Creates optimal CLAUDE.md instructions
55
- npx @ruso-0/nreki deinit # Safely removes NREKI hooks before npm uninstall
53
+ npx @ruso-0/nreki Start MCP server (default)
54
+ npx @ruso-0/nreki init [options] Install per-agent instructions
55
+ npx @ruso-0/nreki deinit Safely remove NREKI hooks before uninstall
56
56
 
57
- Options:
57
+ \`init\` options:
58
+ --agent <name> Force agent: claude | cursor | cline | copilot | generic
59
+ (default: auto-detect via .claude/, .cursor/, .clinerules,
60
+ .github/copilot-instructions.md; falls back to generic)
61
+ --force Rewrite existing NREKI block (default: skip if marker present)
62
+ --dry-run Print plan only, no filesystem writes
63
+
64
+ Global flags:
58
65
  --help, -h Show this help message
59
66
  --version, -v Show version
60
67
  `);
@@ -202,100 +209,34 @@ if (args[0] === "deinit") {
202
209
  }
203
210
  // ─── Init Subcommand ────────────────────────────────────────────────
204
211
  if (args[0] === "init") {
205
- const claudePath = path.join(process.cwd(), "CLAUDE.md");
206
- const marker = "# NREKI ACTIVE";
207
- if (fs.existsSync(claudePath)) {
208
- const existing = fs.readFileSync(claudePath, "utf-8");
209
- if (existing.includes(marker)) {
210
- logger.info("CLAUDE.md already contains NREKI instructions. Skipping CLAUDE.md update.");
211
- }
212
- else {
213
- // Append to existing CLAUDE.md
214
- fs.appendFileSync(claudePath, "\n\n" + getClaudeMdContent(), "utf-8");
215
- logger.info("Appended NREKI instructions to existing CLAUDE.md");
216
- }
217
- }
218
- else {
219
- fs.writeFileSync(claudePath, getClaudeMdContent(), "utf-8");
220
- logger.info("Created CLAUDE.md in " + process.cwd());
221
- }
222
- // ─── AGENTS.md (AI coding agents via MCP: Codex, Gemini, others) ───
223
- const agentsPath = path.join(process.cwd(), "AGENTS.md");
224
- const agentsMarker = "# Instructions for AI coding agents consuming NREKI via MCP";
225
- if (fs.existsSync(agentsPath)) {
226
- const existing = fs.readFileSync(agentsPath, "utf-8");
227
- if (existing.includes(agentsMarker)) {
228
- logger.info("AGENTS.md already contains NREKI instructions. Skipping AGENTS.md update.");
229
- }
230
- else {
231
- fs.appendFileSync(agentsPath, "\n\n" + getAgentsMdContent(), "utf-8");
232
- logger.info("Appended NREKI instructions to existing AGENTS.md");
233
- }
234
- }
235
- else {
236
- fs.writeFileSync(agentsPath, getAgentsMdContent(), "utf-8");
237
- logger.info("Created AGENTS.md in " + process.cwd());
212
+ // v11.3.0: agent-aware init. Detects Claude Code / Cursor / Cline /
213
+ // Copilot via filesystem signals and only writes the files that
214
+ // agent actually reads. --agent overrides detection, --force
215
+ // rewrites existing NREKI blocks, --dry-run previews the plan.
216
+ const { parseInitArgs, runInit, formatAction } = await import("./init/init-runner.js");
217
+ const parsed = parseInitArgs(args.slice(1));
218
+ if (parsed.error) {
219
+ process.stderr.write(`nreki init: ${parsed.error}\n`);
220
+ process.stderr.write("\nUsage: nreki init [--agent <claude|cursor|cline|copilot|generic>] [--force] [--dry-run]\n");
221
+ process.exit(2);
238
222
  }
239
- // ─── SKILL.md (Claude Code Skills system auto-discovery via YAML frontmatter) ───
240
- const skillPath = path.join(process.cwd(), "SKILL.md");
241
- const skillMarker = "name: nreki-optimizer";
242
- if (fs.existsSync(skillPath)) {
243
- const existing = fs.readFileSync(skillPath, "utf-8");
244
- if (existing.includes(skillMarker)) {
245
- logger.info("SKILL.md already contains NREKI optimizer skill. Skipping SKILL.md update.");
246
- }
247
- else {
248
- fs.appendFileSync(skillPath, "\n\n" + getSkillMdContent(), "utf-8");
249
- logger.info("Appended NREKI optimizer skill to existing SKILL.md");
223
+ try {
224
+ const result = runInit(parsed.opts);
225
+ process.stderr.write(`nreki init: ${result.reason}\n`);
226
+ process.stderr.write(` agent: ${result.agent}${parsed.opts.dryRun ? " (dry-run)" : ""}\n`);
227
+ for (const action of result.actions) {
228
+ process.stderr.write(` ${formatAction(action)}\n`);
250
229
  }
251
- }
252
- else {
253
- fs.writeFileSync(skillPath, getSkillMdContent(), "utf-8");
254
- logger.info("Created SKILL.md in " + process.cwd());
255
- }
256
- // ─── INSTALADOR CLI HOOK (Capa 1: Perro Guardián) ───
257
- const claudeHooksDir = path.join(process.cwd(), ".claude", "hooks");
258
- if (!fs.existsSync(claudeHooksDir))
259
- fs.mkdirSync(claudeHooksDir, { recursive: true });
260
- const hookScriptPath = path.join(claudeHooksDir, "nreki-enforcer.mjs");
261
- fs.writeFileSync(hookScriptPath, getEnforcerScriptContent(), "utf-8");
262
- const settingsPath = path.join(process.cwd(), ".claude", "settings.json");
263
- let settings = {};
264
- if (fs.existsSync(settingsPath)) {
265
- try {
266
- const parsed = JSON.parse(fs.readFileSync(settingsPath, "utf-8"));
267
- if (parsed && typeof parsed === "object") {
268
- settings = parsed;
269
- }
230
+ if (result.agent === "generic" && !parsed.opts.agent) {
231
+ process.stderr.write("\nNo agent-specific config detected. If you use Claude Code / Cursor / Cline / Copilot,\n" +
232
+ "re-run with --agent <name> to install the agent-specific files.\n");
270
233
  }
271
- catch { /* malformed JSON — fall through with empty default */ }
234
+ process.exit(0);
272
235
  }
273
- if (!settings.hooks)
274
- settings.hooks = {};
275
- if (!settings.hooks.PreToolUse)
276
- settings.hooks.PreToolUse = [];
277
- const toolsToBlock = ["Read", "ReadFile", "View", "ViewFile", "Write", "WriteFile", "Edit", "EditFile", "Replace"];
278
- for (const tool of toolsToBlock) {
279
- const exists = settings.hooks.PreToolUse.some(h => h.matcher === tool);
280
- if (!exists) {
281
- settings.hooks.PreToolUse.push({
282
- matcher: tool,
283
- hooks: [{ type: "command", command: "node .claude/hooks/nreki-enforcer.mjs" }]
284
- });
285
- }
236
+ catch (err) {
237
+ process.stderr.write(`nreki init failed: ${err.message}\n`);
238
+ process.exit(1);
286
239
  }
287
- fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2), "utf-8");
288
- logger.info("NREKI CLI Hook (Capa 1) installed.");
289
- process.exit(0);
290
- }
291
- function getClaudeMdContent() {
292
- return fs.readFileSync(new URL("../templates/CLAUDE.md", import.meta.url), "utf-8");
293
- }
294
- function getAgentsMdContent() {
295
- return fs.readFileSync(new URL("../templates/AGENTS.md", import.meta.url), "utf-8");
296
- }
297
- function getSkillMdContent() {
298
- return fs.readFileSync(new URL("../templates/SKILL.md", import.meta.url), "utf-8");
299
240
  }
300
241
  // ─── Initialization ─────────────────────────────────────────────────
301
242
  const engine = new NrekiEngine({
@@ -653,12 +594,15 @@ async function main() {
653
594
  parentWatchdog.unref();
654
595
  }
655
596
  // ─── AUTO-PATCH SECURITY HOOK (v10.x) ───
597
+ // v11.3.0: enforcer template now lives at templates/hooks/nreki-enforcer.mjs
598
+ // (read at runtime) instead of being inlined as a TS string literal.
656
599
  try {
657
600
  const hookScriptPath = path.join(process.cwd(), ".claude", "hooks", "nreki-enforcer.mjs");
658
601
  if (fs.existsSync(hookScriptPath)) {
659
602
  const currentHook = fs.readFileSync(hookScriptPath, "utf-8");
660
603
  if (!currentHook.includes("cwdPosix")) {
661
- fs.writeFileSync(hookScriptPath, getEnforcerScriptContent(), "utf-8");
604
+ const upstreamHook = fs.readFileSync(new URL("../templates/hooks/nreki-enforcer.mjs", import.meta.url), "utf-8");
605
+ fs.writeFileSync(hookScriptPath, upstreamHook, "utf-8");
662
606
  logger.info("Auto-patched legacy nreki-enforcer hook for security.");
663
607
  }
664
608
  }
@@ -704,85 +648,6 @@ async function main() {
704
648
  });
705
649
  }
706
650
  }
707
- function getEnforcerScriptContent() {
708
- return `#!/usr/bin/env node
709
- import fs from "fs";
710
- import path from "path";
711
- let stdin = "";
712
- process.stdin.setEncoding("utf8");
713
- process.stdin.on("data", chunk => stdin += chunk);
714
- process.stdin.on("end", () => {
715
- try {
716
- const payload = JSON.parse(stdin);
717
- const tool = payload.tool_name || payload.name || "";
718
- const input = payload.tool_input || payload.input || {};
719
- const targetPath = input.file_path || input.path || input.file || input.target_file || input.absolute_path;
720
- if (!targetPath) process.exit(0);
721
- let absPath;
722
- let size = 0;
723
- try {
724
- absPath = path.resolve(process.cwd(), targetPath).replace(/\\\\/g, "/");
725
- const cwdPosix = process.cwd().replace(/\\\\/g, "/");
726
- // v10.13.1: Windows path.resolve no normaliza case del drive letter.
727
- // Comparar case-insensitive SOLO en win32 evita falsos positivos con
728
- // "d:/Nreki/..." vs "D:/Nreki/..." sin afectar semántica en POSIX.
729
- const isWin = process.platform === "win32";
730
- const checkAbs = isWin ? absPath.toLowerCase() : absPath;
731
- const checkCwd = isWin ? cwdPosix.toLowerCase() : cwdPosix;
732
- if (!checkAbs.startsWith(checkCwd + "/") && checkAbs !== checkCwd) {
733
- console.error("Blocked: Path traversal attempt.");
734
- process.exit(2);
735
- }
736
- size = fs.statSync(absPath).size;
737
- } catch {
738
- process.exit(0);
739
- }
740
- if (size < 1024) process.exit(0);
741
- if (size > 500000) {
742
- if (/^(Write|Edit|Replace)(File)?$/i.test(tool)) {
743
- console.error("Blocked: native writes forbidden on >100 line files.\n" +
744
- "Required: use NREKI semantic editing. Emit:\n" +
745
- "nreki_code action:\"edit\" path:\"" + targetPath + "\" symbol:\"<symbol_name_from_outline>\"\n" +
746
- "Run nreki_navigate action:\"outline\" path:\"" + targetPath + "\" first to find symbol names.");
747
- process.exit(2);
748
- }
749
- if (/^(Read|View)(File)?$/i.test(tool) || tool === "read_file") {
750
- console.error("Blocked: file is >100 lines. Raw read would burn context budget.\n" +
751
- "Required: focused compression. Emit:\n" +
752
- "nreki_code action:\"compress\" path:\"" + targetPath + "\" focus:\"<symbol_name_from_outline>\"\n" +
753
- "Run nreki_navigate action:\"outline\" path:\"" + targetPath + "\" first to find symbol names.");
754
- process.exit(2);
755
- }
756
- process.exit(0);
757
- }
758
- const buf = fs.readFileSync(absPath);
759
- let lines = 1;
760
- for (let i = 0; i < buf.length; i++) {
761
- if (buf[i] === 10) lines++;
762
- if (lines >= 100) break;
763
- }
764
- if (lines < 100) process.exit(0);
765
- if (/^(Write|Edit|Replace)(File)?$/i.test(tool)) {
766
- console.error("Blocked: native writes forbidden on >100 line files.\n" +
767
- "Required: use NREKI semantic editing. Emit:\n" +
768
- "nreki_code action:\"edit\" path:\"" + targetPath + "\" symbol:\"<symbol_name_from_outline>\"\n" +
769
- "Run nreki_navigate action:\"outline\" path:\"" + targetPath + "\" first to find symbol names.");
770
- process.exit(2);
771
- }
772
- if (/^(Read|View)(File)?$/i.test(tool) || tool === "read_file") {
773
- console.error("Blocked: file is >100 lines. Raw read would burn context budget.\n" +
774
- "Required: focused compression. Emit:\n" +
775
- "nreki_code action:\"compress\" path:\"" + targetPath + "\" focus:\"<symbol_name_from_outline>\"\n" +
776
- "Run nreki_navigate action:\"outline\" path:\"" + targetPath + "\" first to find symbol names.");
777
- process.exit(2);
778
- }
779
- process.exit(0);
780
- } catch (e) {
781
- process.exit(0);
782
- }
783
- });
784
- `;
785
- }
786
651
  // v11.2.1: defensive process-level handlers. The MCP transport speaks
787
652
  // JSON-RPC over stdio, so any unhandled rejection or uncaught exception
788
653
  // that escapes a tool handler would otherwise terminate the process and
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * init/agent-detect.ts — detect which AI coding agent a project uses
3
+ * so `nreki init` can drop instructions in the format that agent reads.
4
+ *
5
+ * Detection is conservative: a positive signal (config dir or rules file
6
+ * already present on disk) wins. When no signal is present we fall back
7
+ * to "generic" (AGENTS.md) and the caller surfaces an honest disclosure
8
+ * so the user can re-run with --agent <name> if the guess is wrong.
9
+ */
10
+ export type DetectedAgent = "claude" | "cursor" | "cline" | "copilot" | "generic";
11
+ export interface AgentDetectionResult {
12
+ agent: DetectedAgent;
13
+ reason: string;
14
+ detected: DetectedAgent[];
15
+ }
16
+ /**
17
+ * Detect which agent(s) a project is configured for by inspecting disk.
18
+ * Returns the FIRST match in priority order and the full list of signals
19
+ * found so the caller can report ambiguity to the user.
20
+ */
21
+ export declare function detectAgent(cwd?: string): AgentDetectionResult;
22
+ /** True if `name` is one of the known agent ids. */
23
+ export declare function isKnownAgent(name: string): name is DetectedAgent;
24
+ //# sourceMappingURL=agent-detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-detect.d.ts","sourceRoot":"","sources":["../../src/init/agent-detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,MAAM,MAAM,aAAa,GACnB,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,SAAS,CAAC;AAEhB,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC7B;AAMD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,oBAAoB,CA+B7E;AAED,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,aAAa,CAEhE"}