@vurb/core 3.3.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/core/builder/FluentToolBuilder.d.ts +189 -0
  2. package/dist/core/builder/FluentToolBuilder.d.ts.map +1 -1
  3. package/dist/core/builder/FluentToolBuilder.js +238 -0
  4. package/dist/core/builder/FluentToolBuilder.js.map +1 -1
  5. package/dist/core/middleware/AuditTrail.d.ts +128 -0
  6. package/dist/core/middleware/AuditTrail.d.ts.map +1 -0
  7. package/dist/core/middleware/AuditTrail.js +94 -0
  8. package/dist/core/middleware/AuditTrail.js.map +1 -0
  9. package/dist/core/middleware/InputFirewall.d.ts +95 -0
  10. package/dist/core/middleware/InputFirewall.d.ts.map +1 -0
  11. package/dist/core/middleware/InputFirewall.js +104 -0
  12. package/dist/core/middleware/InputFirewall.js.map +1 -0
  13. package/dist/core/middleware/RateLimiter.d.ts +151 -0
  14. package/dist/core/middleware/RateLimiter.d.ts.map +1 -0
  15. package/dist/core/middleware/RateLimiter.js +121 -0
  16. package/dist/core/middleware/RateLimiter.js.map +1 -0
  17. package/dist/core/middleware/index.d.ts +6 -0
  18. package/dist/core/middleware/index.d.ts.map +1 -1
  19. package/dist/core/middleware/index.js +4 -0
  20. package/dist/core/middleware/index.js.map +1 -1
  21. package/dist/index.d.ts +28 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +15 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/observability/TelemetryEvent.d.ts +61 -1
  26. package/dist/observability/TelemetryEvent.d.ts.map +1 -1
  27. package/dist/presenter/JudgeChain.d.ts +129 -0
  28. package/dist/presenter/JudgeChain.d.ts.map +1 -0
  29. package/dist/presenter/JudgeChain.js +215 -0
  30. package/dist/presenter/JudgeChain.js.map +1 -0
  31. package/dist/presenter/PostProcessor.d.ts.map +1 -1
  32. package/dist/presenter/PostProcessor.js +11 -66
  33. package/dist/presenter/PostProcessor.js.map +1 -1
  34. package/dist/presenter/Presenter.d.ts +175 -37
  35. package/dist/presenter/Presenter.d.ts.map +1 -1
  36. package/dist/presenter/Presenter.js +265 -154
  37. package/dist/presenter/Presenter.js.map +1 -1
  38. package/dist/presenter/PresenterPipeline.d.ts +147 -0
  39. package/dist/presenter/PresenterPipeline.d.ts.map +1 -0
  40. package/dist/presenter/PresenterPipeline.js +271 -0
  41. package/dist/presenter/PresenterPipeline.js.map +1 -0
  42. package/dist/presenter/PromptFirewall.d.ts +160 -0
  43. package/dist/presenter/PromptFirewall.d.ts.map +1 -0
  44. package/dist/presenter/PromptFirewall.js +228 -0
  45. package/dist/presenter/PromptFirewall.js.map +1 -0
  46. package/dist/presenter/ResponseBuilder.d.ts +13 -0
  47. package/dist/presenter/ResponseBuilder.d.ts.map +1 -1
  48. package/dist/presenter/ResponseBuilder.js +28 -1
  49. package/dist/presenter/ResponseBuilder.js.map +1 -1
  50. package/dist/presenter/TelemetryCollector.d.ts +48 -0
  51. package/dist/presenter/TelemetryCollector.d.ts.map +1 -0
  52. package/dist/presenter/TelemetryCollector.js +93 -0
  53. package/dist/presenter/TelemetryCollector.js.map +1 -0
  54. package/dist/presenter/definePresenter.d.ts +112 -0
  55. package/dist/presenter/definePresenter.d.ts.map +1 -1
  56. package/dist/presenter/definePresenter.js +110 -0
  57. package/dist/presenter/definePresenter.js.map +1 -1
  58. package/dist/presenter/index.d.ts +6 -2
  59. package/dist/presenter/index.d.ts.map +1 -1
  60. package/dist/presenter/index.js +5 -1
  61. package/dist/presenter/index.js.map +1 -1
  62. package/dist/presenter/ui.d.ts +31 -8
  63. package/dist/presenter/ui.d.ts.map +1 -1
  64. package/dist/presenter/ui.js +16 -16
  65. package/dist/presenter/ui.js.map +1 -1
  66. package/dist/resource/ResourceBuilder.d.ts +129 -0
  67. package/dist/resource/ResourceBuilder.d.ts.map +1 -0
  68. package/dist/resource/ResourceBuilder.js +93 -0
  69. package/dist/resource/ResourceBuilder.js.map +1 -0
  70. package/dist/resource/ResourceRegistry.d.ts +147 -0
  71. package/dist/resource/ResourceRegistry.d.ts.map +1 -0
  72. package/dist/resource/ResourceRegistry.js +234 -0
  73. package/dist/resource/ResourceRegistry.js.map +1 -0
  74. package/dist/resource/SubscriptionManager.d.ts +67 -0
  75. package/dist/resource/SubscriptionManager.d.ts.map +1 -0
  76. package/dist/resource/SubscriptionManager.js +86 -0
  77. package/dist/resource/SubscriptionManager.js.map +1 -0
  78. package/dist/resource/index.d.ts +13 -0
  79. package/dist/resource/index.d.ts.map +1 -0
  80. package/dist/resource/index.js +13 -0
  81. package/dist/resource/index.js.map +1 -0
  82. package/dist/server/ServerAttachment.d.ts +26 -0
  83. package/dist/server/ServerAttachment.d.ts.map +1 -1
  84. package/dist/server/ServerAttachment.js +70 -2
  85. package/dist/server/ServerAttachment.js.map +1 -1
  86. package/package.json +1 -1
