@kernlang/review 3.3.4 → 3.3.6

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 (62) hide show
  1. package/dist/cache.js +1 -1
  2. package/dist/concept-rules/auth-drift.d.ts +29 -0
  3. package/dist/concept-rules/auth-drift.js +127 -0
  4. package/dist/concept-rules/auth-drift.js.map +1 -0
  5. package/dist/concept-rules/contract-drift.d.ts +21 -0
  6. package/dist/concept-rules/contract-drift.js +65 -0
  7. package/dist/concept-rules/contract-drift.js.map +1 -0
  8. package/dist/concept-rules/contract-method-drift.d.ts +22 -0
  9. package/dist/concept-rules/contract-method-drift.js +105 -0
  10. package/dist/concept-rules/contract-method-drift.js.map +1 -0
  11. package/dist/concept-rules/cross-stack-utils.d.ts +96 -0
  12. package/dist/concept-rules/cross-stack-utils.js +259 -0
  13. package/dist/concept-rules/cross-stack-utils.js.map +1 -0
  14. package/dist/concept-rules/duplicate-route.d.ts +20 -0
  15. package/dist/concept-rules/duplicate-route.js +112 -0
  16. package/dist/concept-rules/duplicate-route.js.map +1 -0
  17. package/dist/concept-rules/index.js +26 -1
  18. package/dist/concept-rules/index.js.map +1 -1
  19. package/dist/concept-rules/missing-response-model.d.ts +10 -0
  20. package/dist/concept-rules/missing-response-model.js +38 -0
  21. package/dist/concept-rules/missing-response-model.js.map +1 -0
  22. package/dist/concept-rules/orphan-route.d.ts +20 -0
  23. package/dist/concept-rules/orphan-route.js +96 -0
  24. package/dist/concept-rules/orphan-route.js.map +1 -0
  25. package/dist/concept-rules/sync-handler-does-io.d.ts +9 -0
  26. package/dist/concept-rules/sync-handler-does-io.js +56 -0
  27. package/dist/concept-rules/sync-handler-does-io.js.map +1 -0
  28. package/dist/concept-rules/tainted-across-wire.d.ts +33 -0
  29. package/dist/concept-rules/tainted-across-wire.js +95 -0
  30. package/dist/concept-rules/tainted-across-wire.js.map +1 -0
  31. package/dist/concept-rules/untyped-api-response.d.ts +30 -0
  32. package/dist/concept-rules/untyped-api-response.js +73 -0
  33. package/dist/concept-rules/untyped-api-response.js.map +1 -0
  34. package/dist/concept-rules/untyped-both-ends-response.d.ts +10 -0
  35. package/dist/concept-rules/untyped-both-ends-response.js +55 -0
  36. package/dist/concept-rules/untyped-both-ends-response.js.map +1 -0
  37. package/dist/external-tools.d.ts +17 -4
  38. package/dist/external-tools.js +12 -1
  39. package/dist/external-tools.js.map +1 -1
  40. package/dist/index.d.ts +2 -1
  41. package/dist/index.js +115 -9
  42. package/dist/index.js.map +1 -1
  43. package/dist/llm-bridge.d.ts +38 -1
  44. package/dist/llm-bridge.js +172 -12
  45. package/dist/llm-bridge.js.map +1 -1
  46. package/dist/llm-review.js +29 -11
  47. package/dist/llm-review.js.map +1 -1
  48. package/dist/mappers/ts-concepts.js +650 -11
  49. package/dist/mappers/ts-concepts.js.map +1 -1
  50. package/dist/rules/index.js +17 -1
  51. package/dist/rules/index.js.map +1 -1
  52. package/dist/rules/kern-source.js +37 -5
  53. package/dist/rules/kern-source.js.map +1 -1
  54. package/dist/rules/set-setter-collision.d.ts +21 -0
  55. package/dist/rules/set-setter-collision.js +74 -0
  56. package/dist/rules/set-setter-collision.js.map +1 -0
  57. package/dist/rules/suggest-kern-primitive.d.ts +30 -0
  58. package/dist/rules/suggest-kern-primitive.js +543 -0
  59. package/dist/rules/suggest-kern-primitive.js.map +1 -0
  60. package/dist/types.d.ts +2 -0
  61. package/dist/types.js.map +1 -1
  62. package/package.json +2 -2
@@ -66,6 +66,7 @@ async function callLLM(messages, config) {
66
66
  }
67
67
  const controller = new AbortController();
