@nifrajs/coding-agent 3.3.0 → 3.5.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 (49) hide show
  1. package/dist/context.js +29 -1
  2. package/dist/context.js.map +1 -1
  3. package/dist/diff.js +38 -2
  4. package/dist/diff.js.map +1 -1
  5. package/dist/host.d.ts.map +1 -1
  6. package/dist/host.js +146 -23
  7. package/dist/host.js.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/isolated.js +37 -2
  13. package/dist/isolated.js.map +1 -1
  14. package/dist/native.d.ts +5 -0
  15. package/dist/native.d.ts.map +1 -1
  16. package/dist/native.js +138 -34
  17. package/dist/native.js.map +1 -1
  18. package/dist/replay.d.ts +4 -0
  19. package/dist/replay.d.ts.map +1 -1
  20. package/dist/replay.js +189 -24
  21. package/dist/replay.js.map +1 -1
  22. package/dist/rpc.d.ts +10 -0
  23. package/dist/rpc.d.ts.map +1 -1
  24. package/dist/rpc.js +208 -29
  25. package/dist/rpc.js.map +1 -1
  26. package/dist/sessions.d.ts +14 -2
  27. package/dist/sessions.d.ts.map +1 -1
  28. package/dist/sessions.js +253 -59
  29. package/dist/sessions.js.map +1 -1
  30. package/dist/verification.d.ts +23 -0
  31. package/dist/verification.d.ts.map +1 -1
  32. package/dist/verification.js +113 -1
  33. package/dist/verification.js.map +1 -1
  34. package/dist/workflows.d.ts +1 -0
  35. package/dist/workflows.d.ts.map +1 -1
  36. package/dist/workflows.js +43 -21
  37. package/dist/workflows.js.map +1 -1
  38. package/package.json +6 -5
  39. package/src/context.ts +32 -1
  40. package/src/diff.ts +40 -2
  41. package/src/host.ts +146 -23
  42. package/src/index.ts +5 -0
  43. package/src/isolated.ts +39 -2
  44. package/src/native.ts +173 -32
  45. package/src/replay.ts +206 -25
  46. package/src/rpc.ts +261 -33
  47. package/src/sessions.ts +271 -56
  48. package/src/verification.ts +140 -1
  49. package/src/workflows.ts +37 -25
package/dist/sessions.js CHANGED
@@ -1,5 +1,18 @@
1
- import { appendFile, mkdir, readFile, rename, writeFile } from "node:fs/promises";
1
+ import { constants as FS_CONSTANTS } from "node:fs";
2
+ import { lstat, mkdir, open, rename, unlink, writeFile } from "node:fs/promises";
2
3
  import { dirname, join } from "node:path";
