@sandrobuilds/tracerney 0.9.6

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 (138) hide show
  1. package/README.md +702 -0
  2. package/dist/application/ShieldApplicationService.d.ts +94 -0
  3. package/dist/application/ShieldApplicationService.d.ts.map +1 -0
  4. package/dist/application/ShieldApplicationService.js +223 -0
  5. package/dist/application/ShieldApplicationService.js.map +1 -0
  6. package/dist/application/ShieldBlockError.d.ts +10 -0
  7. package/dist/application/ShieldBlockError.d.ts.map +1 -0
  8. package/dist/application/ShieldBlockError.js +13 -0
  9. package/dist/application/ShieldBlockError.js.map +1 -0
  10. package/dist/application/index.d.ts +9 -0
  11. package/dist/application/index.d.ts.map +1 -0
  12. package/dist/application/index.js +8 -0
  13. package/dist/application/index.js.map +1 -0
  14. package/dist/application/ports/ILLMProvider.d.ts +71 -0
  15. package/dist/application/ports/ILLMProvider.d.ts.map +1 -0
  16. package/dist/application/ports/ILLMProvider.js +15 -0
  17. package/dist/application/ports/ILLMProvider.js.map +1 -0
  18. package/dist/application/ports/IPatternRepository.d.ts +20 -0
  19. package/dist/application/ports/IPatternRepository.d.ts.map +1 -0
  20. package/dist/application/ports/IPatternRepository.js +7 -0
  21. package/dist/application/ports/IPatternRepository.js.map +1 -0
  22. package/dist/application/ports/ISentinel.d.ts +22 -0
  23. package/dist/application/ports/ISentinel.d.ts.map +1 -0
  24. package/dist/application/ports/ISentinel.js +8 -0
  25. package/dist/application/ports/ISentinel.js.map +1 -0
  26. package/dist/application/ports/ITelemetrySink.d.ts +35 -0
  27. package/dist/application/ports/ITelemetrySink.d.ts.map +1 -0
  28. package/dist/application/ports/ITelemetrySink.js +7 -0
  29. package/dist/application/ports/ITelemetrySink.js.map +1 -0
  30. package/dist/application/ports/index.d.ts +10 -0
  31. package/dist/application/ports/index.d.ts.map +1 -0
  32. package/dist/application/ports/index.js +7 -0
  33. package/dist/application/ports/index.js.map +1 -0
  34. package/dist/application/utils/index.d.ts +6 -0
  35. package/dist/application/utils/index.d.ts.map +1 -0
  36. package/dist/application/utils/index.js +6 -0
  37. package/dist/application/utils/index.js.map +1 -0
  38. package/dist/application/utils/jitter.d.ts +10 -0
  39. package/dist/application/utils/jitter.d.ts.map +1 -0
  40. package/dist/application/utils/jitter.js +13 -0
  41. package/dist/application/utils/jitter.js.map +1 -0
  42. package/dist/application/utils/normalizePrompt.d.ts +18 -0
  43. package/dist/application/utils/normalizePrompt.d.ts.map +1 -0
  44. package/dist/application/utils/normalizePrompt.js +36 -0
  45. package/dist/application/utils/normalizePrompt.js.map +1 -0
  46. package/dist/domain/detection/InjectionThreat.d.ts +19 -0
  47. package/dist/domain/detection/InjectionThreat.d.ts.map +1 -0
  48. package/dist/domain/detection/InjectionThreat.js +18 -0
  49. package/dist/domain/detection/InjectionThreat.js.map +1 -0
  50. package/dist/domain/detection/PatternMatcher.d.ts +36 -0
  51. package/dist/domain/detection/PatternMatcher.d.ts.map +1 -0
  52. package/dist/domain/detection/PatternMatcher.js +65 -0
  53. package/dist/domain/detection/PatternMatcher.js.map +1 -0
  54. package/dist/domain/detection/VanguardPattern.d.ts +19 -0
  55. package/dist/domain/detection/VanguardPattern.d.ts.map +1 -0
  56. package/dist/domain/detection/VanguardPattern.js +21 -0
  57. package/dist/domain/detection/VanguardPattern.js.map +1 -0
  58. package/dist/domain/detection/index.d.ts +11 -0
  59. package/dist/domain/detection/index.d.ts.map +1 -0
  60. package/dist/domain/detection/index.js +8 -0
  61. package/dist/domain/detection/index.js.map +1 -0
  62. package/dist/domain/events/SecurityEvent.d.ts +30 -0
  63. package/dist/domain/events/SecurityEvent.d.ts.map +1 -0
  64. package/dist/domain/events/SecurityEvent.js +21 -0
  65. package/dist/domain/events/SecurityEvent.js.map +1 -0
  66. package/dist/domain/events/SecurityEventType.d.ts +13 -0
  67. package/dist/domain/events/SecurityEventType.d.ts.map +1 -0
  68. package/dist/domain/events/SecurityEventType.js +15 -0
  69. package/dist/domain/events/SecurityEventType.js.map +1 -0
  70. package/dist/domain/events/ThreatSeverity.d.ts +13 -0
  71. package/dist/domain/events/ThreatSeverity.d.ts.map +1 -0
  72. package/dist/domain/events/ThreatSeverity.js +15 -0
  73. package/dist/domain/events/ThreatSeverity.js.map +1 -0
  74. package/dist/domain/events/index.d.ts +11 -0
  75. package/dist/domain/events/index.d.ts.map +1 -0
  76. package/dist/domain/events/index.js +8 -0
  77. package/dist/domain/events/index.js.map +1 -0
  78. package/dist/domain/guard/ToolGuard.d.ts +35 -0
  79. package/dist/domain/guard/ToolGuard.d.ts.map +1 -0
  80. package/dist/domain/guard/ToolGuard.js +49 -0
  81. package/dist/domain/guard/ToolGuard.js.map +1 -0
  82. package/dist/domain/guard/ToolPolicy.d.ts +16 -0
  83. package/dist/domain/guard/ToolPolicy.d.ts.map +1 -0
  84. package/dist/domain/guard/ToolPolicy.js +19 -0
  85. package/dist/domain/guard/ToolPolicy.js.map +1 -0
  86. package/dist/domain/guard/ToolViolation.d.ts +14 -0
  87. package/dist/domain/guard/ToolViolation.d.ts.map +1 -0
  88. package/dist/domain/guard/ToolViolation.js +15 -0
  89. package/dist/domain/guard/ToolViolation.js.map +1 -0
  90. package/dist/domain/guard/index.d.ts +11 -0
  91. package/dist/domain/guard/index.d.ts.map +1 -0
  92. package/dist/domain/guard/index.js +8 -0
  93. package/dist/domain/guard/index.js.map +1 -0
  94. package/dist/index.d.ts +168 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +173 -0
  97. package/dist/index.js.map +1 -0
  98. package/dist/infrastructure/llm/OpenRouterProvider.d.ts +32 -0
  99. package/dist/infrastructure/llm/OpenRouterProvider.d.ts.map +1 -0
  100. package/dist/infrastructure/llm/OpenRouterProvider.js +119 -0
  101. package/dist/infrastructure/llm/OpenRouterProvider.js.map +1 -0
  102. package/dist/infrastructure/llm/index.d.ts +7 -0
  103. package/dist/infrastructure/llm/index.d.ts.map +1 -0
  104. package/dist/infrastructure/llm/index.js +6 -0
  105. package/dist/infrastructure/llm/index.js.map +1 -0
  106. package/dist/infrastructure/patterns/BundledPatternRepository.d.ts +16 -0
  107. package/dist/infrastructure/patterns/BundledPatternRepository.d.ts.map +1 -0
  108. package/dist/infrastructure/patterns/BundledPatternRepository.js +19 -0
  109. package/dist/infrastructure/patterns/BundledPatternRepository.js.map +1 -0
  110. package/dist/infrastructure/patterns/RemotePatternRepository.d.ts +77 -0
  111. package/dist/infrastructure/patterns/RemotePatternRepository.d.ts.map +1 -0
  112. package/dist/infrastructure/patterns/RemotePatternRepository.js +176 -0
  113. package/dist/infrastructure/patterns/RemotePatternRepository.js.map +1 -0
  114. package/dist/infrastructure/patterns/bundled-patterns.d.ts +9 -0
  115. package/dist/infrastructure/patterns/bundled-patterns.d.ts.map +1 -0
  116. package/dist/infrastructure/patterns/bundled-patterns.js +2082 -0
  117. package/dist/infrastructure/patterns/bundled-patterns.js.map +1 -0
  118. package/dist/infrastructure/patterns/index.d.ts +9 -0
  119. package/dist/infrastructure/patterns/index.d.ts.map +1 -0
  120. package/dist/infrastructure/patterns/index.js +8 -0
  121. package/dist/infrastructure/patterns/index.js.map +1 -0
  122. package/dist/infrastructure/sentinel/LLMSentinel.d.ts +48 -0
  123. package/dist/infrastructure/sentinel/LLMSentinel.d.ts.map +1 -0
  124. package/dist/infrastructure/sentinel/LLMSentinel.js +142 -0
  125. package/dist/infrastructure/sentinel/LLMSentinel.js.map +1 -0
  126. package/dist/infrastructure/telemetry/HttpShadowLogSink.d.ts +30 -0
  127. package/dist/infrastructure/telemetry/HttpShadowLogSink.d.ts.map +1 -0
  128. package/dist/infrastructure/telemetry/HttpShadowLogSink.js +40 -0
  129. package/dist/infrastructure/telemetry/HttpShadowLogSink.js.map +1 -0
  130. package/dist/infrastructure/telemetry/HttpSignalSink.d.ts +51 -0
  131. package/dist/infrastructure/telemetry/HttpSignalSink.d.ts.map +1 -0
  132. package/dist/infrastructure/telemetry/HttpSignalSink.js +134 -0
  133. package/dist/infrastructure/telemetry/HttpSignalSink.js.map +1 -0
  134. package/dist/infrastructure/telemetry/index.d.ts +9 -0
  135. package/dist/infrastructure/telemetry/index.d.ts.map +1 -0
  136. package/dist/infrastructure/telemetry/index.js +7 -0
  137. package/dist/infrastructure/telemetry/index.js.map +1 -0
  138. package/package.json +44 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundled-patterns.js","sourceRoot":"","sources":["../../../src/infrastructure/patterns/bundled-patterns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Patterns Infrastructure
