@tracehound/core 1.4.0 → 1.4.3

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 (37) hide show
  1. package/README.md +16 -29
  2. package/dist/core/agent.d.ts +8 -2
  3. package/dist/core/agent.d.ts.map +1 -1
  4. package/dist/core/agent.js +35 -7
  5. package/dist/core/agent.js.map +1 -1
  6. package/dist/core/evidence-worker-pool.d.ts +27 -0
  7. package/dist/core/evidence-worker-pool.d.ts.map +1 -0
  8. package/dist/core/evidence-worker-pool.js +87 -0
  9. package/dist/core/evidence-worker-pool.js.map +1 -0
  10. package/dist/core/evidence-worker.d.ts +20 -0
  11. package/dist/core/evidence-worker.d.ts.map +1 -0
  12. package/dist/core/evidence-worker.js +32 -0
  13. package/dist/core/evidence-worker.js.map +1 -0
  14. package/dist/core/hound-pool.d.ts.map +1 -1
  15. package/dist/core/hound-pool.js +7 -1
  16. package/dist/core/hound-pool.js.map +1 -1
  17. package/dist/core/hound-process.js +2 -2
  18. package/dist/core/hound-process.js.map +1 -1
  19. package/dist/core/quarantine.d.ts +5 -0
  20. package/dist/core/quarantine.d.ts.map +1 -1
  21. package/dist/core/quarantine.js +7 -0
  22. package/dist/core/quarantine.js.map +1 -1
  23. package/dist/core/rate-limiter.d.ts +3 -0
  24. package/dist/core/rate-limiter.d.ts.map +1 -1
  25. package/dist/core/rate-limiter.js +21 -1
  26. package/dist/core/rate-limiter.js.map +1 -1
  27. package/dist/core/tracehound.d.ts.map +1 -1
  28. package/dist/core/tracehound.js +33 -3
  29. package/dist/core/tracehound.js.map +1 -1
  30. package/dist/index.d.ts +14 -14
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +13 -13
  33. package/dist/index.js.map +1 -1
  34. package/dist/types/config.d.ts +2 -0
  35. package/dist/types/config.d.ts.map +1 -1
  36. package/dist/types/config.js.map +1 -1
  37. package/package.json +1 -1
package/README.md CHANGED
@@ -28,15 +28,10 @@ The main entry point. Orchestrates the threat detection flow.
28
28
  - **Fail-safe:** Defaults to "clean" on error.
29
29
 
30
30
  ```ts
31
- import {
32
- createAgent,
33
- createQuarantine,
34
- createRateLimiter,
35
- createEvidenceFactory,
36
- } from '@tracehound/core'
37
-
38
- const agent = createAgent({ maxPayloadSize: 1_000_000 })
39
- const result = agent.intercept(scent)
31
+ import { createTracehound } from '@tracehound/core'
32
+
33
+ const th = createTracehound({ maxPayloadSize: 1_000_000 })
34
+ const result = th.agent.intercept(scent)
40
35
  ```
41
36
 
42
37
  ### 2. Hound Pool (`IHoundPool`)
@@ -74,26 +69,18 @@ Background task management.
74
69
  ## Usage Example
75
70
 