4
+ const DEFAULT_MAX_SESSION_ENTRIES = 4_096;
5
+ const DEFAULT_MAX_SESSION_BYTES = 8 * 1024 * 1024;
6
+ const MAX_SESSION_ENTRIES = 100_000;
7
+ const MAX_SESSION_BYTES = 128 * 1024 * 1024;
8
+ // `node:constants` does not expose the POSIX-only named export on Windows in Bun.
9
+ // Read it from the platform-safe `node:fs` constants object and fall back to zero;
10
+ // the Windows open path uses its lstat/open/lstat guard instead of this flag.
11
+ const O_APPEND = FS_CONSTANTS.O_APPEND;
12
+ const O_CREAT = FS_CONSTANTS.O_CREAT;
13
+ const O_RDONLY = FS_CONSTANTS.O_RDONLY;
14
+ const O_WRONLY = FS_CONSTANTS.O_WRONLY;
15
+ const O_NOFOLLOW = FS_CONSTANTS.O_NOFOLLOW ?? 0;
3
16
  /**
4
17
  * Small append-only JSONL store. It stores redacted, bounded event evidence rather than raw model
5
18
  * transcripts, so session recovery is useful without turning the agent into a memory sink.
@@ -7,84 +20,108 @@ import { dirname, join } from "node:path";
7
20
  export class FileSessionStore {
8
21
  root;
9
22
  maxEntryBytes;
23
+ maxEntries;
24
+ maxBytes;
10
25
  sequences = new Map();
26
+ locks = new Map();
11
27
  constructor(options) {
12
28
  this.root = options.root;
13
29
  this.maxEntryBytes = options.maxEntryBytes ?? 256 * 1024;
14
30
  if (!Number.isSafeInteger(this.maxEntryBytes) || this.maxEntryBytes < 1024)
15
31
  throw new RangeError("session store: maxEntryBytes must be at least 1024");
32
+ this.maxEntries = options.maxEntries ?? DEFAULT_MAX_SESSION_ENTRIES;
33
+ if (!Number.isSafeInteger(this.maxEntries) ||
34
+ this.maxEntries < 1 ||
35
+ this.maxEntries > MAX_SESSION_ENTRIES)
36
+ throw new RangeError(`session store: maxEntries must be between 1 and ${MAX_SESSION_ENTRIES}`);
37
+ this.maxBytes = options.maxBytes ?? DEFAULT_MAX_SESSION_BYTES;
38
+ if (!Number.isSafeInteger(this.maxBytes) ||
39
+ this.maxBytes < this.maxEntryBytes + 1 ||
40
+ this.maxBytes > MAX_SESSION_BYTES)
41
+ throw new RangeError(`session store: maxBytes must be between maxEntryBytes+1 and ${MAX_SESSION_BYTES}`);
16
42
  }
17
43
  async append(sessionId, type, payload, options = {}) {
18
44
  validateToken(sessionId, "sessionId");
19
45
  if (!/^[a-z][a-z0-9._:-]{0,63}$/.test(type))
20
46
  throw new TypeError("session store: invalid event type");
21
- await mkdir(this.root, { recursive: true });
22
- const nextSeq = await this.nextSequence(sessionId);
23
- const entry = Object.freeze({
24
- version: 1,
25
- sessionId,
26
- seq: nextSeq,
27
- at: Date.now(),
28
- type,
29
- ...(payload === undefined
30
- ? {}
31
- : { payload: boundValue(redactValue(payload), this.maxEntryBytes) }),
32
- ...(options.pinned === true ? { pinned: true } : {}),
47
+ return this.withSessionLock(sessionId, async () => {
48
+ await mkdir(this.root, { recursive: true });
49
+ const nextSeq = await this.nextSequence(sessionId);
50
+ const entry = Object.freeze({
51
+ version: 1,
52
+ sessionId,
53
+ seq: nextSeq,
54
+ at: Date.now(),
55
+ type,
56
+ ...(payload === undefined
57
+ ? {}
58
+ : { payload: boundValue(redactValue(payload), this.maxEntryBytes) }),
59
+ ...(options.pinned === true ? { pinned: true } : {}),
60
+ });
61
+ const line = JSON.stringify(entry);
62
+ if (Buffer.byteLength(line, "utf8") > this.maxEntryBytes)
63
+ throw new RangeError("session store: event exceeds maxEntryBytes");
64
+ const path = this.pathFor(sessionId);
65
+ const file = await openSessionFile(path, O_APPEND | O_CREAT | O_WRONLY, 0o600);
66
+ try {
67
+ await file.writeFile(`${line}\n`, "utf8");
68
+ }
69
+ finally {
70
+ await file.close();
71
+ }
72
+ this.sequences.set(sessionId, nextSeq);
73
+ await this.compactIfNeeded(sessionId);
74
+ return entry;
33
75
  });
34
- const line = JSON.stringify(entry);
35
- if (Buffer.byteLength(line, "utf8") > this.maxEntryBytes)
36
- throw new RangeError("session store: event exceeds maxEntryBytes");
37
- await appendFile(this.pathFor(sessionId), `${line}\n`, "utf8");
38
- this.sequences.set(sessionId, nextSeq);
39
- return entry;
40
- }
41
- async read(sessionId) {
76
+ }
77
+ async read(sessionId, limit = this.maxEntries) {
42
78
  validateToken(sessionId, "sessionId");
43
- try {
44
- const text = await readFile(this.pathFor(sessionId), "utf8");
45
- const entries = [];
46
- for (const line of text.split("\n")) {
47
- if (line.trim().length === 0)
48
- continue;
49
- const value = JSON.parse(line);
50
- if (isSessionLogEntry(value, sessionId))
51
- entries.push(Object.freeze(value));
52
- }
53
- const last = entries.at(-1)?.seq;
54
- if (last !== undefined)
55
- this.sequences.set(sessionId, last);
56
- return Object.freeze(entries);
57
- }
58
- catch (error) {
59
- if (isNotFound(error))
60
- return Object.freeze([]);
61
- throw error;
62
- }
79
+ if (!Number.isSafeInteger(limit) || limit < 1)
80
+ throw new RangeError("session store: read limit must be a positive safe integer");
81
+ const boundedLimit = Math.min(limit, this.maxEntries);
82
+ return this.withSessionLock(sessionId, () => this.readUnlocked(sessionId, boundedLimit));
63
83
  }
64
84
  async checkpoint(sessionId, payload) {
65
85
  validateToken(sessionId, "sessionId");
66
- const target = join(this.root, `${sessionId}.checkpoint.json`);
67
- const temporary = `${target}.${process.pid}.${Date.now()}.tmp`;
68
- await mkdir(dirname(target), { recursive: true });
69
- const content = JSON.stringify({
70
- version: 1,
71
- sessionId,
72
- at: Date.now(),
73
- payload: boundValue(redactValue(payload), this.maxEntryBytes),
86
+ await this.withSessionLock(sessionId, async () => {
87
+ const target = join(this.root, `${sessionId}.checkpoint.json`);
88
+ const temporary = `${target}.${process.pid}.${crypto.randomUUID()}.tmp`;
89
+ await mkdir(dirname(target), { recursive: true });
90
+ const content = JSON.stringify({
91
+ version: 1,
92
+ sessionId,
93
+ at: Date.now(),
94
+ payload: boundValue(redactValue(payload), this.maxEntryBytes),
95
+ });
96
+ // Exclusive creation prevents a local peer from planting a symlink at the temporary path.
97
+ await writeFile(temporary, content, { encoding: "utf8", flag: "wx", mode: 0o600 });
98
+ try {
99
+ await rename(temporary, target);
100
+ }
101
+ catch (error) {
102
+ await unlink(temporary).catch(() => { });
103
+ throw error;
104
+ }
74
105
  });
75
- await writeFile(temporary, content, "utf8");
76
- await rename(temporary, target);
77
106
  }
78
107
  async fork(sessionId, targetSessionId = `${sessionId}:fork:${Date.now().toString(36)}`) {
79
108
  validateToken(sessionId, "sessionId");
80
109
  validateToken(targetSessionId, "targetSessionId");
81
- const entries = await this.read(sessionId);
82
- await mkdir(this.root, { recursive: true });
83
- const target = this.pathFor(targetSessionId);
84
- const lines = entries.map((entry, index) => JSON.stringify({ ...entry, sessionId: targetSessionId, seq: index }));
85
- await writeFile(target, lines.length === 0 ? "" : `${lines.join("\n")}\n`, "utf8");
86
- this.sequences.set(targetSessionId, Math.max(0, lines.length - 1));
87
- return targetSessionId;
110
+ return this.withSessionLock(sessionId, async () => {
111
+ const entries = await this.readUnlocked(sessionId, this.maxEntries);
112
+ await mkdir(this.root, { recursive: true });
113
+ const target = this.pathFor(targetSessionId);
114
+ const lines = entries.map((entry, index) => JSON.stringify({ ...entry, sessionId: targetSessionId, seq: index }));
115
+ // A caller must never be able to overwrite an existing session by choosing its id. The
116
+ // exclusive create also refuses a pre-planted symlink at the destination.
117
+ await writeFile(target, lines.length === 0 ? "" : `${lines.join("\n")}\n`, {
118
+ encoding: "utf8",
119
+ flag: "wx",
120
+ mode: 0o600,
121
+ });
122
+ this.sequences.set(targetSessionId, Math.max(0, lines.length - 1));
123
+ return targetSessionId;
124
+ });
88
125
  }
89
126
  pathFor(sessionId) {
90
127
  return join(this.root, `${sessionId}.jsonl`);
@@ -93,9 +130,103 @@ export class FileSessionStore {
93
130
  const cached = this.sequences.get(sessionId);
94
131
  if (cached !== undefined)
95
132
  return cached + 1;
96
- const entries = await this.read(sessionId);
133
+ const entries = await this.readUnlocked(sessionId, 1);
97
134
  return (entries.at(-1)?.seq ?? -1) + 1;
98
135
  }
136
+ async compactIfNeeded(sessionId) {
137
+ const path = this.pathFor(sessionId);
138
+ const file = await openSessionFile(path, O_RDONLY);
139
+ let size;
140
+ try {
141
+ size = (await file.stat()).size;
142
+ }
143
+ finally {
144
+ await file.close();
145
+ }
146
+ if (size <= this.maxBytes) {
147
+ const recent = parseSessionEntries(await this.readTailText(path, this.maxEntries + 1, this.maxBytes), sessionId);
148
+ if (recent.length <= this.maxEntries)
149
+ return;
150
+ }
151
+ // The tail read is bounded by the retention cap plus one maximum-sized line. This keeps
152
+ // compaction memory bounded even if a pre-existing log is already oversized.
153
+ const recent = parseSessionEntries(await this.readTailText(path, this.maxEntries + 1, this.maxBytes + this.maxEntryBytes), sessionId);
154
+ const retained = retainEntries(recent, this.maxEntries, this.maxBytes);
155
+ if (retained.length === 0)
156
+ return;
157
+ const content = `${retained.map((entry) => JSON.stringify(entry)).join("\n")}\n`;
158
+ if (Buffer.byteLength(content, "utf8") >= size && size <= this.maxBytes)
159
+ return;
160
+ const temporary = `${path}.${process.pid}.${crypto.randomUUID()}.tmp`;
161
+ await writeFile(temporary, content, { encoding: "utf8", flag: "wx", mode: 0o600 });
162
+ try {
163
+ await rename(temporary, path);
164
+ }
165
+ catch (error) {
166
+ await unlink(temporary).catch(() => { });
167
+ throw error;
168
+ }
169
+ this.sequences.set(sessionId, retained.at(-1).seq);
170
+ }
171
+ async readTailText(path, minimumLines, maxBytes) {
172
+ const file = await openSessionFile(path, O_RDONLY);
173
+ try {
174
+ const size = (await file.stat()).size;
175
+ let end = size;
176
+ let remaining = Math.min(size, maxBytes);
177
+ const chunks = [];
178
+ const chunkBytes = 64 * 1024;
179
+ while (remaining > 0) {
180
+ const take = Math.min(remaining, chunkBytes);
181
+ end -= take;
182
+ const bytes = Buffer.allocUnsafe(take);
183
+ const result = await file.read(bytes, 0, take, end);
184
+ chunks.unshift(bytes.subarray(0, result.bytesRead));
185
+ remaining -= result.bytesRead;
186
+ const text = Buffer.concat(chunks).toString("utf8");
187
+ const lines = text.split("\n");
188
+ const completeLines = end > 0 ? lines.length - 1 : lines.length;
189
+ if (completeLines >= minimumLines || end === 0 || result.bytesRead === 0)
190
+ return text;
191
+ }
192
+ return Buffer.concat(chunks).toString("utf8");
193
+ }
194
+ finally {
195
+ await file.close();
196
+ }
197
+ }
198
+ async readUnlocked(sessionId, boundedLimit) {
199
+ try {
200
+ const text = await this.readTailText(this.pathFor(sessionId), boundedLimit, this.maxBytes);
201
+ const entries = parseSessionEntries(text, sessionId);
202
+ const last = entries.at(-1)?.seq;
203
+ if (last !== undefined)
204
+ this.sequences.set(sessionId, last);
205
+ return Object.freeze(entries.slice(-boundedLimit));
206
+ }
207
+ catch (error) {
208
+ if (isNotFound(error))
209
+ return Object.freeze([]);
210
+ throw error;
211
+ }
212
+ }
213
+ async withSessionLock(sessionId, operation) {
214
+ const previous = this.locks.get(sessionId) ?? Promise.resolve();
215
+ let release;
216
+ const current = new Promise((resolve) => {
217
+ release = resolve;
218
+ });
219
+ this.locks.set(sessionId, current);
220
+ await previous;
221
+ try {
222
+ return await operation();
223
+ }
224
+ finally {
225
+ release();
226
+ if (this.locks.get(sessionId) === current)
227
+ this.locks.delete(sessionId);
228
+ }
229
+ }
99
230
  }
100
231
  /** In-memory prompt window with automatic, deterministic compaction and a hard size ceiling. */
