hackmyagent 0.16.5 → 0.16.7

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 (64) hide show
  1. package/dist/.integrity-manifest.json +1 -1
  2. package/dist/arp/crypto/hybrid-signing.d.ts +107 -0
  3. package/dist/arp/crypto/hybrid-signing.d.ts.map +1 -0
  4. package/dist/arp/crypto/hybrid-signing.js +321 -0
  5. package/dist/arp/crypto/hybrid-signing.js.map +1 -0
  6. package/dist/arp/crypto/index.d.ts +13 -0
  7. package/dist/arp/crypto/index.d.ts.map +1 -0
  8. package/dist/arp/crypto/index.js +33 -0
  9. package/dist/arp/crypto/index.js.map +1 -0
  10. package/dist/arp/crypto/manifest-loader.d.ts +117 -0
  11. package/dist/arp/crypto/manifest-loader.d.ts.map +1 -0
  12. package/dist/arp/crypto/manifest-loader.js +361 -0
  13. package/dist/arp/crypto/manifest-loader.js.map +1 -0
  14. package/dist/arp/crypto/types.d.ts +69 -0
  15. package/dist/arp/crypto/types.d.ts.map +1 -0
  16. package/dist/arp/crypto/types.js +11 -0
  17. package/dist/arp/crypto/types.js.map +1 -0
  18. package/dist/arp/index.d.ts +27 -0
  19. package/dist/arp/index.d.ts.map +1 -1
  20. package/dist/arp/index.js +94 -1
  21. package/dist/arp/index.js.map +1 -1
  22. package/dist/arp/intelligence/behavioral-risk-server.d.ts +82 -0
  23. package/dist/arp/intelligence/behavioral-risk-server.d.ts.map +1 -0
  24. package/dist/arp/intelligence/behavioral-risk-server.js +258 -0
  25. package/dist/arp/intelligence/behavioral-risk-server.js.map +1 -0
  26. package/dist/arp/intelligence/behavioral-risk.d.ts +217 -0
  27. package/dist/arp/intelligence/behavioral-risk.d.ts.map +1 -0
  28. package/dist/arp/intelligence/behavioral-risk.js +429 -0
  29. package/dist/arp/intelligence/behavioral-risk.js.map +1 -0
  30. package/dist/arp/intelligence/coordinator.d.ts +93 -2
  31. package/dist/arp/intelligence/coordinator.d.ts.map +1 -1
  32. package/dist/arp/intelligence/coordinator.js +281 -1
  33. package/dist/arp/intelligence/coordinator.js.map +1 -1
  34. package/dist/arp/intelligence/guard-anomaly.d.ts +349 -0
  35. package/dist/arp/intelligence/guard-anomaly.d.ts.map +1 -0
  36. package/dist/arp/intelligence/guard-anomaly.js +399 -0
  37. package/dist/arp/intelligence/guard-anomaly.js.map +1 -0
  38. package/dist/arp/intelligence/nanomind-l1.d.ts +37 -0
  39. package/dist/arp/intelligence/nanomind-l1.d.ts.map +1 -1
  40. package/dist/arp/intelligence/nanomind-l1.js +78 -0
  41. package/dist/arp/intelligence/nanomind-l1.js.map +1 -1
  42. package/dist/arp/intelligence/verify-classification.d.ts +124 -0
  43. package/dist/arp/intelligence/verify-classification.d.ts.map +1 -0
  44. package/dist/arp/intelligence/verify-classification.js +329 -0
  45. package/dist/arp/intelligence/verify-classification.js.map +1 -0
  46. package/dist/arp/proxy/server.d.ts +38 -8
  47. package/dist/arp/proxy/server.d.ts.map +1 -1
  48. package/dist/arp/proxy/server.js +89 -0
  49. package/dist/arp/proxy/server.js.map +1 -1
  50. package/dist/arp/types.d.ts +228 -1
  51. package/dist/arp/types.d.ts.map +1 -1
  52. package/dist/cli.js +85 -18
  53. package/dist/cli.js.map +1 -1
  54. package/dist/nanomind-core/compiler/semantic-compiler.d.ts.map +1 -1
  55. package/dist/nanomind-core/compiler/semantic-compiler.js +170 -10
  56. package/dist/nanomind-core/compiler/semantic-compiler.js.map +1 -1
  57. package/dist/nanomind-core/compiler/source-code-preprocessor.d.ts +64 -0
  58. package/dist/nanomind-core/compiler/source-code-preprocessor.d.ts.map +1 -0
  59. package/dist/nanomind-core/compiler/source-code-preprocessor.js +656 -0
  60. package/dist/nanomind-core/compiler/source-code-preprocessor.js.map +1 -0
  61. package/dist/nanomind-core/ingestion/artifact-parser.d.ts.map +1 -1
  62. package/dist/nanomind-core/ingestion/artifact-parser.js +15 -6
  63. package/dist/nanomind-core/ingestion/artifact-parser.js.map +1 -1
  64. package/package.json +3 -1
