circle-ir-ai 2.28.1 → 2.28.3

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.
@@ -46,10 +46,48 @@ const DISCOVERY_CACHE_SUBDIR = path.join('.cognium', 'cache');
46
46
  * Prompt-version sentinel for discovery. Bump when the discovery prompt
47
47
  * template materially changes (e.g. new few-shot examples, different
48
48
  * instructions for `exploitable`, new output schema).
49
+ *
50
+ * **disc-v2 (cognium-ai#163 B1):** `annotations` and `imports` are now
51
+ * folded into the key. The prompt embeds them (they change how the LLM
52
+ * reasons about attack surface — e.g. `@RestController` vs `@Deprecated`)
53
+ * but the v1 key didn't cover them, so two methods with byte-identical
54
+ * bodies but different annotation/import sets collided on the same
55
+ * entry. Warm entries under `disc-v1` are unreachable after this bump
56
+ * and will roll off on TTL / R2_PREFIX rotation.
57
+ */
58
+ const PROMPT_VER = 'disc-v2';
59
+ /**
60
+ * Cap on the number of imports that get folded into the cache key.
61
+ * Mirrors the `method.imports.slice(0, 20)` slice at
62
+ * `discovery.ts:381` — the prompt-time slice and the key-time slice
63
+ * MUST agree, otherwise the cache key won't reflect what the LLM
64
+ * actually saw.
65
+ */
66
+ const IMPORTS_KEY_CAP = 20;
67
+ /**
68
+ * Canonicalize a list for cache-key hashing: sort ascending, dedup,
69
+ * cap to `maxItems` (0 = no cap). Returns a comma-joined string ready
70
+ * to hash. Order-independent by design.
71
+ */
72
+ function canonicalizeStringList(items, maxItems = 0) {
73
+ const sorted = [...new Set(items)].sort();
74
+ const capped = maxItems > 0 ? sorted.slice(0, maxItems) : sorted;
75
+ return capped.join(',');
76
+ }
77
+ /**
78
+ * Separate prompt-version sentinel for the language-specific discoverers
79
+ * (`discoverSourcesForLanguage` / `discoverSinksForLanguage`). These use
80
+ * a different prompt template (`getPrompt(language, 'discoverSources' |
81
+ * 'discoverSinks')`) than the per-CWE `discoverInMethod` flow, so they
82
+ * need an independent version dimension. cognium-ai#161.
49
83
  */
50
- const PROMPT_VER = 'disc-v1';
84
+ const LANG_DISCOVERER_PROMPT_VER = 'lang-disc-v1';
51
85
  let _instance = null;
52
86
  let _instanceFingerprint = '';
87
+ let _sourcesLangInstance = null;
88
+ let _sourcesLangFingerprint = '';
89
+ let _sinksLangInstance = null;
90
+ let _sinksLangFingerprint = '';
53
91
  /**
54
92
  * Get the discovery-phase persistent cache, keyed by per-phase model
55
93
  * fingerprint. When `LLM_DISCOVERY_CACHE=0` returns a disabled cache.
@@ -72,6 +110,107 @@ export function getDiscoveryCache(config = getDefaultLLMConfig()) {
72
110
  export function resetDiscoveryCache() {
73
111
  _instance = null;
74
112
  _instanceFingerprint = '';
113
+ _sourcesLangInstance = null;
114
+ _sourcesLangFingerprint = '';
115
+ _sinksLangInstance = null;
116
+ _sinksLangFingerprint = '';
117
+ }
118
+ /**
119
+ * Get the persistent cache for `discoverSourcesForLanguage` (cognium-ai#161).
120
+ * Uses the same `'discovery'` namespace and per-phase discovery model
121
+ * fingerprint as the per-CWE cache, but a different classifier so the two
122
+ * never collide. Honors `LLM_DISCOVERY_CACHE=0` to disable.
123
+ */
124
+ export function getDiscoverSourcesLanguageCache(config = getDefaultLLMConfig()) {
125
+ const enabled = process.env.LLM_DISCOVERY_CACHE !== '0';
126
+ const fingerprint = getDiscoveryModelFingerprint(config);
127
+ if (!_sourcesLangInstance
128
+ || _sourcesLangFingerprint !== fingerprint
129
+ || _sourcesLangInstance.getModelFingerprint() !== fingerprint) {
130
+ _sourcesLangInstance = new ClassificationCache({
131
+ namespace: 'discovery',
132
+ cacheDir: path.join(process.cwd(), DISCOVERY_CACHE_SUBDIR),
133
+ modelFingerprint: fingerprint,
134
+ enabled,
135
+ });
136
+ _sourcesLangFingerprint = fingerprint;
137
+ }
138
+ return _sourcesLangInstance;
139
+ }
140
+ /**
141
+ * Get the persistent cache for `discoverSinksForLanguage` (cognium-ai#161).
142
+ * See `getDiscoverSourcesLanguageCache` for the namespace/fingerprint
143
+ * rationale.
144
+ */
145
+ export function getDiscoverSinksLanguageCache(config = getDefaultLLMConfig()) {
146
+ const enabled = process.env.LLM_DISCOVERY_CACHE !== '0';
147
+ const fingerprint = getDiscoveryModelFingerprint(config);
148
+ if (!_sinksLangInstance
149
+ || _sinksLangFingerprint !== fingerprint
150
+ || _sinksLangInstance.getModelFingerprint() !== fingerprint) {
151
+ _sinksLangInstance = new ClassificationCache({
152
+ namespace: 'discovery',
153
+ cacheDir: path.join(process.cwd(), DISCOVERY_CACHE_SUBDIR),
154
+ modelFingerprint: fingerprint,
155
+ enabled,
156
+ });
157
+ _sinksLangFingerprint = fingerprint;
158
+ }
159
+ return _sinksLangInstance;
160
+ }
161
+ /**
162
+ * Compute the `(content, classifier)` tuple for the source-discoverer
163
+ * cache. Components (in order):
164
+ * - language — Java vs Kotlin etc. (same rationale as D6 above)
165
+ * - methodSha — code edit invalidates only that entry
166
+ * - functionName — same body called as different methods is a distinct
167
+ * prompt (the name is templated into the user prompt)
168
+ * - moduleRole — passed verbatim into the prompt
169
+ * - existingSourcesSha — the "what we already found" context changes
170
+ * the prompt, so it must change the key
171
+ * - LANG_DISCOVERER_PROMPT_VER — global invalidator for the language
172
+ * discoverer prompt template
173
+ */
174
+ export function computeDiscoverSourcesLanguageCacheKey(input) {
175
+ const methodSha = crypto.createHash('sha256').update(input.code).digest('hex');
176
+ const existingSha = crypto.createHash('sha256').update(input.existingSources).digest('hex');
177
+ return {
178
+ content: [
179
+ input.language,
180
+ methodSha,
181
+ input.functionName,
182
+ input.moduleRole,
183
+ existingSha,
184
+ LANG_DISCOVERER_PROMPT_VER,
185
+ ].join('\0'),
186
+ classifier: 'discover-sources-lang',
187
+ };
188
+ }
189
+ /**
190
+ * Compute the `(content, classifier)` tuple for the sink-discoverer
191
+ * cache. Mirrors `computeDiscoverSourcesLanguageCacheKey` but uses the
192
+ * sink-prompt context (`methodCalls`, `existingSinks`) instead of the
193
+ * source-prompt context.
194
+ */
195
+ export function computeDiscoverSinksLanguageCacheKey(input) {
196
+ const methodSha = crypto.createHash('sha256').update(input.code).digest('hex');
197
+ const methodCallsSha = crypto.createHash('sha256').update(input.methodCalls).digest('hex');
198
+ const existingSha = crypto.createHash('sha256').update(input.existingSinks).digest('hex');
199
+ return {
200
+ content: [
201
+ input.language,
202
+ methodSha,
203
+ input.functionName,
204
+ methodCallsSha,
205
+ existingSha,
206
+ LANG_DISCOVERER_PROMPT_VER,
207
+ ].join('\0'),
208
+ classifier: 'discover-sinks-lang',
209
+ };
210
+ }
211
+ /** Test-only: expose the language-discoverer prompt-version sentinel. */
212
+ export function getLangDiscovererCachePromptVersion() {
213
+ return LANG_DISCOVERER_PROMPT_VER;
75
214
  }
76
215
  /**
77
216
  * Compute the `(content, classifier)` tuple for the underlying
@@ -83,19 +222,54 @@ export function resetDiscoveryCache() {
83
222
  * - sortedCweSet — different CWE-set requests on the same method don't
84
223
  * reuse each other's prompts
85
224
  * - language — Java vs Kotlin etc. (D6 fix)
225
+ * - annotationsSha — sorted+deduped set of annotations, hashed. Two
226
+ * methods with identical bodies but different annotations
227
+ * (`@RestController` vs `@Deprecated`) now get different entries.
228
+ * Order-invariant. (cognium-ai#163 B1, disc-v2)
229
+ * - importsSha — sorted+deduped top-20 imports, hashed. Mirrors the
230
+ * prompt-time `.slice(0, 20)` at discovery.ts:381. Order-invariant.
231
+ * (cognium-ai#163 B1, disc-v2)
86
232
  * - PROMPT_VER — global discovery-prompt invalidator
87
233
  *
88
234
  * Note: `className` / `methodName` are intentionally NOT in the key
89
235
  * (D6 fix). They're prompt-context, not identity.
236
+ *
237
+ * `annotations` and `imports` default to `[]` for back-compat with
238
+ * older call-sites; the empty-list branch is stable across TS undefined
239
+ * / omitted / `[]` (all canonicalize to the empty string, then hash to
240
+ * the same SHA).
90
241
  */
91
242
  export function computeDiscoveryCacheKey(input) {
92
243
  const methodSha = crypto.createHash('sha256').update(input.methodCode).digest('hex');
93
244
  const sortedCweSet = [...input.targetCWEs].sort().join(',');
245
+ const annotationsSha = crypto
246
+ .createHash('sha256')
247
+ .update(canonicalizeStringList(input.annotations ?? []))
248
+ .digest('hex');
249
+ const importsSha = crypto
250
+ .createHash('sha256')
251
+ .update(canonicalizeStringList(input.imports ?? [], IMPORTS_KEY_CAP))
252
+ .digest('hex');
94
253
  return {
95
- content: [methodSha, sortedCweSet, input.language, PROMPT_VER].join('\0'),
254
+ content: [
255
+ methodSha,
256
+ sortedCweSet,
257
+ input.language,
258
+ annotationsSha,
259
+ importsSha,
260
+ PROMPT_VER,
261
+ ].join('\0'),
96
262
  classifier: 'discovery-method',
97
263
  };
98
264
  }
265
+ /**
266
+ * Test-only: expose the canonicalization used by `computeDiscoveryCacheKey`
267
+ * so tests can assert the prompt-time slice matches the key-time slice.
268
+ * Mirrors what discovery.ts must do when building the user prompt.
269
+ */
270
+ export function canonicalizeImportsForKey(imports) {
271
+ return [...new Set(imports)].sort().slice(0, IMPORTS_KEY_CAP);
272
+ }
99
273
  /** Test-only: expose the prompt-version sentinel. */
100
274
  export function getDiscoveryCachePromptVersion() {
101
275
  return PROMPT_VER;
@@ -1 +1 @@
1
- {"version":3,"file":"discovery-cache.js","sourceRoot":"","sources":["../../src/cache/discovery-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAkB,MAAM,kBAAkB,CAAC;AAGrG,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,UAAU,GAAG,SAAS,CAAC;AAE7B,IAAI,SAAS,GAAgD,IAAI,CAAC;AAClE,IAAI,oBAAoB,GAAG,EAAE,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAoB,mBAAmB,EAAE;IAEzC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG,CAAC;IACxD,MAAM,WAAW,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAEzD,IAAI,CAAC,SAAS,IAAI,oBAAoB,KAAK,WAAW,IAAI,SAAS,CAAC,mBAAmB,EAAE,KAAK,WAAW,EAAE,CAAC;QAC1G,SAAS,GAAG,IAAI,mBAAmB,CAAkB;YACnD,SAAS,EAAE,WAAW;YACtB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC;YAC1D,gBAAgB,EAAE,WAAW;YAC7B,OAAO;SACR,CAAC,CAAC;QACH,oBAAoB,GAAG,WAAW,CAAC;IACrC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,mBAAmB;IACjC,SAAS,GAAG,IAAI,CAAC;IACjB,oBAAoB,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAIxC;IACC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO;QACL,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACzE,UAAU,EAAE,kBAAkB;KAC/B,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,8BAA8B;IAC5C,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"discovery-cache.js","sourceRoot":"","sources":["../../src/cache/discovery-cache.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  import { AxAIOpenAI, AxSignature } from '@ax-llm/ax';
8
8
  import type { LLMConfig } from './config.js';
9
9
  import { type SupportedLLMLanguage } from './prompts/index.js';
10
+ import { type LangDiscoveredSource, type LangDiscoveredSink } from '../cache/discovery-cache.js';
10
11
  /**
11
12
  * Signature for source/sink enrichment
12
13
  */
@@ -475,13 +476,7 @@ export declare class AxLLMClient {
475
476
  functionName: string;
476
477
  moduleRole: string;
477
478
  existingSources: string;
478
- }): Promise<Array<{
479
- line: number;
480
- variable: string;
481
- type: string;
482
- confidence: number;
483
- reasoning: string;
484
- }>>;
479
+ }): Promise<LangDiscoveredSource[]>;
485
480
  /**
486
481
  * Discover sinks using language-specific prompt
487
482
  */
@@ -490,15 +485,7 @@ export declare class AxLLMClient {
490
485
  functionName: string;
491
486
  methodCalls: string;
492
487
  existingSinks: string;
493
- }): Promise<Array<{
494
- line: number;
495
- method: string;
496
- type: string;
497
- cwe: string;
498
- argPositions: number[];
499
- confidence: number;
500
- reasoning: string;
501
- }>>;
488
+ }): Promise<LangDiscoveredSink[]>;
502
489
  /**
503
490
  * Verify vulnerability using language-specific prompt
504
491
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ax-client.d.ts","sourceRoot":"","sources":["../../src/llm/ax-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ax-client.d.ts","sourceRoot":"","sources":["../../src/llm/ax-client.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import { sanitizeCodeForPrompt, sanitizeListForPrompt, formatSystemPrompt, logIn
12
12
  import { getPrompt } from './prompts/index.js';
13
13
  import { llmCallLogger } from './call-logger.js';
14
14
  import { currentLLMContext, withLLMContext } from './debug-context.js';
15
+ import { getDiscoverSourcesLanguageCache, getDiscoverSinksLanguageCache, computeDiscoverSourcesLanguageCacheKey, computeDiscoverSinksLanguageCacheKey, } from '../cache/discovery-cache.js';
15
16
  // ============================================================================
16
17
  // Signatures for Security Analysis
17
18
  // ============================================================================
@@ -1991,6 +1992,27 @@ If no taint flows exist, return: {"taintFlows": [], "reasoning": "No cross-file
1991
1992
  */
