docoreai 2.3.3__tar.gz → 2.3.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. {docoreai-2.3.3 → docoreai-2.3.4}/PKG-INFO +1 -1
  2. docoreai-2.3.4/docore_ai/ui/launcher.py +50 -0
  3. {docoreai-2.3.3 → docoreai-2.3.4}/setup.py +1 -1
  4. docoreai-2.3.3/docore_ai/ui/launcher.py +0 -29
  5. {docoreai-2.3.3 → docoreai-2.3.4}/CONTRIBUTING-TESTERS.md +0 -0
  6. {docoreai-2.3.3 → docoreai-2.3.4}/DEPLOYMENT.md +0 -0
  7. {docoreai-2.3.3 → docoreai-2.3.4}/LICENSE.md +0 -0
  8. {docoreai-2.3.3 → docoreai-2.3.4}/MANIFEST.in +0 -0
  9. {docoreai-2.3.3 → docoreai-2.3.4}/README.md +0 -0
  10. {docoreai-2.3.3 → docoreai-2.3.4}/api/__init__.py +0 -0
  11. {docoreai-2.3.3 → docoreai-2.3.4}/api/main.py +0 -0
  12. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/__init__.py +0 -0
  13. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/auto_patch.py +0 -0
  14. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/cli.py +0 -0
  15. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/config/__init__.py +0 -0
  16. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/config/db.py +0 -0
  17. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/config/init_db_async.py +0 -0
  18. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/fusion_log_server.py +0 -0
  19. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/init_engine.py +0 -0
  20. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/__init__.py +0 -0
  21. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/adapters/__init__.py +0 -0
  22. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/adapters/base.py +0 -0
  23. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/adapters/langchain.py +0 -0
  24. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/adapters/openai_agents.py +0 -0
  25. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/context_manager.py +0 -0
  26. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/framework_registry.py +0 -0
  27. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/resolver.py +0 -0
  28. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/model.py +0 -0
  29. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/patch_manager.py +0 -0
  30. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/patcher.py +0 -0
  31. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/prompt_updates/__init__.py +0 -0
  32. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/prompt_updates/check_prompt_update.py +0 -0
  33. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/prompt_updates/prompt_loader.py +0 -0
  34. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/providers/__init__.py +0 -0
  35. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/providers/bedrock_adapter.py +0 -0
  36. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/providers/ollama.py +0 -0
  37. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/proxy.py +0 -0
  38. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/pth_installer.py +0 -0
  39. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/pth_installer_new.py +0 -0
  40. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/runtime/__init__.py +0 -0
  41. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/runtime/settings.py +0 -0
  42. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/__init__.py +0 -0
  43. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/comparator/base.py +0 -0
  44. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/comparator/llama_cpp_comparator.py +0 -0
  45. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/core/alert_emitter.py +0 -0
  46. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/core/confidence_engine.py +0 -0
  47. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/core/derived_gate.py +0 -0
  48. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/core/governance_dispatcher.py +0 -0
  49. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/core/policy.py +0 -0
  50. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/detectors/__init__.py +0 -0
  51. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/detectors/content_policy.py +0 -0
  52. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/detectors/pii_detector.py +0 -0
  53. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/export/exporter_map.py +0 -0
  54. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/export/sdk_hooks.py +0 -0
  55. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/lineage/fingerprint.py +0 -0
  56. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/lineage/lifecycle.py +0 -0
  57. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/lineage/tracker.py +0 -0
  58. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/semantic/__init__.py +0 -0
  59. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/semantic/matcher.py +0 -0
  60. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/semantic/sketch.py +0 -0
  61. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/semantic/thresholds.py +0 -0
  62. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/state/cache.py +0 -0
  63. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/state/context.py +0 -0
  64. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/state/ttl.py +0 -0
  65. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/structure/detector.py +0 -0
  66. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/structure/heuristics.py +0 -0
  67. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/types.py +0 -0
  68. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/__init__.py +0 -0
  69. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/config.py +0 -0
  70. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/dispatcher.py +0 -0
  71. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/safe_sender.py +0 -0
  72. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/safe_sender1.py +0 -0
  73. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/telemetry_local.py +0 -0
  74. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/telemetry_wp.py +0 -0
  75. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/token_auth.py +0 -0
  76. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/token_utils.py +0 -0
  77. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/tracker.py +0 -0
  78. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/usage_limits.py +0 -0
  79. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/test_server.py +0 -0
  80. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/__init__.py +0 -0
  81. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/ab_test_controller.py +0 -0
  82. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/agentic_predictor.py +0 -0
  83. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/auto_retrain_manager.py +0 -0
  84. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/auto_trainer.py +0 -0
  85. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/budget_manager.py +0 -0
  86. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/budget_recommendation.py +0 -0
  87. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/cli_integration.py +0 -0
  88. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/config.py +0 -0
  89. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/daily_pacing_engine.py +0 -0
  90. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/data_extraction.py +0 -0
  91. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/drift_detector.py +0 -0
  92. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/drift_monitor_service.py +0 -0
  93. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/evaluation.py +0 -0
  94. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/feature_engineering.py +0 -0
  95. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/hourly_patterns.py +0 -0
  96. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/local_budget_checker.py +0 -0
  97. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/monitor.py +0 -0
  98. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/performance_tracker.py +0 -0
  99. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/phase2_config.py +0 -0
  100. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/predict.py +0 -0
  101. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/runtime_predictor.py +0 -0
  102. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/session_tracker.py +0 -0
  103. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/soft_limit_injector.py +0 -0
  104. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/spend_forecaster.py +0 -0
  105. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tests/test_fetch_budget_api.py +0 -0
  106. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tests/test_phase1.py +0 -0
  107. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tests/test_phase2.1_complete.py +0 -0
  108. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tests/test_phase2.2_live.py +0 -0
  109. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tests/test_phase2_mock.py +0 -0
  110. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tests/test_quick.py +0 -0
  111. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/token_governor.py +0 -0
  112. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tokenization_learner.py +0 -0
  113. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/train_model.py +0 -0
  114. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/__init__.py +0 -0
  115. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/charts/__init__.py +0 -0
  116. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/charts/cost_chart.py +0 -0
  117. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/charts/daily_spend_chart.py +0 -0
  118. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/charts/usage_requests_chart.py +0 -0
  119. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/deployment_map_tab.py +0 -0
  120. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/governance_event_log.py +0 -0
  121. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/live_tab.py +0 -0
  122. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/money_burn_tab.py +0 -0
  123. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/phase2_config_tab.py +0 -0
  124. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/settings_header.py +0 -0
  125. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/text_input.py +0 -0
  126. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/toggle.py +0 -0
  127. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/usage_volume_tab.py +0 -0
  128. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/main_window.py +0 -0
  129. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/EXTINCT-model_registry.py +0 -0
  130. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/__init__.py +0 -0
  131. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/budget_sync.py +0 -0
  132. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/csv_logger.py +0 -0
  133. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/helpers.py +0 -0
  134. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/logger.py +0 -0
  135. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/metric_aggregator.py +0 -0
  136. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/model_patch_targets_sync.py +0 -0
  137. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/model_registry_sync.py +0 -0
  138. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/run_streamlit_with_shutdown.py +0 -0
  139. {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/show_app.py +0 -0
  140. {docoreai-2.3.3 → docoreai-2.3.4}/docoreai.egg-info/SOURCES.txt +0 -0
  141. {docoreai-2.3.3 → docoreai-2.3.4}/requirements.txt +0 -0
  142. {docoreai-2.3.3 → docoreai-2.3.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docoreai
3
- Version: 2.3.3
3
+ Version: 2.3.4
4
4
  Summary: Self-tuning AI budgets, built privacy-first.
5
5
  Home-page: https://docoreai.com
6
6
  Author: Saji John Miranda
@@ -0,0 +1,50 @@
1
+ from pathlib import Path
2
+ from PySide6.QtWidgets import QApplication
3
+ import sys
4
+ from docore_ai.config.db import init_db
5
+
6
+
7
+ def load_styles(app):
8
+ qss_path = Path(__file__).parent / "styles" / "theme.qss"
9
+ if qss_path.exists():
10
+ app.setStyleSheet(qss_path.read_text())
11
+
12
+ def launch_ui():
13
+ init_db() # Initialize DB
14
+
15
+ app = QApplication.instance()
16
+ if not app:
17
+ app = QApplication(sys.argv)
18
+
19
+ load_styles(app)
20
+
21
+ from docore_ai.ui.main_window import MainWindow
22
+ window = MainWindow()
23
+ window.show()
24
+
25
+ app.exec()
26
+
27
+ def init_headless():
28
+ from docore_ai.config.db import save_telemetry_settings, get_telemetry_settings, load_telemetry_config
29
+ import os
30
+
31
+ """For container/production use — DB init only, no GUI"""
32
+ init_db()
33
+ env_path = os.environ.get("DOCOREAI_ENV_PATH", "/app/data")
34
+
35
+ # Get current values so we don't overwrite other settings with blanks
36
+ data = get_telemetry_settings() or {}
37
+
38
+ save_telemetry_settings(
39
+ enabled=True,
40
+ token=os.environ.get("DOCOREAI_TOKEN", ""),
41
+ remote=os.environ.get("DOCOREAI_REMOTE", "false").lower() == "true",
42
+ local_csv=os.environ.get("DOCOREAI_LOCAL_CSV", "true").lower() == "true",
43
+ api_url=os.environ.get("DOCOREAI_API_URL", "https://docoreai.com"),
44
+ log_only=os.environ.get("DOCOREAI_LOG_ONLY", "true").lower() == "true",
45
+ log_host=os.environ.get("DOCOREAI_LOG_HOST", "127.0.0.1"),
46
+ log_port=int(os.environ.get("DOCOREAI_LOG_PORT", "5678")),
47
+ budget_per_day=data.get("budget_per_day"),
48
+ env_path=os.environ.get("DOCOREAI_ENV_PATH", "/app/data")
49
+ )
50
+ load_telemetry_config() # reload into memory
@@ -82,7 +82,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
82
82
 
83
83
  setup(
84
84
  name="docoreai",
85
- version="2.3.3",
85
+ version="2.3.4",
86
86
  author="Saji John Miranda",
87
87
  author_email="saji.john@docoreai.com",
88
88
  license="CC BY-NC-ND 4.0",
@@ -1,29 +0,0 @@
1
- from pathlib import Path
2
- from PySide6.QtWidgets import QApplication
3
- import sys
4
- from docore_ai.config.db import init_db
5
-
6
-
7
- def load_styles(app):
8
- qss_path = Path(__file__).parent / "styles" / "theme.qss"
9
- if qss_path.exists():
10
- app.setStyleSheet(qss_path.read_text())
11
-
12
- def launch_ui():
13
- init_db() # Initialize DB
14
-
15
- app = QApplication.instance()
16
- if not app:
17
- app = QApplication(sys.argv)
18
-
19
- load_styles(app)
20
-
21
- from docore_ai.ui.main_window import MainWindow
22
- window = MainWindow()
23
- window.show()
24
-
25
- app.exec()
26
-
27
- def init_headless():
28
- """For container/production use — DB init only, no GUI"""
29
- init_db()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes