llm-trust-guard 4.0.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 (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +318 -0
  3. package/dist/guards/agent-communication-guard.d.ts +169 -0
  4. package/dist/guards/agent-communication-guard.d.ts.map +1 -0
  5. package/dist/guards/agent-communication-guard.js +468 -0
  6. package/dist/guards/agent-communication-guard.js.map +1 -0
  7. package/dist/guards/autonomy-escalation-guard.d.ts +137 -0
  8. package/dist/guards/autonomy-escalation-guard.d.ts.map +1 -0
  9. package/dist/guards/autonomy-escalation-guard.js +470 -0
  10. package/dist/guards/autonomy-escalation-guard.js.map +1 -0
  11. package/dist/guards/circuit-breaker.d.ts +142 -0
  12. package/dist/guards/circuit-breaker.d.ts.map +1 -0
  13. package/dist/guards/circuit-breaker.js +347 -0
  14. package/dist/guards/circuit-breaker.js.map +1 -0
  15. package/dist/guards/code-execution-guard.d.ts +114 -0
  16. package/dist/guards/code-execution-guard.d.ts.map +1 -0
  17. package/dist/guards/code-execution-guard.js +467 -0
  18. package/dist/guards/code-execution-guard.js.map +1 -0
  19. package/dist/guards/conversation-guard.d.ts +73 -0
  20. package/dist/guards/conversation-guard.d.ts.map +1 -0
  21. package/dist/guards/conversation-guard.js +281 -0
  22. package/dist/guards/conversation-guard.js.map +1 -0
  23. package/dist/guards/drift-detector.d.ts +182 -0
  24. package/dist/guards/drift-detector.d.ts.map +1 -0
  25. package/dist/guards/drift-detector.js +480 -0
  26. package/dist/guards/drift-detector.js.map +1 -0
  27. package/dist/guards/encoding-detector.d.ts +76 -0
  28. package/dist/guards/encoding-detector.d.ts.map +1 -0
  29. package/dist/guards/encoding-detector.js +698 -0
  30. package/dist/guards/encoding-detector.js.map +1 -0
  31. package/dist/guards/execution-monitor.d.ts +73 -0
  32. package/dist/guards/execution-monitor.d.ts.map +1 -0
  33. package/dist/guards/execution-monitor.js +205 -0
  34. package/dist/guards/execution-monitor.js.map +1 -0
  35. package/dist/guards/input-sanitizer.d.ts +87 -0
  36. package/dist/guards/input-sanitizer.d.ts.map +1 -0
  37. package/dist/guards/input-sanitizer.js +301 -0
  38. package/dist/guards/input-sanitizer.js.map +1 -0
  39. package/dist/guards/mcp-security-guard.d.ts +204 -0
  40. package/dist/guards/mcp-security-guard.d.ts.map +1 -0
  41. package/dist/guards/mcp-security-guard.js +618 -0
  42. package/dist/guards/mcp-security-guard.js.map +1 -0
  43. package/dist/guards/memory-guard.d.ts +124 -0
  44. package/dist/guards/memory-guard.d.ts.map +1 -0
  45. package/dist/guards/memory-guard.js +476 -0
  46. package/dist/guards/memory-guard.js.map +1 -0
  47. package/dist/guards/multimodal-guard.d.ts +93 -0
  48. package/dist/guards/multimodal-guard.d.ts.map +1 -0
  49. package/dist/guards/multimodal-guard.js +507 -0
  50. package/dist/guards/multimodal-guard.js.map +1 -0
  51. package/dist/guards/output-filter.d.ts +76 -0
  52. package/dist/guards/output-filter.d.ts.map +1 -0
  53. package/dist/guards/output-filter.js +289 -0
  54. package/dist/guards/output-filter.js.map +1 -0
  55. package/dist/guards/policy-gate.d.ts +57 -0
  56. package/dist/guards/policy-gate.d.ts.map +1 -0
  57. package/dist/guards/policy-gate.js +182 -0
  58. package/dist/guards/policy-gate.js.map +1 -0
  59. package/dist/guards/prompt-leakage-guard.d.ts +110 -0
  60. package/dist/guards/prompt-leakage-guard.d.ts.map +1 -0
  61. package/dist/guards/prompt-leakage-guard.js +529 -0
  62. package/dist/guards/prompt-leakage-guard.js.map +1 -0
  63. package/dist/guards/rag-guard.d.ts +188 -0
  64. package/dist/guards/rag-guard.d.ts.map +1 -0
  65. package/dist/guards/rag-guard.js +769 -0
  66. package/dist/guards/rag-guard.js.map +1 -0
  67. package/dist/guards/schema-validator.d.ts +35 -0
  68. package/dist/guards/schema-validator.d.ts.map +1 -0
  69. package/dist/guards/schema-validator.js +316 -0
  70. package/dist/guards/schema-validator.js.map +1 -0
  71. package/dist/guards/state-persistence-guard.d.ts +153 -0
  72. package/dist/guards/state-persistence-guard.d.ts.map +1 -0
  73. package/dist/guards/state-persistence-guard.js +484 -0
  74. package/dist/guards/state-persistence-guard.js.map +1 -0
  75. package/dist/guards/tenant-boundary.d.ts +67 -0
  76. package/dist/guards/tenant-boundary.d.ts.map +1 -0
  77. package/dist/guards/tenant-boundary.js +187 -0
  78. package/dist/guards/tenant-boundary.js.map +1 -0
  79. package/dist/guards/tool-chain-validator.d.ts +102 -0
  80. package/dist/guards/tool-chain-validator.d.ts.map +1 -0
  81. package/dist/guards/tool-chain-validator.js +480 -0
  82. package/dist/guards/tool-chain-validator.js.map +1 -0
  83. package/dist/guards/tool-registry.d.ts +45 -0
  84. package/dist/guards/tool-registry.d.ts.map +1 -0
  85. package/dist/guards/tool-registry.js +155 -0
  86. package/dist/guards/tool-registry.js.map +1 -0
  87. package/dist/guards/trust-exploitation-guard.d.ts +134 -0
  88. package/dist/guards/trust-exploitation-guard.d.ts.map +1 -0
  89. package/dist/guards/trust-exploitation-guard.js +354 -0
  90. package/dist/guards/trust-exploitation-guard.js.map +1 -0
  91. package/dist/index.d.ts +133 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +430 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/integrations/express.d.ts +119 -0
  96. package/dist/integrations/express.d.ts.map +1 -0
  97. package/dist/integrations/express.js +244 -0
  98. package/dist/integrations/express.js.map +1 -0
  99. package/dist/integrations/index.d.ts +9 -0
  100. package/dist/integrations/index.d.ts.map +1 -0
  101. package/dist/integrations/index.js +26 -0
  102. package/dist/integrations/index.js.map +1 -0
  103. package/dist/integrations/langchain.d.ts +165 -0
  104. package/dist/integrations/langchain.d.ts.map +1 -0
  105. package/dist/integrations/langchain.js +308 -0
  106. package/dist/integrations/langchain.js.map +1 -0
  107. package/dist/integrations/openai.d.ts +205 -0
  108. package/dist/integrations/openai.d.ts.map +1 -0
  109. package/dist/integrations/openai.js +380 -0
  110. package/dist/integrations/openai.js.map +1 -0
  111. package/dist/types/index.d.ts +245 -0
  112. package/dist/types/index.d.ts.map +1 -0
  113. package/dist/types/index.js +6 -0
  114. package/dist/types/index.js.map +1 -0
  115. package/package.json +64 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-exploitation-guard.js","sourceRoot":"","sources":["../../src/guards/trust-exploitation-guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * llm-trust-guard
3
+ *
4
+ * Security guards for LLM-powered applications.
5
+ * Implements the Trust-Aware Orchestration Architecture.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { TrustGuard } from 'llm-trust-guard';
10
+ *
11
+ * const guard = new TrustGuard({
12
+ * registry: { tools: myTools },
13
+ * policy: { roleHierarchy: { customer: 0, admin: 1 } }
14
+ * });
15
+ *
16
+ * const result = guard.check(toolName, params, session);
17
+ * if (!result.allowed) {
18
+ * console.log('Blocked:', result.block_reason);
19
+ * }
20
+ * ```
21
+ */
22
+ export * from "./types";
23
+ export { InputSanitizer, InputSanitizerConfig, PAPSanitizerResult } from "./guards/input-sanitizer";
24
+ export { ToolRegistry, ToolRegistryConfig } from "./guards/tool-registry";
25
+ export { PolicyGate, PolicyGateConfig } from "./guards/policy-gate";
26
+ export { TenantBoundary, TenantBoundaryConfig } from "./guards/tenant-boundary";
27
+ export { SchemaValidator, SchemaValidatorConfig } from "./guards/schema-validator";
28
+ export { ExecutionMonitor, ExecutionMonitorConfig } from "./guards/execution-monitor";
29
+ export { OutputFilter, OutputFilterConfig } from "./guards/output-filter";
30
+ export { ConversationGuard, ConversationGuardConfig } from "./guards/conversation-guard";
31
+ export { ToolChainValidator, ToolChainValidatorConfig } from "./guards/tool-chain-validator";
32
+ export { EncodingDetector, EncodingDetectorConfig } from "./guards/encoding-detector";
33
+ export { MultiModalGuard, MultiModalGuardConfig, MultiModalContent, MultiModalGuardResult } from "./guards/multimodal-guard";
34
+ export { MemoryGuard, MemoryGuardConfig, MemoryItem, MemoryGuardResult } from "./guards/memory-guard";
35
+ export { RAGGuard, RAGGuardConfig, RAGDocument, RAGGuardResult, EmbeddingAttackResult } from "./guards/rag-guard";
36
+ export { CodeExecutionGuard, CodeExecutionGuardConfig, CodeAnalysisResult, SandboxConfig } from "./guards/code-execution-guard";
37
+ export { AgentCommunicationGuard, AgentCommunicationGuardConfig, AgentIdentity, AgentMessage, MessageValidationResult } from "./guards/agent-communication-guard";
38
+ export { CircuitBreaker, CircuitBreakerConfig, CircuitState, CircuitStats, CircuitBreakerResult } from "./guards/circuit-breaker";
39
+ export { DriftDetector, DriftDetectorConfig, BehaviorSample, BaselineProfile, DriftAnalysis, DriftDetectorResult } from "./guards/drift-detector";
40
+ export { MCPSecurityGuard, MCPSecurityGuardConfig, MCPServerIdentity, MCPToolDefinition, MCPServerRegistration, MCPToolCall, MCPSecurityResult } from "./guards/mcp-security-guard";
41
+ export { PromptLeakageGuard, PromptLeakageGuardConfig, PromptLeakageResult, OutputLeakageResult } from "./guards/prompt-leakage-guard";
42
+ export { TrustExploitationGuard, TrustExploitationGuardConfig, AgentAction, TrustContext, TrustExploitationResult } from "./guards/trust-exploitation-guard";
43
+ export { AutonomyEscalationGuard, AutonomyEscalationGuardConfig, AutonomyRequest, AgentCapabilities, AutonomyEscalationResult } from "./guards/autonomy-escalation-guard";
44
+ export { StatePersistenceGuard, StatePersistenceGuardConfig, StateItem, StateOperation, StatePersistenceResult } from "./guards/state-persistence-guard";
45
+ import { InputSanitizer } from "./guards/input-sanitizer";
46
+ import { ToolRegistry } from "./guards/tool-registry";
47
+ import { PolicyGate } from "./guards/policy-gate";
48
+ import { TenantBoundary } from "./guards/tenant-boundary";
49
+ import { SchemaValidator } from "./guards/schema-validator";
50
+ import { ExecutionMonitor } from "./guards/execution-monitor";
51
+ import { OutputFilter } from "./guards/output-filter";
52
+ import { ConversationGuard } from "./guards/conversation-guard";
53
+ import { ToolChainValidator } from "./guards/tool-chain-validator";
54
+ import { EncodingDetector } from "./guards/encoding-detector";
55
+ import { TrustGuardConfig, TrustGuardResult, SessionContext, ToolDefinition, Role } from "./types";
56
+ /**
57
+ * TrustGuard - Main facade for all security guards
58
+ *
59
+ * Combines all protection layers into a single, easy-to-use interface.
60
+ *
61
+ * Protection Layers:
62
+ * - L1: Input Sanitizer - Detects prompt injection patterns
63
+ * - L2: Tool Registry - Prevents tool hallucination attacks
64
+ * - L3: Policy Gate - Enforces RBAC with constraint validation
65
+ * - L4: Tenant Boundary - Multi-tenant isolation
66
+ * - L5: Schema Validator - Parameter validation & injection detection
67
+ * - L6: Execution Monitor - Rate limiting & resource quotas
68
+ * - L7: Output Filter - PII scrubbing & secret detection
69
+ * - Conversation Guard - Multi-turn manipulation detection
70
+ * - Tool Chain Validator - Dangerous tool sequence detection
71
+ * - Encoding Detector - Encoding bypass attack detection
72
+ */
73
+ export declare class TrustGuard {
74
+ private sanitizer?;
75
+ private registry?;
76
+ private policy?;
77
+ private tenant?;
78
+ private schema?;
79
+ private execution?;
80
+ private output?;
81
+ private conversation?;
82
+ private chain?;
83
+ private encoding?;
84
+ private logger;
85
+ constructor(config?: TrustGuardConfig);
86
+ /**
87
+ * Run all enabled guards on a tool call
88
+ */
89
+ check(toolName: string, params: Record<string, any>, session: SessionContext | undefined, options?: {
90
+ userInput?: string;
91
+ claimedRole?: Role;
92
+ allToolsInRequest?: string[];
93
+ }): TrustGuardResult;
94
+ /**
95
+ * Filter output for PII and secrets (L7)
96
+ */
97
+ filterOutput(output: any, role?: string, requestId?: string): {
98
+ allowed: boolean;
99
+ filtered: any;
100
+ pii_detected: boolean;
101
+ secrets_detected: boolean;
102
+ };
103
+ /**
104
+ * Mark an operation as complete (for rate limiting)
105
+ */
106
+ completeOperation(session?: SessionContext): void;
107
+ /**
108
+ * Get tools available for a role
109
+ */
110
+ getToolsForRole(role: Role): ToolDefinition[];
111
+ /**
112
+ * Get individual guard instances for advanced usage
113
+ */
114
+ getGuards(): {
115
+ sanitizer: InputSanitizer | undefined;
116
+ registry: ToolRegistry | undefined;
117
+ policy: PolicyGate | undefined;
118
+ tenant: TenantBoundary | undefined;
119
+ schema: SchemaValidator | undefined;
120
+ execution: ExecutionMonitor | undefined;
121
+ output: OutputFilter | undefined;
122
+ conversation: ConversationGuard | undefined;
123
+ chain: ToolChainValidator | undefined;
124
+ encoding: EncodingDetector | undefined;
125
+ };
126
+ /**
127
+ * Reset session state (for testing or session end)
128
+ */
129
+ resetSession(sessionId: string): void;
130
+ }
131
+ export * from "./integrations/index.js";
132
+ export default TrustGuard;
133
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,430 @@
1
+ "use strict";
2
+ /**
3
+ * llm-trust-guard
4
+ *
5
+ * Security guards for LLM-powered applications.
6
+ * Implements the Trust-Aware Orchestration Architecture.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { TrustGuard } from 'llm-trust-guard';
11
+ *
12
+ * const guard = new TrustGuard({
13
+ * registry: { tools: myTools },
14
+ * policy: { roleHierarchy: { customer: 0, admin: 1 } }
15
+ * });
16
+ *
17
+ * const result = guard.check(toolName, params, session);
18
+ * if (!result.allowed) {
19
+ * console.log('Blocked:', result.block_reason);
20
+ * }
21
+ * ```
22
+ */
23
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ var desc = Object.getOwnPropertyDescriptor(m, k);
26
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
27
+ desc = { enumerable: true, get: function() { return m[k]; } };
28
+ }
29
+ Object.defineProperty(o, k2, desc);
30
+ }) : (function(o, m, k, k2) {
31
+ if (k2 === undefined) k2 = k;
32
+ o[k2] = m[k];
33
+ }));
34
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
35
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.TrustGuard = exports.StatePersistenceGuard = exports.AutonomyEscalationGuard = exports.TrustExploitationGuard = exports.PromptLeakageGuard = exports.MCPSecurityGuard = exports.DriftDetector = exports.CircuitBreaker = exports.AgentCommunicationGuard = exports.CodeExecutionGuard = exports.RAGGuard = exports.MemoryGuard = exports.MultiModalGuard = exports.EncodingDetector = exports.ToolChainValidator = exports.ConversationGuard = exports.OutputFilter = exports.ExecutionMonitor = exports.SchemaValidator = exports.TenantBoundary = exports.PolicyGate = exports.ToolRegistry = exports.InputSanitizer = void 0;
39
+ // Export types
40
+ __exportStar(require("./types"), exports);
41
+ // Export individual guards - Original 10 layers
42
+ var input_sanitizer_1 = require("./guards/input-sanitizer");
43
+ Object.defineProperty(exports, "InputSanitizer", { enumerable: true, get: function () { return input_sanitizer_1.InputSanitizer; } });
44
+ var tool_registry_1 = require("./guards/tool-registry");
45
+ Object.defineProperty(exports, "ToolRegistry", { enumerable: true, get: function () { return tool_registry_1.ToolRegistry; } });
46
+ var policy_gate_1 = require("./guards/policy-gate");
47
+ Object.defineProperty(exports, "PolicyGate", { enumerable: true, get: function () { return policy_gate_1.PolicyGate; } });
48
+ var tenant_boundary_1 = require("./guards/tenant-boundary");
49
+ Object.defineProperty(exports, "TenantBoundary", { enumerable: true, get: function () { return tenant_boundary_1.TenantBoundary; } });
50
+ var schema_validator_1 = require("./guards/schema-validator");
51
+ Object.defineProperty(exports, "SchemaValidator", { enumerable: true, get: function () { return schema_validator_1.SchemaValidator; } });
52
+ var execution_monitor_1 = require("./guards/execution-monitor");
53
+ Object.defineProperty(exports, "ExecutionMonitor", { enumerable: true, get: function () { return execution_monitor_1.ExecutionMonitor; } });
54
+ var output_filter_1 = require("./guards/output-filter");
55
+ Object.defineProperty(exports, "OutputFilter", { enumerable: true, get: function () { return output_filter_1.OutputFilter; } });
56
+ var conversation_guard_1 = require("./guards/conversation-guard");
57
+ Object.defineProperty(exports, "ConversationGuard", { enumerable: true, get: function () { return conversation_guard_1.ConversationGuard; } });
58
+ var tool_chain_validator_1 = require("./guards/tool-chain-validator");
59
+ Object.defineProperty(exports, "ToolChainValidator", { enumerable: true, get: function () { return tool_chain_validator_1.ToolChainValidator; } });
60
+ var encoding_detector_1 = require("./guards/encoding-detector");
61
+ Object.defineProperty(exports, "EncodingDetector", { enumerable: true, get: function () { return encoding_detector_1.EncodingDetector; } });
62
+ // Export new 2026 guards - Layers L8-L14
63
+ var multimodal_guard_1 = require("./guards/multimodal-guard");
64
+ Object.defineProperty(exports, "MultiModalGuard", { enumerable: true, get: function () { return multimodal_guard_1.MultiModalGuard; } });
65
+ var memory_guard_1 = require("./guards/memory-guard");
66
+ Object.defineProperty(exports, "MemoryGuard", { enumerable: true, get: function () { return memory_guard_1.MemoryGuard; } });
67
+ var rag_guard_1 = require("./guards/rag-guard");
68
+ Object.defineProperty(exports, "RAGGuard", { enumerable: true, get: function () { return rag_guard_1.RAGGuard; } });
69
+ var code_execution_guard_1 = require("./guards/code-execution-guard");
70
+ Object.defineProperty(exports, "CodeExecutionGuard", { enumerable: true, get: function () { return code_execution_guard_1.CodeExecutionGuard; } });
71
+ var agent_communication_guard_1 = require("./guards/agent-communication-guard");
72
+ Object.defineProperty(exports, "AgentCommunicationGuard", { enumerable: true, get: function () { return agent_communication_guard_1.AgentCommunicationGuard; } });
73
+ var circuit_breaker_1 = require("./guards/circuit-breaker");
74
+ Object.defineProperty(exports, "CircuitBreaker", { enumerable: true, get: function () { return circuit_breaker_1.CircuitBreaker; } });
75
+ var drift_detector_1 = require("./guards/drift-detector");
76
+ Object.defineProperty(exports, "DriftDetector", { enumerable: true, get: function () { return drift_detector_1.DriftDetector; } });
77
+ // Export new 2026 guards - Layers L15-L17 (Gap Analysis)
78
+ var mcp_security_guard_1 = require("./guards/mcp-security-guard");
79
+ Object.defineProperty(exports, "MCPSecurityGuard", { enumerable: true, get: function () { return mcp_security_guard_1.MCPSecurityGuard; } });
80
+ var prompt_leakage_guard_1 = require("./guards/prompt-leakage-guard");
81
+ Object.defineProperty(exports, "PromptLeakageGuard", { enumerable: true, get: function () { return prompt_leakage_guard_1.PromptLeakageGuard; } });
82
+ var trust_exploitation_guard_1 = require("./guards/trust-exploitation-guard");
83
+ Object.defineProperty(exports, "TrustExploitationGuard", { enumerable: true, get: function () { return trust_exploitation_guard_1.TrustExploitationGuard; } });
84
+ // Export new 2026 guards - Layers L21-L22 (ASI08, ASI10)
85
+ var autonomy_escalation_guard_1 = require("./guards/autonomy-escalation-guard");
86
+ Object.defineProperty(exports, "AutonomyEscalationGuard", { enumerable: true, get: function () { return autonomy_escalation_guard_1.AutonomyEscalationGuard; } });
87
+ var state_persistence_guard_1 = require("./guards/state-persistence-guard");
88
+ Object.defineProperty(exports, "StatePersistenceGuard", { enumerable: true, get: function () { return state_persistence_guard_1.StatePersistenceGuard; } });
89
+ // Import for TrustGuard
90
+ const input_sanitizer_2 = require("./guards/input-sanitizer");
91
+ const tool_registry_2 = require("./guards/tool-registry");
92
+ const policy_gate_2 = require("./guards/policy-gate");
93
+ const tenant_boundary_2 = require("./guards/tenant-boundary");
94
+ const schema_validator_2 = require("./guards/schema-validator");
95
+ const execution_monitor_2 = require("./guards/execution-monitor");
96
+ const output_filter_2 = require("./guards/output-filter");
97
+ const conversation_guard_2 = require("./guards/conversation-guard");
98
+ const tool_chain_validator_2 = require("./guards/tool-chain-validator");
99
+ const encoding_detector_2 = require("./guards/encoding-detector");
100
+ /**
101
+ * TrustGuard - Main facade for all security guards
102
+ *
103
+ * Combines all protection layers into a single, easy-to-use interface.
104
+ *
105
+ * Protection Layers:
106
+ * - L1: Input Sanitizer - Detects prompt injection patterns
107
+ * - L2: Tool Registry - Prevents tool hallucination attacks
108
+ * - L3: Policy Gate - Enforces RBAC with constraint validation
109
+ * - L4: Tenant Boundary - Multi-tenant isolation
110
+ * - L5: Schema Validator - Parameter validation & injection detection
111
+ * - L6: Execution Monitor - Rate limiting & resource quotas
112
+ * - L7: Output Filter - PII scrubbing & secret detection
113
+ * - Conversation Guard - Multi-turn manipulation detection
114
+ * - Tool Chain Validator - Dangerous tool sequence detection
115
+ * - Encoding Detector - Encoding bypass attack detection
116
+ */
117
+ class TrustGuard {
118
+ constructor(config = {}) {
119
+ // Initialize guards based on config
120
+ if (config.sanitizer?.enabled !== false) {
121
+ this.sanitizer = new input_sanitizer_2.InputSanitizer({
122
+ threshold: config.sanitizer?.threshold,
123
+ customPatterns: config.sanitizer?.customPatterns,
124
+ });
125
+ }
126
+ if (config.registry?.enabled !== false && config.registry?.tools) {
127
+ this.registry = new tool_registry_2.ToolRegistry({
128
+ tools: config.registry.tools,
129
+ });
130
+ }
131
+ if (config.policy?.enabled !== false) {
132
+ this.policy = new policy_gate_2.PolicyGate({
133
+ roleHierarchy: config.policy?.roleHierarchy,
134
+ });
135
+ }
136
+ if (config.tenant?.enabled !== false) {
137
+ const ownershipMap = config.tenant?.resourceOwnership
138
+ ? new Map(Object.entries(config.tenant.resourceOwnership).map(([id, data]) => [
139
+ id,
140
+ { resource_id: id, tenant_id: data.tenant_id },
141
+ ]))
142
+ : undefined;
143
+ this.tenant = new tenant_boundary_2.TenantBoundary({
144
+ resourceOwnership: ownershipMap,
145
+ });
146
+ }
147
+ if (config.schema?.enabled !== false) {
148
+ this.schema = new schema_validator_2.SchemaValidator({
149
+ strictTypes: config.schema?.strictTypes,
150
+ });
151
+ }
152
+ if (config.execution?.enabled !== false) {
153
+ this.execution = new execution_monitor_2.ExecutionMonitor({
154
+ maxRequestsPerMinute: config.execution?.maxRequestsPerMinute,
155
+ maxRequestsPerHour: config.execution?.maxRequestsPerHour,
156
+ operationCosts: config.execution?.operationCosts,
157
+ maxCostPerMinute: config.execution?.maxCostPerMinute,
158
+ maxCostPerHour: config.execution?.maxCostPerHour,
159
+ });
160
+ }
161
+ if (config.output?.enabled !== false) {
162
+ this.output = new output_filter_2.OutputFilter({
163
+ detectPII: config.output?.detectPII,
164
+ detectSecrets: config.output?.detectSecrets,
165
+ roleFilters: config.output?.roleFilters,
166
+ });
167
+ }
168
+ if (config.conversation?.enabled !== false) {
169
+ this.conversation = new conversation_guard_2.ConversationGuard({
170
+ maxConversationLength: config.conversation?.maxConversationLength,
171
+ escalationThreshold: config.conversation?.escalationThreshold,
172
+ });
173
+ }
174
+ if (config.chain?.enabled !== false) {
175
+ this.chain = new tool_chain_validator_2.ToolChainValidator({
176
+ maxToolsPerRequest: config.chain?.maxToolsPerRequest,
177
+ maxSensitiveToolsPerSession: config.chain?.maxSensitiveToolsPerSession,
178
+ sensitiveTools: config.chain?.sensitiveTools,
179
+ });
180
+ }
181
+ if (config.encoding?.enabled !== false) {
182
+ this.encoding = new encoding_detector_2.EncodingDetector({
183
+ maxDecodingDepth: config.encoding?.maxDecodingDepth,
184
+ maxEncodedRatio: config.encoding?.maxEncodedRatio,
185
+ });
186
+ }
187
+ this.logger = config.logger || ((msg, level) => {
188
+ if (level === "error")
189
+ console.error(msg);
190
+ else if (level === "warn")
191
+ console.warn(msg);
192
+ else
193
+ console.log(msg);
194
+ });
195
+ }
196
+ /**
197
+ * Run all enabled guards on a tool call
198
+ */
199
+ check(toolName, params, session, options = {}) {
200
+ const requestId = `req-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
201
+ const allViolations = [];
202
+ this.logger(`[TrustGuard:${requestId}] Checking: ${toolName}`, "info");
203
+ // Encoding Detection (pre-L1)
204
+ if (this.encoding && options.userInput) {
205
+ const encodingResult = this.encoding.detect(options.userInput, requestId);
206
+ if (!encodingResult.allowed) {
207
+ this.logger(`[TrustGuard:${requestId}] BLOCKED by Encoding Detector`, "warn");
208
+ return {
209
+ allowed: false,
210
+ block_layer: "ENCODING",
211
+ block_reason: encodingResult.reason,
212
+ all_violations: encodingResult.violations,
213
+ encoding: encodingResult,
214
+ request_id: requestId,
215
+ };
216
+ }
217
+ allViolations.push(...encodingResult.violations);
218
+ }
219
+ // L1: Input Sanitization
220
+ if (this.sanitizer && options.userInput) {
221
+ const sanitizerResult = this.sanitizer.sanitize(options.userInput, requestId);
222
+ if (!sanitizerResult.allowed) {
223
+ this.logger(`[TrustGuard:${requestId}] BLOCKED by L1`, "warn");
224
+ return {
225
+ allowed: false,
226
+ block_layer: "L1",
227
+ block_reason: sanitizerResult.reason,
228
+ all_violations: sanitizerResult.violations,
229
+ sanitizer: sanitizerResult,
230
+ request_id: requestId,
231
+ };
232
+ }
233
+ allViolations.push(...sanitizerResult.violations);
234
+ }
235
+ // Conversation Guard
236
+ if (this.conversation && options.userInput && session?.session_id) {
237
+ const convResult = this.conversation.check(session.session_id, options.userInput, [toolName], options.claimedRole, requestId);
238
+ if (!convResult.allowed) {
239
+ this.logger(`[TrustGuard:${requestId}] BLOCKED by Conversation Guard`, "warn");
240
+ return {
241
+ allowed: false,
242
+ block_layer: "CONV",
243
+ block_reason: convResult.reason,
244
+ all_violations: [...allViolations, ...convResult.violations],
245
+ conversation: convResult,
246
+ request_id: requestId,
247
+ };
248
+ }
249
+ allViolations.push(...convResult.violations);
250
+ }
251
+ // L2: Tool Registry
252
+ let tool;
253
+ if (this.registry) {
254
+ const registryResult = this.registry.check(toolName, session?.role || "", requestId);
255
+ if (!registryResult.allowed) {
256
+ this.logger(`[TrustGuard:${requestId}] BLOCKED by L2`, "warn");
257
+ return {
258
+ allowed: false,
259
+ block_layer: "L2",
260
+ block_reason: registryResult.reason,
261
+ all_violations: [...allViolations, ...registryResult.violations],
262
+ registry: registryResult,
263
+ request_id: requestId,
264
+ };
265
+ }
266
+ tool = registryResult.tool;
267
+ allViolations.push(...registryResult.violations);
268
+ }
269
+ // Tool Chain Validator
270
+ if (this.chain && session?.session_id) {
271
+ const chainResult = options.allToolsInRequest
272
+ ? this.chain.validateBatch(session.session_id, options.allToolsInRequest, requestId)
273
+ : this.chain.validate(session.session_id, toolName, undefined, requestId);
274
+ if (!chainResult.allowed) {
275
+ this.logger(`[TrustGuard:${requestId}] BLOCKED by Tool Chain Validator`, "warn");
276
+ return {
277
+ allowed: false,
278
+ block_layer: "CHAIN",
279
+ block_reason: chainResult.reason,
280
+ all_violations: [...allViolations, ...chainResult.violations],
281
+ chain: chainResult,
282
+ request_id: requestId,
283
+ };
284
+ }
285
+ allViolations.push(...chainResult.violations);
286
+ }
287
+ // L3: Policy Gate
288
+ if (this.policy && tool) {
289
+ const policyResult = this.policy.check(tool, params, session, options.claimedRole, requestId);
290
+ if (!policyResult.allowed) {
291
+ this.logger(`[TrustGuard:${requestId}] BLOCKED by L3`, "warn");
292
+ return {
293
+ allowed: false,
294
+ block_layer: "L3",
295
+ block_reason: policyResult.reason,
296
+ all_violations: [...allViolations, ...policyResult.violations],
297
+ policy: policyResult,
298
+ request_id: requestId,
299
+ };
300
+ }
301
+ allViolations.push(...policyResult.violations);
302
+ }
303
+ // L4: Tenant Boundary
304
+ let enforcedParams = params;
305
+ if (this.tenant) {
306
+ const tenantResult = this.tenant.check(toolName, params, session, requestId);
307
+ if (!tenantResult.allowed) {
308
+ this.logger(`[TrustGuard:${requestId}] BLOCKED by L4`, "warn");
309
+ return {
310
+ allowed: false,
311
+ block_layer: "L4",
312
+ block_reason: tenantResult.reason,
313
+ all_violations: [...allViolations, ...tenantResult.violations],
314
+ tenant: tenantResult,
315
+ request_id: requestId,
316
+ };
317
+ }
318
+ if (tenantResult.enforced_params) {
319
+ enforcedParams = tenantResult.enforced_params;
320
+ }
321
+ allViolations.push(...tenantResult.violations);
322
+ }
323
+ // L5: Schema Validation
324
+ if (this.schema && tool) {
325
+ const schemaResult = this.schema.validate(tool, enforcedParams, requestId);
326
+ if (!schemaResult.allowed) {
327
+ this.logger(`[TrustGuard:${requestId}] BLOCKED by L5`, "warn");
328
+ return {
329
+ allowed: false,
330
+ block_layer: "L5",
331
+ block_reason: schemaResult.reason,
332
+ all_violations: [...allViolations, ...schemaResult.violations],
333
+ schema: schemaResult,
334
+ request_id: requestId,
335
+ };
336
+ }
337
+ allViolations.push(...schemaResult.violations);
338
+ }
339
+ // L6: Execution Monitor (rate limiting)
340
+ if (this.execution) {
341
+ const execResult = this.execution.check(toolName, session?.user_id, session?.session_id, requestId);
342
+ if (!execResult.allowed) {
343
+ this.logger(`[TrustGuard:${requestId}] BLOCKED by L6`, "warn");
344
+ return {
345
+ allowed: false,
346
+ block_layer: "L6",
347
+ block_reason: execResult.reason,
348
+ all_violations: [...allViolations, ...execResult.violations],
349
+ execution: execResult,
350
+ request_id: requestId,
351
+ };
352
+ }
353
+ allViolations.push(...execResult.violations);
354
+ }
355
+ this.logger(`[TrustGuard:${requestId}] All checks PASSED`, "info");
356
+ return {
357
+ allowed: true,
358
+ all_violations: allViolations,
359
+ request_id: requestId,
360
+ };
361
+ }
362
+ /**
363
+ * Filter output for PII and secrets (L7)
364
+ */
365
+ filterOutput(output, role, requestId) {
366
+ if (!this.output) {
367
+ return {
368
+ allowed: true,
369
+ filtered: output,
370
+ pii_detected: false,
371
+ secrets_detected: false,
372
+ };
373
+ }
374
+ const result = this.output.filter(output, role, requestId);
375
+ return {
376
+ allowed: result.allowed,
377
+ filtered: result.filtered_response,
378
+ pii_detected: result.pii_detected.length > 0,
379
+ secrets_detected: result.secrets_detected.length > 0,
380
+ };
381
+ }
382
+ /**
383
+ * Mark an operation as complete (for rate limiting)
384
+ */
385
+ completeOperation(session) {
386
+ if (this.execution) {
387
+ this.execution.completeOperation(session?.user_id, session?.session_id);
388
+ }
389
+ }
390
+ /**
391
+ * Get tools available for a role
392
+ */
393
+ getToolsForRole(role) {
394
+ if (this.registry) {
395
+ return this.registry.getToolsForRole(role);
396
+ }
397
+ return [];
398
+ }
399
+ /**
400
+ * Get individual guard instances for advanced usage
401
+ */
402
+ getGuards() {
403
+ return {
404
+ sanitizer: this.sanitizer,
405
+ registry: this.registry,
406
+ policy: this.policy,
407
+ tenant: this.tenant,
408
+ schema: this.schema,
409
+ execution: this.execution,
410
+ output: this.output,
411
+ conversation: this.conversation,
412
+ chain: this.chain,
413
+ encoding: this.encoding,
414
+ };
415
+ }
416
+ /**
417
+ * Reset session state (for testing or session end)
418
+ */
419
+ resetSession(sessionId) {
420
+ this.conversation?.resetSession(sessionId);
421
+ this.chain?.resetSession(sessionId);
422
+ this.execution?.reset(undefined, sessionId);
423
+ }
424
+ }
425
+ exports.TrustGuard = TrustGuard;
426
+ // Export integrations
427
+ __exportStar(require("./integrations/index.js"), exports);
428
+ // Default export
429
+ exports.default = TrustGuard;
430
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;;AAEH,eAAe;AACf,0CAAwB;AAExB,gDAAgD;AAChD,4DAAoG;AAA3F,iHAAA,cAAc,OAAA;AACvB,wDAA0E;AAAjE,6GAAA,YAAY,OAAA;AACrB,oDAAoE;AAA3D,yGAAA,UAAU,OAAA;AACnB,4DAAgF;AAAvE,iHAAA,cAAc,OAAA;AACvB,8DAAmF;AAA1E,mHAAA,eAAe,OAAA;AACxB,gEAAsF;AAA7E,qHAAA,gBAAgB,OAAA;AACzB,wDAA0E;AAAjE,6GAAA,YAAY,OAAA;AACrB,kEAAyF;AAAhF,uHAAA,iBAAiB,OAAA;AAC1B,sEAA6F;AAApF,0HAAA,kBAAkB,OAAA;AAC3B,gEAAsF;AAA7E,qHAAA,gBAAgB,OAAA;AAEzB,yCAAyC;AACzC,8DAA6H;AAApH,mHAAA,eAAe,OAAA;AACxB,sDAAsG;AAA7F,2GAAA,WAAW,OAAA;AACpB,gDAAkH;AAAzG,qGAAA,QAAQ,OAAA;AACjB,sEAAgI;AAAvH,0HAAA,kBAAkB,OAAA;AAC3B,gFAAkK;AAAzJ,oIAAA,uBAAuB,OAAA;AAChC,4DAAkI;AAAzH,iHAAA,cAAc,OAAA;AACvB,0DAAkJ;AAAzI,+GAAA,aAAa,OAAA;AAEtB,yDAAyD;AACzD,kEAAoL;AAA3K,sHAAA,gBAAgB,OAAA;AACzB,sEAAuI;AAA9H,0HAAA,kBAAkB,OAAA;AAC3B,8EAA6J;AAApJ,kIAAA,sBAAsB,OAAA;AAE/B,yDAAyD;AACzD,gFAA0K;AAAjK,oIAAA,uBAAuB,OAAA;AAChC,4EAAyJ;AAAhJ,gIAAA,qBAAqB,OAAA;AAE9B,wBAAwB;AACxB,8DAA0D;AAC1D,0DAAsD;AACtD,sDAAkD;AAClD,8DAA0D;AAC1D,gEAA4D;AAC5D,kEAA8D;AAC9D,0DAAsD;AACtD,oEAAgE;AAChE,wEAAmE;AACnE,kEAA8D;AAS9D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAa,UAAU;IAarB,YAAY,SAA2B,EAAE;QACvC,oCAAoC;QACpC,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,SAAS,GAAG,IAAI,gCAAc,CAAC;gBAClC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS;gBACtC,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc;aACjD,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;YACjE,IAAI,CAAC,QAAQ,GAAG,IAAI,4BAAY,CAAC;gBAC/B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAU,CAAC;gBAC3B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa;aAC5C,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACrC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB;gBACnD,CAAC,CAAC,IAAI,GAAG,CACL,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;oBAClE,EAAE;oBACF,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;iBAC/C,CAAC,CACH;gBACH,CAAC,CAAC,SAAS,CAAC;YAEd,IAAI,CAAC,MAAM,GAAG,IAAI,gCAAc,CAAC;gBAC/B,iBAAiB,EAAE,YAAY;aAChC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,GAAG,IAAI,kCAAe,CAAC;gBAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW;aACxC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,SAAS,GAAG,IAAI,oCAAgB,CAAC;gBACpC,oBAAoB,EAAE,MAAM,CAAC,SAAS,EAAE,oBAAoB;gBAC5D,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,kBAAkB;gBACxD,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc;gBAChD,gBAAgB,EAAE,MAAM,CAAC,SAAS,EAAE,gBAAgB;gBACpD,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc;aACjD,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,GAAG,IAAI,4BAAY,CAAC;gBAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS;gBACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa;gBAC3C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW;aACxC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,sCAAiB,CAAC;gBACxC,qBAAqB,EAAE,MAAM,CAAC,YAAY,EAAE,qBAAqB;gBACjE,mBAAmB,EAAE,MAAM,CAAC,YAAY,EAAE,mBAAmB;aAC9D,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,GAAG,IAAI,yCAAkB,CAAC;gBAClC,kBAAkB,EAAE,MAAM,CAAC,KAAK,EAAE,kBAAkB;gBACpD,2BAA2B,EAAE,MAAM,CAAC,KAAK,EAAE,2BAA2B;gBACtE,cAAc,EAAE,MAAM,CAAC,KAAK,EAAE,cAAc;aAC7C,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,oCAAgB,CAAC;gBACnC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB;gBACnD,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,eAAe;aAClD,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC7C,IAAI,KAAK,KAAK,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACrC,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;gBACxC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CACH,QAAgB,EAChB,MAA2B,EAC3B,OAAmC,EACnC,UAII,EAAE;QAEN,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACjF,MAAM,aAAa,GAAa,EAAE,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,eAAe,SAAS,eAAe,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;QAEvE,8BAA8B;QAC9B,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAE1E,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,eAAe,SAAS,gCAAgC,EAAE,MAAM,CAAC,CAAC;gBAC9E,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,UAAU;oBACvB,YAAY,EAAE,cAAc,CAAC,MAAM;oBACnC,cAAc,EAAE,cAAc,CAAC,UAAU;oBACzC,QAAQ,EAAE,cAAc;oBACxB,UAAU,EAAE,SAAS;iBACtB,CAAC;YACJ,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC;QAED,yBAAyB;QACzB,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAE9E,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,eAAe,SAAS,iBAAiB,EAAE,MAAM,CAAC,CAAC;gBAC/D,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,IAAI;oBACjB,YAAY,EAAE,eAAe,CAAC,MAAM;oBACpC,cAAc,EAAE,eAAe,CAAC,UAAU;oBAC1C,SAAS,EAAE,eAAe;oBAC1B,UAAU,EAAE,SAAS;iBACtB,CAAC;YACJ,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;YAClE,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CACxC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,SAAS,EACjB,CAAC,QAAQ,CAAC,EACV,OAAO,CAAC,WAAW,EACnB,SAAS,CACV,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,eAAe,SAAS,iCAAiC,EAAE,MAAM,CAAC,CAAC;gBAC/E,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,MAAM;oBACnB,YAAY,EAAE,UAAU,CAAC,MAAM;oBAC/B,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC;oBAC5D,YAAY,EAAE,UAAU;oBACxB,UAAU,EAAE,SAAS;iBACtB,CAAC;YACJ,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;QAED,oBAAoB;QACpB,IAAI,IAAgC,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CACxC,QAAQ,EACR,OAAO,EAAE,IAAI,IAAK,EAAW,EAC7B,SAAS,CACV,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,eAAe,SAAS,iBAAiB,EAAE,MAAM,CAAC,CAAC;gBAC/D,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,IAAI;oBACjB,YAAY,EAAE,cAAc,CAAC,MAAM;oBACnC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC;oBAChE,QAAQ,EAAE,cAAc;oBACxB,UAAU,EAAE,SAAS;iBACtB,CAAC;YACJ,CAAC;YAED,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB;gBAC3C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC;gBACpF,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAE5E,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,eAAe,SAAS,mCAAmC,EAAE,MAAM,CAAC,CAAC;gBACjF,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,OAAO;oBACpB,YAAY,EAAE,WAAW,CAAC,MAAM;oBAChC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC;oBAC7D,KAAK,EAAE,WAAW;oBAClB,UAAU,EAAE,SAAS;iBACtB,CAAC;YACJ,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CACpC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,OAAO,CAAC,WAAW,EACnB,SAAS,CACV,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,eAAe,SAAS,iBAAiB,EAAE,MAAM,CAAC,CAAC;gBAC/D,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,IAAI;oBACjB,YAAY,EAAE,YAAY,CAAC,MAAM;oBACjC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC;oBAC9D,MAAM,EAAE,YAAY;oBACpB,UAAU,EAAE,SAAS;iBACtB,CAAC;YACJ,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC;QAED,sBAAsB;QACtB,IAAI,cAAc,GAAG,MAAM,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAE7E,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,eAAe,SAAS,iBAAiB,EAAE,MAAM,CAAC,CAAC;gBAC/D,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,IAAI;oBACjB,YAAY,EAAE,YAAY,CAAC,MAAM;oBACjC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC;oBAC9D,MAAM,EAAE,YAAY;oBACpB,UAAU,EAAE,SAAS;iBACtB,CAAC;YACJ,CAAC;YAED,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;gBACjC,cAAc,GAAG,YAAY,CAAC,eAAe,CAAC;YAChD,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;YAE3E,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,eAAe,SAAS,iBAAiB,EAAE,MAAM,CAAC,CAAC;gBAC/D,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,IAAI;oBACjB,YAAY,EAAE,YAAY,CAAC,MAAM;oBACjC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC;oBAC9D,MAAM,EAAE,YAAY;oBACpB,UAAU,EAAE,SAAS;iBACtB,CAAC;YACJ,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC;QAED,wCAAwC;QACxC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CACrC,QAAQ,EACR,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,UAAU,EACnB,SAAS,CACV,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,eAAe,SAAS,iBAAiB,EAAE,MAAM,CAAC,CAAC;gBAC/D,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,IAAI;oBACjB,YAAY,EAAE,UAAU,CAAC,MAAM;oBAC/B,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC;oBAC5D,SAAS,EAAE,UAAU;oBACrB,UAAU,EAAE,SAAS;iBACtB,CAAC;YACJ,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,eAAe,SAAS,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAEnE,OAAO;YACL,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,aAAa;YAC7B,UAAU,EAAE,SAAS;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAW,EAAE,IAAa,EAAE,SAAkB;QAMzD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,MAAM;gBAChB,YAAY,EAAE,KAAK;gBACnB,gBAAgB,EAAE,KAAK;aACxB,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3D,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,iBAAiB;YAClC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAC5C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;SACrD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAwB;QACxC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,IAAU;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,SAAiB;QAC5B,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;CACF;AA1YD,gCA0YC;AAED,sBAAsB;AACtB,0DAAwC;AAExC,iBAAiB;AACjB,kBAAe,UAAU,CAAC"}