@ruso-0/nreki 6.0.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 (150) hide show
  1. package/CHANGELOG.md +648 -0
  2. package/LICENSE +21 -0
  3. package/README.md +425 -0
  4. package/dist/ast-navigator.d.ts +29 -0
  5. package/dist/ast-navigator.d.ts.map +1 -0
  6. package/dist/ast-navigator.js +279 -0
  7. package/dist/ast-navigator.js.map +1 -0
  8. package/dist/ast-sandbox.d.ts +74 -0
  9. package/dist/ast-sandbox.d.ts.map +1 -0
  10. package/dist/ast-sandbox.js +242 -0
  11. package/dist/ast-sandbox.js.map +1 -0
  12. package/dist/chronos-memory.d.ts +69 -0
  13. package/dist/chronos-memory.d.ts.map +1 -0
  14. package/dist/chronos-memory.js +247 -0
  15. package/dist/chronos-memory.js.map +1 -0
  16. package/dist/circuit-breaker.d.ts +107 -0
  17. package/dist/circuit-breaker.d.ts.map +1 -0
  18. package/dist/circuit-breaker.js +330 -0
  19. package/dist/circuit-breaker.js.map +1 -0
  20. package/dist/compressor-advanced.d.ts +80 -0
  21. package/dist/compressor-advanced.d.ts.map +1 -0
  22. package/dist/compressor-advanced.js +555 -0
  23. package/dist/compressor-advanced.js.map +1 -0
  24. package/dist/compressor.d.ts +81 -0
  25. package/dist/compressor.d.ts.map +1 -0
  26. package/dist/compressor.js +227 -0
  27. package/dist/compressor.js.map +1 -0
  28. package/dist/database.d.ts +169 -0
  29. package/dist/database.d.ts.map +1 -0
  30. package/dist/database.js +1029 -0
  31. package/dist/database.js.map +1 -0
  32. package/dist/embedder.d.ts +73 -0
  33. package/dist/embedder.d.ts.map +1 -0
  34. package/dist/embedder.js +165 -0
  35. package/dist/embedder.js.map +1 -0
  36. package/dist/engine.d.ts +224 -0
  37. package/dist/engine.d.ts.map +1 -0
  38. package/dist/engine.js +582 -0
  39. package/dist/engine.js.map +1 -0
  40. package/dist/hologram/harvester.d.ts +41 -0
  41. package/dist/hologram/harvester.d.ts.map +1 -0
  42. package/dist/hologram/harvester.js +129 -0
  43. package/dist/hologram/harvester.js.map +1 -0
  44. package/dist/hologram/shadow-cache.d.ts +49 -0
  45. package/dist/hologram/shadow-cache.d.ts.map +1 -0
  46. package/dist/hologram/shadow-cache.js +165 -0
  47. package/dist/hologram/shadow-cache.js.map +1 -0
  48. package/dist/hologram/shadow-generator.d.ts +32 -0
  49. package/dist/hologram/shadow-generator.d.ts.map +1 -0
  50. package/dist/hologram/shadow-generator.js +828 -0
  51. package/dist/hologram/shadow-generator.js.map +1 -0
  52. package/dist/hooks/preToolUse.d.ts +63 -0
  53. package/dist/hooks/preToolUse.d.ts.map +1 -0
  54. package/dist/hooks/preToolUse.js +103 -0
  55. package/dist/hooks/preToolUse.js.map +1 -0
  56. package/dist/index.d.ts +19 -0
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +367 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/kernel/kernel-manager.d.ts +52 -0
  61. package/dist/kernel/kernel-manager.d.ts.map +1 -0
  62. package/dist/kernel/kernel-manager.js +197 -0
  63. package/dist/kernel/kernel-manager.js.map +1 -0
  64. package/dist/kernel/kernel-worker.d.ts +9 -0
  65. package/dist/kernel/kernel-worker.d.ts.map +1 -0
  66. package/dist/kernel/kernel-worker.js +76 -0
  67. package/dist/kernel/kernel-worker.js.map +1 -0
  68. package/dist/kernel/nreki-kernel.d.ts +244 -0
  69. package/dist/kernel/nreki-kernel.d.ts.map +1 -0
  70. package/dist/kernel/nreki-kernel.js +1656 -0
  71. package/dist/kernel/nreki-kernel.js.map +1 -0
  72. package/dist/middleware/circuit-breaker.d.ts +32 -0
  73. package/dist/middleware/circuit-breaker.d.ts.map +1 -0
  74. package/dist/middleware/circuit-breaker.js +160 -0
  75. package/dist/middleware/circuit-breaker.js.map +1 -0
  76. package/dist/middleware/file-lock.d.ts +33 -0
  77. package/dist/middleware/file-lock.d.ts.map +1 -0
  78. package/dist/middleware/file-lock.js +55 -0
  79. package/dist/middleware/file-lock.js.map +1 -0
  80. package/dist/middleware/validator.d.ts +26 -0
  81. package/dist/middleware/validator.d.ts.map +1 -0
  82. package/dist/middleware/validator.js +39 -0
  83. package/dist/middleware/validator.js.map +1 -0
  84. package/dist/monitor.d.ts +94 -0
  85. package/dist/monitor.d.ts.map +1 -0
  86. package/dist/monitor.js +221 -0
  87. package/dist/monitor.js.map +1 -0
  88. package/dist/parser-pool.d.ts +28 -0
  89. package/dist/parser-pool.d.ts.map +1 -0
  90. package/dist/parser-pool.js +81 -0
  91. package/dist/parser-pool.js.map +1 -0
  92. package/dist/parser.d.ts +91 -0
  93. package/dist/parser.d.ts.map +1 -0
  94. package/dist/parser.js +311 -0
  95. package/dist/parser.js.map +1 -0
  96. package/dist/pin-memory.d.ts +35 -0
  97. package/dist/pin-memory.d.ts.map +1 -0
  98. package/dist/pin-memory.js +161 -0
  99. package/dist/pin-memory.js.map +1 -0
  100. package/dist/repo-map.d.ts +81 -0
  101. package/dist/repo-map.d.ts.map +1 -0
  102. package/dist/repo-map.js +550 -0
  103. package/dist/repo-map.js.map +1 -0
  104. package/dist/router.d.ts +102 -0
  105. package/dist/router.d.ts.map +1 -0
  106. package/dist/router.js +1989 -0
  107. package/dist/router.js.map +1 -0
  108. package/dist/semantic-edit.d.ts +82 -0
  109. package/dist/semantic-edit.d.ts.map +1 -0
  110. package/dist/semantic-edit.js +529 -0
  111. package/dist/semantic-edit.js.map +1 -0
  112. package/dist/terminal-filter.d.ts +27 -0
  113. package/dist/terminal-filter.d.ts.map +1 -0
  114. package/dist/terminal-filter.js +257 -0
  115. package/dist/terminal-filter.js.map +1 -0
  116. package/dist/undo.d.ts +21 -0
  117. package/dist/undo.d.ts.map +1 -0
  118. package/dist/undo.js +55 -0
  119. package/dist/undo.js.map +1 -0
  120. package/dist/utils/code-tokenizer.d.ts +25 -0
  121. package/dist/utils/code-tokenizer.d.ts.map +1 -0
  122. package/dist/utils/code-tokenizer.js +52 -0
  123. package/dist/utils/code-tokenizer.js.map +1 -0
  124. package/dist/utils/file-filter.d.ts +23 -0
  125. package/dist/utils/file-filter.d.ts.map +1 -0
  126. package/dist/utils/file-filter.js +48 -0
  127. package/dist/utils/file-filter.js.map +1 -0
  128. package/dist/utils/imports.d.ts +32 -0
  129. package/dist/utils/imports.d.ts.map +1 -0
  130. package/dist/utils/imports.js +155 -0
  131. package/dist/utils/imports.js.map +1 -0
  132. package/dist/utils/path-jail.d.ts +27 -0
  133. package/dist/utils/path-jail.d.ts.map +1 -0
  134. package/dist/utils/path-jail.js +95 -0
  135. package/dist/utils/path-jail.js.map +1 -0
  136. package/dist/utils/read-source.d.ts +18 -0
  137. package/dist/utils/read-source.d.ts.map +1 -0
  138. package/dist/utils/read-source.js +22 -0
  139. package/dist/utils/read-source.js.map +1 -0
  140. package/dist/utils/safe-parse.d.ts +20 -0
  141. package/dist/utils/safe-parse.d.ts.map +1 -0
  142. package/dist/utils/safe-parse.js +25 -0
  143. package/dist/utils/safe-parse.js.map +1 -0
  144. package/package.json +75 -0
  145. package/scripts/download-wasm.js +46 -0
  146. package/wasm/.gitkeep +0 -0
  147. package/wasm/tree-sitter-go.wasm +0 -0
  148. package/wasm/tree-sitter-javascript.wasm +0 -0
  149. package/wasm/tree-sitter-python.wasm +0 -0
  150. package/wasm/tree-sitter-typescript.wasm +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * kernel-manager.ts - Main-thread proxy for NrekiKernel running in a worker thread.