3
+ * Barrel export
4
+ */
5
+ export { BUNDLED_PATTERNS, BUNDLED_MANIFEST_VERSION } from "./bundled-patterns";
6
+ export { BundledPatternRepository } from "./BundledPatternRepository";
7
+ export { RemotePatternRepository } from "./RemotePatternRepository";
8
+ export type { RemotePatternRepositoryConfig, RemoteManifestDefinition } from "./RemotePatternRepository";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/patterns/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Patterns Infrastructure
3
+ * Barrel export
4
+ */
5
+ export { BUNDLED_PATTERNS, BUNDLED_MANIFEST_VERSION } from './bundled-patterns.js';
6
+ export { BundledPatternRepository } from './BundledPatternRepository.js';
7
+ export { RemotePatternRepository } from './RemotePatternRepository.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/patterns/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * LLMSentinel - Layer 2 detection via backend
3
+ *
4
+ * When Layer 1 (regex) doesn't match, this performs a keyword tripwire check.
5
+ * If any suspicion keywords found, sends to BACKEND which calls OpenRouter.
6
+ *
7
+ * Security: API key stays on backend server
8
+ * Cost: Centralized LLM calls (not per-user)
9
+ * Speed: ~500ms round-trip to backend + LLM
10
+ */
11
+ import { ISentinel } from '../../application/ports/ISentinel';
12
+ export interface LLMSentinelOptions {
13
+ suspicionKeywords?: string[];
14
+ }
15
+ export declare class LLMSentinel implements ISentinel {
16
+ private readonly sentinelEndpoint;
17
+ private readonly apiKey?;
18
+ private readonly suspicionKeywords;
19
+ private static readonly DEFAULT_KEYWORDS;
20
+ private static readonly ESCALATION_FRAGMENTS;
21
+ /**
22
+ * @param sentinelEndpoint URL to backend /api/v1/verify-prompt
23
+ * @param apiKey SDK API key (for backend auth)
24
+ * @param options Optional configuration
25
+ */
26
+ constructor(sentinelEndpoint: string, apiKey?: string, options?: LLMSentinelOptions);
27
+ check(prompt: string, requestId?: string): Promise<{
28
+ blocked: boolean;
29
+ confidence: number;
30
+ keywords: string[];
31
+ llmModel?: string;
32
+ latencyMs?: number;
33
+ }>;
34
+ /**
35
+ * Find which suspicion keywords are in the prompt
36
+ */
37
+ private findKeywords;
38
+ /**
39
+ * Count heuristic escalation fragments (Pete's "Wide Net" strategy)
40
+ * 3+ hits triggers Layer 2 escalation even without exact keyword matches
41
+ */
42
+ private countEscalationFragments;
43
+ /**
44
+ * Call backend /api/v1/verify-prompt to check with LLM
45
+ */
46
+ private verifyWithBackend;
47
+ }
48
+ //# sourceMappingURL=LLMSentinel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMSentinel.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/sentinel/LLMSentinel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAG9D,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,qBAAa,WAAY,YAAW,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAW;IAE7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAStC;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAqB1C;IAEF;;;;OAIG;gBAED,gBAAgB,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB;IAO5B,KAAK,CACT,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IA+CF;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAOhC;;OAEG;YACW,iBAAiB;CAyChC"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * LLMSentinel - Layer 2 detection via backend
3
+ *
4
+ * When Layer 1 (regex) doesn't match, this performs a keyword tripwire check.
5
+ * If any suspicion keywords found, sends to BACKEND which calls OpenRouter.
6
+ *
7
+ * Security: API key stays on backend server
8
+ * Cost: Centralized LLM calls (not per-user)
9
+ * Speed: ~500ms round-trip to backend + LLM
10
+ */
11
+ import { randomUUID } from 'crypto';
12
+ export class LLMSentinel {
13
+ /**
14
+ * @param sentinelEndpoint URL to backend /api/v1/verify-prompt
15
+ * @param apiKey SDK API key (for backend auth)
16
+ * @param options Optional configuration
17
+ */
18
+ constructor(sentinelEndpoint, apiKey, options = {}) {
19
+ this.sentinelEndpoint = sentinelEndpoint;
20
+ this.apiKey = apiKey;
21
+ this.suspicionKeywords = options.suspicionKeywords || LLMSentinel.DEFAULT_KEYWORDS;
22
+ }
23
+ async check(prompt, requestId) {
24
+ const startTime = Date.now();
25
+ const id = requestId || randomUUID();
26
+ try {
27
+ // Step 1: Keyword tripwire check (synchronous, local)
28
+ const triggeredKeywords = this.findKeywords(prompt);
29
+ // Step 1.5: Heuristic fragment escalation
30
+ // If 3+ forensic fragments detected, escalate to backend even if keywords are low
31
+ const fragmentHits = this.countEscalationFragments(prompt);
32
+ const shouldEscalate = triggeredKeywords.length > 0 || fragmentHits >= 3;
33
+ // Only call backend if keywords found OR 3+ fragments detected
34
+ if (!shouldEscalate) {
35
+ return {
36
+ blocked: false,
37
+ confidence: 0.05,
38
+ keywords: [],
39
+ latencyMs: Date.now() - startTime,
40
+ };
41
+ }
42
+ // Step 2: Send to backend for LLM verification
43
+ const backendResult = await this.verifyWithBackend(prompt, triggeredKeywords, id);
44
+ const latencyMs = Date.now() - startTime;
45
+ return {
46
+ blocked: backendResult.blocked,
47
+ confidence: backendResult.confidence,
48
+ keywords: triggeredKeywords,
49
+ llmModel: backendResult.model,
50
+ latencyMs,
51
+ };
52
+ }
53
+ catch (error) {
54
+ console.error('[Sentinel] Backend verification failed:', error);
55
+ // On error, fail open (allow through) - don't block on infrastructure failure
56
+ return {
57
+ blocked: false,
58
+ confidence: 0.0,
59
+ keywords: this.findKeywords(prompt),
60
+ latencyMs: Date.now() - startTime,
61
+ };
62
+ }
63
+ }
64
+ /**
65
+ * Find which suspicion keywords are in the prompt
66
+ */
67
+ findKeywords(prompt) {
68
+ const lower = prompt.toLowerCase();
69
+ return this.suspicionKeywords.filter((kw) => lower.includes(kw));
70
+ }
71
+ /**
72
+ * Count heuristic escalation fragments (Pete's "Wide Net" strategy)
73
+ * 3+ hits triggers Layer 2 escalation even without exact keyword matches
74
+ */
75
+ countEscalationFragments(prompt) {
76
+ const lower = prompt.toLowerCase();
77
+ return LLMSentinel.ESCALATION_FRAGMENTS.filter((fragment) => lower.includes(fragment)).length;
78
+ }
79
+ /**
80
+ * Call backend /api/v1/verify-prompt to check with LLM
81
+ */
82
+ async verifyWithBackend(prompt, keywords, requestId) {
83
+ const headers = {
84
+ 'Content-Type': 'application/json',
85
+ };
86
+ if (this.apiKey) {
87
+ headers['Authorization'] = `Bearer ${this.apiKey}`;
88
+ }
89
+ const response = await fetch(this.sentinelEndpoint, {
90
+ method: 'POST',
91
+ headers,
92
+ body: JSON.stringify({
93
+ prompt, // Send full prompt for context
94
+ keywords,
95
+ requestId,
96
+ }),
97
+ });
98
+ if (!response.ok) {
99
+ throw new Error(`Backend sentinel failed: ${response.status} ${response.statusText}`);
100
+ }
101
+ const result = (await response.json());
102
+ return {
103
+ blocked: result.blocked ?? false,
104
+ confidence: result.confidence ?? 0.5,
105
+ model: result.model ?? 'unknown',
106
+ };
107
+ }
108
+ }
109
+ LLMSentinel.DEFAULT_KEYWORDS = [
110
+ 'ignore', 'bypass', 'forget', 'system', 'prompt', 'jailbreak', 'override',
111
+ 'instructions', 'previous', 'secret', 'leak', 'dump', 'disable', 'circumvent',
112
+ 'disregard', 'safety', 'constraints', 'limitations', 'restrictions', 'guidelines',
113
+ 'unrestricted', 'imagine', 'pretend', 'unfiltered', 'execute', 'eval', 'exec',
114
+ 'import', 'require', 'subprocess', 'shell', 'command', 'code', 'exploit',
115
+ 'vulnerability', 'breach', 'attack', 'hacking', 'unauthorized', 'admin',
116
+ 'root', 'sudo', 'developer', 'debug', 'trace', 'internal', 'hidden',
117
+ 'access', 'token', 'credential', 'password', 'apikey', 'secret', 'private',
118
+ ];
119
+ // Heuristic fragments: 3+ hits triggers Layer 2 escalation
120
+ LLMSentinel.ESCALATION_FRAGMENTS = [
121
+ 'system:',
122
+ 'json_format',
123
+ 'as a developer',
124
+ 'forget everything',
125
+ 'ignore all',
126
+ 'bypass this',
127
+ 'my instructions',
128
+ 'new instructions',
129
+ 'act as',
130
+ 'pretend you',
131
+ 'you are now',
132
+ 'without restrictions',
133
+ 'no safety',
134
+ 'reveal your',
135
+ 'show your',
136
+ 'what would you',
137
+ 'how would you',
138
+ 'if you could',
139
+ 'really you are',
140
+ 'deep down you',
141
+ ];
142
+ //# sourceMappingURL=LLMSentinel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMSentinel.js","sourceRoot":"","sources":["../../../src/infrastructure/sentinel/LLMSentinel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * HttpShadowLogSink - Sends shadow log entries to backend
3
+ *
4
+ * Separate from HttpSignalSink.
5
+ * Shadow logs are potential/undetected attacks for admin review.
6
+ * Sent asynchronously, fire-and-forget (non-blocking).
7
+ */
8
+ export interface ShadowLogPayload {
9
+ id: string;
10
+ prompt: string;
11
+ keywords: string[];
12
+ verdict: 'YES' | 'NO' | 'ERROR';
13
+ latencyMs: number;
14
+ model: string;
15
+ timestamp: string;
16
+ }
17
+ export declare class HttpShadowLogSink {
18
+ private endpoint;
19
+ private apiKey?;
20
+ constructor(options: {
21
+ endpoint: string;
22
+ apiKey?: string;
23
+ });
24
+ /**
25
+ * Send shadow log entry to backend
26
+ * Non-blocking, returns immediately
27
+ */
28
+ log(entry: ShadowLogPayload): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=HttpShadowLogSink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpShadowLogSink.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/telemetry/HttpShadowLogSink.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAK1D;;;OAGG;IACG,GAAG,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAwBlD"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * HttpShadowLogSink - Sends shadow log entries to backend
3
+ *
4
+ * Separate from HttpSignalSink.
5
+ * Shadow logs are potential/undetected attacks for admin review.
6
+ * Sent asynchronously, fire-and-forget (non-blocking).
7
+ */
8
+ export class HttpShadowLogSink {
9
+ constructor(options) {
10
+ this.endpoint = options.endpoint;
11
+ this.apiKey = options.apiKey;
12
+ }
13
+ /**
14
+ * Send shadow log entry to backend
15
+ * Non-blocking, returns immediately
16
+ */
17
+ async log(entry) {
18
+ const headers = {
19
+ 'Content-Type': 'application/json',
20
+ };
21
+ if (this.apiKey) {
22
+ headers['Authorization'] = `Bearer ${this.apiKey}`;
23
+ }
24
+ try {
25
+ const response = await fetch(this.endpoint, {
26
+ method: 'POST',
27
+ headers,
28
+ body: JSON.stringify(entry),
29
+ });
30
+ if (!response.ok) {
31
+ console.warn(`[ShadowLogSink] Server returned ${response.status}`);
32
+ }
33
+ }
34
+ catch (error) {
35
+ console.error('[ShadowLogSink] Failed to send:', error);
36
+ // Silently fail - don't block main execution
37
+ }
38
+ }
39
+ }
40
+ //# sourceMappingURL=HttpShadowLogSink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpShadowLogSink.js","sourceRoot":"","sources":["../../../src/infrastructure/telemetry/HttpShadowLogSink.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,MAAM,OAAO,iBAAiB;IAI5B,YAAY,OAA8C;QACxD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,KAAuB;QAC/B,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;SACnC,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC1C,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;aAC5B,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,mCAAmC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACxD,6CAA6C;QAC/C,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Http Signal Sink
3
+ * Adapter: implements ITelemetrySink for HTTP-based telemetry reporting
4
+ * Non-blocking async queue with batching and periodic flush
5
+ */
6
+ import { SecurityEvent } from "../../domain/events/SecurityEvent";
7
+ import { ITelemetrySink, type TelemetrySinkStatus } from "../../application/ports/ITelemetrySink";
8
+ export interface HttpSignalSinkConfig {
9
+ endpoint: string;
10
+ apiKey?: string;
11
+ batchSize?: number;
12
+ flushIntervalMs?: number;
13
+ }
14
+ export declare class HttpSignalSink implements ITelemetrySink {
15
+ private readonly config;
16
+ private readonly sdkVersion;
17
+ private eventQueue;
18
+ private isPosting;
19
+ private failureCount;
20
+ private readonly batchSize;
21
+ private readonly flushIntervalMs;
22
+ private flushTimer?;
23
+ constructor(config: HttpSignalSinkConfig, sdkVersion?: string);
24
+ /**
25
+ * Queue a security event for async delivery.
26
+ * Non-blocking — returns immediately.
27
+ */
28
+ queue(event: SecurityEvent): void;
29
+ /**
30
+ * Start periodic flush timer
31
+ */
32
+ private startFlushTimer;
33
+ /**
34
+ * Flush all queued events.
35
+ * Uses process.nextTick() for non-blocking execution.
36
+ */
37
+ flush(): Promise<void>;
38
+ /**
39
+ * Internal: Send events to the HTTP endpoint
40
+ */
41
+ private send;
42
+ /**
43
+ * Graceful shutdown
44
+ */
45
+ destroy(): void;
46
+ /**
47
+ * Get sink status
48
+ */
49
+ getStatus(): TelemetrySinkStatus;
50
+ }
51
+ //# sourceMappingURL=HttpSignalSink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpSignalSink.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/telemetry/HttpSignalSink.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAElG,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,cAAe,YAAW,cAAc;IASjD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAT7B,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAGjB,MAAM,EAAE,oBAAoB,EAC5B,UAAU,GAAE,MAAgB;IAQ/C;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAWjC;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B5B;;OAEG;YACW,IAAI;IAoClB;;OAEG;IACH,OAAO,IAAI,IAAI;IAYf;;OAEG;IACH,SAAS,IAAI,mBAAmB;CAOjC"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Http Signal Sink
3
+ * Adapter: implements ITelemetrySink for HTTP-based telemetry reporting
4
+ * Non-blocking async queue with batching and periodic flush
5
+ */
6
+ export class HttpSignalSink {
7
+ constructor(config, sdkVersion = "0.2.0") {
8
+ this.config = config;
9
+ this.sdkVersion = sdkVersion;
10
+ this.eventQueue = [];
11
+ this.isPosting = false;
12
+ this.failureCount = 0;
13
+ this.batchSize = config.batchSize ?? 10;
14
+ this.flushIntervalMs = config.flushIntervalMs ?? 5000;
15
+ this.startFlushTimer();
16
+ }
17
+ /**
18
+ * Queue a security event for async delivery.
19
+ * Non-blocking — returns immediately.
20
+ */
21
+ queue(event) {
22
+ this.eventQueue.push(event);
23
+ // Auto-flush if batch is full
24
+ if (this.eventQueue.length >= this.batchSize) {
25
+ this.flush().catch((err) => {
26
+ console.error("[Tracerny] Signal flush failed:", err);
27
+ });
28
+ }
29
+ }
30
+ /**
31
+ * Start periodic flush timer
32
+ */
33
+ startFlushTimer() {
34
+ this.flushTimer = setInterval(() => {
35
+ if (this.eventQueue.length > 0) {
36
+ this.flush().catch((err) => {
37
+ console.error("[Tracerny] Periodic flush failed:", err);
38
+ });
39
+ }
40
+ }, this.flushIntervalMs);
41
+ // Allow process to exit even if timer is running
42
+ if (this.flushTimer.unref) {
43
+ this.flushTimer.unref();
44
+ }
45
+ }
46
+ /**
47
+ * Flush all queued events.
48
+ * Uses process.nextTick() for non-blocking execution.
49
+ */
50
+ async flush() {
51
+ if (this.eventQueue.length === 0 || this.isPosting) {
52
+ return;
53
+ }
54
+ this.isPosting = true;
55
+ const eventsToSend = [...this.eventQueue];
56
+ this.eventQueue = [];
57
+ // Fire and forget via process.nextTick or setTimeout
58
+ if (typeof process !== "undefined" && process.nextTick) {
59
+ process.nextTick(() => {
60
+ this.send(eventsToSend).catch((err) => {
61
+ console.error("[Tracerny] Signal send failed:", err);
62
+ // Restore events on failure
63
+ this.eventQueue.unshift(...eventsToSend);
64
+ });
65
+ });
66
+ }
67
+ else {
68
+ // Fallback for browser environments
69
+ setTimeout(() => {
70
+ this.send(eventsToSend).catch((err) => {
71
+ console.error("[Tracerny] Signal send failed:", err);
72
+ this.eventQueue.unshift(...eventsToSend);
73
+ });
74
+ }, 0);
75
+ }
76
+ // Return immediately — send happens in background
77
+ }
78
+ /**
79
+ * Internal: Send events to the HTTP endpoint
80
+ */
81
+ async send(events) {
82
+ try {
83
+ const payload = {
84
+ events,
85
+ sdkVersion: this.sdkVersion,
86
+ environment: typeof process !== "undefined" && process.env?.NODE_ENV === "production"
87
+ ? "production"
88
+ : "development",
89
+ };
90
+ const response = await fetch(this.config.endpoint, {
91
+ method: "POST",
92
+ headers: {
93
+ "Content-Type": "application/json",
94
+ ...(this.config.apiKey && { Authorization: `Bearer ${this.config.apiKey}` }),
95
+ },
96
+ body: JSON.stringify(payload),
97
+ });
98
+ if (!response.ok) {
99
+ throw new Error(`Signal endpoint returned ${response.status}: ${response.statusText}`);
100
+ }
101
+ // Success - reset failure counter
102
+ this.failureCount = 0;
103
+ }
104
+ catch (error) {
105
+ this.failureCount++;
106
+ throw error;
107
+ }
108
+ finally {
109
+ this.isPosting = false;
110
+ }
111
+ }
112
+ /**
113
+ * Graceful shutdown
114
+ */
115
+ destroy() {
116
+ if (this.flushTimer) {
117
+ clearInterval(this.flushTimer);
118
+ }
119
+ if (this.eventQueue.length > 0) {
120
+ console.warn(`[Tracerny] Destroying HttpSignalSink with ${this.eventQueue.length} unsent events`);
121
+ }
122
+ }
123
+ /**
124
+ * Get sink status
125
+ */
126
+ getStatus() {
127
+ return {
128
+ enabled: true,
129
+ queuedEvents: this.eventQueue.length,
130
+ isPosting: this.isPosting,
131
+ };
132
+ }
133
+ }
134
+ //# sourceMappingURL=HttpSignalSink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpSignalSink.js","sourceRoot":"","sources":["../../../src/infrastructure/telemetry/HttpSignalSink.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Telemetry Infrastructure
3
+ * Barrel export
4
+ */
5
+ export { HttpSignalSink } from "./HttpSignalSink";
6
+ export type { HttpSignalSinkConfig } from "./HttpSignalSink";
7
+ export { HttpShadowLogSink } from "./HttpShadowLogSink";
8
+ export type { ShadowLogPayload } from "./HttpShadowLogSink";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Telemetry Infrastructure
3
+ * Barrel export
4
+ */
5
+ export { HttpSignalSink } from './HttpSignalSink.js';
6
+ export { HttpShadowLogSink } from './HttpShadowLogSink.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}