101
232
  export class ContextWindow {
@@ -162,6 +293,39 @@ export class ContextWindow {
162
293
  return { before, after, removed: omitted.length, reason };
163
294
  }
164
295
  }
296
+ /**
297
+ * Open a session file without following a final-component symlink. Windows Bun does not support
298
+ * the POSIX `O_NOFOLLOW` flag, so it gets a bounded lstat/open/lstat guard instead; the descriptor is
299
+ * checked before any caller write or read. POSIX keeps the kernel-enforced flag for the race-free path.
300
+ */
301
+ async function openSessionFile(path, flags, mode) {
302
+ if (process.platform !== "win32") {
303
+ return mode === undefined
304
+ ? open(path, flags | O_NOFOLLOW)
305
+ : open(path, flags | O_NOFOLLOW, mode);
306
+ }
307
+ await rejectSessionSymlink(path);
308
+ const file = mode === undefined ? await open(path, flags) : await open(path, flags, mode);
309
+ try {
310
+ await rejectSessionSymlink(path);
311
+ return file;
312
+ }
313
+ catch (error) {
314
+ await file.close();
315
+ throw error;
316
+ }
317
+ }
318
+ async function rejectSessionSymlink(path) {
319
+ try {
320
+ if ((await lstat(path)).isSymbolicLink())
321
+ throw new Error("session store: refusing a symbolic-link session file");
322
+ }
323
+ catch (error) {
324
+ if (isNotFound(error))
325
+ return;
326
+ throw error;
327
+ }
328
+ }
165
329
  function validateToken(value, name) {
166
330
  if (!/^[a-zA-Z0-9._:-]{1,128}$/.test(value))
167
331
  throw new TypeError(`session store: ${name} must be a bounded token`);
@@ -180,6 +344,36 @@ function isSessionLogEntry(value, sessionId) {
180
344
  typeof record.at === "number" &&
181
345
  typeof record.type === "string");
182
346
  }