@@ -0,0 +1,399 @@
1
+ "use strict";
2
+ /**
3
+ * Guard anomaly detector (AIComply P1, distribution drift layer).
4
+ *
5
+ * This module complements the per-event behavioral risk channel
6
+ * (`behavioral-risk.ts`) with a statistical layer that watches the
7
+ * CLASSIFICATION DISTRIBUTION over a sliding window and flags drift
8
+ * from a reference baseline. The two layers are additive and catch
9
+ * different attacks:
10
+ *
11
+ * - Behavioral risk scores a single event against the agent's
12
+ * behavioral baseline: "does THIS action look anomalous?" It
13
+ * catches individual outliers.
14
+ * - Guard anomaly scores the recent class mix against a reference
15
+ * distribution: "has the TYPE of events drifted from what the
16
+ * Guard was trained on?" It catches regime shifts.
17
+ *
18
+ * A slow attacker whose individual events stay below the per-event
19
+ * risk threshold but whose actions collectively shift the class
20
+ * distribution (for example a sustained 5x over-rate of a
21
+ * sensitive-class label relative to the training baseline) is
22
+ * invisible to the per-event layer and obvious to the drift
23
+ * detector.
24
+ *
25
+ * ## Design decisions
26
+ *
27
+ * ### 1. Sliding ring buffer over reservoir sample
28
+ *
29
+ * A ring buffer of the most recent `windowSize` classification labels
30
+ * gives exact recency with bounded memory. A reservoir sample would
31
+ * preserve uniformly-drawn history and let stale events dilute the
32
+ * current drift signal, which is the opposite of what drift detection
33
+ * wants: the question is whether the CURRENT distribution matches
34
+ * the baseline, not whether history mixed with the present does.
35
+ *
36
+ * ### 2. Chi-square goodness-of-fit over z-score or KL divergence
37
+ *
38
+ * Chi-square is the principled test for a multi-class observed
39
+ * distribution against a reference. It operates on raw count vectors,
40
+ * produces a single scalar statistic, and has a well-understood null
41
+ * distribution (chi-squared with K-1 degrees of freedom) that gives
42
+ * caller-interpretable thresholds.
43
+ *
44
+ * Z-score is wrong for a multi-class comparison because it measures
45
+ * deviation of a single scalar from its own baseline; it cannot
46
+ * capture joint drift across the class vector. KL divergence is a
47
+ * reasonable alternative but lacks a principled threshold tied to a
48
+ * null distribution, which matters when the caller needs to reason
49
+ * about false-positive rates in a security context.
50
+ *
51
+ * ### 3. Injected baseline with Laplace smoothing
52
+ *
53
+ * The baseline class distribution is a dependency of this detector,
54
+ * not a concern of this module. The caller is responsible for
55
+ * providing it from the authoritative source. Two shipping paths are
56
+ * supported by callers of this module:
57
+ *
58
+ * - Registry-exported training distribution. The NanoMind-Guard
59
+ * training pipeline computes the class distribution over the
60
+ * training corpus and ships it out-of-band through the Registry.
61
+ * The runtime fetches it at startup and passes it here. This is
62
+ * the target deployment state.
63
+ *
64
+ * - Observation-based bootstrap. In pre-Registry deployments a
65
+ * caller can collect observations over a "learning" period and
66
+ * build a baseline from them via `buildBaselineFromObservations`.
67
+ * This is intentionally a weaker source: the baseline is only as
68
+ * trustworthy as the period it was collected over.
69
+ *
70
+ * Laplace smoothing handles zero-count classes on both sides without
71
+ * special casing. The smoothed baseline probability for class c with
72
+ * K total classes is `(p(c) + alpha) / (1 + alpha * K)`, which
73
+ * preserves sum-to-one and guarantees strictly positive expected
74
+ * counts so the chi-square denominator never underflows. The default
75
+ * alpha of 0.01 is intentionally small so that a window which mirrors
76
+ * the baseline scores a chi-square near zero; larger alpha values
77
+ * pull the smoothed baseline toward uniform and bias the null-case
78
+ * statistic upward.
79
+ *
80
+ * ### 4. Bounded memory contract
81
+ *
82
+ * A ring buffer of at most `windowSize` label strings plus a count
83
+ * map whose size is bounded by the number of distinct classes seen in
84
+ * the window (in practice <20 for current AIComply label sets, hard
85
+ * bounded by `windowSize`). A per-label length cap of
86
+ * `MAX_CLASSIFICATION_LENGTH` characters guards against an adversary
87
+ * passing pathologically long labels to exhaust memory; longer labels
88
+ * are rejected as a record-time no-op so the window remains
89
+ * O(windowSize * MAX_CLASSIFICATION_LENGTH) bytes in the worst case.
90
+ * `windowSize` itself is clamped to `MAX_GUARD_ANOMALY_WINDOW` so a
91
+ * misconfigured caller cannot blow up memory either.
92
+ *
93
+ * ### 5. Alarm surfacing
94
+ *
95
+ * Parallel to the session 28 behavioral risk channel, the coordinator
96
+ * records the `GuardAnomalyStatus` on `event.data.guardAnomaly` for
97
+ * every classified event. On the `drift` branch the coordinator
98
+ * raises category to `anomaly` and severity to `medium`; on
99
+ * `baseline-pending` and `normal` the record is written without
100
+ * mutation. This is the record-and-lift policy: observation is
101
+ * always recorded so downstream audit can see the drift state at the
102
+ * time of each event, and enforcement kicks in only when the
103
+ * chi-square statistic crosses the configured threshold.
104
+ *
105
+ * ## Parse-to-deny (CR-001)
106
+ *
107
+ * The detector never throws. `record()` rejects non-string or empty
108
+ * classifications as a no-op that returns the current status without
109
+ * mutating internal state. `installBaseline` silently drops invalid
110
+ * entries; if the baseline is empty after installation, the detector
111
+ * reports `baseline-pending` forever rather than inventing a default.
112
+ * Callers must treat `drift` as authoritative and must not use the
113
+ * statistic itself to make per-event decisions beyond the threshold
114
+ * comparison already encoded here.
115
+ */
116
+ Object.defineProperty(exports, "__esModule", { value: true });
117
+ exports.GuardAnomalyDetector = exports.MAX_CLASSIFICATION_LENGTH = exports.DEFAULT_GUARD_ANOMALY_MIN_OBS = exports.DEFAULT_GUARD_ANOMALY_TOP_K = exports.DEFAULT_GUARD_ANOMALY_SMOOTHING = exports.DEFAULT_GUARD_ANOMALY_THRESHOLD = exports.MAX_GUARD_ANOMALY_WINDOW = exports.DEFAULT_GUARD_ANOMALY_WINDOW = void 0;
118
+ exports.buildBaselineFromObservations = buildBaselineFromObservations;
119
+ /** Default sliding-window size if the caller does not override. */
120
+ exports.DEFAULT_GUARD_ANOMALY_WINDOW = 200;
121
+ /**
122
+ * Hard cap on the sliding-window size. Bounds worst-case memory to
123
+ * `MAX_GUARD_ANOMALY_WINDOW * MAX_CLASSIFICATION_LENGTH` bytes of
124
+ * label storage.
125
+ */
126
+ exports.MAX_GUARD_ANOMALY_WINDOW = 10000;
127
+ /**
128
+ * Default chi-square alarm threshold. Approximately the critical
129
+ * value for chi-squared with 9 degrees of freedom at p=0.01, which
130
+ * is a reasonable default for distributions with about 10 classes
131
+ * and a 1% tolerable false-positive rate.
132
+ */
133
+ exports.DEFAULT_GUARD_ANOMALY_THRESHOLD = 21.666;
134
+ /**
135
+ * Default Laplace smoothing constant. Tuned small so a null-case
136
+ * window (observed matches baseline) scores near zero. See the
137
+ * module header for the rationale on why 0.01 was chosen over the
138
+ * textbook 0.5.
139
+ */
140
+ exports.DEFAULT_GUARD_ANOMALY_SMOOTHING = 0.01;
141
+ /** Default top-K deviation count surfaced on a drift status. */
142
+ exports.DEFAULT_GUARD_ANOMALY_TOP_K = 3;
143
+ /** Absolute floor on minObservations regardless of windowSize. */
144
+ exports.DEFAULT_GUARD_ANOMALY_MIN_OBS = 30;
145
+ /**
146
+ * Maximum accepted classification label length. Labels longer than
147
+ * this are rejected at `record()` as a no-op so a malicious producer
148
+ * cannot inflate memory by writing pathologically long labels into
149
+ * the window.
150
+ */
151
+ exports.MAX_CLASSIFICATION_LENGTH = 256;
152
+ /**
153
+ * Statistical drift detector over a sliding window of classification
154
+ * labels. Thread-unsafe by construction; callers are expected to
155
+ * serialize calls through the coordinator's analyze() loop.
156
+ */
157
+ class GuardAnomalyDetector {
158
+ constructor(config) {
159
+ this.windowSize = clampWindowSize(config.windowSize ?? exports.DEFAULT_GUARD_ANOMALY_WINDOW);
160
+ this.alarmThreshold = Number.isFinite(config.alarmThreshold)
161
+ ? Math.max(0, config.alarmThreshold)
162
+ : exports.DEFAULT_GUARD_ANOMALY_THRESHOLD;
163
+ this.smoothing = Number.isFinite(config.smoothing)
164
+ ? Math.max(0, config.smoothing)
165
+ : exports.DEFAULT_GUARD_ANOMALY_SMOOTHING;
166
+ this.minObservations = Math.max(1, config.minObservations ??
167
+ Math.max(exports.DEFAULT_GUARD_ANOMALY_MIN_OBS, Math.floor(this.windowSize / 4)));
168
+ this.sourceName = config.sourceName ?? 'guard-anomaly';
169
+ this.topKDeviations = Math.max(1, config.topKDeviations ?? exports.DEFAULT_GUARD_ANOMALY_TOP_K);
170
+ this.baselineNorm = new Map();
171
+ this.installBaseline(config.baseline);
172
+ this.window = new Array(this.windowSize).fill(undefined);
173
+ this.head = 0;
174
+ this.filled = false;
175
+ this.counts = new Map();
176
+ }
177
+ /**
178
+ * Record a classification observation and return the current drift
179
+ * status. Never throws. Returns the current status (without
180
+ * recording) when the classification is empty, not a string, or
181
+ * exceeds `MAX_CLASSIFICATION_LENGTH`.
182
+ */
183
+ record(classification) {
184
+ if (typeof classification !== 'string' ||
185
+ classification.length === 0 ||
186
+ classification.length > exports.MAX_CLASSIFICATION_LENGTH) {
187
+ return this.computeStatus();
188
+ }
189
+ // Evict the oldest entry when the ring has wrapped. `head` points
190
+ // to the next write slot, which is also the oldest entry once
191
+ // the buffer is filled.
192
+ if (this.filled) {
193
+ const evicted = this.window[this.head];
194
+ if (evicted !== undefined) {
195
+ const prev = this.counts.get(evicted) ?? 0;
196
+ if (prev <= 1) {
197
+ this.counts.delete(evicted);
198
+ }
199
+ else {
200
+ this.counts.set(evicted, prev - 1);
201
+ }
202
+ }
203
+ }
204
+ this.window[this.head] = classification;
205
+ this.counts.set(classification, (this.counts.get(classification) ?? 0) + 1);
206
+ this.head++;
207
+ if (this.head >= this.windowSize) {
208
+ this.head = 0;
209
+ this.filled = true;
210
+ }
211
+ return this.computeStatus();
212
+ }
213
+ /** Current number of observations in the sliding window. */
214
+ getWindowObservations() {
215
+ return this.filled ? this.windowSize : this.head;
216
+ }
217
+ /** Configured window capacity. */
218
+ getWindowCapacity() {
219
+ return this.windowSize;
220
+ }
221
+ /**
222
+ * Snapshot of the current observed class counts. Returns a new
223
+ * object; safe to mutate without affecting the detector.
224
+ */
225
+ getObserved() {
226
+ const out = {};
227
+ for (const [k, v] of this.counts) {
228
+ out[k] = v;
229
+ }
230
+ return out;
231
+ }
232
+ /**
233
+ * Snapshot of the installed (normalized) baseline. Returns a new
234
+ * object.
235
+ */
236
+ getBaseline() {
237
+ const out = {};
238
+ for (const [k, v] of this.baselineNorm) {
239
+ out[k] = v;
240
+ }
241
+ return out;
242
+ }
243
+ /**
244
+ * Replace the baseline without tearing down the detector. Used by
245
+ * a caller that rotates the Guard's training distribution in
246
+ * place. The observation window is preserved so drift detection
247
+ * continues without a re-learning period.
248
+ */
249
+ setBaseline(baseline) {
250
+ this.installBaseline(baseline);
251
+ }
252
+ /**
253
+ * Clear the observation window. Baseline is untouched. Intended
254
+ * for callers that want to reset state after a confirmed drift
255
+ * resolution or a configuration change.
256
+ */
257
+ reset() {
258
+ for (let i = 0; i < this.window.length; i++) {
259
+ this.window[i] = undefined;
260
+ }
261
+ this.head = 0;
262
+ this.filled = false;
263
+ this.counts.clear();
264
+ }
265
+ installBaseline(baseline) {
266
+ const next = new Map();
267
+ let total = 0;
268
+ if (baseline !== null && typeof baseline === 'object') {
269
+ for (const [k, v] of Object.entries(baseline)) {
270
+ if (typeof k !== 'string' || k.length === 0 || k.length > exports.MAX_CLASSIFICATION_LENGTH) {
271
+ continue;
272
+ }
273
+ if (typeof v !== 'number' || !Number.isFinite(v) || v < 0) {
274
+ continue;
275
+ }
276
+ next.set(k, v);
277
+ total += v;
278
+ }
279
+ }
280
+ this.baselineNorm = new Map();
281
+ if (total > 0) {
282
+ for (const [k, v] of next) {
283
+ this.baselineNorm.set(k, v / total);
284
+ }
285
+ }
286
+ }
287
+ computeStatus() {
288
+ const n = this.getWindowObservations();
289
+ if (this.baselineNorm.size === 0) {
290
+ return {
291
+ status: 'baseline-pending',
292
+ observed: n,
293
+ required: this.minObservations,
294
+ reason: 'empty-baseline',
295
+ };
296
+ }
297
+ if (n < this.minObservations) {
298
+ return {
299
+ status: 'baseline-pending',
300
+ observed: n,
301
+ required: this.minObservations,
302
+ reason: 'insufficient-observations',
303
+ };
304
+ }
305
+ const { statistic, topDeviations } = this.computeChiSquare(n);
306
+ if (statistic >= this.alarmThreshold) {
307
+ return {
308
+ status: 'drift',
309
+ statistic,
310
+ threshold: this.alarmThreshold,
311
+ topDeviations: topDeviations.slice(0, this.topKDeviations),
312
+ windowSize: n,
313
+ source: this.sourceName,
314
+ };
315
+ }
316
+ return {
317
+ status: 'normal',
318
+ statistic,
319
+ threshold: this.alarmThreshold,
320
+ windowSize: n,
321
+ source: this.sourceName,
322
+ };
323
+ }
324
+ /**
325
+ * Compute the Laplace-smoothed chi-square goodness-of-fit statistic
326
+ * of the current window against the installed baseline, and the
327
+ * full per-class deviation list sorted by absolute deviation.
328
+ *
329
+ * Smoothed baseline:
330
+ * smoothed_p(c) = (p(c) + alpha) / (1 + alpha * K)
331
+ * where K = |universe|, the union of baseline classes and observed
332
+ * classes. This preserves sum-to-one and yields strictly positive
333
+ * expected counts for every c in the universe, so the chi-square
334
+ * denominator never underflows.
335
+ */
336
+ computeChiSquare(n) {
337
+ const universe = new Set();
338
+ for (const k of this.baselineNorm.keys())
339
+ universe.add(k);
340
+ for (const k of this.counts.keys())
341
+ universe.add(k);
342
+ const K = universe.size;
343
+ if (K === 0 || n === 0) {
344
+ return { statistic: 0, topDeviations: [] };
345
+ }
346
+ const alpha = this.smoothing;
347
+ const denom = 1 + alpha * K;
348
+ let statistic = 0;
349
+ const deviations = [];
350
+ for (const className of universe) {
351
+ const p = this.baselineNorm.get(className) ?? 0;
352
+ const smoothedP = (p + alpha) / denom;
353
+ const expected = smoothedP * n;
354
+ const observed = this.counts.get(className) ?? 0;
355
+ if (expected <= 0)
356
+ continue; // defensive; impossible with alpha > 0 or p > 0
357
+ const diff = observed - expected;
358
+ statistic += (diff * diff) / expected;
359
+ deviations.push({
360
+ className,
361
+ observed,
362
+ expected,
363
+ deviation: diff,
364
+ });
365
+ }
366
+ deviations.sort((a, b) => Math.abs(b.deviation) - Math.abs(a.deviation));
367
+ return { statistic, topDeviations: deviations };
368
+ }
369
+ }
370
+ exports.GuardAnomalyDetector = GuardAnomalyDetector;
371
+ function clampWindowSize(n) {
372
+ if (!Number.isFinite(n) || n <= 0)
373
+ return exports.DEFAULT_GUARD_ANOMALY_WINDOW;
374
+ return Math.min(Math.floor(n), exports.MAX_GUARD_ANOMALY_WINDOW);
375
+ }
376
+ /**
377
+ * Build a baseline `ClassDistribution` from an array of observation
378
+ * labels. Intended for the observation-based bootstrap path where no
379
+ * Registry-exported baseline is yet available. The returned object
380
+ * is a count map; the detector normalizes it internally.
381
+ *
382
+ * Callers should collect at least several hundred observations over
383
+ * a trusted "learning" period before calling this. A baseline built
384
+ * from fewer observations is noise, and a baseline built from a
385
+ * compromised period bakes the attack into the reference.
386
+ *
387
+ * Entries that are not non-empty strings are silently skipped.
388
+ */
389
+ function buildBaselineFromObservations(samples) {
390
+ const counts = {};
391
+ for (const s of samples) {
392
+ if (typeof s !== 'string' || s.length === 0 || s.length > exports.MAX_CLASSIFICATION_LENGTH) {
393
+ continue;
394
+ }
395
+ counts[s] = (counts[s] ?? 0) + 1;
396
+ }
397
+ return counts;
398
+ }
399
+ //# sourceMappingURL=guard-anomaly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard-anomaly.js","sourceRoot":"","sources":["../../../src/arp/intelligence/guard-anomaly.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  *
12
12
  * L1 runs in parallel with L0 — never blocks the L0 decision.