@@ -0,0 +1,121 @@
1
+ import { toolError } from '../response.js';
2
+ /**
3
+ * In-memory sliding window rate limit store.
4
+ *
5
+ * ⚠️ **Single-process only.** Each process maintains its own counters.
6
+ * In multi-instance deployments (Kubernetes, PM2 cluster, serverless),
7
+ * each instance has an independent counter — an attacker effectively
8
+ * gets `max * instanceCount` requests. For distributed rate limiting,
9
+ * implement {@link RateLimitStore} with a shared backend (Redis, Valkey).
10
+ *
11
+ * Automatic cleanup runs every `windowMs` to prune expired entries.
12
+ */
13
+ export class InMemoryStore {
14
+ _entries = new Map();
15
+ _cleanupInterval;
16
+ _windowMs;
17
+ constructor(windowMs = 60_000) {
18
+ this._windowMs = windowMs;
19
+ this._cleanupInterval = setInterval(() => this._cleanup(), windowMs);
20
+ // Ensure the interval doesn't prevent Node.js from exiting
21
+ if (typeof this._cleanupInterval === 'object' && 'unref' in this._cleanupInterval) {
22
+ this._cleanupInterval.unref();
23
+ }
24
+ }
25
+ increment(key, windowMs) {
26
+ const now = Date.now();
27
+ const windowStart = now - windowMs;
28
+ let entry = this._entries.get(key);
29
+ if (!entry) {
30
+ entry = { timestamps: [] };
31
+ this._entries.set(key, entry);
32
+ }
33
+ // Prune expired timestamps (sliding window)
34
+ entry.timestamps = entry.timestamps.filter(ts => ts > windowStart);
35
+ // Check BEFORE pushing — rejected requests don't inflate the window
36
+ const currentCount = entry.timestamps.length;
37
+ // Calculate reset time: when the oldest request in the window expires
38
+ const oldestInWindow = entry.timestamps[0];
39
+ const resetMs = oldestInWindow ? (oldestInWindow + windowMs) - now : windowMs;
40
+ return {
41
+ count: currentCount,
42
+ resetMs: Math.max(0, resetMs),
43
+ // Timestamp will be pushed by the caller only on success
44
+ };
45
+ }
46
+ /**
47
+ * Record a successful (non-rejected) request.
48
+ * Only called when the request is under the limit.
49
+ */
50
+ record(key) {
51
+ const entry = this._entries.get(key);
52
+ if (entry) {
53
+ entry.timestamps.push(Date.now());
54
+ }
55
+ }
56
+ destroy() {
57
+ clearInterval(this._cleanupInterval);
58
+ this._entries.clear();
59
+ }
60
+ _cleanup() {
61
+ const now = Date.now();
62
+ for (const [key, entry] of this._entries) {
63
+ // Remove entries with no recent timestamps
64
+ if (entry.timestamps.length === 0 ||
65
+ entry.timestamps[entry.timestamps.length - 1] < now - this._windowMs) {
66
+ this._entries.delete(key);
67
+ }
68
+ }
69
+ }
70
+ }
71
+ // ── Middleware Factory ───────────────────────────────────
72
+ /**
73
+ * Create a rate limiting middleware.
74
+ *
75
+ * Returns a self-healing `toolError('RATE_LIMITED')` with `retryAfterSeconds`
76
+ * when the limit is exceeded, following RFC 7231 semantics.
77
+ *
78
+ * @param config - Rate limit configuration
79
+ * @returns A middleware function compatible with `.use()`
80
+ */
81
+ export function rateLimit(config) {
82
+ const store = config.store ?? new InMemoryStore(config.windowMs);
83
+ const errorCode = config.errorCode ?? 'RATE_LIMITED';
84
+ const keyFn = config.keyFn ?? (() => '__global__');
85
+ return async (ctx, args, next) => {
86
+ const key = keyFn(ctx);
87
+ const entry = await store.increment(key, config.windowMs);
88
+ if (entry.count >= config.max) {
89
+ const retryAfterSeconds = Math.ceil(entry.resetMs / 1000);
90
+ if (config.onRejected) {
91
+ try {
92
+ config.onRejected(ctx, key);
93
+ }
94
+ catch { /* fire-and-forget */ }
95
+ }
96
+ // Emit telemetry event
97
+ if (config.telemetry) {
98
+ try {
99
+ config.telemetry({
100
+ type: 'security.rateLimit',
101
+ key,
102
+ count: entry.count,
103
+ max: config.max,
104
+ retryAfterSeconds,
105
+ timestamp: Date.now(),
106
+ });
107
+ }
108
+ catch { /* fire-and-forget */ }
109
+ }
110
+ return toolError(errorCode, {
111
+ message: `Rate limit exceeded. Maximum ${config.max} requests per ${Math.ceil(config.windowMs / 1000)}s window.`,
112
+ suggestion: `Wait ${retryAfterSeconds} seconds before retrying. Current key: "${key}".`,
113
+ retryAfter: retryAfterSeconds,
114
+ });
115
+ }
116
+ // Record the request ONLY if not rate-limited
117
+ await store.record(key);
118
+ return next();
119
+ };
120
+ }
121
+ //# sourceMappingURL=RateLimiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RateLimiter.js","sourceRoot":"","sources":["../../../src/core/middleware/RateLimiter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,10 @@
1
1
  /** Middleware Bounded Context — Barrel Export */
