@ai-pip/core 0.2.0 → 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 +66 -2
- package/README.md +107 -18
- 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 +2 -1
- package/dist/AAL/index.d.ts.map +1 -1
- package/dist/AAL/index.js +3 -1
- package/dist/AAL/index.js.map +1 -1
- 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.map +1 -1
- package/dist/AAL/process/buildDecisionReason.js +26 -4
- package/dist/AAL/process/buildDecisionReason.js.map +1 -1
- package/dist/AAL/process/buildRemovalPlan.d.ts +17 -10
- package/dist/AAL/process/buildRemovalPlan.d.ts.map +1 -1
- package/dist/AAL/process/buildRemovalPlan.js +84 -30
- package/dist/AAL/process/buildRemovalPlan.js.map +1 -1
- package/dist/AAL/process/index.d.ts +2 -1
- package/dist/AAL/process/index.d.ts.map +1 -1
- package/dist/AAL/process/index.js +2 -1
- package/dist/AAL/process/index.js.map +1 -1
- package/dist/AAL/process/resolveAgentAction.d.ts.map +1 -1
- package/dist/AAL/process/resolveAgentAction.js +24 -0
- package/dist/AAL/process/resolveAgentAction.js.map +1 -1
- package/dist/AAL/types.d.ts +11 -7
- package/dist/AAL/types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/isl/detect/detect.d.ts +39 -0
- package/dist/isl/detect/detect.d.ts.map +1 -0
- package/dist/isl/detect/detect.js +369 -0
- package/dist/isl/detect/detect.js.map +1 -0
- package/dist/isl/detect/index.d.ts +6 -0
- package/dist/isl/detect/index.d.ts.map +1 -0
- package/dist/isl/detect/index.js +5 -0
- package/dist/isl/detect/index.js.map +1 -0
- package/dist/isl/index.d.ts +8 -1
- package/dist/isl/index.d.ts.map +1 -1
- package/dist/isl/index.js +5 -0
- package/dist/isl/index.js.map +1 -1
- package/dist/isl/process/emitSignal.d.ts +19 -10
- package/dist/isl/process/emitSignal.d.ts.map +1 -1
- package/dist/isl/process/emitSignal.js +25 -23
- package/dist/isl/process/emitSignal.js.map +1 -1
- package/dist/isl/process/index.d.ts +1 -0
- package/dist/isl/process/index.d.ts.map +1 -1
- package/dist/isl/riskScore/calculators.d.ts +19 -0
- package/dist/isl/riskScore/calculators.d.ts.map +1 -0
- package/dist/isl/riskScore/calculators.js +50 -0
- package/dist/isl/riskScore/calculators.js.map +1 -0
- package/dist/isl/riskScore/index.d.ts +14 -0
- package/dist/isl/riskScore/index.d.ts.map +1 -0
- package/dist/isl/riskScore/index.js +26 -0
- package/dist/isl/riskScore/index.js.map +1 -0
- package/dist/isl/riskScore/types.d.ts +20 -0
- package/dist/isl/riskScore/types.d.ts.map +1 -0
- package/dist/isl/riskScore/types.js +12 -0
- package/dist/isl/riskScore/types.js.map +1 -0
- package/dist/isl/sanitize.d.ts +8 -1
- package/dist/isl/sanitize.d.ts.map +1 -1
- package/dist/isl/sanitize.js +13 -5
- package/dist/isl/sanitize.js.map +1 -1
- package/dist/isl/signals.d.ts +16 -1
- package/dist/isl/signals.d.ts.map +1 -1
- package/dist/isl/signals.js +4 -2
- package/dist/isl/signals.js.map +1 -1
- package/dist/isl/value-objects/Pattern.d.ts +21 -0
- package/dist/isl/value-objects/Pattern.d.ts.map +1 -1
- package/dist/isl/value-objects/Pattern.js +36 -0
- package/dist/isl/value-objects/Pattern.js.map +1 -1
- package/dist/isl/value-objects/index.d.ts +2 -2
- package/dist/isl/value-objects/index.d.ts.map +1 -1
- package/dist/isl/value-objects/index.js +1 -1
- package/dist/isl/value-objects/index.js.map +1 -1
- package/dist/shared/audit.d.ts +116 -16
- package/dist/shared/audit.d.ts.map +1 -1
- package/dist/shared/audit.js +314 -32
- package/dist/shared/audit.js.map +1 -1
- package/dist/shared/index.d.ts +2 -2
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/index.js.map +1 -1
- package/package.json +6 -2
package/dist/shared/audit.js
CHANGED
|
@@ -2,37 +2,233 @@
|
|
|
2
2
|
* AI-PIP Audit utilities - Pure functions for ordered, human-readable audit output
|
|
3
3
|
*
|
|
4
4
|
* @remarks
|
|
5
|
-
* These functions format layer results and signals
|
|
6
|
-
*
|
|
7
|
-
*
|
|
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
|
|
8
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
|
+
};
|
|
9
29
|
const SEP = ' ';
|
|
10
30
|
const BORDER = '---';
|
|
11
31
|
/**
|
|
12
|
-
*
|
|
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
|
|
13
201
|
*
|
|
14
202
|
* @param lineage - Array of lineage entries (any layer)
|
|
15
|
-
* @returns Formatted string
|
|
203
|
+
* @returns Formatted string with short legend and chronological steps
|
|
16
204
|
*/
|
|
17
205
|
export function formatLineageForAudit(lineage) {
|
|
18
206
|
if (lineage.length === 0)
|
|
19
|
-
return 'Lineage: (none)';
|
|
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.';
|
|
20
209
|
const lines = lineage.map((e, i) => `${SEP}${i + 1}. [${e.step}] ${new Date(e.timestamp).toISOString()}`);
|
|
21
|
-
return ['Lineage:', ...lines].join('\n');
|
|
210
|
+
return ['Lineage:', legend, BORDER, ...lines].join('\n');
|
|
22
211
|
}
|
|
23
212
|
/**
|
|
24
|
-
* Formats CSL result for audit -
|
|
213
|
+
* Formats CSL result for audit - data self-explanatory for external auditor
|
|
25
214
|
*
|
|
26
215
|
* @param result - CSL result (or compatible shape)
|
|
27
|
-
* @returns Formatted string
|
|
216
|
+
* @returns Formatted string: what this block is, data origin, trust legend, per-segment data
|
|
28
217
|
*/
|
|
29
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).';
|
|
30
221
|
const processingTimeLine = typeof result.processingTimeMs === 'number'
|
|
31
222
|
? [`Processing time: ${result.processingTimeMs}ms`]
|
|
32
223
|
: [];
|
|
33
|
-
const segmentLines = result.segments.map((seg, i) =>
|
|
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
|
+
});
|
|
34
228
|
const lines = [
|
|
35
229
|
'[CSL] Context Segmentation Layer',
|
|
230
|
+
header,
|
|
231
|
+
origin,
|
|
36
232
|
BORDER,
|
|
37
233
|
`Segments: ${result.segments.length}`,
|
|
38
234
|
...processingTimeLine,
|
|
@@ -43,20 +239,40 @@ export function formatCSLForAudit(result) {
|
|
|
43
239
|
return lines.join('\n');
|
|
44
240
|
}
|
|
45
241
|
/**
|
|
46
|
-
* Formats ISL result for audit -
|
|
242
|
+
* Formats ISL result for audit - data self-explanatory; per-segment detections when present
|
|
47
243
|
*
|
|
48
244
|
* @param result - ISL result (or compatible shape)
|
|
49
|
-
* @returns Formatted string
|
|
245
|
+
* @returns Formatted string: what this block is, data origin, per-segment trust/level/length/detections
|
|
50
246
|
*/
|
|
51
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).';
|
|
52
250
|
const meta = result.metadata;
|
|
53
251
|
const processingTimeLine = typeof meta.processingTimeMs === 'number' ? [`Processing time: ${meta.processingTimeMs}ms`] : [];
|
|
54
|
-
const segmentLines = result.segments.flatMap((seg, i) =>
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
+
});
|
|
58
272
|
const lines = [
|
|
59
273
|
'[ISL] Instruction Sanitization Layer',
|
|
274
|
+
header,
|
|
275
|
+
origin,
|
|
60
276
|
BORDER,
|
|
61
277
|
`Segments: ${meta.totalSegments} (sanitized: ${meta.sanitizedSegments})`,
|
|
62
278
|
...processingTimeLine,
|
|
@@ -67,21 +283,29 @@ export function formatISLForAudit(result) {
|
|
|
67
283
|
return lines.join('\n');
|
|
68
284
|
}
|
|
69
285
|
/**
|
|
70
|
-
* Formats ISL signal for audit -
|
|
286
|
+
* Formats ISL signal for audit - data self-explanatory; risk score and detection types
|
|
71
287
|
*
|
|
72
288
|
* @param signal - ISL signal (or compatible shape)
|
|
73
|
-
* @returns Formatted string
|
|
289
|
+
* @returns Formatted string: what this block is, data origin, risk score (0-1), hasThreats, detection types
|
|
74
290
|
*/
|
|
75
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).';
|
|
76
294
|
const pd = signal.piDetection;
|
|
77
|
-
const
|
|
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(', ')}`] : [];
|
|
78
298
|
const lines = [
|
|
79
299
|
'[ISL Signal] External contract',
|
|
300
|
+
header,
|
|
301
|
+
origin,
|
|
80
302
|
BORDER,
|
|
81
|
-
`Risk score: ${signal.riskScore.toFixed(3)}`,
|
|
82
|
-
`Has threats: ${signal.hasThreats}`,
|
|
303
|
+
`Risk score: ${signal.riskScore.toFixed(3)} (0-1, higher = more risk)`,
|
|
304
|
+
`Has threats: ${signal.hasThreats} (true if any detections present)`,
|
|
83
305
|
`Timestamp: ${new Date(signal.timestamp).toISOString()}`,
|
|
84
|
-
`Detections: ${pd.detections.length} (score: ${pd.score.toFixed(3)}, detected: ${pd.detected})`,
|
|
306
|
+
`Detections: ${pd.detections.length} (aggregated score: ${pd.score.toFixed(3)}, detected: ${pd.detected})`,
|
|
307
|
+
`Detection types: ${detectionTypes}`,
|
|
308
|
+
...strategyLine,
|
|
85
309
|
...patternLine
|
|
86
310
|
];
|
|
87
311
|
return lines.join('\n');
|
|
@@ -91,41 +315,48 @@ export function formatISLSignalForAudit(signal) {
|
|
|
91
315
|
*
|
|
92
316
|
* @param reason - Decision reason (or compatible shape)
|
|
93
317
|
* @param removalPlan - Optional removal plan (or compatible shape)
|
|
94
|
-
* @returns Formatted string
|
|
318
|
+
* @returns Formatted string: what this block is, data origin, action (ALLOW/WARN/BLOCK), reason, thresholds, removal plan
|
|
95
319
|
*/
|
|
96
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;
|
|
97
324
|
const plan = removalPlan ?? undefined;
|
|
98
325
|
const removalBlock = plan === undefined
|
|
99
326
|
? []
|
|
100
327
|
: [
|
|
101
328
|
'',
|
|
102
329
|
`Removal enabled: ${plan.removalEnabled}`,
|
|
103
|
-
`Should remove: ${plan.shouldRemove}`,
|
|
330
|
+
`Should remove: ${plan.shouldRemove} (if true, applyRemovalPlan can be used to get cleaned content)`,
|
|
104
331
|
...(plan.instructionsToRemove.length > 0
|
|
105
332
|
? [
|
|
106
333
|
`Instructions to remove: ${plan.instructionsToRemove.length}`,
|
|
107
|
-
...plan.instructionsToRemove.map((inst, i) => `${SEP}${i + 1}.
|
|
334
|
+
...plan.instructionsToRemove.map((inst, i) => `${SEP}${i + 1}. type=${inst.type ?? 'unknown'} - ${inst.description ?? inst.pattern ?? ''}`)
|
|
108
335
|
]
|
|
109
336
|
: [])
|
|
110
337
|
];
|
|
111
338
|
const lines = [
|
|
112
339
|
'[AAL] Agent Action Lock',
|
|
340
|
+
header,
|
|
341
|
+
origin,
|
|
113
342
|
BORDER,
|
|
114
|
-
`Action: ${reason.action}`,
|
|
343
|
+
`Action: ${reason.action} (${actionLabel})`,
|
|
115
344
|
`Risk score: ${reason.riskScore.toFixed(3)} (threshold: ${reason.threshold.toFixed(3)})`,
|
|
116
345
|
`Reason: ${reason.reason}`,
|
|
117
|
-
`Threats: ${reason.hasThreats} (count: ${reason.detectionCount})`,
|
|
346
|
+
`Threats: ${reason.hasThreats} (detection count: ${reason.detectionCount})`,
|
|
118
347
|
...removalBlock
|
|
119
348
|
];
|
|
120
349
|
return lines.join('\n');
|
|
121
350
|
}
|
|
122
351
|
/**
|
|
123
|
-
* Formats CPE result for audit -
|
|
352
|
+
* Formats CPE result for audit - data self-explanatory
|
|
124
353
|
*
|
|
125
354
|
* @param result - CPE result (or compatible shape)
|
|
126
|
-
* @returns Formatted string
|
|
355
|
+
* @returns Formatted string: what this block is, data origin, nonce, timestamp, signature
|
|
127
356
|
*/
|
|
128
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).';
|
|
129
360
|
const env = result.envelope;
|
|
130
361
|
const protocolVersionLine = typeof env.metadata.protocolVersion === 'string'
|
|
131
362
|
? [`Protocol version: ${env.metadata.protocolVersion}`]
|
|
@@ -135,6 +366,8 @@ export function formatCPEForAudit(result) {
|
|
|
135
366
|
: [];
|
|
136
367
|
const lines = [
|
|
137
368
|
'[CPE] Cryptographic Prompt Envelope',
|
|
369
|
+
header,
|
|
370
|
+
origin,
|
|
138
371
|
BORDER,
|
|
139
372
|
`Nonce: ${env.metadata.nonce}`,
|
|
140
373
|
`Timestamp: ${new Date(env.metadata.timestamp).toISOString()}`,
|
|
@@ -149,25 +382,74 @@ export function formatCPEForAudit(result) {
|
|
|
149
382
|
/**
|
|
150
383
|
* Builds a full pipeline audit report (CSL → ISL → CPE) from layer results.
|
|
151
384
|
* Accepts minimal shapes for flexibility.
|
|
385
|
+
* Use formatPipelineAuditFull when you need ISL Signal and AAL included.
|
|
152
386
|
*
|
|
153
387
|
* @param csl - CSL result (or compatible shape)
|
|
154
388
|
* @param isl - ISL result (or compatible shape)
|
|
155
389
|
* @param cpe - CPE result (or compatible shape)
|
|
156
|
-
* @param options - Optional title and separator
|
|
390
|
+
* @param options - Optional title and separator; use includeSignalAndAAL to add Signal + AAL sections
|
|
157
391
|
* @returns Single formatted string for full audit
|
|
158
392
|
*/
|
|
159
393
|
export function formatPipelineAudit(csl, isl, cpe, options) {
|
|
160
394
|
const sep = options?.sectionSeparator ?? '\n\n';
|
|
161
395
|
const title = options?.title ?? 'AI-PIP Pipeline Audit';
|
|
162
|
-
const parts = [
|
|
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 = [
|
|
163
422
|
title,
|
|
164
423
|
BORDER,
|
|
424
|
+
`Run ID: ${run.runId}`,
|
|
425
|
+
`Generated at: ${run.generatedAtIso}`,
|
|
426
|
+
BORDER
|
|
427
|
+
].join('\n');
|
|
428
|
+
const parts = [
|
|
429
|
+
header,
|
|
430
|
+
sep,
|
|
165
431
|
formatCSLForAudit(csl),
|
|
166
432
|
sep,
|
|
167
433
|
formatISLForAudit(isl),
|
|
168
434
|
sep,
|
|
169
|
-
|
|
435
|
+
formatISLSignalForAudit(signal),
|
|
436
|
+
sep,
|
|
437
|
+
formatAALForAudit(aalReason, removalPlan ?? undefined)
|
|
170
438
|
];
|
|
439
|
+
if (includeCpe && cpe) {
|
|
440
|
+
parts.push(sep, formatCPEForAudit(cpe));
|
|
441
|
+
}
|
|
171
442
|
return parts.join('\n');
|
|
172
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
|
+
}
|
|
173
455
|
//# sourceMappingURL=audit.js.map
|
package/dist/shared/audit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/shared/audit.ts"],"names":[],"mappings":"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"}
|
|
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
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Lineage handling and AI-PIP audit formatting for clear, flexible auditing.
|
|
6
6
|
*/
|
|
7
7
|
export { addLineageEntry, addLineageEntries, filterLineageByStep, getLastLineageEntry } from './lineage.js';
|
|
8
|
-
export { formatLineageForAudit, formatCSLForAudit, formatISLForAudit, formatISLSignalForAudit, formatAALForAudit, formatCPEForAudit, formatPipelineAudit } from './audit.js';
|
|
9
|
-
export type { LineageEntryLike, CSLResultLike, ISLResultLike, ISLSignalLike, DecisionReasonLike, RemovalPlanLike, CPEResultLike } from './audit.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
10
|
export type { Position, SegmentRef } from './types.js';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
// Lineage
|
|
8
8
|
export { addLineageEntry, addLineageEntries, filterLineageByStep, getLastLineageEntry } from './lineage.js';
|
|
9
9
|
// Audit / pretty-print for AI-PIP layers (ordered, human-readable)
|
|
10
|
-
export { formatLineageForAudit, formatCSLForAudit, formatISLForAudit, formatISLSignalForAudit, formatAALForAudit, formatCPEForAudit, formatPipelineAudit } from './audit.js';
|
|
10
|
+
export { formatLineageForAudit, formatCSLForAudit, formatISLForAudit, formatISLSignalForAudit, formatAALForAudit, formatCPEForAudit, formatPipelineAudit, formatPipelineAuditFull, formatPipelineAuditAsJson, createAuditRunId, buildAuditLogEntry, buildFullAuditPayload } from './audit.js';
|
|
11
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;;;;;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,
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-pip/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
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",
|
|
@@ -86,6 +86,10 @@
|
|
|
86
86
|
"test:watch": "vitest --watch",
|
|
87
87
|
"test:ui": "vitest --ui",
|
|
88
88
|
"test:coverage": "vitest --coverage",
|
|
89
|
-
"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"
|
|
90
94
|
}
|
|
91
95
|
}
|