1992
1993
  async discoverSourcesForLanguage(language, input) {
1993
1994
  const safeCode = truncateCode(sanitizeCodeForPrompt(input.code));
1995
+ // cognium-ai#161 — persistent discovery cache for the language-specific
1996
+ // source discoverer. Keyed on the sanitized prompt context, NOT the raw
1997
+ // input, so different inputs that produce the same prompt share the
1998
+ // entry. Cache-miss path is unchanged.
1999
+ const cache = getDiscoverSourcesLanguageCache(this.config);
2000
+ const cacheKey = computeDiscoverSourcesLanguageCacheKey({
2001
+ language,
2002
+ code: safeCode,
2003
+ functionName: sanitizeCodeForPrompt(input.functionName),
2004
+ moduleRole: sanitizeCodeForPrompt(input.moduleRole),
2005
+ existingSources: sanitizeCodeForPrompt(input.existingSources),
2006
+ });
2007
+ const cached = await cache.get(cacheKey.content, cacheKey.classifier);
2008
+ if (cached) {
2009
+ llmCallLogger.logDiscoveryCacheHit({
2010
+ signature: 'discoverSourcesForLanguage',
2011
+ phase: 'enrichment',
2012
+ model: this.config.phases.enrichment.model,
2013
+ });
2014
+ return cached;
2015
+ }
1994
2016
  const model = this.config.phases.enrichment.model;
1995
2017
  const systemPrompt = formatSystemPrompt(getPrompt(language, 'system'), model);
1996
2018
  const userPrompt = getPrompt(language, 'discoverSources', {
@@ -2006,13 +2028,36 @@ If no taint flows exist, return: {"taintFlows": [], "reasoning": "No cross-file
2006
2028
  if (!parseResult.success) {
2007
2029
  return [];
2008
2030
  }
2009
- return parseResult.data.additionalSources;
2031
+ const result = parseResult.data.additionalSources;
2032
+ // Fire-and-forget cache write — never block the caller on a cache
2033
+ // failure (same pattern as verify-cache).
2034
+ void cache.set(cacheKey.content, cacheKey.classifier, result);
2035
+ return result;
2010
2036
  }
2011
2037
  /**
2012
2038
  * Discover sinks using language-specific prompt
2013
2039
  */
2014
2040
  async discoverSinksForLanguage(language, input) {
2015
2041
  const safeCode = truncateCode(sanitizeCodeForPrompt(input.code));
2042
+ // cognium-ai#161 — persistent discovery cache for the language-specific
2043
+ // sink discoverer (mirrors source-discoverer wrap above).
2044
+ const cache = getDiscoverSinksLanguageCache(this.config);
2045
+ const cacheKey = computeDiscoverSinksLanguageCacheKey({
2046
+ language,
2047
+ code: safeCode,
2048
+ functionName: sanitizeCodeForPrompt(input.functionName),
2049
+ methodCalls: sanitizeCodeForPrompt(input.methodCalls),
2050
+ existingSinks: sanitizeCodeForPrompt(input.existingSinks),
2051
+ });
2052
+ const cached = await cache.get(cacheKey.content, cacheKey.classifier);
2053
+ if (cached) {
2054
+ llmCallLogger.logDiscoveryCacheHit({
2055
+ signature: 'discoverSinksForLanguage',
2056
+ phase: 'enrichment',
2057
+ model: this.config.phases.enrichment.model,
2058
+ });
2059
+ return cached;
2060
+ }
2016
2061
  const model = this.config.phases.enrichment.model;
2017
2062
  const systemPrompt = formatSystemPrompt(getPrompt(language, 'system'), model);
2018
2063
  const userPrompt = getPrompt(language, 'discoverSinks', {
@@ -2027,7 +2072,9 @@ If no taint flows exist, return: {"taintFlows": [], "reasoning": "No cross-file
2027
2072
  if (!parseResult.success) {
2028
2073
  return [];
2029
2074
  }
2030
- return parseResult.data.additionalSinks;
2075
+ const result = parseResult.data.additionalSinks;
2076
+ void cache.set(cacheKey.content, cacheKey.classifier, result);
2077
+ return result;
2031
2078
  }
2032
2079
  /**
2033
2080
  * Verify vulnerability using language-specific prompt