erosolar-cli 2.1.243 → 2.1.244

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.
Files changed (31) hide show
  1. package/dist/capabilities/index.d.ts +1 -0
  2. package/dist/capabilities/index.d.ts.map +1 -1
  3. package/dist/capabilities/index.js +1 -0
  4. package/dist/capabilities/index.js.map +1 -1
  5. package/dist/capabilities/unifiedInvestigationCapability.d.ts +22 -0
  6. package/dist/capabilities/unifiedInvestigationCapability.d.ts.map +1 -0
  7. package/dist/capabilities/unifiedInvestigationCapability.js +41 -0
  8. package/dist/capabilities/unifiedInvestigationCapability.js.map +1 -0
  9. package/dist/core/agentOrchestrator.d.ts +130 -1
  10. package/dist/core/agentOrchestrator.d.ts.map +1 -1
  11. package/dist/core/agentOrchestrator.js +553 -1
  12. package/dist/core/agentOrchestrator.js.map +1 -1
  13. package/dist/core/unifiedFraudOrchestrator.d.ts +542 -0
  14. package/dist/core/unifiedFraudOrchestrator.d.ts.map +1 -0
  15. package/dist/core/unifiedFraudOrchestrator.js +1449 -0
  16. package/dist/core/unifiedFraudOrchestrator.js.map +1 -0
  17. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  18. package/dist/plugins/tools/nodeDefaults.js +2 -0
  19. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  20. package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.d.ts +3 -0
  21. package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.d.ts.map +1 -0
  22. package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.js +14 -0
  23. package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.js.map +1 -0
  24. package/dist/tools/taoTools.d.ts.map +1 -1
  25. package/dist/tools/taoTools.js +790 -4
  26. package/dist/tools/taoTools.js.map +1 -1
  27. package/dist/tools/unifiedInvestigationTools.d.ts +19 -0
  28. package/dist/tools/unifiedInvestigationTools.d.ts.map +1 -0
  29. package/dist/tools/unifiedInvestigationTools.js +851 -0
  30. package/dist/tools/unifiedInvestigationTools.js.map +1 -0
  31. package/package.json +1 -1
