@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.
Files changed (89) hide show
  1. package/CHANGELOG.md +66 -2
  2. package/README.md +107 -18
  3. package/dist/AAL/constants.d.ts +15 -0
  4. package/dist/AAL/constants.d.ts.map +1 -0
  5. package/dist/AAL/constants.js +20 -0
  6. package/dist/AAL/constants.js.map +1 -0
  7. package/dist/AAL/index.d.ts +2 -1
  8. package/dist/AAL/index.d.ts.map +1 -1
  9. package/dist/AAL/index.js +3 -1
  10. package/dist/AAL/index.js.map +1 -1
  11. package/dist/AAL/process/applyRemovalPlan.d.ts +21 -0
  12. package/dist/AAL/process/applyRemovalPlan.d.ts.map +1 -0
  13. package/dist/AAL/process/applyRemovalPlan.js +150 -0
  14. package/dist/AAL/process/applyRemovalPlan.js.map +1 -0
  15. package/dist/AAL/process/buildDecisionReason.d.ts.map +1 -1
  16. package/dist/AAL/process/buildDecisionReason.js +26 -4
  17. package/dist/AAL/process/buildDecisionReason.js.map +1 -1
  18. package/dist/AAL/process/buildRemovalPlan.d.ts +17 -10
  19. package/dist/AAL/process/buildRemovalPlan.d.ts.map +1 -1
  20. package/dist/AAL/process/buildRemovalPlan.js +84 -30
  21. package/dist/AAL/process/buildRemovalPlan.js.map +1 -1
  22. package/dist/AAL/process/index.d.ts +2 -1
  23. package/dist/AAL/process/index.d.ts.map +1 -1
  24. package/dist/AAL/process/index.js +2 -1
  25. package/dist/AAL/process/index.js.map +1 -1
  26. package/dist/AAL/process/resolveAgentAction.d.ts.map +1 -1
  27. package/dist/AAL/process/resolveAgentAction.js +24 -0
  28. package/dist/AAL/process/resolveAgentAction.js.map +1 -1
  29. package/dist/AAL/types.d.ts +11 -7
  30. package/dist/AAL/types.d.ts.map +1 -1
  31. package/dist/index.d.ts +5 -5
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +3 -3
  34. package/dist/index.js.map +1 -1
  35. package/dist/isl/detect/detect.d.ts +39 -0
  36. package/dist/isl/detect/detect.d.ts.map +1 -0
  37. package/dist/isl/detect/detect.js +369 -0
  38. package/dist/isl/detect/detect.js.map +1 -0
  39. package/dist/isl/detect/index.d.ts +6 -0
  40. package/dist/isl/detect/index.d.ts.map +1 -0
  41. package/dist/isl/detect/index.js +5 -0
  42. package/dist/isl/detect/index.js.map +1 -0
  43. package/dist/isl/index.d.ts +8 -1
  44. package/dist/isl/index.d.ts.map +1 -1
  45. package/dist/isl/index.js +5 -0
  46. package/dist/isl/index.js.map +1 -1
  47. package/dist/isl/process/emitSignal.d.ts +19 -10
  48. package/dist/isl/process/emitSignal.d.ts.map +1 -1
  49. package/dist/isl/process/emitSignal.js +25 -23
  50. package/dist/isl/process/emitSignal.js.map +1 -1
  51. package/dist/isl/process/index.d.ts +1 -0
  52. package/dist/isl/process/index.d.ts.map +1 -1
  53. package/dist/isl/riskScore/calculators.d.ts +19 -0
  54. package/dist/isl/riskScore/calculators.d.ts.map +1 -0
  55. package/dist/isl/riskScore/calculators.js +50 -0
  56. package/dist/isl/riskScore/calculators.js.map +1 -0
  57. package/dist/isl/riskScore/index.d.ts +14 -0
  58. package/dist/isl/riskScore/index.d.ts.map +1 -0
  59. package/dist/isl/riskScore/index.js +26 -0
  60. package/dist/isl/riskScore/index.js.map +1 -0
  61. package/dist/isl/riskScore/types.d.ts +20 -0
  62. package/dist/isl/riskScore/types.d.ts.map +1 -0
  63. package/dist/isl/riskScore/types.js +12 -0
  64. package/dist/isl/riskScore/types.js.map +1 -0
  65. package/dist/isl/sanitize.d.ts +8 -1
  66. package/dist/isl/sanitize.d.ts.map +1 -1
  67. package/dist/isl/sanitize.js +13 -5
  68. package/dist/isl/sanitize.js.map +1 -1
  69. package/dist/isl/signals.d.ts +16 -1
  70. package/dist/isl/signals.d.ts.map +1 -1
  71. package/dist/isl/signals.js +4 -2
  72. package/dist/isl/signals.js.map +1 -1
  73. package/dist/isl/value-objects/Pattern.d.ts +21 -0
  74. package/dist/isl/value-objects/Pattern.d.ts.map +1 -1
  75. package/dist/isl/value-objects/Pattern.js +36 -0
  76. package/dist/isl/value-objects/Pattern.js.map +1 -1
  77. package/dist/isl/value-objects/index.d.ts +2 -2
  78. package/dist/isl/value-objects/index.d.ts.map +1 -1
  79. package/dist/isl/value-objects/index.js +1 -1
  80. package/dist/isl/value-objects/index.js.map +1 -1
  81. package/dist/shared/audit.d.ts +116 -16
  82. package/dist/shared/audit.d.ts.map +1 -1
  83. package/dist/shared/audit.js +314 -32
  84. package/dist/shared/audit.js.map +1 -1
  85. package/dist/shared/index.d.ts +2 -2
  86. package/dist/shared/index.d.ts.map +1 -1
  87. package/dist/shared/index.js +1 -1
  88. package/dist/shared/index.js.map +1 -1
  89. package/package.json +6 -2
@@ -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 into consistent, pretty-printed
6
- * strings or structured data for auditing, logging, and compliance. They are
7
- * layer-agnostic (accept minimal shapes) and do not depend on layer internals.
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
- * Formats lineage entries for pretty audit output
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 - ordered and human-readable
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 for auditing
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) => `${SEP}Segment ${i + 1}: id=${seg.id} trust=${seg.trust.value} content_length=${seg.content.length}`);
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 - ordered and human-readable
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 for auditing
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
- `${SEP}Segment ${i + 1}: id=${seg.id} trust=${seg.trust.value} level=${seg.sanitizationLevel}`,
56
- `${SEP} original_length=${seg.originalContent.length} sanitized_length=${seg.sanitizedContent.length}`
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 - ordered and human-readable
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 for auditing
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 patternLine = pd.patterns && pd.patterns.length > 0 ? [`${SEP}Patterns: ${pd.patterns.join(', ')}`] : [];
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 for auditing
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}. ${inst.type ?? 'unknown'} - ${inst.description ?? inst.pattern ?? ''}`)
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 - ordered and human-readable
352
+ * Formats CPE result for audit - data self-explanatory
124
353
  *
125
354
  * @param result - CPE result (or compatible shape)
126
- * @returns Formatted string for auditing
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
- formatCPEForAudit(cpe)
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
@@ -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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"}
@@ -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,EACpB,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,aAAa,EACd,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,QAAQ,EACR,UAAU,EACX,MAAM,YAAY,CAAA"}
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"}
@@ -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
@@ -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,EACpB,MAAM,YAAY,CAAA"}
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.2.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
  }