2
2
  export { defineMiddleware, resolveMiddleware, isMiddlewareDefinition, } from './ContextDerivation.js';
3
3
  export type { MiddlewareDefinition, MergeContext, InferContextOut, } from './ContextDerivation.js';
4
+ export { inputFirewall } from './InputFirewall.js';
5
+ export type { InputFirewallConfig } from './InputFirewall.js';
6
+ export { auditTrail } from './AuditTrail.js';
7
+ export type { AuditTrailConfig, AuditIdentity, AuditSink } from './AuditTrail.js';
8
+ export { rateLimit, InMemoryStore } from './RateLimiter.js';
9
+ export type { RateLimitConfig, RateLimitStore, RateLimitEntry } from './RateLimiter.js';
4
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/middleware/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACzB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACR,oBAAoB,EACpB,YAAY,EACZ,eAAe,GAClB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/middleware/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACzB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACR,oBAAoB,EACpB,YAAY,EACZ,eAAe,GAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAElF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,3 +1,7 @@
1
1
  /** Middleware Bounded Context — Barrel Export */
2
2
  export { defineMiddleware, resolveMiddleware, isMiddlewareDefinition, } from './ContextDerivation.js';
3
+ // ── Security Middleware ──────────────────────────────────
4
+ export { inputFirewall } from './InputFirewall.js';
5
+ export { auditTrail } from './AuditTrail.js';
6
+ export { rateLimit, InMemoryStore } from './RateLimiter.js';
3
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/middleware/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACzB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/middleware/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACzB,MAAM,wBAAwB,CAAC;AAOhC,4DAA4D;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -58,9 +58,9 @@ export { createTelemetryBus, getTelemetryPath, discoverSockets } from './observa
58
58
  /** @category Observability */
