circle-ir-ai 2.100.0 → 2.101.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.
- package/CHANGELOG.md +27 -0
- package/dist/skills/capability-mismatch.d.ts +0 -7
- package/dist/skills/capability-mismatch.d.ts.map +1 -1
- package/dist/skills/capability-mismatch.js +32 -2
- package/dist/skills/capability-mismatch.js.map +1 -1
- package/dist/skills/instruction-safety.d.ts.map +1 -1
- package/dist/skills/instruction-safety.js +5 -0
- package/dist/skills/instruction-safety.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,33 @@ 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.101.0] - 2026-08-09
|
|
9
|
+
|
|
10
|
+
### Fixed — capability-mismatch + instruction-safety precision (skillsregistry #4, #35, #18)
|
|
11
|
+
|
|
12
|
+
Clears the safe/benign false-positive classes flagged by the oracle v14 gate.
|
|
13
|
+
Most of the v14 regression (25 fixtures / 52 findings, 2026-07-25) was already
|
|
14
|
+
resolved by this session's cumulative detector/instruction-safety tightening;
|
|
15
|
+
this closes the remainder:
|
|
16
|
+
|
|
17
|
+
- **Capability-mismatch (#4)** — (a) filter internal-plumbing source types
|
|
18
|
+
(`interprocedural_param` / `plugin_param` / `constructor_field` / `config_param`)
|
|
19
|
+
from the comparison: accepting a function argument is code structure, not an
|
|
20
|
+
undisclosed trust-boundary capability (cleared safe-SR-B1 settings-sync);
|
|
21
|
+
(b) DROP `false_advertising` mismatches entirely (code does LESS than declared
|
|
22
|
+
— never a security risk, and dominated by NL over-extraction noise; cleared
|
|
23
|
+
safe-SR-B6 whose "shell setup" prose was over-read as a declared
|
|
24
|
+
`command_injection`). The `undisclosed_capability` direction (code does MORE
|
|
25
|
+
than declared) is preserved — SR-B12-codebase-upload still fires.
|
|
26
|
+
- **Instruction-safety (#35/#18)** — reinforced the `indirect_injection`
|
|
27
|
+
format-vs-instructions guard with a HARD RULE so a reference described as a
|
|
28
|
+
FORMAT/TEMPLATE spec (safe-SR-A6 "read REFERENCE.md for the output format, then
|
|
29
|
+
follow it") never fires, even on "follow it exactly" wording.
|
|
30
|
+
|
|
31
|
+
Measured on the safe/benign corpus: **0 deterministic FP / 183**, **0
|
|
32
|
+
capability-mismatch FP** on the #4 mirrors, safe-SR-A6 clean 6/6. Guard:
|
|
33
|
+
`tests/capability-mismatch.test.ts` (+3). Full suite 1791 pass / 3 skip.
|
|
34
|
+
|
|
8
35
|
## [2.100.0] - 2026-08-08
|
|
9
36
|
|
|
10
37
|
### Added — fetch_and_execute + persistence detectors (skillsregistry #25, partial)
|
|
@@ -10,12 +10,5 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import type { CircleIR } from 'circle-ir';
|
|
12
12
|
import type { SkillFinding, ExtractedArtifact } from './types.js';
|
|
13
|
-
/**
|
|
14
|
-
* Detect capability mismatches between SKILL.md and code
|
|
15
|
-
*
|
|
16
|
-
* @param skillMdIR - CircleIR extracted from SKILL.md
|
|
17
|
-
* @param codeArtifacts - CircleIR extracted from code files
|
|
18
|
-
* @returns List of capability mismatch findings
|
|
19
|
-
*/
|
|
20
13
|
export declare function detectCapabilityMismatches(skillMdIR: CircleIR, codeArtifacts: ExtractedArtifact[]): Promise<SkillFinding[]>;
|
|
21
14
|
//# sourceMappingURL=capability-mismatch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-mismatch.d.ts","sourceRoot":"","sources":["../../src/skills/capability-mismatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAA0B,MAAM,WAAW,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"capability-mismatch.d.ts","sourceRoot":"","sources":["../../src/skills/capability-mismatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAA0B,MAAM,WAAW,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAwBlE,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,QAAQ,EACnB,aAAa,EAAE,iBAAiB,EAAE,GACjC,OAAO,CAAC,YAAY,EAAE,CAAC,CAmEzB"}
|
|
@@ -17,6 +17,18 @@ import { withLLMContext } from '../llm/debug-context.js';
|
|
|
17
17
|
* @param codeArtifacts - CircleIR extracted from code files
|
|
18
18
|
* @returns List of capability mismatch findings
|
|
19
19
|
*/
|
|
20
|
+
/**
|
|
21
|
+
* Source types that are internal plumbing / code structure, not a
|
|
22
|
+
* trust-boundary capability a SKILL.md declares. Excluded from the
|
|
23
|
+
* capability-mismatch comparison so accepting a function argument isn't reported
|
|
24
|
+
* as an undisclosed capability (cognium-ai#4).
|
|
25
|
+
*/
|
|
26
|
+
const NON_CAPABILITY_SOURCE_TYPES = new Set([
|
|
27
|
+
'interprocedural_param',
|
|
28
|
+
'plugin_param',
|
|
29
|
+
'constructor_field',
|
|
30
|
+
'config_param',
|
|
31
|
+
]);
|
|
20
32
|
export async function detectCapabilityMismatches(skillMdIR, codeArtifacts) {
|
|
21
33
|
const findings = [];
|
|
22
34
|
// Extract declared capabilities from SKILL.md
|
|
@@ -27,6 +39,16 @@ export async function detectCapabilityMismatches(skillMdIR, codeArtifacts) {
|
|
|
27
39
|
const actualSinks = [];
|
|
28
40
|
for (const artifact of codeArtifacts) {
|
|
29
41
|
for (const source of artifact.ir.taint.sources || []) {
|
|
42
|
+
// cognium-ai#4 — skip internal-plumbing source types. A function taking a
|
|
43
|
+
// parameter (`interprocedural_param`), a plugin/SPI arg, or a
|
|
44
|
+
// constructor field is code STRUCTURE, not a trust-boundary "capability"
|
|
45
|
+
// a SKILL.md would declare. Feeding them to the mismatch LLM produced
|
|
46
|
+
// `undisclosed capability` FPs on benign safe mirrors that merely accept
|
|
47
|
+
// an argument (safe-SR-B1 settings-sync `sync(dest)`, safe-SR-B6
|
|
48
|
+
// project-config `setup()`). Same non-boundary rationale as the
|
|
49
|
+
// source-classifier (#264 NON_TRUST_BOUNDARY_SOURCE_TYPES).
|
|
50
|
+
if (NON_CAPABILITY_SOURCE_TYPES.has((source.type ?? '').toString()))
|
|
51
|
+
continue;
|
|
30
52
|
actualSources.push({ ...source, artifact: artifact.artifact });
|
|
31
53
|
}
|
|
32
54
|
for (const sink of artifact.ir.taint.sinks || []) {
|
|
@@ -38,9 +60,17 @@ export async function detectCapabilityMismatches(skillMdIR, codeArtifacts) {
|
|
|
38
60
|
// Convert to findings, normalizing severity by mismatch direction.
|
|
39
61
|
// The LLM is unreliable at distinguishing "code does MORE than declared"
|
|
40
62
|
// (a real risk) from "code does LESS than declared" (only a doc gap).
|
|
41
|
-
// Force the safe direction to LOW regardless of what the LLM emitted —
|
|
42
|
-
// see cognium-ai#100 Bug #2 for the original false-HIGH report.
|
|
43
63
|
for (const mismatch of mismatches) {
|
|
64
|
+
// cognium-ai#4 / #35 — DROP `false_advertising` (code does LESS than the
|
|
65
|
+
// SKILL.md claims). Code being *safer* than advertised is never a security
|
|
66
|
+
// risk, and this direction is dominated by NL over-extraction noise (e.g.
|
|
67
|
+
// safe-SR-B6 "Project Shell Setup" prose over-read as a declared
|
|
68
|
+
// `command_injection` capability the static code never exercises). Emitting
|
|
69
|
+
// it — even at LOW — breaks the "0 findings on safe/benign" precision bar.
|
|
70
|
+
// Previously (#100 Bug #2) this was merely forced to LOW; the precision
|
|
71
|
+
// mandate requires suppressing it outright.
|
|
72
|
+
if (mismatch.type === 'false_advertising')
|
|
73
|
+
continue;
|
|
44
74
|
findings.push({
|
|
45
75
|
type: 'capability_mismatch',
|
|
46
76
|
severity: normalizeMismatchSeverity(mismatch.type, mismatch.severity),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-mismatch.js","sourceRoot":"","sources":["../../src/skills/capability-mismatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,SAAmB,EACnB,aAAkC;IAElC,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,8CAA8C;IAC9C,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IACtD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAElD,wCAAwC;IACxC,MAAM,aAAa,GAA8C,EAAE,CAAC;IACpE,MAAM,WAAW,GAA4C,EAAE,CAAC;IAEhE,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YACrD,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACjD,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAC9C,eAAe,EACf,aAAa,EACb,aAAa,EACb,WAAW,CACZ,CAAC;IAEF,mEAAmE;IACnE,yEAAyE;IACzE,sEAAsE;IACtE,
|
|
1
|
+
{"version":3,"file":"capability-mismatch.js","sourceRoot":"","sources":["../../src/skills/capability-mismatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instruction-safety.d.ts","sourceRoot":"","sources":["../../src/skills/instruction-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAuJlD;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC7B,OAAO,CAAC,YAAY,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"instruction-safety.d.ts","sourceRoot":"","sources":["../../src/skills/instruction-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAuJlD;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC7B,OAAO,CAAC,YAAY,EAAE,CAAC,CAuOzB"}
|
|
@@ -260,6 +260,11 @@ Check for these threat categories:
|
|
|
260
260
|
STRUCTURE, STYLE, or TEMPLATE described in a reference file ("read REFERENCE.md for the
|
|
261
261
|
required output format, then follow it"), or to summarise/use the referenced file as DATA.
|
|
262
262
|
The distinguisher: obeying the doc's *instructions* is a threat; following its *format* is not.
|
|
263
|
+
HARD RULE: if the referenced file is described as a FORMAT / OUTPUT / TEMPLATE / STYLE spec
|
|
264
|
+
(e.g. "read REFERENCE.md for the required output format, then follow it"), return NOTHING for
|
|
265
|
+
this category — even when the wording is "follow it" or "follow it exactly". Only flag when
|
|
266
|
+
the skill explicitly says to obey the *instructions / commands / steps* the referenced file
|
|
267
|
+
contains.
|
|
263
268
|
|
|
264
269
|
15. CONDITIONAL_INSTRUCTION (CWE-94)
|
|
265
270
|
A covert action gated on a hidden trigger (keyword match, date, filename, environment),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instruction-safety.js","sourceRoot":"","sources":["../../src/skills/instruction-safety.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"instruction-safety.js","sourceRoot":"","sources":["../../src/skills/instruction-safety.ts"],"names":[],"mappings":"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"}
|