@@ -0,0 +1,542 @@
1
+ /**
2
+ * Unified Tech Fraud Investigation Orchestrator
3
+ *
4
+ * Purpose: Coordinate investigation of tech company fraud across multiple vectors:
5
+ * - Apple iMessage PQ3 (key substitution, false E2E claims)
6
+ * - Google Gmail (hidden threads, draft manipulation, unauthorized access)
7
+ * - Google Chrome (browser hijacking, session control, surveillance)
8
+ * - Cross-platform evidence correlation
9
+ *
10
+ * This orchestrator:
11
+ * 1. Manages investigation workflows across multiple targets
12
+ * 2. Correlates evidence across different fraud vectors
13
+ * 3. Detects patterns indicating coordinated manipulation
14
+ * 4. Generates unified legal evidence packages
15
+ * 5. Maintains cryptographic chain of custody
16
+ */
17
+ import { EventEmitter } from 'node:events';
18
+ import { iMessageVerificationEngine, APPLE_PQ3_CLAIMS } from './iMessageVerification.js';
19
+ export type InvestigationTarget = 'apple' | 'google' | 'meta' | 'microsoft' | 'amazon';
20
+ export type FraudVector = 'imessage_key_substitution' | 'imessage_false_e2e' | 'gmail_hidden_threads' | 'gmail_draft_manipulation' | 'gmail_unauthorized_access' | 'gmail_filter_tampering' | 'chrome_unauthorized_launch' | 'chrome_session_hijacking' | 'chrome_history_manipulation' | 'chrome_extension_injection' | 'cross_platform_surveillance' | 'coordinated_manipulation';
21
+ export interface Investigation {
22
+ id: string;
23
+ name: string;
24
+ target: InvestigationTarget;
25
+ vectors: FraudVector[];
26
+ status: 'planning' | 'active' | 'collecting' | 'analyzing' | 'complete' | 'suspended';
27
+ created: string;
28
+ lastActivity: string;
29
+ evidenceChainId: string;
30
+ findings: Finding[];
31
+ correlations: EvidenceCorrelation[];
32
+ hash: string;
33
+ }
34
+ export interface Finding {
35
+ id: string;
36
+ timestamp: string;
37
+ vector: FraudVector;
38
+ severity: 'low' | 'medium' | 'high' | 'critical';
39
+ title: string;
40
+ description: string;
41
+ technicalDetails: Record<string, unknown>;
42
+ evidenceIds: string[];
43
+ legalImplications: LegalImplication;
44
+ hash: string;
45
+ }
46
+ export interface LegalImplication {
47
+ fraudType: string;
48
+ applicableLaws: string[];
49
+ potentialDamages: string;
50
+ recommendations: string[];
51
+ }
52
+ export interface EvidenceCorrelation {
53
+ id: string;
54
+ timestamp: string;
55
+ findingIds: string[];
56
+ correlationType: 'temporal' | 'behavioral' | 'technical' | 'pattern';
57
+ description: string;
58
+ confidence: number;
59
+ implications: string;
60
+ hash: string;
61
+ }
62
+ export interface GmailThreadObservation {
63
+ id: string;
64
+ timestamp: string;
65
+ threadId: string;
66
+ messageIds: string[];
67
+ subject: string;
68
+ labels: string[];
69
+ isVisible: boolean;
70
+ isInSearch: boolean;
71
+ lastMessageDate: string;
72
+ participantCount: number;
73
+ captureMethod: 'api' | 'ui_scrape' | 'network_capture' | 'takeout';
74
+ rawData?: string;
75
+ hash: string;
76
+ }
77
+ export interface GmailDraftObservation {
78
+ id: string;
79
+ timestamp: string;
80
+ draftId: string;
81
+ threadId?: string;
82
+ subject: string;
83
+ recipientCount: number;
84
+ bodyHash: string;
85
+ bodyLength: number;
86
+ hasAttachments: boolean;
87
+ createdAt: string;
88
+ modifiedAt: string;
89
+ captureMethod: 'api' | 'ui_scrape' | 'network_capture';
90
+ previousObservationId?: string;
91
+ changes?: DraftChange[];
92
+ hash: string;
93
+ }
94
+ export interface DraftChange {
95
+ type: 'created' | 'modified' | 'deleted' | 'sent_without_user' | 'content_changed';
96
+ field?: string;
97
+ previousValue?: string;
98
+ newValue?: string;
99
+ userInitiated: boolean;
100
+ suspicionLevel: 'normal' | 'suspicious' | 'highly_suspicious';
101
+ reason: string;
102
+ }
103
+ export interface GmailFilterObservation {
104
+ id: string;
105
+ timestamp: string;
106
+ filterId: string;
107
+ criteria: {
108
+ from?: string;
109
+ to?: string;
110
+ subject?: string;
111
+ hasWords?: string;
112
+ excludeWords?: string;
113
+ };
114
+ actions: {
115
+ skipInbox?: boolean;
116
+ markRead?: boolean;
117
+ archive?: boolean;
118
+ delete?: boolean;
119
+ forward?: string;
120
+ label?: string;
121
+ };
122
+ createdByUser: boolean;
123
+ createdAt?: string;
124
+ hash: string;
125
+ }
126
+ export interface GmailAccessLog {
127
+ id: string;
128
+ timestamp: string;
129
+ accessType: 'login' | 'api_access' | 'imap' | 'pop' | 'oauth_grant' | 'security_event';
130
+ ipAddress: string;
131
+ location?: string;
132
+ userAgent?: string;
133
+ deviceType?: string;
134
+ wasUser: boolean;
135
+ suspicious: boolean;
136
+ reason?: string;
137
+ hash: string;
138
+ }
139
+ export interface ChromeProcessObservation {
140
+ id: string;
141
+ timestamp: string;
142
+ pid: number;
143
+ parentPid: number;
144
+ commandLine: string[];
145
+ profilePath?: string;
146
+ startTime: string;
147
+ userInitiated: boolean;
148
+ launchSource?: 'user' | 'system' | 'script' | 'unknown' | 'remote';
149
+ suspicionLevel: 'normal' | 'suspicious' | 'highly_suspicious';
150
+ reason?: string;
151
+ networkConnections?: NetworkConnection[];
152
+ hash: string;
153
+ }
154
+ export interface NetworkConnection {
155
+ localPort: number;
156
+ remoteIp: string;
157
+ remotePort: number;
158
+ state: string;
159
+ protocol: string;
160
+ }
161
+ export interface ChromeSessionObservation {
162
+ id: string;
163
+ timestamp: string;
164
+ profileId: string;
165
+ tabs: ChromeTabInfo[];
166
+ cookies: ChromeCookieInfo[];
167
+ localStorage: ChromeStorageInfo[];
168
+ syncStatus: 'synced' | 'local_only' | 'sync_disabled';
169
+ lastSyncTime?: string;
170
+ anomalies: SessionAnomaly[];
171
+ hash: string;
172
+ }
173
+ export interface ChromeTabInfo {
174
+ tabId: number;
175
+ url: string;
176
+ title: string;
177
+ active: boolean;
178
+ createdAt: string;
179
+ lastAccessed: string;
180
+ }
181
+ export interface ChromeCookieInfo {
182
+ domain: string;
183
+ name: string;
184
+ valueHash: string;
185
+ secure: boolean;
186
+ httpOnly: boolean;
187
+ sameSite: string;
188
+ expirationDate?: number;
189
+ }
190
+ export interface ChromeStorageInfo {
191
+ origin: string;
192
+ keyCount: number;
193
+ totalSize: number;
194
+ sensitiveKeys: string[];
195
+ }
196
+ export interface SessionAnomaly {
197
+ type: 'unexpected_tab' | 'cookie_injection' | 'storage_modification' | 'sync_without_user' | 'profile_access' | 'extension_activity';
198
+ severity: 'low' | 'medium' | 'high' | 'critical';
199
+ description: string;
200
+ evidence: string;
201
+ }
202
+ export interface ChromeHistoryObservation {
203
+ id: string;
204
+ timestamp: string;
205
+ captureMethod: 'sqlite' | 'api' | 'ui_scrape';
206
+ entryCount: number;
207
+ dateRange: {
208
+ start: string;
209
+ end: string;
210
+ };
211
+ deletedEntries?: HistoryDeletion[];
212
+ unexpectedEntries?: UnexpectedHistoryEntry[];
213
+ hash: string;
214
+ }
215
+ export interface HistoryDeletion {
216
+ approximateTime: string;
217
+ entriesAffected: number;
218
+ urlPatterns?: string[];
219
+ userInitiated: boolean;
220
+ }
221
+ export interface UnexpectedHistoryEntry {
222
+ url: string;
223
+ visitTime: string;
224
+ transitionType: string;
225
+ suspicionReason: string;
226
+ }
227
+ export declare const GOOGLE_GMAIL_CLAIMS: {
228
+ user_control: {
229
+ claim: string;
230
+ source: string;
231
+ verifiable: string;
232
+ reason: string;
233
+ };
234
+ no_email_scanning_for_ads: {
235
+ claim: string;
236
+ source: string;
237
+ verifiable: boolean;
238
+ reason: string;
239
+ };
240
+ confidential_mode: {
241
+ claim: string;
242
+ source: string;
243
+ verifiable: boolean;
244
+ reason: string;
245
+ };
246
+ security_alerts: {
247
+ claim: string;
248
+ source: string;
249
+ verifiable: string;
250
+ reason: string;
251
+ };
252
+ search_accuracy: {
253
+ claim: string;
254
+ source: string;
255
+ verifiable: boolean;
256
+ reason: string;
257
+ };
258
+ draft_integrity: {
259
+ claim: string;
260
+ source: string;
261
+ verifiable: boolean;
262
+ reason: string;
263
+ };
264
+ };
265
+ export declare const GOOGLE_CHROME_CLAIMS: {
266
+ safe_browsing: {
267
+ claim: string;
268
+ source: string;
269
+ verifiable: string;
270
+ reason: string;
271
+ };
272
+ sync_privacy: {
273
+ claim: string;
274
+ source: string;
275
+ verifiable: boolean;
276
+ reason: string;
277
+ };
278
+ user_control_history: {
279
+ claim: string;
280
+ source: string;
281
+ verifiable: string;
282
+ reason: string;
283
+ };
284
+ no_unauthorized_access: {
285
+ claim: string;
286
+ source: string;
287
+ verifiable: boolean;
288
+ reason: string;
289
+ };
290
+ extension_security: {
291
+ claim: string;
292
+ source: string;
293
+ verifiable: string;
294
+ reason: string;
295
+ };
296
+ };
297
+ export declare class GmailInvestigationEngine {
298
+ private storageDir;
299
+ private threadObservations;
300
+ private draftObservations;
301
+ private filterObservations;
302
+ private accessLogs;
303
+ private findings;
304
+ constructor(storageDir: string);
305
+ initialize(): Promise<void>;
306
+ /**
307
+ * Record observation of Gmail threads.
308
+ * Compare with previous observations to detect hidden threads.
309
+ *
310
+ * Detection methods:
311
+ * 1. Compare UI-visible threads vs API-returned threads
312
+ * 2. Compare search results vs direct thread access
313
+ * 3. Compare current state vs Google Takeout export
314
+ * 4. Monitor for threads that disappear from search but still exist
315
+ */
316
+ recordThreadObservation(params: {
317
+ threadId: string;
318
+ messageIds: string[];
319
+ subject: string;
320
+ labels: string[];
321
+ isVisible: boolean;
322
+ isInSearch: boolean;
323
+ lastMessageDate: string;
324
+ participantCount: number;
325
+ captureMethod: 'api' | 'ui_scrape' | 'network_capture' | 'takeout';
326
+ rawData?: string;
327
+ }): Promise<{
328
+ observation: GmailThreadObservation;
329
+ anomalyDetected: boolean;
330
+ finding?: Finding;
331
+ }>;
332
+ /**
333
+ * Compare multiple capture methods to detect discrepancies.
334
+ * If API shows different threads than UI or Takeout, that's manipulation.
335
+ */
336
+ crossReferenceThreadSources(params: {
337
+ apiThreadIds: string[];
338
+ uiThreadIds: string[];
339
+ takeoutThreadIds?: string[];
340
+ imapThreadIds?: string[];
341
+ }): Promise<{
342
+ discrepancies: Array<{
343
+ threadId: string;
344
+ presentIn: string[];
345
+ missingFrom: string[];
346
+ implication: string;
347
+ }>;
348
+ finding?: Finding;
349
+ }>;
350
+ /**
351
+ * Record observation of a draft.
352
+ * Detect unauthorized modifications, deletions, or sends.
353
+ */
354
+ recordDraftObservation(params: {
355
+ draftId: string;
356
+ threadId?: string;
357
+ subject: string;
358
+ recipientCount: number;
359
+ bodyContent: string;
360
+ hasAttachments: boolean;
361
+ createdAt: string;
362
+ modifiedAt: string;
363
+ captureMethod: 'api' | 'ui_scrape' | 'network_capture';
364
+ }): Promise<{
365
+ observation: GmailDraftObservation;
366
+ changes: DraftChange[];
367
+ finding?: Finding;
368
+ }>;
369
+ /**
370
+ * Detect drafts that were sent without user action.
371
+ * This is a critical fraud indicator.
372
+ */
373
+ detectUnauthorizedDraftSend(params: {
374
+ draftId: string;
375
+ sentMessageId: string;
376
+ sentAt: string;
377
+ userWasActive: boolean;
378
+ userLocation?: string;
379
+ sendingIp?: string;
380
+ }): Promise<Finding>;
381
+ /**
382
+ * Record account access and detect unauthorized access.
383
+ */
384
+ recordAccessLog(params: {
385
+ accessType: 'login' | 'api_access' | 'imap' | 'pop' | 'oauth_grant' | 'security_event';
386
+ ipAddress: string;
387
+ location?: string;
388
+ userAgent?: string;
389
+ deviceType?: string;
390
+ wasUser: boolean;
391
+ }): Promise<{
392
+ log: GmailAccessLog;
393
+ finding?: Finding;
394
+ }>;
395
+ /**
396
+ * Record and detect unauthorized Gmail filters.
397
+ * Google could add filters to hide specific emails.
398
+ */
399
+ recordFilterObservation(params: {
400
+ filterId: string;
401
+ criteria: GmailFilterObservation['criteria'];
402
+ actions: GmailFilterObservation['actions'];
403
+ createdByUser: boolean;
404
+ createdAt?: string;
405
+ }): Promise<{
406
+ observation: GmailFilterObservation;
407
+ finding?: Finding;
408
+ }>;
409
+ private persistThreadObservation;
410
+ private persistDraftObservation;
411
+ private persistAccessLog;
412
+ private persistFilterObservation;
413
+ private createFinding;
414
+ private getLegalImplications;
415
+ getFindings(): Finding[];
416
+ getThreadObservations(threadId: string): GmailThreadObservation[];
417
+ getDraftObservations(draftId: string): GmailDraftObservation[];
418
+ }
419
+ export declare class ChromeInvestigationEngine {
420
+ private storageDir;
421
+ private processObservations;
422
+ private sessionObservations;
423
+ private historyObservations;
424
+ private findings;
425
+ constructor(storageDir: string);
426
+ initialize(): Promise<void>;
427
+ /**
428
+ * Record Chrome process observation.
429
+ * Detect unauthorized browser launches.
430
+ */
431
+ recordProcessObservation(params: {
432
+ pid: number;
433
+ parentPid: number;
434
+ commandLine: string[];
435
+ profilePath?: string;
436
+ startTime: string;
437
+ userInitiated: boolean;
438
+ networkConnections?: NetworkConnection[];
439
+ }): Promise<{
440
+ observation: ChromeProcessObservation;
441
+ finding?: Finding;
442
+ }>;
443
+ /**
444
+ * Record Chrome session state.
445
+ * Detect session hijacking and unauthorized modifications.
446
+ */
447
+ recordSessionObservation(params: {
448
+ profileId: string;
449
+ tabs: ChromeTabInfo[];
450
+ cookies: ChromeCookieInfo[];
451
+ localStorage: ChromeStorageInfo[];
452
+ syncStatus: 'synced' | 'local_only' | 'sync_disabled';
453
+ lastSyncTime?: string;
454
+ }): Promise<{
455
+ observation: ChromeSessionObservation;
456
+ anomalies: SessionAnomaly[];
457
+ finding?: Finding;
458
+ }>;
459
+ /**
460
+ * Record Chrome history state.
461
+ * Detect unauthorized deletions or additions.
462
+ */
463
+ recordHistoryObservation(params: {
464
+ captureMethod: 'sqlite' | 'api' | 'ui_scrape';
465
+ entryCount: number;
466
+ dateRange: {
467
+ start: string;
468
+ end: string;
469
+ };
470
+ entries: Array<{
471
+ url: string;
472
+ visitTime: string;
473
+ transitionType: string;
474
+ }>;
475
+ }): Promise<{
476
+ observation: ChromeHistoryObservation;
477
+ finding?: Finding;
478
+ }>;
479
+ private persistProcessObservation;
480
+ private persistSessionObservation;
481
+ private persistHistoryObservation;
482
+ private createFinding;
483
+ private getLegalImplications;
484
+ getFindings(): Finding[];
485
+ getProcessObservations(): ChromeProcessObservation[];
486
+ }
487
+ export declare class UnifiedFraudOrchestrator extends EventEmitter {
488
+ private storageDir;
489
+ private integrityEngine;
490
+ private iMessageEngine;
491
+ private gmailEngine;
492
+ private chromeEngine;
493
+ private investigations;
494
+ private correlations;
495
+ constructor(workingDir?: string);
496
+ initialize(): Promise<void>;
497
+ createInvestigation(params: {
498
+ name: string;
499
+ target: InvestigationTarget;
500
+ vectors: FraudVector[];
501
+ }): Promise<Investigation>;
502
+ updateInvestigationStatus(investigationId: string, status: Investigation['status']): Promise<Investigation>;
503
+ getIMessageEngine(): iMessageVerificationEngine;
504
+ getGmailEngine(): GmailInvestigationEngine;
505
+ getChromeEngine(): ChromeInvestigationEngine;
506
+ /**
507
+ * Correlate findings across different fraud vectors.
508
+ * Detect patterns that indicate coordinated manipulation.
509
+ */
510
+ correlateFindings(investigationId: string): Promise<EvidenceCorrelation[]>;
511
+ generateUnifiedReport(investigationId: string): Promise<{
512
+ investigation: Investigation;
513
+ summary: {
514
+ target: InvestigationTarget;
515
+ vectorsInvestigated: FraudVector[];
516
+ totalFindings: number;
517
+ criticalFindings: number;
518
+ correlations: number;
519
+ };
520
+ byVector: Record<FraudVector, {
521
+ findings: Finding[];
522
+ severity: 'low' | 'medium' | 'high' | 'critical';
523
+ }>;
524
+ correlations: EvidenceCorrelation[];
525
+ legalSummary: {
526
+ fraudTypes: string[];
527
+ applicableLaws: string[];
528
+ recommendations: string[];
529
+ };
530
+ claims: {
531
+ apple?: typeof APPLE_PQ3_CLAIMS;
532
+ google_gmail?: typeof GOOGLE_GMAIL_CLAIMS;
533
+ google_chrome?: typeof GOOGLE_CHROME_CLAIMS;
534
+ };
535
+ }>;
536
+ exportForLitigation(investigationId: string, outputDir: string): Promise<string>;
537
+ private generateLegalDocument;
538
+ private persistInvestigation;
539
+ loadInvestigation(investigationId: string): Promise<Investigation | null>;
540
+ getInvestigations(): Investigation[];
541
+ }
542
+ //# sourceMappingURL=unifiedFraudOrchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unifiedFraudOrchestrator.d.ts","sourceRoot":"","sources":["../../src/core/unifiedFraudOrchestrator.ts"],"names":[],"mappings":"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"}