circle-ir-ai 2.18.2 → 2.18.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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,58 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.18.3] - 2026-06-24
9
+
10
+ ### Dependencies
11
+
12
+ - Bump `circle-ir` `3.104.0` → `3.106.0`. Sprints 47 and 48 of the
13
+ cognium-dev monorepo:
14
+ - **3.105.0** — Sprint 47 closes the Tier-D policy queue
15
+ (cognium-dev #161, #163, #164, #165, #168, #177). Introduces the
16
+ `library-api-surface:caller-responsibility` tag and the central
17
+ `applyLibraryApiSurfaceDowngrade` hook that downgrades sinks owned
18
+ by library API surface methods (default-config, factory, accessor
19
+ patterns) from `high` to `info` while preserving the
20
+ `original_severity` field on `SastFinding` for restoration.
21
+ - **3.106.0** — Sprint 48 ships ADR-008 project-profile architecture
22
+ (cognium-dev#169). New `AnalyzerOptions.projectProfile?:
23
+ ProjectProfile | Map<string, ProjectProfile>` enables the calling
24
+ CLI to declare the project's intent (`{ shape: 'library' |
25
+ 'application' | 'cli' | 'server' | 'plugin', env: 'production' |
26
+ 'dev' | 'sample' | 'benchmark' | 'test' }`) so the engine can
27
+ apply the 5×5 matrix-aware severity transform internally. Wired
28
+ inside `analyze()`; no new public function exports.
29
+
30
+ ### Engine API surface (additive, opt-in)
31
+
32
+ - New type-level exports propagate through circle-ir-ai's
33
+ `export * from 'circle-ir'`: `ProjectShape`, `ProjectEnv`,
34
+ `ProjectProfile`. These are TypeScript-only (erased at runtime;
35
+ not enumerable on the imported module object).
36
+ - `analyze()` / `analyzeProject()` accept the new
37
+ `AnalyzerOptions.projectProfile?: ProjectProfile | Map<string,
38
+ ProjectProfile>` field (single profile applies to every file, or
39
+ per-file map for monorepos).
40
+ - The internal helpers `applyLibraryApiSurfaceDowngrade` and
41
+ `applyProjectProfileTransform` are NOT exposed at the package
42
+ boundary in 3.106.0 — they are wired inside `analyzer.js` between
43
+ the verification pass and the response build. Callers consume the
44
+ behaviour transparently through `analyze()`; downgraded findings
45
+ carry `library-api-surface:caller-responsibility` in their tag set
46
+ and the pre-downgrade severity is preserved as
47
+ `SastFinding.original_severity`.
48
+ - No mastra workflow / scanner changes; this release is a pure
49
+ dependency cascade. The CLI layer in a follow-up cognium-ai release
50
+ will wire `cognium.config.json#projectProfile` through to
51
+ `analyzeOptions`.
52
+
53
+ ### Verification
54
+
55
+ - `npm run typecheck` — clean.
56
+ - `npm run build` — clean.
57
+ - `npm test` — **900 / 900 pass** (3 skipped, unchanged from 2.18.2).
58
+ - `npm ls circle-ir` — resolves to `3.106.0`.
59
+
8
60
  ## [2.18.2] - 2026-06-24
9
61
 
10
62
  ### Added
@@ -18,7 +18,7 @@ export declare const enrichmentAgent: Agent<"enrichment-agent", {
18
18
  annotations: string;
19
19
  imports: string;
20
20
  }, {
21
- role: "controller" | "service" | "repository" | "utility" | "entity" | "unknown";
21
+ role: "unknown" | "controller" | "service" | "repository" | "utility" | "entity";
22
22
  confidence: number;
23
23
  reasoning: string;
24
24
  indicators: string[];
@@ -121,7 +121,7 @@ export declare const orchestratorAgent: Agent<"orchestrator-agent", {
121
121
  annotations: string;
122
122
  imports: string;
123
123
  }, {
124
- role: "controller" | "service" | "repository" | "utility" | "entity" | "unknown";
124
+ role: "unknown" | "controller" | "service" | "repository" | "utility" | "entity";
125
125
  confidence: number;
126
126
  reasoning: string;
127
127
  indicators: string[];
@@ -205,7 +205,7 @@ export declare const agents: {
205
205
  annotations: string;
206
206
  imports: string;
207
207
  }, {
208
- role: "controller" | "service" | "repository" | "utility" | "entity" | "unknown";
208
+ role: "unknown" | "controller" | "service" | "repository" | "utility" | "entity";
209
209
  confidence: number;
210
210
  reasoning: string;
211
211
  indicators: string[];
@@ -292,7 +292,7 @@ export declare const agents: {
292
292
  annotations: string;
293
293
  imports: string;
294
294
  }, {
295
- role: "controller" | "service" | "repository" | "utility" | "entity" | "unknown";
295
+ role: "unknown" | "controller" | "service" | "repository" | "utility" | "entity";
296
296
  confidence: number;
297
297
  reasoning: string;
298
298
  indicators: string[];
@@ -27,7 +27,7 @@ export declare function createMastraInstance(options?: MastraInstanceOptions): {
27
27
  annotations: string;
28
28
  imports: string;
29
29
  }, {
30
- role: "controller" | "service" | "repository" | "utility" | "entity" | "unknown";
30
+ role: "unknown" | "controller" | "service" | "repository" | "utility" | "entity";
31
31
  confidence: number;
32
32
  reasoning: string;
33
33
  indicators: string[];
@@ -114,7 +114,7 @@ export declare function createMastraInstance(options?: MastraInstanceOptions): {
114
114
  annotations: string;
115
115
  imports: string;
116
116
  }, {
117
- role: "controller" | "service" | "repository" | "utility" | "entity" | "unknown";
117
+ role: "unknown" | "controller" | "service" | "repository" | "utility" | "entity";
118
118
  confidence: number;
119
119
  reasoning: string;
120
120
  indicators: string[];
@@ -199,7 +199,7 @@ export declare function createMastraInstance(options?: MastraInstanceOptions): {
199
199
  annotations: string;
200
200
  imports: string;
201
201
  }, {
202
- role: "controller" | "service" | "repository" | "utility" | "entity" | "unknown";
202
+ role: "unknown" | "controller" | "service" | "repository" | "utility" | "entity";
203
203
  confidence: number;
204
204
  reasoning: string;
205
205
  indicators: string[];
@@ -286,7 +286,7 @@ export declare function createMastraInstance(options?: MastraInstanceOptions): {
286
286
  annotations: string;
287
287
  imports: string;
288
288
  }, {
289
- role: "controller" | "service" | "repository" | "utility" | "entity" | "unknown";
289
+ role: "unknown" | "controller" | "service" | "repository" | "utility" | "entity";
290
290
  confidence: number;
291
291
  reasoning: string;
292
292
  indicators: string[];
@@ -21,7 +21,7 @@ export declare const RoleClassificationResponseSchema: z.ZodEffects<z.ZodObject<
21
21
  reasoning?: string | undefined;
22
22
  indicators?: string[] | undefined;
23
23
  }>, {
24
- role: "controller" | "service" | "repository" | "utility" | "entity" | "unknown";
24
+ role: "unknown" | "controller" | "service" | "repository" | "utility" | "entity";
25
25
  confidence: number;
26
26
  reasoning: string;
27
27
  indicators: string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "circle-ir-ai",
3
- "version": "2.18.2",
3
+ "version": "2.18.3",
4
4
  "description": "LLM-enhanced SAST analysis built on circle-ir",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -95,7 +95,7 @@
95
95
  "dependencies": {
96
96
  "@ax-llm/ax": "^20.0.0",
97
97
  "@mastra/core": "^1.18.0",
98
- "circle-ir": "3.104.0",
98
+ "circle-ir": "3.106.0",
99
99
  "minimatch": "^10.2.5",
100
100
  "p-queue": "^9.1.0"
101
101
  },