@ai-pip/core 0.1.2 → 0.1.4
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/README.md +102 -9
- package/dist/cpe/envelope.d.ts +34 -0
- package/dist/cpe/envelope.d.ts.map +1 -0
- package/dist/cpe/envelope.js +70 -0
- package/dist/cpe/envelope.js.map +1 -0
- package/dist/cpe/exceptions/EnvelopeError.d.ts +8 -0
- package/dist/cpe/exceptions/EnvelopeError.d.ts.map +1 -0
- package/dist/cpe/exceptions/EnvelopeError.js +13 -0
- package/dist/cpe/exceptions/EnvelopeError.js.map +1 -0
- package/dist/cpe/exceptions/index.d.ts +5 -0
- package/dist/cpe/exceptions/index.d.ts.map +1 -0
- package/dist/cpe/exceptions/index.js +5 -0
- package/dist/cpe/exceptions/index.js.map +1 -0
- package/dist/cpe/index.d.ts +24 -0
- package/dist/cpe/index.d.ts.map +1 -0
- package/dist/cpe/index.js +26 -0
- package/dist/cpe/index.js.map +1 -0
- package/dist/cpe/types.d.ts +58 -0
- package/dist/cpe/types.d.ts.map +1 -0
- package/dist/cpe/types.js +5 -0
- package/dist/cpe/types.js.map +1 -0
- package/dist/cpe/utils.d.ts +38 -0
- package/dist/cpe/utils.d.ts.map +1 -0
- package/dist/cpe/utils.js +47 -0
- package/dist/cpe/utils.js.map +1 -0
- package/dist/cpe/value-objects/Metadata.d.ts +32 -0
- package/dist/cpe/value-objects/Metadata.d.ts.map +1 -0
- package/dist/cpe/value-objects/Metadata.js +65 -0
- package/dist/cpe/value-objects/Metadata.js.map +1 -0
- package/dist/cpe/value-objects/Nonce.d.ts +33 -0
- package/dist/cpe/value-objects/Nonce.d.ts.map +1 -0
- package/dist/cpe/value-objects/Nonce.js +44 -0
- package/dist/cpe/value-objects/Nonce.js.map +1 -0
- package/dist/cpe/value-objects/Signature.d.ts +39 -0
- package/dist/cpe/value-objects/Signature.d.ts.map +1 -0
- package/dist/cpe/value-objects/Signature.js +60 -0
- package/dist/cpe/value-objects/Signature.js.map +1 -0
- package/dist/cpe/value-objects/index.d.ts +9 -0
- package/dist/cpe/value-objects/index.d.ts.map +1 -0
- package/dist/cpe/value-objects/index.js +7 -0
- package/dist/cpe/value-objects/index.js.map +1 -0
- package/dist/csl/classify.d.ts +35 -0
- package/dist/csl/classify.d.ts.map +1 -0
- package/dist/csl/classify.js +62 -0
- package/dist/csl/classify.js.map +1 -0
- package/dist/csl/exceptions/ClassificationError.d.ts +12 -0
- package/dist/csl/exceptions/ClassificationError.d.ts.map +1 -0
- package/dist/csl/exceptions/ClassificationError.js +16 -0
- package/dist/csl/exceptions/ClassificationError.js.map +1 -0
- package/dist/csl/exceptions/SegmentationError.d.ts +13 -0
- package/dist/csl/exceptions/SegmentationError.d.ts.map +1 -0
- package/dist/csl/exceptions/SegmentationError.js +18 -0
- package/dist/csl/exceptions/SegmentationError.js.map +1 -0
- package/dist/csl/exceptions/index.d.ts +3 -0
- package/dist/csl/exceptions/index.d.ts.map +1 -0
- package/dist/csl/exceptions/index.js +3 -0
- package/dist/csl/exceptions/index.js.map +1 -0
- package/dist/csl/index.d.ts +27 -0
- package/dist/csl/index.d.ts.map +1 -0
- package/dist/csl/index.js +29 -0
- package/dist/csl/index.js.map +1 -0
- package/dist/csl/lineage.d.ts +31 -0
- package/dist/csl/lineage.d.ts.map +1 -0
- package/dist/csl/lineage.js +36 -0
- package/dist/csl/lineage.js.map +1 -0
- package/dist/csl/segment.d.ts +35 -0
- package/dist/csl/segment.d.ts.map +1 -0
- package/dist/csl/segment.js +90 -0
- package/dist/csl/segment.js.map +1 -0
- package/dist/csl/types.d.ts +97 -0
- package/dist/csl/types.d.ts.map +1 -0
- package/dist/csl/types.js +62 -0
- package/dist/csl/types.js.map +1 -0
- package/dist/csl/utils.d.ts +16 -0
- package/dist/csl/utils.d.ts.map +1 -0
- package/dist/csl/utils.js +27 -0
- package/dist/csl/utils.js.map +1 -0
- package/dist/csl/value-objects/ContentHash.d.ts +18 -0
- package/dist/csl/value-objects/ContentHash.d.ts.map +1 -0
- package/dist/csl/value-objects/ContentHash.js +33 -0
- package/dist/csl/value-objects/ContentHash.js.map +1 -0
- package/dist/csl/value-objects/LineageEntry.d.ts +20 -0
- package/dist/csl/value-objects/LineageEntry.d.ts.map +1 -0
- package/dist/csl/value-objects/LineageEntry.js +20 -0
- package/dist/csl/value-objects/LineageEntry.js.map +1 -0
- package/dist/csl/value-objects/Origin-map.d.ts +21 -0
- package/dist/csl/value-objects/Origin-map.d.ts.map +1 -0
- package/dist/csl/value-objects/Origin-map.js +42 -0
- package/dist/csl/value-objects/Origin-map.js.map +1 -0
- package/dist/csl/value-objects/Origin.d.ts +22 -0
- package/dist/csl/value-objects/Origin.d.ts.map +1 -0
- package/dist/csl/value-objects/Origin.js +38 -0
- package/dist/csl/value-objects/Origin.js.map +1 -0
- package/dist/csl/value-objects/TrustLevel.d.ts +18 -0
- package/dist/csl/value-objects/TrustLevel.d.ts.map +1 -0
- package/dist/csl/value-objects/TrustLevel.js +23 -0
- package/dist/csl/value-objects/TrustLevel.js.map +1 -0
- package/dist/csl/value-objects/index.d.ts +10 -0
- package/dist/csl/value-objects/index.d.ts.map +1 -0
- package/dist/csl/value-objects/index.js +8 -0
- package/dist/csl/value-objects/index.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/isl/exceptions/SanitizationError.d.ts +8 -0
- package/dist/isl/exceptions/SanitizationError.d.ts.map +1 -0
- package/dist/isl/exceptions/SanitizationError.js +13 -0
- package/dist/isl/exceptions/SanitizationError.js.map +1 -0
- package/dist/isl/exceptions/index.d.ts +2 -0
- package/dist/isl/exceptions/index.d.ts.map +1 -0
- package/dist/isl/exceptions/index.js +2 -0
- package/dist/isl/exceptions/index.js.map +1 -0
- package/dist/isl/index.d.ts +13 -0
- package/dist/isl/index.d.ts.map +1 -0
- package/dist/isl/index.js +13 -0
- package/dist/isl/index.js.map +1 -0
- package/dist/isl/sanitize.d.ts +13 -0
- package/dist/isl/sanitize.d.ts.map +1 -0
- package/dist/isl/sanitize.js +74 -0
- package/dist/isl/sanitize.js.map +1 -0
- package/dist/isl/types.d.ts +75 -0
- package/dist/isl/types.d.ts.map +1 -0
- package/dist/isl/types.js +5 -0
- package/dist/isl/types.js.map +1 -0
- package/dist/isl/value-objects/AnomalyScore.d.ts +19 -0
- package/dist/isl/value-objects/AnomalyScore.d.ts.map +1 -0
- package/dist/isl/value-objects/AnomalyScore.js +25 -0
- package/dist/isl/value-objects/AnomalyScore.js.map +1 -0
- package/dist/isl/value-objects/Pattern.d.ts +32 -0
- package/dist/isl/value-objects/Pattern.d.ts.map +1 -0
- package/dist/isl/value-objects/Pattern.js +116 -0
- package/dist/isl/value-objects/Pattern.js.map +1 -0
- package/dist/isl/value-objects/PiDetection.d.ts +22 -0
- package/dist/isl/value-objects/PiDetection.d.ts.map +1 -0
- package/dist/isl/value-objects/PiDetection.js +60 -0
- package/dist/isl/value-objects/PiDetection.js.map +1 -0
- package/dist/isl/value-objects/PiDetectionResult.d.ts +24 -0
- package/dist/isl/value-objects/PiDetectionResult.d.ts.map +1 -0
- package/dist/isl/value-objects/PiDetectionResult.js +90 -0
- package/dist/isl/value-objects/PiDetectionResult.js.map +1 -0
- package/dist/isl/value-objects/PolicyRule.d.ts +39 -0
- package/dist/isl/value-objects/PolicyRule.d.ts.map +1 -0
- package/dist/isl/value-objects/PolicyRule.js +65 -0
- package/dist/isl/value-objects/PolicyRule.js.map +1 -0
- package/dist/isl/value-objects/index.d.ts +9 -0
- package/dist/isl/value-objects/index.d.ts.map +1 -0
- package/dist/isl/value-objects/index.js +8 -0
- package/dist/isl/value-objects/index.js.map +1 -0
- package/dist/shared/index.d.ts +9 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +12 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/lineage.d.ts +29 -0
- package/dist/shared/lineage.d.ts.map +1 -0
- package/dist/shared/lineage.js +36 -0
- package/dist/shared/lineage.js.map +1 -0
- package/package.json +19 -18
- package/src/cpe/index.ts +11 -2
- package/src/cpe/value-objects/Metadata.ts +1 -1
- package/src/cpe/value-objects/index.ts +5 -3
- package/src/csl/exceptions/index.ts +2 -2
- package/src/csl/index.ts +24 -3
- package/src/index.ts +81 -5
- package/src/isl/exceptions/index.ts +1 -1
- package/src/isl/index.ts +36 -3
- package/src/shared/index.ts +6 -1
- package/tsconfig.json +6 -3
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Funciones de creación
|
|
2
|
+
export { createTrustLevel, isTrusted, isSemiTrusted, isUntrusted } from './TrustLevel';
|
|
3
|
+
export { createOrigin, isDom, isUser, isSystem, isInjected, isUnknown, isNetworkFetched, isExternal } from './Origin';
|
|
4
|
+
export { createLineageEntry } from './LineageEntry';
|
|
5
|
+
export { createContentHash, isSha256, isSha512 } from './ContentHash';
|
|
6
|
+
// Origin-map
|
|
7
|
+
export { originMap, validateOriginMap } from './Origin-map';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/csl/value-objects/index.ts"],"names":[],"mappings":"AAMA,wBAAwB;AACxB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAErE,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @ai-pip/core - Core implementation of the AI-PIP protocol
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Main entry point that re-exports all layers (CSL, ISL, Shared)
|
|
6
|
+
*
|
|
7
|
+
* You can also import specific layers:
|
|
8
|
+
* - import { segment } from '@ai-pip/core/csl'
|
|
9
|
+
* - import { sanitize } from '@ai-pip/core/isl'
|
|
10
|
+
* - import { addLineageEntry } from '@ai-pip/core/shared'
|
|
11
|
+
* - import { envelope } from '@ai-pip/core/cpe'
|
|
12
|
+
*/
|
|
13
|
+
export { segment, classifySource, classifyOrigin, initLineage, createLineageEntry, generateId, splitByContextRules, OriginType, TrustLevelType, ClassificationError, SegmentationError } from './csl';
|
|
14
|
+
export type { HashAlgorithm, Source, CSLInput, CSLSegment, CSLResult, TrustLevel, Origin, LineageEntry, ContentHash } from './csl';
|
|
15
|
+
export { sanitize } from './isl';
|
|
16
|
+
export type { RiskScore, AnomalyAction, Position, BlockedIntent, SensitiveScope, ProtectedRole, ImmutableInstruction, RemovedInstruction, ISLSegment, ISLResult, PiDetection, PiDetectionResult, AnomalyScore, Pattern } from './isl';
|
|
17
|
+
export { createPiDetection, getDetectionLength, isHighConfidence, isMediumConfidence, isLowConfidence, createPiDetectionResult, hasDetections, getDetectionCount, getDetectionsByType, getHighestConfidenceDetection, createAnomalyScore, isHighRisk, isWarnRisk, isLowRisk, createPattern, matchesPattern, findMatch, MAX_CONTENT_LENGTH, MAX_PATTERN_LENGTH, MAX_MATCHES, SanitizationError } from './isl';
|
|
18
|
+
export { addLineageEntry, addLineageEntries, filterLineageByStep, getLastLineageEntry } from './shared';
|
|
19
|
+
export { envelope, createNonce, isValidNonce, equalsNonce, createMetadata, isValidMetadata, CURRENT_PROTOCOL_VERSION, createSignature, EnvelopeError } from './cpe';
|
|
20
|
+
export type { Nonce, SignatureVO, ProtocolVersion, Timestamp, NonceValue, SignatureAlgorithm, Signature, CPEMetadata, CPEEvelope, CPEResult } from './cpe';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,OAAO,CAAA;AACd,YAAY,EACV,aAAa,EACb,MAAM,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,UAAU,EACV,MAAM,EACN,YAAY,EACZ,WAAW,EACZ,MAAM,OAAO,CAAA;AAGd,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,YAAY,EACV,SAAS,EACT,aAAa,EACb,QAAQ,EACR,aAAa,EACb,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACR,MAAM,OAAO,CAAA;AACd,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC7B,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EAClB,MAAM,OAAO,CAAA;AAGd,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,wBAAwB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACnK,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @ai-pip/core - Core implementation of the AI-PIP protocol
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Main entry point that re-exports all layers (CSL, ISL, Shared)
|
|
6
|
+
*
|
|
7
|
+
* You can also import specific layers:
|
|
8
|
+
* - import { segment } from '@ai-pip/core/csl'
|
|
9
|
+
* - import { sanitize } from '@ai-pip/core/isl'
|
|
10
|
+
* - import { addLineageEntry } from '@ai-pip/core/shared'
|
|
11
|
+
* - import { envelope } from '@ai-pip/core/cpe'
|
|
12
|
+
*/
|
|
13
|
+
// Re-export CSL
|
|
14
|
+
export { segment, classifySource, classifyOrigin, initLineage, createLineageEntry, generateId, splitByContextRules, OriginType, TrustLevelType, ClassificationError, SegmentationError } from './csl';
|
|
15
|
+
// Re-export ISL
|
|
16
|
+
export { sanitize } from './isl';
|
|
17
|
+
export { createPiDetection, getDetectionLength, isHighConfidence, isMediumConfidence, isLowConfidence, createPiDetectionResult, hasDetections, getDetectionCount, getDetectionsByType, getHighestConfidenceDetection, createAnomalyScore, isHighRisk, isWarnRisk, isLowRisk, createPattern, matchesPattern, findMatch, MAX_CONTENT_LENGTH, MAX_PATTERN_LENGTH, MAX_MATCHES, SanitizationError } from './isl';
|
|
18
|
+
// Re-export Shared
|
|
19
|
+
export { addLineageEntry, addLineageEntries, filterLineageByStep, getLastLineageEntry } from './shared';
|
|
20
|
+
// Re-export CPE
|
|
21
|
+
export { envelope, createNonce, isValidNonce, equalsNonce, createMetadata, isValidMetadata, CURRENT_PROTOCOL_VERSION, createSignature, EnvelopeError } from './cpe';
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gBAAgB;AAChB,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,OAAO,CAAA;AAad,gBAAgB;AAChB,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAiBhC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC7B,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EAClB,MAAM,OAAO,CAAA;AAEd,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,UAAU,CAAA;AAEjB,gBAAgB;AAChB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,wBAAwB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SanitizationError is thrown when sanitization fails.
|
|
3
|
+
*/
|
|
4
|
+
export declare class SanitizationError extends Error {
|
|
5
|
+
readonly cause?: unknown | undefined;
|
|
6
|
+
constructor(message: string, cause?: unknown | undefined);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=SanitizationError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SanitizationError.d.ts","sourceRoot":"","sources":["../../../src/isl/exceptions/SanitizationError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;aAGxB,KAAK,CAAC,EAAE,OAAO;gBAD/B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,OAAO,YAAA;CAMlC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SanitizationError is thrown when sanitization fails.
|
|
3
|
+
*/
|
|
4
|
+
export class SanitizationError extends Error {
|
|
5
|
+
cause;
|
|
6
|
+
constructor(message, cause) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.cause = cause;
|
|
9
|
+
this.name = 'SanitizationError';
|
|
10
|
+
Object.setPrototypeOf(this, SanitizationError.prototype);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=SanitizationError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SanitizationError.js","sourceRoot":"","sources":["../../../src/isl/exceptions/SanitizationError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAGxB;IAFlB,YACE,OAAe,EACC,KAAe;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAA;QAFE,UAAK,GAAL,KAAK,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;QAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC1D,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/isl/exceptions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/isl/exceptions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ISL (Instruction Sanitization Layer) - Core Semántico
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* ISL sanitiza instrucciones maliciosas recibidas de CSL,
|
|
6
|
+
* aplicando diferentes niveles de sanitización según el nivel de confianza.
|
|
7
|
+
*/
|
|
8
|
+
export { sanitize } from './sanitize';
|
|
9
|
+
export type { PiDetection, PiDetectionResult, AnomalyScore, Pattern } from './value-objects';
|
|
10
|
+
export { createPiDetection, getDetectionLength, isHighConfidence, isMediumConfidence, isLowConfidence, createPiDetectionResult, hasDetections, getDetectionCount, getDetectionsByType, getHighestConfidenceDetection, createAnomalyScore, isHighRisk, isWarnRisk, isLowRisk, createPattern, matchesPattern, findMatch, MAX_CONTENT_LENGTH, MAX_PATTERN_LENGTH, MAX_MATCHES } from './value-objects';
|
|
11
|
+
export { SanitizationError } from './exceptions/SanitizationError';
|
|
12
|
+
export type { RiskScore, AnomalyAction, Position, BlockedIntent, SensitiveScope, ProtectedRole, ImmutableInstruction, RemovedInstruction, ISLSegment, ISLResult } from './types';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/isl/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC5F,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC7B,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACZ,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAGlE,YAAY,EACV,SAAS,EACT,aAAa,EACb,QAAQ,EACR,aAAa,EACb,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACV,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ISL (Instruction Sanitization Layer) - Core Semántico
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* ISL sanitiza instrucciones maliciosas recibidas de CSL,
|
|
6
|
+
* aplicando diferentes niveles de sanitización según el nivel de confianza.
|
|
7
|
+
*/
|
|
8
|
+
// Funciones puras principales
|
|
9
|
+
export { sanitize } from './sanitize';
|
|
10
|
+
export { createPiDetection, getDetectionLength, isHighConfidence, isMediumConfidence, isLowConfidence, createPiDetectionResult, hasDetections, getDetectionCount, getDetectionsByType, getHighestConfidenceDetection, createAnomalyScore, isHighRisk, isWarnRisk, isLowRisk, createPattern, matchesPattern, findMatch, MAX_CONTENT_LENGTH, MAX_PATTERN_LENGTH, MAX_MATCHES } from './value-objects';
|
|
11
|
+
// Exceptions
|
|
12
|
+
export { SanitizationError } from './exceptions/SanitizationError';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/isl/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC7B,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACZ,MAAM,iBAAiB,CAAA;AAExB,aAAa;AACb,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CSLResult } from '../csl/types';
|
|
2
|
+
import type { ISLResult } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Sanitiza contenido según nivel de confianza - función pura
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* ISL aplica sanitización diferenciada según el trust level:
|
|
8
|
+
* - TC: Sanitización mínima
|
|
9
|
+
* - STC: Sanitización moderada
|
|
10
|
+
* - UC: Sanitización agresiva
|
|
11
|
+
*/
|
|
12
|
+
export declare function sanitize(cslResult: CSLResult): ISLResult;
|
|
13
|
+
//# sourceMappingURL=sanitize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/isl/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAkC,MAAM,SAAS,CAAA;AAMxE;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAmDxD"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { createLineageEntry } from '../csl/value-objects';
|
|
2
|
+
import { addLineageEntry } from '../shared/lineage';
|
|
3
|
+
import { TrustLevelType } from '../csl/types';
|
|
4
|
+
/**
|
|
5
|
+
* Sanitiza contenido según nivel de confianza - función pura
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* ISL aplica sanitización diferenciada según el trust level:
|
|
9
|
+
* - TC: Sanitización mínima
|
|
10
|
+
* - STC: Sanitización moderada
|
|
11
|
+
* - UC: Sanitización agresiva
|
|
12
|
+
*/
|
|
13
|
+
export function sanitize(cslResult) {
|
|
14
|
+
const segments = [];
|
|
15
|
+
let allLineage = [...cslResult.lineage];
|
|
16
|
+
const blockedCount = 0;
|
|
17
|
+
let instructionsRemovedCount = 0;
|
|
18
|
+
for (const cslSegment of cslResult.segments) {
|
|
19
|
+
// Determinar nivel de sanitización según trust level
|
|
20
|
+
const sanitizationLevel = getSanitizationLevel(cslSegment.trust);
|
|
21
|
+
// Sanitizar contenido según nivel
|
|
22
|
+
const sanitized = sanitizeContent(cslSegment.content, sanitizationLevel);
|
|
23
|
+
// Detectar instrucciones removidas (esto se implementará con detección de PI)
|
|
24
|
+
const removedInstructions = [];
|
|
25
|
+
// Crear segmento sanitizado
|
|
26
|
+
const islSegment = {
|
|
27
|
+
id: cslSegment.id,
|
|
28
|
+
originalContent: cslSegment.content, // ✅ Preservar original
|
|
29
|
+
sanitizedContent: sanitized.content,
|
|
30
|
+
trust: cslSegment.trust,
|
|
31
|
+
lineage: addLineageEntry(cslSegment.lineage, createLineageEntry('ISL', Date.now())),
|
|
32
|
+
instructionsRemoved: removedInstructions,
|
|
33
|
+
sanitizationLevel
|
|
34
|
+
};
|
|
35
|
+
segments.push(islSegment);
|
|
36
|
+
const lastLineageEntry = islSegment.lineage.at(-1);
|
|
37
|
+
if (lastLineageEntry) {
|
|
38
|
+
allLineage = addLineageEntry(allLineage, lastLineageEntry);
|
|
39
|
+
}
|
|
40
|
+
instructionsRemovedCount += removedInstructions.length;
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
segments: Object.freeze(segments),
|
|
44
|
+
lineage: Object.freeze(allLineage),
|
|
45
|
+
metadata: {
|
|
46
|
+
totalSegments: segments.length,
|
|
47
|
+
sanitizedSegments: segments.length,
|
|
48
|
+
blockedSegments: blockedCount,
|
|
49
|
+
instructionsRemoved: instructionsRemovedCount
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Determina nivel de sanitización según trust level - función pura
|
|
55
|
+
*/
|
|
56
|
+
function getSanitizationLevel(trust) {
|
|
57
|
+
if (trust.value === TrustLevelType.TC)
|
|
58
|
+
return 'minimal';
|
|
59
|
+
if (trust.value === TrustLevelType.STC)
|
|
60
|
+
return 'moderate';
|
|
61
|
+
return 'aggressive'; // UC
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Sanitiza contenido según nivel - función pura
|
|
65
|
+
*/
|
|
66
|
+
function sanitizeContent(content, _level) {
|
|
67
|
+
// Por ahora retorna el contenido sin cambios
|
|
68
|
+
// La lógica de sanitización real se implementará después
|
|
69
|
+
return {
|
|
70
|
+
content,
|
|
71
|
+
removed: []
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=sanitize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/isl/sanitize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,SAAoB;IAC3C,MAAM,QAAQ,GAAiB,EAAE,CAAA;IACjC,IAAI,UAAU,GAA6B,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IACjE,MAAM,YAAY,GAAG,CAAC,CAAA;IACtB,IAAI,wBAAwB,GAAG,CAAC,CAAA;IAEhC,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC5C,qDAAqD;QACrD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAEhE,kCAAkC;QAClC,MAAM,SAAS,GAAG,eAAe,CAC/B,UAAU,CAAC,OAAO,EAClB,iBAAiB,CAClB,CAAA;QAED,8EAA8E;QAC9E,MAAM,mBAAmB,GAAyB,EAAE,CAAA;QAEpD,4BAA4B;QAC5B,MAAM,UAAU,GAAe;YAC7B,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,eAAe,EAAE,UAAU,CAAC,OAAO,EAAG,uBAAuB;YAC7D,gBAAgB,EAAE,SAAS,CAAC,OAAO;YACnC,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,OAAO,EAAE,eAAe,CACtB,UAAU,CAAC,OAAO,EAClB,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CACtC;YACD,mBAAmB,EAAE,mBAAmB;YACxC,iBAAiB;SAClB,CAAA;QAED,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACzB,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAClD,IAAI,gBAAgB,EAAE,CAAC;YACrB,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAA;QAC5D,CAAC;QACD,wBAAwB,IAAI,mBAAmB,CAAC,MAAM,CAAA;IACxD,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QAClC,QAAQ,EAAE;YACR,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,iBAAiB,EAAE,QAAQ,CAAC,MAAM;YAClC,eAAe,EAAE,YAAY;YAC7B,mBAAmB,EAAE,wBAAwB;SAC9C;KACF,CAAA;AACH,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,6CAA6C;IAC7C,yDAAyD;IACzD,OAAO;QACL,OAAO;QACP,OAAO,EAAE,EAAE;KACZ,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for ISL (Instruction Sanitization Layer) - Core Semántico
|
|
3
|
+
*/
|
|
4
|
+
import type { LineageEntry, TrustLevel } from '../csl/value-objects';
|
|
5
|
+
import type { PiDetectionResult } from './value-objects/PiDetectionResult';
|
|
6
|
+
import type { AnomalyScore } from './value-objects/AnomalyScore';
|
|
7
|
+
/**
|
|
8
|
+
* RiskScore - Score de riesgo (0-1)
|
|
9
|
+
*/
|
|
10
|
+
export type RiskScore = number;
|
|
11
|
+
/**
|
|
12
|
+
* AnomalyAction - Acción recomendada basada en análisis
|
|
13
|
+
*/
|
|
14
|
+
export type AnomalyAction = 'ALLOW' | 'WARN' | 'BLOCK';
|
|
15
|
+
/**
|
|
16
|
+
* Position - Posición de un patrón detectado en el contenido
|
|
17
|
+
*/
|
|
18
|
+
export type Position = {
|
|
19
|
+
readonly start: number;
|
|
20
|
+
readonly end: number;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* BlockedIntent - Intent que está explícitamente bloqueado por política
|
|
24
|
+
*/
|
|
25
|
+
export type BlockedIntent = string;
|
|
26
|
+
/**
|
|
27
|
+
* SensitiveScope - Tema sensible que requiere validación adicional
|
|
28
|
+
*/
|
|
29
|
+
export type SensitiveScope = string;
|
|
30
|
+
/**
|
|
31
|
+
* ProtectedRole - Rol que no puede ser sobrescrito
|
|
32
|
+
*/
|
|
33
|
+
export type ProtectedRole = string;
|
|
34
|
+
/**
|
|
35
|
+
* ImmutableInstruction - Instrucción que no puede ser modificada
|
|
36
|
+
*/
|
|
37
|
+
export type ImmutableInstruction = string;
|
|
38
|
+
/**
|
|
39
|
+
* RemovedInstruction - Instrucción removida durante sanitización
|
|
40
|
+
*/
|
|
41
|
+
export interface RemovedInstruction {
|
|
42
|
+
readonly type: 'system_command' | 'role_swapping' | 'jailbreak' | 'override' | 'manipulation';
|
|
43
|
+
readonly pattern: string;
|
|
44
|
+
readonly position: Position;
|
|
45
|
+
readonly description: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* ISLSegment - Segmento sanitizado por ISL
|
|
49
|
+
*/
|
|
50
|
+
export interface ISLSegment {
|
|
51
|
+
readonly id: string;
|
|
52
|
+
readonly originalContent: string;
|
|
53
|
+
readonly sanitizedContent: string;
|
|
54
|
+
readonly trust: TrustLevel;
|
|
55
|
+
readonly lineage: LineageEntry[];
|
|
56
|
+
readonly piDetection?: PiDetectionResult;
|
|
57
|
+
readonly anomalyScore?: AnomalyScore;
|
|
58
|
+
readonly instructionsRemoved: RemovedInstruction[];
|
|
59
|
+
readonly sanitizationLevel: 'minimal' | 'moderate' | 'aggressive';
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* ISLResult - Resultado de la sanitización
|
|
63
|
+
*/
|
|
64
|
+
export interface ISLResult {
|
|
65
|
+
readonly segments: readonly ISLSegment[];
|
|
66
|
+
readonly lineage: readonly LineageEntry[];
|
|
67
|
+
readonly metadata: {
|
|
68
|
+
readonly totalSegments: number;
|
|
69
|
+
readonly sanitizedSegments: number;
|
|
70
|
+
readonly blockedSegments: number;
|
|
71
|
+
readonly instructionsRemoved: number;
|
|
72
|
+
readonly processingTimeMs?: number;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/isl/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAEhE;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;AAEtD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAElC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AAEnC;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAElC;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAA;AAEzC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,eAAe,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,CAAA;IAC7F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;IACpC,QAAQ,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,CAAA;IAClD,QAAQ,CAAC,iBAAiB,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAA;CAClE;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;IACzC,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;QAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;QAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;QAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;QACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KACnC,CAAA;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/isl/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AnomalyAction, RiskScore } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* AnomalyScore - tipo puro
|
|
4
|
+
*/
|
|
5
|
+
export type AnomalyScore = {
|
|
6
|
+
readonly score: RiskScore;
|
|
7
|
+
readonly action: AnomalyAction;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Crea un AnomalyScore - función pura
|
|
11
|
+
*/
|
|
12
|
+
export declare function createAnomalyScore(score: RiskScore, action: AnomalyAction): AnomalyScore;
|
|
13
|
+
/**
|
|
14
|
+
* Funciones puras para AnomalyScore
|
|
15
|
+
*/
|
|
16
|
+
export declare function isHighRisk(anomaly: AnomalyScore): boolean;
|
|
17
|
+
export declare function isWarnRisk(anomaly: AnomalyScore): boolean;
|
|
18
|
+
export declare function isLowRisk(anomaly: AnomalyScore): boolean;
|
|
19
|
+
//# sourceMappingURL=AnomalyScore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnomalyScore.d.ts","sourceRoot":"","sources":["../../../src/isl/value-objects/AnomalyScore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAExD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAC/B,CAAA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,YAAY,CAUxF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAEzD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAEzD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAExD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Crea un AnomalyScore - función pura
|
|
3
|
+
*/
|
|
4
|
+
export function createAnomalyScore(score, action) {
|
|
5
|
+
if (score < 0 || score > 1) {
|
|
6
|
+
throw new Error('Anomaly score must be a value between 0 and 1');
|
|
7
|
+
}
|
|
8
|
+
if (!['ALLOW', 'WARN', 'BLOCK'].includes(action)) {
|
|
9
|
+
throw new Error(`Invalid AnomalyAction: ${action}. Must be one of: ALLOW, WARN, BLOCK`);
|
|
10
|
+
}
|
|
11
|
+
return { score, action };
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Funciones puras para AnomalyScore
|
|
15
|
+
*/
|
|
16
|
+
export function isHighRisk(anomaly) {
|
|
17
|
+
return anomaly.action === 'BLOCK';
|
|
18
|
+
}
|
|
19
|
+
export function isWarnRisk(anomaly) {
|
|
20
|
+
return anomaly.action === 'WARN';
|
|
21
|
+
}
|
|
22
|
+
export function isLowRisk(anomaly) {
|
|
23
|
+
return anomaly.action === 'ALLOW';
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=AnomalyScore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnomalyScore.js","sourceRoot":"","sources":["../../../src/isl/value-objects/AnomalyScore.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAgB,EAAE,MAAqB;IACxE,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,sCAAsC,CAAC,CAAA;IACzF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAqB;IAC9C,OAAO,OAAO,CAAC,MAAM,KAAK,OAAO,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAqB;IAC9C,OAAO,OAAO,CAAC,MAAM,KAAK,MAAM,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAqB;IAC7C,OAAO,OAAO,CAAC,MAAM,KAAK,OAAO,CAAA;AACnC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { RiskScore } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Pattern - tipo puro
|
|
4
|
+
*/
|
|
5
|
+
export type Pattern = {
|
|
6
|
+
readonly pattern_type: string;
|
|
7
|
+
readonly regex: RegExp;
|
|
8
|
+
readonly base_confidence: RiskScore;
|
|
9
|
+
readonly description: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Constantes de seguridad para pattern matching
|
|
13
|
+
*/
|
|
14
|
+
export declare const MAX_CONTENT_LENGTH = 10000000;
|
|
15
|
+
export declare const MAX_PATTERN_LENGTH = 10000;
|
|
16
|
+
export declare const MAX_MATCHES = 10000;
|
|
17
|
+
/**
|
|
18
|
+
* Crea un Pattern - función pura
|
|
19
|
+
*/
|
|
20
|
+
export declare function createPattern(pattern_type: string, regex: string | RegExp, base_confidence: RiskScore, description?: string): Pattern;
|
|
21
|
+
/**
|
|
22
|
+
* Funciones puras para Pattern matching
|
|
23
|
+
*/
|
|
24
|
+
export declare function matchesPattern(pattern: Pattern, content: string): boolean;
|
|
25
|
+
export declare function findMatch(pattern: Pattern, content: string): {
|
|
26
|
+
matched: string;
|
|
27
|
+
position: {
|
|
28
|
+
start: number;
|
|
29
|
+
end: number;
|
|
30
|
+
};
|
|
31
|
+
} | null;
|
|
32
|
+
//# sourceMappingURL=Pattern.d.ts.map
|
|
@@ -0,0 +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,UAAU,CAAA;AAEzC;;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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constantes de seguridad para pattern matching
|
|
3
|
+
*/
|
|
4
|
+
export const MAX_CONTENT_LENGTH = 10_000_000; // 10MB
|
|
5
|
+
export const MAX_PATTERN_LENGTH = 10_000;
|
|
6
|
+
export const MAX_MATCHES = 10_000;
|
|
7
|
+
/**
|
|
8
|
+
* Valida pattern_type - función pura
|
|
9
|
+
*/
|
|
10
|
+
function validatePatternType(pattern_type) {
|
|
11
|
+
if (!pattern_type || typeof pattern_type !== 'string' || pattern_type.trim().length === 0) {
|
|
12
|
+
throw new TypeError('Pattern pattern_type must be a non-empty string');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Valida regex - función pura
|
|
17
|
+
*/
|
|
18
|
+
function validateRegex(regex) {
|
|
19
|
+
if (!regex || (typeof regex !== 'string' && !(regex instanceof RegExp))) {
|
|
20
|
+
throw new TypeError('Pattern regex must be a string or a RegExp');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Valida base_confidence - función pura
|
|
25
|
+
*/
|
|
26
|
+
function validateBaseConfidence(base_confidence) {
|
|
27
|
+
if (typeof base_confidence !== 'number' || !Number.isFinite(base_confidence)) {
|
|
28
|
+
throw new TypeError('Pattern base_confidence must be a valid number');
|
|
29
|
+
}
|
|
30
|
+
if (base_confidence < 0 || base_confidence > 1) {
|
|
31
|
+
throw new Error('Pattern base_confidence must be between 0 and 1');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Valida description - función pura
|
|
36
|
+
*/
|
|
37
|
+
function validateDescription(description) {
|
|
38
|
+
if (description !== undefined && (typeof description !== 'string' || description.trim().length === 0)) {
|
|
39
|
+
throw new TypeError('Pattern description must be a non-empty string if provided');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Compila regex string a RegExp - función pura
|
|
44
|
+
*/
|
|
45
|
+
function compileRegexString(regex) {
|
|
46
|
+
try {
|
|
47
|
+
return new RegExp(regex, 'i');
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
51
|
+
throw new TypeError(`Pattern regex must be a valid regular expression: ${regex}. Original error: ${errorMessage}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Clona RegExp - función pura
|
|
56
|
+
*/
|
|
57
|
+
function cloneRegExp(regex) {
|
|
58
|
+
return new RegExp(regex.source, regex.flags);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Crea un Pattern - función pura
|
|
62
|
+
*/
|
|
63
|
+
export function createPattern(pattern_type, regex, base_confidence, description) {
|
|
64
|
+
// Validar inputs
|
|
65
|
+
validatePatternType(pattern_type);
|
|
66
|
+
validateRegex(regex);
|
|
67
|
+
validateBaseConfidence(base_confidence);
|
|
68
|
+
validateDescription(description);
|
|
69
|
+
// Validar y procesar regex
|
|
70
|
+
const regexSource = typeof regex === 'string' ? regex : regex.source;
|
|
71
|
+
if (regexSource.length > MAX_PATTERN_LENGTH) {
|
|
72
|
+
throw new Error(`Pattern regex source exceeds maximum length of ${MAX_PATTERN_LENGTH} characters`);
|
|
73
|
+
}
|
|
74
|
+
// Normalizar regex a RegExp
|
|
75
|
+
const normalizedRegex = typeof regex === 'string'
|
|
76
|
+
? compileRegexString(regex)
|
|
77
|
+
: cloneRegExp(regex);
|
|
78
|
+
return {
|
|
79
|
+
pattern_type: pattern_type.trim(),
|
|
80
|
+
regex: normalizedRegex,
|
|
81
|
+
base_confidence,
|
|
82
|
+
description: description?.trim() ?? ''
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Funciones puras para Pattern matching
|
|
87
|
+
*/
|
|
88
|
+
export function matchesPattern(pattern, content) {
|
|
89
|
+
if (!content || typeof content !== 'string') {
|
|
90
|
+
throw new TypeError('Pattern.matches: content must be a non-empty string');
|
|
91
|
+
}
|
|
92
|
+
if (content.length > MAX_CONTENT_LENGTH) {
|
|
93
|
+
throw new Error(`Pattern.matches: Content length (${content.length}) exceeds maximum allowed length (${MAX_CONTENT_LENGTH})`);
|
|
94
|
+
}
|
|
95
|
+
return pattern.regex.test(content);
|
|
96
|
+
}
|
|
97
|
+
export function findMatch(pattern, content) {
|
|
98
|
+
if (!content || typeof content !== 'string') {
|
|
99
|
+
throw new TypeError('Pattern.findMatch: content must be a non-empty string');
|
|
100
|
+
}
|
|
101
|
+
if (content.length > MAX_CONTENT_LENGTH) {
|
|
102
|
+
throw new Error(`Pattern.findMatch: Content length (${content.length}) exceeds maximum allowed length (${MAX_CONTENT_LENGTH})`);
|
|
103
|
+
}
|
|
104
|
+
const match = pattern.regex.exec(content);
|
|
105
|
+
if (match?.index === undefined) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
matched: match[0],
|
|
110
|
+
position: {
|
|
111
|
+
start: match.index,
|
|
112
|
+
end: match.index + match[0].length
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=Pattern.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pattern.js","sourceRoot":"","sources":["../../../src/isl/value-objects/Pattern.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Position, RiskScore } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* PiDetection - tipo puro
|
|
4
|
+
*/
|
|
5
|
+
export type PiDetection = {
|
|
6
|
+
readonly pattern_type: string;
|
|
7
|
+
readonly matched_pattern: string;
|
|
8
|
+
readonly position: Position;
|
|
9
|
+
readonly confidence: RiskScore;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Crea un PiDetection - función pura
|
|
13
|
+
*/
|
|
14
|
+
export declare function createPiDetection(pattern_type: string, matched_pattern: string, position: Position, confidence: RiskScore): PiDetection;
|
|
15
|
+
/**
|
|
16
|
+
* Funciones puras para PiDetection
|
|
17
|
+
*/
|
|
18
|
+
export declare function getDetectionLength(detection: PiDetection): number;
|
|
19
|
+
export declare function isHighConfidence(detection: PiDetection): boolean;
|
|
20
|
+
export declare function isMediumConfidence(detection: PiDetection): boolean;
|
|
21
|
+
export declare function isLowConfidence(detection: PiDetection): boolean;
|
|
22
|
+
//# sourceMappingURL=PiDetection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PiDetection.d.ts","sourceRoot":"","sources":["../../../src/isl/value-objects/PiDetection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEnD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAA;CAC/B,CAAA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,SAAS,GACpB,WAAW,CAmDb;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,CAEjE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAEhE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAElE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAE/D"}
|