59
59
  export type { DebugEvent, DebugObserverFn, RouteEvent, ValidateEvent, MiddlewareEvent, ExecuteEvent, ErrorEvent, GovernanceEvent, GovernanceOperation, VurbSpan, VurbTracer, VurbAttributeValue, TelemetryEvent, TelemetrySink, TelemetryBusConfig, TelemetryBusInstance, DlpRedactEvent, PresenterSliceEvent, PresenterRulesEvent, SandboxExecEvent, FsmTransitionEvent, TopologyEvent, TopologyTool, HeartbeatEvent, } from './observability/index.js';
60
60
  /** @category Presenter */
61
- export { ResponseBuilder, response, isResponseBuilder, ui, t, suggest, Presenter, createPresenter, isPresenter, PresenterValidationError, definePresenter, extractZodDescriptions, compileRedactor, initRedactEngine, } from './presenter/index.js';
61
+ export { ResponseBuilder, response, isResponseBuilder, ui, t, suggest, Presenter, createPresenter, isPresenter, PresenterValidationError, definePresenter, extendPresenter, extractZodDescriptions, compileRedactor, initRedactEngine, } from './presenter/index.js';
62
62
  /** @category Presenter */
63
- export type { UiBlock, ActionSuggestion, PresenterConfig, AgentLimitDef, EmbedDef, RedactConfig, RedactFn } from './presenter/index.js';
63
+ export type { UiBlock, UiBlockMeta, ActionSuggestion, PresenterConfig, AgentLimitDef, EmbedDef, RedactConfig, RedactFn } from './presenter/index.js';
64
64
  /** @category Prompt */
65
65
  export { definePrompt, PromptMessage, assertFlatSchema, coercePromptArgs } from './prompt/index.js';
66
66
  /** @category Prompt */
@@ -89,6 +89,10 @@ export type { ToolExposition, ExpositionConfig } from './exposition/index.js';
89
89
  export { StateSyncLayer, PolicyEngine, matchGlob, detectOverlaps } from './state-sync/index.js';
90
90
  /** @category StateSync */
91
91
  export type { CacheDirective, SyncPolicy, StateSyncConfig, ResolvedPolicy, InvalidationEvent, ResourceNotification, OverlapWarning, } from './state-sync/index.js';
92
+ /** @category Resources */
93
+ export { ResourceRegistry, defineResource, SubscriptionManager } from './resource/index.js';
94
+ /** @category Resources */
95
+ export type { ResourceBuilder, ResourceConfig, ResourceContent, ResourceHandler, McpResourceDef, ResourceListChangedSink, ResourceNotificationSink, } from './resource/index.js';
92
96
  /** @category Testing */
93
97
  export { MVA_META_SYMBOL } from './testing/MvaMetaSymbol.js';
94
98
  /** @category Testing */
@@ -145,4 +149,26 @@ export type { StringifyFn, JsonSerializer } from './core/serialization/index.js'
145
149
  export { StateMachineGate, initFsmEngine, resetXStateCache } from './fsm/StateMachineGate.js';
146
150
  /** @category FSM */
147
151
  export type { FsmConfig, FsmStateStore, FsmSnapshot, TransitionResult, } from './fsm/StateMachineGate.js';
152
+ /** @category Security */
153
+ export { createJudgeChain } from './presenter/JudgeChain.js';
154
+ /** @category Security */
155
+ export type { JudgeChain, JudgeChainConfig, JudgeChainResult, JudgeResult, JudgeStrategy, } from './presenter/JudgeChain.js';
156
+ /** @category Security */
157
+ export { evaluateRules, buildFirewallPrompt, parseFirewallVerdict } from './presenter/PromptFirewall.js';
158
+ /** @category Security */
159
+ export type { PromptFirewallConfig, FirewallVerdict, FirewallRejection, } from './presenter/PromptFirewall.js';
160
+ /** @category Security */
161
+ export { inputFirewall } from './core/middleware/InputFirewall.js';
162
+ /** @category Security */
163
+ export type { InputFirewallConfig } from './core/middleware/InputFirewall.js';
164
+ /** @category Security */
165
+ export { auditTrail } from './core/middleware/AuditTrail.js';
166
+ /** @category Security */
167
+ export type { AuditTrailConfig, AuditIdentity, AuditSink } from './core/middleware/AuditTrail.js';
168
+ /** @category Security */
169
+ export { rateLimit, InMemoryStore } from './core/middleware/RateLimiter.js';
170
+ /** @category Security */
171
+ export type { RateLimitConfig, RateLimitStore, RateLimitEntry } from './core/middleware/RateLimiter.js';
172
+ /** @category Security */
173
+ export type { SecurityFirewallEvent, SecurityAuditEvent, SecurityRateLimitEvent, } from './observability/TelemetryEvent.js';
148
174
  //# 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
