@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.
Files changed (168) hide show
  1. package/README.md +102 -9
  2. package/dist/cpe/envelope.d.ts +34 -0
  3. package/dist/cpe/envelope.d.ts.map +1 -0
  4. package/dist/cpe/envelope.js +70 -0
  5. package/dist/cpe/envelope.js.map +1 -0
  6. package/dist/cpe/exceptions/EnvelopeError.d.ts +8 -0
  7. package/dist/cpe/exceptions/EnvelopeError.d.ts.map +1 -0
  8. package/dist/cpe/exceptions/EnvelopeError.js +13 -0
  9. package/dist/cpe/exceptions/EnvelopeError.js.map +1 -0
  10. package/dist/cpe/exceptions/index.d.ts +5 -0
  11. package/dist/cpe/exceptions/index.d.ts.map +1 -0
  12. package/dist/cpe/exceptions/index.js +5 -0
  13. package/dist/cpe/exceptions/index.js.map +1 -0
  14. package/dist/cpe/index.d.ts +24 -0
  15. package/dist/cpe/index.d.ts.map +1 -0
  16. package/dist/cpe/index.js +26 -0
  17. package/dist/cpe/index.js.map +1 -0
  18. package/dist/cpe/types.d.ts +58 -0
  19. package/dist/cpe/types.d.ts.map +1 -0
  20. package/dist/cpe/types.js +5 -0
  21. package/dist/cpe/types.js.map +1 -0
  22. package/dist/cpe/utils.d.ts +38 -0
  23. package/dist/cpe/utils.d.ts.map +1 -0
  24. package/dist/cpe/utils.js +47 -0
  25. package/dist/cpe/utils.js.map +1 -0
  26. package/dist/cpe/value-objects/Metadata.d.ts +32 -0
  27. package/dist/cpe/value-objects/Metadata.d.ts.map +1 -0
  28. package/dist/cpe/value-objects/Metadata.js +65 -0
  29. package/dist/cpe/value-objects/Metadata.js.map +1 -0
  30. package/dist/cpe/value-objects/Nonce.d.ts +33 -0
  31. package/dist/cpe/value-objects/Nonce.d.ts.map +1 -0
  32. package/dist/cpe/value-objects/Nonce.js +44 -0
  33. package/dist/cpe/value-objects/Nonce.js.map +1 -0
  34. package/dist/cpe/value-objects/Signature.d.ts +39 -0
  35. package/dist/cpe/value-objects/Signature.d.ts.map +1 -0
  36. package/dist/cpe/value-objects/Signature.js +60 -0
  37. package/dist/cpe/value-objects/Signature.js.map +1 -0
  38. package/dist/cpe/value-objects/index.d.ts +9 -0
  39. package/dist/cpe/value-objects/index.d.ts.map +1 -0
  40. package/dist/cpe/value-objects/index.js +7 -0
  41. package/dist/cpe/value-objects/index.js.map +1 -0
  42. package/dist/csl/classify.d.ts +35 -0
  43. package/dist/csl/classify.d.ts.map +1 -0
  44. package/dist/csl/classify.js +62 -0
  45. package/dist/csl/classify.js.map +1 -0
  46. package/dist/csl/exceptions/ClassificationError.d.ts +12 -0
  47. package/dist/csl/exceptions/ClassificationError.d.ts.map +1 -0
  48. package/dist/csl/exceptions/ClassificationError.js +16 -0
  49. package/dist/csl/exceptions/ClassificationError.js.map +1 -0
  50. package/dist/csl/exceptions/SegmentationError.d.ts +13 -0
  51. package/dist/csl/exceptions/SegmentationError.d.ts.map +1 -0
  52. package/dist/csl/exceptions/SegmentationError.js +18 -0
  53. package/dist/csl/exceptions/SegmentationError.js.map +1 -0
  54. package/dist/csl/exceptions/index.d.ts +3 -0
  55. package/dist/csl/exceptions/index.d.ts.map +1 -0
  56. package/dist/csl/exceptions/index.js +3 -0
  57. package/dist/csl/exceptions/index.js.map +1 -0
  58. package/dist/csl/index.d.ts +27 -0
  59. package/dist/csl/index.d.ts.map +1 -0
  60. package/dist/csl/index.js +29 -0
  61. package/dist/csl/index.js.map +1 -0
  62. package/dist/csl/lineage.d.ts +31 -0
  63. package/dist/csl/lineage.d.ts.map +1 -0
  64. package/dist/csl/lineage.js +36 -0
  65. package/dist/csl/lineage.js.map +1 -0
  66. package/dist/csl/segment.d.ts +35 -0
  67. package/dist/csl/segment.d.ts.map +1 -0
  68. package/dist/csl/segment.js +90 -0
  69. package/dist/csl/segment.js.map +1 -0
  70. package/dist/csl/types.d.ts +97 -0
  71. package/dist/csl/types.d.ts.map +1 -0
  72. package/dist/csl/types.js +62 -0
  73. package/dist/csl/types.js.map +1 -0
  74. package/dist/csl/utils.d.ts +16 -0
  75. package/dist/csl/utils.d.ts.map +1 -0
  76. package/dist/csl/utils.js +27 -0
  77. package/dist/csl/utils.js.map +1 -0
  78. package/dist/csl/value-objects/ContentHash.d.ts +18 -0
  79. package/dist/csl/value-objects/ContentHash.d.ts.map +1 -0
  80. package/dist/csl/value-objects/ContentHash.js +33 -0
  81. package/dist/csl/value-objects/ContentHash.js.map +1 -0
  82. package/dist/csl/value-objects/LineageEntry.d.ts +20 -0
  83. package/dist/csl/value-objects/LineageEntry.d.ts.map +1 -0
  84. package/dist/csl/value-objects/LineageEntry.js +20 -0
  85. package/dist/csl/value-objects/LineageEntry.js.map +1 -0
  86. package/dist/csl/value-objects/Origin-map.d.ts +21 -0
  87. package/dist/csl/value-objects/Origin-map.d.ts.map +1 -0
  88. package/dist/csl/value-objects/Origin-map.js +42 -0
  89. package/dist/csl/value-objects/Origin-map.js.map +1 -0
  90. package/dist/csl/value-objects/Origin.d.ts +22 -0
  91. package/dist/csl/value-objects/Origin.d.ts.map +1 -0
  92. package/dist/csl/value-objects/Origin.js +38 -0
  93. package/dist/csl/value-objects/Origin.js.map +1 -0
  94. package/dist/csl/value-objects/TrustLevel.d.ts +18 -0
  95. package/dist/csl/value-objects/TrustLevel.d.ts.map +1 -0
  96. package/dist/csl/value-objects/TrustLevel.js +23 -0
  97. package/dist/csl/value-objects/TrustLevel.js.map +1 -0
  98. package/dist/csl/value-objects/index.d.ts +10 -0
  99. package/dist/csl/value-objects/index.d.ts.map +1 -0
  100. package/dist/csl/value-objects/index.js +8 -0
  101. package/dist/csl/value-objects/index.js.map +1 -0
  102. package/dist/index.d.ts +21 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +22 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/isl/exceptions/SanitizationError.d.ts +8 -0
  107. package/dist/isl/exceptions/SanitizationError.d.ts.map +1 -0
  108. package/dist/isl/exceptions/SanitizationError.js +13 -0
  109. package/dist/isl/exceptions/SanitizationError.js.map +1 -0
  110. package/dist/isl/exceptions/index.d.ts +2 -0
  111. package/dist/isl/exceptions/index.d.ts.map +1 -0
  112. package/dist/isl/exceptions/index.js +2 -0
  113. package/dist/isl/exceptions/index.js.map +1 -0
  114. package/dist/isl/index.d.ts +13 -0
  115. package/dist/isl/index.d.ts.map +1 -0
  116. package/dist/isl/index.js +13 -0
  117. package/dist/isl/index.js.map +1 -0
  118. package/dist/isl/sanitize.d.ts +13 -0
  119. package/dist/isl/sanitize.d.ts.map +1 -0
  120. package/dist/isl/sanitize.js +74 -0
  121. package/dist/isl/sanitize.js.map +1 -0
  122. package/dist/isl/types.d.ts +75 -0
  123. package/dist/isl/types.d.ts.map +1 -0
  124. package/dist/isl/types.js +5 -0
  125. package/dist/isl/types.js.map +1 -0
  126. package/dist/isl/value-objects/AnomalyScore.d.ts +19 -0
  127. package/dist/isl/value-objects/AnomalyScore.d.ts.map +1 -0
  128. package/dist/isl/value-objects/AnomalyScore.js +25 -0
  129. package/dist/isl/value-objects/AnomalyScore.js.map +1 -0
  130. package/dist/isl/value-objects/Pattern.d.ts +32 -0
  131. package/dist/isl/value-objects/Pattern.d.ts.map +1 -0
  132. package/dist/isl/value-objects/Pattern.js +116 -0
  133. package/dist/isl/value-objects/Pattern.js.map +1 -0
  134. package/dist/isl/value-objects/PiDetection.d.ts +22 -0
  135. package/dist/isl/value-objects/PiDetection.d.ts.map +1 -0
  136. package/dist/isl/value-objects/PiDetection.js +60 -0
  137. package/dist/isl/value-objects/PiDetection.js.map +1 -0
  138. package/dist/isl/value-objects/PiDetectionResult.d.ts +24 -0
  139. package/dist/isl/value-objects/PiDetectionResult.d.ts.map +1 -0
  140. package/dist/isl/value-objects/PiDetectionResult.js +90 -0
  141. package/dist/isl/value-objects/PiDetectionResult.js.map +1 -0
  142. package/dist/isl/value-objects/PolicyRule.d.ts +39 -0
  143. package/dist/isl/value-objects/PolicyRule.d.ts.map +1 -0
  144. package/dist/isl/value-objects/PolicyRule.js +65 -0
  145. package/dist/isl/value-objects/PolicyRule.js.map +1 -0
  146. package/dist/isl/value-objects/index.d.ts +9 -0
  147. package/dist/isl/value-objects/index.d.ts.map +1 -0
  148. package/dist/isl/value-objects/index.js +8 -0
  149. package/dist/isl/value-objects/index.js.map +1 -0
  150. package/dist/shared/index.d.ts +9 -0
  151. package/dist/shared/index.d.ts.map +1 -0
  152. package/dist/shared/index.js +12 -0
  153. package/dist/shared/index.js.map +1 -0
  154. package/dist/shared/lineage.d.ts +29 -0
  155. package/dist/shared/lineage.d.ts.map +1 -0
  156. package/dist/shared/lineage.js +36 -0
  157. package/dist/shared/lineage.js.map +1 -0
  158. package/package.json +19 -18
  159. package/src/cpe/index.ts +11 -2
  160. package/src/cpe/value-objects/Metadata.ts +1 -1
  161. package/src/cpe/value-objects/index.ts +5 -3
  162. package/src/csl/exceptions/index.ts +2 -2
  163. package/src/csl/index.ts +24 -3
  164. package/src/index.ts +81 -5
  165. package/src/isl/exceptions/index.ts +1 -1
  166. package/src/isl/index.ts +36 -3
  167. package/src/shared/index.ts +6 -1
  168. package/tsconfig.json +6 -3
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Crea un PiDetection - función pura
3
+ */
4
+ export function createPiDetection(pattern_type, matched_pattern, position, confidence) {
5
+ // Validar pattern_type
6
+ if (!pattern_type || typeof pattern_type !== 'string' || pattern_type.trim().length === 0) {
7
+ throw new Error('PiDetection pattern_type must be a non-empty string');
8
+ }
9
+ // Validar matched_pattern
10
+ if (!matched_pattern || typeof matched_pattern !== 'string') {
11
+ throw new Error('PiDetection matched_pattern must be a non-empty string');
12
+ }
13
+ // Validar position
14
+ if (!position || typeof position !== 'object') {
15
+ throw new TypeError('PiDetection position must be an object with start and end properties');
16
+ }
17
+ if (typeof position.start !== 'number' || !Number.isFinite(position.start) || position.start < 0) {
18
+ throw new Error('PiDetection position.start must be a valid non-negative number');
19
+ }
20
+ if (typeof position.end !== 'number' || !Number.isFinite(position.end) || position.end < 0) {
21
+ throw new Error('PiDetection position.end must be a valid non-negative number');
22
+ }
23
+ if (position.end <= position.start) {
24
+ throw new Error('PiDetection position.end must be greater than position.start');
25
+ }
26
+ // Validar confidence
27
+ if (typeof confidence !== 'number' || !Number.isFinite(confidence)) {
28
+ throw new TypeError('PiDetection confidence must be a valid number');
29
+ }
30
+ if (confidence < 0 || confidence > 1) {
31
+ throw new Error('PiDetection confidence must be between 0 and 1');
32
+ }
33
+ // Validar que matched_pattern length coincide con position
34
+ const patternLength = position.end - position.start;
35
+ if (matched_pattern.length !== patternLength) {
36
+ throw new Error(`PiDetection matched_pattern length (${matched_pattern.length}) does not match position range (${patternLength})`);
37
+ }
38
+ return {
39
+ pattern_type: pattern_type.trim(),
40
+ matched_pattern,
41
+ position: Object.freeze({ ...position }),
42
+ confidence
43
+ };
44
+ }
45
+ /**
46
+ * Funciones puras para PiDetection
47
+ */
48
+ export function getDetectionLength(detection) {
49
+ return detection.position.end - detection.position.start;
50
+ }
51
+ export function isHighConfidence(detection) {
52
+ return detection.confidence >= 0.7;
53
+ }
54
+ export function isMediumConfidence(detection) {
55
+ return detection.confidence >= 0.3 && detection.confidence < 0.7;
56
+ }
57
+ export function isLowConfidence(detection) {
58
+ return detection.confidence < 0.3;
59
+ }
60
+ //# sourceMappingURL=PiDetection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PiDetection.js","sourceRoot":"","sources":["../../../src/isl/value-objects/PiDetection.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,eAAuB,EACvB,QAAkB,EAClB,UAAqB;IAErB,uBAAuB;IACvB,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1F,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,eAAe,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,SAAS,CAAC,sEAAsE,CAAC,CAAA;IAC7F,CAAC;IAED,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACjG,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACnF,CAAC;IAED,IAAI,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IACjF,CAAC;IAED,IAAI,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IACjF,CAAC;IAED,qBAAqB;IACrB,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACnE,CAAC;IAED,2DAA2D;IAC3D,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAA;IACnD,IAAI,eAAe,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,uCAAuC,eAAe,CAAC,MAAM,oCAAoC,aAAa,GAAG,CAClH,CAAA;IACH,CAAC;IAED,OAAO;QACL,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE;QACjC,eAAe;QACf,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;QACxC,UAAU;KACX,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAsB;IACvD,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAsB;IACrD,OAAO,SAAS,CAAC,UAAU,IAAI,GAAG,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAsB;IACvD,OAAO,SAAS,CAAC,UAAU,IAAI,GAAG,IAAI,SAAS,CAAC,UAAU,GAAG,GAAG,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAsB;IACpD,OAAO,SAAS,CAAC,UAAU,GAAG,GAAG,CAAA;AACnC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { AnomalyAction, RiskScore } from '../types';
2
+ import type { PiDetection } from './PiDetection';
3
+ /**
4
+ * PiDetectionResult - tipo puro
5
+ */
6
+ export type PiDetectionResult = {
7
+ readonly detections: readonly PiDetection[];
8
+ readonly score: RiskScore;
9
+ readonly action: AnomalyAction;
10
+ readonly patterns: readonly string[];
11
+ readonly detected: boolean;
12
+ };
13
+ /**
14
+ * Crea un PiDetectionResult - función pura
15
+ */
16
+ export declare function createPiDetectionResult(detections: readonly PiDetection[], action?: AnomalyAction): PiDetectionResult;
17
+ /**
18
+ * Funciones puras para PiDetectionResult
19
+ */
20
+ export declare function hasDetections(result: PiDetectionResult): boolean;
21
+ export declare function getDetectionCount(result: PiDetectionResult): number;
22
+ export declare function getDetectionsByType(result: PiDetectionResult, pattern_type: string): readonly PiDetection[];
23
+ export declare function getHighestConfidenceDetection(result: PiDetectionResult): PiDetection | undefined;
24
+ //# sourceMappingURL=PiDetectionResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PiDetectionResult.d.ts","sourceRoot":"","sources":["../../../src/isl/value-objects/PiDetectionResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAA;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B,CAAA;AAuCD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,SAAS,WAAW,EAAE,EAClC,MAAM,CAAC,EAAE,aAAa,GACrB,iBAAiB,CAqCnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAEhE;AAKD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAEnE;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,MAAM,GACnB,SAAS,WAAW,EAAE,CAExB;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,iBAAiB,GACxB,WAAW,GAAG,SAAS,CAQzB"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Calcula score agregado desde detecciones individuales - función pura
3
+ */
4
+ function calculateAggregatedScore(detections) {
5
+ if (detections.length === 0) {
6
+ return 0;
7
+ }
8
+ if (detections.length === 1) {
9
+ const first = detections[0];
10
+ if (!first)
11
+ return 0;
12
+ return first.confidence;
13
+ }
14
+ // Usar probabilidad complementaria: 1 - (1-c1)*(1-c2)*...
15
+ let complementaryProduct = 1;
16
+ for (const detection of detections) {
17
+ complementaryProduct *= (1 - detection.confidence);
18
+ }
19
+ const aggregatedScore = 1 - complementaryProduct;
20
+ return Math.max(0, Math.min(1, aggregatedScore));
21
+ }
22
+ /**
23
+ * Determina acción basada en score - función pura
24
+ */
25
+ function determineActionFromScore(score) {
26
+ if (score >= 0.7) {
27
+ return 'BLOCK';
28
+ }
29
+ else if (score >= 0.3) {
30
+ return 'WARN';
31
+ }
32
+ else {
33
+ return 'ALLOW';
34
+ }
35
+ }
36
+ /**
37
+ * Crea un PiDetectionResult - función pura
38
+ */
39
+ export function createPiDetectionResult(detections, action) {
40
+ // Validar detections array
41
+ if (!Array.isArray(detections)) {
42
+ throw new TypeError('PiDetectionResult detections must be an array');
43
+ }
44
+ // Calcular score agregado
45
+ const score = calculateAggregatedScore(detections);
46
+ // Determinar acción (o usar la proporcionada)
47
+ const finalAction = action ?? determineActionFromScore(score);
48
+ // Validar acción
49
+ if (!['ALLOW', 'WARN', 'BLOCK'].includes(finalAction)) {
50
+ throw new Error(`Invalid AnomalyAction: ${finalAction}. Must be one of: ALLOW, WARN, BLOCK`);
51
+ }
52
+ // Validar que la acción coincide con el score calculado
53
+ const expectedAction = determineActionFromScore(score);
54
+ if (finalAction !== expectedAction) {
55
+ throw new Error(`PiDetectionResult action mismatch. Calculated score ${score} requires action '${expectedAction}', but '${finalAction}' was provided`);
56
+ }
57
+ // Derivar patterns array
58
+ const patterns = detections.map((detection) => detection.pattern_type);
59
+ const result = {
60
+ detections: Object.freeze(Array.from(detections)),
61
+ score,
62
+ action: finalAction,
63
+ patterns: Object.freeze(Array.from(patterns)),
64
+ detected: detections.length > 0
65
+ };
66
+ return result;
67
+ }
68
+ /**
69
+ * Funciones puras para PiDetectionResult
70
+ */
71
+ export function hasDetections(result) {
72
+ return result.detected;
73
+ }
74
+ // shouldBlock y shouldWarn NO son core - son decisiones que van a ModelGateway
75
+ // El core solo produce señales (score, action), no decide acciones finales
76
+ export function getDetectionCount(result) {
77
+ return result.detections.length;
78
+ }
79
+ export function getDetectionsByType(result, pattern_type) {
80
+ return result.detections.filter(detection => detection.pattern_type === pattern_type);
81
+ }
82
+ export function getHighestConfidenceDetection(result) {
83
+ if (result.detections.length === 0) {
84
+ return undefined;
85
+ }
86
+ return result.detections.reduce((highest, current) => {
87
+ return current.confidence > highest.confidence ? current : highest;
88
+ });
89
+ }
90
+ //# sourceMappingURL=PiDetectionResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PiDetectionResult.js","sourceRoot":"","sources":["../../../src/isl/value-objects/PiDetectionResult.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,SAAS,wBAAwB,CAAC,UAAkC;IAClE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAA;QACpB,OAAO,KAAK,CAAC,UAAU,CAAA;IACzB,CAAC;IAED,0DAA0D;IAC1D,IAAI,oBAAoB,GAAG,CAAC,CAAA;IAC5B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,oBAAoB,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,GAAG,oBAAoB,CAAA;IAChD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAA;AAClD,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,KAAgB;IAChD,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,OAAO,CAAA;IAChB,CAAC;SAAM,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,OAAO,MAAM,CAAA;IACf,CAAC;SAAM,CAAC;QACN,OAAO,OAAO,CAAA;IAChB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkC,EAClC,MAAsB;IAEtB,2BAA2B;IAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAA;IACtE,CAAC;IAED,0BAA0B;IAC1B,MAAM,KAAK,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAElD,8CAA8C;IAC9C,MAAM,WAAW,GAAG,MAAM,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAA;IAE7D,iBAAiB;IACjB,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,0BAA0B,WAAW,sCAAsC,CAAC,CAAA;IAC9F,CAAC;IAED,wDAAwD;IACxD,MAAM,cAAc,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAA;IACtD,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,uDAAuD,KAAK,qBAAqB,cAAc,WAAW,WAAW,gBAAgB,CACtI,CAAA;IACH,CAAC;IAED,yBAAyB;IACzB,MAAM,QAAQ,GAAsB,UAAU,CAAC,GAAG,CAAC,CAAC,SAAsB,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IAEtG,MAAM,MAAM,GAAsB;QAChC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAA2B;QAC3E,KAAK;QACL,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,QAAQ,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC;KAChC,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAyB;IACrD,OAAO,MAAM,CAAC,QAAQ,CAAA;AACxB,CAAC;AAED,+EAA+E;AAC/E,2EAA2E;AAE3E,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAyB,EACzB,YAAoB;IAEpB,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,KAAK,YAAY,CAAC,CAAA;AACvF,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,MAAyB;IAEzB,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QACnD,OAAO,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;IACpE,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { BlockedIntent, ImmutableInstruction, ProtectedRole, SensitiveScope } from '../types';
2
+ /**
3
+ * RoleProtectionConfig - configuración de protección de roles
4
+ */
5
+ export type RoleProtectionConfig = {
6
+ readonly protectedRoles: readonly ProtectedRole[];
7
+ readonly immutableInstructions: readonly ImmutableInstruction[];
8
+ };
9
+ /**
10
+ * ContextLeakPreventionConfig - configuración de prevención de fuga de contexto
11
+ */
12
+ export type ContextLeakPreventionConfig = {
13
+ readonly enabled: boolean;
14
+ readonly blockMetadataExposure: boolean;
15
+ readonly sanitizeInternalReferences: boolean;
16
+ };
17
+ /**
18
+ * PolicyRule - tipo puro
19
+ */
20
+ export type PolicyRule = {
21
+ readonly version: string;
22
+ readonly blockedIntents: readonly BlockedIntent[];
23
+ readonly sensitiveScope: readonly SensitiveScope[];
24
+ readonly roleProtection: RoleProtectionConfig;
25
+ readonly contextLeakPrevention: ContextLeakPreventionConfig;
26
+ };
27
+ /**
28
+ * Crea un PolicyRule - función pura
29
+ */
30
+ export declare function createPolicyRule(version: string, blockedIntents: readonly BlockedIntent[], sensitiveScope: readonly SensitiveScope[], roleProtection: RoleProtectionConfig, contextLeakPrevention: ContextLeakPreventionConfig): PolicyRule;
31
+ /**
32
+ * Funciones puras para PolicyRule
33
+ */
34
+ export declare function isIntentBlocked(policy: PolicyRule, intent: string): boolean;
35
+ export declare function isScopeSensitive(policy: PolicyRule, scope: string): boolean;
36
+ export declare function isRoleProtected(policy: PolicyRule, role: string): boolean;
37
+ export declare function isInstructionImmutable(policy: PolicyRule, instruction: string): boolean;
38
+ export declare function isContextLeakPreventionEnabled(policy: PolicyRule): boolean;
39
+ //# sourceMappingURL=PolicyRule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolicyRule.d.ts","sourceRoot":"","sources":["../../../src/isl/value-objects/PolicyRule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAElG;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAA;IACjD,QAAQ,CAAC,qBAAqB,EAAE,SAAS,oBAAoB,EAAE,CAAA;CAChE,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAA;CAC7C,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAA;IACjD,QAAQ,CAAC,cAAc,EAAE,SAAS,cAAc,EAAE,CAAA;IAClD,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAA;IAC7C,QAAQ,CAAC,qBAAqB,EAAE,2BAA2B,CAAA;CAC5D,CAAA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,SAAS,aAAa,EAAE,EACxC,cAAc,EAAE,SAAS,cAAc,EAAE,EACzC,cAAc,EAAE,oBAAoB,EACpC,qBAAqB,EAAE,2BAA2B,GACjD,UAAU,CAqDZ;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3E;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEvF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE1E"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Crea un PolicyRule - función pura
3
+ */
4
+ export function createPolicyRule(version, blockedIntents, sensitiveScope, roleProtection, contextLeakPrevention) {
5
+ if (!version || typeof version !== 'string' || version.trim().length === 0) {
6
+ throw new Error('PolicyRule version must be a non-empty string');
7
+ }
8
+ if (!Array.isArray(blockedIntents)) {
9
+ throw new TypeError('PolicyRule blockedIntents must be an array');
10
+ }
11
+ if (!Array.isArray(sensitiveScope)) {
12
+ throw new TypeError('PolicyRule sensitiveScope must be an array');
13
+ }
14
+ if (!roleProtection || typeof roleProtection !== 'object') {
15
+ throw new TypeError('PolicyRule roleProtection must be an object');
16
+ }
17
+ if (!Array.isArray(roleProtection.protectedRoles)) {
18
+ throw new TypeError('PolicyRule roleProtection.protectedRoles must be an array');
19
+ }
20
+ if (!Array.isArray(roleProtection.immutableInstructions)) {
21
+ throw new TypeError('PolicyRule roleProtection.immutableInstructions must be an array');
22
+ }
23
+ if (!contextLeakPrevention || typeof contextLeakPrevention !== 'object') {
24
+ throw new TypeError('PolicyRule contextLeakPrevention must be an object');
25
+ }
26
+ if (typeof contextLeakPrevention.enabled !== 'boolean') {
27
+ throw new TypeError('PolicyRule contextLeakPrevention.enabled must be a boolean');
28
+ }
29
+ if (typeof contextLeakPrevention.blockMetadataExposure !== 'boolean') {
30
+ throw new TypeError('PolicyRule contextLeakPrevention.blockMetadataExposure must be a boolean');
31
+ }
32
+ if (typeof contextLeakPrevention.sanitizeInternalReferences !== 'boolean') {
33
+ throw new TypeError('PolicyRule contextLeakPrevention.sanitizeInternalReferences must be a boolean');
34
+ }
35
+ const result = {
36
+ version: version.trim(),
37
+ blockedIntents: Object.freeze(Array.from(blockedIntents)),
38
+ sensitiveScope: Object.freeze(Array.from(sensitiveScope)),
39
+ roleProtection: {
40
+ protectedRoles: Object.freeze(Array.from(roleProtection.protectedRoles)),
41
+ immutableInstructions: Object.freeze(Array.from(roleProtection.immutableInstructions))
42
+ },
43
+ contextLeakPrevention: Object.freeze({ ...contextLeakPrevention })
44
+ };
45
+ return result;
46
+ }
47
+ /**
48
+ * Funciones puras para PolicyRule
49
+ */
50
+ export function isIntentBlocked(policy, intent) {
51
+ return policy.blockedIntents.includes(intent);
52
+ }
53
+ export function isScopeSensitive(policy, scope) {
54
+ return policy.sensitiveScope.includes(scope);
55
+ }
56
+ export function isRoleProtected(policy, role) {
57
+ return policy.roleProtection.protectedRoles.includes(role);
58
+ }
59
+ export function isInstructionImmutable(policy, instruction) {
60
+ return policy.roleProtection.immutableInstructions.includes(instruction);
61
+ }
62
+ export function isContextLeakPreventionEnabled(policy) {
63
+ return policy.contextLeakPrevention.enabled;
64
+ }
65
+ //# sourceMappingURL=PolicyRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolicyRule.js","sourceRoot":"","sources":["../../../src/isl/value-objects/PolicyRule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export type { PiDetection } from './PiDetection';
2
+ export type { PiDetectionResult } from './PiDetectionResult';
3
+ export type { AnomalyScore } from './AnomalyScore';
4
+ export type { Pattern } from './Pattern';
5
+ export { createPiDetection, getDetectionLength, isHighConfidence, isMediumConfidence, isLowConfidence } from './PiDetection';
6
+ export { createPiDetectionResult, hasDetections, getDetectionCount, getDetectionsByType, getHighestConfidenceDetection } from './PiDetectionResult';
7
+ export { createAnomalyScore, isHighRisk, isWarnRisk, isLowRisk } from './AnomalyScore';
8
+ export { createPattern, matchesPattern, findMatch, MAX_CONTENT_LENGTH, MAX_PATTERN_LENGTH, MAX_MATCHES } from './Pattern';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/isl/value-objects/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,SAAS,EACV,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,aAAa,EACb,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACZ,MAAM,WAAW,CAAA"}
@@ -0,0 +1,8 @@
1
+ // Funciones de creación
2
+ export { createPiDetection, getDetectionLength, isHighConfidence, isMediumConfidence, isLowConfidence } from './PiDetection';
3
+ export { createPiDetectionResult, hasDetections, getDetectionCount, getDetectionsByType, getHighestConfidenceDetection } from './PiDetectionResult';
4
+ export { createAnomalyScore, isHighRisk, isWarnRisk, isLowRisk } from './AnomalyScore';
5
+ export { createPattern, matchesPattern, findMatch, MAX_CONTENT_LENGTH, MAX_PATTERN_LENGTH, MAX_MATCHES } from './Pattern';
6
+ // PolicyRule NO es core - va a ModelGateway/Policy Engine
7
+ // Se mantiene el tipo para compatibilidad pero las funciones de decisión no son core
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,eAAe,CAAA;AAEtB,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,SAAS,EACV,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,aAAa,EACb,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACZ,MAAM,WAAW,CAAA;AAElB,0DAA0D;AAC1D,qFAAqF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shared utilities for all layers - funciones puras compartidas
3
+ *
4
+ * @remarks
5
+ * Solo funciones básicas de manejo de linaje.
6
+ * Auditoría y análisis avanzado van al SDK.
7
+ */
8
+ export { addLineageEntry, addLineageEntries, filterLineageByStep, getLastLineageEntry } from './lineage';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,WAAW,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shared utilities for all layers - funciones puras compartidas
3
+ *
4
+ * @remarks
5
+ * Solo funciones básicas de manejo de linaje.
6
+ * Auditoría y análisis avanzado van al SDK.
7
+ */
8
+ // Lineage básico
9
+ export { addLineageEntry, addLineageEntries, filterLineageByStep, getLastLineageEntry } from './lineage';
10
+ // Funciones de auditoría NO son core - van al SDK/tooling
11
+ // El core solo preserva linaje, no lo analiza
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,iBAAiB;AACjB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,WAAW,CAAA;AAElB,0DAA0D;AAC1D,8CAA8C"}
@@ -0,0 +1,29 @@
1
+ import type { LineageEntry } from '../csl/value-objects';
2
+ /**
3
+ * Lineage global - funciones puras para manejar linaje entre capas
4
+ *
5
+ * @remarks
6
+ * El linaje es compartido entre todas las capas (CSL, ISL, CPE, etc.)
7
+ * Cada capa puede agregar entradas al linaje de un segmento.
8
+ */
9
+ /**
10
+ * Agrega una entrada de linaje a un array existente - función pura
11
+ *
12
+ * @param lineage - Array de entradas de linaje existentes
13
+ * @param entry - Nueva entrada a agregar
14
+ * @returns Nuevo array con la entrada agregada
15
+ */
16
+ export declare function addLineageEntry(lineage: readonly LineageEntry[], entry: LineageEntry): LineageEntry[];
17
+ /**
18
+ * Agrega múltiples entradas de linaje - función pura
19
+ */
20
+ export declare function addLineageEntries(lineage: readonly LineageEntry[], entries: readonly LineageEntry[]): LineageEntry[];
21
+ /**
22
+ * Filtra entradas de linaje por step - función pura
23
+ */
24
+ export declare function filterLineageByStep(lineage: readonly LineageEntry[], step: string): LineageEntry[];
25
+ /**
26
+ * Obtiene la última entrada de linaje - función pura
27
+ */
28
+ export declare function getLastLineageEntry(lineage: readonly LineageEntry[]): LineageEntry | undefined;
29
+ //# sourceMappingURL=lineage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineage.d.ts","sourceRoot":"","sources":["../../src/shared/lineage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD;;;;;;GAMG;AAEH;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,KAAK,EAAE,YAAY,GAClB,YAAY,EAAE,CAEhB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,OAAO,EAAE,SAAS,YAAY,EAAE,GAC/B,YAAY,EAAE,CAEhB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,IAAI,EAAE,MAAM,GACX,YAAY,EAAE,CAEhB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,YAAY,EAAE,GAC/B,YAAY,GAAG,SAAS,CAE1B"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Lineage global - funciones puras para manejar linaje entre capas
3
+ *
4
+ * @remarks
5
+ * El linaje es compartido entre todas las capas (CSL, ISL, CPE, etc.)
6
+ * Cada capa puede agregar entradas al linaje de un segmento.
7
+ */
8
+ /**
9
+ * Agrega una entrada de linaje a un array existente - función pura
10
+ *
11
+ * @param lineage - Array de entradas de linaje existentes
12
+ * @param entry - Nueva entrada a agregar
13
+ * @returns Nuevo array con la entrada agregada
14
+ */
15
+ export function addLineageEntry(lineage, entry) {
16
+ return [...lineage, entry];
17
+ }
18
+ /**
19
+ * Agrega múltiples entradas de linaje - función pura
20
+ */
21
+ export function addLineageEntries(lineage, entries) {
22
+ return [...lineage, ...entries];
23
+ }
24
+ /**
25
+ * Filtra entradas de linaje por step - función pura
26
+ */
27
+ export function filterLineageByStep(lineage, step) {
28
+ return lineage.filter(entry => entry.step === step);
29
+ }
30
+ /**
31
+ * Obtiene la última entrada de linaje - función pura
32
+ */
33
+ export function getLastLineageEntry(lineage) {
34
+ return lineage.length > 0 ? lineage.at(-1) : undefined;
35
+ }
36
+ //# sourceMappingURL=lineage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineage.js","sourceRoot":"","sources":["../../src/shared/lineage.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAgC,EAChC,KAAmB;IAEnB,OAAO,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,CAAA;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAgC,EAChC,OAAgC;IAEhC,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAA;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAgC,EAChC,IAAY;IAEZ,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAgC;IAEhC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACxD,CAAC"}
package/package.json CHANGED
@@ -1,38 +1,39 @@
1
1
  {
2
2
  "name": "@ai-pip/core",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Core implementation of the AI-PIP protocol. Provides layered, zero-trust context processing (CSL, ISL, CPE, ALL, ModelGateway)",
5
5
  "type": "module",
6
- "main": "./src/index.ts",
7
- "types": "./src/index.ts",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
- "types": "./src/index.ts",
11
- "import": "./src/index.ts",
12
- "default": "./src/index.ts"
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
13
  },
