@ruso-0/nreki 7.1.2 → 7.3.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 (87) hide show
  1. package/CHANGELOG.md +805 -774
  2. package/README.md +308 -442
  3. package/dist/ast-sandbox.d.ts.map +1 -1
  4. package/dist/ast-sandbox.js +17 -1
  5. package/dist/ast-sandbox.js.map +1 -1
  6. package/dist/audit.d.ts.map +1 -1
  7. package/dist/audit.js +10 -4
  8. package/dist/audit.js.map +1 -1
  9. package/dist/chronos-memory.d.ts.map +1 -1
  10. package/dist/chronos-memory.js +10 -2
  11. package/dist/chronos-memory.js.map +1 -1
  12. package/dist/compressor.d.ts.map +1 -1
  13. package/dist/compressor.js +13 -1
  14. package/dist/compressor.js.map +1 -1
  15. package/dist/database.d.ts +12 -1
  16. package/dist/database.d.ts.map +1 -1
  17. package/dist/database.js +81 -29
  18. package/dist/database.js.map +1 -1
  19. package/dist/embedder.d.ts.map +1 -1
  20. package/dist/embedder.js +7 -2
  21. package/dist/embedder.js.map +1 -1
  22. package/dist/handlers/code.d.ts.map +1 -1
  23. package/dist/handlers/code.js +198 -243
  24. package/dist/handlers/code.js.map +1 -1
  25. package/dist/handlers/guard.d.ts.map +1 -1
  26. package/dist/handlers/guard.js +10 -1
  27. package/dist/handlers/guard.js.map +1 -1
  28. package/dist/hologram/shadow-generator.d.ts.map +1 -1
  29. package/dist/hologram/shadow-generator.js +20 -1
  30. package/dist/hologram/shadow-generator.js.map +1 -1
  31. package/dist/kernel/backends/lsp-sidecar-base.d.ts +49 -5
  32. package/dist/kernel/backends/lsp-sidecar-base.d.ts.map +1 -1
  33. package/dist/kernel/backends/lsp-sidecar-base.js +209 -69
  34. package/dist/kernel/backends/lsp-sidecar-base.js.map +1 -1
  35. package/dist/kernel/backends/ts-compiler-wrapper.d.ts +1 -1
  36. package/dist/kernel/backends/ts-compiler-wrapper.d.ts.map +1 -1
  37. package/dist/kernel/backends/ts-compiler-wrapper.js +7 -4
  38. package/dist/kernel/backends/ts-compiler-wrapper.js.map +1 -1
  39. package/dist/kernel/backends/ts-corsa-sidecar.d.ts +26 -0
  40. package/dist/kernel/backends/ts-corsa-sidecar.d.ts.map +1 -0
  41. package/dist/kernel/backends/ts-corsa-sidecar.js +30 -0
  42. package/dist/kernel/backends/ts-corsa-sidecar.js.map +1 -0
  43. package/dist/kernel/nreki-kernel.d.ts +37 -0
  44. package/dist/kernel/nreki-kernel.d.ts.map +1 -1
  45. package/dist/kernel/nreki-kernel.js +669 -290
  46. package/dist/kernel/nreki-kernel.js.map +1 -1
  47. package/dist/kernel/spectral-topology.d.ts.map +1 -1
  48. package/dist/kernel/spectral-topology.js +32 -16
  49. package/dist/kernel/spectral-topology.js.map +1 -1
  50. package/dist/middleware/circuit-breaker.d.ts.map +1 -1
  51. package/dist/middleware/circuit-breaker.js +18 -2
  52. package/dist/middleware/circuit-breaker.js.map +1 -1
  53. package/dist/middleware/file-lock.d.ts.map +1 -1
  54. package/dist/middleware/file-lock.js +8 -3
  55. package/dist/middleware/file-lock.js.map +1 -1
  56. package/dist/monitor.d.ts.map +1 -1
  57. package/dist/monitor.js +1 -0
  58. package/dist/monitor.js.map +1 -1
  59. package/dist/parser.d.ts.map +1 -1
  60. package/dist/parser.js +19 -2
  61. package/dist/parser.js.map +1 -1
  62. package/dist/pin-memory.d.ts +2 -2
  63. package/dist/pin-memory.d.ts.map +1 -1
  64. package/dist/pin-memory.js.map +1 -1
  65. package/dist/repo-map.d.ts.map +1 -1
  66. package/dist/repo-map.js +26 -0
  67. package/dist/repo-map.js.map +1 -1
  68. package/dist/router.d.ts.map +1 -1
  69. package/dist/router.js +58 -18
  70. package/dist/router.js.map +1 -1
  71. package/dist/undo.js +1 -1
  72. package/dist/undo.js.map +1 -1
  73. package/dist/utils/imports.d.ts.map +1 -1
  74. package/dist/utils/imports.js +8 -4
  75. package/dist/utils/imports.js.map +1 -1
  76. package/dist/utils/latency-tracker.d.ts +22 -0
  77. package/dist/utils/latency-tracker.d.ts.map +1 -0
  78. package/dist/utils/latency-tracker.js +49 -0
  79. package/dist/utils/latency-tracker.js.map +1 -0
  80. package/dist/utils/logger.d.ts +5 -2
  81. package/dist/utils/logger.d.ts.map +1 -1
  82. package/dist/utils/logger.js +29 -6
  83. package/dist/utils/logger.js.map +1 -1
  84. package/dist/utils/path-jail.d.ts.map +1 -1
  85. package/dist/utils/path-jail.js +3 -0
  86. package/dist/utils/path-jail.js.map +1 -1
  87. package/package.json +96 -79