13
13
  */
14
+ import type { ARPEvent } from '../types';
14
15
  import type { EventEngine } from '../engine/event-engine';
15
16
  type EventType = 'TOOL_CALL' | 'CAPABILITY_CHECK' | 'MCP_CALL' | 'MEMORY_READ' | 'MEMORY_WRITE' | 'EXTERNAL_CALL';
16
17
  type ARPAction = 'allow' | 'alert' | 'throttle' | 'suspend' | 'kill';
@@ -28,6 +29,15 @@ interface BehavioralEvent {
28
29
  responseCode: number;
29
30
  l0Decision: 'allow' | 'block' | 'alert';
30
31
  }
32
+ interface BaselineStats {
33
+ eventTypeCounts: Record<string, number>;
34
+ avgTimingDelta: number;
35
+ stdTimingDelta: number;
36
+ capabilitySet: Set<string>;
37
+ avgResponseSize: number;
38
+ totalEvents: number;
39
+ errorRate: number;
40
+ }
31
41
  interface AnomalyResult {
32
42
  score: number;
33
43
  action: ARPAction;
@@ -57,6 +67,33 @@ export declare class NanoMindL1 {
57
67
  * Non-blocking: L1 runs in parallel, L0 decision is returned immediately.
58
68
  */
59
69
  attach(engine: EventEngine): void;
70
+ /**
71
+ * Score an ARP event for behavioral risk WITHOUT mutating any twin state.
72
+ *
73
+ * Used by the behavioral risk IPC server (behavioral-risk-server.ts) to
74
+ * answer on-demand scoring requests from a coordinator running in another
75
+ * process, or by InProcessBehavioralRiskSource for single-process wiring.
76
+ * Unlike `processEvent`, this does not advance the sequence number, append
77
+ * to the event log, add to the event buffer, or accumulate the gradient.
78
+ * It is a pure read against the current baseline.
79
+ *
80
+ * Returns null when the twin is disabled or the baseline is not yet
81
+ * trained (totalEvents < 100). The caller must surface this to the IPC
82
+ * client as a NOT_READY signal; silently returning a zero score would
83
+ * misrepresent the twin's confidence.
84
+ */
85
+ scoreARPEvent(event: ARPEvent): AnomalyResult | null;
86
+ /**
87
+ * Readonly variant of convertEvent that does not mutate lastEventTime or
88
+ * sequenceNum. Used by scoreARPEvent for on-demand IPC scoring.
89
+ */
90
+ private convertEventReadonly;
91
+ /**
92
+ * Test-only seam: force-install a baseline so unit tests can exercise
93
+ * scoreARPEvent without first calling processEvent a hundred times. Marked
94
+ * with a leading underscore so it is easy to grep for in production code.
95
+ */
96
+ _setBaselineForTest(baseline: BaselineStats): void;
60
97
  /**
61
98
  * Process a behavioral event and return anomaly score.
62
99
  */
@@ -1 +1 @@
1
- {"version":3,"file":"nanomind-l1.d.ts","sourceRoot":"","sources":["../../../src/arp/intelligence/nanomind-l1.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAI1D,KAAK,SAAS,GACV,WAAW,GACX,kBAAkB,GAClB,UAAU,GACV,aAAa,GACb,cAAc,GACd,eAAe,CAAC;AAEpB,KAAK,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAErE,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CACzC;AAYD,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAqBD,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,mBAAmB,CAA8C;IACzE,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,aAAa,CAAS;gBAElB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE;IAY3G;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAqBjC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,aAAa;IAqBnD;;OAEG;IACH,OAAO,CAAC,YAAY;IAwCpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,aAAa;IAqBrB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;;;OAIG;YACW,aAAa;IAwC3B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC"}
1
+ {"version":3,"file":"nanomind-l1.d.ts","sourceRoot":"","sources":["../../../src/arp/intelligence/nanomind-l1.ts"],"names":[],"mappings":"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"}
@@ -108,6 +108,84 @@ class NanoMindL1 {
108
108
  });
109
109
  });
