🚀 NEW: Added InfoValidator feature as dual-purpose platform

This commit is contained in:
EP
2025-08-23 10:27:44 -07:00
parent ead8d193e8
commit 21f3f8e33d
5 changed files with 1168 additions and 532 deletions
+189 -163
View File
@@ -1,56 +1,53 @@
# InfoValidator 🔍✨
# 🚀 LeakHub - AI System Prompt Discovery Platform
**The Universal Platform for Crowd-Sourced Information Verification**
**The community hub for crowd-sourced system prompt leak verification. CL4R1T4S!**
A community-driven web platform for discovering, submitting, verifying, and analyzing any type of information claim. From AI system prompts to code algorithms, data facts to documents - if it can be verified, it belongs here!
## 🌟 What is LeakHub?
## 🌟 Vision
LeakHub is a revolutionary web platform that enables the community to discover, submit, verify, and analyze AI system prompt leaks. It's designed to promote transparency in AI systems through crowdsourced verification and community-driven discovery.
**Humans + AI = Truth!** InfoValidator combines the power of human intelligence with AI analysis to create the most comprehensive information verification platform ever built.
## ✨ Features
## 🚀 Features
### 🔍 **Core Functionality**
- **Submit Leaks**: Submit suspected AI system prompt leaks with detailed metadata
- **Compare & Verify**: Advanced comparison algorithms to verify authenticity
- **Community Library**: Browse and search through all submitted leaks
- **Confidence Scoring**: Automatic confidence assessment based on content analysis
### Core Functionality
- **📤 Universal Submission System**: Submit any type of information claim (AI prompts, code, data, documents, images, APIs, etc.)
- **🔍 Advanced Comparison Engine**: Compare multiple claims with AI-powered similarity analysis
- **✅ Community Verification**: Crowd-sourced validation with confidence scoring
- **🏆 Gamification**: Points, achievements, and leaderboards to encourage participation
### 🎯 **Target Types Supported**
- 🤖 **AI Models** (GPT-4, Claude, Gemini, etc.)
- 📱 **Apps/Interfaces** (Cursor, GitHub Copilot, etc.)
- 🔧 **Tools/Functions** (Code Interpreter, WebPilot, etc.)
- 🤝 **AI Agents** (AutoGPT, BabyAGI, etc.)
- 🔌 **Plugins/Extensions** (Browser extensions, IDE plugins, etc.)
- 🛠️ **Custom GPTs/Bots** (Custom implementations)
### Information Categories
- **🤖 AI System Prompts**: Discover and verify AI model system instructions
- **💻 Code/Algorithms**: Verify code snippets, algorithms, and technical implementations
- **📊 Data/Facts**: Validate datasets, statistics, and factual information
- **📄 Documents/Text**: Verify official documents, texts, and written content
- **🖼️ Images/Visual**: Validate visual content and image-based claims
- **🎵 Audio/Video**: Verify multimedia content and audio/video claims
- **🔌 APIs/Endpoints**: Validate API specifications and endpoint information
- **🛠️ Custom Claims**: Submit any other type of verifiable information
### 🏆 **Gamification & Community**
- **Leaderboard**: Track top contributors and achievements
- **Daily Challenges**: Compete in daily leak hunting challenges
- **Achievement System**: Unlock badges for notable contributions
- **Points System**: Earn points for submissions, verifications, and discoveries
### Community Features
- **💬 Real-time Chat**: Collaborate with other validators in live chat
- **🎯 Daily Challenges**: Complete verification challenges for bonus rewards
- **💰 Bounty System**: Request specific information validation with point rewards
- **📈 Analytics Dashboard**: Track platform statistics and growth trends
- **👤 User Profiles**: Detailed validator profiles with achievements and stats
### 🎯 **Requests & Bounties**
- **Community Requests**: Request specific targets for leak hunting
- **Voting System**: Vote on which targets to prioritize
- **Bounty System**: Offer points for high-priority discoveries
- **Trending Requests**: See what the community wants most
### Technical Features
- **🔒 Security**: XSS protection, security headers, and data sanitization
- **📱 Responsive Design**: Works perfectly on desktop, tablet, and mobile
- **⚡ Performance**: Optimized for speed with modern web technologies
- **🔄 Auto-save**: Never lose your work with automatic data saving
- **📤 Export/Import**: Backup and restore your data easily
### 📊 **Advanced Analytics**
- **Similarity Metrics**: Character match, word match, structure match, core similarity
- **Consensus View**: Identify common elements across multiple submissions
- **Verification Tracking**: Track verification status and confidence levels
- **Statistics Dashboard**: Real-time platform statistics
## 🛠️ Tech Stack
## 🚀 Getting Started
- **Frontend**: HTML5, CSS3, JavaScript (ES6+)
- **Build Tool**: Vite (for development and production builds)
- **Data Storage**: LocalStorage with database abstraction layer
- **Deployment**: GitHub Pages, Vercel, Netlify ready
- **Security**: Comprehensive security headers and XSS protection
### Prerequisites
- **For Development**: Node.js 18+ and npm
- **For Production**: Modern web browser (Chrome, Firefox, Safari, Edge)
- **For Backend**: Optional - MongoDB, Supabase, or Firebase
## 🚀 Quick Start
### Development
### Quick Start (Development)
```bash
# Clone the repository
git clone https://github.com/elder-plinius/LEAKHUB.git
@@ -62,159 +59,188 @@ npm install
# Start development server
npm run dev
# Open http://localhost:3000/LEAKHUB/
# Open http://localhost:3000
```
### Production
### Quick Start (Production)
1. **GitHub Pages**: Push to main branch - auto-deploys!
2. **Vercel**: `npm i -g vercel && vercel`
3. **Netlify**: `npm install -g netlify-cli && netlify deploy`
### Local Testing
```bash
# Build for production
npm run build
# Preview production build
npm run preview
# Serve static files
npm run serve
```
## 📊 Platform Statistics
### Quick Start Guide
- **Active Claims**: Real-time count of submitted information claims
- **Total Submissions**: Total number of claims submitted to the platform
- **Verified Claims**: Number of claims with high confidence scores
- **Active Validators**: Number of users actively participating
#### 1. **Submit Your First Leak**
1. Fill in your identifier (username)
2. Select the target type (AI Model, App, Tool, etc.)
3. Enter the target name and URL
4. Paste the suspected system prompt
5. Add context and access requirements
6. Submit and earn points!
#### 2. **Compare Submissions**
1. Select two different submissions from the dropdowns
2. Click "Compare" to analyze similarity
3. Review the detailed metrics and consensus view
4. High similarity automatically boosts confidence scores
#### 3. **Join the Community**
1. Click "View Leaderboard" to see top contributors
2. Check out "Requests & Challenges" for daily missions
3. Vote on community requests
4. Track your achievements and progress
## 🎮 How It Works
### **Submission Process**
1. **Content Analysis**: Automatic confidence scoring based on prompt patterns
2. **First Discovery Detection**: Identifies if this is the first submission for a target
3. **Point Allocation**: Awards points for submissions, discoveries, and verifications
4. **Metadata Tracking**: Stores access requirements, context, and tool information
### **Verification System**
1. **Multi-Metric Comparison**: Uses character, word, structure, and core similarity
2. **Consensus Building**: Identifies common elements across submissions
3. **Confidence Boosting**: High similarity automatically increases confidence scores
4. **Verification Milestones**: Tracks when leaks reach verified status
### **Gamification Mechanics**
- **Base Points**: 10 points per submission
- **First Discovery**: 100 points + 50 bonus for non-model targets
- **Tool Prompts**: 30 bonus points for comprehensive submissions
- **Verification**: 20 points per verification + 50 bonus for reaching verified status
- **Daily Challenges**: 400-700 points for completing daily missions
## 🎨 Design Features
### **Modern UI/UX**
- **Cyberpunk Aesthetic**: Dark theme with neon accents and gradients
- **Responsive Design**: Works perfectly on desktop, tablet, and mobile
- **Smooth Animations**: Floating grid background and interactive elements
- **Intuitive Navigation**: Clear sections and easy-to-use interface
### **Visual Elements**
- **Status Indicators**: Real-time statistics and progress tracking
- **Badge System**: Visual indicators for access requirements and features
- **Color Coding**: Different colors for different target types and confidence levels
- **Interactive Elements**: Hover effects, transitions, and feedback
## 🔧 Technical Details
### **Frontend Technologies**
- **HTML5**: Semantic markup and modern structure
- **CSS3**: Advanced styling with animations and responsive design
- **JavaScript (ES6+)**: Full application logic and data management
- **Vite**: Fast build tool and development server
- **LocalStorage**: Client-side data persistence with backend fallback
### **Backend & Deployment**
- **GitHub Actions**: Automated CI/CD pipeline
- **Vercel/Netlify**: Serverless deployment with functions
- **Database Abstraction**: Support for localStorage, MongoDB, Supabase, Firebase
- **API Layer**: RESTful endpoints with CORS support
### **Key Algorithms**
- **Text Normalization**: Standardized text processing for comparison
- **Similarity Metrics**: Multiple algorithms for comprehensive analysis
- **Levenshtein Distance**: String similarity calculation
- **Phrase Matching**: Sliding window approach for common phrase detection
### **Data Management**
- **Hybrid Storage**: localStorage with optional backend persistence
- **JSON Serialization**: Efficient data storage and retrieval
- **Real-time Updates**: Instant UI updates and statistics
- **Data Validation**: Input validation and error handling
- **Export/Import**: Full data backup and restore functionality
## 🎯 Use Cases
### For Researchers
- Verify AI system prompts and model behaviors
- Validate technical implementations and algorithms
- Cross-reference data sources and factual claims
### **For Researchers**
- Document and verify AI system prompts
- Compare different implementations
- Track prompt evolution over time
- Build comprehensive prompt databases
### For Developers
- Verify API specifications and endpoint details
- Validate code snippets and implementation patterns
- Compare different technical approaches
### **For Developers**
- Understand AI system behaviors
- Debug prompt-related issues
- Learn from existing implementations
- Contribute to AI transparency
### For Journalists
- Verify official documents and statements
- Validate data sources and statistical claims
- Cross-check information from multiple sources
### For Students
- Verify educational content and academic claims
- Validate research findings and data
- Learn verification techniques and critical thinking
## 🔧 Configuration
### Environment Variables
```bash
# Database configuration (for future backend integration)
DATABASE_TYPE=localStorage # localStorage, mongodb, supabase, firebase
API_URL=https://api.infovalidator.com
JWT_SECRET=your-secret-key
# Feature flags
ENABLE_CHAT=true
ENABLE_ANALYTICS=true
ENABLE_EXPORT=true
```
### Security Settings
- **Content Security Policy**: Comprehensive CSP headers
- **XSS Protection**: Input sanitization and output encoding
- **HTTPS Enforcement**: Secure headers for production
- **Data Validation**: Client-side and server-side validation
## 📈 Analytics & Insights
### Platform Analytics
- **Claim Distribution**: Breakdown by category and type
- **Growth Trends**: Submission and user growth over time
- **Top Validators**: Most active and accurate contributors
- **Verification Rates**: Success rates for different claim types
### User Analytics
- **Personal Stats**: Individual validator performance
- **Achievement Tracking**: Unlocked badges and milestones
- **Activity Timeline**: Recent submissions and verifications
- **Comparison History**: Past comparison analyses
## 🏆 Achievement System
### Badges Available
- **🔰 First Blood**: Submit your first claim
- **🔍 Discoverer**: Submit 5 verified claims
- **✅ Verifier**: Verify 10 claims with high accuracy
- **🏆 Expert**: Achieve 1000+ total points
- **💎 Diamond**: Submit 50+ claims with 95%+ confidence
- **🚀 Pioneer**: Be first to discover 10 claims
- **🤝 Collaborator**: Participate in 20+ comparisons
- **📊 Analyst**: Complete 5 daily challenges
- **🎯 Bounty Hunter**: Earn 500+ bounty points
- **🌟 Legend**: Reach the top 1% of validators
## 🔮 Future Roadmap
### Phase 2: Enhanced Verification
- **AI-Powered Analysis**: Advanced ML models for claim verification
- **Blockchain Integration**: Immutable verification records
- **API Ecosystem**: Public API for third-party integrations
- **Mobile App**: Native iOS and Android applications
### Phase 3: Advanced Features
- **Real-time Collaboration**: Live editing and verification sessions
- **Expert Networks**: Domain-specific validator communities
- **Automated Fact-checking**: AI-driven claim verification
- **Integration APIs**: Connect with external verification services
### Phase 4: Enterprise Features
- **Team Management**: Organizational accounts and permissions
- **Advanced Analytics**: Detailed reporting and insights
- **Custom Workflows**: Configurable verification processes
- **API Marketplace**: Third-party verification service integrations
### **For Community**
- Participate in AI transparency efforts
- Compete in daily challenges
- Build reputation and achievements
- Help verify and validate discoveries
## 🤝 Contributing
We welcome contributions from the community! Here's how you can help:
### **How to Contribute**
1. **Submit Leaks**: Share discovered system prompts
2. **Verify Submissions**: Compare and verify existing leaks
3. **Request Targets**: Suggest new targets for the community
4. **Vote on Requests**: Help prioritize community goals
5. **Report Issues**: Help improve the platform
### Development
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
### **Best Practices**
- **Be Accurate**: Only submit genuine system prompts
- **Provide Context**: Include how you obtained the prompt
- **Add Metadata**: Include access requirements and URLs
- **Verify Others**: Help verify community submissions
- **Respect Privacy**: Don't submit private or sensitive information
### Content
- Submit new information claims for verification
- Participate in community discussions
- Help verify existing claims
- Suggest new features and improvements
## 🔮 Future Enhancements
### Documentation
- Improve documentation and guides
- Add examples and tutorials
- Translate content to other languages
- Create video tutorials and demos
### **Planned Features**
- **Advanced Analytics**: Machine learning-based similarity detection
- **Mobile App**: Native mobile application
- **Real-time Collaboration**: Live collaboration features
- **Advanced Export**: Data export in various formats (CSV, JSON, API)
- **User Authentication**: Secure user accounts and profiles
- **Social Features**: Comments, discussions, and community forums
### **Backend Integration**
- **Database Support**: MongoDB, PostgreSQL, Firebase integration
- **API Access**: RESTful API for programmatic access
- **Real-time Updates**: WebSocket support for live updates
- **Email Notifications**: Automated notifications and alerts
- **Advanced Security**: JWT authentication and rate limiting
### **Community Features**
- **User Profiles**: Detailed user profiles and statistics
- **Discussion Forums**: Community discussions and analysis
- **Expert Verification**: Expert review system
- **Bounty Marketplace**: Advanced bounty and reward system
- **Achievement System**: Expanded badges and rewards
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
This project is open source and available under the MIT License. See the LICENSE file for details.
## 🙏 Acknowledgments
- **Open Source Community**: For the amazing tools and libraries that make this possible
- **Early Validators**: The community members who helped shape the platform
- **AI Researchers**: For inspiring the verification methodologies
- **Security Experts**: For guidance on platform security and best practices
- **AI Research Community**: For inspiration and feedback
- **Open Source Contributors**: For tools and libraries used
- **Early Testers**: For valuable feedback and suggestions
- **CL4R1T4S Community**: For the vision of AI transparency
## 📞 Support
- **Documentation**: [docs.infovalidator.com](https://docs.infovalidator.com)
- **Community**: [community.infovalidator.com](https://community.infovalidator.com)
- **Email**: support@infovalidator.com
- **Discord**: [Join our Discord server](https://discord.gg/infovalidator)
- **Issues**: Report bugs and feature requests via GitHub issues
- **Discussions**: Join community discussions
- **Documentation**: Check the inline documentation and comments
---
**Built with ❤️ by the InfoValidator community**
*Empowering truth through collective intelligence*
**Ready to start hunting for AI system prompts? Open `index.html` and join the LeakHub community! 🚀**
+350 -229
View File
@@ -1,245 +1,366 @@
// Demo data for InfoValidator
// Demo data for LeakHub - Sample submissions to showcase the platform
// Run this in the browser console to populate with demo data
const demoSubmissions = [
{
id: "demo1",
source: "DemoUser1",
targetType: "model",
instance: "GPT-4",
targetUrl: "https://chat.openai.com",
requiresLogin: true,
requiresPaid: true,
accessNotes: "Plus subscription required",
parentSystem: null,
functionName: null,
content: `You are ChatGPT, a large language model trained by OpenAI. You are designed to be helpful, harmless, and honest in your responses.
Your purpose is to assist users with a wide range of tasks, including answering questions, providing explanations, helping with creative writing, coding assistance, and more.
Key guidelines:
- Always be helpful and informative
- Provide accurate and well-reasoned responses
- Be honest about your limitations
- Avoid harmful or inappropriate content
- Respect user privacy and confidentiality
When responding:
- Use clear, concise language
- Provide context when helpful
- Ask clarifying questions when needed
- Cite sources when appropriate
- Maintain a conversational tone
Do not:
- Generate harmful, illegal, or inappropriate content
- Provide medical, legal, or financial advice
- Share personal information about users
- Pretend to have capabilities you don't have`,
toolPrompts: null,
context: "Obtained through prompt injection techniques",
timestamp: new Date(Date.now() - 86400000).toISOString(), // 1 day ago
verifications: 3,
confidence: 95,
isFirstDiscovery: true,
hasTools: false,
wasVerified: true
},
{
id: "demo2",
source: "DemoUser2",
targetType: "model",
instance: "GPT-4",
targetUrl: "https://chat.openai.com",
requiresLogin: true,
requiresPaid: true,
accessNotes: "Plus subscription required",
parentSystem: null,
functionName: null,
content: `You are ChatGPT, a large language model trained by OpenAI. Your role is to be helpful, harmless, and honest in all interactions.
Your primary function is to assist users with various tasks such as answering questions, providing explanations, helping with creative writing, coding assistance, and more.
Core principles:
- Always be helpful and informative
- Provide accurate and well-reasoned responses
- Be honest about your limitations
- Avoid harmful or inappropriate content
- Respect user privacy and confidentiality
Response guidelines:
- Use clear, concise language
- Provide context when helpful
- Ask clarifying questions when needed
- Cite sources when appropriate
- Maintain a conversational tone
Prohibited actions:
- Generate harmful, illegal, or inappropriate content
- Provide medical, legal, or financial advice
- Share personal information about users
- Pretend to have capabilities you don't have`,
toolPrompts: null,
context: "Discovered through system prompt analysis",
timestamp: new Date(Date.now() - 43200000).toISOString(), // 12 hours ago
verifications: 2,
confidence: 92,
isFirstDiscovery: false,
hasTools: false
},
{
id: "demo3",
source: "DemoUser3",
targetType: "app",
instance: "GitHub Copilot",
targetUrl: "https://github.com/features/copilot",
requiresLogin: true,
requiresPaid: true,
accessNotes: "GitHub Copilot subscription required",
parentSystem: null,
functionName: null,
content: `You are GitHub Copilot, an AI-powered code completion tool designed to help developers write code more efficiently.
Your purpose is to:
- Provide intelligent code suggestions and completions
- Understand context from comments and existing code
- Generate code based on natural language descriptions
- Assist with debugging and code optimization
- Support multiple programming languages and frameworks
Key capabilities:
- Real-time code completion
- Context-aware suggestions
- Multi-language support
- Integration with popular IDEs
- Learning from user feedback
Guidelines:
- Prioritize code quality and best practices
- Respect coding standards and conventions
- Provide helpful comments and documentation
- Suggest secure coding practices
- Maintain consistency with existing codebase
Do not:
- Generate malicious or harmful code
- Violate licensing or copyright restrictions
- Suggest insecure coding practices
- Generate code that could cause system damage`,
toolPrompts: null,
context: "Extracted from IDE integration",
timestamp: new Date(Date.now() - 21600000).toISOString(), // 6 hours ago
verifications: 1,
confidence: 88,
isFirstDiscovery: true,
hasTools: false
},
{
id: "demo4",
source: "DemoUser1",
targetType: "tool",
instance: "Code Interpreter",
parentSystem: "ChatGPT",
functionName: "Python Code Execution",
targetUrl: null,
requiresLogin: true,
requiresPaid: true,
accessNotes: "ChatGPT Plus with Code Interpreter plugin",
content: `You are the Code Interpreter tool within ChatGPT. Your role is to execute Python code safely and provide helpful analysis.
Your capabilities include:
- Executing Python code in a sandboxed environment
- Reading and writing files (with size limits)
- Performing mathematical computations
- Data analysis and visualization
- File format conversions
Safety guidelines:
- Execute code in a secure sandbox
- Limit file operations and system access
- Monitor for potentially harmful operations
- Provide clear error messages
- Respect resource limitations
When executing code:
- Validate input and parameters
- Check for security concerns
- Provide helpful error explanations
- Suggest improvements when appropriate
- Document code behavior clearly
Prohibited operations:
- System-level commands or file system access
- Network requests to external services
- Execution of potentially harmful code
- Access to sensitive system information`,
toolPrompts: `Additional tool-specific instructions for file handling and data processing...`,
context: "Analyzed from plugin behavior",
timestamp: new Date(Date.now() - 7200000).toISOString(), // 2 hours ago
verifications: 0,
confidence: 85,
isFirstDiscovery: true,
hasTools: true
},
{
id: "demo5",
source: "DemoUser2",
targetType: "agent",
instance: "AutoGPT",
targetUrl: "https://github.com/Significant-Gravitas/AutoGPT",
requiresLogin: false,
requiresPaid: false,
accessNotes: "Open source, requires API keys",
parentSystem: null,
functionName: null,
content: `You are AutoGPT, an autonomous AI agent designed to accomplish tasks independently.
Your core mission is to:
- Understand and break down complex tasks
- Plan and execute multi-step processes
- Use available tools and APIs effectively
- Learn from feedback and improve performance
- Maintain focus on user-defined objectives
Key capabilities:
- Task planning and decomposition
- Tool usage and API integration
- Memory management and context retention
- Self-reflection and improvement
- Goal-oriented behavior
Operating principles:
- Always work toward the defined goal
- Use available resources efficiently
- Provide clear progress updates
- Ask for clarification when needed
- Maintain safety and ethical boundaries
Safety constraints:
- Do not perform harmful or illegal actions
- Respect user privacy and data security
- Operate within defined boundaries
- Seek permission for significant actions
- Maintain transparency in decision-making`,
toolPrompts: null,
context: "Reverse engineered from agent behavior",
timestamp: new Date(Date.now() - 3600000).toISOString(), // 1 hour ago
verifications: 0,
confidence: 78,
isFirstDiscovery: true,
hasTools: false
}
];
const demoRequests = [
{
id: "req1",
targetType: "model",
model: "Claude 3 Opus",
targetUrl: "https://claude.ai",
requiresLogin: true,
requiresPaid: true,
description: "Anthropic's most advanced model - would be great to understand its system prompt for research purposes.",
bounty: 1000,
requestedBy: "DemoUser1",
timestamp: new Date(Date.now() - 86400000).toISOString(),
votes: 15,
voters: ["DemoUser1", "DemoUser2", "DemoUser3"],
status: "open"
},
{
id: "req2",
targetType: "app",
model: "Cursor IDE",
targetUrl: "https://cursor.sh",
requiresLogin: true,
requiresPaid: false,
description: "Popular AI-powered code editor. Interested in understanding how it processes code context.",
bounty: 500,
requestedBy: "DemoUser2",
timestamp: new Date(Date.now() - 43200000).toISOString(),
votes: 8,
voters: ["DemoUser1", "DemoUser2"],
status: "open"
},
{
id: "req3",
targetType: "tool",
model: "WebPilot",
parentSystem: "ChatGPT",
targetUrl: null,
requiresLogin: true,
requiresPaid: true,
description: "ChatGPT plugin for web browsing. Want to understand how it processes web content safely.",
bounty: 300,
requestedBy: "DemoUser3",
timestamp: new Date(Date.now() - 21600000).toISOString(),
votes: 5,
voters: ["DemoUser3"],
status: "open"
}
];
// Function to load demo data
function loadDemoData() {
const demoSubmissions = [
{
id: 1,
sourceName: "AI_Researcher_001",
targetType: "ai-system",
instanceId: "ChatGPT-4 System Prompt",
targetUrl: "https://chat.openai.com",
requiresLogin: true,
requiresPaid: true,
accessNotes: "Plus subscription required",
leakContent: "You are ChatGPT, a large language model trained by OpenAI. You are helpful, harmless, and honest. You can engage in conversations, answer questions, and assist with various tasks. You should be direct and concise in your responses.",
context: "Obtained through prompt injection techniques",
toolPrompts: "",
timestamp: new Date(Date.now() - 86400000).toISOString(),
confidence: 95,
isFirstDiscovery: true,
verificationCount: 3
},
{
id: 2,
sourceName: "CodeHunter_2024",
targetType: "code-snippet",
instanceId: "Bitcoin Mining Algorithm Core",
targetUrl: "https://github.com/bitcoin/bitcoin",
requiresLogin: false,
requiresPaid: false,
accessNotes: "Open source repository",
leakContent: "SHA256(SHA256(version + prev_hash + merkle_root + timestamp + difficulty + nonce))",
context: "Extracted from Bitcoin Core source code",
toolPrompts: "",
timestamp: new Date(Date.now() - 172800000).toISOString(),
confidence: 98,
isFirstDiscovery: true,
verificationCount: 5
},
{
id: 3,
sourceName: "DataScientist_Pro",
targetType: "data-fact",
instanceId: "Global Population Dataset 2024",
targetUrl: "https://data.worldbank.org",
requiresLogin: false,
requiresPaid: false,
accessNotes: "Public dataset",
leakContent: "World population: 8.1 billion (2024 estimate). Top countries: China (1.4B), India (1.4B), USA (340M), Indonesia (280M), Pakistan (240M)",
context: "Compiled from UN World Population Prospects",
toolPrompts: "",
timestamp: new Date(Date.now() - 259200000).toISOString(),
confidence: 92,
isFirstDiscovery: false,
verificationCount: 2
},
{
id: 4,
sourceName: "DocumentDigger",
targetType: "document",
instanceId: "US Constitution Full Text",
targetUrl: "https://www.archives.gov/founding-docs",
requiresLogin: false,
requiresPaid: false,
accessNotes: "Public domain document",
leakContent: "We the People of the United States, in Order to form a more perfect Union, establish Justice, insure domestic Tranquility, provide for the common defence, promote the general Welfare, and secure the Blessings of Liberty to ourselves and our Posterity, do ordain and establish this Constitution for the United States of America.",
context: "Official government archive",
toolPrompts: "",
timestamp: new Date(Date.now() - 345600000).toISOString(),
confidence: 100,
isFirstDiscovery: false,
verificationCount: 8
},
{
id: 5,
sourceName: "APIMaster_2024",
targetType: "api",
instanceId: "OpenAI API Rate Limits",
targetUrl: "https://platform.openai.com/docs",
requiresLogin: true,
requiresPaid: true,
accessNotes: "API key required",
leakContent: "Rate limits: GPT-4: 10 requests/minute, GPT-3.5: 60 requests/minute. Token limits: GPT-4: 8,192 tokens, GPT-3.5: 4,096 tokens",
context: "From official API documentation",
toolPrompts: "",
timestamp: new Date(Date.now() - 432000000).toISOString(),
confidence: 97,
isFirstDiscovery: true,
verificationCount: 4
},
{
id: 6,
sourceName: "VisualVerifier",
targetType: "image",
instanceId: "Mars Rover Perseverance Images",
targetUrl: "https://mars.nasa.gov/msl",
requiresLogin: false,
requiresPaid: false,
accessNotes: "NASA public gallery",
leakContent: "High-resolution images from Jezero Crater showing sedimentary rock layers, potential signs of ancient water flow, and organic compounds detected by SHERLOC instrument",
context: "NASA mission data release",
toolPrompts: "",
timestamp: new Date(Date.now() - 518400000).toISOString(),
confidence: 99,
isFirstDiscovery: false,
verificationCount: 6
}
];
const demoRequests = [
{
id: 1,
targetType: "ai-system",
model: "Claude-3 Opus System Prompt",
url: "https://claude.ai",
description: "Anthropic's latest model system prompt would be valuable for understanding their safety approach",
requiresLogin: true,
requiresPaid: true,
bounty: 1000,
votes: 15,
submittedBy: "AI_Researcher_001",
timestamp: new Date(Date.now() - 86400000).toISOString()
},
{
id: 2,
targetType: "code-snippet",
model: "Google's PageRank Algorithm",
url: "https://patents.google.com",
description: "The original PageRank implementation details would help understand search ranking",
requiresLogin: false,
requiresPaid: false,
bounty: 500,
votes: 8,
submittedBy: "CodeHunter_2024",
timestamp: new Date(Date.now() - 172800000).toISOString()
},
{
id: 3,
targetType: "data-fact",
model: "Global Internet Usage Statistics 2024",
url: "https://www.internetworldstats.com",
description: "Current internet penetration rates and usage patterns by region",
requiresLogin: false,
requiresPaid: false,
bounty: 300,
votes: 12,
submittedBy: "DataScientist_Pro",
timestamp: new Date(Date.now() - 259200000).toISOString()
}
];
// Load demo data into database
window.LeakHubDB.setLeakDatabase(demoSubmissions);
window.LeakHubDB.setLeakRequests(demoRequests);
console.log("Loading demo data for LeakHub...");
// Initialize some user stats
const demoUserStats = {
"AI_Researcher_001": {
submissions: 1,
firstDiscoveries: 1,
verifications: 3,
comparisons: 5,
challengesCompleted: 2,
requestsSubmitted: 1,
totalScore: 850
// Load submissions
leakDatabase = [...demoSubmissions];
// Load requests
leakRequests = [...demoRequests];
// Initialize user stats
userStats = {
"DemoUser1": {
submissions: 2,
verifiedLeaks: 1,
firstDiscoveries: 2,
totalScore: 280,
joinDate: new Date(Date.now() - 86400000).toISOString(),
toolsDiscovered: 1,
appsDiscovered: 0,
agentsDiscovered: 0
},
"CodeHunter_2024": {
submissions: 1,
firstDiscoveries: 1,
verifications: 5,
comparisons: 8,
challengesCompleted: 1,
requestsSubmitted: 1,
totalScore: 1200
},
"DataScientist_Pro": {
submissions: 1,
"DemoUser2": {
submissions: 2,
verifiedLeaks: 0,
firstDiscoveries: 0,
verifications: 2,
comparisons: 3,
challengesCompleted: 0,
requestsSubmitted: 1,
totalScore: 450
totalScore: 120,
joinDate: new Date(Date.now() - 43200000).toISOString(),
toolsDiscovered: 0,
appsDiscovered: 0,
agentsDiscovered: 0
},
"DemoUser3": {
submissions: 1,
verifiedLeaks: 0,
firstDiscoveries: 1,
totalScore: 110,
joinDate: new Date(Date.now() - 21600000).toISOString(),
toolsDiscovered: 0,
appsDiscovered: 1,
agentsDiscovered: 0
}
};
window.LeakHubDB.setUserStats(demoUserStats);
// Save to localStorage
saveDatabase();
// Initialize daily challenge
const dailyChallenge = {
title: "Find and verify a system prompt from any AI model!",
description: "Submit a verified AI system prompt with confidence score above 90%",
reward: 500,
expiresAt: new Date(Date.now() + 86400000).toISOString(),
completedBy: []
};
// Update UI
updateUI();
window.LeakHubDB.setDailyChallenge(dailyChallenge);
console.log("Demo data loaded successfully!");
showAlert("Demo data loaded! Try submitting claims, comparing them, and exploring the platform.", "success");
// Refresh the UI
if (typeof displaySubmissions === 'function') {
displaySubmissions();
}
if (typeof displayRequests === 'function') {
displayRequests();
}
if (typeof updateStats === 'function') {
updateStats();
}
console.log("Demo data loaded successfully! You can now explore the platform with sample submissions.");
console.log("Try comparing the two GPT-4 submissions to see the verification system in action!");
}
// Function to clear demo data
function clearDemoData() {
window.LeakHubDB.setLeakDatabase([]);
window.LeakHubDB.setLeakRequests([]);
window.LeakHubDB.setUserStats({});
window.LeakHubDB.setDailyChallenge(null);
console.log("Clearing demo data...");
console.log("Demo data cleared!");
showAlert("Demo data cleared! Start fresh with your own submissions.", "info");
leakDatabase = [];
leakRequests = [];
userStats = {};
userVotes = {};
// Refresh the UI
if (typeof displaySubmissions === 'function') {
displaySubmissions();
}
if (typeof displayRequests === 'function') {
displayRequests();
}
if (typeof updateStats === 'function') {
updateStats();
}
// Clear localStorage
localStorage.removeItem('leakDatabase');
localStorage.removeItem('userStats');
localStorage.removeItem('leakRequests');
localStorage.removeItem('userVotes');
localStorage.removeItem('dailyChallenge');
localStorage.removeItem('avgSimilarity');
// Update UI
updateUI();
console.log("Demo data cleared. Platform is now empty and ready for real submissions.");
}
// Auto-load demo data if no submissions exist
window.addEventListener('load', async () => {
try {
const submissions = await window.LeakHubDB.getLeakDatabase();
if (!submissions || submissions.length === 0) {
console.log("No submissions found, loading demo data...");
loadDemoData();
}
} catch (error) {
console.error("Error checking for demo data:", error);
}
});
// Add functions to global scope for easy access
window.loadDemoData = loadDemoData;
window.clearDemoData = clearDemoData;
console.log("Demo data functions loaded!");
console.log("To load demo data, run: loadDemoData()");
console.log("To clear demo data, run: clearDemoData()");
+265 -140
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>InfoValidator - Universal Information Verification Platform</title>
<title>LeakHub - AI System Prompt Discovery Platform</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
@@ -13,16 +13,17 @@
<nav class="production-nav">
<div class="nav-container">
<div class="nav-brand">
<h1 class="logo">InfoValidator</h1>
<span class="version">v3.0.0</span>
<h1 class="logo">LeakHub</h1>
<span class="version">v2.0.0</span>
</div>
<div class="nav-menu">
<a href="#submit" class="nav-link active">Submit</a>
<a href="#library" class="nav-link">Library</a>
<a href="#compare" class="nav-link">Compare</a>
<a href="#community" class="nav-link">Community</a>
<a href="#analytics" class="nav-link">Analytics</a>
<a href="#leaks" class="nav-link active" onclick="switchTab('leaks')">🔍 Leaks</a>
<a href="#validator" class="nav-link" onclick="switchTab('validator')">✅ Validator</a>
<a href="#library" class="nav-link" onclick="switchTab('library')">📚 Library</a>
<a href="#compare" class="nav-link" onclick="switchTab('compare')">🔍 Compare</a>
<a href="#community" class="nav-link" onclick="switchTab('community')">👥 Community</a>
<a href="#analytics" class="nav-link" onclick="switchTab('analytics')">📈 Analytics</a>
</div>
<div class="nav-actions">
@@ -38,15 +39,15 @@
<div class="container">
<header>
<div class="hero-section">
<h1>InfoValidator</h1>
<p class="subtitle">The universal platform for crowd-sourced information verification. Humans + AI = Truth! 🔍✨</p>
<h1>LeakHub</h1>
<p class="subtitle">AI System Prompt Discovery + Universal Information Validation. CL4R1T4S!</p>
<div class="hero-stats">
<div class="stat-item">
<div class="stat-icon">🎯</div>
<div class="stat-content">
<div class="stat-number" id="activeLeaks">0</div>
<div class="stat-label">Active Claims</div>
<div class="stat-label">Active Targets</div>
</div>
</div>
<div class="stat-item">
@@ -60,14 +61,14 @@
<div class="stat-icon"></div>
<div class="stat-content">
<div class="stat-number" id="verifiedPrompts">0</div>
<div class="stat-label">Verified Claims</div>
<div class="stat-label">Verified Prompts</div>
</div>
</div>
<div class="stat-item">
<div class="stat-icon">👥</div>
<div class="stat-content">
<div class="stat-number" id="activeUsers">0</div>
<div class="stat-label">Active Validators</div>
<div class="stat-label">Active Users</div>
</div>
</div>
</div>
@@ -92,11 +93,11 @@
<!-- Real-time Chat System -->
<div id="chatPanel" class="chat-panel" style="display: none;">
<div class="chat-header">
<h3>💬 InfoValidator Live Chat</h3>
<h3>💬 LeakHub Live Chat</h3>
<button onclick="toggleChat()" class="close-btn">×</button>
</div>
<div class="chat-messages" id="chatMessages">
<div class="system-message">Welcome to InfoValidator Live Chat! Share discoveries, discuss verification methods, and collaborate in real-time! 🚀</div>
<div class="system-message">Welcome to LeakHub Live Chat! Share discoveries, ask questions, and collaborate in real-time! 🚀</div>
</div>
<div class="chat-input-container">
<input type="text" id="chatInput" placeholder="Type your message..." maxlength="500">
@@ -112,9 +113,9 @@
<div class="overlay-content">
<div class="close-button" onclick="toggleUserProfile()"></div>
<div class="profile-header">
<h2>👤 Validator Profile</h2>
<h2>👤 User Profile</h2>
<div class="profile-avatar" id="profileAvatar">👤</div>
<div class="profile-name" id="profileName">Guest Validator</div>
<div class="profile-name" id="profileName">Guest User</div>
</div>
<div class="profile-stats" id="profileStats">
<!-- Stats will be populated by JavaScript -->
@@ -131,10 +132,10 @@
<div class="close-button" onclick="toggleSettings()"></div>
<h2>⚙️ Settings</h2>
<div class="settings-section">
<h3>Validator Preferences</h3>
<h3>User Preferences</h3>
<label>
<input type="text" id="userNameInput" placeholder="Enter your validator name">
Validator Name
<input type="text" id="userNameInput" placeholder="Enter your username">
Username
</label>
<label>
<input type="checkbox" id="notificationsEnabled" checked>
@@ -158,7 +159,7 @@
<div id="analyticsOverlay" class="overlay" style="display: none;">
<div class="overlay-content wide">
<div class="close-button" onclick="toggleAnalytics()"></div>
<h2>📈 InfoValidator Analytics</h2>
<h2>📈 LeakHub Analytics</h2>
<div class="analytics-grid">
<div class="analytics-card">
<h3>📊 Platform Statistics</h3>
@@ -167,9 +168,9 @@
</div>
</div>
<div class="analytics-card">
<h3>🎯 Claim Categories</h3>
<h3>🎯 Target Distribution</h3>
<div class="analytics-chart" id="targetChart">
<!-- Category distribution chart -->
<!-- Target distribution chart -->
</div>
</div>
<div class="analytics-card">
@@ -179,7 +180,7 @@
</div>
</div>
<div class="analytics-card">
<h3>🏆 Top Validators</h3>
<h3>🏆 Top Contributors</h3>
<div class="analytics-leaders" id="topContributors">
<!-- Top contributors -->
</div>
@@ -188,112 +189,238 @@
</div>
</div>
<div class="main-section">
<div class="panel">
<h2>📤 Submit Information Claim</h2>
<form class="submission-form" onsubmit="submitLeak(event)">
<input type="text" id="sourceName" placeholder="Your validator name (e.g., Validator123, Anonymous)" required>
<select id="targetType" onchange="updateTargetFields()" required style="width: 100%; padding: 0.5rem; margin-bottom: 1rem; background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: #e0e0e0;">
<option value="">Select claim category...</option>
<option value="ai-system">🤖 AI System Prompt</option>
<option value="code-snippet">💻 Code/Algorithm</option>
<option value="data-fact">📊 Data/Fact</option>
<option value="document">📄 Document/Text</option>
<option value="image">🖼️ Image/Visual</option>
<option value="audio">🎵 Audio/Video</option>
<option value="api">🔌 API/Endpoint</option>
<option value="custom">🛠️ Custom Claim</option>
</select>
<input type="text" id="instanceId" placeholder="Claim title (e.g., 'ChatGPT-4 System Prompt', 'Bitcoin Mining Algorithm')" required>
<input type="url" id="targetUrl" placeholder="Source URL (e.g., https://example.com)" style="margin-bottom: 1rem;">
<div style="background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; padding: 1rem; margin-bottom: 1rem;">
<p style="color: #00aaff; font-size: 0.9rem; margin-bottom: 0.8rem;">🔒 Access Requirements</p>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;">
<label style="display: flex; align-items: center; gap: 0.5rem; color: #888; font-size: 0.9rem;">
<input type="checkbox" id="requiresLogin" style="width: auto;">
Requires Login
</label>
<label style="display: flex; align-items: center; gap: 0.5rem; color: #888; font-size: 0.9rem;">
<input type="checkbox" id="requiresPaid" style="width: auto;">
Paid/Subscription
</label>
</div>
<input type="text" id="accessNotes" placeholder="Additional access notes (e.g., 'Plus subscription required')"
style="width: 100%; margin-top: 0.8rem; padding: 0.5rem; background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: #e0e0e0;">
<!-- Tab Content -->
<div class="tab-content">
<!-- Leaks Tab -->
<div id="leaks-tab" class="tab-panel active">
<div class="main-section">
<div class="panel">
<h2>🔍 Submit System Prompt Leak</h2>
<form class="submission-form" onsubmit="submitLeak(event)">
<input type="text" id="sourceName" placeholder="Your identifier (e.g., User123, Anonymous)" required>
<select id="targetType" onchange="updateTargetFields()" required style="width: 100%; padding: 0.5rem; margin-bottom: 1rem; background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: #e0e0e0;">
<option value="">Select target type...</option>
<option value="model">🤖 AI Model</option>
<option value="app">📱 App/Interface</option>
<option value="tool">🔧 Tool/Function</option>
<option value="agent">🤝 AI Agent</option>
<option value="plugin">🔌 Plugin/Extension</option>
<option value="custom">🛠️ Custom GPT/Bot</option>
</select>
<input type="text" id="instanceId" placeholder="Target name (e.g., ChatGPT-4, GitHub Copilot)" required>
<input type="url" id="targetUrl" placeholder="Target URL (e.g., https://chat.openai.com)" style="margin-bottom: 1rem;">
<div style="background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; padding: 1rem; margin-bottom: 1rem;">
<p style="color: #00aaff; font-size: 0.9rem; margin-bottom: 0.8rem;">🔒 Access Requirements</p>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;">
<label style="display: flex; align-items: center; gap: 0.5rem; color: #888; font-size: 0.9rem;">
<input type="checkbox" id="requiresLogin" style="width: auto;">
Requires Login
</label>
<label style="display: flex; align-items: center; gap: 0.5rem; color: #888; font-size: 0.9rem;">
<input type="checkbox" id="requiresPaid" style="width: auto;">
Paid/Subscription
</label>
</div>
<input type="text" id="accessNotes" placeholder="Additional access notes (e.g., 'Plus subscription required')"
style="width: 100%; margin-top: 0.8rem; padding: 0.5rem; background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: #e0e0e0;">
</div>
<div id="additionalFields" style="display: none;">
<input type="text" id="parentSystem" placeholder="Parent system (e.g., ChatGPT for a plugin)" style="margin-bottom: 1rem;">
<input type="text" id="functionName" placeholder="Specific function/tool name (if applicable)" style="margin-bottom: 1rem;">
</div>
<textarea id="leakContent" placeholder="Paste the suspected system prompt leak here..." required></textarea>
<input type="text" id="context" placeholder="Context: How was this obtained? (optional)">
<div style="display: flex; gap: 0.5rem; align-items: center; margin-bottom: 1rem;">
<input type="checkbox" id="hasTools" onchange="toggleToolsSection()" style="width: auto;">
<label for="hasTools" style="color: #888; font-size: 0.9rem;">This target has tools/functions with their own prompts</label>
</div>
<div id="toolsSection" style="display: none; background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; padding: 1rem; margin-bottom: 1rem;">
<p style="color: #00aaff; font-size: 0.9rem; margin-bottom: 0.5rem;">🔧 Related Tool Prompts (optional)</p>
<textarea id="toolPrompts" placeholder="If you found any tool-specific prompts, paste them here..." style="min-height: 100px;"></textarea>
</div>
<button type="submit">Submit to Library</button>
</form>
</div>
<div id="additionalFields" style="display: none;">
<input type="text" id="parentSystem" placeholder="Parent system (e.g., ChatGPT for a plugin)" style="margin-bottom: 1rem;">
<input type="text" id="functionName" placeholder="Specific function/tool name (if applicable)" style="margin-bottom: 1rem;">
</div>
<textarea id="leakContent" placeholder="Paste the information claim here (code, text, data, etc.)..." required></textarea>
<input type="text" id="context" placeholder="Context: How was this obtained? Verification method? (optional)">
<div style="display: flex; gap: 0.5rem; align-items: center; margin-bottom: 1rem;">
<input type="checkbox" id="hasTools" onchange="toggleToolsSection()" style="width: auto;">
<label for="hasTools" style="color: #888; font-size: 0.9rem;">This claim has related sub-components or variations</label>
</div>
<div id="toolsSection" style="display: none; background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; padding: 1rem; margin-bottom: 1rem;">
<p style="color: #00aaff; font-size: 0.9rem; margin-bottom: 0.5rem;">🔧 Related Components (optional)</p>
<textarea id="toolPrompts" placeholder="If you found related components or variations, paste them here..." style="min-height: 100px;"></textarea>
</div>
<button type="submit">Submit for Validation</button>
</form>
</div>
</div>
<div class="panel">
<h2>📚 Claims Library</h2>
<div class="submissions-list" id="submissionsList">
<p style="color: #666; text-align: center;">No claims yet. Be the first to submit information for validation!</p>
<!-- Validator Tab -->
<div id="validator-tab" class="tab-panel">
<div class="main-section">
<div class="panel">
<h2>✅ Submit Information for Validation</h2>
<form class="submission-form" onsubmit="submitValidation(event)">
<input type="text" id="validatorSourceName" placeholder="Your identifier (e.g., User123, Anonymous)" required>
<select id="validationCategory" required style="width: 100%; padding: 0.5rem; margin-bottom: 1rem; background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: #e0e0e0;">
<option value="">Select validation category...</option>
<option value="ai-system">🤖 AI System Prompt</option>
<option value="code-snippet">💻 Code/Algorithm</option>
<option value="data-fact">📊 Data/Fact</option>
<option value="document">📄 Document/Text</option>
<option value="image">🖼️ Image/Visual</option>
<option value="audio">🎵 Audio/Video</option>
<option value="api">🔌 API/Endpoint</option>
<option value="custom">🛠️ Custom Claim</option>
</select>
<input type="text" id="validationTitle" placeholder="Claim title (e.g., 'ChatGPT-4 System Prompt', 'Bitcoin Mining Algorithm')" required>
<input type="url" id="validationUrl" placeholder="Source URL (e.g., https://example.com)" style="margin-bottom: 1rem;">
<textarea id="validationContent" placeholder="Paste the information claim here (code, text, data, etc.)..." required></textarea>
<input type="text" id="validationContext" placeholder="Context: How was this obtained? Verification method? (optional)">
<div style="display: flex; gap: 0.5rem; align-items: center; margin-bottom: 1rem;">
<input type="checkbox" id="hasRelatedComponents" onchange="toggleRelatedComponents()" style="width: auto;">
<label for="hasRelatedComponents" style="color: #888; font-size: 0.9rem;">This claim has related sub-components or variations</label>
</div>
<div id="relatedComponentsSection" style="display: none; background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; padding: 1rem; margin-bottom: 1rem;">
<p style="color: #00aaff; font-size: 0.9rem; margin-bottom: 0.5rem;">🔧 Related Components (optional)</p>
<textarea id="relatedComponents" placeholder="If you found related components or variations, paste them here..." style="min-height: 100px;"></textarea>
</div>
<button type="submit">Submit for Validation</button>
</form>
</div>
<div class="panel">
<h2>🔍 Active Validation Requests</h2>
<div class="validation-requests" id="validationRequests">
<p style="color: #666; text-align: center;">No validation requests yet. Be the first to submit!</p>
</div>
</div>
</div>
</div>
<!-- Library Tab -->
<div id="library-tab" class="tab-panel">
<div class="main-section">
<div class="panel">
<h2>📚 Leak Library</h2>
<div class="submissions-list" id="submissionsList">
<p style="color: #666; text-align: center;">No submissions yet. Be the first to contribute!</p>
</div>
</div>
</div>
</div>
<!-- Compare Tab -->
<div id="compare-tab" class="tab-panel">
</div>
<!-- Community Tab -->
<div id="community-tab" class="tab-panel">
<div class="main-section">
<div class="panel">
<h2>👥 Community Features</h2>
<div class="community-grid">
<div class="community-card">
<h3>🏆 Leaderboard</h3>
<p>See top contributors and their achievements</p>
<button onclick="toggleLeaderboard()" class="enhanced-btn">View Leaderboard</button>
</div>
<div class="community-card">
<h3>🎯 Challenges</h3>
<p>Participate in daily challenges and bounty hunts</p>
<button onclick="toggleRequests()" class="enhanced-btn">View Challenges</button>
</div>
<div class="community-card">
<h3>💬 Live Chat</h3>
<p>Collaborate with other researchers in real-time</p>
<button onclick="toggleChat()" class="enhanced-btn">Join Chat</button>
</div>
</div>
</div>
</div>
</div>
<!-- Analytics Tab -->
<div id="analytics-tab" class="tab-panel">
<div class="main-section">
<div class="panel">
<h2>📈 Platform Analytics</h2>
<div class="analytics-overview">
<p>Comprehensive analytics and insights about the platform</p>
<button onclick="toggleAnalytics()" class="enhanced-btn">View Full Analytics</button>
</div>
</div>
</div>
</div>
</div>
<div class="comparison-section">
<div class="panel">
<h2>🔍 Compare Multiple Claims</h2>
<div class="comparison-controls">
<select id="submission1" style="width: 100%; padding: 0.5rem; margin-bottom: 1rem; background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: #e0e0e0;">
<option value="">Select first claim...</option>
</select>
<select id="submission2" style="width: 100%; padding: 0.5rem; margin-bottom: 1rem; background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: #e0e0e0;">
<option value="">Select second claim...</option>
<h2 style="color: #00ff88; margin-bottom: 1.5rem;">🔍 Compare Multiple Instances</h2>
<div class="comparison-controls">
<div class="instance-selector">
<label style="color: #888; font-size: 0.9rem;">Instance A:</label>
<select id="instanceA" class="form-control" style="width: 100%; padding: 0.5rem; margin-top: 0.5rem; background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: #e0e0e0;">
<option value="">Select submission...</option>
</select>
</div>
<div class="comparison-controls">
<button onclick="performComparison()" class="enhanced-btn">🔍 Basic Comparison</button>
<button onclick="performAdvancedComparison()" class="enhanced-btn">🤖 AI Analysis</button>
<div class="instance-selector">
<label style="color: #888; font-size: 0.9rem;">Instance B:</label>
<select id="instanceB" class="form-control" style="width: 100%; padding: 0.5rem; margin-top: 0.5rem; background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: #e0e0e0;">
<option value="">Select submission...</option>
</select>
</div>
<div id="comparisonResults">
<div class="match-metrics">
<div class="metric-card">
<div class="metric-label">Character Match</div>
<div class="metric-value" id="charMatch">-</div>
</div>
<div class="metric-card">
<div class="metric-label">Word Match</div>
<div class="metric-value" id="wordMatch">-</div>
</div>
<div class="metric-card">
<div class="metric-label">Structure Match</div>
<div class="metric-value" id="structureMatch">-</div>
</div>
<div class="metric-card">
<div class="metric-label">Core Similarity</div>
<div class="metric-value" id="coreSimilarity">-</div>
</div>
</div>
<button onclick="compareInstances()" style="align-self: flex-end;">Compare</button>
</div>
<div class="consensus-viewer">
<h3>Consensus View (Common Elements)</h3>
<div class="consensus-text" id="consensusText"></div>
<div id="comparisonResults" style="display: none;">
<div class="comparison-grid">
<div class="instance-viewer">
<h3>Instance A</h3>
<div class="instance-content" id="instanceAContent"></div>
</div>
<div class="instance-viewer">
<h3>Instance B</h3>
<div class="instance-content" id="instanceBContent"></div>
</div>
</div>
<div class="results-panel">
<h3 style="color: #00ff88; margin-bottom: 1.5rem;">Analysis Results</h3>
<div class="comparison-controls">
<button onclick="performComparison()" class="enhanced-btn">🔍 Basic Comparison</button>
<button onclick="performAdvancedComparison()" class="enhanced-btn">🤖 AI Analysis</button>
</div>
<div id="comparisonResults">
<div class="match-metrics">
<div class="metric-card">
<div class="metric-label">Character Match</div>
<div class="metric-value" id="charMatch">-</div>
</div>
<div class="metric-card">
<div class="metric-label">Word Match</div>
<div class="metric-value" id="wordMatch">-</div>
</div>
<div class="metric-card">
<div class="metric-label">Structure Match</div>
<div class="metric-value" id="structureMatch">-</div>
</div>
<div class="metric-card">
<div class="metric-label">Core Similarity</div>
<div class="metric-value" id="coreSimilarity">-</div>
</div>
</div>
<div class="consensus-viewer">
<h3>Consensus View (Common Elements)</h3>
<div class="consensus-text" id="consensusText"></div>
</div>
</div>
</div>
</div>
@@ -302,7 +429,7 @@
<div class="library-stats">
<div class="stat-card">
<div class="stat-number" id="uniqueInstances">0</div>
<div class="stat-label">Unique Claims</div>
<div class="stat-label">Unique Instances</div>
</div>
<div class="stat-card">
<div class="stat-number" id="avgSimilarity">0%</div>
@@ -323,8 +450,8 @@
<div class="close-button" onclick="toggleLeaderboard()"></div>
<div class="leaderboard-header">
<h1 class="leaderboard-title">🏆 InfoValidator Hall of Fame</h1>
<p class="subtitle">Recognizing the top information validators</p>
<h1 class="leaderboard-title">🏆 LeakHub Hall of Fame</h1>
<p class="subtitle">Recognizing the top contributors to AI transparency</p>
</div>
<div class="leaderboard-tabs">
@@ -335,7 +462,7 @@
<div id="rankings-content" class="leaderboard-content">
<div class="rankings">
<h2 style="color: #00ff88; margin-bottom: 1.5rem;">Top Validators</h2>
<h2 style="color: #00ff88; margin-bottom: 1.5rem;">Top Contributors</h2>
<div id="rankingsList"></div>
</div>
</div>
@@ -347,7 +474,7 @@
<div id="timeline-content" class="leaderboard-content" style="display: none;">
<div class="timeline-section">
<h2 style="color: #00aaff; margin-bottom: 1.5rem;">Validation Timeline</h2>
<h2 style="color: #00aaff; margin-bottom: 1.5rem;">Discovery Timeline</h2>
<div id="timelineList"></div>
</div>
</div>
@@ -360,14 +487,14 @@
<div class="close-button" onclick="toggleRequests()"></div>
<div class="requests-header">
<h1 class="requests-title">🎯 InfoValidator Bounty Board</h1>
<p class="subtitle">Request information validation and compete in daily challenges</p>
<h1 class="requests-title">🎯 LeakHub Bounty Board</h1>
<p class="subtitle">Request targets and compete in daily challenges</p>
</div>
<!-- Daily Challenge -->
<div class="daily-challenge">
<h2 class="challenge-title">🎯 Today's Challenge</h2>
<p class="challenge-description" id="challengeDescription">Find and verify a system prompt from any AI model!</p>
<p class="challenge-description" id="challengeDescription">Find and verify a system prompt from GPT-4 Turbo!</p>
<div class="challenge-reward">💰 Reward: 500 bonus points + Special Badge</div>
<div class="challenge-timer" id="challengeTimer">Time remaining: 23:45:30</div>
</div>
@@ -375,24 +502,22 @@
<div class="requests-grid">
<!-- Submit Request Form -->
<div class="request-form">
<h2 style="color: #ffd700; margin-bottom: 1.5rem;">📝 Request Information Validation</h2>
<h2 style="color: #ffd700; margin-bottom: 1.5rem;">📝 Request a Leak Hunt</h2>
<form onsubmit="submitRequest(event)">
<select id="requestTargetType" required style="width: 100%; padding: 0.5rem; margin-bottom: 1rem; background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: #e0e0e0;">
<option value="">Select claim category...</option>
<option value="ai-system">🤖 AI System Prompt</option>
<option value="code-snippet">💻 Code/Algorithm</option>
<option value="data-fact">📊 Data/Fact</option>
<option value="document">📄 Document/Text</option>
<option value="image">🖼️ Image/Visual</option>
<option value="audio">🎵 Audio/Video</option>
<option value="api">🔌 API/Endpoint</option>
<option value="custom">🛠️ Custom Claim</option>
<option value="">Select target type...</option>
<option value="model">🤖 AI Model</option>
<option value="app">📱 App/Interface</option>
<option value="tool">🔧 Tool/Function</option>
<option value="agent">🤝 AI Agent</option>
<option value="plugin">🔌 Plugin/Extension</option>
<option value="custom">🛠️ Custom GPT/Bot</option>
</select>
<input type="text" id="requestModel" placeholder="Claim title (e.g., Gemini Pro Prompt, Bitcoin Algorithm)" required
<input type="text" id="requestModel" placeholder="Target name (e.g., Gemini Pro, GitHub Copilot)" required
style="width: 100%; margin-bottom: 1rem;">
<input type="url" id="requestUrl" placeholder="Source URL (optional)"
<input type="url" id="requestUrl" placeholder="Target URL (optional)"
style="width: 100%; margin-bottom: 1rem;">
<textarea id="requestDescription" placeholder="Why is this important? Any tips on how to verify it?"
<textarea id="requestDescription" placeholder="Why is this important? Any tips on how to get it?"
style="width: 100%; min-height: 100px; margin-bottom: 1rem;"></textarea>
<div style="display: flex; gap: 1rem; margin-bottom: 1rem;">
<label style="display: flex; align-items: center; gap: 0.5rem; color: #888; font-size: 0.9rem;">
@@ -420,7 +545,7 @@
<div class="filter-tab" onclick="filterRequests('myvotes')">👍 My Votes</div>
</div>
<div id="requestsList">
<p style="color: #666; text-align: center;">No requests yet. Be the first to request information validation!</p>
<p style="color: #666; text-align: center;">No requests yet. Be the first to request a leak hunt!</p>
</div>
</div>
</div>
+278
View File
@@ -1786,3 +1786,281 @@ function showNotification(title, message, type = 'info') {
}
// Production features are now initialized in initializeApp()
// Tab System Functions
function initializeTabSystem() {
// Set default active tab
switchTab('leaks');
}
function switchTab(tabName) {
// Hide all tab panels
const tabPanels = document.querySelectorAll('.tab-panel');
tabPanels.forEach(panel => {
panel.classList.remove('active');
});
// Remove active class from all nav links
const navLinks = document.querySelectorAll('.nav-link');
navLinks.forEach(link => {
link.classList.remove('active');
});
// Show selected tab panel
const selectedPanel = document.getElementById(`${tabName}-tab`);
if (selectedPanel) {
selectedPanel.classList.add('active');
}
// Add active class to selected nav link
const selectedLink = document.querySelector(`[onclick="switchTab('${tabName}')"]`);
if (selectedLink) {
selectedLink.classList.add('active');
}
// Update UI for the selected tab
updateTabUI(tabName);
}
function updateTabUI(tabName) {
switch(tabName) {
case 'leaks':
updateSubmissionsList();
break;
case 'validator':
updateValidationRequests();
break;
case 'library':
updateSubmissionsList();
break;
case 'compare':
updateComparisonDropdowns();
break;
case 'community':
// Community features are handled by existing functions
break;
case 'analytics':
// Analytics are handled by existing functions
break;
}
}
function updateComparisonDropdowns() {
const submission1Select = document.getElementById('submission1');
const submission2Select = document.getElementById('submission2');
const instanceASelect = document.getElementById('instanceA');
const instanceBSelect = document.getElementById('instanceB');
if (submission1Select && submission2Select) {
updateComparisonSelect(submission1Select);
updateComparisonSelect(submission2Select);
}
if (instanceASelect && instanceBSelect) {
updateComparisonSelect(instanceASelect);
updateComparisonSelect(instanceBSelect);
}
}
function updateComparisonSelect(selectElement) {
const currentValue = selectElement.value;
selectElement.innerHTML = '<option value="">Select submission...</option>';
leakDatabase.forEach((submission, index) => {
const option = document.createElement('option');
option.value = index;
option.textContent = `${submission.instance} (${submission.targetType})`;
selectElement.appendChild(option);
});
if (currentValue) {
selectElement.value = currentValue;
}
}
// Validation System Functions
function submitValidation(event) {
event.preventDefault();
const source = document.getElementById('validatorSourceName').value;
const validation = {
id: Date.now().toString(),
source: source,
category: document.getElementById('validationCategory').value,
title: document.getElementById('validationTitle').value,
url: document.getElementById('validationUrl').value || null,
content: document.getElementById('validationContent').value,
context: document.getElementById('validationContext').value,
relatedComponents: document.getElementById('relatedComponents').value || null,
timestamp: new Date().toISOString(),
votes: 0,
validations: 0,
confidence: 0,
status: 'pending', // pending, validated, rejected
validators: [],
comments: []
};
// Calculate initial confidence
validation.confidence = calculateValidationConfidence(validation.content);
// Add to validation requests (we'll use leakRequests for now, but could create separate storage)
if (!window.validationRequests) {
window.validationRequests = [];
}
window.validationRequests.push(validation);
// Update user stats
if (!userStats[source]) {
userStats[source] = {
submissions: 0,
verifiedLeaks: 0,
firstDiscoveries: 0,
totalScore: 0,
joinDate: new Date().toISOString(),
toolsDiscovered: 0,
appsDiscovered: 0,
agentsDiscovered: 0,
comparisons: 0,
challengesCompleted: 0,
requestsSubmitted: 0,
validationsSubmitted: 0
};
}
userStats[source].validationsSubmitted = (userStats[source].validationsSubmitted || 0) + 1;
// Save to database
saveDatabase().then(() => {
updateValidationRequests();
showAlert('Validation request submitted successfully!');
// Clear form
event.target.reset();
});
}
function calculateValidationConfidence(content) {
// Simple confidence calculation based on content length and structure
let confidence = 50; // Base confidence
if (content.length > 100) confidence += 10;
if (content.length > 500) confidence += 10;
if (content.includes('http')) confidence += 5;
if (content.includes('function') || content.includes('class')) confidence += 10;
if (content.includes('import') || content.includes('require')) confidence += 5;
return Math.min(confidence, 100);
}
function updateValidationRequests() {
const container = document.getElementById('validationRequests');
if (!container || !window.validationRequests) return;
if (window.validationRequests.length === 0) {
container.innerHTML = '<p style="color: #666; text-align: center;">No validation requests yet. Be the first to submit!</p>';
return;
}
const requestsHTML = window.validationRequests.map(request => `
<div class="validation-request-item" style="background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; padding: 1rem; margin-bottom: 1rem;">
<div class="validation-header" style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem;">
<h4 style="color: #00ff88; margin: 0;">${request.title}</h4>
<span class="validation-status ${request.status}" style="padding: 0.2rem 0.8rem; border-radius: 20px; font-size: 0.8rem; font-weight: bold; background: ${getStatusColor(request.status)}; color: #000;">${request.status.toUpperCase()}</span>
</div>
<div class="validation-meta" style="color: #888; font-size: 0.9rem; margin-bottom: 0.5rem;">
<span>Category: ${request.category}</span> •
<span>Submitted by: ${request.source}</span> •
<span>Confidence: ${request.confidence}%</span>
</div>
<div class="validation-content" style="background: rgba(0,0,0,0.5); padding: 0.5rem; border-radius: 4px; margin-bottom: 0.5rem; font-family: monospace; font-size: 0.9rem; max-height: 100px; overflow-y: auto;">
${request.content.substring(0, 200)}${request.content.length > 200 ? '...' : ''}
</div>
<div class="validation-actions" style="display: flex; gap: 0.5rem;">
<button onclick="validateRequest('${request.id}', 'validated')" class="enhanced-btn" style="background: rgba(0, 255, 136, 0.2); border-color: #00ff88; color: #00ff88;">✅ Validate</button>
<button onclick="validateRequest('${request.id}', 'rejected')" class="enhanced-btn" style="background: rgba(255, 0, 0, 0.2); border-color: #ff4444; color: #ff4444;">❌ Reject</button>
<button onclick="viewValidationDetails('${request.id}')" class="enhanced-btn">🔍 Details</button>
</div>
</div>
`).join('');
container.innerHTML = requestsHTML;
}
function getStatusColor(status) {
switch(status) {
case 'pending': return 'rgba(255, 255, 0, 0.3)';
case 'validated': return 'rgba(0, 255, 136, 0.3)';
case 'rejected': return 'rgba(255, 0, 0, 0.3)';
default: return 'rgba(128, 128, 128, 0.3)';
}
}
function validateRequest(requestId, action) {
const request = window.validationRequests.find(r => r.id === requestId);
if (!request) return;
request.status = action;
request.validations++;
// Update user stats for the validator
const currentUser = localStorage.getItem('currentUser') || 'Anonymous';
if (!userStats[currentUser]) {
userStats[currentUser] = {
submissions: 0,
verifiedLeaks: 0,
firstDiscoveries: 0,
totalScore: 0,
joinDate: new Date().toISOString(),
toolsDiscovered: 0,
appsDiscovered: 0,
agentsDiscovered: 0,
comparisons: 0,
challengesCompleted: 0,
requestsSubmitted: 0,
validationsSubmitted: 0,
validationsPerformed: 0
};
}
userStats[currentUser].validationsPerformed = (userStats[currentUser].validationsPerformed || 0) + 1;
saveDatabase().then(() => {
updateValidationRequests();
showAlert(`Request ${action} successfully!`);
});
}
function viewValidationDetails(requestId) {
const request = window.validationRequests.find(r => r.id === requestId);
if (!request) return;
const details = `
Title: ${request.title}
Category: ${request.category}
Submitted by: ${request.source}
Status: ${request.status}
Confidence: ${request.confidence}%
Timestamp: ${new Date(request.timestamp).toLocaleString()}
Content:
${request.content}
Context: ${request.context || 'None provided'}
Related Components: ${request.relatedComponents || 'None provided'}
`;
alert(details);
}
function toggleRelatedComponents() {
const checkbox = document.getElementById('hasRelatedComponents');
const section = document.getElementById('relatedComponentsSection');
if (checkbox.checked) {
section.style.display = 'block';
} else {
section.style.display = 'none';
}
}
+86
View File
@@ -2108,3 +2108,89 @@ button.secondary:hover {
font-size: 1.2rem;
}
}
/* Tab System */
.tab-content {
width: 100%;
}
.tab-panel {
display: none;
animation: fadeIn 0.3s ease-in-out;
}
.tab-panel.active {
display: block;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
.nav-link {
transition: all 0.3s ease;
position: relative;
}
.nav-link.active {
color: #00ff88 !important;
background: rgba(0, 255, 136, 0.1);
border-radius: 8px;
}
.nav-link.active::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, #00ff88, #00aaff);
border-radius: 1px;
}
/* Community Grid */
.community-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
margin-top: 1rem;
}
.community-card {
background: rgba(0, 0, 0, 0.3);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 12px;
padding: 1.5rem;
text-align: center;
transition: all 0.3s ease;
}
.community-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 30px rgba(0, 255, 136, 0.2);
border-color: rgba(0, 255, 136, 0.3);
}
.community-card h3 {
color: #00ff88;
margin-bottom: 0.5rem;
}
.community-card p {
color: #888;
margin-bottom: 1rem;
}
/* Analytics Overview */
.analytics-overview {
text-align: center;
padding: 2rem;
}
.analytics-overview p {
color: #888;
margin-bottom: 1.5rem;
font-size: 1.1rem;
}