Spaces:
Paused
Paused
| const homeDir = require('os').homedir(); | |
| const localScanner = new LocalFileScanner({ | |
| rootPaths: [ | |
| `${homeDir}\\Documents`, | |
| `${homeDir}\\Downloads`, | |
| `${homeDir}\\Desktop` | |
| ], | |
| extensions: ['.txt', '.md', '.pdf', '.docx', '.xlsx', '.csv', '.json'], | |
| maxDepth: 3, | |
| maxFileSize: 10 * 1024 * 1024, | |
| excludePatterns: ['node_modules', '.git', 'dist', 'build', '$RECYCLE.BIN'] | |
| }); | |
| await dataIngestionEngine.registerAdapter(localScanner, 'Local file system scanner', false); | |
| const browserReader = new BrowserHistoryReader(); | |
| await dataIngestionEngine.registerAdapter(browserReader, 'Browser history reader', false); | |
| const outlookReader = new OutlookEmailReader(); | |
| await dataIngestionEngine.registerAdapter(outlookReader, 'Outlook email reader', true); | |
| const oneDriveAdapter = new OneDriveAdapter(); | |
| await dataIngestionEngine.registerAdapter(oneDriveAdapter, 'OneDrive adapter', true); | |
| const teamsAdapter = new TeamsAdapter(); | |
| await dataIngestionEngine.registerAdapter(teamsAdapter, 'Teams adapter', true); | |
| const sharePointAdapter = new SharePointAdapter(); | |
| await dataIngestionEngine.registerAdapter(sharePointAdapter, 'SharePoint adapter', true); | |
| const twitterAdapter = new TwitterAdapter(); | |
| await dataIngestionEngine.registerAdapter(twitterAdapter, 'Twitter adapter', true); | |
| const gmailAdapter = new GmailAdapter(); | |
| await dataIngestionEngine.registerAdapter(gmailAdapter, 'Gmail adapter', true); | |
| const calendarAdapter = new GoogleCalendarAdapter(); | |
| await dataIngestionEngine.registerAdapter(calendarAdapter, 'Google Calendar adapter', true); | |
| const keepAdapter = new GoogleKeepAdapter(); | |
| await dataIngestionEngine.registerAdapter(keepAdapter, 'Google Keep adapter', true); | |
| const mapsAdapter = new GoogleMapsAdapter(); | |
| await dataIngestionEngine.registerAdapter(mapsAdapter, 'Google Maps adapter', true); | |
| // Advise about pending approvals | |
| const pending = dataSourceConfig.getPendingApprovals(); | |
| if (pending.length > 0) { | |
| console.log('⚠️ Pending data source approvals:'); | |
| pending.forEach(p => console.log(` - ${p.name}: ${p.description || 'No description'}`)); | |
| // Auto-approve for demo purposes | |
| for (const p of pending) { | |
| await dataSourceConfig.approve(p.name); | |
| } | |
| } | |
| // Start ingestion | |
| await dataIngestionEngine.ingestAll(); | |
| console.log('✅ Ingestion run completed'); | |
| } | |
| main().catch(err => { | |
| console.error('❌ Ingestion script failed:', err); | |
| process.exit(1); | |
| }); | |