diff --git "a/logs/application/app_2025-11-07.log" "b/logs/application/app_2025-11-07.log" new file mode 100644--- /dev/null +++ "b/logs/application/app_2025-11-07.log" @@ -0,0 +1,156 @@ +{"text": "Centralized logging system initialized\n", "record": {"elapsed": {"repr": "0:00:07.533405", "seconds": 7.533405}, "exception": null, "extra": {}, "file": {"name": "logger.py", "path": "/Users/itobuz/projects/satyaki/text_auth/utils/logger.py"}, "function": "initialize", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 140, "message": "Centralized logging system initialized", "module": "logger", "name": "utils.logger", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.885931+05:30", "timestamp": 1762498979.885931}}} +{"text": "Environment: development\n", "record": {"elapsed": {"repr": "0:00:07.533701", "seconds": 7.533701}, "exception": null, "extra": {}, "file": {"name": "logger.py", "path": "/Users/itobuz/projects/satyaki/text_auth/utils/logger.py"}, "function": "initialize", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 141, "message": "Environment: development", "module": "logger", "name": "utils.logger", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.886227+05:30", "timestamp": 1762498979.886227}}} +{"text": "Log Level: INFO\n", "record": {"elapsed": {"repr": "0:00:07.533808", "seconds": 7.533808}, "exception": null, "extra": {}, "file": {"name": "logger.py", "path": "/Users/itobuz/projects/satyaki/text_auth/utils/logger.py"}, "function": "initialize", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 142, "message": "Log Level: INFO", "module": "logger", "name": "utils.logger", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.886334+05:30", "timestamp": 1762498979.886334}}} +{"text": "Log Directory: /Users/itobuz/projects/satyaki/text_auth/logs\n", "record": {"elapsed": {"repr": "0:00:07.533889", "seconds": 7.533889}, "exception": null, "extra": {}, "file": {"name": "logger.py", "path": "/Users/itobuz/projects/satyaki/text_auth/utils/logger.py"}, "function": "initialize", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 143, "message": "Log Directory: /Users/itobuz/projects/satyaki/text_auth/logs", "module": "logger", "name": "utils.logger", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.886415+05:30", "timestamp": 1762498979.886415}}} +{"text": "================================================================================\n", "record": {"elapsed": {"repr": "0:00:07.533965", "seconds": 7.533965}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 369, "message": "================================================================================", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.886491+05:30", "timestamp": 1762498979.886491}}} +{"text": "TEXT-AUTH API Starting Up...\n", "record": {"elapsed": {"repr": "0:00:07.534036", "seconds": 7.534036}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 370, "message": "TEXT-AUTH API Starting Up...", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.886562+05:30", "timestamp": 1762498979.886562}}} +{"text": "================================================================================\n", "record": {"elapsed": {"repr": "0:00:07.534107", "seconds": 7.534107}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 371, "message": "================================================================================", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.886633+05:30", "timestamp": 1762498979.886633}}} +{"text": "Initializing Detection Orchestrator...\n", "record": {"elapsed": {"repr": "0:00:07.534171", "seconds": 7.534171}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 375, "message": "Initializing Detection Orchestrator...", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.886697+05:30", "timestamp": 1762498979.886697}}} +{"text": "TextProcessor initialized with min_length=50, max_length=500000\n", "record": {"elapsed": {"repr": "0:00:07.534239", "seconds": 7.534239}, "exception": null, "extra": {}, "file": {"name": "text_processor.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/text_processor.py"}, "function": "__init__", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 107, "message": "TextProcessor initialized with min_length=50, max_length=500000", "module": "text_processor", "name": "processors.text_processor", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.886765+05:30", "timestamp": 1762498979.886765}}} +{"text": "ModelManager initialized with device: cpu\n", "record": {"elapsed": {"repr": "0:00:07.534950", "seconds": 7.53495}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "__init__", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 133, "message": "ModelManager initialized with device: cpu", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.887476+05:30", "timestamp": 1762498979.887476}}} +{"text": "Model cache directory: /Users/itobuz/projects/satyaki/text_auth/models/cache\n", "record": {"elapsed": {"repr": "0:00:07.535085", "seconds": 7.535085}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "__init__", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 134, "message": "Model cache directory: /Users/itobuz/projects/satyaki/text_auth/models/cache", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.887611+05:30", "timestamp": 1762498979.887611}}} +{"text": "LanguageDetector initialized (use_model=True)\n", "record": {"elapsed": {"repr": "0:00:07.535179", "seconds": 7.535179}, "exception": null, "extra": {}, "file": {"name": "language_detector.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/language_detector.py"}, "function": "__init__", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 182, "message": "LanguageDetector initialized (use_model=True)", "module": "language_detector", "name": "processors.language_detector", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.887705+05:30", "timestamp": 1762498979.887705}}} +{"text": "Initialized 6 metrics: ['structural', 'entropy', 'perplexity', 'semantic_analysis', 'linguistic', 'multi_perturbation_stability']\n", "record": {"elapsed": {"repr": "0:00:07.535284", "seconds": 7.535284}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "_initialize_metrics", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 189, "message": "Initialized 6 metrics: ['structural', 'entropy', 'perplexity', 'semantic_analysis', 'linguistic', 'multi_perturbation_stability']", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.887810+05:30", "timestamp": 1762498979.88781}}} +{"text": "AdvancedEnsembleClassifier initialized (primary=confidence_calibrated, fallback=domain_weighted, ml_ensemble=False)\n", "record": {"elapsed": {"repr": "0:00:07.535361", "seconds": 7.535361}, "exception": null, "extra": {}, "file": {"name": "ensemble.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/ensemble.py"}, "function": "__init__", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 91, "message": "AdvancedEnsembleClassifier initialized (primary=confidence_calibrated, fallback=domain_weighted, ml_ensemble=False)", "module": "ensemble", "name": "detector.ensemble", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.887887+05:30", "timestamp": 1762498979.887887}}} +{"text": "DetectionOrchestrator initialized (language_detection=True, skip_expensive=False)\n", "record": {"elapsed": {"repr": "0:00:07.535437", "seconds": 7.535437}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "__init__", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 132, "message": "DetectionOrchestrator initialized (language_detection=True, skip_expensive=False)", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.887963+05:30", "timestamp": 1762498979.887963}}} +{"text": "Initializing detection pipeline...\n", "record": {"elapsed": {"repr": "0:00:07.535511", "seconds": 7.535511}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "initialize", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 202, "message": "Initializing detection pipeline...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.888037+05:30", "timestamp": 1762498979.888037}}} +{"text": "Initializing domain classifier...\n", "record": {"elapsed": {"repr": "0:00:07.535583", "seconds": 7.535583}, "exception": null, "extra": {}, "file": {"name": "domain_classifier.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/domain_classifier.py"}, "function": "initialize", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 61, "message": "Initializing domain classifier...", "module": "domain_classifier", "name": "processors.domain_classifier", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.888109+05:30", "timestamp": 1762498979.888109}}} +{"text": "Loading model: domain_classifier (cross-encoder/nli-roberta-base)\n", "record": {"elapsed": {"repr": "0:00:07.535657", "seconds": 7.535657}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 222, "message": "Loading model: domain_classifier (cross-encoder/nli-roberta-base)", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:32:59.888183+05:30", "timestamp": 1762498979.888183}}} +{"text": "Added model to cache: domain_classifier\n", "record": {"elapsed": {"repr": "0:00:07.787423", "seconds": 7.787423}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "put", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 87, "message": "Added model to cache: domain_classifier", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:00.139949+05:30", "timestamp": 1762498980.139949}}} +{"text": "Successfully loaded model: domain_classifier\n", "record": {"elapsed": {"repr": "0:00:07.787699", "seconds": 7.787699}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 269, "message": "Successfully loaded model: domain_classifier", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:00.140225+05:30", "timestamp": 1762498980.140225}}} +{"text": "Loading model: domain_classifier_fallback (microsoft/deberta-v3-small)\n", "record": {"elapsed": {"repr": "0:00:07.787825", "seconds": 7.787825}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 222, "message": "Loading model: domain_classifier_fallback (microsoft/deberta-v3-small)", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:00.140351+05:30", "timestamp": 1762498980.140351}}} +{"text": "Added model to cache: domain_classifier_fallback\n", "record": {"elapsed": {"repr": "0:00:08.375492", "seconds": 8.375492}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "put", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 87, "message": "Added model to cache: domain_classifier_fallback", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:00.728018+05:30", "timestamp": 1762498980.728018}}} +{"text": "Successfully loaded model: domain_classifier_fallback\n", "record": {"elapsed": {"repr": "0:00:08.375778", "seconds": 8.375778}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 269, "message": "Successfully loaded model: domain_classifier_fallback", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:00.728304+05:30", "timestamp": 1762498980.728304}}} +{"text": "Fallback classifier loaded successfully\n", "record": {"elapsed": {"repr": "0:00:08.375905", "seconds": 8.375905}, "exception": null, "extra": {}, "file": {"name": "domain_classifier.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/domain_classifier.py"}, "function": "initialize", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 69, "message": "Fallback classifier loaded successfully", "module": "domain_classifier", "name": "processors.domain_classifier", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:00.728431+05:30", "timestamp": 1762498980.728431}}} +{"text": "Domain classifier initialized successfully\n", "record": {"elapsed": {"repr": "0:00:08.375991", "seconds": 8.375991}, "exception": null, "extra": {}, "file": {"name": "domain_classifier.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/domain_classifier.py"}, "function": "initialize", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 76, "message": "Domain classifier initialized successfully", "module": "domain_classifier", "name": "processors.domain_classifier", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:00.728517+05:30", "timestamp": 1762498980.728517}}} +{"text": "Initializing language detection model...\n", "record": {"elapsed": {"repr": "0:00:08.376067", "seconds": 8.376067}, "exception": null, "extra": {}, "file": {"name": "language_detector.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/language_detector.py"}, "function": "initialize", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 198, "message": "Initializing language detection model...", "module": "language_detector", "name": "processors.language_detector", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:00.728593+05:30", "timestamp": 1762498980.728593}}} +{"text": "Loading pipeline: text-classification with language_detector\n", "record": {"elapsed": {"repr": "0:00:08.376140", "seconds": 8.37614}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_pipeline", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 491, "message": "Loading pipeline: text-classification with language_detector", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:00.728666+05:30", "timestamp": 1762498980.728666}}} +{"text": "Language detector initialized successfully\n", "record": {"elapsed": {"repr": "0:00:08.980384", "seconds": 8.980384}, "exception": null, "extra": {}, "file": {"name": "language_detector.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/language_detector.py"}, "function": "initialize", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 206, "message": "Language detector initialized successfully", "module": "language_detector", "name": "processors.language_detector", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.332910+05:30", "timestamp": 1762498981.33291}}} +{"text": "Initializing entropy metric...\n", "record": {"elapsed": {"repr": "0:00:08.980612", "seconds": 8.980612}, "exception": null, "extra": {}, "file": {"name": "entropy.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/entropy.py"}, "function": "initialize", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 39, "message": "Initializing entropy metric...", "module": "entropy", "name": "metrics.entropy", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.333138+05:30", "timestamp": 1762498981.333138}}} +{"text": "Loading model: perplexity_gpt2 (gpt2)\n", "record": {"elapsed": {"repr": "0:00:08.980706", "seconds": 8.980706}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 222, "message": "Loading model: perplexity_gpt2 (gpt2)", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.333232+05:30", "timestamp": 1762498981.333232}}} +{"text": "Added model to cache: perplexity_gpt2\n", "record": {"elapsed": {"repr": "0:00:09.145139", "seconds": 9.145139}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "put", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 87, "message": "Added model to cache: perplexity_gpt2", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.497665+05:30", "timestamp": 1762498981.497665}}} +{"text": "Successfully loaded model: perplexity_gpt2\n", "record": {"elapsed": {"repr": "0:00:09.145343", "seconds": 9.145343}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 269, "message": "Successfully loaded model: perplexity_gpt2", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.497869+05:30", "timestamp": 1762498981.497869}}} +{"text": "Entropy metric initialized successfully\n", "record": {"elapsed": {"repr": "0:00:09.145431", "seconds": 9.145431}, "exception": null, "extra": {}, "file": {"name": "entropy.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/entropy.py"}, "function": "initialize", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 52, "message": "Entropy metric initialized successfully", "module": "entropy", "name": "metrics.entropy", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.497957+05:30", "timestamp": 1762498981.497957}}} +{"text": "Initializing perplexity metric...\n", "record": {"elapsed": {"repr": "0:00:09.145507", "seconds": 9.145507}, "exception": null, "extra": {}, "file": {"name": "perplexity.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/perplexity.py"}, "function": "initialize", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 41, "message": "Initializing perplexity metric...", "module": "perplexity", "name": "metrics.perplexity", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.498033+05:30", "timestamp": 1762498981.498033}}} +{"text": "Perplexity metric initialized successfully\n", "record": {"elapsed": {"repr": "0:00:09.145581", "seconds": 9.145581}, "exception": null, "extra": {}, "file": {"name": "perplexity.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/perplexity.py"}, "function": "initialize", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 55, "message": "Perplexity metric initialized successfully", "module": "perplexity", "name": "metrics.perplexity", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.498107+05:30", "timestamp": 1762498981.498107}}} +{"text": "Initializing semantic analysis metric...\n", "record": {"elapsed": {"repr": "0:00:09.145651", "seconds": 9.145651}, "exception": null, "extra": {}, "file": {"name": "semantic_analysis.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/semantic_analysis.py"}, "function": "initialize", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 41, "message": "Initializing semantic analysis metric...", "module": "semantic_analysis", "name": "metrics.semantic_analysis", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.498177+05:30", "timestamp": 1762498981.498177}}} +{"text": "Loading model: semantic_primary (sentence-transformers/all-MiniLM-L6-v2)\n", "record": {"elapsed": {"repr": "0:00:09.145719", "seconds": 9.145719}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 222, "message": "Loading model: semantic_primary (sentence-transformers/all-MiniLM-L6-v2)", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.498245+05:30", "timestamp": 1762498981.498245}}} +{"text": "Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n", "record": {"elapsed": {"repr": "0:00:09.148207", "seconds": 9.148207}, "exception": null, "extra": {}, "file": {"name": "SentenceTransformer.py", "path": "/Users/itobuz/anaconda3/lib/python3.10/site-packages/sentence_transformers/SentenceTransformer.py"}, "function": "__init__", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 218, "message": "Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2", "module": "SentenceTransformer", "name": "sentence_transformers.SentenceTransformer", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.500733+05:30", "timestamp": 1762498981.500733}}} +{"text": "Added model to cache: semantic_primary\n", "record": {"elapsed": {"repr": "0:00:09.421934", "seconds": 9.421934}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "put", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 87, "message": "Added model to cache: semantic_primary", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.774460+05:30", "timestamp": 1762498981.77446}}} +{"text": "Successfully loaded model: semantic_primary\n", "record": {"elapsed": {"repr": "0:00:09.422114", "seconds": 9.422114}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 269, "message": "Successfully loaded model: semantic_primary", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.774640+05:30", "timestamp": 1762498981.77464}}} +{"text": "Semantic analysis metric initialized successfully\n", "record": {"elapsed": {"repr": "0:00:09.422199", "seconds": 9.422199}, "exception": null, "extra": {}, "file": {"name": "semantic_analysis.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/semantic_analysis.py"}, "function": "initialize", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 49, "message": "Semantic analysis metric initialized successfully", "module": "semantic_analysis", "name": "metrics.semantic_analysis", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.774725+05:30", "timestamp": 1762498981.774725}}} +{"text": "Initializing linguistic metric...\n", "record": {"elapsed": {"repr": "0:00:09.422275", "seconds": 9.422275}, "exception": null, "extra": {}, "file": {"name": "linguistic.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/linguistic.py"}, "function": "initialize", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 39, "message": "Initializing linguistic metric...", "module": "linguistic", "name": "metrics.linguistic", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.774801+05:30", "timestamp": 1762498981.774801}}} +{"text": "Loading model: linguistic_spacy (en_core_web_sm)\n", "record": {"elapsed": {"repr": "0:00:09.422490", "seconds": 9.42249}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 222, "message": "Loading model: linguistic_spacy (en_core_web_sm)", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:01.775016+05:30", "timestamp": 1762498981.775016}}} +{"text": "Loaded spaCy model: en_core_web_sm\n", "record": {"elapsed": {"repr": "0:00:09.719152", "seconds": 9.719152}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "_load_spacy_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 508, "message": "Loaded spaCy model: en_core_web_sm", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:02.071678+05:30", "timestamp": 1762498982.071678}}} +{"text": "Added model to cache: linguistic_spacy\n", "record": {"elapsed": {"repr": "0:00:09.719663", "seconds": 9.719663}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "put", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 87, "message": "Added model to cache: linguistic_spacy", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:02.072189+05:30", "timestamp": 1762498982.072189}}} +{"text": "Successfully loaded model: linguistic_spacy\n", "record": {"elapsed": {"repr": "0:00:09.719760", "seconds": 9.71976}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 269, "message": "Successfully loaded model: linguistic_spacy", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:02.072286+05:30", "timestamp": 1762498982.072286}}} +{"text": "Linguistic metric initialized successfully\n", "record": {"elapsed": {"repr": "0:00:09.719844", "seconds": 9.719844}, "exception": null, "extra": {}, "file": {"name": "linguistic.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/linguistic.py"}, "function": "initialize", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 46, "message": "Linguistic metric initialized successfully", "module": "linguistic", "name": "metrics.linguistic", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:02.072370+05:30", "timestamp": 1762498982.07237}}} +{"text": "Initializing MultiPerturbationStability metric...\n", "record": {"elapsed": {"repr": "0:00:09.719918", "seconds": 9.719918}, "exception": null, "extra": {}, "file": {"name": "multi_perturbation_stability.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/multi_perturbation_stability.py"}, "function": "initialize", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 52, "message": "Initializing MultiPerturbationStability metric...", "module": "multi_perturbation_stability", "name": "metrics.multi_perturbation_stability", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:02.072444+05:30", "timestamp": 1762498982.072444}}} +{"text": "Loading model: multi_perturbation_base (gpt2)\n", "record": {"elapsed": {"repr": "0:00:09.719990", "seconds": 9.71999}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 222, "message": "Loading model: multi_perturbation_base (gpt2)", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:02.072516+05:30", "timestamp": 1762498982.072516}}} +{"text": "Evicted model from cache: domain_classifier\n", "record": {"elapsed": {"repr": "0:00:09.922969", "seconds": 9.922969}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "put", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 83, "message": "Evicted model from cache: domain_classifier", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:02.275495+05:30", "timestamp": 1762498982.275495}}} +{"text": "Added model to cache: multi_perturbation_base\n", "record": {"elapsed": {"repr": "0:00:09.923327", "seconds": 9.923327}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "put", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 87, "message": "Added model to cache: multi_perturbation_base", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:02.275853+05:30", "timestamp": 1762498982.275853}}} +{"text": "Successfully loaded model: multi_perturbation_base\n", "record": {"elapsed": {"repr": "0:00:09.923432", "seconds": 9.923432}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 269, "message": "Successfully loaded model: multi_perturbation_base", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:02.275958+05:30", "timestamp": 1762498982.275958}}} +{"text": "✓ GPT-2 model loaded for MultiPerturbationStability\n", "record": {"elapsed": {"repr": "0:00:10.036641", "seconds": 10.036641}, "exception": null, "extra": {}, "file": {"name": "multi_perturbation_stability.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/multi_perturbation_stability.py"}, "function": "initialize", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 62, "message": "✓ GPT-2 model loaded for MultiPerturbationStability", "module": "multi_perturbation_stability", "name": "metrics.multi_perturbation_stability", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:02.389167+05:30", "timestamp": 1762498982.389167}}} +{"text": "Loading model: multi_perturbation_mask (distilroberta-base)\n", "record": {"elapsed": {"repr": "0:00:10.036878", "seconds": 10.036878}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 222, "message": "Loading model: multi_perturbation_mask (distilroberta-base)", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:02.389404+05:30", "timestamp": 1762498982.389404}}} +{"text": "Evicted model from cache: domain_classifier_fallback\n", "record": {"elapsed": {"repr": "0:00:26.146880", "seconds": 26.14688}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "put", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 83, "message": "Evicted model from cache: domain_classifier_fallback", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.499406+05:30", "timestamp": 1762498998.499406}}} +{"text": "Added model to cache: multi_perturbation_mask\n", "record": {"elapsed": {"repr": "0:00:26.147075", "seconds": 26.147075}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "put", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 87, "message": "Added model to cache: multi_perturbation_mask", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.499601+05:30", "timestamp": 1762498998.499601}}} +{"text": "Successfully loaded model: multi_perturbation_mask\n", "record": {"elapsed": {"repr": "0:00:26.147159", "seconds": 26.147159}, "exception": null, "extra": {}, "file": {"name": "model_manager.py", "path": "/Users/itobuz/projects/satyaki/text_auth/models/model_manager.py"}, "function": "load_model", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 269, "message": "Successfully loaded model: multi_perturbation_mask", "module": "model_manager", "name": "models.model_manager", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.499685+05:30", "timestamp": 1762498998.499685}}} +{"text": "✓ DistilRoBERTa model loaded for MultiPerturbationStability\n", "record": {"elapsed": {"repr": "0:00:26.251440", "seconds": 26.25144}, "exception": null, "extra": {}, "file": {"name": "multi_perturbation_stability.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/multi_perturbation_stability.py"}, "function": "initialize", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 84, "message": "✓ DistilRoBERTa model loaded for MultiPerturbationStability", "module": "multi_perturbation_stability", "name": "metrics.multi_perturbation_stability", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.603966+05:30", "timestamp": 1762498998.603966}}} +{"text": "GPT-2 test - Likelihood: 5.3535\n", "record": {"elapsed": {"repr": "0:00:26.479293", "seconds": 26.479293}, "exception": null, "extra": {}, "file": {"name": "multi_perturbation_stability.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/multi_perturbation_stability.py"}, "function": "_verify_model_loading", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 114, "message": "GPT-2 test - Likelihood: 5.3535", "module": "multi_perturbation_stability", "name": "metrics.multi_perturbation_stability", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.831819+05:30", "timestamp": 1762498998.831819}}} +{"text": "DistilRoBERTa mask token: ''\n", "record": {"elapsed": {"repr": "0:00:26.483120", "seconds": 26.48312}, "exception": null, "extra": {}, "file": {"name": "multi_perturbation_stability.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/multi_perturbation_stability.py"}, "function": "_verify_model_loading", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 124, "message": "DistilRoBERTa mask token: ''", "module": "multi_perturbation_stability", "name": "metrics.multi_perturbation_stability", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.835646+05:30", "timestamp": 1762498998.835646}}} +{"text": "DistilRoBERTa tokenization test - Input shape: torch.Size([1, 11])\n", "record": {"elapsed": {"repr": "0:00:26.483590", "seconds": 26.48359}, "exception": null, "extra": {}, "file": {"name": "multi_perturbation_stability.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/multi_perturbation_stability.py"}, "function": "_verify_model_loading", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 128, "message": "DistilRoBERTa tokenization test - Input shape: torch.Size([1, 11])", "module": "multi_perturbation_stability", "name": "metrics.multi_perturbation_stability", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.836116+05:30", "timestamp": 1762498998.836116}}} +{"text": "MultiPerturbationStability metric initialized successfully\n", "record": {"elapsed": {"repr": "0:00:26.483764", "seconds": 26.483764}, "exception": null, "extra": {}, "file": {"name": "multi_perturbation_stability.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/multi_perturbation_stability.py"}, "function": "initialize", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 96, "message": "MultiPerturbationStability metric initialized successfully", "module": "multi_perturbation_stability", "name": "metrics.multi_perturbation_stability", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.836290+05:30", "timestamp": 1762498998.83629}}} +{"text": "Detection pipeline initialized: 6/6 metrics ready\n", "record": {"elapsed": {"repr": "0:00:26.483850", "seconds": 26.48385}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "initialize", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 229, "message": "Detection pipeline initialized: 6/6 metrics ready", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.836376+05:30", "timestamp": 1762498998.836376}}} +{"text": "✓ Detection Orchestrator initialized\n", "record": {"elapsed": {"repr": "0:00:26.483928", "seconds": 26.483928}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 383, "message": "✓ Detection Orchestrator initialized", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.836454+05:30", "timestamp": 1762498998.836454}}} +{"text": "Initializing Model Attributor...\n", "record": {"elapsed": {"repr": "0:00:26.484001", "seconds": 26.484001}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 389, "message": "Initializing Model Attributor...", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.836527+05:30", "timestamp": 1762498998.836527}}} +{"text": "ModelAttributor initialized with domain-aware calibration\n", "record": {"elapsed": {"repr": "0:00:26.484073", "seconds": 26.484073}, "exception": null, "extra": {}, "file": {"name": "attribution.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/attribution.py"}, "function": "__init__", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 403, "message": "ModelAttributor initialized with domain-aware calibration", "module": "attribution", "name": "detector.attribution", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.836599+05:30", "timestamp": 1762498998.836599}}} +{"text": "Model attribution system initialized with metric ensemble\n", "record": {"elapsed": {"repr": "0:00:26.484140", "seconds": 26.48414}, "exception": null, "extra": {}, "file": {"name": "attribution.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/attribution.py"}, "function": "initialize", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 412, "message": "Model attribution system initialized with metric ensemble", "module": "attribution", "name": "detector.attribution", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.836666+05:30", "timestamp": 1762498998.836666}}} +{"text": "✓ Model Attributor initialized\n", "record": {"elapsed": {"repr": "0:00:26.484204", "seconds": 26.484204}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 395, "message": "✓ Model Attributor initialized", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.836730+05:30", "timestamp": 1762498998.83673}}} +{"text": "Initializing Text Highlighter...\n", "record": {"elapsed": {"repr": "0:00:26.484267", "seconds": 26.484267}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 401, "message": "Initializing Text Highlighter...", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.836793+05:30", "timestamp": 1762498998.836793}}} +{"text": "TextProcessor initialized with min_length=50, max_length=500000\n", "record": {"elapsed": {"repr": "0:00:26.484339", "seconds": 26.484339}, "exception": null, "extra": {}, "file": {"name": "text_processor.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/text_processor.py"}, "function": "__init__", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 107, "message": "TextProcessor initialized with min_length=50, max_length=500000", "module": "text_processor", "name": "processors.text_processor", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.836865+05:30", "timestamp": 1762498998.836865}}} +{"text": "AdvancedEnsembleClassifier initialized (primary=confidence_calibrated, fallback=domain_weighted, ml_ensemble=False)\n", "record": {"elapsed": {"repr": "0:00:26.484410", "seconds": 26.48441}, "exception": null, "extra": {}, "file": {"name": "ensemble.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/ensemble.py"}, "function": "__init__", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 91, "message": "AdvancedEnsembleClassifier initialized (primary=confidence_calibrated, fallback=domain_weighted, ml_ensemble=False)", "module": "ensemble", "name": "detector.ensemble", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.836936+05:30", "timestamp": 1762498998.836936}}} +{"text": "✓ Text Highlighter initialized\n", "record": {"elapsed": {"repr": "0:00:26.484474", "seconds": 26.484474}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 407, "message": "✓ Text Highlighter initialized", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.837000+05:30", "timestamp": 1762498998.837}}} +{"text": "Initializing Report Generator...\n", "record": {"elapsed": {"repr": "0:00:26.484536", "seconds": 26.484536}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 410, "message": "Initializing Report Generator...", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.837062+05:30", "timestamp": 1762498998.837062}}} +{"text": "ReportGenerator initialized (output_dir=/Users/itobuz/projects/satyaki/text_auth/data/reports)\n", "record": {"elapsed": {"repr": "0:00:26.484788", "seconds": 26.484788}, "exception": null, "extra": {}, "file": {"name": "report_generator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/reporter/report_generator.py"}, "function": "__init__", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 58, "message": "ReportGenerator initialized (output_dir=/Users/itobuz/projects/satyaki/text_auth/data/reports)", "module": "report_generator", "name": "reporter.report_generator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.837314+05:30", "timestamp": 1762498998.837314}}} +{"text": "✓ Report Generator initialized\n", "record": {"elapsed": {"repr": "0:00:26.484872", "seconds": 26.484872}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 416, "message": "✓ Report Generator initialized", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.837398+05:30", "timestamp": 1762498998.837398}}} +{"text": "Initializing Reasoning Generator...\n", "record": {"elapsed": {"repr": "0:00:26.484942", "seconds": 26.484942}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 419, "message": "Initializing Reasoning Generator...", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.837468+05:30", "timestamp": 1762498998.837468}}} +{"text": "✓ Reasoning Generator initialized\n", "record": {"elapsed": {"repr": "0:00:26.485013", "seconds": 26.485013}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 425, "message": "✓ Reasoning Generator initialized", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.837539+05:30", "timestamp": 1762498998.837539}}} +{"text": "Initializing Document Extractor...\n", "record": {"elapsed": {"repr": "0:00:26.485084", "seconds": 26.485084}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 428, "message": "Initializing Document Extractor...", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.837610+05:30", "timestamp": 1762498998.83761}}} +{"text": "DocumentExtractor initialized (max_size=50.0MB)\n", "record": {"elapsed": {"repr": "0:00:26.485156", "seconds": 26.485156}, "exception": null, "extra": {}, "file": {"name": "document_extractor.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/document_extractor.py"}, "function": "__init__", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 124, "message": "DocumentExtractor initialized (max_size=50.0MB)", "module": "document_extractor", "name": "processors.document_extractor", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.837682+05:30", "timestamp": 1762498998.837682}}} +{"text": "✓ Document Extractor initialized\n", "record": {"elapsed": {"repr": "0:00:26.485222", "seconds": 26.485222}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 434, "message": "✓ Document Extractor initialized", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.837748+05:30", "timestamp": 1762498998.837748}}} +{"text": "================================================================================\n", "record": {"elapsed": {"repr": "0:00:26.485285", "seconds": 26.485285}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 436, "message": "================================================================================", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.837811+05:30", "timestamp": 1762498998.837811}}} +{"text": "TEXT-AUTH API Ready!\n", "record": {"elapsed": {"repr": "0:00:26.485349", "seconds": 26.485349}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 437, "message": "TEXT-AUTH API Ready!", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.837875+05:30", "timestamp": 1762498998.837875}}} +{"text": "Server: 0.0.0.0:8000\n", "record": {"elapsed": {"repr": "0:00:26.485515", "seconds": 26.485515}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 438, "message": "Server: 0.0.0.0:8000", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.838041+05:30", "timestamp": 1762498998.838041}}} +{"text": "Environment: development\n", "record": {"elapsed": {"repr": "0:00:26.485617", "seconds": 26.485617}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 439, "message": "Environment: development", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.838143+05:30", "timestamp": 1762498998.838143}}} +{"text": "Device: cpu\n", "record": {"elapsed": {"repr": "0:00:26.485697", "seconds": 26.485697}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 440, "message": "Device: cpu", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.838223+05:30", "timestamp": 1762498998.838223}}} +{"text": "================================================================================\n", "record": {"elapsed": {"repr": "0:00:26.485766", "seconds": 26.485766}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "startup_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 441, "message": "================================================================================", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.838292+05:30", "timestamp": 1762498998.838292}}} +{"text": "Application startup complete.\n", "record": {"elapsed": {"repr": "0:00:26.486015", "seconds": 26.486015}, "exception": null, "extra": {}, "file": {"name": "on.py", "path": "/Users/itobuz/anaconda3/lib/python3.10/site-packages/uvicorn/lifespan/on.py"}, "function": "startup", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 62, "message": "Application startup complete.", "module": "on", "name": "uvicorn.lifespan.on", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:18.838541+05:30", "timestamp": 1762498998.838541}}} +{"text": "API Request: GET / -> 200\n", "record": {"elapsed": {"repr": "0:00:29.963332", "seconds": 29.963332}, "exception": null, "extra": {"log_type": "application", "extra": {"http_method": "GET", "path": "/", "status_code": 200, "duration_seconds": 0.0006, "user": null, "ip_address": "127.0.0.1", "timestamp": "2025-11-07T12:33:22.315844"}}, "file": {"name": "logger.py", "path": "/Users/itobuz/projects/satyaki/text_auth/utils/logger.py"}, "function": "log_api_request", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 374, "message": "API Request: GET / -> 200", "module": "logger", "name": "utils.logger", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:22.315858+05:30", "timestamp": 1762499002.315858}}} +{"text": "127.0.0.1:57381 - \"GET / HTTP/1.1\" 200\n", "record": {"elapsed": {"repr": "0:00:29.963667", "seconds": 29.963667}, "exception": null, "extra": {}, "file": {"name": "h11_impl.py", "path": "/Users/itobuz/anaconda3/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py"}, "function": "send", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 473, "message": "127.0.0.1:57381 - \"GET / HTTP/1.1\" 200", "module": "h11_impl", "name": "uvicorn.protocols.http.h11_impl", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:22.316193+05:30", "timestamp": 1762499002.316193}}} +{"text": "API Client Error: GET /favicon.ico -> 404\n", "record": {"elapsed": {"repr": "0:00:30.025181", "seconds": 30.025181}, "exception": null, "extra": {"log_type": "application", "extra": {"http_method": "GET", "path": "/favicon.ico", "status_code": 404, "duration_seconds": 0.0009, "user": null, "ip_address": "127.0.0.1", "timestamp": "2025-11-07T12:33:22.377664"}}, "file": {"name": "logger.py", "path": "/Users/itobuz/projects/satyaki/text_auth/utils/logger.py"}, "function": "log_api_request", "level": {"icon": "⚠️", "name": "WARNING", "no": 30}, "line": 379, "message": "API Client Error: GET /favicon.ico -> 404", "module": "logger", "name": "utils.logger", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:22.377707+05:30", "timestamp": 1762499002.377707}}} +{"text": "127.0.0.1:57381 - \"GET /favicon.ico HTTP/1.1\" 404\n", "record": {"elapsed": {"repr": "0:00:30.026003", "seconds": 30.026003}, "exception": null, "extra": {}, "file": {"name": "h11_impl.py", "path": "/Users/itobuz/anaconda3/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py"}, "function": "send", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 473, "message": "127.0.0.1:57381 - \"GET /favicon.ico HTTP/1.1\" 404", "module": "h11_impl", "name": "uvicorn.protocols.http.h11_impl", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:22.378529+05:30", "timestamp": 1762499002.378529}}} +{"text": "[analysis_1762499035555] Analyzing text (6913 chars)\n", "record": {"elapsed": {"repr": "0:01:03.202512", "seconds": 63.202512}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "analyze_text", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 729, "message": "[analysis_1762499035555] Analyzing text (6913 chars)", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:55.555038+05:30", "timestamp": 1762499035.555038}}} +{"text": "Step 1: Preprocessing text...\n", "record": {"elapsed": {"repr": "0:01:03.202763", "seconds": 63.202763}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 259, "message": "Step 1: Preprocessing text...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:55.555289+05:30", "timestamp": 1762499035.555289}}} +{"text": "Step 2: Detecting language...\n", "record": {"elapsed": {"repr": "0:01:03.214312", "seconds": 63.214312}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 271, "message": "Step 2: Detecting language...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:55.566838+05:30", "timestamp": 1762499035.566838}}} +{"text": "Split text into 16 chunks for language detection\n", "record": {"elapsed": {"repr": "0:01:03.226480", "seconds": 63.22648}, "exception": null, "extra": {}, "file": {"name": "language_detector.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/language_detector.py"}, "function": "_detect_with_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 307, "message": "Split text into 16 chunks for language detection", "module": "language_detector", "name": "processors.language_detector", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:55.579006+05:30", "timestamp": 1762499035.579006}}} +{"text": "Detected language: en (confidence: 0.95, method: xlm-roberta-model)\n", "record": {"elapsed": {"repr": "0:01:04.043605", "seconds": 64.043605}, "exception": null, "extra": {}, "file": {"name": "language_detector.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/language_detector.py"}, "function": "detect", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 291, "message": "Detected language: en (confidence: 0.95, method: xlm-roberta-model)", "module": "language_detector", "name": "processors.language_detector", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:56.396131+05:30", "timestamp": 1762499036.396131}}} +{"text": "Step 3: Classifying domain...\n", "record": {"elapsed": {"repr": "0:01:04.043864", "seconds": 64.043864}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 290, "message": "Step 3: Classifying domain...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:56.396390+05:30", "timestamp": 1762499036.39639}}} +{"text": "Primary model classified domain: creative (confidence: 0.092)\n", "record": {"elapsed": {"repr": "0:01:06.588014", "seconds": 66.588014}, "exception": null, "extra": {}, "file": {"name": "domain_classifier.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/domain_classifier.py"}, "function": "_classify_with_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 221, "message": "Primary model classified domain: creative (confidence: 0.092)", "module": "domain_classifier", "name": "processors.domain_classifier", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:58.940540+05:30", "timestamp": 1762499038.94054}}} +{"text": "Primary classifier low confidence, trying fallback model...\n", "record": {"elapsed": {"repr": "0:01:06.588259", "seconds": 66.588259}, "exception": null, "extra": {}, "file": {"name": "domain_classifier.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/domain_classifier.py"}, "function": "classify", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 118, "message": "Primary classifier low confidence, trying fallback model...", "module": "domain_classifier", "name": "processors.domain_classifier", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:33:58.940785+05:30", "timestamp": 1762499038.940785}}} +{"text": "Fallback model classified domain: medical (confidence: 0.063)\n", "record": {"elapsed": {"repr": "0:01:09.661691", "seconds": 69.661691}, "exception": null, "extra": {}, "file": {"name": "domain_classifier.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/domain_classifier.py"}, "function": "_classify_with_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 221, "message": "Fallback model classified domain: medical (confidence: 0.063)", "module": "domain_classifier", "name": "processors.domain_classifier", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:34:02.014217+05:30", "timestamp": 1762499042.014217}}} +{"text": "Detected domain: creative (confidence: 0.09)\n", "record": {"elapsed": {"repr": "0:01:09.661938", "seconds": 69.661938}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 318, "message": "Detected domain: creative (confidence: 0.09)", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:34:02.014464+05:30", "timestamp": 1762499042.014464}}} +{"text": "Step 4: Executing detection metrics calculations...\n", "record": {"elapsed": {"repr": "0:01:09.662050", "seconds": 69.66205}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 321, "message": "Step 4: Executing detection metrics calculations...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:34:02.014576+05:30", "timestamp": 1762499042.014576}}} +{"text": "Valid perturbations: 10/10\n", "record": {"elapsed": {"repr": "0:01:17.291486", "seconds": 77.291486}, "exception": null, "extra": {}, "file": {"name": "multi_perturbation_stability.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/multi_perturbation_stability.py"}, "function": "_calculate_stability_features", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 297, "message": "Valid perturbations: 10/10", "module": "multi_perturbation_stability", "name": "metrics.multi_perturbation_stability", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:34:09.644012+05:30", "timestamp": 1762499049.644012}}} +{"text": "Stability: 0.000, Curvature: 0.430\n", "record": {"elapsed": {"repr": "0:01:17.291849", "seconds": 77.291849}, "exception": null, "extra": {}, "file": {"name": "multi_perturbation_stability.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/multi_perturbation_stability.py"}, "function": "_calculate_stability_features", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 312, "message": "Stability: 0.000, Curvature: 0.430", "module": "multi_perturbation_stability", "name": "metrics.multi_perturbation_stability", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:34:09.644375+05:30", "timestamp": 1762499049.644375}}} +{"text": "Executed 6 metrics successfully\n", "record": {"elapsed": {"repr": "0:01:19.531023", "seconds": 79.531023}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 361, "message": "Executed 6 metrics successfully", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:34:11.883549+05:30", "timestamp": 1762499051.883549}}} +{"text": "Step 5: Aggregating results with ensemble...\n", "record": {"elapsed": {"repr": "0:01:19.531237", "seconds": 79.531237}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 364, "message": "Step 5: Aggregating results with ensemble...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:34:11.883763+05:30", "timestamp": 1762499051.883763}}} +{"text": "Analysis complete: Human-Written (AI probability: 35.9%, confidence: 0.68) in 16.33s\n", "record": {"elapsed": {"repr": "0:01:19.531445", "seconds": 79.531445}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 393, "message": "Analysis complete: Human-Written (AI probability: 35.9%, confidence: 0.68) in 16.33s", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:34:11.883971+05:30", "timestamp": 1762499051.883971}}} +{"text": "[analysis_1762499035555] Running attribution...\n", "record": {"elapsed": {"repr": "0:01:19.531777", "seconds": 79.531777}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "analyze_text", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 745, "message": "[analysis_1762499035555] Running attribution...", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:34:11.884303+05:30", "timestamp": 1762499051.884303}}} +{"text": "[analysis_1762499035555] Generating highlights...\n", "record": {"elapsed": {"repr": "0:01:19.533865", "seconds": 79.533865}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "analyze_text", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 763, "message": "[analysis_1762499035555] Generating highlights...", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:34:11.886391+05:30", "timestamp": 1762499051.886391}}} +{"text": "Detection completed: analysis_1762499035555 -> Human-Written\n", "record": {"elapsed": {"repr": "0:01:19.546896", "seconds": 79.546896}, "exception": null, "extra": {"log_type": "application", "extra": {"analysis_id": "analysis_1762499035555", "text_length": 6913, "verdict": "Human-Written", "confidence": 0.6797, "domain": "creative", "processing_time_seconds": 16.3444, "timestamp": "2025-11-07T12:34:11.899410", "enable_attribution": true, "enable_highlighting": true}}, "file": {"name": "logger.py", "path": "/Users/itobuz/projects/satyaki/text_auth/utils/logger.py"}, "function": "log_detection_event", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 419, "message": "Detection completed: analysis_1762499035555 -> Human-Written", "module": "logger", "name": "utils.logger", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:34:11.899422+05:30", "timestamp": 1762499051.899422}}} +{"text": "API Request: POST /api/analyze -> 200\n", "record": {"elapsed": {"repr": "0:01:19.548326", "seconds": 79.548326}, "exception": null, "extra": {"log_type": "application", "extra": {"http_method": "POST", "path": "/api/analyze", "status_code": 200, "duration_seconds": 16.3496, "user": null, "ip_address": "127.0.0.1", "timestamp": "2025-11-07T12:34:11.900839"}}, "file": {"name": "logger.py", "path": "/Users/itobuz/projects/satyaki/text_auth/utils/logger.py"}, "function": "log_api_request", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 374, "message": "API Request: POST /api/analyze -> 200", "module": "logger", "name": "utils.logger", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:34:11.900852+05:30", "timestamp": 1762499051.900852}}} +{"text": "127.0.0.1:57382 - \"POST /api/analyze HTTP/1.1\" 200\n", "record": {"elapsed": {"repr": "0:01:19.548515", "seconds": 79.548515}, "exception": null, "extra": {}, "file": {"name": "h11_impl.py", "path": "/Users/itobuz/anaconda3/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py"}, "function": "send", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 473, "message": "127.0.0.1:57382 - \"POST /api/analyze HTTP/1.1\" 200", "module": "h11_impl", "name": "uvicorn.protocols.http.h11_impl", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:34:11.901041+05:30", "timestamp": 1762499051.901041}}} +{"text": "[file_1762499114477] Extracting text from Satyaki Mitra - Employee Agreement - 2021.pdf\n", "record": {"elapsed": {"repr": "0:02:22.125560", "seconds": 142.12556}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "analyze_file", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 852, "message": "[file_1762499114477] Extracting text from Satyaki Mitra - Employee Agreement - 2021.pdf", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:14.478086+05:30", "timestamp": 1762499114.478086}}} +{"text": "[file_1762499114477] Extracted 24366 characters\n", "record": {"elapsed": {"repr": "0:02:24.527295", "seconds": 144.527295}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "analyze_file", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 864, "message": "[file_1762499114477] Extracted 24366 characters", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:16.879821+05:30", "timestamp": 1762499116.879821}}} +{"text": "Step 1: Preprocessing text...\n", "record": {"elapsed": {"repr": "0:02:24.527515", "seconds": 144.527515}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 259, "message": "Step 1: Preprocessing text...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:16.880041+05:30", "timestamp": 1762499116.880041}}} +{"text": "Step 2: Detecting language...\n", "record": {"elapsed": {"repr": "0:02:24.542007", "seconds": 144.542007}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 271, "message": "Step 2: Detecting language...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:16.894533+05:30", "timestamp": 1762499116.894533}}} +{"text": "Split text into 57 chunks for language detection\n", "record": {"elapsed": {"repr": "0:02:24.565961", "seconds": 144.565961}, "exception": null, "extra": {}, "file": {"name": "language_detector.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/language_detector.py"}, "function": "_detect_with_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 307, "message": "Split text into 57 chunks for language detection", "module": "language_detector", "name": "processors.language_detector", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:16.918487+05:30", "timestamp": 1762499116.918487}}} +{"text": "Detected language: en (confidence: 0.85, method: xlm-roberta-model)\n", "record": {"elapsed": {"repr": "0:02:27.626140", "seconds": 147.62614}, "exception": null, "extra": {}, "file": {"name": "language_detector.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/language_detector.py"}, "function": "detect", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 291, "message": "Detected language: en (confidence: 0.85, method: xlm-roberta-model)", "module": "language_detector", "name": "processors.language_detector", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:19.978666+05:30", "timestamp": 1762499119.978666}}} +{"text": "Step 3: Classifying domain...\n", "record": {"elapsed": {"repr": "0:02:27.626861", "seconds": 147.626861}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 290, "message": "Step 3: Classifying domain...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:19.979387+05:30", "timestamp": 1762499119.979387}}} +{"text": "Primary model classified domain: business (confidence: 0.130)\n", "record": {"elapsed": {"repr": "0:02:29.763943", "seconds": 149.763943}, "exception": null, "extra": {}, "file": {"name": "domain_classifier.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/domain_classifier.py"}, "function": "_classify_with_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 221, "message": "Primary model classified domain: business (confidence: 0.130)", "module": "domain_classifier", "name": "processors.domain_classifier", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:22.116469+05:30", "timestamp": 1762499122.116469}}} +{"text": "Primary classifier low confidence, trying fallback model...\n", "record": {"elapsed": {"repr": "0:02:29.764181", "seconds": 149.764181}, "exception": null, "extra": {}, "file": {"name": "domain_classifier.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/domain_classifier.py"}, "function": "classify", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 118, "message": "Primary classifier low confidence, trying fallback model...", "module": "domain_classifier", "name": "processors.domain_classifier", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:22.116707+05:30", "timestamp": 1762499122.116707}}} +{"text": "Fallback model classified domain: blog_personal (confidence: 0.063)\n", "record": {"elapsed": {"repr": "0:02:37.022235", "seconds": 157.022235}, "exception": null, "extra": {}, "file": {"name": "domain_classifier.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/domain_classifier.py"}, "function": "_classify_with_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 221, "message": "Fallback model classified domain: blog_personal (confidence: 0.063)", "module": "domain_classifier", "name": "processors.domain_classifier", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:29.374761+05:30", "timestamp": 1762499129.374761}}} +{"text": "Detected domain: business (confidence: 0.13)\n", "record": {"elapsed": {"repr": "0:02:37.022499", "seconds": 157.022499}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 318, "message": "Detected domain: business (confidence: 0.13)", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:29.375025+05:30", "timestamp": 1762499129.375025}}} +{"text": "Step 4: Executing detection metrics calculations...\n", "record": {"elapsed": {"repr": "0:02:37.022611", "seconds": 157.022611}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 321, "message": "Step 4: Executing detection metrics calculations...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:29.375137+05:30", "timestamp": 1762499129.375137}}} +{"text": "Valid perturbations: 10/10\n", "record": {"elapsed": {"repr": "0:02:54.729241", "seconds": 174.729241}, "exception": null, "extra": {}, "file": {"name": "multi_perturbation_stability.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/multi_perturbation_stability.py"}, "function": "_calculate_stability_features", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 297, "message": "Valid perturbations: 10/10", "module": "multi_perturbation_stability", "name": "metrics.multi_perturbation_stability", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:47.081767+05:30", "timestamp": 1762499147.081767}}} +{"text": "Stability: 0.000, Curvature: 0.021\n", "record": {"elapsed": {"repr": "0:02:54.729601", "seconds": 174.729601}, "exception": null, "extra": {}, "file": {"name": "multi_perturbation_stability.py", "path": "/Users/itobuz/projects/satyaki/text_auth/metrics/multi_perturbation_stability.py"}, "function": "_calculate_stability_features", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 312, "message": "Stability: 0.000, Curvature: 0.021", "module": "multi_perturbation_stability", "name": "metrics.multi_perturbation_stability", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:47.082127+05:30", "timestamp": 1762499147.082127}}} +{"text": "Executed 6 metrics successfully\n", "record": {"elapsed": {"repr": "0:02:55.535358", "seconds": 175.535358}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 361, "message": "Executed 6 metrics successfully", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:47.887884+05:30", "timestamp": 1762499147.887884}}} +{"text": "Step 5: Aggregating results with ensemble...\n", "record": {"elapsed": {"repr": "0:02:55.535566", "seconds": 175.535566}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 364, "message": "Step 5: Aggregating results with ensemble...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:47.888092+05:30", "timestamp": 1762499147.888092}}} +{"text": "Analysis complete: Human-Written (AI probability: 22.6%, confidence: 0.71) in 31.01s\n", "record": {"elapsed": {"repr": "0:02:55.535777", "seconds": 175.535777}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 393, "message": "Analysis complete: Human-Written (AI probability: 22.6%, confidence: 0.71) in 31.01s", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:47.888303+05:30", "timestamp": 1762499147.888303}}} +{"text": "API Request: POST /api/analyze/file -> 200\n", "record": {"elapsed": {"repr": "0:02:55.567032", "seconds": 175.567032}, "exception": null, "extra": {"log_type": "application", "extra": {"http_method": "POST", "path": "/api/analyze/file", "status_code": 200, "duration_seconds": 33.4473, "user": null, "ip_address": "127.0.0.1", "timestamp": "2025-11-07T12:35:47.919544"}}, "file": {"name": "logger.py", "path": "/Users/itobuz/projects/satyaki/text_auth/utils/logger.py"}, "function": "log_api_request", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 374, "message": "API Request: POST /api/analyze/file -> 200", "module": "logger", "name": "utils.logger", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:47.919558+05:30", "timestamp": 1762499147.919558}}} +{"text": "127.0.0.1:57416 - \"POST /api/analyze/file HTTP/1.1\" 200\n", "record": {"elapsed": {"repr": "0:02:55.567321", "seconds": 175.567321}, "exception": null, "extra": {}, "file": {"name": "h11_impl.py", "path": "/Users/itobuz/anaconda3/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py"}, "function": "send", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 473, "message": "127.0.0.1:57416 - \"POST /api/analyze/file HTTP/1.1\" 200", "module": "h11_impl", "name": "uvicorn.protocols.http.h11_impl", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:35:47.919847+05:30", "timestamp": 1762499147.919847}}} +{"text": "Generating report for file_1762499114477\n", "record": {"elapsed": {"repr": "0:04:31.315490", "seconds": 271.31549}, "exception": null, "extra": {}, "file": {"name": "text_auth_app.py", "path": "/Users/itobuz/projects/satyaki/text_auth/text_auth_app.py"}, "function": "generate_report", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 1089, "message": "Generating report for file_1762499114477", "module": "text_auth_app", "name": "text_auth_app", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:23.668016+05:30", "timestamp": 1762499243.668016}}} +{"text": "Step 1: Preprocessing text...\n", "record": {"elapsed": {"repr": "0:04:31.316792", "seconds": 271.316792}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 259, "message": "Step 1: Preprocessing text...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:23.669318+05:30", "timestamp": 1762499243.669318}}} +{"text": "Text validation failed: ['Text too short: 48 chars (minimum: 50)', 'Too few words: 7 (minimum: 10)']\n", "record": {"elapsed": {"repr": "0:04:31.317924", "seconds": 271.317924}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "⚠️", "name": "WARNING", "no": 30}, "line": 263, "message": "Text validation failed: ['Text too short: 48 chars (minimum: 50)', 'Too few words: 7 (minimum: 10)']", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:23.670450+05:30", "timestamp": 1762499243.67045}}} +{"text": "Step 2: Detecting language...\n", "record": {"elapsed": {"repr": "0:04:31.318294", "seconds": 271.318294}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 271, "message": "Step 2: Detecting language...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:23.670820+05:30", "timestamp": 1762499243.67082}}} +{"text": "Split text into 1 chunks for language detection\n", "record": {"elapsed": {"repr": "0:04:31.318950", "seconds": 271.31895}, "exception": null, "extra": {}, "file": {"name": "language_detector.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/language_detector.py"}, "function": "_detect_with_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 307, "message": "Split text into 1 chunks for language detection", "module": "language_detector", "name": "processors.language_detector", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:23.671476+05:30", "timestamp": 1762499243.671476}}} +{"text": "Detected language: en (confidence: 0.99, method: xlm-roberta-model)\n", "record": {"elapsed": {"repr": "0:04:31.370657", "seconds": 271.370657}, "exception": null, "extra": {}, "file": {"name": "language_detector.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/language_detector.py"}, "function": "detect", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 291, "message": "Detected language: en (confidence: 0.99, method: xlm-roberta-model)", "module": "language_detector", "name": "processors.language_detector", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:23.723183+05:30", "timestamp": 1762499243.723183}}} +{"text": "Step 3: Classifying domain...\n", "record": {"elapsed": {"repr": "0:04:31.370904", "seconds": 271.370904}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 290, "message": "Step 3: Classifying domain...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:23.723430+05:30", "timestamp": 1762499243.72343}}} +{"text": "Primary model classified domain: technical_doc (confidence: 0.164)\n", "record": {"elapsed": {"repr": "0:04:31.930049", "seconds": 271.930049}, "exception": null, "extra": {}, "file": {"name": "domain_classifier.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/domain_classifier.py"}, "function": "_classify_with_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 221, "message": "Primary model classified domain: technical_doc (confidence: 0.164)", "module": "domain_classifier", "name": "processors.domain_classifier", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.282575+05:30", "timestamp": 1762499244.282575}}} +{"text": "Primary classifier low confidence, trying fallback model...\n", "record": {"elapsed": {"repr": "0:04:31.930310", "seconds": 271.93031}, "exception": null, "extra": {}, "file": {"name": "domain_classifier.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/domain_classifier.py"}, "function": "classify", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 118, "message": "Primary classifier low confidence, trying fallback model...", "module": "domain_classifier", "name": "processors.domain_classifier", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.282836+05:30", "timestamp": 1762499244.282836}}} +{"text": "Fallback model classified domain: tutorial (confidence: 0.063)\n", "record": {"elapsed": {"repr": "0:04:32.430848", "seconds": 272.430848}, "exception": null, "extra": {}, "file": {"name": "domain_classifier.py", "path": "/Users/itobuz/projects/satyaki/text_auth/processors/domain_classifier.py"}, "function": "_classify_with_model", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 221, "message": "Fallback model classified domain: tutorial (confidence: 0.063)", "module": "domain_classifier", "name": "processors.domain_classifier", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.783374+05:30", "timestamp": 1762499244.783374}}} +{"text": "Detected domain: technical_doc (confidence: 0.16)\n", "record": {"elapsed": {"repr": "0:04:32.431097", "seconds": 272.431097}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 318, "message": "Detected domain: technical_doc (confidence: 0.16)", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.783623+05:30", "timestamp": 1762499244.783623}}} +{"text": "Step 4: Executing detection metrics calculations...\n", "record": {"elapsed": {"repr": "0:04:32.431208", "seconds": 272.431208}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 321, "message": "Step 4: Executing detection metrics calculations...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.783734+05:30", "timestamp": 1762499244.783734}}} +{"text": "Executed 6 metrics successfully\n", "record": {"elapsed": {"repr": "0:04:32.431500", "seconds": 272.4315}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 361, "message": "Executed 6 metrics successfully", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.784026+05:30", "timestamp": 1762499244.784026}}} +{"text": "Step 5: Aggregating results with ensemble...\n", "record": {"elapsed": {"repr": "0:04:32.431600", "seconds": 272.4316}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 364, "message": "Step 5: Aggregating results with ensemble...", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.784126+05:30", "timestamp": 1762499244.784126}}} +{"text": "Insufficient valid metrics: 1/3\n", "record": {"elapsed": {"repr": "0:04:32.431699", "seconds": 272.431699}, "exception": null, "extra": {}, "file": {"name": "ensemble.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/ensemble.py"}, "function": "predict", "level": {"icon": "⚠️", "name": "WARNING", "no": 30}, "line": 113, "message": "Insufficient valid metrics: 1/3", "module": "ensemble", "name": "detector.ensemble", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.784225+05:30", "timestamp": 1762499244.784225}}} +{"text": "Analysis complete: Uncertain (AI probability: 50.0%, confidence: 0.00) in 1.12s\n", "record": {"elapsed": {"repr": "0:04:32.431799", "seconds": 272.431799}, "exception": null, "extra": {}, "file": {"name": "orchestrator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/orchestrator.py"}, "function": "analyze", "level": {"icon": "✅", "name": "SUCCESS", "no": 25}, "line": 393, "message": "Analysis complete: Uncertain (AI probability: 50.0%, confidence: 0.00) in 1.12s", "module": "orchestrator", "name": "detector.orchestrator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.784325+05:30", "timestamp": 1762499244.784325}}} +{"text": "Insufficient valid metrics: 1/3\n", "record": {"elapsed": {"repr": "0:04:32.432133", "seconds": 272.432133}, "exception": null, "extra": {}, "file": {"name": "ensemble.py", "path": "/Users/itobuz/projects/satyaki/text_auth/detector/ensemble.py"}, "function": "predict", "level": {"icon": "⚠️", "name": "WARNING", "no": 30}, "line": 113, "message": "Insufficient valid metrics: 1/3", "module": "ensemble", "name": "detector.ensemble", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.784659+05:30", "timestamp": 1762499244.784659}}} +{"text": "PDF report saved: /Users/itobuz/projects/satyaki/text_auth/data/reports/file_1762499114477_20251107_123724.pdf\n", "record": {"elapsed": {"repr": "0:04:32.493111", "seconds": 272.493111}, "exception": null, "extra": {}, "file": {"name": "report_generator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/reporter/report_generator.py"}, "function": "_generate_pdf_report", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 600, "message": "PDF report saved: /Users/itobuz/projects/satyaki/text_auth/data/reports/file_1762499114477_20251107_123724.pdf", "module": "report_generator", "name": "reporter.report_generator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.845637+05:30", "timestamp": 1762499244.845637}}} +{"text": "Generated 1 report(s): ['pdf']\n", "record": {"elapsed": {"repr": "0:04:32.493346", "seconds": 272.493346}, "exception": null, "extra": {}, "file": {"name": "report_generator.py", "path": "/Users/itobuz/projects/satyaki/text_auth/reporter/report_generator.py"}, "function": "generate_complete_report", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 127, "message": "Generated 1 report(s): ['pdf']", "module": "report_generator", "name": "reporter.report_generator", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.845872+05:30", "timestamp": 1762499244.845872}}} +{"text": "API Request: POST /api/report/generate -> 200\n", "record": {"elapsed": {"repr": "0:04:32.493868", "seconds": 272.493868}, "exception": null, "extra": {"log_type": "application", "extra": {"http_method": "POST", "path": "/api/report/generate", "status_code": 200, "duration_seconds": 1.1825, "user": null, "ip_address": "127.0.0.1", "timestamp": "2025-11-07T12:37:24.846386"}}, "file": {"name": "logger.py", "path": "/Users/itobuz/projects/satyaki/text_auth/utils/logger.py"}, "function": "log_api_request", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 374, "message": "API Request: POST /api/report/generate -> 200", "module": "logger", "name": "utils.logger", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.846394+05:30", "timestamp": 1762499244.846394}}} +{"text": "127.0.0.1:57435 - \"POST /api/report/generate HTTP/1.1\" 200\n", "record": {"elapsed": {"repr": "0:04:32.494018", "seconds": 272.494018}, "exception": null, "extra": {}, "file": {"name": "h11_impl.py", "path": "/Users/itobuz/anaconda3/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py"}, "function": "send", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 473, "message": "127.0.0.1:57435 - \"POST /api/report/generate HTTP/1.1\" 200", "module": "h11_impl", "name": "uvicorn.protocols.http.h11_impl", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.846544+05:30", "timestamp": 1762499244.846544}}} +{"text": "API Request: GET /api/report/download/file_1762499114477_20251107_123724.pdf -> 200\n", "record": {"elapsed": {"repr": "0:04:32.498459", "seconds": 272.498459}, "exception": null, "extra": {"log_type": "application", "extra": {"http_method": "GET", "path": "/api/report/download/file_1762499114477_20251107_123724.pdf", "status_code": 200, "duration_seconds": 0.0007, "user": null, "ip_address": "127.0.0.1", "timestamp": "2025-11-07T12:37:24.850979"}}, "file": {"name": "logger.py", "path": "/Users/itobuz/projects/satyaki/text_auth/utils/logger.py"}, "function": "log_api_request", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 374, "message": "API Request: GET /api/report/download/file_1762499114477_20251107_123724.pdf -> 200", "module": "logger", "name": "utils.logger", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.850985+05:30", "timestamp": 1762499244.850985}}} +{"text": "127.0.0.1:57435 - \"GET /api/report/download/file_1762499114477_20251107_123724.pdf HTTP/1.1\" 200\n", "record": {"elapsed": {"repr": "0:04:32.498607", "seconds": 272.498607}, "exception": null, "extra": {}, "file": {"name": "h11_impl.py", "path": "/Users/itobuz/anaconda3/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py"}, "function": "send", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 473, "message": "127.0.0.1:57435 - \"GET /api/report/download/file_1762499114477_20251107_123724.pdf HTTP/1.1\" 200", "module": "h11_impl", "name": "uvicorn.protocols.http.h11_impl", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:37:24.851133+05:30", "timestamp": 1762499244.851133}}} +{"text": "Shutting down\n", "record": {"elapsed": {"repr": "0:05:33.197831", "seconds": 333.197831}, "exception": null, "extra": {}, "file": {"name": "server.py", "path": "/Users/itobuz/anaconda3/lib/python3.10/site-packages/uvicorn/server.py"}, "function": "shutdown", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 263, "message": "Shutting down", "module": "server", "name": "uvicorn.server", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:38:25.550357+05:30", "timestamp": 1762499305.550357}}} +{"text": "Waiting for application shutdown.\n", "record": {"elapsed": {"repr": "0:05:33.299637", "seconds": 333.299637}, "exception": null, "extra": {}, "file": {"name": "on.py", "path": "/Users/itobuz/anaconda3/lib/python3.10/site-packages/uvicorn/lifespan/on.py"}, "function": "shutdown", "level": {"icon": "ℹ️", "name": "INFO", "no": 20}, "line": 67, "message": "Waiting for application shutdown.", "module": "on", "name": "uvicorn.lifespan.on", "process": {"id": 38982, "name": "SpawnProcess-1"}, "thread": {"id": 8707055360, "name": "MainThread"}, "time": {"repr": "2025-11-07 12:38:25.652163+05:30", "timestamp": 1762499305.652163}}}