347
+ function parseSessionEntries(text, sessionId) {
348
+ const entries = [];
349
+ for (const line of text.split("\n")) {
350
+ if (line.trim().length === 0)
351
+ continue;
352
+ try {
353
+ const value = JSON.parse(line);
354
+ if (isSessionLogEntry(value, sessionId))
355
+ entries.push(Object.freeze(value));
356
+ }
357
+ catch {
358
+ // A tail read can begin in the middle of an old line. Invalid records are ignored so a
359
+ // damaged/partially rotated log cannot turn every history request into an unbounded retry.
360
+ }
361
+ }
362
+ return entries;
363
+ }
364
+ function retainEntries(entries, maxEntries, maxBytes) {
365
+ const retained = [];
366
+ let bytes = 0;
367
+ for (let index = entries.length - 1; index >= 0 && retained.length < maxEntries; index--) {
368
+ const entry = entries[index];
369
+ const size = Buffer.byteLength(JSON.stringify(entry), "utf8") + 1;
370
+ if (bytes + size > maxBytes)
371
+ break;
372
+ retained.unshift(entry);
373
+ bytes += size;
374
+ }
375
+ return retained;
376
+ }
183
377
  function redactValue(value, key = "", depth = 0) {
184
378
  if (depth > 5)
185
379
  return "[depth-limited]";
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,29 @@ export interface VerificationOptions {
29
29
  readonly env?: Readonly<Record<string, string | undefined>>;
30
30
  readonly exposeErrorStacks?: boolean;
31
31
  }
32
+ export type ReviewExecutionErrorCode = "timeout" | "output-truncated" | "invalid-report" | "spawn-failed";
33
+ export interface ReviewOptions {
34
+ readonly cwd: string;
35
+ readonly command?: string;
36
+ readonly commandArgs?: readonly string[];
37
+ readonly strict?: boolean;
38
+ readonly diff?: string;
39
+ readonly timeoutMs?: number;
40
+ readonly maxOutputBytes?: number;
41
+ readonly env?: Readonly<Record<string, string | undefined>>;
42
+ }
43
+ export interface ReviewExecutionResult {
44
+ readonly name: "review";
45
+ readonly ok: boolean;
46
+ readonly status: number | null;
47
+ /** A parsed, content-free ReviewReport. Raw stdout/stderr is intentionally never returned. */
48
+ readonly report?: unknown;
49
+ readonly errorCode?: ReviewExecutionErrorCode;
50
+ }
51
+ /** Validate the only repository selector exposed by the host review RPC. */
52
+ export declare function isSafeReviewDiff(value: unknown): value is string;
53
+ /** Run `nifra review --json` with the same bounded process discipline as the existing gates. */
54
+ export declare function runNifraReview(options: ReviewOptions): Promise<ReviewExecutionResult>;
32
55
  /** Run an existing Nifra gate without importing the large framework CLI into the agent runtime. */
33
56
  export declare function runNifraVerification(name: "check" | "assure" | "test", options: VerificationOptions): Promise<VerificationResult>;
34
57
  //# sourceMappingURL=verification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../src/verification.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC1C,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACjD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,mFAAmF;AACnF,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,kBAAkB,EAC1B,GAAG,EAAE,MAAM,GACV,sBAAsB,GAAG,SAAS,CAcpC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,mGAAmG;IACnG,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAC3D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CACrC;AAED,mGAAmG;AACnG,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,EACjC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAsD7B"}
1
+ {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../src/verification.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,90 @@ export function createVerificationRepairTask(result, cwd) {
16
16
  ...(result.stack === undefined ? {} : { stack: result.stack }),
17
17
  });
18
18
  }
