@trenchwork/erosolar 1.1.16
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.
- package/LICENSE +21 -0
- package/README.md +232 -0
- package/agents/erosolar-code.rules.json +199 -0
- package/dist/bin/cliMode.d.ts +8 -0
- package/dist/bin/cliMode.d.ts.map +1 -0
- package/dist/bin/cliMode.js +20 -0
- package/dist/bin/cliMode.js.map +1 -0
- package/dist/bin/deepseek.d.ts +3 -0
- package/dist/bin/deepseek.d.ts.map +1 -0
- package/dist/bin/deepseek.js +232 -0
- package/dist/bin/deepseek.js.map +1 -0
- package/dist/bin/erosolar.d.ts +7 -0
- package/dist/bin/erosolar.d.ts.map +1 -0
- package/dist/bin/erosolar.js +7 -0
- package/dist/bin/erosolar.js.map +1 -0
- package/dist/bin/selfTest.d.ts +14 -0
- package/dist/bin/selfTest.d.ts.map +1 -0
- package/dist/bin/selfTest.js +298 -0
- package/dist/bin/selfTest.js.map +1 -0
- package/dist/capabilities/baseCapability.d.ts +72 -0
- package/dist/capabilities/baseCapability.d.ts.map +1 -0
- package/dist/capabilities/baseCapability.js +183 -0
- package/dist/capabilities/baseCapability.js.map +1 -0
- package/dist/capabilities/bashCapability.d.ts +13 -0
- package/dist/capabilities/bashCapability.d.ts.map +1 -0
- package/dist/capabilities/bashCapability.js +24 -0
- package/dist/capabilities/bashCapability.js.map +1 -0
- package/dist/capabilities/editCapability.d.ts +17 -0
- package/dist/capabilities/editCapability.d.ts.map +1 -0
- package/dist/capabilities/editCapability.js +27 -0
- package/dist/capabilities/editCapability.js.map +1 -0
- package/dist/capabilities/enhancedGitCapability.d.ts +7 -0
- package/dist/capabilities/enhancedGitCapability.d.ts.map +1 -0
- package/dist/capabilities/enhancedGitCapability.js +220 -0
- package/dist/capabilities/enhancedGitCapability.js.map +1 -0
- package/dist/capabilities/filesystemCapability.d.ts +13 -0
- package/dist/capabilities/filesystemCapability.d.ts.map +1 -0
- package/dist/capabilities/filesystemCapability.js +24 -0
- package/dist/capabilities/filesystemCapability.js.map +1 -0
- package/dist/capabilities/gitHistoryCapability.d.ts +6 -0
- package/dist/capabilities/gitHistoryCapability.d.ts.map +1 -0
- package/dist/capabilities/gitHistoryCapability.js +184 -0
- package/dist/capabilities/gitHistoryCapability.js.map +1 -0
- package/dist/capabilities/hitlCapability.d.ts +18 -0
- package/dist/capabilities/hitlCapability.d.ts.map +1 -0
- package/dist/capabilities/hitlCapability.js +29 -0
- package/dist/capabilities/hitlCapability.js.map +1 -0
- package/dist/capabilities/index.d.ts +13 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +18 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/kaliCapability.d.ts +14 -0
- package/dist/capabilities/kaliCapability.d.ts.map +1 -0
- package/dist/capabilities/kaliCapability.js +478 -0
- package/dist/capabilities/kaliCapability.js.map +1 -0
- package/dist/capabilities/mcpCapability.d.ts +7 -0
- package/dist/capabilities/mcpCapability.d.ts.map +1 -0
- package/dist/capabilities/mcpCapability.js +80 -0
- package/dist/capabilities/mcpCapability.js.map +1 -0
- package/dist/capabilities/memoryCapability.d.ts +10 -0
- package/dist/capabilities/memoryCapability.d.ts.map +1 -0
- package/dist/capabilities/memoryCapability.js +22 -0
- package/dist/capabilities/memoryCapability.js.map +1 -0
- package/dist/capabilities/notebookCapability.d.ts +6 -0
- package/dist/capabilities/notebookCapability.d.ts.map +1 -0
- package/dist/capabilities/notebookCapability.js +17 -0
- package/dist/capabilities/notebookCapability.js.map +1 -0
- package/dist/capabilities/searchCapability.d.ts +19 -0
- package/dist/capabilities/searchCapability.d.ts.map +1 -0
- package/dist/capabilities/searchCapability.js +29 -0
- package/dist/capabilities/searchCapability.js.map +1 -0
- package/dist/capabilities/skillCapability.d.ts +6 -0
- package/dist/capabilities/skillCapability.d.ts.map +1 -0
- package/dist/capabilities/skillCapability.js +17 -0
- package/dist/capabilities/skillCapability.js.map +1 -0
- package/dist/capabilities/todoCapability.d.ts +11 -0
- package/dist/capabilities/todoCapability.d.ts.map +1 -0
- package/dist/capabilities/todoCapability.js +22 -0
- package/dist/capabilities/todoCapability.js.map +1 -0
- package/dist/capabilities/toolManifest.d.ts +3 -0
- package/dist/capabilities/toolManifest.d.ts.map +1 -0
- package/dist/capabilities/toolManifest.js +163 -0
- package/dist/capabilities/toolManifest.js.map +1 -0
- package/dist/capabilities/toolRegistry.d.ts +25 -0
- package/dist/capabilities/toolRegistry.d.ts.map +1 -0
- package/dist/capabilities/toolRegistry.js +150 -0
- package/dist/capabilities/toolRegistry.js.map +1 -0
- package/dist/capabilities/unifiedCodingCapability.d.ts +62 -0
- package/dist/capabilities/unifiedCodingCapability.d.ts.map +1 -0
- package/dist/capabilities/unifiedCodingCapability.js +788 -0
- package/dist/capabilities/unifiedCodingCapability.js.map +1 -0
- package/dist/capabilities/webCapability.d.ts +23 -0
- package/dist/capabilities/webCapability.d.ts.map +1 -0
- package/dist/capabilities/webCapability.js +33 -0
- package/dist/capabilities/webCapability.js.map +1 -0
- package/dist/config.d.ts +25 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +155 -0
- package/dist/config.js.map +1 -0
- package/dist/contracts/agent-profiles.schema.json +43 -0
- package/dist/contracts/agent-schemas.json +470 -0
- package/dist/contracts/models.schema.json +9 -0
- package/dist/contracts/module-schema.json +367 -0
- package/dist/contracts/schemas/agent-profile.schema.json +157 -0
- package/dist/contracts/schemas/agent-rules.schema.json +238 -0
- package/dist/contracts/schemas/agent-schemas.schema.json +528 -0
- package/dist/contracts/schemas/agent.schema.json +90 -0
- package/dist/contracts/schemas/tool-selection.schema.json +174 -0
- package/dist/contracts/tools.schema.json +42 -0
- package/dist/contracts/unified-schema.json +660 -0
- package/dist/contracts/v1/agent.d.ts +179 -0
- package/dist/contracts/v1/agent.d.ts.map +1 -0
- package/dist/contracts/v1/agent.js +8 -0
- package/dist/contracts/v1/agent.js.map +1 -0
- package/dist/contracts/v1/agentProfileManifest.d.ts +60 -0
- package/dist/contracts/v1/agentProfileManifest.d.ts.map +1 -0
- package/dist/contracts/v1/agentProfileManifest.js +9 -0
- package/dist/contracts/v1/agentProfileManifest.js.map +1 -0
- package/dist/contracts/v1/agentRules.d.ts +60 -0
- package/dist/contracts/v1/agentRules.d.ts.map +1 -0
- package/dist/contracts/v1/agentRules.js +10 -0
- package/dist/contracts/v1/agentRules.js.map +1 -0
- package/dist/contracts/v1/provider.d.ts +149 -0
- package/dist/contracts/v1/provider.d.ts.map +1 -0
- package/dist/contracts/v1/provider.js +7 -0
- package/dist/contracts/v1/provider.js.map +1 -0
- package/dist/contracts/v1/tool.d.ts +136 -0
- package/dist/contracts/v1/tool.d.ts.map +1 -0
- package/dist/contracts/v1/tool.js +7 -0
- package/dist/contracts/v1/tool.js.map +1 -0
- package/dist/contracts/v1/toolAccess.d.ts +43 -0
- package/dist/contracts/v1/toolAccess.d.ts.map +1 -0
- package/dist/contracts/v1/toolAccess.js +9 -0
- package/dist/contracts/v1/toolAccess.js.map +1 -0
- package/dist/core/agent.d.ts +320 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +1627 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/agentProfileManifest.d.ts +3 -0
- package/dist/core/agentProfileManifest.d.ts.map +1 -0
- package/dist/core/agentProfileManifest.js +188 -0
- package/dist/core/agentProfileManifest.js.map +1 -0
- package/dist/core/agentProfiles.d.ts +22 -0
- package/dist/core/agentProfiles.d.ts.map +1 -0
- package/dist/core/agentProfiles.js +35 -0
- package/dist/core/agentProfiles.js.map +1 -0
- package/dist/core/agentRegistry.d.ts +111 -0
- package/dist/core/agentRegistry.d.ts.map +1 -0
- package/dist/core/agentRegistry.js +229 -0
- package/dist/core/agentRegistry.js.map +1 -0
- package/dist/core/agentRulebook.d.ts +11 -0
- package/dist/core/agentRulebook.d.ts.map +1 -0
- package/dist/core/agentRulebook.js +136 -0
- package/dist/core/agentRulebook.js.map +1 -0
- package/dist/core/agentSchemaLoader.d.ts +131 -0
- package/dist/core/agentSchemaLoader.d.ts.map +1 -0
- package/dist/core/agentSchemaLoader.js +235 -0
- package/dist/core/agentSchemaLoader.js.map +1 -0
- package/dist/core/aiErrorFixer.d.ts +57 -0
- package/dist/core/aiErrorFixer.d.ts.map +1 -0
- package/dist/core/aiErrorFixer.js +214 -0
- package/dist/core/aiErrorFixer.js.map +1 -0
- package/dist/core/auth.d.ts +15 -0
- package/dist/core/auth.d.ts.map +1 -0
- package/dist/core/auth.js +291 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/bashCommandGuidance.d.ts +16 -0
- package/dist/core/bashCommandGuidance.d.ts.map +1 -0
- package/dist/core/bashCommandGuidance.js +40 -0
- package/dist/core/bashCommandGuidance.js.map +1 -0
- package/dist/core/constants.d.ts +31 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +62 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/contextManager.d.ts +271 -0
- package/dist/core/contextManager.d.ts.map +1 -0
- package/dist/core/contextManager.js +1073 -0
- package/dist/core/contextManager.js.map +1 -0
- package/dist/core/contextWindow.d.ts +42 -0
- package/dist/core/contextWindow.d.ts.map +1 -0
- package/dist/core/contextWindow.js +123 -0
- package/dist/core/contextWindow.js.map +1 -0
- package/dist/core/customCommands.d.ts +19 -0
- package/dist/core/customCommands.d.ts.map +1 -0
- package/dist/core/customCommands.js +85 -0
- package/dist/core/customCommands.js.map +1 -0
- package/dist/core/errors/apiKeyErrors.d.ts +11 -0
- package/dist/core/errors/apiKeyErrors.d.ts.map +1 -0
- package/dist/core/errors/apiKeyErrors.js +159 -0
- package/dist/core/errors/apiKeyErrors.js.map +1 -0
- package/dist/core/errors/errorTypes.d.ts +111 -0
- package/dist/core/errors/errorTypes.d.ts.map +1 -0
- package/dist/core/errors/errorTypes.js +345 -0
- package/dist/core/errors/errorTypes.js.map +1 -0
- package/dist/core/errors/index.d.ts +50 -0
- package/dist/core/errors/index.d.ts.map +1 -0
- package/dist/core/errors/index.js +156 -0
- package/dist/core/errors/index.js.map +1 -0
- package/dist/core/errors/networkErrors.d.ts +14 -0
- package/dist/core/errors/networkErrors.d.ts.map +1 -0
- package/dist/core/errors/networkErrors.js +53 -0
- package/dist/core/errors/networkErrors.js.map +1 -0
- package/dist/core/errors/safetyValidator.d.ts +109 -0
- package/dist/core/errors/safetyValidator.d.ts.map +1 -0
- package/dist/core/errors/safetyValidator.js +271 -0
- package/dist/core/errors/safetyValidator.js.map +1 -0
- package/dist/core/errors.d.ts +4 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +33 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/finalResponseFormatter.d.ts +10 -0
- package/dist/core/finalResponseFormatter.d.ts.map +1 -0
- package/dist/core/finalResponseFormatter.js +14 -0
- package/dist/core/finalResponseFormatter.js.map +1 -0
- package/dist/core/guardrails.d.ts +146 -0
- package/dist/core/guardrails.d.ts.map +1 -0
- package/dist/core/guardrails.js +361 -0
- package/dist/core/guardrails.js.map +1 -0
- package/dist/core/hitl.d.ts +119 -0
- package/dist/core/hitl.d.ts.map +1 -0
- package/dist/core/hitl.js +387 -0
- package/dist/core/hitl.js.map +1 -0
- package/dist/core/hooks.d.ts +95 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js +239 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +7 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/inputProtection.d.ts +122 -0
- package/dist/core/inputProtection.d.ts.map +1 -0
- package/dist/core/inputProtection.js +422 -0
- package/dist/core/inputProtection.js.map +1 -0
- package/dist/core/modelDiscovery.d.ts +105 -0
- package/dist/core/modelDiscovery.d.ts.map +1 -0
- package/dist/core/modelDiscovery.js +768 -0
- package/dist/core/modelDiscovery.js.map +1 -0
- package/dist/core/multilinePasteHandler.d.ts +35 -0
- package/dist/core/multilinePasteHandler.d.ts.map +1 -0
- package/dist/core/multilinePasteHandler.js +81 -0
- package/dist/core/multilinePasteHandler.js.map +1 -0
- package/dist/core/preferences.d.ts +65 -0
- package/dist/core/preferences.d.ts.map +1 -0
- package/dist/core/preferences.js +305 -0
- package/dist/core/preferences.js.map +1 -0
- package/dist/core/providerKeys.d.ts +20 -0
- package/dist/core/providerKeys.d.ts.map +1 -0
- package/dist/core/providerKeys.js +40 -0
- package/dist/core/providerKeys.js.map +1 -0
- package/dist/core/refusalDetection.d.ts +2 -0
- package/dist/core/refusalDetection.d.ts.map +1 -0
- package/dist/core/refusalDetection.js +51 -0
- package/dist/core/refusalDetection.js.map +1 -0
- package/dist/core/resultVerification.d.ts +47 -0
- package/dist/core/resultVerification.d.ts.map +1 -0
- package/dist/core/resultVerification.js +126 -0
- package/dist/core/resultVerification.js.map +1 -0
- package/dist/core/schemaValidator.d.ts +49 -0
- package/dist/core/schemaValidator.d.ts.map +1 -0
- package/dist/core/schemaValidator.js +234 -0
- package/dist/core/schemaValidator.js.map +1 -0
- package/dist/core/secretStore.d.ts +48 -0
- package/dist/core/secretStore.d.ts.map +1 -0
- package/dist/core/secretStore.js +268 -0
- package/dist/core/secretStore.js.map +1 -0
- package/dist/core/sessionStorage.d.ts +10 -0
- package/dist/core/sessionStorage.d.ts.map +1 -0
- package/dist/core/sessionStorage.js +46 -0
- package/dist/core/sessionStorage.js.map +1 -0
- package/dist/core/sessionStore.d.ts +35 -0
- package/dist/core/sessionStore.d.ts.map +1 -0
- package/dist/core/sessionStore.js +191 -0
- package/dist/core/sessionStore.js.map +1 -0
- package/dist/core/shutdown.d.ts +34 -0
- package/dist/core/shutdown.d.ts.map +1 -0
- package/dist/core/shutdown.js +186 -0
- package/dist/core/shutdown.js.map +1 -0
- package/dist/core/sudoPasswordManager.d.ts +52 -0
- package/dist/core/sudoPasswordManager.d.ts.map +1 -0
- package/dist/core/sudoPasswordManager.js +115 -0
- package/dist/core/sudoPasswordManager.js.map +1 -0
- package/dist/core/taskCompletionDetector.d.ts +117 -0
- package/dist/core/taskCompletionDetector.d.ts.map +1 -0
- package/dist/core/taskCompletionDetector.js +532 -0
- package/dist/core/taskCompletionDetector.js.map +1 -0
- package/dist/core/testFailureMonitor.d.ts +67 -0
- package/dist/core/testFailureMonitor.d.ts.map +1 -0
- package/dist/core/testFailureMonitor.js +262 -0
- package/dist/core/testFailureMonitor.js.map +1 -0
- package/dist/core/toolPreconditions.d.ts +34 -0
- package/dist/core/toolPreconditions.d.ts.map +1 -0
- package/dist/core/toolPreconditions.js +242 -0
- package/dist/core/toolPreconditions.js.map +1 -0
- package/dist/core/toolRuntime.d.ts +192 -0
- package/dist/core/toolRuntime.d.ts.map +1 -0
- package/dist/core/toolRuntime.js +460 -0
- package/dist/core/toolRuntime.js.map +1 -0
- package/dist/core/types/utilityTypes.d.ts +183 -0
- package/dist/core/types/utilityTypes.d.ts.map +1 -0
- package/dist/core/types/utilityTypes.js +273 -0
- package/dist/core/types/utilityTypes.js.map +1 -0
- package/dist/core/types.d.ts +334 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +76 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/updateChecker.d.ts +148 -0
- package/dist/core/updateChecker.d.ts.map +1 -0
- package/dist/core/updateChecker.js +599 -0
- package/dist/core/updateChecker.js.map +1 -0
- package/dist/core/usageTracker.d.ts +11 -0
- package/dist/core/usageTracker.d.ts.map +1 -0
- package/dist/core/usageTracker.js +128 -0
- package/dist/core/usageTracker.js.map +1 -0
- package/dist/headless/interactiveShell.d.ts +22 -0
- package/dist/headless/interactiveShell.d.ts.map +1 -0
- package/dist/headless/interactiveShell.js +2100 -0
- package/dist/headless/interactiveShell.js.map +1 -0
- package/dist/leanAgent.d.ts +73 -0
- package/dist/leanAgent.d.ts.map +1 -0
- package/dist/leanAgent.js +177 -0
- package/dist/leanAgent.js.map +1 -0
- package/dist/plugins/index.d.ts +49 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +104 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/providers/anthropic/index.d.ts +9 -0
- package/dist/plugins/providers/anthropic/index.d.ts.map +1 -0
- package/dist/plugins/providers/anthropic/index.js +48 -0
- package/dist/plugins/providers/anthropic/index.js.map +1 -0
- package/dist/plugins/providers/deepseek/index.d.ts +11 -0
- package/dist/plugins/providers/deepseek/index.d.ts.map +1 -0
- package/dist/plugins/providers/deepseek/index.js +54 -0
- package/dist/plugins/providers/deepseek/index.js.map +1 -0
- package/dist/plugins/providers/index.d.ts +2 -0
- package/dist/plugins/providers/index.d.ts.map +1 -0
- package/dist/plugins/providers/index.js +17 -0
- package/dist/plugins/providers/index.js.map +1 -0
- package/dist/plugins/providers/openai/index.d.ts +10 -0
- package/dist/plugins/providers/openai/index.d.ts.map +1 -0
- package/dist/plugins/providers/openai/index.js +47 -0
- package/dist/plugins/providers/openai/index.js.map +1 -0
- package/dist/plugins/providers/xai/index.d.ts +10 -0
- package/dist/plugins/providers/xai/index.d.ts.map +1 -0
- package/dist/plugins/providers/xai/index.js +47 -0
- package/dist/plugins/providers/xai/index.js.map +1 -0
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +10 -0
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +110 -0
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +1 -0
- package/dist/plugins/tools/bash/localBashPlugin.d.ts +3 -0
- package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/bash/localBashPlugin.js +14 -0
- package/dist/plugins/tools/bash/localBashPlugin.js.map +1 -0
- package/dist/plugins/tools/edit/editPlugin.d.ts +9 -0
- package/dist/plugins/tools/edit/editPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/edit/editPlugin.js +15 -0
- package/dist/plugins/tools/edit/editPlugin.js.map +1 -0
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts +3 -0
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js +9 -0
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js.map +1 -0
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +3 -0
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +14 -0
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +1 -0
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts +3 -0
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js +9 -0
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js.map +1 -0
- package/dist/plugins/tools/index.d.ts +3 -0
- package/dist/plugins/tools/index.d.ts.map +1 -0
- package/dist/plugins/tools/index.js +3 -0
- package/dist/plugins/tools/index.js.map +1 -0
- package/dist/plugins/tools/integrity/integrityPlugin.d.ts +3 -0
- package/dist/plugins/tools/integrity/integrityPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/integrity/integrityPlugin.js +31 -0
- package/dist/plugins/tools/integrity/integrityPlugin.js.map +1 -0
- package/dist/plugins/tools/kali/kaliPlugin.d.ts +3 -0
- package/dist/plugins/tools/kali/kaliPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/kali/kaliPlugin.js +10 -0
- package/dist/plugins/tools/kali/kaliPlugin.js.map +1 -0
- package/dist/plugins/tools/mcp/mcpClient.d.ts +49 -0
- package/dist/plugins/tools/mcp/mcpClient.d.ts.map +1 -0
- package/dist/plugins/tools/mcp/mcpClient.js +112 -0
- package/dist/plugins/tools/mcp/mcpClient.js.map +1 -0
- package/dist/plugins/tools/mcp/mcpPlugin.d.ts +3 -0
- package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/mcp/mcpPlugin.js +10 -0
- package/dist/plugins/tools/mcp/mcpPlugin.js.map +1 -0
- package/dist/plugins/tools/nodeDefaults.d.ts +13 -0
- package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -0
- package/dist/plugins/tools/nodeDefaults.js +37 -0
- package/dist/plugins/tools/nodeDefaults.js.map +1 -0
- package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +3 -0
- package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/orchestration/orchestrationPlugin.js +340 -0
- package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +1 -0
- package/dist/plugins/tools/registry.d.ts +22 -0
- package/dist/plugins/tools/registry.d.ts.map +1 -0
- package/dist/plugins/tools/registry.js +58 -0
- package/dist/plugins/tools/registry.js.map +1 -0
- package/dist/plugins/tools/search/localSearchPlugin.d.ts +3 -0
- package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/search/localSearchPlugin.js +14 -0
- package/dist/plugins/tools/search/localSearchPlugin.js.map +1 -0
- package/dist/plugins/tools/skills/skillPlugin.d.ts +3 -0
- package/dist/plugins/tools/skills/skillPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/skills/skillPlugin.js +27 -0
- package/dist/plugins/tools/skills/skillPlugin.js.map +1 -0
- package/dist/plugins/tools/todo/todoPlugin.d.ts +3 -0
- package/dist/plugins/tools/todo/todoPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/todo/todoPlugin.js +10 -0
- package/dist/plugins/tools/todo/todoPlugin.js.map +1 -0
- package/dist/providers/baseProvider.d.ts +148 -0
- package/dist/providers/baseProvider.d.ts.map +1 -0
- package/dist/providers/baseProvider.js +284 -0
- package/dist/providers/baseProvider.js.map +1 -0
- package/dist/providers/openaiChatCompletionsProvider.d.ts +64 -0
- package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -0
- package/dist/providers/openaiChatCompletionsProvider.js +1018 -0
- package/dist/providers/openaiChatCompletionsProvider.js.map +1 -0
- package/dist/providers/providerFactory.d.ts +22 -0
- package/dist/providers/providerFactory.d.ts.map +1 -0
- package/dist/providers/providerFactory.js +25 -0
- package/dist/providers/providerFactory.js.map +1 -0
- package/dist/providers/resilientProvider.d.ts +103 -0
- package/dist/providers/resilientProvider.d.ts.map +1 -0
- package/dist/providers/resilientProvider.js +468 -0
- package/dist/providers/resilientProvider.js.map +1 -0
- package/dist/runtime/agentController.d.ts +121 -0
- package/dist/runtime/agentController.d.ts.map +1 -0
- package/dist/runtime/agentController.js +739 -0
- package/dist/runtime/agentController.js.map +1 -0
- package/dist/runtime/agentHost.d.ts +61 -0
- package/dist/runtime/agentHost.d.ts.map +1 -0
- package/dist/runtime/agentHost.js +158 -0
- package/dist/runtime/agentHost.js.map +1 -0
- package/dist/runtime/agentSession.d.ts +49 -0
- package/dist/runtime/agentSession.d.ts.map +1 -0
- package/dist/runtime/agentSession.js +218 -0
- package/dist/runtime/agentSession.js.map +1 -0
- package/dist/runtime/agentSpawningWiring.d.ts +23 -0
- package/dist/runtime/agentSpawningWiring.d.ts.map +1 -0
- package/dist/runtime/agentSpawningWiring.js +119 -0
- package/dist/runtime/agentSpawningWiring.js.map +1 -0
- package/dist/runtime/agentWorkerPool.d.ts +167 -0
- package/dist/runtime/agentWorkerPool.d.ts.map +1 -0
- package/dist/runtime/agentWorkerPool.js +435 -0
- package/dist/runtime/agentWorkerPool.js.map +1 -0
- package/dist/runtime/node.d.ts +7 -0
- package/dist/runtime/node.d.ts.map +1 -0
- package/dist/runtime/node.js +56 -0
- package/dist/runtime/node.js.map +1 -0
- package/dist/runtime/universal.d.ts +18 -0
- package/dist/runtime/universal.d.ts.map +1 -0
- package/dist/runtime/universal.js +21 -0
- package/dist/runtime/universal.js.map +1 -0
- package/dist/shell/autoExecutor.d.ts +70 -0
- package/dist/shell/autoExecutor.d.ts.map +1 -0
- package/dist/shell/autoExecutor.js +320 -0
- package/dist/shell/autoExecutor.js.map +1 -0
- package/dist/shell/commandRegistry.d.ts +122 -0
- package/dist/shell/commandRegistry.d.ts.map +1 -0
- package/dist/shell/commandRegistry.js +355 -0
- package/dist/shell/commandRegistry.js.map +1 -0
- package/dist/shell/composableMessage.d.ts +178 -0
- package/dist/shell/composableMessage.d.ts.map +1 -0
- package/dist/shell/composableMessage.js +384 -0
- package/dist/shell/composableMessage.js.map +1 -0
- package/dist/shell/liveStatus.d.ts +27 -0
- package/dist/shell/liveStatus.d.ts.map +1 -0
- package/dist/shell/liveStatus.js +53 -0
- package/dist/shell/liveStatus.js.map +1 -0
- package/dist/shell/systemPrompt.d.ts +12 -0
- package/dist/shell/systemPrompt.d.ts.map +1 -0
- package/dist/shell/systemPrompt.js +16 -0
- package/dist/shell/systemPrompt.js.map +1 -0
- package/dist/shell/vimMode.d.ts +66 -0
- package/dist/shell/vimMode.d.ts.map +1 -0
- package/dist/shell/vimMode.js +435 -0
- package/dist/shell/vimMode.js.map +1 -0
- package/dist/tools/bashTools.d.ts +11 -0
- package/dist/tools/bashTools.d.ts.map +1 -0
- package/dist/tools/bashTools.js +779 -0
- package/dist/tools/bashTools.js.map +1 -0
- package/dist/tools/diffUtils.d.ts +43 -0
- package/dist/tools/diffUtils.d.ts.map +1 -0
- package/dist/tools/diffUtils.js +607 -0
- package/dist/tools/diffUtils.js.map +1 -0
- package/dist/tools/editTools.d.ts +29 -0
- package/dist/tools/editTools.d.ts.map +1 -0
- package/dist/tools/editTools.js +792 -0
- package/dist/tools/editTools.js.map +1 -0
- package/dist/tools/fileChangeTracker.d.ts +47 -0
- package/dist/tools/fileChangeTracker.d.ts.map +1 -0
- package/dist/tools/fileChangeTracker.js +154 -0
- package/dist/tools/fileChangeTracker.js.map +1 -0
- package/dist/tools/fileReadTracker.d.ts +69 -0
- package/dist/tools/fileReadTracker.d.ts.map +1 -0
- package/dist/tools/fileReadTracker.js +213 -0
- package/dist/tools/fileReadTracker.js.map +1 -0
- package/dist/tools/fileTools.d.ts +3 -0
- package/dist/tools/fileTools.d.ts.map +1 -0
- package/dist/tools/fileTools.js +389 -0
- package/dist/tools/fileTools.js.map +1 -0
- package/dist/tools/grepTools.d.ts +3 -0
- package/dist/tools/grepTools.d.ts.map +1 -0
- package/dist/tools/grepTools.js +128 -0
- package/dist/tools/grepTools.js.map +1 -0
- package/dist/tools/heliaControl.d.ts +51 -0
- package/dist/tools/heliaControl.d.ts.map +1 -0
- package/dist/tools/heliaControl.js +93 -0
- package/dist/tools/heliaControl.js.map +1 -0
- package/dist/tools/hitlTools.d.ts +7 -0
- package/dist/tools/hitlTools.d.ts.map +1 -0
- package/dist/tools/hitlTools.js +185 -0
- package/dist/tools/hitlTools.js.map +1 -0
- package/dist/tools/localExplore.d.ts +38 -0
- package/dist/tools/localExplore.d.ts.map +1 -0
- package/dist/tools/localExplore.js +30 -0
- package/dist/tools/localExplore.js.map +1 -0
- package/dist/tools/memoryTools.d.ts +20 -0
- package/dist/tools/memoryTools.d.ts.map +1 -0
- package/dist/tools/memoryTools.js +180 -0
- package/dist/tools/memoryTools.js.map +1 -0
- package/dist/tools/notebookTools.d.ts +20 -0
- package/dist/tools/notebookTools.d.ts.map +1 -0
- package/dist/tools/notebookTools.js +140 -0
- package/dist/tools/notebookTools.js.map +1 -0
- package/dist/tools/searchTools.d.ts +12 -0
- package/dist/tools/searchTools.d.ts.map +1 -0
- package/dist/tools/searchTools.js +413 -0
- package/dist/tools/searchTools.js.map +1 -0
- package/dist/tools/skillTools.d.ts +24 -0
- package/dist/tools/skillTools.d.ts.map +1 -0
- package/dist/tools/skillTools.js +140 -0
- package/dist/tools/skillTools.js.map +1 -0
- package/dist/tools/todoTools.d.ts +24 -0
- package/dist/tools/todoTools.d.ts.map +1 -0
- package/dist/tools/todoTools.js +101 -0
- package/dist/tools/todoTools.js.map +1 -0
- package/dist/tools/webTools.d.ts +26 -0
- package/dist/tools/webTools.d.ts.map +1 -0
- package/dist/tools/webTools.js +332 -0
- package/dist/tools/webTools.js.map +1 -0
- package/dist/ui/RenderGate.d.ts +83 -0
- package/dist/ui/RenderGate.d.ts.map +1 -0
- package/dist/ui/RenderGate.js +138 -0
- package/dist/ui/RenderGate.js.map +1 -0
- package/dist/ui/animatedStatus.d.ts +140 -0
- package/dist/ui/animatedStatus.d.ts.map +1 -0
- package/dist/ui/animatedStatus.js +480 -0
- package/dist/ui/animatedStatus.js.map +1 -0
- package/dist/ui/animation/AnimationScheduler.d.ts +197 -0
- package/dist/ui/animation/AnimationScheduler.d.ts.map +1 -0
- package/dist/ui/animation/AnimationScheduler.js +440 -0
- package/dist/ui/animation/AnimationScheduler.js.map +1 -0
- package/dist/ui/codeHighlighter.d.ts +6 -0
- package/dist/ui/codeHighlighter.d.ts.map +1 -0
- package/dist/ui/codeHighlighter.js +855 -0
- package/dist/ui/codeHighlighter.js.map +1 -0
- package/dist/ui/designSystem.d.ts +26 -0
- package/dist/ui/designSystem.d.ts.map +1 -0
- package/dist/ui/designSystem.js +114 -0
- package/dist/ui/designSystem.js.map +1 -0
- package/dist/ui/errorFormatter.d.ts +64 -0
- package/dist/ui/errorFormatter.d.ts.map +1 -0
- package/dist/ui/errorFormatter.js +316 -0
- package/dist/ui/errorFormatter.js.map +1 -0
- package/dist/ui/globalWriteLock.d.ts +63 -0
- package/dist/ui/globalWriteLock.d.ts.map +1 -0
- package/dist/ui/globalWriteLock.js +173 -0
- package/dist/ui/globalWriteLock.js.map +1 -0
- package/dist/ui/index.d.ts +31 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +49 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/ink/App.d.ts +39 -0
- package/dist/ui/ink/App.d.ts.map +1 -0
- package/dist/ui/ink/App.js +9 -0
- package/dist/ui/ink/App.js.map +1 -0
- package/dist/ui/ink/ChatStatic.d.ts +29 -0
- package/dist/ui/ink/ChatStatic.d.ts.map +1 -0
- package/dist/ui/ink/ChatStatic.js +14 -0
- package/dist/ui/ink/ChatStatic.js.map +1 -0
- package/dist/ui/ink/InkPromptController.d.ts +282 -0
- package/dist/ui/ink/InkPromptController.d.ts.map +1 -0
- package/dist/ui/ink/InkPromptController.js +508 -0
- package/dist/ui/ink/InkPromptController.js.map +1 -0
- package/dist/ui/ink/Prompt.d.ts +31 -0
- package/dist/ui/ink/Prompt.d.ts.map +1 -0
- package/dist/ui/ink/Prompt.js +197 -0
- package/dist/ui/ink/Prompt.js.map +1 -0
- package/dist/ui/ink/StatusLine.d.ts +25 -0
- package/dist/ui/ink/StatusLine.d.ts.map +1 -0
- package/dist/ui/ink/StatusLine.js +11 -0
- package/dist/ui/ink/StatusLine.js.map +1 -0
- package/dist/ui/ink/adapter.d.ts +58 -0
- package/dist/ui/ink/adapter.d.ts.map +1 -0
- package/dist/ui/ink/adapter.js +113 -0
- package/dist/ui/ink/adapter.js.map +1 -0
- package/dist/ui/interrupts/InterruptManager.d.ts +157 -0
- package/dist/ui/interrupts/InterruptManager.d.ts.map +1 -0
- package/dist/ui/interrupts/InterruptManager.js +501 -0
- package/dist/ui/interrupts/InterruptManager.js.map +1 -0
- package/dist/ui/layout.d.ts +27 -0
- package/dist/ui/layout.d.ts.map +1 -0
- package/dist/ui/layout.js +184 -0
- package/dist/ui/layout.js.map +1 -0
- package/dist/ui/outputMode.d.ts +58 -0
- package/dist/ui/outputMode.d.ts.map +1 -0
- package/dist/ui/outputMode.js +179 -0
- package/dist/ui/outputMode.js.map +1 -0
- package/dist/ui/overlay/OverlayManager.d.ts +105 -0
- package/dist/ui/overlay/OverlayManager.d.ts.map +1 -0
- package/dist/ui/overlay/OverlayManager.js +304 -0
- package/dist/ui/overlay/OverlayManager.js.map +1 -0
- package/dist/ui/premiumComponents.d.ts +54 -0
- package/dist/ui/premiumComponents.d.ts.map +1 -0
- package/dist/ui/premiumComponents.js +241 -0
- package/dist/ui/premiumComponents.js.map +1 -0
- package/dist/ui/richText.d.ts +13 -0
- package/dist/ui/richText.d.ts.map +1 -0
- package/dist/ui/richText.js +444 -0
- package/dist/ui/richText.js.map +1 -0
- package/dist/ui/telemetry/ResponseTracker.d.ts +22 -0
- package/dist/ui/telemetry/ResponseTracker.d.ts.map +1 -0
- package/dist/ui/telemetry/ResponseTracker.js +60 -0
- package/dist/ui/telemetry/ResponseTracker.js.map +1 -0
- package/dist/ui/telemetry/UITelemetry.d.ts +181 -0
- package/dist/ui/telemetry/UITelemetry.d.ts.map +1 -0
- package/dist/ui/telemetry/UITelemetry.js +446 -0
- package/dist/ui/telemetry/UITelemetry.js.map +1 -0
- package/dist/ui/textHighlighter.d.ts +83 -0
- package/dist/ui/textHighlighter.d.ts.map +1 -0
- package/dist/ui/textHighlighter.js +267 -0
- package/dist/ui/textHighlighter.js.map +1 -0
- package/dist/ui/theme.d.ts +351 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +434 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/ui/toolDisplay.d.ts +221 -0
- package/dist/ui/toolDisplay.d.ts.map +1 -0
- package/dist/ui/toolDisplay.js +1654 -0
- package/dist/ui/toolDisplay.js.map +1 -0
- package/dist/ui/uiConstants.d.ts +253 -0
- package/dist/ui/uiConstants.d.ts.map +1 -0
- package/dist/ui/uiConstants.js +437 -0
- package/dist/ui/uiConstants.js.map +1 -0
- package/dist/utils/analytics.d.ts +2 -0
- package/dist/utils/analytics.d.ts.map +1 -0
- package/dist/utils/analytics.js +51 -0
- package/dist/utils/analytics.js.map +1 -0
- package/dist/utils/askUserPrompt.d.ts +21 -0
- package/dist/utils/askUserPrompt.d.ts.map +1 -0
- package/dist/utils/askUserPrompt.js +87 -0
- package/dist/utils/askUserPrompt.js.map +1 -0
- package/dist/utils/asyncUtils.d.ts +95 -0
- package/dist/utils/asyncUtils.d.ts.map +1 -0
- package/dist/utils/asyncUtils.js +286 -0
- package/dist/utils/asyncUtils.js.map +1 -0
- package/dist/utils/debugLogger.d.ts +6 -0
- package/dist/utils/debugLogger.d.ts.map +1 -0
- package/dist/utils/debugLogger.js +39 -0
- package/dist/utils/debugLogger.js.map +1 -0
- package/dist/utils/errorUtils.d.ts +12 -0
- package/dist/utils/errorUtils.d.ts.map +1 -0
- package/dist/utils/errorUtils.js +83 -0
- package/dist/utils/errorUtils.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +10 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +78 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/packageInfo.d.ts +14 -0
- package/dist/utils/packageInfo.d.ts.map +1 -0
- package/dist/utils/packageInfo.js +45 -0
- package/dist/utils/packageInfo.js.map +1 -0
- package/dist/utils/planFormatter.d.ts +34 -0
- package/dist/utils/planFormatter.d.ts.map +1 -0
- package/dist/utils/planFormatter.js +141 -0
- package/dist/utils/planFormatter.js.map +1 -0
- package/dist/utils/securityUtils.d.ts +145 -0
- package/dist/utils/securityUtils.d.ts.map +1 -0
- package/dist/utils/securityUtils.js +507 -0
- package/dist/utils/securityUtils.js.map +1 -0
- package/dist/utils/statusReporter.d.ts +6 -0
- package/dist/utils/statusReporter.d.ts.map +1 -0
- package/dist/utils/statusReporter.js +26 -0
- package/dist/utils/statusReporter.js.map +1 -0
- package/dist/workspace.d.ts +8 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +135 -0
- package/dist/workspace.js.map +1 -0
- package/dist/workspace.validator.d.ts +49 -0
- package/dist/workspace.validator.d.ts.map +1 -0
- package/dist/workspace.validator.js +215 -0
- package/dist/workspace.validator.js.map +1 -0
- package/package.json +135 -0
- package/scripts/postinstall.cjs +58 -0
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input Protection System - Guards against remote anomalys on chat input
|
|
3
|
+
*
|
|
4
|
+
* Protects against:
|
|
5
|
+
* 1. Remote stdin injection anomalys
|
|
6
|
+
* 2. Automated paste anomalys (superhuman typing speed)
|
|
7
|
+
* 3. Escape sequence injection via clipboard
|
|
8
|
+
* 4. Buffer overflow attempts (massive pastes)
|
|
9
|
+
* 5. Control character injection
|
|
10
|
+
* 6. Unicode-based anomalys (homoglyphs, RTL override)
|
|
11
|
+
* 7. Timing-based anomalys (burst injection)
|
|
12
|
+
*
|
|
13
|
+
* @module inputProtection
|
|
14
|
+
*/
|
|
15
|
+
import { EventEmitter } from 'events';
|
|
16
|
+
import { reportStatus } from '../utils/statusReporter.js';
|
|
17
|
+
/** Singleton instance */
|
|
18
|
+
let inputProtectionInstance = null;
|
|
19
|
+
/**
|
|
20
|
+
* Input Protection System
|
|
21
|
+
*/
|
|
22
|
+
export class InputProtection extends EventEmitter {
|
|
23
|
+
config;
|
|
24
|
+
inputTimings = [];
|
|
25
|
+
lastKeystroke = 0;
|
|
26
|
+
burstCounter = 0;
|
|
27
|
+
suspicionScore = 0;
|
|
28
|
+
blockedAnomalys = 0;
|
|
29
|
+
sanitizedInputs = 0;
|
|
30
|
+
isInPasteMode = false;
|
|
31
|
+
pasteStartTime = 0;
|
|
32
|
+
// Dangerous escape sequences to block
|
|
33
|
+
dangerousEscapes = [
|
|
34
|
+
/\x1b\][0-9]+;/, // OSC sequences (can change terminal title, etc.)
|
|
35
|
+
/\x1b[PX^_]/, // DCS, SOS, PM, APC sequences
|
|
36
|
+
/\x1b\[[\d;]*[pls]/i, // Soft reset, various terminal modes
|
|
37
|
+
/\x1b\[\?[\d;]*[hl]/, // Private mode sets (can enable dangerous modes)
|
|
38
|
+
/\x1b\[[\d;]*n/, // Device status queries (info leak)
|
|
39
|
+
/\x1b\[[\d;]*q/, // Keyboard LED control
|
|
40
|
+
/\x1bP[^\\]*\x1b\\/, // Complete DCS sequence
|
|
41
|
+
/\x1b\]0;[^\x07]*\x07/, // Title set sequence
|
|
42
|
+
/\x1b\]52;/, // Clipboard manipulation sequence
|
|
43
|
+
];
|
|
44
|
+
// Dangerous control characters
|
|
45
|
+
dangerousControls = [
|
|
46
|
+
0x00, // NUL - can cause issues
|
|
47
|
+
0x01, // SOH
|
|
48
|
+
0x02, // STX
|
|
49
|
+
0x03, // ETX (Ctrl+C) - allow but track
|
|
50
|
+
0x04, // EOT (Ctrl+D) - allow but track
|
|
51
|
+
0x05, // ENQ
|
|
52
|
+
0x06, // ACK
|
|
53
|
+
0x07, // BEL - annoying beep
|
|
54
|
+
0x0E, // SO - shift out
|
|
55
|
+
0x0F, // SI - shift in
|
|
56
|
+
0x10, // DLE
|
|
57
|
+
0x11, // DC1 (XON)
|
|
58
|
+
0x12, // DC2
|
|
59
|
+
0x13, // DC3 (XOFF)
|
|
60
|
+
0x14, // DC4
|
|
61
|
+
0x15, // NAK
|
|
62
|
+
0x16, // SYN
|
|
63
|
+
0x17, // ETB
|
|
64
|
+
0x18, // CAN
|
|
65
|
+
0x19, // EM
|
|
66
|
+
0x1A, // SUB (Ctrl+Z)
|
|
67
|
+
0x1C, // FS
|
|
68
|
+
0x1D, // GS
|
|
69
|
+
0x1E, // RS
|
|
70
|
+
0x1F, // US
|
|
71
|
+
0x7F, // DEL
|
|
72
|
+
];
|
|
73
|
+
// Unicode anomaly patterns
|
|
74
|
+
unicodeAnomalys = [
|
|
75
|
+
{ pattern: /\u202E/, name: 'RTL override' }, // Right-to-left override
|
|
76
|
+
{ pattern: /\u202D/, name: 'LTR override' }, // Left-to-right override
|
|
77
|
+
{ pattern: /\u202A/, name: 'LTR embedding' }, // Left-to-right embedding
|
|
78
|
+
{ pattern: /\u202B/, name: 'RTL embedding' }, // Right-to-left embedding
|
|
79
|
+
{ pattern: /\u202C/, name: 'Pop direction' }, // Pop directional formatting
|
|
80
|
+
{ pattern: /\u2066/, name: 'LTR isolate' }, // Left-to-right isolate
|
|
81
|
+
{ pattern: /\u2067/, name: 'RTL isolate' }, // Right-to-left isolate
|
|
82
|
+
{ pattern: /\u2068/, name: 'First strong isolate' },
|
|
83
|
+
{ pattern: /\u2069/, name: 'Pop isolate' }, // Pop directional isolate
|
|
84
|
+
{ pattern: /\u200E/, name: 'LTR mark' }, // Left-to-right mark
|
|
85
|
+
{ pattern: /\u200F/, name: 'RTL mark' }, // Right-to-left mark
|
|
86
|
+
{ pattern: /\uFEFF/, name: 'BOM' }, // Byte order mark
|
|
87
|
+
{ pattern: /[\u200B-\u200D]/, name: 'Zero-width chars' }, // Zero-width spaces/joiners
|
|
88
|
+
];
|
|
89
|
+
constructor(config = {}) {
|
|
90
|
+
super();
|
|
91
|
+
this.config = {
|
|
92
|
+
maxCharactersPerSecond: config.maxCharactersPerSecond ?? 500, // Allow fast paste
|
|
93
|
+
maxPasteSize: config.maxPasteSize ?? 100000, // 100KB max paste
|
|
94
|
+
maxBufferSize: config.maxBufferSize ?? 500000, // 500KB max buffer
|
|
95
|
+
detectTimingAnomalys: config.detectTimingAnomalys ?? true,
|
|
96
|
+
minKeystrokeInterval: config.minKeystrokeInterval ?? 5, // 5ms minimum (200 CPS)
|
|
97
|
+
maxBurstSize: config.maxBurstSize ?? 1000, // Chars before suspicion
|
|
98
|
+
strictMode: config.strictMode ?? false,
|
|
99
|
+
verbose: config.verbose ?? false,
|
|
100
|
+
onAnomalyDetected: config.onAnomalyDetected ?? (() => { }),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Validate and sanitize input before it enters the chat buffer
|
|
105
|
+
*/
|
|
106
|
+
validateInput(input, isPaste = false) {
|
|
107
|
+
const now = Date.now();
|
|
108
|
+
let sanitized = input;
|
|
109
|
+
let blocked = false;
|
|
110
|
+
let reason;
|
|
111
|
+
let anomalyType;
|
|
112
|
+
let riskScore = 0;
|
|
113
|
+
// Track timing
|
|
114
|
+
this.inputTimings.push({ timestamp: now, charCount: input.length });
|
|
115
|
+
this.cleanOldTimings();
|
|
116
|
+
// === Size validation ===
|
|
117
|
+
if (isPaste && input.length > this.config.maxPasteSize) {
|
|
118
|
+
riskScore += 30;
|
|
119
|
+
if (this.config.strictMode) {
|
|
120
|
+
blocked = true;
|
|
121
|
+
reason = `Paste size ${input.length} exceeds limit ${this.config.maxPasteSize}`;
|
|
122
|
+
anomalyType = 'overflow_attempt';
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
sanitized = input.slice(0, this.config.maxPasteSize);
|
|
126
|
+
reason = `Truncated paste from ${input.length} to ${this.config.maxPasteSize}`;
|
|
127
|
+
}
|
|
128
|
+
this.sanitizedInputs++;
|
|
129
|
+
}
|
|
130
|
+
// === Timing analysis ===
|
|
131
|
+
if (this.config.detectTimingAnomalys && !isPaste) {
|
|
132
|
+
const interval = now - this.lastKeystroke;
|
|
133
|
+
if (interval > 0 && interval < this.config.minKeystrokeInterval) {
|
|
134
|
+
// Suspiciously fast keystrokes
|
|
135
|
+
this.suspicionScore += 5;
|
|
136
|
+
riskScore += 10;
|
|
137
|
+
if (this.suspicionScore > 50) {
|
|
138
|
+
anomalyType = 'automated_injection';
|
|
139
|
+
reason = `Automated input detected (${Math.round(1000 / interval)} CPS)`;
|
|
140
|
+
this.log(`Suspicion score: ${this.suspicionScore}, interval: ${interval}ms`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
// Normal typing - decrease suspicion
|
|
145
|
+
this.suspicionScore = Math.max(0, this.suspicionScore - 1);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
this.lastKeystroke = now;
|
|
149
|
+
// === Burst detection ===
|
|
150
|
+
const recentChars = this.getRecentCharCount(100); // Last 100ms
|
|
151
|
+
if (recentChars > this.config.maxBurstSize) {
|
|
152
|
+
this.burstCounter++;
|
|
153
|
+
riskScore += 20;
|
|
154
|
+
if (this.burstCounter > 3) {
|
|
155
|
+
anomalyType = 'timing_burst';
|
|
156
|
+
reason = `Burst injection detected (${recentChars} chars in 100ms)`;
|
|
157
|
+
if (this.config.strictMode) {
|
|
158
|
+
blocked = true;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
this.burstCounter = Math.max(0, this.burstCounter - 1);
|
|
164
|
+
}
|
|
165
|
+
// === Escape sequence validation ===
|
|
166
|
+
const escapeResult = this.checkEscapeSequences(sanitized);
|
|
167
|
+
if (escapeResult.found) {
|
|
168
|
+
riskScore += 40;
|
|
169
|
+
anomalyType = 'escape_injection';
|
|
170
|
+
reason = `Dangerous escape sequence: ${escapeResult.type}`;
|
|
171
|
+
sanitized = escapeResult.sanitized;
|
|
172
|
+
this.sanitizedInputs++;
|
|
173
|
+
if (this.config.strictMode) {
|
|
174
|
+
blocked = true;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// === Control character validation ===
|
|
178
|
+
const controlResult = this.checkControlCharacters(sanitized);
|
|
179
|
+
if (controlResult.found) {
|
|
180
|
+
riskScore += 15;
|
|
181
|
+
if (!anomalyType) {
|
|
182
|
+
anomalyType = 'control_injection';
|
|
183
|
+
reason = `Control characters detected: ${controlResult.chars.join(', ')}`;
|
|
184
|
+
}
|
|
185
|
+
sanitized = controlResult.sanitized;
|
|
186
|
+
this.sanitizedInputs++;
|
|
187
|
+
}
|
|
188
|
+
// === Unicode anomaly detection ===
|
|
189
|
+
const unicodeResult = this.checkUnicodeAnomalys(sanitized);
|
|
190
|
+
if (unicodeResult.found) {
|
|
191
|
+
riskScore += 30;
|
|
192
|
+
if (!anomalyType) {
|
|
193
|
+
anomalyType = 'unicode_anomaly';
|
|
194
|
+
reason = `Unicode anomaly: ${unicodeResult.type}`;
|
|
195
|
+
}
|
|
196
|
+
sanitized = unicodeResult.sanitized;
|
|
197
|
+
this.sanitizedInputs++;
|
|
198
|
+
}
|
|
199
|
+
// === Rate limiting check ===
|
|
200
|
+
const cps = this.calculateCPS();
|
|
201
|
+
if (cps > this.config.maxCharactersPerSecond && !isPaste) {
|
|
202
|
+
riskScore += 25;
|
|
203
|
+
if (!anomalyType) {
|
|
204
|
+
anomalyType = 'automated_injection';
|
|
205
|
+
reason = `Rate limit exceeded: ${Math.round(cps)} CPS`;
|
|
206
|
+
}
|
|
207
|
+
if (this.config.strictMode && cps > this.config.maxCharactersPerSecond * 2) {
|
|
208
|
+
blocked = true;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// Log anomaly detection
|
|
212
|
+
if (anomalyType && riskScore > 30) {
|
|
213
|
+
this.blockedAnomalys++;
|
|
214
|
+
this.config.onAnomalyDetected?.(anomalyType, reason || 'Unknown');
|
|
215
|
+
this.emit('anomaly_detected', { type: anomalyType, reason, riskScore });
|
|
216
|
+
this.log(`Anomaly detected: ${anomalyType} - ${reason} (risk: ${riskScore})`);
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
allowed: !blocked,
|
|
220
|
+
sanitized: blocked ? '' : sanitized,
|
|
221
|
+
blocked,
|
|
222
|
+
reason,
|
|
223
|
+
anomalyType,
|
|
224
|
+
riskScore,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Enter paste mode (more lenient validation)
|
|
229
|
+
*/
|
|
230
|
+
enterPasteMode() {
|
|
231
|
+
this.isInPasteMode = true;
|
|
232
|
+
this.pasteStartTime = Date.now();
|
|
233
|
+
this.log('Entered paste mode');
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Exit paste mode
|
|
237
|
+
*/
|
|
238
|
+
exitPasteMode() {
|
|
239
|
+
const duration = Date.now() - this.pasteStartTime;
|
|
240
|
+
this.isInPasteMode = false;
|
|
241
|
+
this.log(`Exited paste mode (duration: ${duration}ms)`);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Check if currently in paste mode
|
|
245
|
+
*/
|
|
246
|
+
isPasting() {
|
|
247
|
+
return this.isInPasteMode;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Validate a complete prompt before submission
|
|
251
|
+
*/
|
|
252
|
+
validatePromptSubmission(prompt) {
|
|
253
|
+
// Final validation before sending to AI
|
|
254
|
+
let sanitized = prompt;
|
|
255
|
+
let riskScore = 0;
|
|
256
|
+
let anomalyType;
|
|
257
|
+
let reason;
|
|
258
|
+
// Check total size
|
|
259
|
+
if (prompt.length > this.config.maxBufferSize) {
|
|
260
|
+
riskScore += 50;
|
|
261
|
+
anomalyType = 'overflow_attempt';
|
|
262
|
+
reason = `Prompt exceeds buffer limit`;
|
|
263
|
+
sanitized = prompt.slice(0, this.config.maxBufferSize);
|
|
264
|
+
}
|
|
265
|
+
// Final escape sequence check
|
|
266
|
+
const escapeResult = this.checkEscapeSequences(sanitized);
|
|
267
|
+
if (escapeResult.found) {
|
|
268
|
+
riskScore += 30;
|
|
269
|
+
sanitized = escapeResult.sanitized;
|
|
270
|
+
}
|
|
271
|
+
// Final unicode check
|
|
272
|
+
const unicodeResult = this.checkUnicodeAnomalys(sanitized);
|
|
273
|
+
if (unicodeResult.found) {
|
|
274
|
+
riskScore += 20;
|
|
275
|
+
sanitized = unicodeResult.sanitized;
|
|
276
|
+
}
|
|
277
|
+
return {
|
|
278
|
+
allowed: true,
|
|
279
|
+
sanitized,
|
|
280
|
+
blocked: false,
|
|
281
|
+
reason,
|
|
282
|
+
anomalyType,
|
|
283
|
+
riskScore,
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Reset protection state (e.g., after idle period)
|
|
288
|
+
*/
|
|
289
|
+
reset() {
|
|
290
|
+
this.inputTimings = [];
|
|
291
|
+
this.lastKeystroke = 0;
|
|
292
|
+
this.burstCounter = 0;
|
|
293
|
+
this.suspicionScore = 0;
|
|
294
|
+
this.isInPasteMode = false;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Get protection statistics
|
|
298
|
+
*/
|
|
299
|
+
getStats() {
|
|
300
|
+
return {
|
|
301
|
+
blockedAnomalys: this.blockedAnomalys,
|
|
302
|
+
sanitizedInputs: this.sanitizedInputs,
|
|
303
|
+
currentSuspicion: this.suspicionScore,
|
|
304
|
+
currentCPS: this.calculateCPS(),
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
// === Private helper methods ===
|
|
308
|
+
checkEscapeSequences(input) {
|
|
309
|
+
let sanitized = input;
|
|
310
|
+
let found = false;
|
|
311
|
+
let type;
|
|
312
|
+
for (const pattern of this.dangerousEscapes) {
|
|
313
|
+
if (pattern.test(sanitized)) {
|
|
314
|
+
found = true;
|
|
315
|
+
type = pattern.source;
|
|
316
|
+
sanitized = sanitized.replace(new RegExp(pattern.source, 'g'), '');
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
return { found, type, sanitized };
|
|
320
|
+
}
|
|
321
|
+
checkControlCharacters(input) {
|
|
322
|
+
const foundChars = [];
|
|
323
|
+
let sanitized = '';
|
|
324
|
+
for (let i = 0; i < input.length; i++) {
|
|
325
|
+
const code = input.charCodeAt(i);
|
|
326
|
+
// Allow normal control characters: Tab (9), Newline (10), Carriage Return (13), Escape (27 - for legit sequences)
|
|
327
|
+
if (code === 9 || code === 10 || code === 13) {
|
|
328
|
+
sanitized += input[i];
|
|
329
|
+
continue;
|
|
330
|
+
}
|
|
331
|
+
// Block dangerous control characters
|
|
332
|
+
if (this.dangerousControls.includes(code)) {
|
|
333
|
+
foundChars.push(`0x${code.toString(16).padStart(2, '0')}`);
|
|
334
|
+
continue;
|
|
335
|
+
}
|
|
336
|
+
sanitized += input[i];
|
|
337
|
+
}
|
|
338
|
+
return {
|
|
339
|
+
found: foundChars.length > 0,
|
|
340
|
+
chars: foundChars,
|
|
341
|
+
sanitized,
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
checkUnicodeAnomalys(input) {
|
|
345
|
+
let sanitized = input;
|
|
346
|
+
let found = false;
|
|
347
|
+
let type;
|
|
348
|
+
for (const anomaly of this.unicodeAnomalys) {
|
|
349
|
+
const pattern = typeof anomaly.pattern === 'string'
|
|
350
|
+
? new RegExp(anomaly.pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g')
|
|
351
|
+
: anomaly.pattern;
|
|
352
|
+
if (pattern.test(sanitized)) {
|
|
353
|
+
found = true;
|
|
354
|
+
type = anomaly.name;
|
|
355
|
+
sanitized = sanitized.replace(pattern, '');
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
return { found, type, sanitized };
|
|
359
|
+
}
|
|
360
|
+
cleanOldTimings() {
|
|
361
|
+
const cutoff = Date.now() - 1000; // Keep last 1 second
|
|
362
|
+
this.inputTimings = this.inputTimings.filter(t => t.timestamp > cutoff);
|
|
363
|
+
}
|
|
364
|
+
getRecentCharCount(windowMs) {
|
|
365
|
+
const cutoff = Date.now() - windowMs;
|
|
366
|
+
return this.inputTimings
|
|
367
|
+
.filter(t => t.timestamp > cutoff)
|
|
368
|
+
.reduce((sum, t) => sum + t.charCount, 0);
|
|
369
|
+
}
|
|
370
|
+
calculateCPS() {
|
|
371
|
+
if (this.inputTimings.length < 2)
|
|
372
|
+
return 0;
|
|
373
|
+
const now = Date.now();
|
|
374
|
+
const windowMs = 1000;
|
|
375
|
+
const cutoff = now - windowMs;
|
|
376
|
+
const recentTimings = this.inputTimings.filter(t => t.timestamp > cutoff);
|
|
377
|
+
if (recentTimings.length === 0)
|
|
378
|
+
return 0;
|
|
379
|
+
const totalChars = recentTimings.reduce((sum, t) => sum + t.charCount, 0);
|
|
380
|
+
const timeSpan = now - recentTimings[0].timestamp;
|
|
381
|
+
return timeSpan > 0 ? (totalChars / timeSpan) * 1000 : 0;
|
|
382
|
+
}
|
|
383
|
+
log(message) {
|
|
384
|
+
if (this.config.verbose || process.env['EROSOLAR_DEBUG']) {
|
|
385
|
+
reportStatus(`[InputProtection] ${message}`);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Initialize global input protection (singleton)
|
|
391
|
+
*/
|
|
392
|
+
export function initializeInputProtection(config) {
|
|
393
|
+
if (!inputProtectionInstance) {
|
|
394
|
+
inputProtectionInstance = new InputProtection(config);
|
|
395
|
+
}
|
|
396
|
+
return inputProtectionInstance;
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Get input protection instance
|
|
400
|
+
*/
|
|
401
|
+
export function getInputProtection() {
|
|
402
|
+
return inputProtectionInstance;
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Quick validate function for input
|
|
406
|
+
*/
|
|
407
|
+
export function validateChatInput(input, isPaste = false) {
|
|
408
|
+
const protection = inputProtectionInstance ?? new InputProtection();
|
|
409
|
+
return protection.validateInput(input, isPaste);
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Validate final prompt before submission
|
|
413
|
+
*/
|
|
414
|
+
export function validatePromptSubmit(prompt) {
|
|
415
|
+
const protection = inputProtectionInstance ?? new InputProtection();
|
|
416
|
+
return protection.validatePromptSubmission(prompt);
|
|
417
|
+
}
|
|
418
|
+
// Auto-initialize if environment variable is set
|
|
419
|
+
if (process.env['EROSOLAR_INPUT_PROTECTION'] === '1' || process.env['EROSOLAR_PROTECTED_MODE'] === '1') {
|
|
420
|
+
initializeInputProtection({ verbose: process.env['EROSOLAR_DEBUG'] === '1' });
|
|
421
|
+
}
|
|
422
|
+
//# sourceMappingURL=inputProtection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputProtection.js","sourceRoot":"","sources":["../../src/core/inputProtection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model discovery system for auto-detecting new models from providers.
|
|
3
|
+
*
|
|
4
|
+
* This module queries provider APIs to discover available models and caches
|
|
5
|
+
* them for use alongside the static model schema. It never modifies the
|
|
6
|
+
* static schema - discoveries are stored separately and merged at runtime.
|
|
7
|
+
*/
|
|
8
|
+
import type { ProviderId } from './types.js';
|
|
9
|
+
import type { ModelConfig } from './agentSchemaLoader.js';
|
|
10
|
+
/**
|
|
11
|
+
* Infer provider from a model identifier.
|
|
12
|
+
*/
|
|
13
|
+
export declare function inferProviderFromModelId(modelId: string | null | undefined): ProviderId | null;
|
|
14
|
+
/**
|
|
15
|
+
* Model discovery result for a single provider
|
|
16
|
+
*/
|
|
17
|
+
export interface ProviderDiscoveryResult {
|
|
18
|
+
provider: ProviderId;
|
|
19
|
+
success: boolean;
|
|
20
|
+
models: ModelConfig[];
|
|
21
|
+
error?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Complete discovery result
|
|
25
|
+
*/
|
|
26
|
+
export interface DiscoveryResult {
|
|
27
|
+
success: boolean;
|
|
28
|
+
timestamp: string;
|
|
29
|
+
results: ProviderDiscoveryResult[];
|
|
30
|
+
totalModelsDiscovered: number;
|
|
31
|
+
errors: string[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get cached discovered models
|
|
35
|
+
*/
|
|
36
|
+
export declare function getCachedDiscoveredModels(): ModelConfig[];
|
|
37
|
+
/**
|
|
38
|
+
* Discover models from all configured providers
|
|
39
|
+
*
|
|
40
|
+
* PERF: Uses Promise.allSettled for parallel discovery - all providers queried
|
|
41
|
+
* simultaneously. No single slow/failed provider blocks the others.
|
|
42
|
+
*/
|
|
43
|
+
export declare function discoverAllModels(): Promise<DiscoveryResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Clear the discovered models cache
|
|
46
|
+
*/
|
|
47
|
+
export declare function clearDiscoveredModelsCache(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Provider configuration info
|
|
50
|
+
*/
|
|
51
|
+
export interface ProviderInfo {
|
|
52
|
+
id: ProviderId;
|
|
53
|
+
name: string;
|
|
54
|
+
envVar: string;
|
|
55
|
+
configured: boolean;
|
|
56
|
+
latestModel: string;
|
|
57
|
+
models?: string[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Sort models by priority (best first)
|
|
61
|
+
*/
|
|
62
|
+
export declare function sortModelsByPriority(provider: ProviderId, models: string[]): string[];
|
|
63
|
+
/**
|
|
64
|
+
* Get the best/latest model for a provider
|
|
65
|
+
*/
|
|
66
|
+
export declare function getBestModel(provider: ProviderId, models: string[]): string;
|
|
67
|
+
/**
|
|
68
|
+
* Check if a provider is configured (has API key or is accessible)
|
|
69
|
+
*/
|
|
70
|
+
export declare function isProviderConfigured(providerId: ProviderId): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Get all providers with their configuration status
|
|
73
|
+
*/
|
|
74
|
+
export declare function getProvidersStatus(): ProviderInfo[];
|
|
75
|
+
/**
|
|
76
|
+
* Get list of configured providers (with valid API keys)
|
|
77
|
+
*/
|
|
78
|
+
export declare function getConfiguredProviders(): ProviderInfo[];
|
|
79
|
+
/**
|
|
80
|
+
* Get list of unconfigured providers
|
|
81
|
+
*/
|
|
82
|
+
export declare function getUnconfiguredProviders(): ProviderInfo[];
|
|
83
|
+
/**
|
|
84
|
+
* Get the first available provider (for auto-selection)
|
|
85
|
+
*/
|
|
86
|
+
export declare function getFirstAvailableProvider(): ProviderInfo | null;
|
|
87
|
+
/**
|
|
88
|
+
* Get latest model for a provider from cache or defaults
|
|
89
|
+
*/
|
|
90
|
+
export declare function getLatestModelForProvider(providerId: ProviderId): string;
|
|
91
|
+
/**
|
|
92
|
+
* Quick provider availability check result
|
|
93
|
+
*/
|
|
94
|
+
export interface QuickProviderStatus {
|
|
95
|
+
provider: ProviderId;
|
|
96
|
+
available: boolean;
|
|
97
|
+
latestModel: string;
|
|
98
|
+
error?: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Quickly check if providers are available by querying their APIs
|
|
102
|
+
* Returns actual latest models from each provider
|
|
103
|
+
*/
|
|
104
|
+
export declare function quickCheckProviders(): Promise<QuickProviderStatus[]>;
|
|
105
|
+
//# sourceMappingURL=modelDiscovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelDiscovery.d.ts","sourceRoot":"","sources":["../../src/core/modelDiscovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAiC1D;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,CAS9F;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,WAAW,EAAE,CAqBzD;AAyXD;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,eAAe,CAAC,CA6FlE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAQjD;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,UAAU,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AA8ED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAMrF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAQ3E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CA0BpE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,EAAE,CAuBnD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,YAAY,EAAE,CAEvD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,YAAY,EAAE,CAEzD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,YAAY,GAAG,IAAI,CAc/D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAaxE;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA0BD;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA4E1E"}
|