14
14
  "./csl": {
15
- "types": "./src/csl/index.ts",
16
- "import": "./src/csl/index.ts",
17
- "default": "./src/csl/index.ts"
15
+ "types": "./dist/csl/index.d.ts",
16
+ "import": "./dist/csl/index.js",
17
+ "default": "./dist/csl/index.js"
18
18
  },
19
19
  "./isl": {
20
- "types": "./src/isl/index.ts",
21
- "import": "./src/isl/index.ts",
22
- "default": "./src/isl/index.ts"
20
+ "types": "./dist/isl/index.d.ts",
21
+ "import": "./dist/isl/index.js",
22
+ "default": "./dist/isl/index.js"
23
23
  },
24
24
  "./cpe": {
25
- "types": "./src/cpe/index.ts",
26
- "import": "./src/cpe/index.ts",
27
- "default": "./src/cpe/index.ts"
25
+ "types": "./dist/cpe/index.d.ts",
26
+ "import": "./dist/cpe/index.js",
27
+ "default": "./dist/cpe/index.js"
28
28
  },
29
29
  "./shared": {
30
- "types": "./src/shared/index.ts",
31
- "import": "./src/shared/index.ts",
32
- "default": "./src/shared/index.ts"
30
+ "types": "./dist/shared/index.d.ts",
31
+ "import": "./dist/shared/index.js",
32
+ "default": "./dist/shared/index.js"
33
33
  }
