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.
- {docoreai-2.3.3 → docoreai-2.3.4}/PKG-INFO +1 -1
- docoreai-2.3.4/docore_ai/ui/launcher.py +50 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/setup.py +1 -1
- docoreai-2.3.3/docore_ai/ui/launcher.py +0 -29
- {docoreai-2.3.3 → docoreai-2.3.4}/CONTRIBUTING-TESTERS.md +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/DEPLOYMENT.md +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/LICENSE.md +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/MANIFEST.in +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/README.md +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/api/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/api/main.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/auto_patch.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/cli.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/config/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/config/db.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/config/init_db_async.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/fusion_log_server.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/init_engine.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/adapters/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/adapters/base.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/adapters/langchain.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/adapters/openai_agents.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/context_manager.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/framework_registry.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/instrumentation/resolver.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/model.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/patch_manager.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/patcher.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/prompt_updates/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/prompt_updates/check_prompt_update.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/prompt_updates/prompt_loader.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/providers/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/providers/bedrock_adapter.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/providers/ollama.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/proxy.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/pth_installer.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/pth_installer_new.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/runtime/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/runtime/settings.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/comparator/base.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/comparator/llama_cpp_comparator.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/core/alert_emitter.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/core/confidence_engine.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/core/derived_gate.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/core/governance_dispatcher.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/core/policy.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/detectors/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/detectors/content_policy.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/detectors/pii_detector.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/export/exporter_map.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/export/sdk_hooks.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/lineage/fingerprint.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/lineage/lifecycle.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/lineage/tracker.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/semantic/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/semantic/matcher.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/semantic/sketch.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/semantic/thresholds.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/state/cache.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/state/context.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/state/ttl.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/structure/detector.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/structure/heuristics.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/security/types.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/config.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/dispatcher.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/safe_sender.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/safe_sender1.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/telemetry_local.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/telemetry_wp.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/token_auth.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/token_utils.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/tracker.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/telemetry/usage_limits.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/test_server.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/ab_test_controller.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/agentic_predictor.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/auto_retrain_manager.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/auto_trainer.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/budget_manager.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/budget_recommendation.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/cli_integration.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/config.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/daily_pacing_engine.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/data_extraction.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/drift_detector.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/drift_monitor_service.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/evaluation.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/feature_engineering.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/hourly_patterns.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/local_budget_checker.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/monitor.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/performance_tracker.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/phase2_config.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/predict.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/runtime_predictor.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/session_tracker.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/soft_limit_injector.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/spend_forecaster.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tests/test_fetch_budget_api.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tests/test_phase1.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tests/test_phase2.1_complete.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tests/test_phase2.2_live.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tests/test_phase2_mock.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tests/test_quick.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/token_governor.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/tokenization_learner.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/train/train_model.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/charts/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/charts/cost_chart.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/charts/daily_spend_chart.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/charts/usage_requests_chart.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/deployment_map_tab.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/governance_event_log.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/live_tab.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/money_burn_tab.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/phase2_config_tab.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/settings_header.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/text_input.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/toggle.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/components/usage_volume_tab.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/ui/main_window.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/EXTINCT-model_registry.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/__init__.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/budget_sync.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/csv_logger.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/helpers.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/logger.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/metric_aggregator.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/model_patch_targets_sync.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/model_registry_sync.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/run_streamlit_with_shutdown.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docore_ai/utils/show_app.py +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/docoreai.egg-info/SOURCES.txt +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/requirements.txt +0 -0
- {docoreai-2.3.3 → docoreai-2.3.4}/setup.cfg +0 -0
|
@@ -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
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|