Spaces:
Paused
Paused
File size: 2,449 Bytes
5a81b95 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | 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);
});
|