76
71
  ```ts
77
- import {
78
- createAgent,
79
- createQuarantine,
80
- createRateLimiter,
81
- createEvidenceFactory,
82
- createHoundPool,
83
- AuditChain,
84
- } from '@tracehound/core'
85
-
86
- // 1. Setup Dependencies
87
- const auditChain = new AuditChain()
88
- const quarantine = createQuarantine({ maxCount: 1000 }, auditChain)
89
- const rateLimiter = createRateLimiter({ windowMs: 60000, maxRequests: 100 })
90
- const factory = createEvidenceFactory()
91
-
92
- // 2. Create Agent
93
- const agent = createAgent({ maxPayloadSize: 1_000_000 }, quarantine, rateLimiter, factory)
94
-
95
- // 3. Intercept Traffic
96
- const result = agent.intercept({
72
+ import { createTracehound } from '@tracehound/core'
73
+
74
+ // 1. Create Tracehound Instance
75
+ const th = createTracehound({
76
+ maxPayloadSize: 1_000_000,
77
+ quarantine: { maxCount: 1000 },
78
+ rateLimit: { windowMs: 60000, maxRequests: 100 },
79
+ houndPool: { poolSize: 4 }, // Automatically provisions process-separated workers
80
+ })
81
+
82
+ // 2. Intercept Traffic
83
+ const result = th.agent.intercept({
97
84
  id: 'req-1',
98
85
  source: '192.168.1.1',
99
86
  payload: { user: 'input' },
@@ -12,8 +12,11 @@
12
12
  import type { InterceptResult } from '../types/result.js';
13
13
  import type { Scent } from '../types/scent.js';
14
14
  import type { IEvidenceFactory } from './evidence-factory.js';
15
+ import type { IHoundPool } from './hound-pool.js';
16
+ import type { INotificationEmitter } from './notification-emitter.js';
15
17
  import type { Quarantine } from './quarantine.js';
16
18
  import type { IRateLimiter } from './rate-limiter.js';
19
+ import type { IWatcher } from './watcher.js';
17
20
  /**
18
21
  * Agent configuration (subset of TracehoundConfig).
19
22
  */
@@ -68,8 +71,11 @@ export declare class Agent implements IAgent {
68
71
  private readonly quarantine;
69
72
  private readonly rateLimiter;
70
73
  private readonly evidenceFactory;
74
+ private readonly houndPool?;
75
+ private readonly watcher?;
76
+ private readonly notifications?;
71
77
  private readonly stats;
72
- constructor(config: AgentConfig, quarantine: Quarantine, rateLimiter: IRateLimiter, evidenceFactory: IEvidenceFactory);
78
+ constructor(config: AgentConfig, quarantine: Quarantine, rateLimiter: IRateLimiter, evidenceFactory: IEvidenceFactory, houndPool?: IHoundPool | undefined, watcher?: IWatcher | undefined, notifications?: INotificationEmitter | undefined);
73
79
  intercept(scent: Scent): InterceptResult;
74
80
  /**
75
81
  * Get current agent statistics.
@@ -85,5 +91,5 @@ export declare class Agent implements IAgent {
85
91
  * @param evidenceFactory - Evidence factory instance
86
92
  * @returns Agent instance
87
93
  */
88
- export declare function createAgent(config: AgentConfig, quarantine: Quarantine, rateLimiter: IRateLimiter, evidenceFactory: IEvidenceFactory): IAgent;
94
+ export declare function createAgent(config: AgentConfig, quarantine: Quarantine, rateLimiter: IRateLimiter, evidenceFactory: IEvidenceFactory, houndPool?: IHoundPool, watcher?: IWatcher, notifications?: INotificationEmitter): IAgent;
89
95
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,mBAAmB,CAAA;AAEtE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAAA;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAA;IACvB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,mBAAmB;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kCAAkC;IAClC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,+BAA+B;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa;IACb,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,qBAAa,KAAM,YAAW,MAAM;IAYhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAdlC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAQrB;gBAGkB,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,YAAY,EACzB,eAAe,EAAE,gBAAgB;IAQpD,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe;IAmGxC;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC;CAGjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,YAAY,EACzB,eAAe,EAAE,gBAAgB,GAChC,MAAM,CAER"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAAA;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAA;IACvB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,mBAAmB;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kCAAkC;IAClC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,+BAA+B;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa;IACb,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,qBAAa,KAAM,YAAW,MAAM;IAYhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAjBjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAQrB;gBAGkB,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,YAAY,EACzB,eAAe,EAAE,gBAAgB,EACjC,SAAS,CAAC,EAAE,UAAU,YAAA,EACtB,OAAO,CAAC,EAAE,QAAQ,YAAA,EAClB,aAAa,CAAC,EAAE,oBAAoB,YAAA;IAQvD,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe;IA4HxC;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC;CAGjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,YAAY,EACzB,eAAe,EAAE,gBAAgB,EACjC,SAAS,CAAC,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,QAAQ,EAClB,aAAa,CAAC,EAAE,oBAAoB,GACnC,MAAM,CAUR"}
@@ -17,6 +17,9 @@ export class Agent {
17
17
  quarantine;
18
18
  rateLimiter;
19
19
  evidenceFactory;
20
+ houndPool;
21
+ watcher;
22
+ notifications;
20
23
  stats = {
21
24
  totalIntercepts: 0,
22
25
  cleanCount: 0,
@@ -26,11 +29,14 @@ export class Agent {
26
29
  quarantinedCount: 0,
27
30
  errorCount: 0,
28
31
  };
29
- constructor(config, quarantine, rateLimiter, evidenceFactory) {
32
+ constructor(config, quarantine, rateLimiter, evidenceFactory, houndPool, watcher, notifications) {
30
33
  this.config = config;
31
34
  this.quarantine = quarantine;
32
35
  this.rateLimiter = rateLimiter;
33
36
  this.evidenceFactory = evidenceFactory;
37
+ this.houndPool = houndPool;
38
+ this.watcher = watcher;
39
+ this.notifications = notifications;
34
40
  // Validate config
35
41
  if (config.maxPayloadSize <= 0) {
36
42
  throw new Error('maxPayloadSize must be positive');
@@ -43,10 +49,12 @@ export class Agent {
43
49
  const rateResult = this.rateLimiter.check(scent.source);
44
50
  if (!rateResult.allowed) {
45
51
  this.stats.rateLimitedCount++;
46
- return {
47
- status: 'rate_limited',
48
- retryAfter: rateResult.retryAfter,
49
- };
52
+ const retryAfter = rateResult.retryAfter;
53
+ this.notifications?.emit('rate_limit.exceeded', {
54
+ source: scent.source,
55
+ retryAfterMs: retryAfter,
56
+ });
57
+ return { status: 'rate_limited', retryAfter };
50
58
  }
51
59
  // Step 2: Check for threat signal
52
60
  if (!scent.threat) {
@@ -55,6 +63,8 @@ export class Agent {
55
63
  this.stats.cleanCount++;
56
64
  return { status: 'clean' };
57
65
  }
66
+ // Record threat in Watcher (observability) — before any further processing
67
+ this.watcher?.recordThreat(scent.threat.category, scent.threat.severity);
58
68
  // Step 3: Create evidence via factory
59
69
  // Factory handles: validation, encoding, hashing, signature generation
60
70
  const creationResult = this.evidenceFactory.create(scent, scent.threat, this.config.maxPayloadSize);
@@ -97,6 +107,24 @@ export class Agent {
97
107
  signature,
98
108
  };
99
109
  }
110
+ // Forward quarantined evidence to HoundPool for async processing.
111
+ // This is the canonical wiring point: evidence is still typed as Evidence
112
+ // here (not yet narrowed to EvidenceHandle), enabling direct activation.
113
+ this.houndPool?.activate(evidence);
114
+ // Emit observability events — fire-and-forget, must not throw
115
+ const qStats = this.quarantine.stats;
116
+ this.notifications?.emit('threat.detected', {
117
+ scentId: scent.id,
118
+ category: scent.threat.category,
119
+ severity: scent.threat.severity,
120
+ source: scent.source,
121
+ });
122
+ this.notifications?.emit('evidence.quarantined', {
123
+ signature,
124
+ severity: scent.threat.severity,
125
+ sizeBytes: qStats.bytes,
126
+ });
127
+ this.watcher?.updateQuarantine(qStats.count, qStats.bytes, this.quarantine.maxBytes);
100
128
  // Success
101
129
  this.stats.quarantinedCount++;
102
130
  return {
@@ -135,7 +163,7 @@ export class Agent {
135
163
  * @param evidenceFactory - Evidence factory instance
136
164
  * @returns Agent instance
137
165
  */
138
- export function createAgent(config, quarantine, rateLimiter, evidenceFactory) {
139
- return new Agent(config, quarantine, rateLimiter, evidenceFactory);
166
+ export function createAgent(config, quarantine, rateLimiter, evidenceFactory, houndPool, watcher, notifications) {
167
+ return new Agent(config, quarantine, rateLimiter, evidenceFactory, houndPool, watcher, notifications);
140
168
  }
141
169
  //# sourceMappingURL=agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { Scent, ThreatSignal } from '../types/scent.js';
2
+ import type { HotPathCodec } from '../utils/binary-codec.js';
3
+ import type { IHoundPool } from './hound-pool.js';
4
+ import type { Quarantine } from './quarantine.js';
5
+ export interface EvidenceWorkerPoolOptions {
6
+ poolSize?: number;
7
+ quarantine: Quarantine;
8
+ maxPayloadSize: number;
9
+ codec?: HotPathCodec;
10
+ houndPool?: IHoundPool;
11
+ }
12
+ export declare class EvidenceWorkerPool {
13
+ private readonly options;
14
+ private workers;
15
+ private nextWorkerIndex;
16
+ private pendingJobs;
17
+ constructor(options: EvidenceWorkerPoolOptions);
18
+ /**
19
+ * Dispatches a scent to the worker pool for async Hash and Evidence creation.
20
+ * Does NOT return a promise to avoid blocking the caller. It internally
21
+ * updates the Quarantine cache once the true Hash is ready.
22
+ */
23
+ dispatch(scent: Scent, threat: ThreatSignal, temporarySignature: string): void;
24
+ private handleWorkerMessage;
25
+ shutdown(): Promise<void>;
26
+ }
27
+ //# sourceMappingURL=evidence-worker-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-worker-pool.d.ts","sourceRoot":"","sources":["../../src/core/evidence-worker-pool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,SAAS,CAAC,EAAE,UAAU,CAAA;CACvB;AAED,qBAAa,kBAAkB;IAcjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAbpC,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,WAAW,CAShB;gBAE0B,OAAO,EAAE,yBAAyB;IAyB/D;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI;IA2BrF,OAAO,CAAC,mBAAmB;IAwCd,QAAQ;CAItB"}
@@ -0,0 +1,87 @@
1
+ import { dirname, join } from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
3
+ import { Worker } from 'node:worker_threads';
4
+ import { Evidence } from './evidence.js';
5
+ export class EvidenceWorkerPool {
6
+ options;
7
+ workers = [];
8
+ nextWorkerIndex = 0;
9
+ pendingJobs = new Map();
10
+ constructor(options) {
11
+ this.options = options;
12
+ const size = options.poolSize || 2;
13
+ const __filename = fileURLToPath(import.meta.url);
14
+ const __dirname = dirname(__filename);
15
+ // We assume the compiled .js file is next to us in dist
16
+ // EXCEPT during testing/benchmarking with tsx, where we load the .ts file
17
+ const ext = process.env['VITEST'] || __filename.endsWith('.ts') ? '.ts' : '.js';
18
+ const workerScript = join(__dirname, `evidence-worker${ext}`);
19
+ for (let i = 0; i < size; i++) {
20
+ const worker = new Worker(workerScript);
21
+ worker.on('message', (result) => {
22
+ this.handleWorkerMessage(result);
23
+ });
24
+ worker.on('error', (err) => {
25
+ console.error(`EvidenceWorkerPool Worker Error:`, err);
26
+ });
27
+ this.workers.push(worker);
28
+ }
29
+ }
30
+ /**
31
+ * Dispatches a scent to the worker pool for async Hash and Evidence creation.
32
+ * Does NOT return a promise to avoid blocking the caller. It internally
33
+ * updates the Quarantine cache once the true Hash is ready.
34
+ */
35
+ dispatch(scent, threat, temporarySignature) {
36
+ if (this.workers.length === 0)
37
+ return;
38
+ const worker = this.workers[this.nextWorkerIndex];
39
+ if (!worker)
40
+ return;
41
+ this.nextWorkerIndex = (this.nextWorkerIndex + 1) % this.workers.length;
42
+ // Register job to backfill Quarantine later
43
+ this.pendingJobs.set(scent.id, {
44
+ resolve: () => { }, // Handled directly in message listener now
45
+ reject: () => { },
46
+ temporarySignature,
47
+ threat,
48
+ timestamp: scent.timestamp,
49
+ });
50
+ const msg = {
51
+ id: scent.id,
52
+ scent,
53
+ threat,
54
+ maxPayloadSize: this.options.maxPayloadSize,
55
+ };
56
+ worker.postMessage(msg);
57
+ }
58
+ handleWorkerMessage(result) {
59
+ const job = this.pendingJobs.get(result.id);
60
+ if (!job)
61
+ return;
62
+ this.pendingJobs.delete(result.id);
63
+ if (!result.ok || !result.bytes || !result.hash || !result.signature) {
64
+ // Worker failed (e.g., payload too large check failed inside worker)
65
+ // We must purge the temporary evidence from Quarantine
66
+ this.options.quarantine.purge(job.temporarySignature, 'error');
67
+ return;
68
+ }
69
+ let finalBytes = result.bytes;
70
+ let compressed = false;
71
+ if (this.options.codec) {
72
+ finalBytes = this.options.codec.encode(result.bytes);
73
+ compressed = true;
74
+ }
75
+ // Build the TRUE Evidence Object
76
+ const trueEvidence = new Evidence(finalBytes.buffer.slice(finalBytes.byteOffset, finalBytes.byteOffset + finalBytes.byteLength), result.signature, result.hash, job.threat.severity, job.timestamp, compressed);
77
+ // Backfill Quarantine: Replace the temporary UUID signature with the True Signature
78
+ this.options.quarantine.replace(job.temporarySignature, trueEvidence);
79
+ // Notify WAF via HoundPool now that parsing and hashing are complete
80
+ this.options.houndPool?.activate(trueEvidence);
81
+ }
82
+ async shutdown() {
83
+ await Promise.all(this.workers.map((w) => w.terminate()));
84
+ this.workers = [];
85
+ }
86
+ }
87
+ //# sourceMappingURL=evidence-worker-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-worker-pool.js","sourceRoot":"","sources":["../../src/core/evidence-worker-pool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { Scent, ThreatSignal } from '../types/scent.js';
2
+ export interface EvidenceWorkerMessage {
3
+ id: string;
4
+ scent: Scent;
5
+ threat: ThreatSignal;
6
+ maxPayloadSize: number;
7
+ }
8
+ export interface EvidenceWorkerResult {
9
+ id: string;
10
+ ok: boolean;
11
+ hash?: string;
12
+ signature?: string;
13
+ size?: number;
14
+ bytes?: Uint8Array;
15
+ error?: {
16
+ code: string;
17
+ message: string;
18
+ };
19
+ }
20
+ //# sourceMappingURL=evidence-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-worker.d.ts","sourceRoot":"","sources":["../../src/core/evidence-worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAI5D,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,YAAY,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,OAAO,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF"}
@@ -0,0 +1,32 @@
1
+ import { parentPort } from 'node:worker_threads';
2
+ import { encodePayload } from '../utils/encode.js';
3
+ import { hashBuffer } from '../utils/hash.js';
4
+ if (parentPort) {
5
+ parentPort.on('message', (msg) => {
6
+ try {
7
+ const encoded = encodePayload(msg.scent.payload, msg.maxPayloadSize);
8
+ const hash = hashBuffer(encoded.bytes);
9
+ const signature = `${msg.threat.category}:${hash}`;
10
+ const result = {
11
+ id: msg.id,
12
+ ok: true,
13
+ hash,
14
+ signature,
15
+ size: encoded.size,
16
+ bytes: encoded.bytes,
17
+ };
18
+ parentPort.postMessage(result, [result.bytes.buffer]);
19
+ }
20
+ catch (err) {
21
+ parentPort.postMessage({
22
+ id: msg.id,
23
+ ok: false,
24
+ error: {
25
+ code: err.code || 'UNKNOWN_WORKER_ERROR',
26
+ message: err.message || 'Error processing evidence in worker',
27
+ },
28
+ });
29
+ }
30
+ });
31
+ }
32
+ //# sourceMappingURL=evidence-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-worker.js","sourceRoot":"","sources":["../../src/core/evidence-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAsB7C,IAAI,UAAU,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAA0B,EAAE,EAAE;QACtD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;YACpE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACtC,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAA;YAElD,MAAM,MAAM,GAAyB;gBACnC,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,EAAE,EAAE,IAAI;gBACR,IAAI;gBACJ,SAAS;gBACT,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAA;YAED,UAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAM,CAAC,MAAqB,CAAC,CAAC,CAAA;QACxE,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,UAAW,CAAC,WAAW,CAAC;gBACtB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,sBAAsB;oBACxC,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,qCAAqC;iBAC9D;aACsB,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hound-pool.d.ts","sourceRoot":"","sources":["../../src/core/hound-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hound-pool.d.ts","sourceRoot":"","sources":["../../src/core/hound-pool.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@
11
11
  * INVARIANT: activeProcesses <= totalProcesses
12
12
  * activeProcesses reflects OS-level active child processes
13
13
  */
14
+ import { dirname, join } from 'node:path';
15
+ import { fileURLToPath } from 'node:url';
14
16
  import { decodeHoundMessage } from './hound-ipc.js';
15
17
  import { createMockAdapter, createProcessAdapter, DEFAULT_CONSTRAINTS, } from './process-adapter.js';
16
18
  /**
@@ -34,9 +36,13 @@ export class HoundPool {
34
36
  _totalErrors = 0;
35
37
  constructor(config) {
36
38
  this.config = config;
39
+ // Determine default script path relative to this file
40
+ const __filename = fileURLToPath(import.meta.url);
41
+ const __dirname = dirname(__filename);
42
+ const defaultScript = join(__dirname, 'hound-process.js');
37
43
  // Use provided adapter or create real one
38
44
  this.adapter = config.adapter ?? createProcessAdapter();
39
- this.processScriptPath = config.processScriptPath ?? './hound-process.js';
45
+ this.processScriptPath = config.processScriptPath ?? defaultScript;
40
46
  this.onPoolExhausted = config.onPoolExhausted ?? 'drop';
41
47
  this.deferQueueLimit = config.deferQueueLimit ?? 100;
42
48
  // Pre-spawn process slots (lazy spawn)
@@ -1 +1 @@
1
- {"version":3,"file":"hound-pool.js","sourceRoot":"","sources":["../../src/core/hound-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hound-pool.js","sourceRoot":"","sources":["../../src/core/hound-pool.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,8 @@ import { createMessageParser, encodeHoundMessage } from './hound-ipc.js';
14
14
  // ─────────────────────────────────────────────────────────────────────────────
15
15
  // Constants
16
16
  // ─────────────────────────────────────────────────────────────────────────────
17
- /** Processing simulation delay (will be replaced with real logic) */
18
- const PROCESSING_DELAY_MS = 10;
17
+ /** Processing delay in ms overridable via HOUND_PROCESSING_DELAY_MS env for chaos testing */
18
+ const PROCESSING_DELAY_MS = parseInt(process.env['HOUND_PROCESSING_DELAY_MS'] ?? '10', 10);
19
19
  // ─────────────────────────────────────────────────────────────────────────────
20
20
  // State
21
21
  // ─────────────────────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"hound-process.js","sourceRoot":"","sources":["../../src/core/hound-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hound-process.js","sourceRoot":"","sources":["../../src/core/hound-process.ts"],"names":[],"mappings":"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"}
@@ -78,6 +78,11 @@ export declare class Quarantine {
78
78
  * Get current quarantine statistics.
79
79
  */
80
80
  get stats(): QuarantineStats;
81
+ /**
82
+ * Get the configured maximum bytes limit.
83
+ * Used by Agent to pass capacity context to Watcher.
84
+ */
85
+ get maxBytes(): number;
81
86
  /**
82
87
  * Evict lowest priority evidence.
83
88
  */
@@ -1 +1 @@
1
- {"version":3,"file":"quarantine.d.ts","sourceRoot":"","sources":["../../src/core/quarantine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,iCAAiC;AACjC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,GAAG,WAAW,CAAA;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B;AAED,4BAA4B;AAC5B,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;CACrC;AAED,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,GAAG,eAAe,CAAA;IACpC,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,cAAc,CAAA;CAC3B;AAUD;;;GAGG;AACH,qBAAa,UAAU;IAKnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IALpB,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,UAAU,CAAI;gBAGZ,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,UAAU;IAGhC;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,YAAY;IAqB9C;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAI7C;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI/B;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAoB1D;;;OAGG;IACH,KAAK,IAAI,oBAAoB,EAAE;IAgB/B;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,IAAI;IAqC7F;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,aAAa;IAwBzE;;OAEG;IACH,IAAI,KAAK,IAAI,eAAe,CAiB3B;IAED;;OAEG;IACH,OAAO,CAAC,KAAK;IAoBb;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,aAAa;CAGtB"}
1
+ {"version":3,"file":"quarantine.d.ts","sourceRoot":"","sources":["../../src/core/quarantine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,iCAAiC;AACjC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,GAAG,WAAW,CAAA;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B;AAED,4BAA4B;AAC5B,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;CACrC;AAED,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,GAAG,eAAe,CAAA;IACpC,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,cAAc,CAAA;CAC3B;AAUD;;;GAGG;AACH,qBAAa,UAAU;IAKnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IALpB,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,UAAU,CAAI;gBAGZ,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,UAAU;IAGhC;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,YAAY;IAqB9C;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAI7C;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI/B;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAoB1D;;;OAGG;IACH,KAAK,IAAI,oBAAoB,EAAE;IAgB/B;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,IAAI;IAqC7F;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,aAAa;IAwBzE;;OAEG;IACH,IAAI,KAAK,IAAI,eAAe,CAiB3B;IAED;;;OAGG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,OAAO,CAAC,KAAK;IAoBb;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,aAAa;CAGtB"}
@@ -176,6 +176,13 @@ export class Quarantine {
176
176
  bySeverity,
177
177
  };
178
178
  }
179
+ /**
180
+ * Get the configured maximum bytes limit.
181
+ * Used by Agent to pass capacity context to Watcher.
182
+ */
183
+ get maxBytes() {
184
+ return this.config.maxBytes;
185
+ }
179
186
  /**
180
187
  * Evict lowest priority evidence.
181
188
  */
@@ -1 +1 @@
1
- {"version":3,"file":"quarantine.js","sourceRoot":"","sources":["../../src/core/quarantine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quarantine.js","sourceRoot":"","sources":["../../src/core/quarantine.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4BH,6CAA6C;AAC7C,MAAM,aAAa,GAA6B;IAC9C,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,CAAC;CACZ,CAAA;AAED;;;GAGG;AACH,MAAM,OAAO,UAAU;IAKX;IACA;IALF,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAA;IACzC,UAAU,GAAG,CAAC,CAAA;IAEtB,YACU,MAAwB,EACxB,UAAsB;QADtB,WAAM,GAAN,MAAM,CAAkB;QACxB,eAAU,GAAV,UAAU,CAAY;IAC7B,CAAC;IAEJ;;;OAGG;IACH,MAAM,CAAC,QAAwB;QAC7B,kBAAkB;QAClB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO;gBACL,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAE;aAC9C,CAAA;QACH,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC5C,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAA;QAEhC,2BAA2B;QAC3B,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACf,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAA;IAC1C,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAClC,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,SAAiB;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAA;QACb,CAAC;QAED,yDAAyD;QACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;QAE1B,8BAA8B;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAC5D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAE9B,oBAAoB;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC5B,IAAI,CAAC,UAAU,IAAI,IAAI,CAAA;QAEvB,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,MAAM,OAAO,GAA2B,EAAE,CAAA;QAE1C,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAC5D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC9B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtB,CAAC;QAED,cAAc;QACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAClB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;QAEnB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAiB,EAAE,MAA+C;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;QAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;QAE1B,uCAAuC;QACvC,MAAM,MAAM,GAAgB;YAC1B,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACjE,MAAM;YACN,KAAK,EAAE;gBACL,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,wCAAwC;gBAChE,MAAM,EAAE,SAAS,EAAE,qCAAqC;gBACxD,SAAS,EAAE,QAAQ,CAAC,QAAQ;gBAC5B,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;aAClB;YACD,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;SAC3B,CAAA;QAED,uDAAuD;QACvD,IAAI,CAAC;YACH,QAAQ,CAAC,QAAQ,EAAE,CAAA,CAAC,uCAAuC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC5B,IAAI,CAAC,UAAU,IAAI,IAAI,CAAA;QAEvB,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,YAAoB,EAAE,WAA2B;QACvD,iCAAiC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QAEjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,0CAA0C;YAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YAC7C,OAAO;gBACL,MAAM,EAAE,eAAe;gBACvB,QAAQ,EAAE,YAAY,CAAC,MAAM,KAAK,UAAU;aAC7C,CAAA;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAE7C,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,WAAW;YACX,QAAQ,EAAE,YAAY,CAAC,MAAM,KAAK,UAAU;YAC5C,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,WAAW,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC;SACjF,CAAA;IACH,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,MAAM,UAAU,GAA6B;YAC3C,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,CAAC;SACZ,CAAA;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAA;QACjC,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACtB,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,UAAU;SACX,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;IAC7B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,KAAa;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAE7C,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;YAC1B,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;YAEpC,uCAAuC;YACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAC5D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAE9B,oBAAoB;YACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC5B,IAAI,CAAC,UAAU,IAAI,IAAI,CAAA;YAEvB,mEAAmE;YACnE,mFAAmF;QACrF,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,KAAa;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;QAE3C,2CAA2C;QAC3C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAChB,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;YAC1E,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,YAAY,CAAA;YACrB,CAAC;YACD,8BAA8B;YAC9B,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAA;QAChC,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;IACzF,CAAC;CACF"}
@@ -57,6 +57,8 @@ export interface RateLimiterStats {
57
57
  totalChecks: number;
58
58
  /** Total rejections */
59
59
  totalRejections: number;
60
+ /** Total capacity evictions */
61
+ totalEvictions: number;
60
62
  }
61
63
  /**
62
64
  * Sliding window rate limiter implementation.
@@ -77,6 +79,7 @@ export declare class RateLimiter implements IRateLimiter {
77
79
  private readonly config;
78
80
  private totalChecks;
79
81
  private totalRejections;
82
+ private totalEvictions;
80
83
  constructor(config: RateLimitConfig);
81
84
  check(source: string): RateLimitResult;
82
85
  reset(source: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/core/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IACE,OAAO,EAAE,KAAK,CAAA;IACd,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAcL;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAA;IAEtC;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAE3B;;;;OAIG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,uBAAuB;IACvB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,eAAe,CAAI;gBAEf,MAAM,EAAE,eAAe;IAmBnC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;IA4EtC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3B,OAAO,IAAI,MAAM;IAsBjB,IAAI,KAAK,IAAI,gBAAgB,CAgB5B;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,CAEvE"}
1
+ {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/core/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IACE,OAAO,EAAE,KAAK,CAAA;IACd,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAcL;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAA;IAEtC;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAE3B;;;;OAIG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,uBAAuB;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,cAAc,CAAI;gBAEd,MAAM,EAAE,eAAe;IAuBnC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;IA0FtC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3B,OAAO,IAAI,MAAM;IAsBjB,IAAI,KAAK,IAAI,gBAAgB,CAiB5B;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,CAEvE"}
@@ -23,6 +23,7 @@ export class RateLimiter {
23
23
  config;
24
24
  totalChecks = 0;
25
25
  totalRejections = 0;
26
+ totalEvictions = 0;
26
27
  constructor(config) {
27
28
  // Validate config
28
29
  if (config.windowMs <= 0) {
@@ -34,10 +35,14 @@ export class RateLimiter {
34
35
  if (config.blockDurationMs < 0) {
35
36
  throw new Error('blockDurationMs cannot be negative');
36
37
  }
38
+ if (config.maxSources !== undefined && config.maxSources <= 0) {
39
+ throw new Error('maxSources must be positive');
40
+ }
37
41
  this.config = {
38
42
  windowMs: config.windowMs,
39
43
  maxRequests: config.maxRequests,
40
44
  blockDurationMs: config.blockDurationMs,
45
+ maxSources: config.maxSources ?? 100_000,
41
46
  };
42
47
  }
43
48
  check(source) {
@@ -45,7 +50,21 @@ export class RateLimiter {
45
50
  const now = Date.now();
46
51
  // Get or create source entry
47
52
  let entry = this.sources.get(source);
48
- if (!entry) {
53
+ if (entry) {
54
+ // LRU Eviction Logic: Push to the back of the Map (youngest)
55
+ this.sources.delete(source);
56
+ this.sources.set(source, entry);
57
+ }
58
+ else {
59
+ // Capacity Bound check
60
+ if (this.sources.size >= this.config.maxSources) {
61
+ // Evict oldest (O(1)) from front of Map
62
+ const oldestSource = this.sources.keys().next().value;
63
+ if (oldestSource !== undefined) {
64
+ this.sources.delete(oldestSource);
65
+ this.totalEvictions++;
66
+ }
67
+ }
49
68
  entry = {
50
69
  timestamps: [],
51
70
  blockedUntil: null,
@@ -140,6 +159,7 @@ export class RateLimiter {
140
159
  blocked,
141
160
  totalChecks: this.totalChecks,
142
161
  totalRejections: this.totalRejections,
162
+ totalEvictions: this.totalEvictions,
143
163
  };
144
164
  }
145
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/core/rate-limiter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/core/rate-limiter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tracehound.d.ts","sourceRoot":"","sources":["../../src/core/tracehound.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAmB,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACxF,OAAO,EAA6B,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAM3D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IAED;;OAEG;IACH,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;IAED;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,uBAAuB,CAAC,EAAE,MAAM,CAAA;KACjC,CAAA;IAED;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,6BAA6B;IAC7B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,uBAAuB;IACvB,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAA;IAClC,oCAAoC;IACpC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAA;IAC1B,sBAAsB;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,+BAA+B;IAC/B,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAA;IAC5C,qBAAqB;IACrB,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAA;CAC/B;AAgFD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,WAAW,CAE7E"}
1
+ {"version":3,"file":"tracehound.d.ts","sourceRoot":"","sources":["../../src/core/tracehound.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAmB,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACxF,OAAO,EAA6B,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAM3D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IAED;;OAEG;IACH,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;IAED;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,uBAAuB,CAAC,EAAE,MAAM,CAAA;KACjC,CAAA;IAED;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,6BAA6B;IAC7B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,uBAAuB;IACvB,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAA;IAClC,oCAAoC;IACpC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAA;IAC1B,sBAAsB;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,+BAA+B;IAC/B,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAA;IAC5C,qBAAqB;IACrB,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAA;CAC/B;AAiHD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,WAAW,CAE7E"}
@@ -56,14 +56,44 @@ class Tracehound {
56
56
  quarantineHighWatermark: options.watcher?.quarantineHighWatermark ?? 0.8,
57
57
  });
58
58
  this.evidenceFactory = new EvidenceFactory();
59
- // Create agent
60
- this.agent = createAgent({ maxPayloadSize: options.maxPayloadSize ?? 1_000_000 }, this.quarantine, this.rateLimiter, this.evidenceFactory);
61
- // Create HoundPool
59
+ // Create HoundPool first — Agent depends on it for auto-activation
62
60
  const poolConfig = {
63
61
  ...DEFAULT_POOL_CONFIG,
64
62
  ...options.houndPool,
65
63
  };
66
64
  this.houndPool = createHoundPool(poolConfig);
65
+ // Create agent — houndPool, watcher, and notifications are all wired in.
66
+ // Quarantined evidence is forwarded to the pool, and observability events
67
+ // are emitted automatically without any user configuration.
68
+ this.agent = createAgent({ maxPayloadSize: options.maxPayloadSize ?? 1_000_000 }, this.quarantine, this.rateLimiter, this.evidenceFactory, this.houndPool, this.watcher, this.notifications);
69
+ // Wire HoundPool results back into Watcher and NotificationEmitter.
70
+ // timeout/error outcomes are security-relevant events that SecOps must see.
71
+ this.houndPool.onResult((result) => {
72
+ if (result.status === 'timeout') {
73
+ this.watcher.alert({
74
+ type: 'hound_timeout',
75
+ severity: 'warning',
76
+ message: `Hound worker timed out after ${result.durationMs}ms`,
77
+ context: { signature: result.signature, processId: result.processId },
78
+ });
79
+ this.notifications.emit('system.panic', {
80
+ level: 'warning',
81
+ reason: `hound_timeout: signature=${result.signature}`,
82
+ });
83
+ }
84
+ else if (result.status === 'error') {
85
+ this.watcher.alert({
86
+ type: 'system_overload',
87
+ severity: 'critical',
88
+ message: `Hound worker error: ${result.error ?? 'unknown'}`,
89
+ context: { signature: result.signature, processId: result.processId },
90
+ });
91
+ this.notifications.emit('system.panic', {
92
+ level: 'critical',
93
+ reason: `hound_error: ${result.error ?? 'unknown'}`,
94
+ });
95
+ }
96
+ });
67
97
  }
68
98
  }
69
99
  // ─────────────────────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"tracehound.js","sourceRoot":"","sources":["../../src/core/tracehound.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAe,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAyB,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAyC,MAAM,iBAAiB,CAAA;AACxF,OAAO,EAAE,yBAAyB,EAA6B,MAAM,2BAA2B,CAAA;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAqB,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,aAAa,EAAiB,MAAM,cAAc,CAAA;AAoE3D,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,mBAAmB,GAAoB;IAC3C,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,MAAM;IACf,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,OAAO;IACxB,eAAe,EAAE,GAAG;CACrB,CAAA;AAED;;GAEG;AACH,MAAM,UAAU;IACL,KAAK,CAAQ;IACb,UAAU,CAAY;IACtB,WAAW,CAAc;IACzB,OAAO,CAAU;IACjB,UAAU,CAAY;IACtB,aAAa,CAAsB;IACnC,SAAS,CAAY;IAEb,eAAe,CAAkB;IAElD,YAAY,UAA6B,EAAE;QACzC,wBAAwB;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAA;QAClC,IAAI,CAAC,aAAa,GAAG,yBAAyB,EAAE,CAAA;QAEhD,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAC9B;YACE,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,IAAI,MAAM;YAChD,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,IAAI,WAAW;YACrD,cAAc,EAAE,UAAU;SAC3B,EACD,IAAI,CAAC,UAAU,CAChB,CAAA;QAED,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;YACnC,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,IAAI,MAAM;YAC/C,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,WAAW,IAAI,GAAG;YAClD,eAAe,EAAE,OAAO,CAAC,SAAS,EAAE,eAAe,IAAI,OAAO;SAC/D,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;YAC3B,kBAAkB,EAAE,OAAO,CAAC,OAAO,EAAE,kBAAkB,IAAI,EAAE;YAC7D,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,aAAa,IAAI,MAAM;YACvD,uBAAuB,EAAE,OAAO,CAAC,OAAO,EAAE,uBAAuB,IAAI,GAAG;SACzE,CAAC,CAAA;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAE5C,eAAe;QACf,IAAI,CAAC,KAAK,GAAG,WAAW,CACtB,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,SAAS,EAAE,EACvD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,eAAe,CACrB,CAAA;QAED,mBAAmB;QACnB,MAAM,UAAU,GAAoB;YAClC,GAAG,mBAAmB;YACtB,GAAG,OAAO,CAAC,SAAS;SACrB,CAAA;QACD,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA;IAC9C,CAAC;CACF;AAED,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAA6B,EAAE;IAC9D,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC"}
1
+ {"version":3,"file":"tracehound.js","sourceRoot":"","sources":["../../src/core/tracehound.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  */
6
6
  export type { AlertConfig, AuditConfig, ColdStorageConfig, ErrorState, EvacuateRecord, EvidenceHandle, GenerateSignatureOptions, HoundConfig, InterceptResult, JsonPrimitive, JsonSerializable, NeutralizationRecord, PurgeRecord, QuarantineConfig, RateLimitConfig, RuntimeConfig, Scent, SchedulerConfig, Severity, Threat, ThreatCategory, ThreatInput, ThreatSignal, TracehoundConfig, TracehoundError, } from './types/index.js';
7
7
  export { DEFAULT_CONFIG, mergeWithDefaults } from './types/index.js';
8
- export { createError, Errors } from './types/index.js';
8
+ export { Errors, createError } from './types/index.js';
9
9
  export { isClean, isError, isIgnored, isQuarantined, isRateLimited } from './types/index.js';
10
10
  export { createThreatInput } from './types/index.js';
11
11
  export { compareSignatures, generateSignature, validateSignature } from './types/index.js';
@@ -13,41 +13,41 @@ export { AuditChain, GENESIS_HASH } from './core/audit-chain.js';
13
13
  export { Evidence } from './core/evidence.js';
14
14
  export { Quarantine } from './core/quarantine.js';
15
15
  export type { InsertResult, QuarantineStats } from './core/quarantine.js';
16
- export { createRateLimiter, RateLimiter } from './core/rate-limiter.js';
17
- export type { IRateLimiter, RateLimiterStats, RateLimitResult } from './core/rate-limiter.js';
18
- export { createEvidenceFactory, EvidenceFactory } from './core/evidence-factory.js';
16
+ export { RateLimiter, createRateLimiter } from './core/rate-limiter.js';
17
+ export type { IRateLimiter, RateLimitResult, RateLimiterStats } from './core/rate-limiter.js';
18
+ export { EvidenceFactory, createEvidenceFactory } from './core/evidence-factory.js';
19
19
  export type { EvidenceCreationResult, EvidenceFactoryOptions, IEvidenceFactory, } from './core/evidence-factory.js';
20
20
  export { Agent, createAgent } from './core/agent.js';
21
21
  export type { AgentConfig, AgentStats, IAgent } from './core/agent.js';
22
- export { createHoundPool, createMockAdapter, HoundPool } from './core/hound-pool.js';
22
+ export { HoundPool, createHoundPool, createMockAdapter } from './core/hound-pool.js';
23
23
  export type { HoundPoolConfig, HoundPoolStats, HoundResult, IHoundPool, PoolExhaustedAction, } from './core/hound-pool.js';
24
24
  export type { HoundProcessConstraints } from './core/process-adapter.js';
25
- export { createScheduler, Scheduler } from './core/scheduler.js';
25
+ export { Scheduler, createScheduler } from './core/scheduler.js';
26
26
  export type { BusyChecker, IScheduler, ScheduledTask, SchedulerStats, TickSchedulerConfig, } from './core/scheduler.js';
27
- export { createWatcher, Watcher } from './core/watcher.js';
27
+ export { Watcher, createWatcher } from './core/watcher.js';
28
28
  export type { Alert, AlertSeverity, AlertType, IWatcher, ThreatStats, WatcherConfig, WatcherQuarantineStats, WatcherSnapshot, } from './core/watcher.js';
29
29
  export { hash, hashBuffer } from './utils/hash.js';
30
30
  export { generateSecureId, isValidSecureId } from './utils/id.js';
31
31
  export { serialize } from './utils/serialize.js';
32
- export { AsyncGzipCodec, createAsyncColdPathCodec, createColdPathCodec, createHotPathCodec, decodeWithIntegrityAsync, encodeWithIntegrityAsync, GzipCodec, } from './utils/binary-codec.js';
32
+ export { AsyncGzipCodec, GzipCodec, createAsyncColdPathCodec, createColdPathCodec, createHotPathCodec, decodeWithIntegrity, decodeWithIntegrityAsync, encodeWithIntegrity, encodeWithIntegrityAsync, verify, } from './utils/binary-codec.js';
33
33
  export type { AsyncColdPathCodec, AsyncHotPathCodec, CodecStats, ColdPathCodec, HotPathCodec, } from './utils/binary-codec.js';
34
34
  export { constantTimeBufferEqual, constantTimeEqual } from './utils/compare.js';
35
35
  export { encodePayload, estimatePayloadSize } from './utils/encode.js';
36
36
  export type { EncodeResult } from './utils/encode.js';
37
- export { createMemoryColdStorage, MemoryColdStorage } from './core/cold-storage.js';
37
+ export { MemoryColdStorage, createMemoryColdStorage } from './core/cold-storage.js';
38
38
  export type { ColdStorageReadResult, ColdStorageWriteResult, IColdStorageAdapter, } from './core/cold-storage.js';
39
- export { createS3ColdStorage, S3ColdStorage } from './core/s3-cold-storage.js';
39
+ export { S3ColdStorage, createS3ColdStorage } from './core/s3-cold-storage.js';
40
40
  export type { S3ColdStorageConfig, S3LikeClient } from './core/s3-cold-storage.js';
41
41
  export { DEFAULT_TRUST_BOUNDARY, isClusterUntrusted, mergeTrustBoundary, shouldVerifyDetector, validateTrustBoundary, } from './core/trust-boundary.js';
42
42
  export type { ClusterBoundaryConfig, ClusterTrustLevel, ColdStorageBoundaryConfig, ColdStorageTrustLevel, DetectorBoundaryConfig, DetectorTrustLevel, TrustBoundaryConfig, } from './core/trust-boundary.js';
43
- export { createLaneQueue, DEFAULT_LANE_CONFIG, LaneQueue } from './core/lane-queue.js';
43
+ export { DEFAULT_LANE_CONFIG, LaneQueue, createLaneQueue } from './core/lane-queue.js';
44
44
  export type { Alert as LaneAlert, LaneConfig, LaneQueueConfig, LaneStats, } from './core/lane-queue.js';
45
- export { createFailSafe, DEFAULT_FAIL_SAFE_CONFIG, FailSafe } from './core/fail-safe.js';
45
+ export { DEFAULT_FAIL_SAFE_CONFIG, FailSafe, createFailSafe } from './core/fail-safe.js';
46
46
  export type { FailSafeConfig, PanicCallback, PanicEvent, PanicLevel, PanicReason, ThresholdConfig, } from './core/fail-safe.js';
47
47
  export { createTracehound } from './core/tracehound.js';
48
48
  export type { ITracehound, TracehoundOptions } from './core/tracehound.js';
49
- export { createNotificationEmitter, NotificationEmitter } from './core/notification-emitter.js';
49
+ export { NotificationEmitter, createNotificationEmitter } from './core/notification-emitter.js';
50
50
  export type { EventCallback, EventType, EvidenceEvictedPayload, EvidenceQuarantinedPayload, INotificationEmitter, LicenseExpiredPayload, LicenseValidatedPayload, NotificationEmitterStats, RateLimitExceededPayload, SystemPanicPayload, ThreatDetectedPayload, TracehoundEvent, WebhookConfig, } from './core/notification-emitter.js';
51
- export { createSecurityState, SecurityState } from './core/security-state.js';
51
+ export { SecurityState, createSecurityState } from './core/security-state.js';
52
52
  export type { ISecurityState, LicenseState, QuarantineStateStats, RateLimitStats, SecurityHistoryEntry, SecuritySnapshot, SecurityStateConfig, SecurityStateStats, } from './core/security-state.js';
53
53
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ export { DEFAULT_CONFIG, mergeWithDefaults } from './types/index.js';
10
10
  // ─────────────────────────────────────────────────────────────────────────────
11
11
  // Errors
12
12
  // ─────────────────────────────────────────────────────────────────────────────
13
- export { createError, Errors } from './types/index.js';
13
+ export { Errors, createError } from './types/index.js';
14
14
  // ─────────────────────────────────────────────────────────────────────────────
15
15
  // Result type guards
16
16
  // ─────────────────────────────────────────────────────────────────────────────
@@ -38,11 +38,11 @@ export { Quarantine } from './core/quarantine.js';
38
38
  // ─────────────────────────────────────────────────────────────────────────────
39
39
  // Core - Rate Limiter
40
40
  // ─────────────────────────────────────────────────────────────────────────────
41
- export { createRateLimiter, RateLimiter } from './core/rate-limiter.js';
41
+ export { RateLimiter, createRateLimiter } from './core/rate-limiter.js';
42
42
  // ─────────────────────────────────────────────────────────────────────────────
43
43
  // Core - Evidence Factory
44
44
  // ─────────────────────────────────────────────────────────────────────────────
45
- export { createEvidenceFactory, EvidenceFactory } from './core/evidence-factory.js';
45
+ export { EvidenceFactory, createEvidenceFactory } from './core/evidence-factory.js';
46
46
  // ─────────────────────────────────────────────────────────────────────────────
47
47
  // Core - Agent
48
48
  // ─────────────────────────────────────────────────────────────────────────────
@@ -50,15 +50,15 @@ export { Agent, createAgent } from './core/agent.js';
50
50
  // ─────────────────────────────────────────────────────────────────────────────
51
51
  // Core - Hound Pool
52
52
  // ─────────────────────────────────────────────────────────────────────────────
53
- export { createHoundPool, createMockAdapter, HoundPool } from './core/hound-pool.js';
53
+ export { HoundPool, createHoundPool, createMockAdapter } from './core/hound-pool.js';
54
54
  // ─────────────────────────────────────────────────────────────────────────────
55
55
  // Core - Scheduler
56
56
  // ─────────────────────────────────────────────────────────────────────────────
57
- export { createScheduler, Scheduler } from './core/scheduler.js';
57
+ export { Scheduler, createScheduler } from './core/scheduler.js';
58
58
  // ─────────────────────────────────────────────────────────────────────────────
59
59
  // Core - Watcher
60
60
  // ─────────────────────────────────────────────────────────────────────────────
61
- export { createWatcher, Watcher } from './core/watcher.js';
61
+ export { Watcher, createWatcher } from './core/watcher.js';
62
62
  // ─────────────────────────────────────────────────────────────────────────────
63
63
  // Utils - Hashing
64
64
  // ─────────────────────────────────────────────────────────────────────────────
@@ -74,17 +74,17 @@ export { serialize } from './utils/serialize.js';
74
74
  // ─────────────────────────────────────────────────────────────────────────────
75
75
  // Utils - Security
76
76
  // ─────────────────────────────────────────────────────────────────────────────
77
- export { AsyncGzipCodec, createAsyncColdPathCodec, createColdPathCodec, createHotPathCodec, decodeWithIntegrityAsync, encodeWithIntegrityAsync, GzipCodec, } from './utils/binary-codec.js';
77
+ export { AsyncGzipCodec, GzipCodec, createAsyncColdPathCodec, createColdPathCodec, createHotPathCodec, decodeWithIntegrity, decodeWithIntegrityAsync, encodeWithIntegrity, encodeWithIntegrityAsync, verify, } from './utils/binary-codec.js';
78
78
  export { constantTimeBufferEqual, constantTimeEqual } from './utils/compare.js';
79
79
  export { encodePayload, estimatePayloadSize } from './utils/encode.js';
80
80
  // ─────────────────────────────────────────────────────────────────────────────
81
81
  // Core - Cold Storage
82
82
  // ─────────────────────────────────────────────────────────────────────────────
83
- export { createMemoryColdStorage, MemoryColdStorage } from './core/cold-storage.js';
83
+ export { MemoryColdStorage, createMemoryColdStorage } from './core/cold-storage.js';
84
84
  // ─────────────────────────────────────────────────────────────────────────────
85
85
  // Core - S3 Cold Storage
86
86
  // ─────────────────────────────────────────────────────────────────────────────
87
- export { createS3ColdStorage, S3ColdStorage } from './core/s3-cold-storage.js';
87
+ export { S3ColdStorage, createS3ColdStorage } from './core/s3-cold-storage.js';
88
88
  // ─────────────────────────────────────────────────────────────────────────────
89
89
  // Core - Trust Boundary
90
90
  // ─────────────────────────────────────────────────────────────────────────────
@@ -92,11 +92,11 @@ export { DEFAULT_TRUST_BOUNDARY, isClusterUntrusted, mergeTrustBoundary, shouldV
92
92
  // ─────────────────────────────────────────────────────────────────────────────
93
93
  // Core - Lane Queue
94
94
  // ─────────────────────────────────────────────────────────────────────────────
95
- export { createLaneQueue, DEFAULT_LANE_CONFIG, LaneQueue } from './core/lane-queue.js';
95
+ export { DEFAULT_LANE_CONFIG, LaneQueue, createLaneQueue } from './core/lane-queue.js';
96
96
  // ─────────────────────────────────────────────────────────────────────────────
97
97
  // Core - Fail-Safe
98
98
  // ─────────────────────────────────────────────────────────────────────────────
99
- export { createFailSafe, DEFAULT_FAIL_SAFE_CONFIG, FailSafe } from './core/fail-safe.js';
99
+ export { DEFAULT_FAIL_SAFE_CONFIG, FailSafe, createFailSafe } from './core/fail-safe.js';
100
100
  // ─────────────────────────────────────────────────────────────────────────────
101
101
  // Core - Tracehound Factory
102
102
  // ─────────────────────────────────────────────────────────────────────────────
@@ -104,9 +104,9 @@ export { createTracehound } from './core/tracehound.js';
104
104
  // ─────────────────────────────────────────────────────────────────────────────
105
105
  // Core - Notification Emitter
106
106
  // ─────────────────────────────────────────────────────────────────────────────
107
- export { createNotificationEmitter, NotificationEmitter } from './core/notification-emitter.js';
107
+ export { NotificationEmitter, createNotificationEmitter } from './core/notification-emitter.js';
108
108
  // ─────────────────────────────────────────────────────────────────────────────
109
109
  // Core - Security State
110
110
  // ─────────────────────────────────────────────────────────────────────────────
111
- export { createSecurityState, SecurityState } from './core/security-state.js';
111
+ export { SecurityState, createSecurityState } from './core/security-state.js';
112
112
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export interface RateLimitConfig {
9
9
  maxRequests: number;
10
10
  /** Block duration after limit exceeded */
11
11
  blockDurationMs: number;
12
+ /** Maximum sources to track before LRU eviction (default: 100,000) */
13
+ maxSources?: number;
12
14
  }
13
15
  /** Quarantine storage configuration */
14
16
  export interface QuarantineConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iCAAiC;AACjC,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,wBAAwB;IACxB,cAAc,EAAE,KAAK,GAAG,UAAU,CAAA;CACnC;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,cAAc,EAAE,MAAM,CAAA;IACtB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,gBAAgB,EAAE,MAAM,CAAA;IACxB,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,CAAA;IACzB,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,CAAA;IACxB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAA;IACjB,4BAA4B;IAC5B,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,0BAA0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,+BAA+B;IAC/B,mBAAmB,EAAE,MAAM,CAAA;CAC5B;AAED,iCAAiC;AACjC,MAAM,WAAW,iBAAiB;IAChC,mBAAmB;IACnB,IAAI,EAAE,KAAK,CAAA;IACX,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,0BAA0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,YAAY,EAAE,OAAO,CAAA;IACrB,gCAAgC;IAChC,WAAW,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAA;CAC5C;AAED,4BAA4B;AAC5B,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,kBAAkB,EAAE,OAAO,CAAA;CAC5B;AAED,wCAAwC;AACxC,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAA;IACtB,6BAA6B;IAC7B,SAAS,EAAE,eAAe,CAAA;IAC1B,0BAA0B;IAC1B,UAAU,EAAE,gBAAgB,CAAA;IAC5B,0BAA0B;IAC1B,KAAK,EAAE,WAAW,CAAA;IAClB,yBAAyB;IACzB,SAAS,EAAE,eAAe,CAAA;IAC1B,qBAAqB;IACrB,MAAM,EAAE,WAAW,CAAA;IACnB,qBAAqB;IACrB,KAAK,EAAE,WAAW,CAAA;IAClB,uBAAuB;IACvB,OAAO,EAAE,aAAa,CAAA;CACvB;AAED,mCAAmC;AACnC,eAAO,MAAM,cAAc,EAAE,gBAmC5B,CAAA;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAYtF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iCAAiC;AACjC,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAA;IACvB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,wBAAwB;IACxB,cAAc,EAAE,KAAK,GAAG,UAAU,CAAA;CACnC;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,cAAc,EAAE,MAAM,CAAA;IACtB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,gBAAgB,EAAE,MAAM,CAAA;IACxB,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,CAAA;IACzB,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,CAAA;IACxB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAA;IACjB,4BAA4B;IAC5B,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,0BAA0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,+BAA+B;IAC/B,mBAAmB,EAAE,MAAM,CAAA;CAC5B;AAED,iCAAiC;AACjC,MAAM,WAAW,iBAAiB;IAChC,mBAAmB;IACnB,IAAI,EAAE,KAAK,CAAA;IACX,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,0BAA0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,YAAY,EAAE,OAAO,CAAA;IACrB,gCAAgC;IAChC,WAAW,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAA;CAC5C;AAED,4BAA4B;AAC5B,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,kBAAkB,EAAE,OAAO,CAAA;CAC5B;AAED,wCAAwC;AACxC,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAA;IACtB,6BAA6B;IAC7B,SAAS,EAAE,eAAe,CAAA;IAC1B,0BAA0B;IAC1B,UAAU,EAAE,gBAAgB,CAAA;IAC5B,0BAA0B;IAC1B,KAAK,EAAE,WAAW,CAAA;IAClB,yBAAyB;IACzB,SAAS,EAAE,eAAe,CAAA;IAC1B,qBAAqB;IACrB,MAAM,EAAE,WAAW,CAAA;IACnB,qBAAqB;IACrB,KAAK,EAAE,WAAW,CAAA;IAClB,uBAAuB;IACvB,OAAO,EAAE,aAAa,CAAA;CACvB;AAED,mCAAmC;AACnC,eAAO,MAAM,cAAc,EAAE,gBAmC5B,CAAA;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAYtF"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkGH,mCAAmC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C,cAAc,EAAE,SAAS;IACzB,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,GAAG;QAChB,eAAe,EAAE,OAAO;KACzB;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,WAAW;QACrB,cAAc,EAAE,UAAU;KAC3B;IACD,KAAK,EAAE;QACL,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE,CAAC;QACZ,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,KAAK;QACxB,cAAc,EAAE,GAAG;KACpB;IACD,SAAS,EAAE;QACT,gBAAgB,EAAE,MAAM;QACxB,SAAS,EAAE,MAAM;QACjB,UAAU,EAAE,IAAI;KACjB;IACD,MAAM,EAAE;QACN,kBAAkB,EAAE,EAAE;QACtB,QAAQ,EAAE,MAAM;QAChB,mBAAmB,EAAE,CAAC;KACvB;IACD,KAAK,EAAE;QACL,YAAY,EAAE,IAAI;KACnB;IACD,OAAO,EAAE;QACP,kBAAkB,EAAE,IAAI;KACzB;CACF,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAkC;IAClE,OAAO;QACL,GAAG,cAAc;QACjB,GAAG,OAAO;QACV,SAAS,EAAE,EAAE,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE;QAChE,UAAU,EAAE,EAAE,GAAG,cAAc,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE;QACnE,KAAK,EAAE,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE;QACpD,SAAS,EAAE,EAAE,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE;QAChE,MAAM,EAAE,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE;QACvD,KAAK,EAAE,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE;QACpD,OAAO,EAAE,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;KAC3D,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoGH,mCAAmC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C,cAAc,EAAE,SAAS;IACzB,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,GAAG;QAChB,eAAe,EAAE,OAAO;KACzB;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,WAAW;QACrB,cAAc,EAAE,UAAU;KAC3B;IACD,KAAK,EAAE;QACL,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE,CAAC;QACZ,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,KAAK;QACxB,cAAc,EAAE,GAAG;KACpB;IACD,SAAS,EAAE;QACT,gBAAgB,EAAE,MAAM;QACxB,SAAS,EAAE,MAAM;QACjB,UAAU,EAAE,IAAI;KACjB;IACD,MAAM,EAAE;QACN,kBAAkB,EAAE,EAAE;QACtB,QAAQ,EAAE,MAAM;QAChB,mBAAmB,EAAE,CAAC;KACvB;IACD,KAAK,EAAE;QACL,YAAY,EAAE,IAAI;KACnB;IACD,OAAO,EAAE;QACP,kBAAkB,EAAE,IAAI;KACzB;CACF,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAkC;IAClE,OAAO;QACL,GAAG,cAAc;QACjB,GAAG,OAAO;QACV,SAAS,EAAE,EAAE,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE;QAChE,UAAU,EAAE,EAAE,GAAG,cAAc,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE;QACnE,KAAK,EAAE,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE;QACpD,SAAS,EAAE,EAAE,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE;QAChE,MAAM,EAAE,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE;QACvD,KAAK,EAAE,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE;QACpD,OAAO,EAAE,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;KAC3D,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tracehound/core",
3
- "version": "1.4.0",
3
+ "version": "1.4.3",
4
4
  "description": "Deterministic runtime security buffer for high-velocity APIs",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Erdem Arslan <me@erdem.work>",