@@ -60,7 +60,7 @@ export { createDebugObserver, SpanStatusCode } from './observability/index.js';
60
60
  export { createTelemetryBus, getTelemetryPath, discoverSockets } from './observability/index.js';
61
61
  // ── Presenter (MVA View Layer) ───────────────────────────
62
62
  /** @category Presenter */
63
- export { ResponseBuilder, response, isResponseBuilder, ui, t, suggest, Presenter, createPresenter, isPresenter, PresenterValidationError, definePresenter, extractZodDescriptions, compileRedactor, initRedactEngine, } from './presenter/index.js';
63
+ export { ResponseBuilder, response, isResponseBuilder, ui, t, suggest, Presenter, createPresenter, isPresenter, PresenterValidationError, definePresenter, extendPresenter, extractZodDescriptions, compileRedactor, initRedactEngine, } from './presenter/index.js';
64
64
  // ── Prompt Engine ────────────────────────────────────────
65
65
  /** @category Prompt */
66
66
  export { definePrompt, PromptMessage, assertFlatSchema, coercePromptArgs } from './prompt/index.js';
@@ -75,6 +75,9 @@ export { startServer } from './server/index.js';
75
75
  // ── State Sync (Epistemic Cache-Control) ─────────────────
76
76
  /** @category StateSync */
77
77
  export { StateSyncLayer, PolicyEngine, matchGlob, detectOverlaps } from './state-sync/index.js';
78
+ // ── Resources (Push Subscriptions) ───────────────────────
79
+ /** @category Resources */
80
+ export { ResourceRegistry, defineResource, SubscriptionManager } from './resource/index.js';
78
81
  // ── Testing (In-Memory MVA Backdoor) ─────────────────────
79
82
  /** @category Testing */
80
83
  export { MVA_META_SYMBOL } from './testing/MvaMetaSymbol.js';
@@ -109,4 +112,15 @@ export { createSerializer, defaultSerializer } from './core/serialization/index.
109
112
  // ── FSM State Gate (Temporal Anti-Hallucination) ─────────
110
113
  /** @category FSM */
111
114
  export { StateMachineGate, initFsmEngine, resetXStateCache } from './fsm/StateMachineGate.js';
115
+ // ── Security Layer ──────────────────────────────────────
116
+ /** @category Security */
117
+ export { createJudgeChain } from './presenter/JudgeChain.js';
118
+ /** @category Security */
119
+ export { evaluateRules, buildFirewallPrompt, parseFirewallVerdict } from './presenter/PromptFirewall.js';
120
+ /** @category Security */
121
+ export { inputFirewall } from './core/middleware/InputFirewall.js';
122
+ /** @category Security */
123
+ export { auditTrail } from './core/middleware/AuditTrail.js';
124
+ /** @category Security */
125
+ export { rateLimit, InMemoryStore } from './core/middleware/RateLimiter.js';
112
126
  //# 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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"}
@@ -136,6 +136,63 @@ export interface HeartbeatEvent {
136
136
  readonly uptimeSeconds: number;
137
137
  readonly timestamp: number;
138
138
  }
