@ai-pip/core 0.1.8 → 0.3.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 +157 -2
- package/README.md +351 -11
- 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 +29 -0
- package/dist/AAL/index.d.ts.map +1 -0
- package/dist/AAL/index.js +30 -0
- package/dist/AAL/index.js.map +1 -0
- package/dist/AAL/lineage/buildAALLineage.d.ts +22 -0
- package/dist/AAL/lineage/buildAALLineage.d.ts.map +1 -0
- package/dist/AAL/lineage/buildAALLineage.js +26 -0
- package/dist/AAL/lineage/buildAALLineage.js.map +1 -0
- package/dist/AAL/lineage/index.d.ts +5 -0
- package/dist/AAL/lineage/index.d.ts.map +1 -0
- package/dist/AAL/lineage/index.js +5 -0
- package/dist/AAL/lineage/index.js.map +1 -0
- package/dist/AAL/process/applyRemovalPlan.d.ts +21 -0
- package/dist/AAL/process/applyRemovalPlan.d.ts.map +1 -0
- package/dist/AAL/process/applyRemovalPlan.js +150 -0
- package/dist/AAL/process/applyRemovalPlan.js.map +1 -0
- package/dist/AAL/process/buildDecisionReason.d.ts +36 -0
- package/dist/AAL/process/buildDecisionReason.d.ts.map +1 -0
- package/dist/AAL/process/buildDecisionReason.js +70 -0
- package/dist/AAL/process/buildDecisionReason.js.map +1 -0
- package/dist/AAL/process/buildRemovalPlan.d.ts +39 -0
- package/dist/AAL/process/buildRemovalPlan.d.ts.map +1 -0
- package/dist/AAL/process/buildRemovalPlan.js +104 -0
- package/dist/AAL/process/buildRemovalPlan.js.map +1 -0
- package/dist/AAL/process/index.d.ts +10 -0
- package/dist/AAL/process/index.d.ts.map +1 -0
- package/dist/AAL/process/index.js +8 -0
- package/dist/AAL/process/index.js.map +1 -0
- package/dist/AAL/process/resolveAgentAction.d.ts +31 -0
- package/dist/AAL/process/resolveAgentAction.d.ts.map +1 -0
- package/dist/AAL/process/resolveAgentAction.js +67 -0
- package/dist/AAL/process/resolveAgentAction.js.map +1 -0
- package/dist/AAL/types.d.ts +108 -0
- package/dist/AAL/types.d.ts.map +1 -0
- package/dist/AAL/types.js +2 -0
- package/dist/AAL/types.js.map +1 -0
- package/dist/{isl → AAL}/value-objects/AnomalyScore.d.ts +2 -1
- package/dist/AAL/value-objects/AnomalyScore.d.ts.map +1 -0
- package/dist/{isl → AAL}/value-objects/AnomalyScore.js.map +1 -1
- package/dist/{isl → AAL}/value-objects/PolicyRule.d.ts.map +1 -1
- package/dist/{isl → AAL}/value-objects/PolicyRule.js.map +1 -1
- package/dist/AAL/value-objects/index.d.ts +5 -0
- package/dist/AAL/value-objects/index.d.ts.map +1 -0
- package/dist/AAL/value-objects/index.js +3 -0
- package/dist/AAL/value-objects/index.js.map +1 -0
- package/dist/index.d.ts +10 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -5
- 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 +22 -6
- package/dist/isl/index.d.ts.map +1 -1
- package/dist/isl/index.js +20 -5
- package/dist/isl/index.js.map +1 -1
- package/dist/isl/lineage/buildISLLineage.d.ts +22 -0
- package/dist/isl/lineage/buildISLLineage.d.ts.map +1 -0
- package/dist/isl/lineage/buildISLLineage.js +26 -0
- package/dist/isl/lineage/buildISLLineage.js.map +1 -0
- package/dist/isl/lineage/index.d.ts +5 -0
- package/dist/isl/lineage/index.d.ts.map +1 -0
- package/dist/isl/lineage/index.js +5 -0
- package/dist/isl/lineage/index.js.map +1 -0
- package/dist/isl/process/buildISLResult.d.ts +24 -0
- package/dist/isl/process/buildISLResult.d.ts.map +1 -0
- package/dist/isl/process/buildISLResult.js +38 -0
- package/dist/isl/process/buildISLResult.js.map +1 -0
- package/dist/isl/process/emitSignal.d.ts +32 -0
- package/dist/isl/process/emitSignal.d.ts.map +1 -0
- package/dist/isl/process/emitSignal.js +41 -0
- package/dist/isl/process/emitSignal.js.map +1 -0
- package/dist/isl/process/index.d.ts +7 -0
- package/dist/isl/process/index.d.ts.map +1 -0
- package/dist/isl/process/index.js +6 -0
- package/dist/isl/process/index.js.map +1 -0
- 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 +13 -6
- package/dist/isl/sanitize.d.ts.map +1 -1
- package/dist/isl/sanitize.js +34 -40
- package/dist/isl/sanitize.js.map +1 -1
- package/dist/isl/signals.d.ts +113 -0
- package/dist/isl/signals.d.ts.map +1 -0
- package/dist/isl/signals.js +94 -0
- package/dist/isl/signals.js.map +1 -0
- package/dist/isl/types.d.ts +4 -48
- package/dist/isl/types.d.ts.map +1 -1
- package/dist/isl/types.js +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/PiDetection.d.ts +2 -1
- package/dist/isl/value-objects/PiDetection.d.ts.map +1 -1
- package/dist/isl/value-objects/PiDetectionResult.d.ts +2 -3
- package/dist/isl/value-objects/PiDetectionResult.d.ts.map +1 -1
- package/dist/isl/value-objects/PiDetectionResult.js +1 -27
- package/dist/isl/value-objects/PiDetectionResult.js.map +1 -1
- package/dist/isl/value-objects/RiskScore.d.ts +70 -0
- package/dist/isl/value-objects/RiskScore.d.ts.map +1 -0
- package/dist/isl/value-objects/RiskScore.js +85 -0
- package/dist/isl/value-objects/RiskScore.js.map +1 -0
- package/dist/isl/value-objects/index.d.ts +4 -4
- package/dist/isl/value-objects/index.d.ts.map +1 -1
- package/dist/isl/value-objects/index.js +2 -4
- package/dist/isl/value-objects/index.js.map +1 -1
- package/dist/shared/audit.d.ts +250 -0
- package/dist/shared/audit.d.ts.map +1 -0
- package/dist/shared/audit.js +455 -0
- package/dist/shared/audit.js.map +1 -0
- package/dist/shared/index.d.ts +5 -3
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +5 -6
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/types.d.ts +36 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +2 -0
- package/dist/shared/types.js.map +1 -0
- package/package.json +12 -3
- package/dist/isl/value-objects/AnomalyScore.d.ts.map +0 -1
- /package/dist/{isl → AAL}/value-objects/AnomalyScore.js +0 -0
- /package/dist/{isl → AAL}/value-objects/PolicyRule.d.ts +0 -0
- /package/dist/{isl → AAL}/value-objects/PolicyRule.js +0 -0
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI-PIP Audit utilities - Pure functions for ordered, human-readable audit output
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* These functions format layer results and signals so that the **data** exposed
|
|
6
|
+
* is self-explanatory for an external auditor: each block includes a short
|
|
7
|
+
* explanation of what it represents, human-readable labels (e.g. TC/STC/UC,
|
|
8
|
+
* ALLOW/WARN/BLOCK), and origin/traceability. Visual styling is not part of core;
|
|
9
|
+
* scripts or SDK can consume this text for richer presentation.
|
|
10
|
+
*
|
|
11
|
+
* Supports:
|
|
12
|
+
* - Text report (formatPipelineAudit, formatPipelineAuditFull)
|
|
13
|
+
* - JSON report for logs/machine consumption (buildFullAuditPayload, formatPipelineAuditAsJson)
|
|
14
|
+
* - Run identifier (createAuditRunId) and generatedAt for correlation
|
|
15
|
+
* - Compact log entry (buildAuditLogEntry) for one-line logging
|
|
16
|
+
*/
|
|
17
|
+
/** Trust level legend for audit output (human-readable) */
|
|
18
|
+
const TRUST_LEGEND = {
|
|
19
|
+
TC: 'Trusted Content',
|
|
20
|
+
STC: 'Semi-Trusted Content',
|
|
21
|
+
UC: 'Untrusted Content'
|
|
22
|
+
};
|
|
23
|
+
/** Action legend for audit output */
|
|
24
|
+
const ACTION_LEGEND = {
|
|
25
|
+
ALLOW: 'Allow (risk below warn threshold)',
|
|
26
|
+
WARN: 'Warn (risk above warn, below block)',
|
|
27
|
+
BLOCK: 'Block (risk above block threshold)'
|
|
28
|
+
};
|
|
29
|
+
const SEP = ' ';
|
|
30
|
+
const BORDER = '---';
|
|
31
|
+
/**
|
|
32
|
+
* Creates a unique run identifier for audit correlation (e.g. logs, multiple reports).
|
|
33
|
+
* Uses crypto.randomUUID() when available, otherwise a time-based id.
|
|
34
|
+
*/
|
|
35
|
+
export function createAuditRunId() {
|
|
36
|
+
if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {
|
|
37
|
+
return crypto.randomUUID();
|
|
38
|
+
}
|
|
39
|
+
return `audit-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
|
|
40
|
+
}
|
|
41
|
+
function ensureRunInfo(options) {
|
|
42
|
+
const generatedAt = options?.generatedAt ?? Date.now();
|
|
43
|
+
return {
|
|
44
|
+
runId: options?.runId ?? createAuditRunId(),
|
|
45
|
+
generatedAt,
|
|
46
|
+
generatedAtIso: new Date(generatedAt).toISOString()
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Builds a compact audit entry for one-line logging (e.g. logger.info(JSON.stringify(entry))).
|
|
51
|
+
* Lineage is not included; use buildFullAuditPayload for full traceability.
|
|
52
|
+
*/
|
|
53
|
+
export function buildAuditLogEntry(signal, reason, options) {
|
|
54
|
+
const run = ensureRunInfo(options);
|
|
55
|
+
return {
|
|
56
|
+
runId: run.runId,
|
|
57
|
+
generatedAt: run.generatedAt,
|
|
58
|
+
generatedAtIso: run.generatedAtIso,
|
|
59
|
+
action: reason.action,
|
|
60
|
+
riskScore: reason.riskScore,
|
|
61
|
+
hasThreats: reason.hasThreats,
|
|
62
|
+
detectionCount: reason.detectionCount
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function lineageToJson(lineage) {
|
|
66
|
+
return lineage.map((e) => ({ step: e.step, timestamp: e.timestamp }));
|
|
67
|
+
}
|
|
68
|
+
function buildCslSection(result) {
|
|
69
|
+
return {
|
|
70
|
+
layer: 'CSL',
|
|
71
|
+
segmentCount: result.segments.length,
|
|
72
|
+
segments: result.segments.map((seg) => ({
|
|
73
|
+
id: seg.id,
|
|
74
|
+
trust: seg.trust.value,
|
|
75
|
+
contentLength: seg.content.length
|
|
76
|
+
})),
|
|
77
|
+
lineage: lineageToJson(result.lineage),
|
|
78
|
+
...(typeof result.processingTimeMs === 'number' && { processingTimeMs: result.processingTimeMs })
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function buildIslSection(result) {
|
|
82
|
+
const meta = result.metadata;
|
|
83
|
+
return {
|
|
84
|
+
layer: 'ISL',
|
|
85
|
+
totalSegments: meta.totalSegments,
|
|
86
|
+
sanitizedSegments: meta.sanitizedSegments,
|
|
87
|
+
segments: result.segments.map((seg) => {
|
|
88
|
+
const pi = seg.piDetection;
|
|
89
|
+
const detections = pi?.detections;
|
|
90
|
+
const detectionTypes = detections?.length ? summarizeDetectionTypes(detections) : 'none';
|
|
91
|
+
return {
|
|
92
|
+
id: seg.id,
|
|
93
|
+
trust: seg.trust.value,
|
|
94
|
+
sanitizationLevel: seg.sanitizationLevel,
|
|
95
|
+
originalLength: seg.originalContent.length,
|
|
96
|
+
sanitizedLength: seg.sanitizedContent.length,
|
|
97
|
+
detections: detections?.length ?? 0,
|
|
98
|
+
detectionTypes
|
|
99
|
+
};
|
|
100
|
+
}),
|
|
101
|
+
lineage: lineageToJson(result.lineage),
|
|
102
|
+
...(typeof meta.processingTimeMs === 'number' && { processingTimeMs: meta.processingTimeMs })
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function buildIslSignalSection(signal) {
|
|
106
|
+
const pd = signal.piDetection;
|
|
107
|
+
return {
|
|
108
|
+
layer: 'ISL_SIGNAL',
|
|
109
|
+
riskScore: signal.riskScore,
|
|
110
|
+
hasThreats: signal.hasThreats,
|
|
111
|
+
timestamp: signal.timestamp,
|
|
112
|
+
timestampIso: new Date(signal.timestamp).toISOString(),
|
|
113
|
+
piDetection: {
|
|
114
|
+
detected: pd.detected,
|
|
115
|
+
score: pd.score,
|
|
116
|
+
detectionCount: pd.detections.length,
|
|
117
|
+
detectionTypes: summarizeDetectionTypes(pd.detections),
|
|
118
|
+
...(pd.patterns && pd.patterns.length > 0 && { patterns: [...pd.patterns] })
|
|
119
|
+
},
|
|
120
|
+
...(signal.metadata?.strategy && { strategy: signal.metadata.strategy })
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
function buildAalSection(reason, removalPlan) {
|
|
124
|
+
const section = {
|
|
125
|
+
layer: 'AAL',
|
|
126
|
+
action: reason.action,
|
|
127
|
+
reason: reason.reason,
|
|
128
|
+
riskScore: reason.riskScore,
|
|
129
|
+
threshold: reason.threshold,
|
|
130
|
+
hasThreats: reason.hasThreats,
|
|
131
|
+
detectionCount: reason.detectionCount
|
|
132
|
+
};
|
|
133
|
+
if (removalPlan != null) {
|
|
134
|
+
section.removalEnabled = removalPlan.removalEnabled;
|
|
135
|
+
section.shouldRemove = removalPlan.shouldRemove;
|
|
136
|
+
section.instructionsToRemove = removalPlan.instructionsToRemove.map((inst) => ({
|
|
137
|
+
type: inst.type ?? 'unknown',
|
|
138
|
+
description: inst.description ?? inst.pattern ?? ''
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
return section;
|
|
142
|
+
}
|
|
143
|
+
function buildCpeSection(result) {
|
|
144
|
+
const env = result.envelope;
|
|
145
|
+
return {
|
|
146
|
+
layer: 'CPE',
|
|
147
|
+
nonce: env.metadata.nonce,
|
|
148
|
+
timestamp: env.metadata.timestamp,
|
|
149
|
+
timestampIso: new Date(env.metadata.timestamp).toISOString(),
|
|
150
|
+
signatureAlgorithm: env.signature.algorithm,
|
|
151
|
+
lineage: lineageToJson(env.lineage),
|
|
152
|
+
...(typeof env.metadata.protocolVersion === 'string' && { protocolVersion: env.metadata.protocolVersion }),
|
|
153
|
+
...(typeof result.processingTimeMs === 'number' && { processingTimeMs: result.processingTimeMs })
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Builds the full pipeline audit payload (JSON-serializable) with run id, timestamp, summary for logs, and section data.
|
|
158
|
+
* Preserves lineage in each section for traceability. Use formatPipelineAuditAsJson to get a JSON string.
|
|
159
|
+
*/
|
|
160
|
+
export function buildFullAuditPayload(csl, isl, signal, reason, options) {
|
|
161
|
+
const run = ensureRunInfo(options);
|
|
162
|
+
const removalPlan = options?.removalPlan ?? undefined;
|
|
163
|
+
const cpe = options?.cpe;
|
|
164
|
+
const includeCpe = options?.includeCpe === true && cpe != null;
|
|
165
|
+
const payload = {
|
|
166
|
+
runId: run.runId,
|
|
167
|
+
generatedAt: run.generatedAt,
|
|
168
|
+
generatedAtIso: run.generatedAtIso,
|
|
169
|
+
summary: {
|
|
170
|
+
action: reason.action,
|
|
171
|
+
riskScore: reason.riskScore,
|
|
172
|
+
hasThreats: reason.hasThreats,
|
|
173
|
+
detectionCount: reason.detectionCount
|
|
174
|
+
},
|
|
175
|
+
sections: {
|
|
176
|
+
csl: buildCslSection(csl),
|
|
177
|
+
isl: buildIslSection(isl),
|
|
178
|
+
islSignal: buildIslSignalSection(signal),
|
|
179
|
+
aal: buildAalSection(reason, removalPlan),
|
|
180
|
+
...(includeCpe && cpe && { cpe: buildCpeSection(cpe) })
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
return payload;
|
|
184
|
+
}
|
|
185
|
+
/** Summarizes detection types for audit (e.g. "prompt-injection (2), jailbreak (1)") */
|
|
186
|
+
function summarizeDetectionTypes(detections) {
|
|
187
|
+
if (detections.length === 0)
|
|
188
|
+
return 'none';
|
|
189
|
+
const counts = {};
|
|
190
|
+
for (const d of detections) {
|
|
191
|
+
const t = d.pattern_type ?? 'unknown';
|
|
192
|
+
counts[t] = (counts[t] ?? 0) + 1;
|
|
193
|
+
}
|
|
194
|
+
return Object.entries(counts)
|
|
195
|
+
.sort((a, b) => b[1] - a[1])
|
|
196
|
+
.map(([type, n]) => `${type} (${n})`)
|
|
197
|
+
.join(', ');
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Formats lineage entries for audit - chronological traceability
|
|
201
|
+
*
|
|
202
|
+
* @param lineage - Array of lineage entries (any layer)
|
|
203
|
+
* @returns Formatted string with short legend and chronological steps
|
|
204
|
+
*/
|
|
205
|
+
export function formatLineageForAudit(lineage) {
|
|
206
|
+
if (lineage.length === 0)
|
|
207
|
+
return 'Lineage: (none)\n Data: chronological list of processing steps (CSL, ISL, CPE, etc.) with timestamp.';
|
|
208
|
+
const legend = 'Chronological traceability: each entry is a processing step with timestamp.';
|
|
209
|
+
const lines = lineage.map((e, i) => `${SEP}${i + 1}. [${e.step}] ${new Date(e.timestamp).toISOString()}`);
|
|
210
|
+
return ['Lineage:', legend, BORDER, ...lines].join('\n');
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Formats CSL result for audit - data self-explanatory for external auditor
|
|
214
|
+
*
|
|
215
|
+
* @param result - CSL result (or compatible shape)
|
|
216
|
+
* @returns Formatted string: what this block is, data origin, trust legend, per-segment data
|
|
217
|
+
*/
|
|
218
|
+
export function formatCSLForAudit(result) {
|
|
219
|
+
const header = 'Content segmented and classified by trust. Trust levels: TC=Trusted Content, STC=Semi-Trusted Content, UC=Untrusted Content.';
|
|
220
|
+
const origin = 'Data from: CSL segmentation result (input split into segments with trust per segment).';
|
|
221
|
+
const processingTimeLine = typeof result.processingTimeMs === 'number'
|
|
222
|
+
? [`Processing time: ${result.processingTimeMs}ms`]
|
|
223
|
+
: [];
|
|
224
|
+
const segmentLines = result.segments.map((seg, i) => {
|
|
225
|
+
const trustLabel = TRUST_LEGEND[seg.trust.value] ?? seg.trust.value;
|
|
226
|
+
return `${SEP}Segment ${i + 1}: id=${seg.id} trust=${seg.trust.value} (${trustLabel}) content_length=${seg.content.length}`;
|
|
227
|
+
});
|
|
228
|
+
const lines = [
|
|
229
|
+
'[CSL] Context Segmentation Layer',
|
|
230
|
+
header,
|
|
231
|
+
origin,
|
|
232
|
+
BORDER,
|
|
233
|
+
`Segments: ${result.segments.length}`,
|
|
234
|
+
...processingTimeLine,
|
|
235
|
+
...segmentLines,
|
|
236
|
+
'',
|
|
237
|
+
formatLineageForAudit(result.lineage)
|
|
238
|
+
];
|
|
239
|
+
return lines.join('\n');
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Formats ISL result for audit - data self-explanatory; per-segment detections when present
|
|
243
|
+
*
|
|
244
|
+
* @param result - ISL result (or compatible shape)
|
|
245
|
+
* @returns Formatted string: what this block is, data origin, per-segment trust/level/length/detections
|
|
246
|
+
*/
|
|
247
|
+
export function formatISLForAudit(result) {
|
|
248
|
+
const header = 'Content sanitized by ISL; sanitization level per segment (minimal/moderate/aggressive). Per segment: trust, level, length before/after, detections (if any).';
|
|
249
|
+
const origin = 'Data from: ISL sanitization result (each segment may have piDetection with threat detections).';
|
|
250
|
+
const meta = result.metadata;
|
|
251
|
+
const processingTimeLine = typeof meta.processingTimeMs === 'number' ? [`Processing time: ${meta.processingTimeMs}ms`] : [];
|
|
252
|
+
const segmentLines = result.segments.flatMap((seg, i) => {
|
|
253
|
+
const trustLabel = TRUST_LEGEND[seg.trust.value] ?? seg.trust.value;
|
|
254
|
+
const base = [
|
|
255
|
+
`${SEP}Segment ${i + 1}: id=${seg.id} trust=${seg.trust.value} (${trustLabel}) level=${seg.sanitizationLevel}`,
|
|
256
|
+
`${SEP} original_length=${seg.originalContent.length} sanitized_length=${seg.sanitizedContent.length}`
|
|
257
|
+
];
|
|
258
|
+
const pi = seg.piDetection;
|
|
259
|
+
const detections = pi?.detections;
|
|
260
|
+
if (detections?.length) {
|
|
261
|
+
const types = summarizeDetectionTypes(detections);
|
|
262
|
+
base.push(`${SEP} detections: ${detections.length} (types: ${types})`);
|
|
263
|
+
}
|
|
264
|
+
else if (pi?.detected) {
|
|
265
|
+
base.push(`${SEP} detections: yes (count/type not available)`);
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
base.push(`${SEP} detections: none`);
|
|
269
|
+
}
|
|
270
|
+
return base;
|
|
271
|
+
});
|
|
272
|
+
const lines = [
|
|
273
|
+
'[ISL] Instruction Sanitization Layer',
|
|
274
|
+
header,
|
|
275
|
+
origin,
|
|
276
|
+
BORDER,
|
|
277
|
+
`Segments: ${meta.totalSegments} (sanitized: ${meta.sanitizedSegments})`,
|
|
278
|
+
...processingTimeLine,
|
|
279
|
+
...segmentLines,
|
|
280
|
+
'',
|
|
281
|
+
formatLineageForAudit(result.lineage)
|
|
282
|
+
];
|
|
283
|
+
return lines.join('\n');
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Formats ISL signal for audit - data self-explanatory; risk score and detection types
|
|
287
|
+
*
|
|
288
|
+
* @param signal - ISL signal (or compatible shape)
|
|
289
|
+
* @returns Formatted string: what this block is, data origin, risk score (0-1), hasThreats, detection types
|
|
290
|
+
*/
|
|
291
|
+
export function formatISLSignalForAudit(signal) {
|
|
292
|
+
const header = 'Risk signal for AAL: summarizes threats and global risk. riskScore (0-1, higher = more risk), hasThreats (true if any detections), detections (count and types).';
|
|
293
|
+
const origin = 'Data from: signal emitted by ISL for AAL (external contract; AAL uses this to decide ALLOW/WARN/BLOCK).';
|
|
294
|
+
const pd = signal.piDetection;
|
|
295
|
+
const detectionTypes = summarizeDetectionTypes(pd.detections);
|
|
296
|
+
const strategyLine = signal.metadata?.strategy ? [`${SEP}Strategy: ${signal.metadata.strategy} (used to compute risk score)`] : [];
|
|
297
|
+
const patternLine = pd.patterns && pd.patterns.length > 0 ? [`${SEP}Patterns matched: ${pd.patterns.join(', ')}`] : [];
|
|
298
|
+
const lines = [
|
|
299
|
+
'[ISL Signal] External contract',
|
|
300
|
+
header,
|
|
301
|
+
origin,
|
|
302
|
+
BORDER,
|
|
303
|
+
`Risk score: ${signal.riskScore.toFixed(3)} (0-1, higher = more risk)`,
|
|
304
|
+
`Has threats: ${signal.hasThreats} (true if any detections present)`,
|
|
305
|
+
`Timestamp: ${new Date(signal.timestamp).toISOString()}`,
|
|
306
|
+
`Detections: ${pd.detections.length} (aggregated score: ${pd.score.toFixed(3)}, detected: ${pd.detected})`,
|
|
307
|
+
`Detection types: ${detectionTypes}`,
|
|
308
|
+
...strategyLine,
|
|
309
|
+
...patternLine
|
|
310
|
+
];
|
|
311
|
+
return lines.join('\n');
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Formats AAL decision reason and optional removal plan for audit
|
|
315
|
+
*
|
|
316
|
+
* @param reason - Decision reason (or compatible shape)
|
|
317
|
+
* @param removalPlan - Optional removal plan (or compatible shape)
|
|
318
|
+
* @returns Formatted string: what this block is, data origin, action (ALLOW/WARN/BLOCK), reason, thresholds, removal plan
|
|
319
|
+
*/
|
|
320
|
+
export function formatAALForAudit(reason, removalPlan) {
|
|
321
|
+
const header = 'Agent Action Lock decision. Action (ALLOW/WARN/BLOCK), reason in plain language, thresholds used (warn/block), removal plan (if removal enabled and threats present).';
|
|
322
|
+
const origin = 'Data from: AAL decision (resolveAgentAction + buildDecisionReason + optional buildRemovalPlan/buildRemovalPlanFromResult).';
|
|
323
|
+
const actionLabel = ACTION_LEGEND[reason.action] ?? reason.action;
|
|
324
|
+
const plan = removalPlan ?? undefined;
|
|
325
|
+
const removalBlock = plan === undefined
|
|
326
|
+
? []
|
|
327
|
+
: [
|
|
328
|
+
'',
|
|
329
|
+
`Removal enabled: ${plan.removalEnabled}`,
|
|
330
|
+
`Should remove: ${plan.shouldRemove} (if true, applyRemovalPlan can be used to get cleaned content)`,
|
|
331
|
+
...(plan.instructionsToRemove.length > 0
|
|
332
|
+
? [
|
|
333
|
+
`Instructions to remove: ${plan.instructionsToRemove.length}`,
|
|
334
|
+
...plan.instructionsToRemove.map((inst, i) => `${SEP}${i + 1}. type=${inst.type ?? 'unknown'} - ${inst.description ?? inst.pattern ?? ''}`)
|
|
335
|
+
]
|
|
336
|
+
: [])
|
|
337
|
+
];
|
|
338
|
+
const lines = [
|
|
339
|
+
'[AAL] Agent Action Lock',
|
|
340
|
+
header,
|
|
341
|
+
origin,
|
|
342
|
+
BORDER,
|
|
343
|
+
`Action: ${reason.action} (${actionLabel})`,
|
|
344
|
+
`Risk score: ${reason.riskScore.toFixed(3)} (threshold: ${reason.threshold.toFixed(3)})`,
|
|
345
|
+
`Reason: ${reason.reason}`,
|
|
346
|
+
`Threats: ${reason.hasThreats} (detection count: ${reason.detectionCount})`,
|
|
347
|
+
...removalBlock
|
|
348
|
+
];
|
|
349
|
+
return lines.join('\n');
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Formats CPE result for audit - data self-explanatory
|
|
353
|
+
*
|
|
354
|
+
* @param result - CPE result (or compatible shape)
|
|
355
|
+
* @returns Formatted string: what this block is, data origin, nonce, timestamp, signature
|
|
356
|
+
*/
|
|
357
|
+
export function formatCPEForAudit(result) {
|
|
358
|
+
const header = 'Cryptographic envelope: nonce (unique per request), timestamp, signature (integrity).';
|
|
359
|
+
const origin = 'Data from: CPE envelope result (wraps sanitized content for integrity verification).';
|
|
360
|
+
const env = result.envelope;
|
|
361
|
+
const protocolVersionLine = typeof env.metadata.protocolVersion === 'string'
|
|
362
|
+
? [`Protocol version: ${env.metadata.protocolVersion}`]
|
|
363
|
+
: [];
|
|
364
|
+
const processingTimeLine = typeof result.processingTimeMs === 'number'
|
|
365
|
+
? [`Processing time: ${result.processingTimeMs}ms`]
|
|
366
|
+
: [];
|
|
367
|
+
const lines = [
|
|
368
|
+
'[CPE] Cryptographic Prompt Envelope',
|
|
369
|
+
header,
|
|
370
|
+
origin,
|
|
371
|
+
BORDER,
|
|
372
|
+
`Nonce: ${env.metadata.nonce}`,
|
|
373
|
+
`Timestamp: ${new Date(env.metadata.timestamp).toISOString()}`,
|
|
374
|
+
...protocolVersionLine,
|
|
375
|
+
`Signature algorithm: ${env.signature.algorithm}`,
|
|
376
|
+
...processingTimeLine,
|
|
377
|
+
'',
|
|
378
|
+
formatLineageForAudit(env.lineage)
|
|
379
|
+
];
|
|
380
|
+
return lines.join('\n');
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Builds a full pipeline audit report (CSL → ISL → CPE) from layer results.
|
|
384
|
+
* Accepts minimal shapes for flexibility.
|
|
385
|
+
* Use formatPipelineAuditFull when you need ISL Signal and AAL included.
|
|
386
|
+
*
|
|
387
|
+
* @param csl - CSL result (or compatible shape)
|
|
388
|
+
* @param isl - ISL result (or compatible shape)
|
|
389
|
+
* @param cpe - CPE result (or compatible shape)
|
|
390
|
+
* @param options - Optional title and separator; use includeSignalAndAAL to add Signal + AAL sections
|
|
391
|
+
* @returns Single formatted string for full audit
|
|
392
|
+
*/
|
|
393
|
+
export function formatPipelineAudit(csl, isl, cpe, options) {
|
|
394
|
+
const sep = options?.sectionSeparator ?? '\n\n';
|
|
395
|
+
const title = options?.title ?? 'AI-PIP Pipeline Audit';
|
|
396
|
+
const parts = [title, BORDER, formatCSLForAudit(csl), sep, formatISLForAudit(isl)];
|
|
397
|
+
if (options?.includeSignalAndAAL && options.signal != null && options.aalReason != null) {
|
|
398
|
+
parts.push(sep, formatISLSignalForAudit(options.signal), sep, formatAALForAudit(options.aalReason, options.removalPlan ?? undefined));
|
|
399
|
+
}
|
|
400
|
+
parts.push(sep, formatCPEForAudit(cpe));
|
|
401
|
+
return parts.join('\n');
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Full pipeline audit report (CSL → ISL → ISL Signal → AAL → optional CPE) with run id and timestamp.
|
|
405
|
+
* Unites all layers for a single audit view. Lineage is included in each section.
|
|
406
|
+
*
|
|
407
|
+
* @param csl - CSL result
|
|
408
|
+
* @param isl - ISL result
|
|
409
|
+
* @param signal - ISL signal (for AAL)
|
|
410
|
+
* @param aalReason - AAL decision reason
|
|
411
|
+
* @param removalPlan - Optional removal plan
|
|
412
|
+
* @param cpe - Optional CPE result (included when includeCpe is true)
|
|
413
|
+
* @param options - runId, generatedAt, includeCpe, title, sectionSeparator
|
|
414
|
+
* @returns Formatted string with header (runId, generatedAt) and all sections
|
|
415
|
+
*/
|
|
416
|
+
export function formatPipelineAuditFull(csl, isl, signal, aalReason, removalPlan, cpe, options) {
|
|
417
|
+
const run = ensureRunInfo(options);
|
|
418
|
+
const sep = options?.sectionSeparator ?? '\n\n';
|
|
419
|
+
const title = options?.title ?? 'AI-PIP Pipeline Audit (full)';
|
|
420
|
+
const includeCpe = options?.includeCpe === true && cpe != null;
|
|
421
|
+
const header = [
|
|
422
|
+
title,
|
|
423
|
+
BORDER,
|
|
424
|
+
`Run ID: ${run.runId}`,
|
|
425
|
+
`Generated at: ${run.generatedAtIso}`,
|
|
426
|
+
BORDER
|
|
427
|
+
].join('\n');
|
|
428
|
+
const parts = [
|
|
429
|
+
header,
|
|
430
|
+
sep,
|
|
431
|
+
formatCSLForAudit(csl),
|
|
432
|
+
sep,
|
|
433
|
+
formatISLForAudit(isl),
|
|
434
|
+
sep,
|
|
435
|
+
formatISLSignalForAudit(signal),
|
|
436
|
+
sep,
|
|
437
|
+
formatAALForAudit(aalReason, removalPlan ?? undefined)
|
|
438
|
+
];
|
|
439
|
+
if (includeCpe && cpe) {
|
|
440
|
+
parts.push(sep, formatCPEForAudit(cpe));
|
|
441
|
+
}
|
|
442
|
+
return parts.join('\n');
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Full pipeline audit as JSON string (for logs, SIEM, machine consumption).
|
|
446
|
+
* Preserves lineage in each section. Use buildFullAuditPayload for the raw object.
|
|
447
|
+
*
|
|
448
|
+
* @param options.compact - If true, single-line JSON; otherwise pretty-printed
|
|
449
|
+
* @returns JSON string of the full audit payload
|
|
450
|
+
*/
|
|
451
|
+
export function formatPipelineAuditAsJson(csl, isl, signal, reason, options) {
|
|
452
|
+
const payload = buildFullAuditPayload(csl, isl, signal, reason, options);
|
|
453
|
+
return options?.compact === true ? JSON.stringify(payload) : JSON.stringify(payload, null, 2);
|
|
454
|
+
}
|
|
455
|
+
//# sourceMappingURL=audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/shared/audit.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shared utilities for all layers -
|
|
2
|
+
* Shared utilities for all layers - pure functions shared across the core
|
|
3
3
|
*
|
|
4
4
|
* @remarks
|
|
5
|
-
*
|
|
6
|
-
* Auditoría y análisis avanzado van al SDK.
|
|
5
|
+
* Lineage handling and AI-PIP audit formatting for clear, flexible auditing.
|
|
7
6
|
*/
|
|
8
7
|
export { addLineageEntry, addLineageEntries, filterLineageByStep, getLastLineageEntry } from './lineage.js';
|
|
8
|
+
export { formatLineageForAudit, formatCSLForAudit, formatISLForAudit, formatISLSignalForAudit, formatAALForAudit, formatCPEForAudit, formatPipelineAudit, formatPipelineAuditFull, formatPipelineAuditAsJson, createAuditRunId, buildAuditLogEntry, buildFullAuditPayload } from './audit.js';
|
|
9
|
+
export type { LineageEntryLike, CSLResultLike, ISLResultLike, ISLSignalLike, DecisionReasonLike, RemovalPlanLike, CPEResultLike, AuditRunInfo, AuditLogSummary, FullPipelineAuditOptions, PipelineAuditJsonOptions } from './audit.js';
|
|
10
|
+
export type { Position, SegmentRef } from './types.js';
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,QAAQ,EACR,UAAU,EACX,MAAM,YAAY,CAAA"}
|
package/dist/shared/index.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shared utilities for all layers -
|
|
2
|
+
* Shared utilities for all layers - pure functions shared across the core
|
|
3
3
|
*
|
|
4
4
|
* @remarks
|
|
5
|
-
*
|
|
6
|
-
* Auditoría y análisis avanzado van al SDK.
|
|
5
|
+
* Lineage handling and AI-PIP audit formatting for clear, flexible auditing.
|
|
7
6
|
*/
|
|
8
|
-
// Lineage
|
|
7
|
+
// Lineage
|
|
9
8
|
export { addLineageEntry, addLineageEntries, filterLineageByStep, getLastLineageEntry } from './lineage.js';
|
|
10
|
-
//
|
|
11
|
-
|
|
9
|
+
// Audit / pretty-print for AI-PIP layers (ordered, human-readable)
|
|
10
|
+
export { formatLineageForAudit, formatCSLForAudit, formatISLForAudit, formatISLSignalForAudit, formatAALForAudit, formatCPEForAudit, formatPipelineAudit, formatPipelineAuditFull, formatPipelineAuditAsJson, createAuditRunId, buildAuditLogEntry, buildFullAuditPayload } from './audit.js';
|
|
12
11
|
//# sourceMappingURL=index.js.map
|
package/dist/shared/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,UAAU;AACV,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,cAAc,CAAA;AAErB,mEAAmE;AACnE,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a zero-based position range within a string or segment.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* - `start` is inclusive
|
|
6
|
+
* - `end` is exclusive
|
|
7
|
+
* - Must satisfy: 0 <= start <= end
|
|
8
|
+
*
|
|
9
|
+
* This type is purely structural and shared across layers
|
|
10
|
+
* (CSL, ISL, AAL, reporters).
|
|
11
|
+
*/
|
|
12
|
+
export type Position = {
|
|
13
|
+
/** Inclusive start index */
|
|
14
|
+
readonly start: number;
|
|
15
|
+
/** Exclusive end index */
|
|
16
|
+
readonly end: number;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* References a specific segment and an optional position within it.
|
|
20
|
+
*
|
|
21
|
+
* @remarks
|
|
22
|
+
* Used to precisely point to a sub-range of a segment without
|
|
23
|
+
* mutating or interpreting its content.
|
|
24
|
+
*
|
|
25
|
+
* Common use cases:
|
|
26
|
+
* - ISL: attach threat signals to exact locations
|
|
27
|
+
* - AAL: target removals or locks precisely
|
|
28
|
+
* - Reporting: highlight affected content
|
|
29
|
+
*/
|
|
30
|
+
export type SegmentRef = {
|
|
31
|
+
/** Unique identifier of the segment */
|
|
32
|
+
readonly segmentId: string;
|
|
33
|
+
/** Optional position within the segment */
|
|
34
|
+
readonly position?: Position;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,GAAG;IACnB,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAEtB,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAE1B,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAC7B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-pip/core",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Core implementation of the AI-PIP protocol. Provides layered, zero-trust context processing (CSL, ISL,
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Core implementation of the AI-PIP protocol. Provides layered, zero-trust context processing (CSL, ISL, AAL, CPE)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -21,6 +21,11 @@
|
|
|
21
21
|
"import": "./dist/isl/index.js",
|
|
22
22
|
"default": "./dist/isl/index.js"
|
|
23
23
|
},
|
|
24
|
+
"./aal": {
|
|
25
|
+
"types": "./dist/AAL/index.d.ts",
|
|
26
|
+
"import": "./dist/AAL/index.js",
|
|
27
|
+
"default": "./dist/AAL/index.js"
|
|
28
|
+
},
|
|
24
29
|
"./cpe": {
|
|
25
30
|
"types": "./dist/cpe/index.d.ts",
|
|
26
31
|
"import": "./dist/cpe/index.js",
|
|
@@ -81,6 +86,10 @@
|
|
|
81
86
|
"test:watch": "vitest --watch",
|
|
82
87
|
"test:ui": "vitest --ui",
|
|
83
88
|
"test:coverage": "vitest --coverage",
|
|
84
|
-
"test:install": "node test-package-install.js"
|
|
89
|
+
"test:install": "node test-package-install.js",
|
|
90
|
+
"verify-risk": "node scripts/verify-risk-score.mjs",
|
|
91
|
+
"demo-menu": "node scripts/interactive-risk-menu.mjs",
|
|
92
|
+
"demo-full": "node scripts/demo-full-flow.mjs",
|
|
93
|
+
"audit-report": "node scripts/audit-report.mjs"
|
|
85
94
|
}
|
|
86
95
|
}
|
|
@@ -1 +0,0 @@
|
|
|
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,aAAa,CAAA;AAE3D;;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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|