3
+ *
4
+ * Routes operations to an active worker thread. Supports:
5
+ * - 30s execution timeout per operation
6
+ * - Optional shadow standby worker for instant failover
7
+ * - Livelock blacklist (edit hash → timestamp, 5-min expiry)
8
+ *
9
+ * All state lives in the worker heap. The manager is stateless.
10
+ */
11
+ import type { NrekiEdit, NrekiInterceptResult } from "./nreki-kernel.js";
12
+ export declare class KernelManager {
13
+ private worker;
14
+ private pending;
15
+ private nextId;
16
+ private projectRoot;
17
+ private mode;
18
+ private executionTimeoutMs;
19
+ private livelockBlacklist;
20
+ private booted;
21
+ healingStats: {
22
+ applied: number;
23
+ failed: number;
24
+ };
25
+ constructor(opts: {
26
+ projectRoot: string;
27
+ mode?: string;
28
+ executionTimeoutMs?: number;
29
+ });
30
+ /** Spawn the worker and wait for it to boot. */
31
+ boot(): Promise<void>;
32
+ private spawnWorker;
33
+ private handleMessage;
34
+ private handleWorkerError;
35
+ private send;
36
+ /** Prune expired entries from the livelock blacklist (default 5 minutes). */
37
+ private pruneBlacklist;
38
+ private hashEdits;
39
+ isBooted(): boolean;
40
+ interceptAtomicBatch(edits: NrekiEdit[]): Promise<NrekiInterceptResult>;
41
+ commitToDisk(): Promise<void>;
42
+ rollbackAll(): Promise<void>;
43
+ predictBlastRadius(targetFile: string, symbolName: string): Promise<unknown>;
44
+ resolvePosixPath(filePath: string): string;
45
+ getInitialErrorCount(): number;
46
+ getCurrentErrorCount(): number;
47
+ getStagingSize(): number;
48
+ getTrackedFiles(): number;
49
+ getBaselineErrorCount(): number;
50
+ terminate(): Promise<void>;
51
+ }
52
+ //# sourceMappingURL=kernel-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-manager.d.ts","sourceRoot":"","sources":["../../src/kernel/kernel-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAQzE,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,MAAM,CAAS;IAGhB,YAAY;;;MAA6B;gBAEpC,IAAI,EAAE;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC/B;IAMD,gDAAgD;IAC1C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B3B,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,IAAI;IAiBZ,6EAA6E;IAC7E,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,SAAS;IAOjB,QAAQ,IAAI,OAAO;IAIb,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA+BvE,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAIzD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI1C,oBAAoB,IAAI,MAAM;IAI9B,oBAAoB,IAAI,MAAM;IAI9B,cAAc,IAAI,MAAM;IAIxB,eAAe,IAAI,MAAM;IAIzB,qBAAqB,IAAI,MAAM;IAIzB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAYnC"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * kernel-manager.ts - Main-thread proxy for NrekiKernel running in a worker thread.
3
+ *
4
+ * Routes operations to an active worker thread. Supports:
5
+ * - 30s execution timeout per operation
6
+ * - Optional shadow standby worker for instant failover
7
+ * - Livelock blacklist (edit hash → timestamp, 5-min expiry)
8
+ *
9
+ * All state lives in the worker heap. The manager is stateless.
10
+ */
11
+ import { Worker } from "node:worker_threads";
12
+ import { fileURLToPath } from "node:url";
13
+ import * as path from "node:path";
14
+ import * as fs from "node:fs";
15
+ import * as crypto from "node:crypto";
16
+ export class KernelManager {
17
+ worker = null;
18
+ pending = new Map();
19
+ nextId = 0;
20
+ projectRoot;
21
+ mode;
22
+ executionTimeoutMs;
23
+ livelockBlacklist = new Map();
24
+ booted = false;
25
+ // Public properties matching NrekiKernel interface for router compatibility
26
+ healingStats = { applied: 0, failed: 0 };
27
+ constructor(opts) {
28
+ this.projectRoot = opts.projectRoot;
29
+ this.mode = opts.mode ?? "project";
30
+ this.executionTimeoutMs = opts.executionTimeoutMs ?? 30_000;
31
+ }
32
+ /** Spawn the worker and wait for it to boot. */
33
+ async boot() {
34
+ this.worker = this.spawnWorker();
35
+ // Wait for boot confirmation
36
+ await new Promise((resolve, reject) => {
37
+ const timeout = setTimeout(() => {
38
+ reject(new Error("[NREKI] Worker boot timeout"));
39
+ }, 60_000);
40
+ const onMessage = (msg) => {
41
+ if (msg.type === "booted") {
42
+ clearTimeout(timeout);
43
+ this.worker.off("message", onMessage);
44
+ this.booted = true;
45
+ resolve();
46
+ }
47
+ };
48
+ this.worker.on("message", onMessage);
49
+ this.worker.on("error", (err) => {
50
+ clearTimeout(timeout);
51
+ reject(err);
52
+ });
53
+ });
54
+ // Set up message handler for requests
55
+ this.worker.on("message", (msg) => this.handleMessage(msg));
56
+ this.worker.on("error", (err) => this.handleWorkerError(err));
57
+ }
58
+ spawnWorker() {
59
+ // Resolve worker path: compiled .js in dist/ or alongside this file
60
+ const thisDir = path.dirname(fileURLToPath(import.meta.url));
61
+ let workerPath = path.resolve(thisDir, "kernel-worker.js");
62
+ // When running from source (e.g., vitest), fall back to dist/
63
+ if (!fs.existsSync(workerPath)) {
64
+ const projectRoot = path.resolve(thisDir, "..", "..");
65
+ workerPath = path.resolve(projectRoot, "dist", "kernel", "kernel-worker.js");
66
+ }
67
+ return new Worker(workerPath, {
68
+ workerData: { projectRoot: this.projectRoot, mode: this.mode },
69
+ });
70
+ }
71
+ handleMessage(msg) {
72
+ if (msg.type === "booted")
73
+ return; // Already handled in boot()
74
+ const pending = this.pending.get(msg.id);
75
+ if (!pending)
76
+ return;
77
+ this.pending.delete(msg.id);
78
+ clearTimeout(pending.timer);
79
+ if (msg.type === "error") {
80
+ pending.reject(new Error(msg.data.message));
81
+ }
82
+ else {
83
+ // Deserialize Maps if needed
84
+ if (msg.data?.postContracts) {
85
+ msg.data.postContracts = new Map(Object.entries(msg.data.postContracts).map(([k, v]) => [k, new Map(Object.entries(v))]));
86
+ }
87
+ pending.resolve(msg.data);
88
+ }
89
+ }
90
+ handleWorkerError(err) {
91
+ console.error("[NREKI] Worker thread error:", err);
92
+ for (const [, pending] of this.pending) {
93
+ clearTimeout(pending.timer);
94
+ pending.reject(err);
95
+ }
96
+ this.pending.clear();
97
+ }
98
+ send(type, payload = {}) {
99
+ if (!this.worker)
100
+ throw new Error("[NREKI] KernelManager not booted");
101
+ const id = this.nextId++;
102
+ return new Promise((resolve, reject) => {
103
+ const timer = setTimeout(() => {
104
+ this.pending.delete(id);
105
+ reject(new Error(`[NREKI] Worker execution timeout after ${this.executionTimeoutMs}ms`));
106
+ }, this.executionTimeoutMs);
107
+ this.pending.set(id, { resolve, reject, timer });
108
+ this.worker.postMessage({ id, type, ...payload });
109
+ });
110
+ }
111
+ /** Prune expired entries from the livelock blacklist (default 5 minutes). */
112
+ pruneBlacklist(maxAgeMs = 5 * 60 * 1000) {
113
+ const now = Date.now();
114
+ for (const [hash, timestamp] of this.livelockBlacklist) {
115
+ if (now - timestamp > maxAgeMs) {
116
+ this.livelockBlacklist.delete(hash);
117
+ }
118
+ }
119
+ }
120
+ hashEdits(edits) {
121
+ const content = edits.map(e => `${e.targetFile}:${e.proposedContent?.length ?? 0}`).join("|");
122
+ return crypto.createHash("sha256").update(content).digest("hex").substring(0, 16);
123
+ }
124
+ // ─── Public API (mirrors NrekiKernel) ──────────────────────────
125
+ isBooted() {
126
+ return this.booted;
127
+ }
128
+ async interceptAtomicBatch(edits) {
129
+ if (!edits || edits.length === 0) {
130
+ return { safe: true, exitCode: 0, latencyMs: "0.00" };
131
+ }
132
+ // Check livelock blacklist
133
+ this.pruneBlacklist();
134
+ const editHash = this.hashEdits(edits);
135
+ if (this.livelockBlacklist.has(editHash)) {
136
+ return {
137
+ safe: false,
138
+ exitCode: 3,
139
+ errorText: "[NREKI] Edit rejected. Previous attempt caused compiler livelock.",
140
+ };
141
+ }
142
+ try {
143
+ const result = await this.send("intercept", { edits });
144
+ // Sync healing stats from worker
145
+ if (result.healedFiles && result.healedFiles.length > 0) {
146
+ this.healingStats.applied++;
147
+ }
148
+ return result;
149
+ }
150
+ catch (err) {
151
+ if (err.message.includes("timeout")) {
152
+ this.livelockBlacklist.set(editHash, Date.now());
153
+ }
154
+ throw err;
155
+ }
156
+ }
157
+ async commitToDisk() {
158
+ return this.send("commit");
159
+ }
160
+ async rollbackAll() {
161
+ return this.send("rollback");
162
+ }
163
+ predictBlastRadius(targetFile, symbolName) {
164
+ return this.send("predictBlastRadius", { targetFile, symbolName });
165
+ }
166
+ resolvePosixPath(filePath) {
167
+ return path.normalize(filePath).replace(/\\/g, "/");
168
+ }
169
+ getInitialErrorCount() {
170
+ return 0; // Async fetch not supported for sync methods - return safe default
171
+ }
172
+ getCurrentErrorCount() {
173
+ return 0;
174
+ }
175
+ getStagingSize() {
176
+ return 0;
177
+ }
178
+ getTrackedFiles() {
179
+ return 0;
180
+ }
181
+ getBaselineErrorCount() {
182
+ return 0;
183
+ }
184
+ async terminate() {
185
+ if (this.worker) {
186
+ await this.worker.terminate();
187
+ this.worker = null;
188
+ }
189
+ for (const [, pending] of this.pending) {
190
+ clearTimeout(pending.timer);
191
+ pending.reject(new Error("[NREKI] Worker terminated"));
192
+ }
193
+ this.pending.clear();
194
+ this.booted = false;
195
+ }
196
+ }
197
+ //# sourceMappingURL=kernel-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-manager.js","sourceRoot":"","sources":["../../src/kernel/kernel-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * kernel-worker.ts - Worker thread script for NrekiKernel.
3
+ *
4
+ * Instantiates a NrekiKernel in an isolated worker thread.
5
+ * Communicates with the main thread via postMessage.
6
+ * All kernel state lives in the worker heap.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=kernel-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-worker.d.ts","sourceRoot":"","sources":["../../src/kernel/kernel-worker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * kernel-worker.ts - Worker thread script for NrekiKernel.
3
+ *
4
+ * Instantiates a NrekiKernel in an isolated worker thread.
5
+ * Communicates with the main thread via postMessage.
6
+ * All kernel state lives in the worker heap.
7
+ */
8
+ import { parentPort, workerData } from "node:worker_threads";
9
+ import { NrekiKernel } from "./nreki-kernel.js";
10
+ if (!parentPort) {
11
+ throw new Error("[NREKI Worker] Must be run as a worker thread");
12
+ }
13
+ const kernel = new NrekiKernel();
14
+ kernel.boot(workerData.projectRoot, workerData.mode);
15
+ parentPort.postMessage({ type: "booted" });
16
+ parentPort.on("message", async (msg) => {
17
+ try {
18
+ switch (msg.type) {
19
+ case "intercept": {
20
+ const result = await kernel.interceptAtomicBatch(msg.edits);
21
+ // Serialize Maps for structured clone transfer
22
+ const serialized = {
23
+ ...result,
24
+ postContracts: result.postContracts
25
+ ? Object.fromEntries([...result.postContracts].map(([k, v]) => [k, Object.fromEntries(v)]))
26
+ : undefined,
27
+ };
28
+ parentPort.postMessage({ id: msg.id, type: "result", data: serialized });
29
+ break;
30
+ }
31
+ case "commit":
32
+ await kernel.commitToDisk();
33
+ parentPort.postMessage({ id: msg.id, type: "result", data: null });
34
+ break;
35
+ case "rollback":
36
+ await kernel.rollbackAll();
37
+ parentPort.postMessage({ id: msg.id, type: "result", data: null });
38
+ break;
39
+ case "predictBlastRadius": {
40
+ const result = kernel.predictBlastRadius(msg.targetFile, msg.symbolName);
41
+ parentPort.postMessage({ id: msg.id, type: "result", data: result });
42
+ break;
43
+ }
44
+ case "getStats":
45
+ parentPort.postMessage({
46
+ id: msg.id,
47
+ type: "result",
48
+ data: {
49
+ stagingSize: kernel.getStagingSize(),
50
+ trackedFiles: kernel.getTrackedFiles(),
51
+ baselineErrorCount: kernel.getBaselineErrorCount(),
52
+ initialErrorCount: kernel.getInitialErrorCount(),
53
+ currentErrorCount: kernel.getCurrentErrorCount(),
54
+ healingStats: kernel.healingStats,
55
+ mode: kernel.mode,
56
+ booted: kernel.isBooted(),
57
+ },
58
+ });
59
+ break;
60
+ default:
61
+ parentPort.postMessage({
62
+ id: msg.id,
63
+ type: "error",
64
+ data: { message: `Unknown message type: ${msg.type}` },
65
+ });
66
+ }
67
+ }
68
+ catch (err) {
69
+ parentPort.postMessage({
70
+ id: msg.id,
71
+ type: "error",
72
+ data: { message: err.message, stack: err.stack },
73
+ });
74
+ }
75
+ });
76
+ //# sourceMappingURL=kernel-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-worker.js","sourceRoot":"","sources":["../../src/kernel/kernel-worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,244 @@
1
+ import * as ts from "typescript";
2
+ export declare class AsyncMutex {
3
+ private queue;
4
+ private locked;
5
+ lock(timeoutMs?: number): Promise<() => void>;
6
+ /**
7
+ * Acquire lock, execute fn, release lock. Always releases even on throw/timeout.
8
+ * Execution timeout fires from the event loop - if the holder livelocks,
9
+ * Promise.race resolves with the timeout and the finally block releases the lock.
10
+ */
11
+ withLock<T>(fn: () => Promise<T> | T, executionTimeoutMs?: number): Promise<T>;
12
+ }
13
+ export interface NrekiStructuredError {
14
+ file: string;
15
+ line: number;
16
+ column: number;
17
+ code: string;
18
+ message: string;
19
+ }
20
+ export interface NrekiEdit {
21
+ targetFile: string;
22
+ proposedContent: string | null;
23
+ }
24
+ export interface TypeRegression {
25
+ filePath: string;
26
+ symbol: string;
27
+ oldType: string;
28
+ newType: string;
29
+ }
30
+ export interface NrekiInterceptResult {
31
+ safe: boolean;
32
+ exitCode: number;
33
+ latencyMs?: string;
34
+ structured?: NrekiStructuredError[];
35
+ errorText?: string;
36
+ healedFiles?: string[];
37
+ regressions?: TypeRegression[];
38
+ postContracts?: Map<string, Map<string, string>>;
39
+ }
40
+ export type NrekiMode = "auto" | "syntax" | "file" | "project" | "hologram";
41
+ export declare class NrekiKernel {
42
+ private projectRoot;
43
+ private vfs;
44
+ private vfsDirectories;
45
+ private vfsClock;
46
+ private logicalTime;
47
+ private baselineFrequencies;
48
+ private mutex;
49
+ private editCount;
50
+ private gcThreshold;
51
+ private compilerOptions;
52
+ private rootNames;
53
+ private host;
54
+ private builderProgram?;
55
+ private booted;
56
+ healingStats: {
57
+ applied: number;
58
+ failed: number;
59
+ };
60
+ private languageService;
61
+ private documentRegistry;
62
+ private mutatedFiles;
63
+ private bootErrorCount;
64
+ private tsBuildInfoPath;
65
+ mode: "file" | "project" | "hologram";
66
+ private isStateCorrupted;
67
+ private prunedFiles;
68
+ private shadowContent;
69
+ private ambientFiles;
70
+ private currentEditTargets;
71
+ private shadowDtsLookup;
72
+ private prunedTsLookup;
73
+ private jitMode;
74
+ private jitParser?;
75
+ private jitTsLanguage?;
76
+ private jitClassifiedCache;
77
+ private jitClassifyFn?;
78
+ private toPosix;
79
+ private isTypeScriptFile;
80
+ private initConfig;
81
+ /** Validate cache against current TS version. Returns true if cache is usable. */
82
+ private validateBuildInfoCache;
83
+ /**
84
+ * Release cached AST data for files that have been mutated.
85
+ * Uses releaseDocumentWithKey + getKeyForCompilationSettings to
86
+ * precisely target the correct registry bucket. Prevents
87
+ * DocumentRegistry from accumulating stale AST versions.
88
+ */
89
+ private releaseMutatedDocuments;
90
+ /** Write TS version guard file alongside the cache. */
91
+ private writeTsVersionGuard;
92
+ /**
93
+ * Boot the kernel. Applies CompilerHost overrides for VFS I/O.
94
+ * Cost: ~5-10s for initial semantic graph. Runs in background.
95
+ */
96
+ boot(workspacePath: string, mode?: "file" | "project" | "hologram"): void;
97
+ isBooted(): boolean;
98
+ private updateProgram;
99
+ private getFingerprint;
100
+ private captureBaseline;
101
+ /**
102
+ * Re-evaluates the current AST and returns only errors that exceed the original baseline.
103
+ * Centralizes the 3 NREKI shields logic. Mode-aware: file mode skips cascade,
104
+ * project mode evaluates full cascade with early exit.
105
+ *
106
+ * PRECONDITION: this.updateProgram() MUST have been called before this method.
107
+ * WARNING: getSemanticDiagnosticsOfNextAffectedFile() is a stateful iterator.
108
+ * Do NOT call this method twice without updateProgram() in between.
109
+ */
110
+ private getFatalErrors;
111
+ /**
112
+ * Extract the compiler's resolved type for each locally-declared export.
113
+ * Uses TypeChecker to read resolved types, not AST text.
114
+ * Cost: O(K) where K = exports in the given files only.
115
+ */
116
+ private extractCanonicalTypes;
117
+ /**
118
+ * Check if a type string contains toxic type patterns.
119
+ * Uses word boundaries to avoid false positives on identifiers
120
+ * like "Company" or "ManyToMany".
121
+ *
122
+ * Shared with file fragility tracker via static method.
123
+ */
124
+ static isToxicType(typeStr: string): boolean;
125
+ /**
126
+ * Walk a ts.Type tree and compute a toxicity score using TypeFlags.
127
+ * No regex. No string matching. Reads bits directly from the TypeChecker.
128
+ *
129
+ * Asymmetric weights:
130
+ * any = 10 (disables all checking)
131
+ * unknown = 2 (safe but unresolved)
132
+ * Function = 5 (callable but untyped)
133
+ *
134
+ * Depth limit prevents CPU freeze on deeply nested types (Prisma, tRPC).
135
+ * Cycle-safe via Set<ts.Type> pointer comparison (TS interns types).
136
+ */
137
+ private getToxicityScoreFromType;
138
+ /**
139
+ * String-based toxicity for pre-edit types (compiler state no longer exists).
140
+ * Uses asymmetric weights matching the TypeFlags scoring.
141
+ */
142
+ private getStringBasedToxicity;
143
+ /**
144
+ * Compare pre-edit and post-edit resolved types using toxicity scoring.
145
+ *
146
+ * Uses TypeFlags-based scoring for post-edit types (zero false positives)
147
+ * and string-based fallback for pre-edit types (compiler state is gone).
148
+ *
149
+ * Asymmetric weights ensure unknown→any is always detected:
150
+ * unknown=2, any=10. Score delta = 8. Regression fires.
151
+ */
152
+ private computeTypeRegressions;
153
+ /**
154
+ * Iterative AST healing engine.
155
+ * Repairs structural errors one by one, incrementally recompiling
156
+ * the universe in RAM between each fix to ensure perfect byte offsets.
157
+ * If a fix causes cascade, performs micro-rollback and discards it.
158
+ *
159
+ * Strict Entropy Reduction Invariant:
160
+ * |E(S₀ + Δ)| ≤ |E₀| - 1
161
+ * Any patch resulting in ≥ |E₀| errors is reverted in O(1).
162
+ *
163
+ * Fixed bugs:
164
+ * BUG 1: String(diag.code) → safe Number cast (TS expects number[])
165
+ * BUG 2: explicitlyEditedFiles mutated by reference → cloned on entry
166
+ * BUG 3: getSemanticDiagnosticsOfNextAffectedFile is stateful → compute ONCE
167
+ * BUG 4: new Map(this.vfs) copied entire VFS → micro-UndoLog O(touched files)
168
+ * BUG 5: localEditedFiles.delete(p) in micro-rollback blinded Shield 2 →
169
+ * only delete files the healer added, never the LLM's files
170
+ */
171
+ private attemptAutoHealing;
172
+ /**
173
+ * SINGLE ENTRY POINT (P21, P22).
174
+ * Atomic batch validation: inject all edits into VFS, evaluate macro-state.
175
+ * Triple shield: Global → Syntactic → Semantic.
176
+ */
177
+ interceptAtomicBatch(edits: NrekiEdit[], dependents?: string[]): Promise<NrekiInterceptResult>;
178
+ /**
179
+ * Two-Phase Atomic Commit with physical rollback (P2, P18, P27, P32).
180
+ * Phase 1: Backup existing files to .bak
181
+ * Phase 2: Write new content via temp+rename
182
+ * Phase 3: Clean backups on success
183
+ * On failure: restore all .bak files
184
+ */
185
+ commitToDisk(): Promise<void>;
186
+ /** Emergency rollback - purge all staged changes (P3). */
187
+ rollbackAll(): Promise<void>;
188
+ private toStructured;
189
+ /**
190
+ * Show which files depend on a symbol before the agent edits it.
191
+ * Uses LanguageService.findReferences(). Cost: ~20ms per call.
192
+ */
193
+ predictBlastRadius(targetFile: string, symbolName: string): {
194
+ safe: boolean;
195
+ report: string;
196
+ };
197
+ /** Resolve a file path to the kernel's internal POSIX format. */
198
+ resolvePosixPath(filePath: string): string;
199
+ getStagingSize(): number;
200
+ getTrackedFiles(): number;
201
+ getBaselineErrorCount(): number;
202
+ /**
203
+ * Error count captured once at boot time. Immutable after boot.
204
+ * Used by the file fragility tracker for session health delta calculation.
205
+ */
206
+ getInitialErrorCount(): number;
207
+ /**
208
+ * Current project error count via baseline cache.
209
+ *
210
+ * Between tool calls the VFS is empty (each intercept ends in
211
+ * commit → captureBaseline() or rollback → VFS clean).
212
+ * Therefore baselineFrequencies reflects the current disk state.
213
+ *
214
+ * Cost: O(1) - no compiler invocation needed.
215
+ */
216
+ getCurrentErrorCount(): number;
217
+ /** Receive shadow scan results BEFORE boot(). */
218
+ setShadows(prunable: Map<string, string>, unprunable: Set<string>, ambientFiles: string[]): void;
219
+ /** Check if shadows have been loaded. */
220
+ hasShadows(): boolean;
221
+ /** Set JIT parser for on-demand shadow generation. Call BEFORE boot(). */
222
+ setJitParser(parser: any, tsLanguage: any): void;
223
+ /** Set JIT classifier function (classifyAndGenerateShadow). */
224
+ setJitClassifier(fn: (filePath: string, content: string, parser: any, lang: any) => {
225
+ prunable: boolean;
226
+ shadow: string | null;
227
+ }): void;
228
+ /** Check if JIT hologram mode is initialized. */
229
+ hasJitHologram(): boolean;
230
+ /** Get number of files classified on-demand by JIT. */
231
+ getJitCacheSize(): number;
232
+ /** Get the monotonic logical clock (for harvester epoch detection). */
233
+ getLogicalTime(): number;
234
+ /** Get the current TypeScript Program (for harvester .d.ts emission). */
235
+ getProgram(): ts.Program | undefined;
236
+ /**
237
+ * JIT classify a single .ts/.tsx file and populate shadow data structures.
238
+ * Returns true if file was prunable (shadow generated), false otherwise.
239
+ * Synchronous: reads file from disk, classifies with pre-loaded tree-sitter parser.
240
+ */
241
+ private jitClassifyFile;
242
+ private buildShadowLookups;
243
+ }
244
+ //# sourceMappingURL=nreki-kernel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nreki-kernel.d.ts","sourceRoot":"","sources":["../../src/kernel/nreki-kernel.ts"],"names":[],"mappings":"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"}