19
+ const REVIEW_GIT_REF = /^[A-Za-z0-9][A-Za-z0-9._/@+-]{0,255}$/;
20
+ /** Validate the only repository selector exposed by the host review RPC. */
21
+ export function isSafeReviewDiff(value) {
22
+ return (typeof value === "string" &&
23
+ REVIEW_GIT_REF.test(value) &&
24
+ !value.includes("..") &&
25
+ !value.includes("@{") &&
26
+ !value.includes("//") &&
27
+ !value.endsWith(".") &&
28
+ !value.endsWith("/") &&
29
+ !value
30
+ .split("/")
31
+ .some((part) => part.length === 0 || part === "." || part === ".." || part.startsWith(".")));
32
+ }
33
+ /** Run `nifra review --json` with the same bounded process discipline as the existing gates. */
34
+ export async function runNifraReview(options) {
35
+ if (options.strict !== undefined && typeof options.strict !== "boolean")
36
+ throw new TypeError("review strict must be a boolean");
37
+ if (options.diff !== undefined && !isSafeReviewDiff(options.diff))
38
+ throw new TypeError("review diff is not a safe Git ref");
39
+ const command = options.command ?? "nifra";
40
+ const commandArgs = options.commandArgs ?? [];
41
+ const args = ["review", "--json"];
42
+ if (options.strict === true)
43
+ args.push("--strict");
44
+ if (options.diff !== undefined)
45
+ args.push("--diff", options.diff);
46
+ let proc;
47
+ try {
48
+ proc = Bun.spawn([command, ...commandArgs, ...args], {
49
+ cwd: options.cwd,
50
+ stdin: "ignore",
51
+ stdout: "pipe",
52
+ stderr: "pipe",
53
+ env: safeEnv(options.env),
54
+ });
55
+ }
56
+ catch {
57
+ return { name: "review", ok: false, status: null, errorCode: "spawn-failed" };
58
+ }
59
+ const timeoutMs = options.timeoutMs ?? 120_000;
60
+ let timedOut = false;
61
+ const timer = setTimeout(() => {
62
+ timedOut = true;
63
+ proc.kill();
64
+ }, timeoutMs);
65
+ try {
66
+ const [stdout, stderr, status] = await Promise.all([
67
+ readBoundedText(proc.stdout, options.maxOutputBytes ?? 1_048_576),
68
+ readBoundedText(proc.stderr, options.maxOutputBytes ?? 1_048_576),
69
+ proc.exited,
70
+ ]);
71
+ void stderr;
72
+ if (timedOut)
73
+ return { name: "review", ok: false, status, errorCode: "timeout" };
74
+ if (stdout.truncated || stderr.truncated)
75
+ return { name: "review", ok: false, status, errorCode: "output-truncated" };
76
+ try {
77
+ const raw = JSON.parse(stdout.text);
78
+ const { parseReviewReport } = await import("@nifrajs/agent-review");
79
+ const report = await parseReviewReport(raw);
80
+ return {
81
+ name: "review",
82
+ ok: status === 0 && report.ok,
83
+ status,
84
+ report,
85
+ };
86
+ }
87
+ catch {
88
+ return { name: "review", ok: false, status, errorCode: "invalid-report" };
89
+ }
90
+ }
91
+ catch {
92
+ return {
93
+ name: "review",
94
+ ok: false,
95
+ status: null,
96
+ errorCode: timedOut ? "timeout" : "spawn-failed",
97
+ };
98
+ }
99
+ finally {
100
+ clearTimeout(timer);
101
+ }
102
+ }
19
103
  /** Run an existing Nifra gate without importing the large framework CLI into the agent runtime. */