139
+ /**
140
+ * Emitted when the PromptFirewall or InputFirewall evaluates content.
141
+ * Tracks firewall verdicts for security monitoring and incident response.
142
+ */
143
+ export interface SecurityFirewallEvent {
144
+ readonly type: 'security.firewall';
145
+ /** Which firewall triggered: 'prompt' (output) or 'input' */
146
+ readonly firewallType: 'prompt' | 'input';
147
+ /** Tool name */
148
+ readonly tool: string;
149
+ /** Action name */
150
+ readonly action: string;
151
+ /** Whether the content passed the firewall */
152
+ readonly passed: boolean;
153
+ /** Number of rules/fields allowed */
154
+ readonly allowedCount: number;
155
+ /** Number of rules/fields rejected */
156
+ readonly rejectedCount: number;
157
+ /** Whether the result was determined by failOpen/failClosed */
158
+ readonly fallbackTriggered: boolean;
159
+ /** Total evaluation duration in milliseconds */
160
+ readonly durationMs: number;
161
+ readonly timestamp: number;
162
+ }
163
+ /**
164
+ * Emitted on every tool invocation for SOC2/GDPR audit compliance.
165
+ * See {@link AuditTrail} middleware for emission.
166
+ */
167
+ export interface SecurityAuditEvent {
168
+ readonly type: 'security.audit';
169
+ readonly tool: string;
170
+ readonly action: string;
171
+ /** Extracted identity (userId, role, ip) */
172
+ readonly identity: Record<string, string | undefined>;
173
+ /** SHA-256 hash of arguments (no PII in log) */
174
+ readonly argsHash: string;
175
+ /** Execution result status */
176
+ readonly status: 'success' | 'error' | 'firewall_blocked' | 'rate_limited';
177
+ /** Execution duration in milliseconds */
178
+ readonly durationMs: number;
179
+ readonly timestamp: number;
180
+ }
181
+ /**
182
+ * Emitted when the rate limiter blocks a request.
183
+ */
184
+ export interface SecurityRateLimitEvent {
185
+ readonly type: 'security.rateLimit';
186
+ /** Rate limit key that was exceeded */
187
+ readonly key: string;
188
+ /** Current request count */
189
+ readonly count: number;
190
+ /** Maximum allowed requests */
191
+ readonly max: number;
192
+ /** Seconds until window resets (RFC 7231) */
193
+ readonly retryAfterSeconds: number;
194
+ readonly timestamp: number;
195
+ }
139
196
  /**
140
197
  * All possible telemetry events that flow through the Shadow Socket.
141
198
  *
@@ -159,11 +216,14 @@ export interface HeartbeatEvent {
159
216
  * case 'fsm.transition': // FsmTransitionEvent
160
217
  * case 'topology': // TopologyEvent
161
218
  * case 'heartbeat': // HeartbeatEvent
219
+ * case 'security.firewall': // SecurityFirewallEvent
220
+ * case 'security.audit': // SecurityAuditEvent
221
+ * case 'security.rateLimit': // SecurityRateLimitEvent
162
222
  * }
163
223
  * }
164
224
  * ```
165
225
  */