110
110
  }
111
+ /**
112
+ * Score an ARP event for behavioral risk WITHOUT mutating any twin state.
113
+ *
114
+ * Used by the behavioral risk IPC server (behavioral-risk-server.ts) to
115
+ * answer on-demand scoring requests from a coordinator running in another
116
+ * process, or by InProcessBehavioralRiskSource for single-process wiring.
117
+ * Unlike `processEvent`, this does not advance the sequence number, append
118
+ * to the event log, add to the event buffer, or accumulate the gradient.
119
+ * It is a pure read against the current baseline.
120
+ *
121
+ * Returns null when the twin is disabled or the baseline is not yet
122
+ * trained (totalEvents < 100). The caller must surface this to the IPC
123
+ * client as a NOT_READY signal; silently returning a zero score would
124
+ * misrepresent the twin's confidence.
125
+ */
126
+ scoreARPEvent(event) {
127
+ if (!this.enabled)
128
+ return null;
129
+ if (!this.baseline || this.baseline.totalEvents < 100)
130
+ return null;
131
+ const behavioral = this.convertEventReadonly(event);
132
+ if (!behavioral)
133
+ return null;
134
+ const score = this.computeAnomalyScore(behavioral);
135
+ const response = this.getResponse(score);
136
+ return { score, action: response.action, reason: response.label };
137
+ }
138
+ /**
139
+ * Readonly variant of convertEvent that does not mutate lastEventTime or
140
+ * sequenceNum. Used by scoreARPEvent for on-demand IPC scoring.
141
+ */
142
+ convertEventReadonly(event) {
143
+ const now = Date.now();
144
+ const delta = this.lastEventTime > 0 ? now - this.lastEventTime : 0;
145
+ const sequenceNum = this.sequenceNum + 1;
146
+ let eventType = 'TOOL_CALL';
147
+ const source = String(event.data?.source || event.data?.monitor || '');
148
+ if (source.includes('network'))
149
+ eventType = 'EXTERNAL_CALL';
150
+ else if (source.includes('filesystem'))
151
+ eventType = 'MEMORY_READ';
152
+ else if (source.includes('mcp'))
153
+ eventType = 'MCP_CALL';
154
+ else if (source.includes('capability'))
155
+ eventType = 'CAPABILITY_CHECK';
156
+ let l0Decision = 'allow';
157
+ if (event.data?._initialAction === 'kill' || event.data?._initialAction === 'pause')
158
+ l0Decision = 'block';
159
+ else if (event.category === 'threat' || event.category === 'violation')
160
+ l0Decision = 'alert';
161
+ else if (event.severity === 'high' || event.severity === 'critical')
162
+ l0Decision = 'alert';
163
+ const capability = String(event.data?.capability || event.data?.type || 'unknown');
164
+ const toolName = event.data?.toolName ? String(event.data.toolName) : null;
165
+ const responseSize = typeof event.data?.responseSize === 'number' ? event.data.responseSize : 0;
166
+ return {
167
+ agentId: this.agentId,
168
+ sessionId: this.sessionId,
169
+ sequenceNum,
170
+ eventType,
171
+ capability,
172
+ toolName,
173
+ argHash: crypto.createHash('sha256').update(JSON.stringify(event.data || {})).digest('hex').substring(0, 16),
174
+ timestampDelta: delta,
175
+ wallClock: now,
176
+ responseSize,
177
+ responseCode: event.data?.error ? 1 : 0,
178
+ l0Decision,
179
+ };
180
+ }
181
+ /**
182
+ * Test-only seam: force-install a baseline so unit tests can exercise
183
+ * scoreARPEvent without first calling processEvent a hundred times. Marked
184
+ * with a leading underscore so it is easy to grep for in production code.
185
+ */
186
+ _setBaselineForTest(baseline) {
187
+ this.baseline = baseline;
188
+ }
111
189
  /**
112
190
  * Process a behavioral event and return anomaly score.
113
191
  */
@@ -1 +1 @@
1
- {"version":3,"file":"nanomind-l1.js","sourceRoot":"","sources":["../../../src/arp/intelligence/nanomind-l1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nanomind-l1.js","sourceRoot":"","sources":["../../../src/arp/intelligence/nanomind-l1.ts"],"names":[],"mappings":"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"}