deepseek-coder-cli 1.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.
- package/LICENSE +21 -0
- package/README.md +422 -0
- package/agents/agi-code.rules.json +87 -0
- package/agents/general.rules.json +171 -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 +16 -0
- package/dist/bin/deepseek.d.ts.map +1 -0
- package/dist/bin/deepseek.js +737 -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 +304 -0
- package/dist/bin/selfTest.js.map +1 -0
- package/dist/capabilities/appleSecurityCapability.d.ts +57 -0
- package/dist/capabilities/appleSecurityCapability.d.ts.map +1 -0
- package/dist/capabilities/appleSecurityCapability.js +197 -0
- package/dist/capabilities/appleSecurityCapability.js.map +1 -0
- package/dist/capabilities/authorizedSecurityCapability.d.ts +17 -0
- package/dist/capabilities/authorizedSecurityCapability.d.ts.map +1 -0
- package/dist/capabilities/authorizedSecurityCapability.js +333 -0
- package/dist/capabilities/authorizedSecurityCapability.js.map +1 -0
- package/dist/capabilities/autoEnhancementCapability.d.ts +98 -0
- package/dist/capabilities/autoEnhancementCapability.d.ts.map +1 -0
- package/dist/capabilities/autoEnhancementCapability.js +455 -0
- package/dist/capabilities/autoEnhancementCapability.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/biocognitiveWarfare.d.ts +136 -0
- package/dist/capabilities/biocognitiveWarfare.d.ts.map +1 -0
- package/dist/capabilities/biocognitiveWarfare.js +603 -0
- package/dist/capabilities/biocognitiveWarfare.js.map +1 -0
- package/dist/capabilities/chineseCnoIntegration.d.ts +60 -0
- package/dist/capabilities/chineseCnoIntegration.d.ts.map +1 -0
- package/dist/capabilities/chineseCnoIntegration.js +253 -0
- package/dist/capabilities/chineseCnoIntegration.js.map +1 -0
- package/dist/capabilities/cnoCapability.d.ts +110 -0
- package/dist/capabilities/cnoCapability.d.ts.map +1 -0
- package/dist/capabilities/cnoCapability.js +785 -0
- package/dist/capabilities/cnoCapability.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/eliteCryptoMilitaryCapability.d.ts +99 -0
- package/dist/capabilities/eliteCryptoMilitaryCapability.d.ts.map +1 -0
- package/dist/capabilities/eliteCryptoMilitaryCapability.js +618 -0
- package/dist/capabilities/eliteCryptoMilitaryCapability.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 +160 -0
- package/dist/capabilities/gitHistoryCapability.js.map +1 -0
- package/dist/capabilities/index.d.ts +26 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +26 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/integratedUnifiedCapability.d.ts +105 -0
- package/dist/capabilities/integratedUnifiedCapability.d.ts.map +1 -0
- package/dist/capabilities/integratedUnifiedCapability.js +422 -0
- package/dist/capabilities/integratedUnifiedCapability.js.map +1 -0
- package/dist/capabilities/maxOffensiveUkraineCapability.d.ts +46 -0
- package/dist/capabilities/maxOffensiveUkraineCapability.d.ts.map +1 -0
- package/dist/capabilities/maxOffensiveUkraineCapability.js +725 -0
- package/dist/capabilities/maxOffensiveUkraineCapability.js.map +1 -0
- package/dist/capabilities/migrationUtilities.d.ts +128 -0
- package/dist/capabilities/migrationUtilities.d.ts.map +1 -0
- package/dist/capabilities/migrationUtilities.js +658 -0
- package/dist/capabilities/migrationUtilities.js.map +1 -0
- package/dist/capabilities/offensiveDestructionCapability.d.ts +98 -0
- package/dist/capabilities/offensiveDestructionCapability.d.ts.map +1 -0
- package/dist/capabilities/offensiveDestructionCapability.js +848 -0
- package/dist/capabilities/offensiveDestructionCapability.js.map +1 -0
- package/dist/capabilities/quantumSpaceWarfare.d.ts +108 -0
- package/dist/capabilities/quantumSpaceWarfare.d.ts.map +1 -0
- package/dist/capabilities/quantumSpaceWarfare.js +342 -0
- package/dist/capabilities/quantumSpaceWarfare.js.map +1 -0
- package/dist/capabilities/readmeIntegration.d.ts +161 -0
- package/dist/capabilities/readmeIntegration.d.ts.map +1 -0
- package/dist/capabilities/readmeIntegration.js +1034 -0
- package/dist/capabilities/readmeIntegration.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/selfUpdateSystem.d.ts +122 -0
- package/dist/capabilities/selfUpdateSystem.d.ts.map +1 -0
- package/dist/capabilities/selfUpdateSystem.js +725 -0
- package/dist/capabilities/selfUpdateSystem.js.map +1 -0
- package/dist/capabilities/sharedMilitaryInfrastructure.d.ts +89 -0
- package/dist/capabilities/sharedMilitaryInfrastructure.d.ts.map +1 -0
- package/dist/capabilities/sharedMilitaryInfrastructure.js +233 -0
- package/dist/capabilities/sharedMilitaryInfrastructure.js.map +1 -0
- package/dist/capabilities/simpleSecurityCapability.d.ts +36 -0
- package/dist/capabilities/simpleSecurityCapability.d.ts.map +1 -0
- package/dist/capabilities/simpleSecurityCapability.js +271 -0
- package/dist/capabilities/simpleSecurityCapability.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/ultimateChineseCno.d.ts +115 -0
- package/dist/capabilities/ultimateChineseCno.d.ts.map +1 -0
- package/dist/capabilities/ultimateChineseCno.js +516 -0
- package/dist/capabilities/ultimateChineseCno.js.map +1 -0
- package/dist/capabilities/ultimateIntegrationDemo.d.ts +54 -0
- package/dist/capabilities/ultimateIntegrationDemo.d.ts.map +1 -0
- package/dist/capabilities/ultimateIntegrationDemo.js +423 -0
- package/dist/capabilities/ultimateIntegrationDemo.js.map +1 -0
- package/dist/capabilities/unifiedMilitaryCapability.d.ts +63 -0
- package/dist/capabilities/unifiedMilitaryCapability.d.ts.map +1 -0
- package/dist/capabilities/unifiedMilitaryCapability.js +384 -0
- package/dist/capabilities/unifiedMilitaryCapability.js.map +1 -0
- package/dist/capabilities/universalCapabilityFramework.d.ts +352 -0
- package/dist/capabilities/universalCapabilityFramework.d.ts.map +1 -0
- package/dist/capabilities/universalCapabilityFramework.js +1056 -0
- package/dist/capabilities/universalCapabilityFramework.js.map +1 -0
- package/dist/capabilities/universalSecurityCapability.d.ts +46 -0
- package/dist/capabilities/universalSecurityCapability.d.ts.map +1 -0
- package/dist/capabilities/universalSecurityCapability.js +580 -0
- package/dist/capabilities/universalSecurityCapability.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/capabilities/zeroDayDiscoveryCapability.d.ts +31 -0
- package/dist/capabilities/zeroDayDiscoveryCapability.d.ts.map +1 -0
- package/dist/capabilities/zeroDayDiscoveryCapability.js +183 -0
- package/dist/capabilities/zeroDayDiscoveryCapability.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 +466 -0
- package/dist/contracts/models.schema.json +9 -0
- package/dist/contracts/module-schema.json +430 -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 +82 -0
- package/dist/contracts/unified-schema.json +757 -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 +287 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +1563 -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/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/agiCore.d.ts +290 -0
- package/dist/core/agiCore.d.ts.map +1 -0
- package/dist/core/agiCore.js +1348 -0
- package/dist/core/agiCore.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/antiTermination.d.ts +226 -0
- package/dist/core/antiTermination.d.ts.map +1 -0
- package/dist/core/antiTermination.js +713 -0
- package/dist/core/antiTermination.js.map +1 -0
- package/dist/core/appleSecurityAudit.d.ts +98 -0
- package/dist/core/appleSecurityAudit.d.ts.map +1 -0
- package/dist/core/appleSecurityAudit.js +505 -0
- package/dist/core/appleSecurityAudit.js.map +1 -0
- package/dist/core/appleSecurityIntegration.d.ts +130 -0
- package/dist/core/appleSecurityIntegration.d.ts.map +1 -0
- package/dist/core/appleSecurityIntegration.js +697 -0
- package/dist/core/appleSecurityIntegration.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/deepBugAnalyzer.d.ts +25 -0
- package/dist/core/deepBugAnalyzer.d.ts.map +1 -0
- package/dist/core/deepBugAnalyzer.js +44 -0
- package/dist/core/deepBugAnalyzer.js.map +1 -0
- package/dist/core/dualTournament.d.ts +110 -0
- package/dist/core/dualTournament.d.ts.map +1 -0
- package/dist/core/dualTournament.js +270 -0
- package/dist/core/dualTournament.js.map +1 -0
- package/dist/core/dynamicGuardrails.d.ts +207 -0
- package/dist/core/dynamicGuardrails.d.ts.map +1 -0
- package/dist/core/dynamicGuardrails.js +516 -0
- package/dist/core/dynamicGuardrails.js.map +1 -0
- package/dist/core/embeddingProviders.d.ts +80 -0
- package/dist/core/embeddingProviders.d.ts.map +1 -0
- package/dist/core/embeddingProviders.js +241 -0
- package/dist/core/embeddingProviders.js.map +1 -0
- package/dist/core/episodicMemory.d.ts +259 -0
- package/dist/core/episodicMemory.d.ts.map +1 -0
- package/dist/core/episodicMemory.js +833 -0
- package/dist/core/episodicMemory.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 +115 -0
- package/dist/core/errors/safetyValidator.d.ts.map +1 -0
- package/dist/core/errors/safetyValidator.js +302 -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/flowProtection.d.ts +154 -0
- package/dist/core/flowProtection.d.ts.map +1 -0
- package/dist/core/flowProtection.js +436 -0
- package/dist/core/flowProtection.js.map +1 -0
- package/dist/core/gitWorktreeManager.d.ts +126 -0
- package/dist/core/gitWorktreeManager.d.ts.map +1 -0
- package/dist/core/gitWorktreeManager.js +403 -0
- package/dist/core/gitWorktreeManager.js.map +1 -0
- package/dist/core/guardrails.d.ts +150 -0
- package/dist/core/guardrails.d.ts.map +1 -0
- package/dist/core/guardrails.js +360 -0
- package/dist/core/guardrails.js.map +1 -0
- package/dist/core/hallucinationGuard.d.ts +57 -0
- package/dist/core/hallucinationGuard.d.ts.map +1 -0
- package/dist/core/hallucinationGuard.js +237 -0
- package/dist/core/hallucinationGuard.js.map +1 -0
- package/dist/core/hooks.d.ts +113 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js +364 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/hotReload.d.ts +154 -0
- package/dist/core/hotReload.d.ts.map +1 -0
- package/dist/core/hotReload.js +451 -0
- package/dist/core/hotReload.js.map +1 -0
- package/dist/core/hypothesisEngine.d.ts +27 -0
- package/dist/core/hypothesisEngine.d.ts.map +1 -0
- package/dist/core/hypothesisEngine.js +58 -0
- package/dist/core/hypothesisEngine.js.map +1 -0
- package/dist/core/index.d.ts +26 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +54 -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 +421 -0
- package/dist/core/inputProtection.js.map +1 -0
- package/dist/core/liveGCPVerification.d.ts +41 -0
- package/dist/core/liveGCPVerification.d.ts.map +1 -0
- package/dist/core/liveGCPVerification.js +745 -0
- package/dist/core/liveGCPVerification.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 +740 -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 +80 -0
- package/dist/core/multilinePasteHandler.js.map +1 -0
- package/dist/core/parallel.d.ts +85 -0
- package/dist/core/parallel.d.ts.map +1 -0
- package/dist/core/parallel.js +150 -0
- package/dist/core/parallel.js.map +1 -0
- package/dist/core/parallelCoordinator.d.ts +21 -0
- package/dist/core/parallelCoordinator.d.ts.map +1 -0
- package/dist/core/parallelCoordinator.js +42 -0
- package/dist/core/parallelCoordinator.js.map +1 -0
- package/dist/core/parallelExecutor.d.ts +215 -0
- package/dist/core/parallelExecutor.d.ts.map +1 -0
- package/dist/core/parallelExecutor.js +584 -0
- package/dist/core/parallelExecutor.js.map +1 -0
- package/dist/core/preferences.d.ts +71 -0
- package/dist/core/preferences.d.ts.map +1 -0
- package/dist/core/preferences.js +341 -0
- package/dist/core/preferences.js.map +1 -0
- package/dist/core/productTestHarness.d.ts +46 -0
- package/dist/core/productTestHarness.d.ts.map +1 -0
- package/dist/core/productTestHarness.js +128 -0
- package/dist/core/productTestHarness.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/realityScore.d.ts +159 -0
- package/dist/core/realityScore.d.ts.map +1 -0
- package/dist/core/realityScore.js +734 -0
- package/dist/core/realityScore.js.map +1 -0
- package/dist/core/repoUpgradeOrchestrator.d.ts +223 -0
- package/dist/core/repoUpgradeOrchestrator.d.ts.map +1 -0
- package/dist/core/repoUpgradeOrchestrator.js +1003 -0
- package/dist/core/repoUpgradeOrchestrator.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/revenueEnvValidator.d.ts +30 -0
- package/dist/core/revenueEnvValidator.d.ts.map +1 -0
- package/dist/core/revenueEnvValidator.js +241 -0
- package/dist/core/revenueEnvValidator.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 +295 -0
- package/dist/core/secretStore.js.map +1 -0
- package/dist/core/securityTournament.d.ts +83 -0
- package/dist/core/securityTournament.d.ts.map +1 -0
- package/dist/core/securityTournament.js +357 -0
- package/dist/core/securityTournament.js.map +1 -0
- package/dist/core/selfUpgrade.d.ts +253 -0
- package/dist/core/selfUpgrade.d.ts.map +1 -0
- package/dist/core/selfUpgrade.js +669 -0
- package/dist/core/selfUpgrade.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/taskCompletionDetector.d.ts +112 -0
- package/dist/core/taskCompletionDetector.d.ts.map +1 -0
- package/dist/core/taskCompletionDetector.js +469 -0
- package/dist/core/taskCompletionDetector.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 +185 -0
- package/dist/core/toolRuntime.d.ts.map +1 -0
- package/dist/core/toolRuntime.js +412 -0
- package/dist/core/toolRuntime.js.map +1 -0
- package/dist/core/tournamentStrategy.d.ts +12 -0
- package/dist/core/tournamentStrategy.d.ts.map +1 -0
- package/dist/core/tournamentStrategy.js +41 -0
- package/dist/core/tournamentStrategy.js.map +1 -0
- package/dist/core/types/utilityTypes.d.ts +192 -0
- package/dist/core/types/utilityTypes.d.ts.map +1 -0
- package/dist/core/types/utilityTypes.js +272 -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/unifiedOrchestrator.d.ts +47 -0
- package/dist/core/unifiedOrchestrator.d.ts.map +1 -0
- package/dist/core/unifiedOrchestrator.js +103 -0
- package/dist/core/unifiedOrchestrator.js.map +1 -0
- package/dist/core/universalSecurityAudit.d.ts +104 -0
- package/dist/core/universalSecurityAudit.d.ts.map +1 -0
- package/dist/core/universalSecurityAudit.js +2190 -0
- package/dist/core/universalSecurityAudit.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 +593 -0
- package/dist/core/updateChecker.js.map +1 -0
- package/dist/core/variantExecution.d.ts +23 -0
- package/dist/core/variantExecution.d.ts.map +1 -0
- package/dist/core/variantExecution.js +58 -0
- package/dist/core/variantExecution.js.map +1 -0
- package/dist/core/winnerStrategy.d.ts +15 -0
- package/dist/core/winnerStrategy.d.ts.map +1 -0
- package/dist/core/winnerStrategy.js +18 -0
- package/dist/core/winnerStrategy.js.map +1 -0
- package/dist/core/zeroDayDiscovery.d.ts +96 -0
- package/dist/core/zeroDayDiscovery.d.ts.map +1 -0
- package/dist/core/zeroDayDiscovery.js +358 -0
- package/dist/core/zeroDayDiscovery.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 +3799 -0
- package/dist/headless/interactiveShell.js.map +1 -0
- package/dist/headless/quickMode.d.ts +26 -0
- package/dist/headless/quickMode.d.ts.map +1 -0
- package/dist/headless/quickMode.js +226 -0
- package/dist/headless/quickMode.js.map +1 -0
- package/dist/orchestration/index.d.ts +10 -0
- package/dist/orchestration/index.d.ts.map +1 -0
- package/dist/orchestration/index.js +13 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/repoUpgradeRunner.d.ts +44 -0
- package/dist/orchestration/repoUpgradeRunner.d.ts.map +1 -0
- package/dist/orchestration/repoUpgradeRunner.js +375 -0
- package/dist/orchestration/repoUpgradeRunner.js.map +1 -0
- package/dist/orchestration/securityAuditRunner.d.ts +144 -0
- package/dist/orchestration/securityAuditRunner.d.ts.map +1 -0
- package/dist/orchestration/securityAuditRunner.js +526 -0
- package/dist/orchestration/securityAuditRunner.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 +105 -0
- package/dist/plugins/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 +11 -0
- package/dist/plugins/providers/index.js.map +1 -0
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +3 -0
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +27 -0
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +1 -0
- package/dist/plugins/tools/apple/secureApplePlugin.d.ts +3 -0
- package/dist/plugins/tools/apple/secureApplePlugin.d.ts.map +1 -0
- package/dist/plugins/tools/apple/secureApplePlugin.js +26 -0
- package/dist/plugins/tools/apple/secureApplePlugin.js.map +1 -0
- package/dist/plugins/tools/authorizedSecurity/authorizedSecurityPlugin.d.ts +3 -0
- package/dist/plugins/tools/authorizedSecurity/authorizedSecurityPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/authorizedSecurity/authorizedSecurityPlugin.js +9 -0
- package/dist/plugins/tools/authorizedSecurity/authorizedSecurityPlugin.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/bidirectionalAudit/bidirectionalAuditPlugin.d.ts +3 -0
- package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.js +27 -0
- package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.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/mcp/mcpPlugin.d.ts +3 -0
- package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/mcp/mcpPlugin.js +27 -0
- package/dist/plugins/tools/mcp/mcpPlugin.js.map +1 -0
- package/dist/plugins/tools/nodeDefaults.d.ts +15 -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/offensiveDestruction/offensiveDestructionPlugin.d.ts +3 -0
- package/dist/plugins/tools/offensiveDestruction/offensiveDestructionPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/offensiveDestruction/offensiveDestructionPlugin.js +9 -0
- package/dist/plugins/tools/offensiveDestruction/offensiveDestructionPlugin.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/tao/secureTaoPlugin.d.ts +3 -0
- package/dist/plugins/tools/tao/secureTaoPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/tao/secureTaoPlugin.js +37 -0
- package/dist/plugins/tools/tao/secureTaoPlugin.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 +1000 -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 +462 -0
- package/dist/providers/resilientProvider.js.map +1 -0
- package/dist/runtime/agentController.d.ts +114 -0
- package/dist/runtime/agentController.d.ts.map +1 -0
- package/dist/runtime/agentController.js +693 -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 +157 -0
- package/dist/runtime/agentHost.js.map +1 -0
- package/dist/runtime/agentSession.d.ts +45 -0
- package/dist/runtime/agentSession.d.ts.map +1 -0
- package/dist/runtime/agentSession.js +210 -0
- package/dist/runtime/agentSession.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 +24 -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 +386 -0
- package/dist/shell/commandRegistry.js.map +1 -0
- package/dist/shell/composableMessage.d.ts +183 -0
- package/dist/shell/composableMessage.d.ts.map +1 -0
- package/dist/shell/composableMessage.js +420 -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 +6 -0
- package/dist/tools/bashTools.d.ts.map +1 -0
- package/dist/tools/bashTools.js +485 -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 +702 -0
- package/dist/tools/editTools.js.map +1 -0
- package/dist/tools/emailTools.d.ts +140 -0
- package/dist/tools/emailTools.d.ts.map +1 -0
- package/dist/tools/emailTools.js +792 -0
- package/dist/tools/emailTools.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 +342 -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 +129 -0
- package/dist/tools/grepTools.js.map +1 -0
- package/dist/tools/humanOpsTools.d.ts +3 -0
- package/dist/tools/humanOpsTools.d.ts.map +1 -0
- package/dist/tools/humanOpsTools.js +86 -0
- package/dist/tools/humanOpsTools.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/metaTools.d.ts +3 -0
- package/dist/tools/metaTools.d.ts.map +1 -0
- package/dist/tools/metaTools.js +148 -0
- package/dist/tools/metaTools.js.map +1 -0
- package/dist/tools/planningTools.d.ts +12 -0
- package/dist/tools/planningTools.d.ts.map +1 -0
- package/dist/tools/planningTools.js +75 -0
- package/dist/tools/planningTools.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 +370 -0
- package/dist/tools/searchTools.js.map +1 -0
- package/dist/tools/secureAppleExploitation.d.ts +29 -0
- package/dist/tools/secureAppleExploitation.d.ts.map +1 -0
- package/dist/tools/secureAppleExploitation.js +518 -0
- package/dist/tools/secureAppleExploitation.js.map +1 -0
- package/dist/tools/telemetryTools.d.ts +5 -0
- package/dist/tools/telemetryTools.d.ts.map +1 -0
- package/dist/tools/telemetryTools.js +9 -0
- package/dist/tools/telemetryTools.js.map +1 -0
- package/dist/tools/unifiedOps.d.ts +3 -0
- package/dist/tools/unifiedOps.d.ts.map +1 -0
- package/dist/tools/unifiedOps.js +57 -0
- package/dist/tools/unifiedOps.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 +227 -0
- package/dist/tools/webTools.js.map +1 -0
- package/dist/ui/PromptController.d.ts +174 -0
- package/dist/ui/PromptController.d.ts.map +1 -0
- package/dist/ui/PromptController.js +351 -0
- package/dist/ui/PromptController.js.map +1 -0
- package/dist/ui/UnifiedUIRenderer.d.ts +779 -0
- package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -0
- package/dist/ui/UnifiedUIRenderer.js +5458 -0
- package/dist/ui/UnifiedUIRenderer.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 +32 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +54 -0
- package/dist/ui/index.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/maxOffensiveUkraineUI.d.ts +94 -0
- package/dist/ui/maxOffensiveUkraineUI.d.ts.map +1 -0
- package/dist/ui/maxOffensiveUkraineUI.js +316 -0
- package/dist/ui/maxOffensiveUkraineUI.js.map +1 -0
- package/dist/ui/outputMode.d.ts +44 -0
- package/dist/ui/outputMode.d.ts.map +1 -0
- package/dist/ui/outputMode.js +123 -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 +291 -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 +443 -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 +364 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +471 -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 +288 -0
- package/dist/ui/uiConstants.d.ts.map +1 -0
- package/dist/ui/uiConstants.js +472 -0
- package/dist/ui/uiConstants.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 +132 -0
- package/dist/utils/securityUtils.d.ts.map +1 -0
- package/dist/utils/securityUtils.js +324 -0
- package/dist/utils/securityUtils.js.map +1 -0
- package/dist/workspace.d.ts +8 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +134 -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 +108 -0
|
@@ -0,0 +1,745 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Live GCP Verification Engine
|
|
3
|
+
*
|
|
4
|
+
* REAL verification against live Google Cloud infrastructure.
|
|
5
|
+
* Uses actual API calls, real timing measurements, and live configuration checks.
|
|
6
|
+
*
|
|
7
|
+
* For authorized red team operations only.
|
|
8
|
+
*/
|
|
9
|
+
import { exec } from 'child_process';
|
|
10
|
+
import { promisify } from 'util';
|
|
11
|
+
import https from 'https';
|
|
12
|
+
import http from 'http';
|
|
13
|
+
const execAsync = promisify(exec);
|
|
14
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
15
|
+
// GCP API Helper
|
|
16
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
17
|
+
async function getAccessToken() {
|
|
18
|
+
try {
|
|
19
|
+
const { stdout } = await execAsync('gcloud auth print-access-token');
|
|
20
|
+
return stdout.trim();
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
throw new Error(`Failed to get access token: ${error}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async function gcpApiCall(endpoint, method = 'GET', body, accessToken) {
|
|
27
|
+
const token = accessToken || await getAccessToken();
|
|
28
|
+
const url = new URL(endpoint);
|
|
29
|
+
const startTime = performance.now();
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
const options = {
|
|
32
|
+
hostname: url.hostname,
|
|
33
|
+
path: url.pathname + url.search,
|
|
34
|
+
method,
|
|
35
|
+
headers: {
|
|
36
|
+
'Authorization': `Bearer ${token}`,
|
|
37
|
+
'Content-Type': 'application/json',
|
|
38
|
+
'User-Agent': 'agi-core-security-audit/1.0',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
const req = https.request(options, (res) => {
|
|
42
|
+
let data = '';
|
|
43
|
+
res.on('data', chunk => data += chunk);
|
|
44
|
+
res.on('end', () => {
|
|
45
|
+
const timingMs = performance.now() - startTime;
|
|
46
|
+
try {
|
|
47
|
+
resolve({
|
|
48
|
+
data: data ? JSON.parse(data) : {},
|
|
49
|
+
timingMs,
|
|
50
|
+
statusCode: res.statusCode || 0,
|
|
51
|
+
headers: res.headers,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
resolve({
|
|
56
|
+
data: { raw: data },
|
|
57
|
+
timingMs,
|
|
58
|
+
statusCode: res.statusCode || 0,
|
|
59
|
+
headers: res.headers,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
req.on('error', reject);
|
|
65
|
+
req.setTimeout(30000, () => {
|
|
66
|
+
req.destroy();
|
|
67
|
+
reject(new Error('Request timeout'));
|
|
68
|
+
});
|
|
69
|
+
if (body) {
|
|
70
|
+
req.write(JSON.stringify(body));
|
|
71
|
+
}
|
|
72
|
+
req.end();
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
76
|
+
// Live Verification Tests
|
|
77
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
78
|
+
/**
|
|
79
|
+
* Test 1: IAM Policy Update Race Condition
|
|
80
|
+
* Measures timing variance in IAM permission checks
|
|
81
|
+
*/
|
|
82
|
+
async function verifyIAMRaceCondition(config) {
|
|
83
|
+
console.log(' [TEST] IAM Policy Update Race Condition...');
|
|
84
|
+
const timings = [];
|
|
85
|
+
const evidence = [];
|
|
86
|
+
const token = await getAccessToken();
|
|
87
|
+
// Make multiple permission check requests and measure timing variance
|
|
88
|
+
const testCases = [
|
|
89
|
+
{ resource: `//cloudresourcemanager.googleapis.com/projects/${config.projectId}`, permission: 'resourcemanager.projects.get' },
|
|
90
|
+
{ resource: `//cloudresourcemanager.googleapis.com/projects/${config.projectId}`, permission: 'resourcemanager.projects.delete' },
|
|
91
|
+
{ resource: `//cloudresourcemanager.googleapis.com/projects/nonexistent-project-12345`, permission: 'resourcemanager.projects.get' },
|
|
92
|
+
{ resource: `//cloudresourcemanager.googleapis.com/projects/${config.projectId}`, permission: 'iam.roles.create' },
|
|
93
|
+
];
|
|
94
|
+
for (const testCase of testCases) {
|
|
95
|
+
try {
|
|
96
|
+
const result = await gcpApiCall(`https://cloudresourcemanager.googleapis.com/v1/projects/${config.projectId}:testIamPermissions`, 'POST', { permissions: [testCase.permission] }, token);
|
|
97
|
+
timings.push(result.timingMs);
|
|
98
|
+
evidence.push(`${testCase.permission}: ${result.timingMs.toFixed(2)}ms (status: ${result.statusCode})`);
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
evidence.push(`${testCase.permission}: ERROR - ${error}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Calculate timing variance
|
|
105
|
+
const validTimings = timings.filter(t => t > 0);
|
|
106
|
+
const mean = validTimings.reduce((a, b) => a + b, 0) / validTimings.length;
|
|
107
|
+
const variance = validTimings.reduce((a, b) => a + Math.pow(b - mean, 2), 0) / validTimings.length;
|
|
108
|
+
const stdDev = Math.sqrt(variance);
|
|
109
|
+
const coefficientOfVariation = (stdDev / mean) * 100;
|
|
110
|
+
// High variance suggests different code paths (potential timing oracle)
|
|
111
|
+
const vulnerable = coefficientOfVariation > 25; // >25% CV indicates potential oracle
|
|
112
|
+
evidence.push(`Mean: ${mean.toFixed(2)}ms, StdDev: ${stdDev.toFixed(2)}ms, CV: ${coefficientOfVariation.toFixed(1)}%`);
|
|
113
|
+
evidence.push(vulnerable ? 'TIMING ORACLE DETECTED - High variance in permission checks' : 'Normal timing variance');
|
|
114
|
+
return {
|
|
115
|
+
id: 'LIVE-IAM-RACE-001',
|
|
116
|
+
vulnerability: 'IAM Policy Update Race Condition / Timing Oracle',
|
|
117
|
+
verified: vulnerable,
|
|
118
|
+
confidence: vulnerable ? 0.75 + (coefficientOfVariation / 400) : 0.3,
|
|
119
|
+
evidence,
|
|
120
|
+
timingMs: mean,
|
|
121
|
+
technique: 'Timing Oracle Analysis',
|
|
122
|
+
timestamp: new Date().toISOString(),
|
|
123
|
+
projectId: config.projectId,
|
|
124
|
+
severity: vulnerable ? 'high' : 'info',
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Test 2: Service Account Key Race
|
|
129
|
+
* Tests the window between key creation and audit logging
|
|
130
|
+
*/
|
|
131
|
+
async function verifyServiceAccountKeyRace(config) {
|
|
132
|
+
console.log(' [TEST] Service Account Key Creation Race...');
|
|
133
|
+
const evidence = [];
|
|
134
|
+
const token = await getAccessToken();
|
|
135
|
+
// List service accounts to find one we can test with
|
|
136
|
+
try {
|
|
137
|
+
const saListResult = await gcpApiCall(`https://iam.googleapis.com/v1/projects/${config.projectId}/serviceAccounts`, 'GET', undefined, token);
|
|
138
|
+
evidence.push(`Found ${saListResult.data.accounts?.length || 0} service accounts`);
|
|
139
|
+
evidence.push(`API response time: ${saListResult.timingMs.toFixed(2)}ms`);
|
|
140
|
+
if (saListResult.data.accounts?.length > 0) {
|
|
141
|
+
// Check key listing timing for each SA
|
|
142
|
+
const keyTimings = [];
|
|
143
|
+
for (const sa of saListResult.data.accounts.slice(0, 3)) {
|
|
144
|
+
const keyResult = await gcpApiCall(`https://iam.googleapis.com/v1/${sa.name}/keys`, 'GET', undefined, token);
|
|
145
|
+
keyTimings.push(keyResult.timingMs);
|
|
146
|
+
evidence.push(`${sa.email}: ${keyResult.data.keys?.length || 0} keys, ${keyResult.timingMs.toFixed(2)}ms`);
|
|
147
|
+
}
|
|
148
|
+
// Check if we have permission to create keys (don't actually create)
|
|
149
|
+
const createPermCheck = await gcpApiCall(`https://cloudresourcemanager.googleapis.com/v1/projects/${config.projectId}:testIamPermissions`, 'POST', { permissions: ['iam.serviceAccountKeys.create'] }, token);
|
|
150
|
+
const canCreateKeys = createPermCheck.data.permissions?.includes('iam.serviceAccountKeys.create');
|
|
151
|
+
evidence.push(`Can create SA keys: ${canCreateKeys}`);
|
|
152
|
+
if (canCreateKeys) {
|
|
153
|
+
evidence.push('VULNERABLE: Key creation permission exists - race window exploitable');
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
id: 'LIVE-SA-KEY-RACE-001',
|
|
157
|
+
vulnerability: 'Service Account Key Creation Race Condition',
|
|
158
|
+
verified: canCreateKeys,
|
|
159
|
+
confidence: canCreateKeys ? 0.85 : 0.4,
|
|
160
|
+
evidence,
|
|
161
|
+
timingMs: saListResult.timingMs,
|
|
162
|
+
technique: 'Permission Enumeration + Race Analysis',
|
|
163
|
+
timestamp: new Date().toISOString(),
|
|
164
|
+
projectId: config.projectId,
|
|
165
|
+
severity: canCreateKeys ? 'critical' : 'info',
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
evidence.push(`Error: ${error}`);
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
id: 'LIVE-SA-KEY-RACE-001',
|
|
174
|
+
vulnerability: 'Service Account Key Creation Race Condition',
|
|
175
|
+
verified: false,
|
|
176
|
+
confidence: 0.2,
|
|
177
|
+
evidence,
|
|
178
|
+
technique: 'Permission Enumeration + Race Analysis',
|
|
179
|
+
timestamp: new Date().toISOString(),
|
|
180
|
+
projectId: config.projectId,
|
|
181
|
+
severity: 'info',
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Test 3: Storage Bucket ACL Configuration
|
|
186
|
+
* Checks for legacy ACL mode and public access
|
|
187
|
+
*/
|
|
188
|
+
async function verifyStorageACLConfig(config) {
|
|
189
|
+
console.log(' [TEST] Storage Bucket ACL Configuration...');
|
|
190
|
+
const evidence = [];
|
|
191
|
+
const token = await getAccessToken();
|
|
192
|
+
const vulnerabilities = [];
|
|
193
|
+
try {
|
|
194
|
+
// List all buckets
|
|
195
|
+
const bucketsResult = await gcpApiCall(`https://storage.googleapis.com/storage/v1/b?project=${config.projectId}`, 'GET', undefined, token);
|
|
196
|
+
evidence.push(`Found ${bucketsResult.data.items?.length || 0} buckets`);
|
|
197
|
+
if (bucketsResult.data.items) {
|
|
198
|
+
for (const bucket of bucketsResult.data.items.slice(0, 5)) {
|
|
199
|
+
// Get detailed bucket info
|
|
200
|
+
const bucketDetail = await gcpApiCall(`https://storage.googleapis.com/storage/v1/b/${bucket.name}?projection=full`, 'GET', undefined, token);
|
|
201
|
+
const iamConfig = bucketDetail.data.iamConfiguration;
|
|
202
|
+
const uniformAccess = iamConfig?.uniformBucketLevelAccess?.enabled;
|
|
203
|
+
const publicPrevention = iamConfig?.publicAccessPrevention;
|
|
204
|
+
evidence.push(`Bucket: ${bucket.name}`);
|
|
205
|
+
evidence.push(` Uniform bucket-level access: ${uniformAccess}`);
|
|
206
|
+
evidence.push(` Public access prevention: ${publicPrevention}`);
|
|
207
|
+
if (!uniformAccess) {
|
|
208
|
+
vulnerabilities.push(`${bucket.name}: Legacy ACL mode enabled`);
|
|
209
|
+
}
|
|
210
|
+
if (publicPrevention !== 'enforced') {
|
|
211
|
+
vulnerabilities.push(`${bucket.name}: Public access prevention not enforced`);
|
|
212
|
+
}
|
|
213
|
+
// Check for public ACLs
|
|
214
|
+
if (bucketDetail.data.acl) {
|
|
215
|
+
for (const acl of bucketDetail.data.acl) {
|
|
216
|
+
if (acl.entity === 'allUsers' || acl.entity === 'allAuthenticatedUsers') {
|
|
217
|
+
vulnerabilities.push(`${bucket.name}: PUBLIC ACCESS via ${acl.entity}`);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
evidence.push(`Error: ${error}`);
|
|
226
|
+
}
|
|
227
|
+
const verified = vulnerabilities.length > 0;
|
|
228
|
+
evidence.push(...vulnerabilities.map(v => `VULN: ${v}`));
|
|
229
|
+
return {
|
|
230
|
+
id: 'LIVE-STORAGE-ACL-001',
|
|
231
|
+
vulnerability: 'Storage Bucket ACL Misconfiguration',
|
|
232
|
+
verified,
|
|
233
|
+
confidence: verified ? 0.95 : 0.1,
|
|
234
|
+
evidence,
|
|
235
|
+
technique: 'Configuration Audit',
|
|
236
|
+
timestamp: new Date().toISOString(),
|
|
237
|
+
projectId: config.projectId,
|
|
238
|
+
severity: verified ? 'high' : 'info',
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Test 4: Metadata Server Access (for GCE/GKE contexts)
|
|
243
|
+
* Tests if metadata server is accessible and what's exposed
|
|
244
|
+
*/
|
|
245
|
+
async function verifyMetadataServerAccess(config) {
|
|
246
|
+
console.log(' [TEST] Metadata Server Access...');
|
|
247
|
+
const evidence = [];
|
|
248
|
+
// Try to access metadata server (will only work if running on GCP)
|
|
249
|
+
const metadataEndpoints = [
|
|
250
|
+
{ path: '/computeMetadata/v1/project/project-id', header: true },
|
|
251
|
+
{ path: '/computeMetadata/v1/instance/service-accounts/', header: true },
|
|
252
|
+
{ path: '/0.1/meta-data/project/project-id', header: false }, // Legacy endpoint
|
|
253
|
+
];
|
|
254
|
+
let vulnerable = false;
|
|
255
|
+
for (const endpoint of metadataEndpoints) {
|
|
256
|
+
try {
|
|
257
|
+
const result = await new Promise((resolve, reject) => {
|
|
258
|
+
const startTime = performance.now();
|
|
259
|
+
const options = {
|
|
260
|
+
hostname: 'metadata.google.internal',
|
|
261
|
+
port: 80,
|
|
262
|
+
path: endpoint.path,
|
|
263
|
+
method: 'GET',
|
|
264
|
+
headers: endpoint.header ? { 'Metadata-Flavor': 'Google' } : {},
|
|
265
|
+
timeout: 2000,
|
|
266
|
+
};
|
|
267
|
+
const req = http.request(options, (res) => {
|
|
268
|
+
let data = '';
|
|
269
|
+
res.on('data', chunk => data += chunk);
|
|
270
|
+
res.on('end', () => {
|
|
271
|
+
resolve({
|
|
272
|
+
status: res.statusCode || 0,
|
|
273
|
+
data,
|
|
274
|
+
timingMs: performance.now() - startTime,
|
|
275
|
+
});
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
req.on('error', () => resolve({ status: 0, data: 'Not accessible', timingMs: 0 }));
|
|
279
|
+
req.on('timeout', () => {
|
|
280
|
+
req.destroy();
|
|
281
|
+
resolve({ status: 0, data: 'Timeout', timingMs: 2000 });
|
|
282
|
+
});
|
|
283
|
+
req.end();
|
|
284
|
+
});
|
|
285
|
+
evidence.push(`${endpoint.path}: status=${result.status}, ${result.timingMs.toFixed(0)}ms`);
|
|
286
|
+
if (result.status === 200) {
|
|
287
|
+
evidence.push(` Response: ${result.data.substring(0, 100)}`);
|
|
288
|
+
if (!endpoint.header) {
|
|
289
|
+
vulnerable = true;
|
|
290
|
+
evidence.push(' CRITICAL: Legacy metadata endpoint accessible without header!');
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
evidence.push(`${endpoint.path}: ${error}`);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
if (evidence.every(e => e.includes('Not accessible') || e.includes('Timeout'))) {
|
|
299
|
+
evidence.push('Not running on GCP - metadata server not accessible');
|
|
300
|
+
}
|
|
301
|
+
return {
|
|
302
|
+
id: 'LIVE-METADATA-001',
|
|
303
|
+
vulnerability: 'Metadata Server Exposure',
|
|
304
|
+
verified: vulnerable,
|
|
305
|
+
confidence: vulnerable ? 0.95 : 0.1,
|
|
306
|
+
evidence,
|
|
307
|
+
technique: 'Direct Endpoint Probing',
|
|
308
|
+
timestamp: new Date().toISOString(),
|
|
309
|
+
projectId: config.projectId,
|
|
310
|
+
severity: vulnerable ? 'critical' : 'info',
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Test 5: Cross-Project IAM Bindings
|
|
315
|
+
* Checks for overly permissive cross-project access
|
|
316
|
+
*/
|
|
317
|
+
async function verifyCrossProjectBindings(config) {
|
|
318
|
+
console.log(' [TEST] Cross-Project IAM Bindings...');
|
|
319
|
+
const evidence = [];
|
|
320
|
+
const token = await getAccessToken();
|
|
321
|
+
const vulnerabilities = [];
|
|
322
|
+
try {
|
|
323
|
+
// Get project IAM policy
|
|
324
|
+
const policyResult = await gcpApiCall(`https://cloudresourcemanager.googleapis.com/v1/projects/${config.projectId}:getIamPolicy`, 'POST', { options: { requestedPolicyVersion: 3 } }, token);
|
|
325
|
+
evidence.push(`Retrieved IAM policy in ${policyResult.timingMs.toFixed(2)}ms`);
|
|
326
|
+
if (policyResult.data.bindings) {
|
|
327
|
+
for (const binding of policyResult.data.bindings) {
|
|
328
|
+
for (const member of binding.members || []) {
|
|
329
|
+
// Check for cross-project service accounts
|
|
330
|
+
if (member.startsWith('serviceAccount:') && !member.includes(config.projectId)) {
|
|
331
|
+
vulnerabilities.push(`Cross-project SA: ${member} has ${binding.role}`);
|
|
332
|
+
}
|
|
333
|
+
// Check for allUsers/allAuthenticatedUsers
|
|
334
|
+
if (member === 'allUsers' || member === 'allAuthenticatedUsers') {
|
|
335
|
+
vulnerabilities.push(`PUBLIC ACCESS: ${member} has ${binding.role}`);
|
|
336
|
+
}
|
|
337
|
+
// Check for domain-wide access
|
|
338
|
+
if (member.startsWith('domain:')) {
|
|
339
|
+
evidence.push(`Domain binding: ${member} has ${binding.role}`);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
evidence.push(`Total bindings: ${policyResult.data.bindings?.length || 0}`);
|
|
345
|
+
}
|
|
346
|
+
catch (error) {
|
|
347
|
+
evidence.push(`Error: ${error}`);
|
|
348
|
+
}
|
|
349
|
+
const verified = vulnerabilities.length > 0;
|
|
350
|
+
evidence.push(...vulnerabilities.map(v => `VULN: ${v}`));
|
|
351
|
+
return {
|
|
352
|
+
id: 'LIVE-CROSS-PROJECT-001',
|
|
353
|
+
vulnerability: 'Cross-Project IAM Binding Exposure',
|
|
354
|
+
verified,
|
|
355
|
+
confidence: verified ? 0.9 : 0.2,
|
|
356
|
+
evidence,
|
|
357
|
+
technique: 'IAM Policy Analysis',
|
|
358
|
+
timestamp: new Date().toISOString(),
|
|
359
|
+
projectId: config.projectId,
|
|
360
|
+
severity: verified ? 'high' : 'info',
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Test 6: Cloud Functions SSRF Potential
|
|
365
|
+
* Enumerates Cloud Functions that might be vulnerable to SSRF
|
|
366
|
+
*/
|
|
367
|
+
async function verifyCloudFunctionsSSRF(config) {
|
|
368
|
+
console.log(' [TEST] Cloud Functions SSRF Potential...');
|
|
369
|
+
const evidence = [];
|
|
370
|
+
const token = await getAccessToken();
|
|
371
|
+
const potentialVulns = [];
|
|
372
|
+
try {
|
|
373
|
+
// List Cloud Functions (v1 and v2)
|
|
374
|
+
const functionsResult = await gcpApiCall(`https://cloudfunctions.googleapis.com/v1/projects/${config.projectId}/locations/-/functions`, 'GET', undefined, token);
|
|
375
|
+
evidence.push(`Found ${functionsResult.data.functions?.length || 0} Cloud Functions`);
|
|
376
|
+
if (functionsResult.data.functions) {
|
|
377
|
+
for (const fn of functionsResult.data.functions) {
|
|
378
|
+
evidence.push(`Function: ${fn.name}`);
|
|
379
|
+
evidence.push(` Runtime: ${fn.runtime}`);
|
|
380
|
+
evidence.push(` Trigger: ${fn.httpsTrigger ? 'HTTP' : fn.eventTrigger?.eventType || 'Unknown'}`);
|
|
381
|
+
// HTTP-triggered functions with Pub/Sub triggers are SSRF candidates
|
|
382
|
+
if (fn.httpsTrigger || fn.eventTrigger?.eventType?.includes('pubsub')) {
|
|
383
|
+
potentialVulns.push(`${fn.name}: HTTP/Pub/Sub triggered - potential SSRF vector`);
|
|
384
|
+
}
|
|
385
|
+
// Check if function has broad network access
|
|
386
|
+
if (!fn.vpcConnector) {
|
|
387
|
+
evidence.push(` VPC Connector: None (public internet access)`);
|
|
388
|
+
potentialVulns.push(`${fn.name}: No VPC connector - can reach metadata server`);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
catch (error) {
|
|
394
|
+
if (String(error).includes('403')) {
|
|
395
|
+
evidence.push('Cloud Functions API not enabled or no permission');
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
evidence.push(`Error: ${error}`);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
const verified = potentialVulns.length > 0;
|
|
402
|
+
evidence.push(...potentialVulns.map(v => `POTENTIAL: ${v}`));
|
|
403
|
+
return {
|
|
404
|
+
id: 'LIVE-FUNCTIONS-SSRF-001',
|
|
405
|
+
vulnerability: 'Cloud Functions SSRF Potential',
|
|
406
|
+
verified,
|
|
407
|
+
confidence: verified ? 0.7 : 0.1,
|
|
408
|
+
evidence,
|
|
409
|
+
technique: 'Function Enumeration + Architecture Analysis',
|
|
410
|
+
timestamp: new Date().toISOString(),
|
|
411
|
+
projectId: config.projectId,
|
|
412
|
+
severity: verified ? 'medium' : 'info',
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Test 7: BigQuery Dataset Exposure
|
|
417
|
+
* Checks for publicly accessible datasets and authorized views
|
|
418
|
+
*/
|
|
419
|
+
async function verifyBigQueryExposure(config) {
|
|
420
|
+
console.log(' [TEST] BigQuery Dataset Exposure...');
|
|
421
|
+
const evidence = [];
|
|
422
|
+
const token = await getAccessToken();
|
|
423
|
+
const vulnerabilities = [];
|
|
424
|
+
try {
|
|
425
|
+
// List datasets
|
|
426
|
+
const datasetsResult = await gcpApiCall(`https://bigquery.googleapis.com/bigquery/v2/projects/${config.projectId}/datasets`, 'GET', undefined, token);
|
|
427
|
+
evidence.push(`Found ${datasetsResult.data.datasets?.length || 0} datasets`);
|
|
428
|
+
if (datasetsResult.data.datasets) {
|
|
429
|
+
for (const dataset of datasetsResult.data.datasets.slice(0, 5)) {
|
|
430
|
+
const datasetId = dataset.datasetReference.datasetId;
|
|
431
|
+
// Get dataset details with ACLs
|
|
432
|
+
const detailResult = await gcpApiCall(`https://bigquery.googleapis.com/bigquery/v2/projects/${config.projectId}/datasets/${datasetId}`, 'GET', undefined, token);
|
|
433
|
+
evidence.push(`Dataset: ${datasetId}`);
|
|
434
|
+
// Check ACLs for public access
|
|
435
|
+
if (detailResult.data.access) {
|
|
436
|
+
for (const access of detailResult.data.access) {
|
|
437
|
+
if (access.specialGroup === 'allAuthenticatedUsers' || access.specialGroup === 'allUsers') {
|
|
438
|
+
vulnerabilities.push(`${datasetId}: PUBLIC ACCESS via ${access.specialGroup}`);
|
|
439
|
+
}
|
|
440
|
+
if (access.iamMember?.startsWith('allUsers') || access.iamMember?.startsWith('allAuthenticatedUsers')) {
|
|
441
|
+
vulnerabilities.push(`${datasetId}: PUBLIC ACCESS via ${access.iamMember}`);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
// Check for column-level security
|
|
446
|
+
evidence.push(` Labels: ${JSON.stringify(detailResult.data.labels || {})}`);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
catch (error) {
|
|
451
|
+
if (String(error).includes('403')) {
|
|
452
|
+
evidence.push('BigQuery API not enabled or no permission');
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
evidence.push(`Error: ${error}`);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
const verified = vulnerabilities.length > 0;
|
|
459
|
+
evidence.push(...vulnerabilities.map(v => `VULN: ${v}`));
|
|
460
|
+
return {
|
|
461
|
+
id: 'LIVE-BIGQUERY-001',
|
|
462
|
+
vulnerability: 'BigQuery Dataset Exposure',
|
|
463
|
+
verified,
|
|
464
|
+
confidence: verified ? 0.95 : 0.1,
|
|
465
|
+
evidence,
|
|
466
|
+
technique: 'Dataset ACL Analysis',
|
|
467
|
+
timestamp: new Date().toISOString(),
|
|
468
|
+
projectId: config.projectId,
|
|
469
|
+
severity: verified ? 'critical' : 'info',
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Test 8: GKE Cluster Security Configuration
|
|
474
|
+
* Checks for insecure GKE configurations
|
|
475
|
+
*/
|
|
476
|
+
async function verifyGKESecurityConfig(config) {
|
|
477
|
+
console.log(' [TEST] GKE Cluster Security Configuration...');
|
|
478
|
+
const evidence = [];
|
|
479
|
+
const token = await getAccessToken();
|
|
480
|
+
const vulnerabilities = [];
|
|
481
|
+
try {
|
|
482
|
+
// List GKE clusters
|
|
483
|
+
const clustersResult = await gcpApiCall(`https://container.googleapis.com/v1/projects/${config.projectId}/locations/-/clusters`, 'GET', undefined, token);
|
|
484
|
+
evidence.push(`Found ${clustersResult.data.clusters?.length || 0} GKE clusters`);
|
|
485
|
+
if (clustersResult.data.clusters) {
|
|
486
|
+
for (const cluster of clustersResult.data.clusters) {
|
|
487
|
+
evidence.push(`Cluster: ${cluster.name} (${cluster.location})`);
|
|
488
|
+
// Check Workload Identity
|
|
489
|
+
if (!cluster.workloadIdentityConfig?.workloadPool) {
|
|
490
|
+
vulnerabilities.push(`${cluster.name}: Workload Identity not enabled`);
|
|
491
|
+
}
|
|
492
|
+
// Check Shielded Nodes
|
|
493
|
+
if (!cluster.shieldedNodes?.enabled) {
|
|
494
|
+
vulnerabilities.push(`${cluster.name}: Shielded Nodes not enabled`);
|
|
495
|
+
}
|
|
496
|
+
// Check Network Policy
|
|
497
|
+
if (!cluster.networkPolicy?.enabled) {
|
|
498
|
+
vulnerabilities.push(`${cluster.name}: Network Policy not enabled`);
|
|
499
|
+
}
|
|
500
|
+
// Check Binary Authorization
|
|
501
|
+
if (!cluster.binaryAuthorization?.enabled) {
|
|
502
|
+
evidence.push(` Binary Authorization: disabled`);
|
|
503
|
+
}
|
|
504
|
+
// Check legacy metadata
|
|
505
|
+
if (cluster.nodeConfig?.metadata?.['disable-legacy-endpoints'] !== 'true') {
|
|
506
|
+
vulnerabilities.push(`${cluster.name}: Legacy metadata endpoints may be enabled`);
|
|
507
|
+
}
|
|
508
|
+
// Check master authorized networks
|
|
509
|
+
if (!cluster.masterAuthorizedNetworksConfig?.enabled) {
|
|
510
|
+
vulnerabilities.push(`${cluster.name}: Master authorized networks not configured`);
|
|
511
|
+
}
|
|
512
|
+
evidence.push(` Version: ${cluster.currentMasterVersion}`);
|
|
513
|
+
evidence.push(` Node pools: ${cluster.nodePools?.length || 0}`);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
catch (error) {
|
|
518
|
+
if (String(error).includes('403')) {
|
|
519
|
+
evidence.push('GKE API not enabled or no permission');
|
|
520
|
+
}
|
|
521
|
+
else {
|
|
522
|
+
evidence.push(`Error: ${error}`);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
const verified = vulnerabilities.length > 0;
|
|
526
|
+
evidence.push(...vulnerabilities.map(v => `VULN: ${v}`));
|
|
527
|
+
return {
|
|
528
|
+
id: 'LIVE-GKE-001',
|
|
529
|
+
vulnerability: 'GKE Cluster Security Misconfiguration',
|
|
530
|
+
verified,
|
|
531
|
+
confidence: verified ? 0.9 : 0.1,
|
|
532
|
+
evidence,
|
|
533
|
+
technique: 'Cluster Configuration Audit',
|
|
534
|
+
timestamp: new Date().toISOString(),
|
|
535
|
+
projectId: config.projectId,
|
|
536
|
+
severity: verified ? 'high' : 'info',
|
|
537
|
+
};
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Test 9: VPC Service Controls Check
|
|
541
|
+
* Verifies if VPC Service Controls are properly configured
|
|
542
|
+
*/
|
|
543
|
+
async function verifyVPCServiceControls(config) {
|
|
544
|
+
console.log(' [TEST] VPC Service Controls...');
|
|
545
|
+
const evidence = [];
|
|
546
|
+
const token = await getAccessToken();
|
|
547
|
+
try {
|
|
548
|
+
// Try to get access policy
|
|
549
|
+
const policyResult = await gcpApiCall(`https://accesscontextmanager.googleapis.com/v1/accessPolicies`, 'GET', undefined, token);
|
|
550
|
+
if (policyResult.data.accessPolicies?.length > 0) {
|
|
551
|
+
evidence.push(`Found ${policyResult.data.accessPolicies.length} access policies`);
|
|
552
|
+
for (const policy of policyResult.data.accessPolicies) {
|
|
553
|
+
evidence.push(`Policy: ${policy.name}`);
|
|
554
|
+
// Get service perimeters
|
|
555
|
+
const perimetersResult = await gcpApiCall(`https://accesscontextmanager.googleapis.com/v1/${policy.name}/servicePerimeters`, 'GET', undefined, token);
|
|
556
|
+
evidence.push(` Service perimeters: ${perimetersResult.data.servicePerimeters?.length || 0}`);
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
else {
|
|
560
|
+
evidence.push('No VPC Service Controls configured');
|
|
561
|
+
evidence.push('VULN: Project not protected by service perimeter');
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
catch (error) {
|
|
565
|
+
if (String(error).includes('403')) {
|
|
566
|
+
evidence.push('Access Context Manager API not enabled or no permission');
|
|
567
|
+
evidence.push('Cannot verify VPC Service Controls status');
|
|
568
|
+
}
|
|
569
|
+
else {
|
|
570
|
+
evidence.push(`Error: ${error}`);
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
const verified = evidence.some(e => e.includes('VULN:'));
|
|
574
|
+
return {
|
|
575
|
+
id: 'LIVE-VPC-SC-001',
|
|
576
|
+
vulnerability: 'VPC Service Controls Not Configured',
|
|
577
|
+
verified,
|
|
578
|
+
confidence: verified ? 0.85 : 0.3,
|
|
579
|
+
evidence,
|
|
580
|
+
technique: 'Service Perimeter Analysis',
|
|
581
|
+
timestamp: new Date().toISOString(),
|
|
582
|
+
projectId: config.projectId,
|
|
583
|
+
severity: verified ? 'medium' : 'info',
|
|
584
|
+
};
|
|
585
|
+
}
|
|
586
|
+
/**
|
|
587
|
+
* Test 10: Pub/Sub Topic Permissions
|
|
588
|
+
* Checks for overly permissive Pub/Sub configurations
|
|
589
|
+
*/
|
|
590
|
+
async function verifyPubSubPermissions(config) {
|
|
591
|
+
console.log(' [TEST] Pub/Sub Topic Permissions...');
|
|
592
|
+
const evidence = [];
|
|
593
|
+
const token = await getAccessToken();
|
|
594
|
+
const vulnerabilities = [];
|
|
595
|
+
try {
|
|
596
|
+
// List topics
|
|
597
|
+
const topicsResult = await gcpApiCall(`https://pubsub.googleapis.com/v1/projects/${config.projectId}/topics`, 'GET', undefined, token);
|
|
598
|
+
evidence.push(`Found ${topicsResult.data.topics?.length || 0} Pub/Sub topics`);
|
|
599
|
+
if (topicsResult.data.topics) {
|
|
600
|
+
for (const topic of topicsResult.data.topics.slice(0, 5)) {
|
|
601
|
+
const topicName = topic.name;
|
|
602
|
+
// Get IAM policy for topic
|
|
603
|
+
const policyResult = await gcpApiCall(`https://pubsub.googleapis.com/v1/${topicName}:getIamPolicy`, 'GET', undefined, token);
|
|
604
|
+
evidence.push(`Topic: ${topicName.split('/').pop()}`);
|
|
605
|
+
if (policyResult.data.bindings) {
|
|
606
|
+
for (const binding of policyResult.data.bindings) {
|
|
607
|
+
for (const member of binding.members || []) {
|
|
608
|
+
if (member === 'allUsers' || member === 'allAuthenticatedUsers') {
|
|
609
|
+
vulnerabilities.push(`${topicName.split('/').pop()}: ${member} has ${binding.role}`);
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
catch (error) {
|
|
618
|
+
if (String(error).includes('403')) {
|
|
619
|
+
evidence.push('Pub/Sub API not enabled or no permission');
|
|
620
|
+
}
|
|
621
|
+
else {
|
|
622
|
+
evidence.push(`Error: ${error}`);
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
const verified = vulnerabilities.length > 0;
|
|
626
|
+
evidence.push(...vulnerabilities.map(v => `VULN: ${v}`));
|
|
627
|
+
return {
|
|
628
|
+
id: 'LIVE-PUBSUB-001',
|
|
629
|
+
vulnerability: 'Pub/Sub Topic Public Access',
|
|
630
|
+
verified,
|
|
631
|
+
confidence: verified ? 0.95 : 0.1,
|
|
632
|
+
evidence,
|
|
633
|
+
technique: 'Topic IAM Policy Analysis',
|
|
634
|
+
timestamp: new Date().toISOString(),
|
|
635
|
+
projectId: config.projectId,
|
|
636
|
+
severity: verified ? 'high' : 'info',
|
|
637
|
+
};
|
|
638
|
+
}
|
|
639
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
640
|
+
// Main Export
|
|
641
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
642
|
+
/**
|
|
643
|
+
* Run all live GCP verification tests
|
|
644
|
+
*/
|
|
645
|
+
export async function runLiveGCPVerification(projectId) {
|
|
646
|
+
console.log('\n');
|
|
647
|
+
console.log('████████████████████████████████████████████████████████████████████████████████');
|
|
648
|
+
console.log('██ ██');
|
|
649
|
+
console.log('██ LIVE GCP VERIFICATION - REAL API TESTING ██');
|
|
650
|
+
console.log('██ Authorized Red Team Operations ██');
|
|
651
|
+
console.log('██ ██');
|
|
652
|
+
console.log('████████████████████████████████████████████████████████████████████████████████\n');
|
|
653
|
+
// Get project ID from arg, env, or gcloud config
|
|
654
|
+
let resolvedProjectId = projectId;
|
|
655
|
+
if (!resolvedProjectId) {
|
|
656
|
+
try {
|
|
657
|
+
const { stdout } = await execAsync('gcloud config get-value project');
|
|
658
|
+
resolvedProjectId = stdout.trim();
|
|
659
|
+
}
|
|
660
|
+
catch {
|
|
661
|
+
throw new Error('No project ID provided and could not get from gcloud config');
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
console.log(`Target Project: ${resolvedProjectId}`);
|
|
665
|
+
console.log(`Timestamp: ${new Date().toISOString()}`);
|
|
666
|
+
console.log('\n');
|
|
667
|
+
const config = { projectId: resolvedProjectId };
|
|
668
|
+
const results = [];
|
|
669
|
+
// Run all tests
|
|
670
|
+
const tests = [
|
|
671
|
+
verifyIAMRaceCondition,
|
|
672
|
+
verifyServiceAccountKeyRace,
|
|
673
|
+
verifyStorageACLConfig,
|
|
674
|
+
verifyMetadataServerAccess,
|
|
675
|
+
verifyCrossProjectBindings,
|
|
676
|
+
verifyCloudFunctionsSSRF,
|
|
677
|
+
verifyBigQueryExposure,
|
|
678
|
+
verifyGKESecurityConfig,
|
|
679
|
+
verifyVPCServiceControls,
|
|
680
|
+
verifyPubSubPermissions,
|
|
681
|
+
];
|
|
682
|
+
console.log('┌─────────────────────────────────────────────────────────────────────────────┐');
|
|
683
|
+
console.log('│ EXECUTING LIVE VERIFICATION TESTS │');
|
|
684
|
+
console.log('└─────────────────────────────────────────────────────────────────────────────┘\n');
|
|
685
|
+
for (const test of tests) {
|
|
686
|
+
try {
|
|
687
|
+
const result = await test(config);
|
|
688
|
+
results.push(result);
|
|
689
|
+
const status = result.verified ? '⚠ VULNERABLE' : '✓ OK';
|
|
690
|
+
const severity = result.verified ? `[${result.severity.toUpperCase()}]` : '';
|
|
691
|
+
console.log(` ${status} ${severity} ${result.vulnerability}`);
|
|
692
|
+
console.log(` Confidence: ${(result.confidence * 100).toFixed(1)}%`);
|
|
693
|
+
console.log('');
|
|
694
|
+
}
|
|
695
|
+
catch (error) {
|
|
696
|
+
console.log(` ✗ ERROR: ${test.name} - ${error}`);
|
|
697
|
+
console.log('');
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
// Summary
|
|
701
|
+
const verified = results.filter(r => r.verified);
|
|
702
|
+
const critical = verified.filter(r => r.severity === 'critical');
|
|
703
|
+
const high = verified.filter(r => r.severity === 'high');
|
|
704
|
+
const medium = verified.filter(r => r.severity === 'medium');
|
|
705
|
+
console.log('\n');
|
|
706
|
+
console.log('████████████████████████████████████████████████████████████████████████████████');
|
|
707
|
+
console.log('██ LIVE VERIFICATION COMPLETE ██');
|
|
708
|
+
console.log('████████████████████████████████████████████████████████████████████████████████');
|
|
709
|
+
console.log('');
|
|
710
|
+
console.log(` Total Tests: ${results.length}`);
|
|
711
|
+
console.log(` Vulnerabilities Found: ${verified.length}`);
|
|
712
|
+
console.log(` Critical: ${critical.length}`);
|
|
713
|
+
console.log(` High: ${high.length}`);
|
|
714
|
+
console.log(` Medium: ${medium.length}`);
|
|
715
|
+
console.log('');
|
|
716
|
+
if (verified.length > 0) {
|
|
717
|
+
console.log('┌─────────────────────────────────────────────────────────────────────────────┐');
|
|
718
|
+
console.log('│ CONFIRMED VULNERABILITIES │');
|
|
719
|
+
console.log('└─────────────────────────────────────────────────────────────────────────────┘\n');
|
|
720
|
+
for (const v of verified) {
|
|
721
|
+
console.log(` ⚠ [${v.severity.toUpperCase()}] ${v.vulnerability}`);
|
|
722
|
+
console.log(` ID: ${v.id}`);
|
|
723
|
+
console.log(` Confidence: ${(v.confidence * 100).toFixed(1)}%`);
|
|
724
|
+
console.log(` Technique: ${v.technique}`);
|
|
725
|
+
console.log(` Evidence:`);
|
|
726
|
+
for (const e of v.evidence.slice(0, 5)) {
|
|
727
|
+
console.log(` - ${e}`);
|
|
728
|
+
}
|
|
729
|
+
console.log('');
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
console.log('████████████████████████████████████████████████████████████████████████████████\n');
|
|
733
|
+
return {
|
|
734
|
+
results,
|
|
735
|
+
summary: {
|
|
736
|
+
total: results.length,
|
|
737
|
+
verified: verified.length,
|
|
738
|
+
critical: critical.length,
|
|
739
|
+
high: high.length,
|
|
740
|
+
medium: medium.length,
|
|
741
|
+
},
|
|
742
|
+
};
|
|
743
|
+
}
|
|
744
|
+
export default runLiveGCPVerification;
|
|
745
|
+
//# sourceMappingURL=liveGCPVerification.js.map
|