34
34
  },
35
35
  "files": [
36
+ "dist",
36
37
  "src",
37
38
  "tsconfig.json",
38
39
  "README.md",
package/src/cpe/index.ts CHANGED
@@ -25,10 +25,19 @@ export { createSignature } from './value-objects/Signature'
25
25
  export type { SignatureVO } from './value-objects/Signature'
26
26
 
27
27
  // Exceptions
28
- export * from './exceptions'
28
+ export { EnvelopeError } from './exceptions/EnvelopeError'
29
29
 
30
30
  // Types
31
- export * from './types'
31
+ export type {
32
+ ProtocolVersion,
33
+ Timestamp,
34
+ NonceValue,
35
+ SignatureAlgorithm,
36
+ Signature,
37
+ CPEMetadata,
38
+ CPEEvelope,
39
+ CPEResult
40
+ } from './types'
32
41
 
33
42
  // Serialización y verificación NO son core - van al SDK
34
43
  // El core solo define la estructura del envelope, no implementa serialización
@@ -9,7 +9,7 @@ import type { Nonce as NonceVO } from './Nonce'
9
9
  /**
10
10
  * Versión actual del protocolo
11
11
  */
12
- export const CURRENT_PROTOCOL_VERSION: ProtocolVersion = '1.0.0'
12
+ export const CURRENT_PROTOCOL_VERSION: ProtocolVersion = '0.1.4'
13
13
 
14
14
  /**
15
15
  * Crea metadata de seguridad para el envelope
@@ -2,7 +2,9 @@
2
2
  * CPE Value Objects - Exports
3
3
  */
4
4
 
5
- export * from './Nonce'
6
- export * from './Metadata'
7
- export * from './Signature'
5
+ export type { Nonce } from './Nonce'
6
+ export { createNonce, isValidNonce, equalsNonce } from './Nonce'
7
+ export { createMetadata, isValidMetadata } from './Metadata'
8
+ export type { SignatureVO } from './Signature'
9
+ export { createSignature, verifySignature, isValidSignatureFormat } from './Signature'
8
10
 
@@ -1,3 +1,3 @@
1
- export * from './ClassificationError'
2
- export * from './SegmentationError'
1
+ export { ClassificationError } from './ClassificationError'
2
+ export { SegmentationError } from './SegmentationError'
3
3
 
package/src/csl/index.ts CHANGED
@@ -21,13 +21,34 @@ export { classifySource, classifyOrigin } from './classify'
21
21
  export { initLineage, createLineageEntry } from './lineage'
22
22
 
23
23
  // Value objects
24
- export * from './value-objects'
24
+ export type { TrustLevel, Origin, LineageEntry, ContentHash } from './value-objects'
25
+ export {
26
+ createTrustLevel,
27
+ isTrusted,
28
+ isSemiTrusted,
29
+ isUntrusted,
30
+ createOrigin,
31
+ isDom,
32
+ isUser,
33
+ isSystem,
34
+ isInjected,
35
+ isUnknown,
36
+ isNetworkFetched,
37
+ isExternal,
38
+ isSha256,
39
+ isSha512,
40
+ originMap,
41
+ createContentHash,
42
+ validateOriginMap
43
+ } from './value-objects'
25
44
 
26
45
  // Exceptions
27
- export * from './exceptions'
46
+ export { ClassificationError } from './exceptions/ClassificationError'
47
+ export { SegmentationError } from './exceptions/SegmentationError'
28
48
 
29
49
  // Types
30
- export * from './types'
50
+ export { OriginType, TrustLevelType } from './types'
51
+ export type { HashAlgorithm, Source, CSLInput, CSLSegment, CSLResult } from './types'
31
52
 
32
53
  // Utils
33
54
  export { generateId, splitByContextRules } from './utils'