166
- export type TelemetryEvent = DebugEvent | DlpRedactEvent | PresenterSliceEvent | PresenterRulesEvent | SandboxExecEvent | FsmTransitionEvent | TopologyEvent | HeartbeatEvent;
226
+ export type TelemetryEvent = DebugEvent | DlpRedactEvent | PresenterSliceEvent | PresenterRulesEvent | SandboxExecEvent | FsmTransitionEvent | TopologyEvent | HeartbeatEvent | SecurityFirewallEvent | SecurityAuditEvent | SecurityRateLimitEvent;
167
227
  /**
168
228
  * A function that accepts telemetry events for out-of-band delivery.
169
229
  *
@@ -1 +1 @@
1
- {"version":3,"file":"TelemetryEvent.d.ts","sourceRoot":"","sources":["../../src/observability/TelemetryEvent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TelemetryEvent.d.ts","sourceRoot":"","sources":["../../src/observability/TelemetryEvent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * JudgeChain — Multi-Adapter LLM Evaluation Primitive
3
+ *
4
+ * Composable evaluation engine that supports 1 or more LLM judges
5
+ * with configurable execution strategies. Designed to be shared
6
+ * between PromptFirewall (output) and InputFirewall (input).
7
+ *
8
+ * Strategies:
9
+ * - `fallback`: Try adapters sequentially. First success wins.
10
+ * If all fail → result depends on `failOpen` config.
11
+ * - `consensus`: ALL adapters must agree. Any rejection → blocked.
12
+ * If any adapter fails → result depends on `failOpen` config.
13
+ *
14
+ * Reuses {@link SemanticProbeAdapter} from the Governance module
15
+ * ("no hidden network dependencies" — the adapter is user-provided).
16
+ *
17
+ * @module
18
+ */
19
+ import type { SemanticProbeAdapter } from '../introspection/SemanticProbe.js';
20
+ export type { SemanticProbeAdapter };
21
+ /**
22
+ * Execution strategy for the judge chain.
23
+ *
24
+ * - `fallback` — Sequential: try each adapter until one succeeds.
25
+ * - `consensus` — Parallel: ALL adapters must agree to pass.
26
+ */
27
+ export type JudgeStrategy = 'fallback' | 'consensus';
28
+ /**
29
+ * Configuration for a JudgeChain.
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * const chain = createJudgeChain({
34
+ * adapters: [gptMini, claudeHaiku],
35
+ * strategy: 'fallback',
36
+ * timeoutMs: 3000,
37
+ * failOpen: false,
38
+ * });
39
+ * ```
40
+ */
41
+ export interface JudgeChainConfig {
42
+ /** One or more LLM adapters to use for evaluation */
43
+ readonly adapters: readonly SemanticProbeAdapter[];
44
+ /**
45
+ * Execution strategy.
46
+ *
47
+ * - `'fallback'` — Try adapters sequentially. First success wins.
48
+ * - `'consensus'` — ALL adapters must agree.
49
+ *
50
+ * @default 'fallback'
51
+ */
52
+ readonly strategy?: JudgeStrategy;
53
+ /**
54
+ * Timeout per individual adapter call in milliseconds.
55
+ * Uses `Promise.race` with `AbortSignal.timeout` internally.
56
+ *
57
+ * @default 5000
58
+ */
59
+ readonly timeoutMs?: number;
60
+ /**
61
+ * Behavior when ALL adapters fail (timeout, error, unparseable).
62
+ *
63
+ * - `false` (default) — **Fail-closed**: content is BLOCKED.
64
+ * - `true` — **Fail-open**: content PASSES (use with caution).
65
+ *
66
+ * @default false
67
+ */
68
+ readonly failOpen?: boolean;
69
+ }
70
+ /**
71
+ * Structured result from a single adapter evaluation.
72
+ */
73
+ export interface JudgeResult {
74
+ /** Name of the adapter that produced this result */
75
+ readonly adapterName: string;
76
+ /** Whether the content passed the evaluation */
77
+ readonly passed: boolean;
78
+ /** Raw response from the adapter */
79
+ readonly rawResponse: string;
80
+ /** Evaluation duration in milliseconds */
81
+ readonly durationMs: number;
82
+ }
83
+ /**
84
+ * Aggregated result from the full judge chain evaluation.
85
+ */
86
+ export interface JudgeChainResult {
87
+ /** Whether the content passed the chain (considering strategy) */
88
+ readonly passed: boolean;
89
+ /** Individual results from each adapter that was called */
90
+ readonly results: readonly JudgeResult[];
91
+ /** Total evaluation duration in milliseconds */
92
+ readonly totalDurationMs: number;
93
+ /** Whether the result was determined by failOpen/failClosed (all adapters failed) */
94
+ readonly fallbackTriggered: boolean;
95
+ }
96
+ /**
97
+ * A compiled judge chain — call `evaluate(prompt)` to run.
98
+ */
99
+ export interface JudgeChain {
100
+ /** Execute the chain with the given prompt */
101
+ evaluate(prompt: string): Promise<JudgeChainResult>;
102
+ /** The underlying configuration */
103
+ readonly config: Readonly<Required<JudgeChainConfig>>;
104
+ }
105
+ /**
106
+ * Create a compiled JudgeChain from configuration.
107
+ *
108
+ * @param config - Chain configuration (adapters, strategy, timeouts)
109
+ * @returns A compiled {@link JudgeChain} ready for evaluation
110
+ *
111
+ * @example
112
+ * ```typescript
113
+ * import { createJudgeChain } from '@vurb/core';
114
+ *
115
+ * const chain = createJudgeChain({
116
+ * adapters: [
117
+ * { name: 'gpt-4o-mini', evaluate: (p) => openai.chat(p) },
118
+ * { name: 'claude-haiku', evaluate: (p) => claude.message(p) },
119
+ * ],
120
+ * strategy: 'fallback',
121
+ * timeoutMs: 3000,
122
+ * });
123
+ *
124
+ * const result = await chain.evaluate('Is this safe?');
125
+ * if (!result.passed) { // blocked }
126
+ * ```
127
+ */
128
+ export declare function createJudgeChain(config: JudgeChainConfig): JudgeChain;
129
+ //# sourceMappingURL=JudgeChain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JudgeChain.d.ts","sourceRoot":"","sources":["../../src/presenter/JudgeChain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAI9E,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAIrC;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,gBAAgB;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAEnD;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAElC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,oDAAoD;IACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,oCAAoC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,gDAAgD;IAChD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,qFAAqF;IACrF,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEpD,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;CACzD;AAID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAgBrE"}