@@ -0,0 +1,22 @@
1
+ /**
2
+ * latency-tracker.ts — Lightweight operation latency accumulator.
3
+ *
4
+ * Records timing for the last N operations and computes P50/P95/P99 percentiles.
5
+ * Used by nreki_guard action:"status" to surface performance telemetry.
6
+ * Zero external dependencies.
7
+ */
8
+ declare class LatencyTracker {
9
+ private samples;
10
+ record(op: string, ms: number): void;
11
+ getStats(op?: string): {
12
+ count: number;
13
+ p50: number;
14
+ p95: number;
15
+ p99: number;
16
+ avg: number;
17
+ } | null;
18
+ getSummary(): string;
19
+ }
20
+ export declare const latencyTracker: LatencyTracker;
21
+ export {};
22
+ //# sourceMappingURL=latency-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latency-tracker.d.ts","sourceRoot":"","sources":["../../src/utils/latency-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,cAAM,cAAc;IAChB,OAAO,CAAC,OAAO,CAAsB;IAErC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAOpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAmBnG,UAAU,IAAI,MAAM;CAcvB;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * latency-tracker.ts — Lightweight operation latency accumulator.
3
+ *
4
+ * Records timing for the last N operations and computes P50/P95/P99 percentiles.
5
+ * Used by nreki_guard action:"status" to surface performance telemetry.
6
+ * Zero external dependencies.
7
+ */
8
+ const MAX_SAMPLES = 200;
9
+ class LatencyTracker {
10
+ samples = [];
11
+ record(op, ms) {
12
+ this.samples.push({ op, ms, ts: Date.now() });
13
+ if (this.samples.length > MAX_SAMPLES) {
14
+ this.samples.shift();
15
+ }
16
+ }
17
+ getStats(op) {
18
+ const filtered = op
19
+ ? this.samples.filter(s => s.op === op)
20
+ : this.samples;
21
+ if (filtered.length === 0)
22
+ return null;
23
+ const sorted = filtered.map(s => s.ms).sort((a, b) => a - b);
24
+ const n = sorted.length;
25
+ return {
26
+ count: n,
27
+ p50: sorted[Math.floor(n * 0.50)] ?? 0,
28
+ p95: sorted[Math.floor(n * 0.95)] ?? 0,
29
+ p99: sorted[Math.floor(n * 0.99)] ?? 0,
30
+ avg: Math.round(sorted.reduce((a, b) => a + b, 0) / n),
31
+ };
32
+ }
33
+ getSummary() {
34
+ const ops = new Set(this.samples.map(s => s.op));
35
+ if (ops.size === 0)
36
+ return " No operations recorded yet.";
37
+ const lines = [];
38
+ for (const op of ops) {
39
+ const stats = this.getStats(op);
40
+ if (!stats)
41
+ continue;
42
+ lines.push(` ${op}: ${stats.count} ops, avg=${stats.avg}ms, p50=${stats.p50}ms, p95=${stats.p95}ms, p99=${stats.p99}ms`);
43
+ }
44
+ return lines.join("\n");
45
+ }
46
+ }
47
+ // Singleton
48
+ export const latencyTracker = new LatencyTracker();
49
+ //# sourceMappingURL=latency-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latency-tracker.js","sourceRoot":"","sources":["../../src/utils/latency-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,GAAG,GAAG,CAAC;AAQxB,MAAM,cAAc;IACR,OAAO,GAAmB,EAAE,CAAC;IAErC,MAAM,CAAC,EAAU,EAAE,EAAU;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,EAAW;QAChB,MAAM,QAAQ,GAAG,EAAE;YACf,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAEnB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEvC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAExB,OAAO;YACH,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;YACtC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;YACtC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;YACtC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SACzD,CAAC;IACN,CAAC;IAED,UAAU;QACN,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,+BAA+B,CAAC;QAE3D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,KAAK,CAAC,IAAI,CACN,QAAQ,EAAE,KAAK,KAAK,CAAC,KAAK,aAAa,KAAK,CAAC,GAAG,WAAW,KAAK,CAAC,GAAG,WAAW,KAAK,CAAC,GAAG,WAAW,KAAK,CAAC,GAAG,IAAI,CACnH,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACJ;AAED,YAAY;AACZ,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC"}
@@ -1,12 +1,15 @@
1
1
  /**
2
- * logger.ts — Lightweight stderr-only logger
2
+ * logger.ts — Lightweight stderr-only logger with structured output
3
3
  *
4
4
  * MCP requires stdout to be EXCLUSIVELY JSON-RPC.
5
5
  * All diagnostic output goes through process.stderr.write().
6
6
  * Zero external dependencies (no winston, no pino).
7
7
  *
8
- * NREKI_DEBUG=1 enables debug-level output.
8
+ * NREKI_DEBUG=1 enables debug-level output.
9
+ * NREKI_LOG_FORMAT=json outputs JSON lines for machine parsing.
9
10
  */