68
68
  const timer = setTimeout(() => controller.abort(), config.timeout);
69
+ const startedAt = Date.now();
69
70
  try {
70
71
  const response = await fetch(`${config.baseUrl}/chat/completions`, {
71
72
  method: 'POST',
@@ -86,7 +87,12 @@ async function callLLM(messages, config) {
86
87
  throw new Error(`LLM API error ${response.status}: ${text.substring(0, 200)}`);
87
88
  }
88
89
  const data = (await response.json());
89
- return data.choices?.[0]?.message?.content || '';
90
+ return {
91
+ content: data.choices?.[0]?.message?.content || '',
92
+ promptTokens: data.usage?.prompt_tokens,
93
+ completionTokens: data.usage?.completion_tokens,
94
+ durationMs: Date.now() - startedAt,
95
+ };
90
96
  }
91
97
  finally {
92
98
  clearTimeout(timer);
@@ -135,12 +141,114 @@ export function isHighValueFinding(f) {
135
141
  }
136
142
  /** Max input tokens per batch. Conservative — leaves room for output + overhead. */
137
143
  const MAX_BATCH_TOKENS = 60_000;
138
- /** Max tokens for a single file. Files above this are skipped with a warning finding. */
139
- const MAX_SINGLE_FILE_TOKENS = 100_000;
144
+ /** Safety margin subtracted when computing the per-chunk source budget. Also
145
+ * the gap between a solo input's estimated tokens and MAX_BATCH_TOKENS at
146
+ * which we trigger chunking. Keeps a single oversized input from being put
147
+ * into a batch that would silently exceed the per-call limit. */
148
+ const CHUNK_HEADROOM_TOKENS = 2_000;
149
+ /** A file whose estimated prompt exceeds this is chunked. Derived from the
150
+ * batch budget so an un-chunked input that passes through never produces
151
+ * a batch over the per-call limit. */
152
+ const CHUNK_TRIGGER_TOKENS = MAX_BATCH_TOKENS - CHUNK_HEADROOM_TOKENS;
153
+ /** Line overlap between consecutive source chunks so a declaration split
154
+ * across a boundary still appears whole in at least one chunk. */
155
+ const CHUNK_OVERLAP_LINES = 20;
156
+ /** Longest-line probe that avoids V8's spread-argument stack limit (~64K
157
+ * arguments in practice). A simple reduce handles arbitrary line counts. */
158
+ function longestLineLength(lines) {
159
+ let max = 0;
160
+ for (const l of lines)
161
+ if (l.length > max)
162
+ max = l.length;
163
+ return max;
164
+ }
165
+ /**
166
+ * Split a single oversized LLMReviewInput into N smaller inputs that each
167
+ * fit inside MAX_BATCH_TOKENS. IR, taint, staticFindings and obligations
168
+ * are replicated on every chunk — they are small relative to source and
169
+ * every chunk needs the full structural context to reason correctly.
170
+ *
171
+ * Returns the original input as a 1-element array if it already fits, or
172
+ * an empty array if the input is genuinely unchunkable (non-source inputs
173
+ * whose IR alone exceeds the budget, or files where a single line is
174
+ * larger than the per-chunk source budget — minified bundles).
175
+ */
176
+ export function chunkLargeInput(input, cachedIR) {
177
+ const totalTokens = estimateInputTokens(input, cachedIR);
178
+ if (totalTokens <= CHUNK_TRIGGER_TOKENS)
179
+ return [input];
180
+ // Only CHANGED files include source in the token count, so only those
181
+ // can be chunked. If a CONTEXT file somehow crossed the threshold it's
182
+ // IR-bound and chunking wouldn't help.
183
+ if (!input.source || !isChangedFile(input))
184
+ return [];
185
+ const sourceTokens = estimateTokens(input.source);
186
+ const nonSourceTokens = totalTokens - sourceTokens;
187
+ const sourceBudget = MAX_BATCH_TOKENS - nonSourceTokens - CHUNK_HEADROOM_TOKENS;
188
+ if (sourceBudget <= 0)
189
+ return []; // IR + context alone too large — unchunkable
190
+ const lines = input.source.split('\n');
191
+ // Minified / single-line files: one line exceeds the per-chunk budget.
192
+ // Byte-slicing a line would break syntax; safer to skip than mangle.
193
+ const longestLineTokens = Math.ceil(longestLineLength(lines) / 4);
194
+ if (longestLineTokens > sourceBudget)
195
+ return [];
196
+ // Initial split by average tokens/line. We then verify each chunk's
197
+ // estimated tokens fits under sourceBudget; if any chunk is still over
198
+ // (long lines clumped in one section), we increase numChunks and retry.
199
+ let numChunks = Math.ceil(sourceTokens / sourceBudget);
200
+ let chunks = [];
201
+ for (let attempt = 0; attempt < 8; attempt++) {
202
+ chunks = [];
203
+ const linesPerChunk = Math.ceil(lines.length / numChunks);
204
+ // Clamp overlap so a chunk can never be < 2× its non-overlapped width —
205
+ // otherwise on a very many-chunks split we'd blow the budget with
206
+ // overlap alone.
207
+ const overlap = Math.min(CHUNK_OVERLAP_LINES, Math.floor(linesPerChunk / 2));
208
+ let overflow = false;
209
+ for (let i = 0; i < numChunks; i++) {
210
+ const start = Math.max(0, i * linesPerChunk - overlap);
211
+ const end = Math.min(lines.length, (i + 1) * linesPerChunk + overlap);
212
+ const body = lines.slice(start, end).join('\n');
213
+ const chunkTokens = estimateTokens(body);
214
+ if (chunkTokens > sourceBudget) {
215
+ overflow = true;
216
+ break;
217
+ }
218
+ const header = `// kern-chunk ${i + 1}/${numChunks} of ${input.filePath} — lines ${start + 1}-${end} of ${lines.length}.\n` +
219
+ `// The source file exceeded the single-call token budget. The KERN IR below is complete; this source slice is partial.\n` +
220
+ `// Do not report findings that would require context outside this line range.\n`;
221
+ chunks.push({ ...input, source: header + body });
222
+ }
223
+ if (!overflow)
224
+ return chunks;
225
+ // Re-split at finer granularity. Doubling converges quickly even on
226
+ // highly skewed distributions (a handful of very long lines in one
227
+ // hotspot).
228
+ numChunks *= 2;
229
+ }
230
+ // Pathological input where even very fine-grained line splits can't get
231
+ // below the budget — treat as unchunkable and let caller emit llm-skipped.
232
+ return [];
233
+ }
234
+ function emptyUsage() {
235
+ return { requestCount: 0, requestDurationsMs: [] };
236
+ }
237
+ function mergeUsage(into, call) {
238
+ into.requestCount += 1;
239
+ into.requestDurationsMs.push(call.durationMs);
240
+ if (call.promptTokens !== undefined) {
241
+ into.promptTokens = (into.promptTokens ?? 0) + call.promptTokens;
242
+ }
243
+ if (call.completionTokens !== undefined) {
244
+ into.completionTokens = (into.completionTokens ?? 0) + call.completionTokens;
245
+ }
246
+ }
140
247
  export async function runLLMReview(inputs, configOverride) {
141
248
  const config = resolveConfig(configOverride);
249
+ const usage = emptyUsage();
142
250
  if (!config.available)
143
- return [];
251
+ return { findings: [], usage };
144
252
  const allFindings = [];
145
253
  // Pre-compute IR for each input (used for both estimation and prompt building)
146
254
  const irCache = new Map();
@@ -151,21 +259,40 @@ export async function runLLMReview(inputs, configOverride) {
151
259
  const batches = [];
152
260
  let currentBatch = [];
153
261
  let currentTokens = 0;
262
+ // Expand oversized inputs into chunk arrays up front, then batch uniformly.
263
+ // A chunk produced here carries the full IR + taint + findings + obligations
264
+ // and only a slice of source — so the IR cache key is the same for every
265
+ // chunk of the same original input, which is why we re-use the cached
266
+ // string for the batch token estimate below.
267
+ const expanded = [];
154
268
  for (const input of inputs) {
155
- const inputTokens = estimateInputTokens(input, irCache.get(input));
156
- // Skip files that are too large for any single API call
157
- if (inputTokens > MAX_SINGLE_FILE_TOKENS) {
269
+ const ir = irCache.get(input);
270
+ const chunks = chunkLargeInput(input, ir);
271
+ if (chunks.length === 0) {
272
+ // Unchunkable (IR alone too large, or minified single-line file).
273
+ const inputTokens = estimateInputTokens(input, ir);
158
274
  allFindings.push({
159
275
  source: 'llm',
160
276
  ruleId: 'llm-skipped',
161
277
  severity: 'info',
162
278
  category: 'structure',
163
- message: `File too large for LLM review (~${Math.round(inputTokens / 1000)}K tokens). Consider splitting.`,
279
+ message: `File too large for LLM review (~${Math.round(inputTokens / 1000)}K tokens) and not chunkable (IR-bound or single-line).`,
164
280
  primarySpan: { file: input.filePath, startLine: 0, startCol: 0, endLine: 0, endCol: 0 },
165
281
  fingerprint: `llm-skipped-${input.filePath}`,
166
282
  });
167
283
  continue;
168
284
  }
285
+ for (const chunk of chunks) {
286
+ expanded.push({ input: chunk, originalIR: ir });
287
+ // Make the IR lookup work for chunks too — reviewBatch rebuilds the
288
+ // prompt from the chunk's inferred array, but estimateInputTokens
289
+ // consults irCache by input identity.
290
+ if (chunk !== input)
291
+ irCache.set(chunk, ir);
292
+ }
293
+ }
294
+ for (const { input, originalIR } of expanded) {
295
+ const inputTokens = estimateInputTokens(input, originalIR);
169
296
  // Start new batch if adding this input would exceed budget
170
297
  if (currentBatch.length > 0 && currentTokens + inputTokens > MAX_BATCH_TOKENS) {
171
298
  batches.push(currentBatch);
@@ -180,7 +307,7 @@ export async function runLLMReview(inputs, configOverride) {
180
307
  // Process batches — errors in one batch don't discard findings from others
181
308
  for (const batch of batches) {
182
309
  try {
183
- const findings = await reviewBatch(batch, config, irCache);
310
+ const findings = await reviewBatch(batch, config, irCache, usage);
184
311
  allFindings.push(...findings);
185
312
  }
186
313
  catch (err) {
@@ -195,9 +322,26 @@ export async function runLLMReview(inputs, configOverride) {
195
322
  });
196
323
  }
197
324
  }
198
- return allFindings;
325
+ return { findings: dedupeByFingerprint(allFindings), usage };
326
+ }
327
+ /**
328
+ * Drop findings whose (file, fingerprint) pair has already been seen.
329
+ * Needed because chunked files overlap: a finding landing in the overlap
330
+ * zone of two chunks is reported twice with identical fingerprints.
331
+ */
332
+ function dedupeByFingerprint(findings) {
333
+ const seen = new Set();
334
+ const out = [];
335
+ for (const f of findings) {
336
+ const key = `${f.primarySpan.file}::${f.fingerprint}`;
337
+ if (seen.has(key))
338
+ continue;
339
+ seen.add(key);
340
+ out.push(f);
341
+ }
342
+ return out;
199
343
  }
200
- async function reviewBatch(inputs, config, _irCache) {
344
+ async function reviewBatch(inputs, config, _irCache, usage) {
201
345
  const allFindings = [];
202
346
  // Build combined prompt
203
347
  const parts = [];
@@ -228,12 +372,21 @@ async function reviewBatch(inputs, config, _irCache) {
228
372
  }
229
373
  const systemPrompt = buildSystemPrompt(anySourceIncluded);
230
374
  const userPrompt = parts.join('\n\n');
375
+ // Track the HTTP attempt up front so timeouts / non-2xx / fetch errors are
376
+ // still reported in LLMUsage. Without this, a failing batch returns
377
+ // requestCount=0 and downstream observability (cost/latency dashboards)
378
+ // under-reports outages — the exact class of failure callers most need
379
+ // to see.
380
+ const attemptStartedAt = Date.now();
381
+ let attemptRecorded = false;
231
382
  try {
232
383
  const response = await callLLM([
233
384
  { role: 'system', content: systemPrompt },
234
385
  { role: 'user', content: userPrompt },
235
386
  ], config);
236
- const findings = parseLLMResponse(response, allInferred);
387
+ mergeUsage(usage, response);
388
+ attemptRecorded = true;
389
+ const findings = parseLLMResponse(response.content, allInferred);
237
390
  // Tag all findings as LLM-sourced
238
391
  for (const f of findings) {
239
392
  f.source = 'llm';
@@ -252,6 +405,13 @@ async function reviewBatch(inputs, config, _irCache) {
252
405
  fingerprint: 'llm-error-0',
253
406
  });
254
407
  }
408
+ finally {
409
+ if (!attemptRecorded) {
410
+ // callLLM never merged (timeout / non-2xx / network error). Record a
411
+ // durationMs-only attempt so requestCount and timing are accurate.
412
+ mergeUsage(usage, { content: '', durationMs: Date.now() - attemptStartedAt });
413
+ }
414
+ }
255
415
  return allFindings;
256
416
  }
257
417
  function buildFullReviewChecklist() {
@@ -1 +1 @@
1
- {"version":3,"file":"llm-bridge.js","sourceRoot":"","sources":["../src/llm-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-bridge.js","sourceRoot":"","sources":["../src/llm-bridge.ts"],"names":[],"mappings":"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"}
@@ -125,26 +125,44 @@ export function parseLLMResponse(response, inferred) {
125
125
  aliasMap.set(r.promptAlias, r);
126
126
  }
127
127
  const validAliases = new Set(aliasMap.keys());
128
- // Extract JSON array from response (might be wrapped in markdown code blocks)
128
+ // Extract JSON array from response.
129
129
  let jsonStr = response.trim();
130
+ // Reasoning models (MiniMax-M2.7, DeepSeek-R1, Qwen-QwQ) wrap the
131
+ // actual answer in <think>...</think>. Strip those blocks before
132
+ // looking for JSON. Non-reasoning responses are unaffected.
133
+ jsonStr = jsonStr.replace(/<think>[\s\S]*?<\/think>/gi, '').trim();
134
+ // Some models leave an unterminated <think>...<think> when truncated.
135
+ // Drop everything before the last </think> if one survived.
136
+ const lastThinkEnd = jsonStr.lastIndexOf('</think>');
137
+ if (lastThinkEnd >= 0)
138
+ jsonStr = jsonStr.slice(lastThinkEnd + '</think>'.length).trim();
130
139
  // Strip markdown code fences
131
140
  if (jsonStr.startsWith('```')) {
132
141
  jsonStr = jsonStr.replace(/^```(?:json)?\s*\n?/, '').replace(/\n?```\s*$/, '');
133
142
  }
143
+ // Some reasoning models still emit prose before the JSON array.
144
+ // Find the first '[' and take from there to the matching last ']'.
145
+ const firstBracket = jsonStr.indexOf('[');
146
+ const lastBracket = jsonStr.lastIndexOf(']');
147
+ if (firstBracket > 0 && lastBracket > firstBracket) {
148
+ jsonStr = jsonStr.slice(firstBracket, lastBracket + 1);
149
+ }
134
150
  let parsed;
135
151
  try {
136
152
  parsed = JSON.parse(jsonStr);
137
153
  }
138
154
  catch {
155
+ // Infrastructure failure — LLM returned malformed output.
156
+ // Emit info-level notice (not error/bug) so it's visible but never blocks CI.
139
157
  return [
140
158
  {
141
159
  source: 'llm',
142
- ruleId: 'parse-error',
143
- severity: 'error',
144
- category: 'bug',
145
- message: `Failed to parse LLM response as JSON: ${jsonStr.substring(0, 100)}...`,
160
+ ruleId: 'llm-error',
161
+ severity: 'info',
162
+ category: 'structure',
163
+ message: `LLM review returned unparseable output (${jsonStr.substring(0, 60).replace(/\n/g, ' ')}…)`,
146
164
  primarySpan: { file: '', startLine: 0, startCol: 0, endLine: 0, endCol: 0 },
147
- fingerprint: createFingerprint('parse-error', 0, 0),
165
+ fingerprint: createFingerprint('llm-error', 0, 0),
148
166
  },
149
167
  ];
150
168
  }
@@ -152,12 +170,12 @@ export function parseLLMResponse(response, inferred) {
152
170
  return [
153
171
  {
154
172
  source: 'llm',
155
- ruleId: 'parse-error',
156
- severity: 'error',
157
- category: 'bug',
158
- message: 'LLM response is not a JSON array',
173
+ ruleId: 'llm-error',
174
+ severity: 'info',
175
+ category: 'structure',
176
+ message: 'LLM review returned non-array JSON',
159
177
  primarySpan: { file: '', startLine: 0, startCol: 0, endLine: 0, endCol: 0 },
160
- fingerprint: createFingerprint('parse-error', 0, 1),
178
+ fingerprint: createFingerprint('llm-error', 0, 1),
161
179
  },
162
180
  ];
163
181
  }
@@ -1 +1 @@
1
- {"version":3,"file":"llm-review.js","sourceRoot":"","sources":["../src/llm-review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-review.js","sourceRoot":"","sources":["../src/llm-review.ts"],"names":[],"mappings":"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"}