20
104
  export async function runNifraVerification(name, options) {
21
105
  const command = options.command ?? "nifra";
@@ -80,12 +164,40 @@ function safeEnv(overrides) {
80
164
  "LC_ALL",
81
165
  "TERM",
82
166
  "CI",
167
+ ...(process.platform === "win32"
168
+ ? [
169
+ "SystemRoot",
170
+ "WINDIR",
171
+ "TEMP",
172
+ "TMP",
173
+ "USERPROFILE",
174
+ "LOCALAPPDATA",
175
+ "APPDATA",
176
+ "COMSPEC",
177
+ "PATHEXT",
178
+ "BUN_INSTALL",
179
+ "HOMEDRIVE",
180
+ "HOMEPATH",
181
+ "USERNAME",
182
+ "USERDOMAIN",
183
+ "ProgramData",
184
+ "ProgramFiles",
185
+ "ProgramFiles(x86)",
186
+ ]
187
+ : []),
83
188
  ...Object.keys(overrides ?? {}),
84
189
  ])) {
85
- const value = overrides?.[name] ?? process.env[name];
190
+ const value = overrides !== undefined && Object.hasOwn(overrides, name) ? overrides[name] : readEnv(name);
86
191
  if (value !== undefined)
87
192
  result[name] = value;
88
193
  }
89
194
  return result;
90
195
  }
196
+ function readEnv(name) {
197
+ const exact = process.env[name];
198
+ if (exact !== undefined || process.platform !== "win32")
199
+ return exact;
200
+ const key = Object.keys(process.env).find((candidate) => candidate.toLowerCase() === name.toLowerCase());
201
+ return key === undefined ? undefined : process.env[key];
202
+ }
91
203
  //# sourceMappingURL=verification.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verification.js","sourceRoot":"","sources":["../src/verification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../src/verification.ts"],"names":[],"mappings":"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"}
@@ -84,6 +84,7 @@ export interface WorkflowResult {
84
84
  /** Bounded orchestration primitives. The kernel knows no provider, UI, or framework package. */
85
85
  export declare class WorkflowRunner {
86
86
  private readonly options;
87
+ private readonly signal;
87
88
  private readonly values;
88
89
  private readonly completed;
89
90
  private steps;