11
+ export declare function setTxId(id: string): void;
12
+ export declare function clearTxId(): void;
10
13
  export declare const logger: {
11
14
  info: (msg: string) => void;
12
15
  warn: (msg: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,MAAM;gBACH,MAAM,KAAG,IAAI;gBAGb,MAAM,KAAG,IAAI;iBAGZ,MAAM,QAAQ,OAAO,KAAG,IAAI;iBAI5B,MAAM,KAAG,IAAI;CAG7B,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAgB;AACzD,wBAAgB,SAAS,IAAI,IAAI,CAAgB;AAejD,eAAO,MAAM,MAAM;gBACH,MAAM,KAAG,IAAI;gBAGb,MAAM,KAAG,IAAI;iBAGZ,MAAM,QAAQ,OAAO,KAAG,IAAI;iBAI5B,MAAM,KAAG,IAAI;CAG7B,CAAC"}
@@ -1,26 +1,49 @@
1
1
  /**
2
- * logger.ts — Lightweight stderr-only logger
2
+ * logger.ts — Lightweight stderr-only logger with structured output
3
3
  *
4
4
  * MCP requires stdout to be EXCLUSIVELY JSON-RPC.
5
5
  * All diagnostic output goes through process.stderr.write().
6
6
  * Zero external dependencies (no winston, no pino).
7
7
  *
8
- * NREKI_DEBUG=1 enables debug-level output.
8
+ * NREKI_DEBUG=1 enables debug-level output.
9
+ * NREKI_LOG_FORMAT=json outputs JSON lines for machine parsing.
9
10
  */
11
+ const iso = () => new Date().toISOString();
12
+ const compact = () => iso().slice(11, 23); // HH:MM:SS.mmm
13
+ const isJson = process.env.NREKI_LOG_FORMAT === "json";
14
+ // ─── Transaction context (set per interceptAtomicBatch) ──────────
15
+ let _txId = "";
16
+ export function setTxId(id) { _txId = id; }
17
+ export function clearTxId() { _txId = ""; }
18
+ function emit(level, msg, trace) {
19
+ if (isJson) {
20
+ const obj = { level, ts: iso(), msg };
21
+ if (_txId)
22
+ obj.txId = _txId;
23
+ if (trace)
24
+ obj.trace = trace;
25
+ process.stderr.write(JSON.stringify(obj) + "\n");
26
+ }
27
+ else {
28
+ const tx = _txId ? ` tx:${_txId}` : "";
29
+ const suffix = trace ?? "";
30
+ process.stderr.write(`[NREKI:${level} ${compact()}${tx}] ${msg}${suffix}\n`);
31
+ }
32
+ }
10
33
  export const logger = {
11
34
  info: (msg) => {
12
- process.stderr.write(`[NREKI:INFO] ${msg}\n`);
35
+ emit("INFO", msg);
13
36
  },
14
37
  warn: (msg) => {
15
- process.stderr.write(`[NREKI:WARN] ${msg}\n`);
38
+ emit("WARN", msg);
16
39
  },
17
40
  error: (msg, err) => {
18
41
  const trace = err instanceof Error ? ` ${err.stack}` : (err ? ` ${err}` : "");
19
- process.stderr.write(`[NREKI:ERROR] ${msg}${trace}\n`);
42
+ emit("ERROR", msg, trace || undefined);
20
43
  },
21
44
  debug: (msg) => {
22
45
  if (process.env.NREKI_DEBUG)
23
- process.stderr.write(`[NREKI:DEBUG] ${msg}\n`);
46
+ emit("DEBUG", msg);
24
47
  },
25
48
  };
26
49
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,IAAI,EAAE,CAAC,GAAW,EAAQ,EAAE;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,EAAE,CAAC,GAAW,EAAQ,EAAE;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,KAAK,EAAE,CAAC,GAAW,EAAE,GAAa,EAAQ,EAAE;QACxC,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,KAAK,EAAE,CAAC,GAAW,EAAQ,EAAE;QACzB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAChF,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,GAAG,GAAG,GAAW,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACnD,MAAM,OAAO,GAAG,GAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe;AAClE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,MAAM,CAAC;AAEvD,oEAAoE;AACpE,IAAI,KAAK,GAAG,EAAE,CAAC;AACf,MAAM,UAAU,OAAO,CAAC,EAAU,IAAU,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;AACzD,MAAM,UAAU,SAAS,KAAW,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;AAEjD,SAAS,IAAI,CAAC,KAAa,EAAE,GAAW,EAAE,KAAc;IACpD,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,GAAG,GAA2B,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC;QAC9D,IAAI,KAAK;YAAE,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;QAC5B,IAAI,KAAK;YAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACJ,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC;IACjF,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,IAAI,EAAE,CAAC,GAAW,EAAQ,EAAE;QACxB,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,IAAI,EAAE,CAAC,GAAW,EAAQ,EAAE;QACxB,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,KAAK,EAAE,CAAC,GAAW,EAAE,GAAa,EAAQ,EAAE;QACxC,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,EAAE,CAAC,GAAW,EAAQ,EAAE;QACzB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW;YAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;CACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"path-jail.d.ts","sourceRoot":"","sources":["../../src/utils/path-jail.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4BH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAoEzE"}
1
+ {"version":3,"file":"path-jail.d.ts","sourceRoot":"","sources":["../../src/utils/path-jail.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA+BH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAoEzE"}
@@ -27,6 +27,9 @@ const SENSITIVE_PATTERNS = [
27
27
  /[/\\]\.htpasswd$/i, // Apache password file
28
28
  /[/\\]\.git-credentials$/i, // Git credential file
29
29
  /[/\\]\.kube[/\\]config$/i, // Kubernetes config
30
+ /\.age$/i, // age encryption keys
31
+ /[/\\]vault-token$/i, // HashiCorp Vault token
32
+ /[/\\]\.terraform[/\\]/i, // Terraform state (may contain secrets)
30
33
  ];
31
34
  /**
32
35
  * Check if a file path matches known sensitive file patterns.
@@ -1 +1 @@
1
- {"version":3,"file":"path-jail.js","sourceRoot":"","sources":["../../src/utils/path-jail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"path-jail.js","sourceRoot":"","sources":["../../src/utils/path-jail.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,79 +1,96 @@
1
- {
2
- "name": "@ruso-0/nreki",
3
- "version": "7.1.2",
4
- "description": "MCP server that validates AI agent edits in RAM before they reach disk. Cross-file semantic checks via TypeScript Compiler API. Auto-fixes structural errors. Zero cloud dependencies.",
5
- "main": "dist/index.js",
6
- "type": "module",
7
- "bin": {
8
- "nreki": "dist/index.js"
9
- },
10
- "scripts": {
11
- "build": "tsc",
12
- "start": "node dist/index.js",
13
- "dev": "tsx src/index.ts",
14
- "test": "vitest run",
15
- "test:watch": "vitest",
16
- "postinstall": "node scripts/download-wasm.js",
17
- "lint": "tsc --noEmit",
18
- "benchmark:spectral": "tsx tests/benchmark-spectral.ts",
19
- "benchmark:external": "tsx tests/benchmark-spectral-external.ts",
20
- "benchmark:precision": "tsx tests/benchmark-precision.ts"
21
- },
22
- "keywords": [
23
- "nreki",
24
- "mcp",
25
- "claude-code",
26
- "ai-safety",
27
- "ast-validation",
28
- "semantic-verification",
29
- "acid-transactions",
30
- "vfs",
31
- "typescript-compiler",
32
- "circuit-breaker",
33
- "tree-sitter",
34
- "pagerank",
35
- "blast-radius",
36
- "code-safety",
37
- "surgical-edit",
38
- "auto-healing",
39
- "zero-token",
40
- "codefix"
41
- ],
42
- "author": "Jherson Eddie Tintaya Holguin (https://github.com/Ruso-0)",
43
- "license": "Apache-2.0",
44
- "dependencies": {
45
- "@modelcontextprotocol/sdk": "^1.12.1",
46
- "chokidar": "^4.0.3",
47
- "picomatch": "^4.0.3",
48
- "sql.js": "^1.12.0",
49
- "tree-sitter-wasms": "^0.1.13",
50
- "typescript": "^5.9.3",
51
- "web-tree-sitter": "^0.24.7",
52
- "zod": "^3.24.2"
53
- },
54
- "optionalDependencies": {
55
- "@xenova/transformers": "^2.17.2"
56
- },
57
- "devDependencies": {
58
- "@types/node": "^22.13.10",
59
- "@types/picomatch": "^4.0.2",
60
- "tsx": "^4.19.3",
61
- "vitest": "^4.1.1"
62
- },
63
- "files": [
64
- "dist/",
65
- "wasm/",
66
- "templates/",
67
- "scripts/download-wasm.js",
68
- "README.md",
69
- "LICENSE",
70
- "CHANGELOG.md"
71
- ],
72
- "engines": {
73
- "node": ">=20.0.0"
74
- },
75
- "repository": {
76
- "type": "git",
77
- "url": "https://github.com/Ruso-0/nreki"
78
- }
79
- }
1
+ {
2
+ "name": "@ruso-0/nreki",
3
+ "version": "7.3.0",
4
+ "description": "MCP plugin that validates AI agent edits in RAM before they touch disk. Cross-file semantic checks for TypeScript, Go (gopls), and Python (pyright). Auto-healing, type regression detection, and spectral topology. Zero cloud dependencies.",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "nreki": "dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "start": "node dist/index.js",
13
+ "dev": "tsx src/index.ts",
14
+ "test": "vitest run",
15
+ "test:watch": "vitest",
16
+ "postinstall": "node scripts/download-wasm.js",
17
+ "lint": "tsc --noEmit",
18
+ "benchmark:spectral": "tsx tests/benchmark-spectral.ts",
19
+ "benchmark:external": "tsx tests/benchmark-spectral-external.ts",
20
+ "benchmark:precision": "tsx tests/benchmark-precision.ts"
21
+ },
22
+ "keywords": [
23
+ "nreki",
24
+ "mcp",
25
+ "claude-code",
26
+ "cursor",
27
+ "copilot",
28
+ "ai-safety",
29
+ "ai-coding-agent",
30
+ "ast-validation",
31
+ "semantic-verification",
32
+ "acid-transactions",
33
+ "vfs",
34
+ "typescript-compiler",
35
+ "gopls",
36
+ "pyright",
37
+ "multi-language",
38
+ "circuit-breaker",
39
+ "tree-sitter",
40
+ "pagerank",
41
+ "blast-radius",
42
+ "code-safety",
43
+ "surgical-edit",
44
+ "auto-healing",
45
+ "type-regression",
46
+ "spectral-topology",
47
+ "fiedler-vector",
48
+ "topology-aware-rag",
49
+ "lsp-sidecar"
50
+ ],
51
+ "author": "Jherson Eddie Tintaya Holguin (https://github.com/Ruso-0)",
52
+ "license": "Apache-2.0",
53
+ "dependencies": {
54
+ "@modelcontextprotocol/sdk": "^1.12.1",
55
+ "chokidar": "^4.0.3",
56
+ "picomatch": "^4.0.3",
57
+ "sql.js": "^1.12.0",
58
+ "tree-sitter-wasms": "^0.1.13",
59
+ "web-tree-sitter": "^0.24.7",
60
+ "zod": "^3.24.2"
61
+ },
62
+ "peerDependencies": {
63
+ "typescript": ">=5.5.0"
64
+ },
65
+ "peerDependenciesMeta": {
66
+ "typescript": {
67
+ "optional": false
68
+ }
69
+ },
70
+ "optionalDependencies": {
71
+ "@xenova/transformers": "^2.17.2"
72
+ },
73
+ "devDependencies": {
74
+ "@types/node": "^22.13.10",
75
+ "@types/picomatch": "^4.0.2",
76
+ "tsx": "^4.19.3",
77
+ "typescript": "^5.9.3",
78
+ "vitest": "^4.1.1"
79
+ },
80
+ "files": [
81
+ "dist/",
82
+ "wasm/",
83
+ "templates/",
84
+ "scripts/download-wasm.js",
85
+ "README.md",
86
+ "LICENSE",
87
+ "CHANGELOG.md"
88
+ ],
89
+ "engines": {
90
+ "node": ">=20.0.0"
91
+ },
92
+ "repository": {
93
+ "type": "git",
94
+ "url": "https://github.com/Ruso-0/nreki"
95
+ }
96
+ }