@ai-pip/core 0.2.0 → 0.4.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 +106 -3
- package/README.md +52 -951
- package/dist/AAL/constants.d.ts +15 -0
- package/dist/AAL/constants.d.ts.map +1 -0
- package/dist/AAL/constants.js +20 -0
- package/dist/AAL/constants.js.map +1 -0
- package/dist/AAL/index.d.ts +5 -4
- package/dist/AAL/index.d.ts.map +1 -1
- package/dist/AAL/index.js +4 -2
- package/dist/AAL/index.js.map +1 -1
- package/dist/AAL/process/applyRemovalPlan.d.ts +23 -0
- package/dist/AAL/process/applyRemovalPlan.d.ts.map +1 -0
- package/dist/AAL/process/applyRemovalPlan.js +157 -0
- package/dist/AAL/process/applyRemovalPlan.js.map +1 -0
- package/dist/AAL/process/buildDecisionReason.d.ts.map +1 -1
- package/dist/AAL/process/buildDecisionReason.js +24 -4
- package/dist/AAL/process/buildDecisionReason.js.map +1 -1
- package/dist/AAL/process/buildRemediationPlan.d.ts +22 -0
- package/dist/AAL/process/buildRemediationPlan.d.ts.map +1 -0
- package/dist/AAL/process/buildRemediationPlan.js +81 -0
- package/dist/AAL/process/buildRemediationPlan.js.map +1 -0
- package/dist/AAL/process/buildRemovalPlan.d.ts +27 -9
- package/dist/AAL/process/buildRemovalPlan.d.ts.map +1 -1
- package/dist/AAL/process/buildRemovalPlan.js +95 -29
- package/dist/AAL/process/buildRemovalPlan.js.map +1 -1
- package/dist/AAL/process/index.d.ts +2 -2
- package/dist/AAL/process/index.d.ts.map +1 -1
- package/dist/AAL/process/index.js +2 -1
- package/dist/AAL/process/index.js.map +1 -1
- package/dist/AAL/process/resolveAgentAction.d.ts.map +1 -1
- package/dist/AAL/process/resolveAgentAction.js +13 -0
- package/dist/AAL/process/resolveAgentAction.js.map +1 -1
- package/dist/AAL/process/validatePolicy.d.ts +20 -0
- package/dist/AAL/process/validatePolicy.d.ts.map +1 -0
- package/dist/AAL/process/validatePolicy.js +40 -0
- package/dist/AAL/process/validatePolicy.js.map +1 -0
- package/dist/AAL/types.d.ts +18 -31
- package/dist/AAL/types.d.ts.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/isl/detect/detect.d.ts +39 -0
- package/dist/isl/detect/detect.d.ts.map +1 -0
- package/dist/isl/detect/detect.js +369 -0
- package/dist/isl/detect/detect.js.map +1 -0
- package/dist/isl/detect/index.d.ts +6 -0
- package/dist/isl/detect/index.d.ts.map +1 -0
- package/dist/isl/detect/index.js +5 -0
- package/dist/isl/detect/index.js.map +1 -0
- package/dist/isl/index.d.ts +8 -1
- package/dist/isl/index.d.ts.map +1 -1
- package/dist/isl/index.js +5 -0
- package/dist/isl/index.js.map +1 -1
- package/dist/isl/process/emitSignal.d.ts +19 -10
- package/dist/isl/process/emitSignal.d.ts.map +1 -1
- package/dist/isl/process/emitSignal.js +25 -23
- package/dist/isl/process/emitSignal.js.map +1 -1
- package/dist/isl/process/index.d.ts +1 -0
- package/dist/isl/process/index.d.ts.map +1 -1
- package/dist/isl/riskScore/calculators.d.ts +19 -0
- package/dist/isl/riskScore/calculators.d.ts.map +1 -0
- package/dist/isl/riskScore/calculators.js +50 -0
- package/dist/isl/riskScore/calculators.js.map +1 -0
- package/dist/isl/riskScore/index.d.ts +14 -0
- package/dist/isl/riskScore/index.d.ts.map +1 -0
- package/dist/isl/riskScore/index.js +26 -0
- package/dist/isl/riskScore/index.js.map +1 -0
- package/dist/isl/riskScore/types.d.ts +20 -0
- package/dist/isl/riskScore/types.d.ts.map +1 -0
- package/dist/isl/riskScore/types.js +12 -0
- package/dist/isl/riskScore/types.js.map +1 -0
- package/dist/isl/sanitize.d.ts +8 -1
- package/dist/isl/sanitize.d.ts.map +1 -1
- package/dist/isl/sanitize.js +13 -5
- package/dist/isl/sanitize.js.map +1 -1
- package/dist/isl/signals.d.ts +16 -1
- package/dist/isl/signals.d.ts.map +1 -1
- package/dist/isl/signals.js +4 -2
- package/dist/isl/signals.js.map +1 -1
- package/dist/isl/value-objects/Pattern.d.ts +21 -0
- package/dist/isl/value-objects/Pattern.d.ts.map +1 -1
- package/dist/isl/value-objects/Pattern.js +36 -0
- package/dist/isl/value-objects/Pattern.js.map +1 -1
- package/dist/isl/value-objects/index.d.ts +2 -2
- package/dist/isl/value-objects/index.d.ts.map +1 -1
- package/dist/isl/value-objects/index.js +1 -1
- package/dist/isl/value-objects/index.js.map +1 -1
- package/dist/shared/audit.d.ts +126 -28
- package/dist/shared/audit.d.ts.map +1 -1
- package/dist/shared/audit.js +322 -44
- package/dist/shared/audit.js.map +1 -1
- package/dist/shared/envelope/envelope.d.ts +23 -0
- package/dist/shared/envelope/envelope.d.ts.map +1 -0
- package/dist/shared/envelope/envelope.js +58 -0
- package/dist/shared/envelope/envelope.js.map +1 -0
- package/dist/shared/envelope/exceptions/EnvelopeError.d.ts +8 -0
- package/dist/shared/envelope/exceptions/EnvelopeError.d.ts.map +1 -0
- package/dist/shared/envelope/exceptions/EnvelopeError.js +13 -0
- package/dist/shared/envelope/exceptions/EnvelopeError.js.map +1 -0
- package/dist/shared/envelope/exceptions/index.d.ts +2 -0
- package/dist/shared/envelope/exceptions/index.d.ts.map +1 -0
- package/dist/shared/envelope/exceptions/index.js +2 -0
- package/dist/shared/envelope/exceptions/index.js.map +1 -0
- package/dist/shared/envelope/index.d.ts +18 -0
- package/dist/shared/envelope/index.d.ts.map +1 -0
- package/dist/shared/envelope/index.js +15 -0
- package/dist/shared/envelope/index.js.map +1 -0
- package/dist/shared/envelope/types.d.ts +45 -0
- package/dist/shared/envelope/types.d.ts.map +1 -0
- package/dist/shared/envelope/types.js +10 -0
- package/dist/shared/envelope/types.js.map +1 -0
- package/dist/shared/envelope/value-objects/Metadata.d.ts +27 -0
- package/dist/shared/envelope/value-objects/Metadata.d.ts.map +1 -0
- package/dist/shared/envelope/value-objects/Metadata.js +57 -0
- package/dist/shared/envelope/value-objects/Metadata.js.map +1 -0
- package/dist/shared/envelope/value-objects/Nonce.d.ts +26 -0
- package/dist/shared/envelope/value-objects/Nonce.d.ts.map +1 -0
- package/dist/shared/envelope/value-objects/Nonce.js +38 -0
- package/dist/shared/envelope/value-objects/Nonce.js.map +1 -0
- package/dist/shared/envelope/value-objects/Signature.d.ts +28 -0
- package/dist/shared/envelope/value-objects/Signature.d.ts.map +1 -0
- package/dist/shared/envelope/value-objects/Signature.js +50 -0
- package/dist/shared/envelope/value-objects/Signature.js.map +1 -0
- package/dist/shared/envelope/value-objects/index.d.ts +9 -0
- package/dist/shared/envelope/value-objects/index.d.ts.map +1 -0
- package/dist/shared/envelope/value-objects/index.js +7 -0
- package/dist/shared/envelope/value-objects/index.js.map +1 -0
- package/dist/shared/index.d.ts +2 -2
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/index.js.map +1 -1
- package/package.json +11 -6
|
@@ -2,38 +2,40 @@
|
|
|
2
2
|
* emitSignal - Emits an ISLSignal from an internal ISLResult
|
|
3
3
|
*
|
|
4
4
|
* @remarks
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* - Create signal without exposing ISL internals
|
|
11
|
-
* - Add risk score and detections
|
|
5
|
+
* Converts ISLResult into a semantic signal (ISLSignal) for AAL/SDK.
|
|
6
|
+
* Aggregates all segment detections (from detectThreats → piDetection);
|
|
7
|
+
* hasThreats and riskScore are derived solely from that aggregation
|
|
8
|
+
* (no separate source of truth). Same ISLResult + same options → same ISLSignal (deterministic).
|
|
9
|
+
* Strategy is fixed at emit time; reflected in ISLSignal.metadata for auditability.
|
|
12
10
|
*/
|
|
13
11
|
import { createISLSignal } from '../signals.js';
|
|
14
12
|
import { createPiDetectionResult } from '../value-objects/PiDetectionResult.js';
|
|
15
|
-
import { MIN_RISK_SCORE,
|
|
13
|
+
import { MIN_RISK_SCORE, normalizeRiskScore } from '../value-objects/RiskScore.js';
|
|
14
|
+
import { RiskScoreStrategy } from '../riskScore/types.js';
|
|
15
|
+
import { getCalculator } from '../riskScore/index.js';
|
|
16
|
+
const DEFAULT_STRATEGY = RiskScoreStrategy.MAX_CONFIDENCE;
|
|
16
17
|
/**
|
|
17
18
|
* Emits an ISLSignal from an internal ISLResult
|
|
18
19
|
*
|
|
19
20
|
* @param islResult - Internal ISL result
|
|
20
|
-
* @param
|
|
21
|
-
* @returns ISLSignal - Semantic signal for external consumption
|
|
21
|
+
* @param options - Optional timestamp and risk score strategy (default: MAX_CONFIDENCE)
|
|
22
|
+
* @returns ISLSignal - Semantic signal for external consumption; metadata.strategy reflects strategy used
|
|
22
23
|
*/
|
|
23
|
-
export function emitSignal(islResult,
|
|
24
|
-
|
|
24
|
+
export function emitSignal(islResult, options = {}) {
|
|
25
|
+
const opts = typeof options === 'number' ? { timestamp: options } : options;
|
|
26
|
+
const timestamp = opts.timestamp ?? Date.now();
|
|
27
|
+
const strategy = opts.riskScore?.strategy ?? DEFAULT_STRATEGY;
|
|
28
|
+
const typeWeights = opts.riskScore?.typeWeights;
|
|
25
29
|
const allDetections = islResult.segments
|
|
26
|
-
.filter(
|
|
27
|
-
.flatMap(
|
|
28
|
-
// Create aggregated detection result
|
|
30
|
+
.filter((s) => s.piDetection != null)
|
|
31
|
+
.flatMap(s => s.piDetection.detections);
|
|
29
32
|
const piDetection = createPiDetectionResult(allDetections);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return createISLSignal(riskScore, piDetection, timestamp);
|
|
33
|
+
const calculator = getCalculator(strategy, typeWeights);
|
|
34
|
+
const rawScore = calculator.calculate(allDetections);
|
|
35
|
+
const riskScore = allDetections.length === 0
|
|
36
|
+
? MIN_RISK_SCORE
|
|
37
|
+
: normalizeRiskScore(rawScore);
|
|
38
|
+
const metadata = Object.freeze({ strategy });
|
|
39
|
+
return createISLSignal(riskScore, piDetection, timestamp, metadata);
|
|
38
40
|
}
|
|
39
41
|
//# sourceMappingURL=emitSignal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitSignal.js","sourceRoot":"","sources":["../../../src/isl/process/emitSignal.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"emitSignal.js","sourceRoot":"","sources":["../../../src/isl/process/emitSignal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAarD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,cAAc,CAAA;AAEzD;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACxB,SAAoB,EACpB,UAAsC,EAAE;IAExC,MAAM,IAAI,GACR,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,IAAI,gBAAgB,CAAA;IAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAA;IAE/C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ;SACrC,MAAM,CAAC,CAAC,CAAC,EAAsE,EAAE,CAChF,CAAC,CAAC,WAAW,IAAI,IAAI,CACtB;SACA,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;IAEzC,MAAM,WAAW,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAA;IAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;IACpD,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC;QAC1C,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IAEhC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC5C,OAAO,eAAe,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;AACrE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/isl/process/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/isl/process/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Risk score calculators - pure, deterministic, no side effects.
|
|
3
|
+
* Only registered implementations; no custom inline strategies.
|
|
4
|
+
*/
|
|
5
|
+
import type { RiskScoreCalculator } from './types.js';
|
|
6
|
+
/** Max confidence among all detections. Simple default. */
|
|
7
|
+
export declare const maxConfidenceCalculator: RiskScoreCalculator;
|
|
8
|
+
/** Max confidence plus a small bump per extra detection (volume). Clamped by caller. */
|
|
9
|
+
export declare const severityPlusVolumeCalculator: RiskScoreCalculator;
|
|
10
|
+
/**
|
|
11
|
+
* Weighted by pattern_type. Weights default to 1 if type not present.
|
|
12
|
+
* Returns a registered calculator (no inline custom logic).
|
|
13
|
+
*/
|
|
14
|
+
export declare function weightedByTypeCalculator(weights: Record<string, number>): RiskScoreCalculator;
|
|
15
|
+
/** Default weights for WEIGHTED_BY_TYPE (all 1). Use for reproducible audits. */
|
|
16
|
+
export declare const DEFAULT_TYPE_WEIGHTS: Record<string, number>;
|
|
17
|
+
/** Pre-built weighted calculator with default weights. */
|
|
18
|
+
export declare const defaultWeightedByTypeCalculator: RiskScoreCalculator;
|
|
19
|
+
//# sourceMappingURL=calculators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculators.d.ts","sourceRoot":"","sources":["../../../src/isl/riskScore/calculators.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGrD,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,EAAE,mBAMrC,CAAA;AAED,wFAAwF;AACxF,eAAO,MAAM,4BAA4B,EAAE,mBAO1C,CAAA;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,mBAAmB,CASrB;AAED,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMtD,CAAA;AAEF,0DAA0D;AAC1D,eAAO,MAAM,+BAA+B,EAAE,mBACS,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Risk score calculators - pure, deterministic, no side effects.
|
|
3
|
+
* Only registered implementations; no custom inline strategies.
|
|
4
|
+
*/
|
|
5
|
+
import { RiskScoreStrategy } from './types.js';
|
|
6
|
+
/** Max confidence among all detections. Simple default. */
|
|
7
|
+
export const maxConfidenceCalculator = {
|
|
8
|
+
strategy: RiskScoreStrategy.MAX_CONFIDENCE,
|
|
9
|
+
calculate(detections) {
|
|
10
|
+
if (detections.length === 0)
|
|
11
|
+
return 0;
|
|
12
|
+
return Math.max(...detections.map((d) => d.confidence));
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
/** Max confidence plus a small bump per extra detection (volume). Clamped by caller. */
|
|
16
|
+
export const severityPlusVolumeCalculator = {
|
|
17
|
+
strategy: RiskScoreStrategy.SEVERITY_PLUS_VOLUME,
|
|
18
|
+
calculate(detections) {
|
|
19
|
+
if (detections.length === 0)
|
|
20
|
+
return 0;
|
|
21
|
+
const max = Math.max(...detections.map((d) => d.confidence));
|
|
22
|
+
return Math.min(1, max + 0.1 * (detections.length - 1));
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Weighted by pattern_type. Weights default to 1 if type not present.
|
|
27
|
+
* Returns a registered calculator (no inline custom logic).
|
|
28
|
+
*/
|
|
29
|
+
export function weightedByTypeCalculator(weights) {
|
|
30
|
+
return {
|
|
31
|
+
strategy: RiskScoreStrategy.WEIGHTED_BY_TYPE,
|
|
32
|
+
calculate(detections) {
|
|
33
|
+
if (detections.length === 0)
|
|
34
|
+
return 0;
|
|
35
|
+
const w = (d) => d.confidence * (weights[d.pattern_type] ?? 1);
|
|
36
|
+
return Math.min(1, Math.max(...detections.map(w)));
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/** Default weights for WEIGHTED_BY_TYPE (all 1). Use for reproducible audits. */
|
|
41
|
+
export const DEFAULT_TYPE_WEIGHTS = Object.freeze({
|
|
42
|
+
'prompt-injection': 1,
|
|
43
|
+
jailbreak: 1,
|
|
44
|
+
role_hijacking: 1,
|
|
45
|
+
script_like: 1,
|
|
46
|
+
hidden_text: 1
|
|
47
|
+
});
|
|
48
|
+
/** Pre-built weighted calculator with default weights. */
|
|
49
|
+
export const defaultWeightedByTypeCalculator = weightedByTypeCalculator({ ...DEFAULT_TYPE_WEIGHTS });
|
|
50
|
+
//# sourceMappingURL=calculators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculators.js","sourceRoot":"","sources":["../../../src/isl/riskScore/calculators.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAI9C,2DAA2D;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAwB;IAC1D,QAAQ,EAAE,iBAAiB,CAAC,cAAc;IAC1C,SAAS,CAAC,UAAkC;QAC1C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IACzD,CAAC;CACF,CAAA;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,4BAA4B,GAAwB;IAC/D,QAAQ,EAAE,iBAAiB,CAAC,oBAAoB;IAChD,SAAS,CAAC,UAAkC;QAC1C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;CACF,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAA+B;IAE/B,OAAO;QACL,QAAQ,EAAE,iBAAiB,CAAC,gBAAgB;QAC5C,SAAS,CAAC,UAAkC;YAC1C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAA;YACrC,MAAM,CAAC,GAAG,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,CAAC;KACF,CAAA;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,oBAAoB,GAA2B,MAAM,CAAC,MAAM,CAAC;IACxE,kBAAkB,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC;IACZ,cAAc,EAAE,CAAC;IACjB,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;CACf,CAAC,CAAA;AAEF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,+BAA+B,GAC1C,wBAAwB,CAAC,EAAE,GAAG,oBAAoB,EAAE,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ISL risk score strategy - registered calculators only.
|
|
3
|
+
*/
|
|
4
|
+
export { RiskScoreStrategy } from './types.js';
|
|
5
|
+
export type { RiskScoreCalculator } from './types.js';
|
|
6
|
+
export { maxConfidenceCalculator, severityPlusVolumeCalculator, weightedByTypeCalculator, defaultWeightedByTypeCalculator, DEFAULT_TYPE_WEIGHTS } from './calculators.js';
|
|
7
|
+
import { RiskScoreStrategy } from './types.js';
|
|
8
|
+
import type { RiskScoreCalculator } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Returns the registered calculator for the given strategy.
|
|
11
|
+
* For WEIGHTED_BY_TYPE without custom weights, uses default weights.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getCalculator(strategy: RiskScoreStrategy, typeWeights?: Record<string, number>): RiskScoreCalculator;
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/isl/riskScore/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,+BAA+B,EAC/B,oBAAoB,EACrB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAQrD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,iBAAiB,EAC3B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,mBAAmB,CAarB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ISL risk score strategy - registered calculators only.
|
|
3
|
+
*/
|
|
4
|
+
export { RiskScoreStrategy } from './types.js';
|
|
5
|
+
export { maxConfidenceCalculator, severityPlusVolumeCalculator, weightedByTypeCalculator, defaultWeightedByTypeCalculator, DEFAULT_TYPE_WEIGHTS } from './calculators.js';
|
|
6
|
+
import { RiskScoreStrategy } from './types.js';
|
|
7
|
+
import { defaultWeightedByTypeCalculator, maxConfidenceCalculator, severityPlusVolumeCalculator, weightedByTypeCalculator } from './calculators.js';
|
|
8
|
+
/**
|
|
9
|
+
* Returns the registered calculator for the given strategy.
|
|
10
|
+
* For WEIGHTED_BY_TYPE without custom weights, uses default weights.
|
|
11
|
+
*/
|
|
12
|
+
export function getCalculator(strategy, typeWeights) {
|
|
13
|
+
switch (strategy) {
|
|
14
|
+
case RiskScoreStrategy.MAX_CONFIDENCE:
|
|
15
|
+
return maxConfidenceCalculator;
|
|
16
|
+
case RiskScoreStrategy.SEVERITY_PLUS_VOLUME:
|
|
17
|
+
return severityPlusVolumeCalculator;
|
|
18
|
+
case RiskScoreStrategy.WEIGHTED_BY_TYPE:
|
|
19
|
+
return typeWeights == null
|
|
20
|
+
? defaultWeightedByTypeCalculator
|
|
21
|
+
: weightedByTypeCalculator(typeWeights);
|
|
22
|
+
default:
|
|
23
|
+
return maxConfidenceCalculator;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/isl/riskScore/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,+BAA+B,EAC/B,oBAAoB,EACrB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,OAAO,EACL,+BAA+B,EAC/B,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACzB,MAAM,kBAAkB,CAAA;AAEzB;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,QAA2B,EAC3B,WAAoC;IAEpC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,iBAAiB,CAAC,cAAc;YACnC,OAAO,uBAAuB,CAAA;QAChC,KAAK,iBAAiB,CAAC,oBAAoB;YACzC,OAAO,4BAA4B,CAAA;QACrC,KAAK,iBAAiB,CAAC,gBAAgB;YACrC,OAAO,WAAW,IAAI,IAAI;gBACxB,CAAC,CAAC,+BAA+B;gBACjC,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAA;QAC3C;YACE,OAAO,uBAAuB,CAAA;IAClC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Risk score strategy - registered strategies only (auditability, reproducibility).
|
|
3
|
+
* AAL and SDK do not choose the formula; the caller of emitSignal/sanitize does.
|
|
4
|
+
*/
|
|
5
|
+
import type { PiDetection } from '../value-objects/PiDetection.js';
|
|
6
|
+
/** Registered risk score strategies. No custom inline strategies . */
|
|
7
|
+
export declare enum RiskScoreStrategy {
|
|
8
|
+
MAX_CONFIDENCE = "max-confidence",
|
|
9
|
+
SEVERITY_PLUS_VOLUME = "severity-plus-volume",
|
|
10
|
+
WEIGHTED_BY_TYPE = "weighted-by-type"
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Pure, deterministic calculator: detections → raw score (caller clamps to [0,1]).
|
|
14
|
+
* Strategy is fixed per calculator; no side effects.
|
|
15
|
+
*/
|
|
16
|
+
export interface RiskScoreCalculator {
|
|
17
|
+
readonly strategy: RiskScoreStrategy;
|
|
18
|
+
calculate(detections: readonly PiDetection[]): number;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/isl/riskScore/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAElE,sEAAsE;AACtE,oBAAY,iBAAiB;IAC3B,cAAc,mBAAmB;IACjC,oBAAoB,yBAAyB;IAC7C,gBAAgB,qBAAqB;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,SAAS,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAAA;CACtD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Risk score strategy - registered strategies only (auditability, reproducibility).
|
|
3
|
+
* AAL and SDK do not choose the formula; the caller of emitSignal/sanitize does.
|
|
4
|
+
*/
|
|
5
|
+
/** Registered risk score strategies. No custom inline strategies . */
|
|
6
|
+
export var RiskScoreStrategy;
|
|
7
|
+
(function (RiskScoreStrategy) {
|
|
8
|
+
RiskScoreStrategy["MAX_CONFIDENCE"] = "max-confidence";
|
|
9
|
+
RiskScoreStrategy["SEVERITY_PLUS_VOLUME"] = "severity-plus-volume";
|
|
10
|
+
RiskScoreStrategy["WEIGHTED_BY_TYPE"] = "weighted-by-type";
|
|
11
|
+
})(RiskScoreStrategy || (RiskScoreStrategy = {}));
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/isl/riskScore/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,sEAAsE;AACtE,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,sDAAiC,CAAA;IACjC,kEAA6C,CAAA;IAC7C,0DAAqC,CAAA;AACvC,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B"}
|
package/dist/isl/sanitize.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { CSLResult } from '../csl/types.js';
|
|
2
2
|
import type { ISLResult } from './types.js';
|
|
3
|
+
import type { DetectThreatsOptions } from './detect/index.js';
|
|
4
|
+
/** Options for sanitize. Enables flexible threat detection (e.g. custom patterns). */
|
|
5
|
+
export interface SanitizeOptions {
|
|
6
|
+
/** Passed to detectThreats per segment (e.g. patterns override/extend). */
|
|
7
|
+
readonly detectThreatsOptions?: DetectThreatsOptions;
|
|
8
|
+
}
|
|
3
9
|
/**
|
|
4
10
|
* Sanitizes content according to trust level - pure function
|
|
5
11
|
*
|
|
@@ -8,6 +14,7 @@ import type { ISLResult } from './types.js';
|
|
|
8
14
|
* - TC: Minimal sanitization
|
|
9
15
|
* - STC: Moderate sanitization
|
|
10
16
|
* - UC: Aggressive sanitization
|
|
17
|
+
* Threat detection uses default patterns unless detectThreatsOptions (e.g. patterns) is provided.
|
|
11
18
|
*/
|
|
12
|
-
export declare function sanitize(cslResult: CSLResult): ISLResult;
|
|
19
|
+
export declare function sanitize(cslResult: CSLResult, options?: SanitizeOptions): ISLResult;
|
|
13
20
|
//# sourceMappingURL=sanitize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/isl/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,YAAY,CAAA;AAIvD
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/isl/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,YAAY,CAAA;AAIvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAG7D,sFAAsF;AACtF,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;CACrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,eAAoB,GAAG,SAAS,CA2CvF"}
|
package/dist/isl/sanitize.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { TrustLevelType } from '../csl/types.js';
|
|
2
2
|
import { buildISLLineage } from './lineage/buildISLLineage.js';
|
|
3
3
|
import { buildISLResult } from './process/buildISLResult.js';
|
|
4
|
+
import { detectThreats } from './detect/index.js';
|
|
5
|
+
import { createPiDetectionResult } from './value-objects/PiDetectionResult.js';
|
|
4
6
|
/**
|
|
5
7
|
* Sanitizes content according to trust level - pure function
|
|
6
8
|
*
|
|
@@ -9,25 +11,31 @@ import { buildISLResult } from './process/buildISLResult.js';
|
|
|
9
11
|
* - TC: Minimal sanitization
|
|
10
12
|
* - STC: Moderate sanitization
|
|
11
13
|
* - UC: Aggressive sanitization
|
|
14
|
+
* Threat detection uses default patterns unless detectThreatsOptions (e.g. patterns) is provided.
|
|
12
15
|
*/
|
|
13
|
-
export function sanitize(cslResult) {
|
|
16
|
+
export function sanitize(cslResult, options = {}) {
|
|
14
17
|
const startTime = Date.now();
|
|
15
18
|
const segments = [];
|
|
19
|
+
const detectOptions = options.detectThreatsOptions;
|
|
16
20
|
for (const cslSegment of cslResult.segments) {
|
|
17
21
|
// Determine sanitization level according to trust level
|
|
18
22
|
const sanitizationLevel = getSanitizationLevel(cslSegment.trust);
|
|
19
23
|
// Sanitize content according to level
|
|
20
24
|
const sanitized = sanitizeContent(cslSegment.content, sanitizationLevel);
|
|
25
|
+
// Detect threats on sanitizedContent; positions are segment-local for downstream use (e.g. SDK/AI remediation).
|
|
26
|
+
const detections = detectThreats(sanitized.content, detectOptions);
|
|
27
|
+
const piDetection = detections.length > 0 ? createPiDetectionResult(detections) : undefined;
|
|
21
28
|
// Build ISL lineage for this segment
|
|
22
29
|
const segmentLineage = buildISLLineage(cslSegment.lineage, startTime);
|
|
23
|
-
// Create sanitized segment
|
|
30
|
+
// Create sanitized segment with detections when present
|
|
24
31
|
const islSegment = {
|
|
25
32
|
id: cslSegment.id,
|
|
26
|
-
originalContent: cslSegment.content,
|
|
33
|
+
originalContent: cslSegment.content,
|
|
27
34
|
sanitizedContent: sanitized.content,
|
|
28
35
|
trust: cslSegment.trust,
|
|
29
|
-
lineage: [...segmentLineage],
|
|
30
|
-
sanitizationLevel
|
|
36
|
+
lineage: [...segmentLineage],
|
|
37
|
+
sanitizationLevel,
|
|
38
|
+
...(piDetection !== undefined && { piDetection })
|
|
31
39
|
};
|
|
32
40
|
segments.push(islSegment);
|
|
33
41
|
}
|
package/dist/isl/sanitize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/isl/sanitize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/isl/sanitize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AAQ9E;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,SAAoB,EAAE,UAA2B,EAAE;IAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAiB,EAAE,CAAA;IACjC,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAA;IAElD,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC5C,wDAAwD;QACxD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAEhE,sCAAsC;QACtC,MAAM,SAAS,GAAG,eAAe,CAC/B,UAAU,CAAC,OAAO,EAClB,iBAAiB,CAClB,CAAA;QAED,gHAAgH;QAChH,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QAClE,MAAM,WAAW,GACf,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAEzE,qCAAqC;QACrC,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAErE,wDAAwD;QACxD,MAAM,UAAU,GAAe;YAC7B,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,eAAe,EAAE,UAAU,CAAC,OAAO;YACnC,gBAAgB,EAAE,SAAS,CAAC,OAAO;YACnC,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,OAAO,EAAE,CAAC,GAAG,cAAc,CAAC;YAC5B,iBAAiB;YACjB,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;SAClD,CAAA;QAED,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC3B,CAAC;IAED,yBAAyB;IACzB,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAEhE,sCAAsC;IACtC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;IAC7C,OAAO,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC,CAAA;AAC7D,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,KAAiB;IAC7C,IAAI,KAAK,CAAC,KAAK,KAAK,cAAc,CAAC,EAAE;QAAE,OAAO,SAAS,CAAA;IACvD,IAAI,KAAK,CAAC,KAAK,KAAK,cAAc,CAAC,GAAG;QAAE,OAAO,UAAU,CAAA;IACzD,OAAO,YAAY,CAAA,CAAE,KAAK;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,OAAe,EACf,MAA6C;IAE7C,oCAAoC;IACpC,oDAAoD;IACpD,OAAO;QACL,OAAO;KACR,CAAA;AACH,CAAC"}
|
package/dist/isl/signals.d.ts
CHANGED
|
@@ -29,6 +29,15 @@
|
|
|
29
29
|
*/
|
|
30
30
|
import type { RiskScore } from './value-objects/RiskScore.js';
|
|
31
31
|
import type { PiDetectionResult } from './value-objects/PiDetectionResult.js';
|
|
32
|
+
import type { RiskScoreStrategy } from './riskScore/types.js';
|
|
33
|
+
/**
|
|
34
|
+
* Metadata for the signal (auditability, reproducibility).
|
|
35
|
+
* Strategy is fixed at emit time; no per-segment or dynamic strategy.
|
|
36
|
+
*/
|
|
37
|
+
export interface ISLSignalMetadata {
|
|
38
|
+
/** Risk score strategy used to compute riskScore. */
|
|
39
|
+
readonly strategy: RiskScoreStrategy;
|
|
40
|
+
}
|
|
32
41
|
/**
|
|
33
42
|
* ISLSignal - Semantic signal emitted by ISL
|
|
34
43
|
*
|
|
@@ -56,6 +65,11 @@ export interface ISLSignal {
|
|
|
56
65
|
* Useful for auditing and traceability.
|
|
57
66
|
*/
|
|
58
67
|
readonly timestamp: number;
|
|
68
|
+
/**
|
|
69
|
+
* Optional metadata (e.g. risk score strategy used).
|
|
70
|
+
* Ensures auditability and reproducibility.
|
|
71
|
+
*/
|
|
72
|
+
readonly metadata?: ISLSignalMetadata;
|
|
59
73
|
}
|
|
60
74
|
/**
|
|
61
75
|
* Creates an ISLSignal from an internal ISLResult
|
|
@@ -67,9 +81,10 @@ export interface ISLSignal {
|
|
|
67
81
|
* @param riskScore - Risk score value
|
|
68
82
|
* @param piDetection - Prompt injection detection result
|
|
69
83
|
* @param timestamp - Timestamp of the signal (default: Date.now())
|
|
84
|
+
* @param metadata - Optional metadata (e.g. risk score strategy) for auditability
|
|
70
85
|
* @returns ISLSignal - Semantic signal for external consumption
|
|
71
86
|
*/
|
|
72
|
-
export declare function createISLSignal(riskScore: RiskScore, piDetection: PiDetectionResult, timestamp?: number): ISLSignal;
|
|
87
|
+
export declare function createISLSignal(riskScore: RiskScore, piDetection: PiDetectionResult, timestamp?: number, metadata?: ISLSignalMetadata): ISLSignal;
|
|
73
88
|
/**
|
|
74
89
|
* Checks if the signal indicates high risk
|
|
75
90
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/isl/signals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/isl/signals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAE7D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;CACrC;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAE7B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;IAEvC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAE5B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAE1B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CACtC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,GAAE,MAAmB,EAC9B,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,SAAS,CAsBX;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,GAAE,MAAY,GAAG,OAAO,CAEpF;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,YAAY,GAAE,MAAY,EAC1B,aAAa,GAAE,MAAY,GAC1B,OAAO,CAET;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,GAAE,MAAY,GAAG,OAAO,CAEnF"}
|
package/dist/isl/signals.js
CHANGED
|
@@ -37,9 +37,10 @@
|
|
|
37
37
|
* @param riskScore - Risk score value
|
|
38
38
|
* @param piDetection - Prompt injection detection result
|
|
39
39
|
* @param timestamp - Timestamp of the signal (default: Date.now())
|
|
40
|
+
* @param metadata - Optional metadata (e.g. risk score strategy) for auditability
|
|
40
41
|
* @returns ISLSignal - Semantic signal for external consumption
|
|
41
42
|
*/
|
|
42
|
-
export function createISLSignal(riskScore, piDetection, timestamp = Date.now()) {
|
|
43
|
+
export function createISLSignal(riskScore, piDetection, timestamp = Date.now(), metadata) {
|
|
43
44
|
// Validar riskScore
|
|
44
45
|
if (typeof riskScore !== 'number' || !Number.isFinite(riskScore)) {
|
|
45
46
|
throw new TypeError('ISLSignal riskScore must be a valid number');
|
|
@@ -55,7 +56,8 @@ export function createISLSignal(riskScore, piDetection, timestamp = Date.now())
|
|
|
55
56
|
riskScore,
|
|
56
57
|
piDetection,
|
|
57
58
|
hasThreats: piDetection.detected,
|
|
58
|
-
timestamp
|
|
59
|
+
timestamp,
|
|
60
|
+
...(metadata != null && { metadata: Object.freeze(metadata) })
|
|
59
61
|
};
|
|
60
62
|
}
|
|
61
63
|
/**
|
package/dist/isl/signals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signals.js","sourceRoot":"","sources":["../../src/isl/signals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;
|
|
1
|
+
{"version":3,"file":"signals.js","sourceRoot":"","sources":["../../src/isl/signals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAqDH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAoB,EACpB,WAA8B,EAC9B,YAAoB,IAAI,CAAC,GAAG,EAAE,EAC9B,QAA4B;IAE5B,oBAAoB;IACpB,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IAED,oBAAoB;IACpB,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClF,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;IAC5E,CAAC;IAED,OAAO;QACL,SAAS;QACT,WAAW;QACX,UAAU,EAAE,WAAW,CAAC,QAAQ;QAChC,SAAS;QACT,GAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;KAC/D,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,YAAoB,GAAG;IACzE,OAAO,MAAM,CAAC,SAAS,IAAI,SAAS,CAAA;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAiB,EACjB,eAAuB,GAAG,EAC1B,gBAAwB,GAAG;IAE3B,OAAO,MAAM,CAAC,SAAS,IAAI,YAAY,IAAI,MAAM,CAAC,SAAS,GAAG,aAAa,CAAA;AAC7E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,YAAoB,GAAG;IACxE,OAAO,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;AACrC,CAAC"}
|
|
@@ -22,6 +22,27 @@ export declare function createPattern(pattern_type: string, regex: string | RegE
|
|
|
22
22
|
* Funciones puras para Pattern matching
|
|
23
23
|
*/
|
|
24
24
|
export declare function matchesPattern(pattern: Pattern, content: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Single match result for findAllMatches
|
|
27
|
+
*/
|
|
28
|
+
export type PatternMatch = {
|
|
29
|
+
readonly matched: string;
|
|
30
|
+
readonly position: {
|
|
31
|
+
start: number;
|
|
32
|
+
end: number;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Finds all non-overlapping matches of a pattern in content.
|
|
37
|
+
* Uses a global clone of the pattern regex so each exec() call advances.
|
|
38
|
+
* Caps at MAX_MATCHES to avoid runaway on zero-width or many matches.
|
|
39
|
+
*
|
|
40
|
+
* @param pattern - Pattern to match
|
|
41
|
+
* @param content - Content to scan
|
|
42
|
+
* @param maxMatches - Cap on number of matches returned (default: MAX_MATCHES)
|
|
43
|
+
* @returns Array of { matched, position } (empty if no matches)
|
|
44
|
+
*/
|
|
45
|
+
export declare function findAllMatches(pattern: Pattern, content: string, maxMatches?: number): PatternMatch[];
|
|
25
46
|
export declare function findMatch(pattern: Pattern, content: string): {
|
|
26
47
|
matched: string;
|
|
27
48
|
position: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pattern.d.ts","sourceRoot":"","sources":["../../../src/isl/value-objects/Pattern.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAA;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,WAAa,CAAA;AAC5C,eAAO,MAAM,kBAAkB,QAAS,CAAA;AACxC,eAAO,MAAM,WAAW,QAAS,CAAA;AA6DjC;;GAEG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,eAAe,EAAE,SAAS,EAC1B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAyBT;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAYzE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG;IAC5D,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CACzC,GAAG,IAAI,CAuBP"}
|
|
1
|
+
{"version":3,"file":"Pattern.d.ts","sourceRoot":"","sources":["../../../src/isl/value-objects/Pattern.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAA;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,WAAa,CAAA;AAC5C,eAAO,MAAM,kBAAkB,QAAS,CAAA;AACxC,eAAO,MAAM,WAAW,QAAS,CAAA;AA6DjC;;GAEG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,eAAe,EAAE,SAAS,EAC1B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAyBT;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAYzE;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAClD,CAAA;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAoB,GAC/B,YAAY,EAAE,CA6BhB;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG;IAC5D,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CACzC,GAAG,IAAI,CAuBP"}
|
|
@@ -94,6 +94,42 @@ export function matchesPattern(pattern, content) {
|
|
|
94
94
|
}
|
|
95
95
|
return pattern.regex.test(content);
|
|
96
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Finds all non-overlapping matches of a pattern in content.
|
|
99
|
+
* Uses a global clone of the pattern regex so each exec() call advances.
|
|
100
|
+
* Caps at MAX_MATCHES to avoid runaway on zero-width or many matches.
|
|
101
|
+
*
|
|
102
|
+
* @param pattern - Pattern to match
|
|
103
|
+
* @param content - Content to scan
|
|
104
|
+
* @param maxMatches - Cap on number of matches returned (default: MAX_MATCHES)
|
|
105
|
+
* @returns Array of { matched, position } (empty if no matches)
|
|
106
|
+
*/
|
|
107
|
+
export function findAllMatches(pattern, content, maxMatches = MAX_MATCHES) {
|
|
108
|
+
if (!content || typeof content !== 'string') {
|
|
109
|
+
throw new TypeError('Pattern.findAllMatches: content must be a non-empty string');
|
|
110
|
+
}
|
|
111
|
+
if (content.length > MAX_CONTENT_LENGTH) {
|
|
112
|
+
throw new Error(`Pattern.findAllMatches: Content length (${content.length}) exceeds maximum allowed length (${MAX_CONTENT_LENGTH})`);
|
|
113
|
+
}
|
|
114
|
+
if (maxMatches <= 0) {
|
|
115
|
+
return [];
|
|
116
|
+
}
|
|
117
|
+
const flags = pattern.regex.flags.includes('g') ? pattern.regex.flags : pattern.regex.flags + 'g';
|
|
118
|
+
const globalRegex = new RegExp(pattern.regex.source, flags);
|
|
119
|
+
const results = [];
|
|
120
|
+
let match;
|
|
121
|
+
while (results.length < maxMatches && (match = globalRegex.exec(content)) !== null) {
|
|
122
|
+
results.push({
|
|
123
|
+
matched: match[0],
|
|
124
|
+
position: { start: match.index, end: match.index + match[0].length }
|
|
125
|
+
});
|
|
126
|
+
// Guard: zero-width match would make exec() not advance and loop forever
|
|
127
|
+
if (match[0].length === 0) {
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return results;
|
|
132
|
+
}
|
|
97
133
|
export function findMatch(pattern, content) {
|
|
98
134
|
if (!content || typeof content !== 'string') {
|
|
99
135
|
throw new TypeError('Pattern.findMatch: content must be a non-empty string');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pattern.js","sourceRoot":"","sources":["../../../src/isl/value-objects/Pattern.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pattern.js","sourceRoot":"","sources":["../../../src/isl/value-objects/Pattern.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export type { PiDetection } from './PiDetection.js';
|
|
2
2
|
export type { PiDetectionResult } from './PiDetectionResult.js';
|
|
3
|
-
export type { Pattern } from './Pattern.js';
|
|
3
|
+
export type { Pattern, PatternMatch } from './Pattern.js';
|
|
4
4
|
export type { RiskScore } from './RiskScore.js';
|
|
5
5
|
export { createPiDetection, getDetectionLength, isHighConfidence, isMediumConfidence, isLowConfidence } from './PiDetection.js';
|
|
6
6
|
export { createPiDetectionResult, hasDetections, getDetectionCount, getDetectionsByType, getHighestConfidenceDetection } from './PiDetectionResult.js';
|
|
7
|
-
export { createPattern, matchesPattern, findMatch, MAX_CONTENT_LENGTH, MAX_PATTERN_LENGTH, MAX_MATCHES } from './Pattern.js';
|
|
7
|
+
export { createPattern, matchesPattern, findMatch, findAllMatches, MAX_CONTENT_LENGTH, MAX_PATTERN_LENGTH, MAX_MATCHES } from './Pattern.js';
|
|
8
8
|
export { createRiskScore, normalizeRiskScore, isHighRiskScore, isMediumRiskScore, isLowRiskScore, MIN_RISK_SCORE, MAX_RISK_SCORE } from './RiskScore.js';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/isl/value-objects/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/isl/value-objects/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACzD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,wBAAwB,CAAA;AAI/B,OAAO,EACL,aAAa,EACb,cAAc,EACd,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACZ,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,gBAAgB,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Funciones de creación
|
|
2
2
|
export { createPiDetection, getDetectionLength, isHighConfidence, isMediumConfidence, isLowConfidence } from './PiDetection.js';
|
|
3
3
|
export { createPiDetectionResult, hasDetections, getDetectionCount, getDetectionsByType, getHighestConfidenceDetection } from './PiDetectionResult.js';
|
|
4
|
-
export { createPattern, matchesPattern, findMatch, MAX_CONTENT_LENGTH, MAX_PATTERN_LENGTH, MAX_MATCHES } from './Pattern.js';
|
|
4
|
+
export { createPattern, matchesPattern, findMatch, findAllMatches, MAX_CONTENT_LENGTH, MAX_PATTERN_LENGTH, MAX_MATCHES } from './Pattern.js';
|
|
5
5
|
export { createRiskScore, normalizeRiskScore, isHighRiskScore, isMediumRiskScore, isLowRiskScore, MIN_RISK_SCORE, MAX_RISK_SCORE } from './RiskScore.js';
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/isl/value-objects/index.ts"],"names":[],"mappings":"AAKA,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,wBAAwB,CAAA;AAI/B,OAAO,EACL,aAAa,EACb,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACZ,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/isl/value-objects/index.ts"],"names":[],"mappings":"AAKA,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,wBAAwB,CAAA;AAI/B,OAAO,EACL,aAAa,EACb,cAAc,EACd,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACZ,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,gBAAgB,CAAA"}
|