mcli-framework 7.8.4__py3-none-any.whl → 7.8.5__py3-none-any.whl

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.

Potentially problematic release.


This version of mcli-framework might be problematic. Click here for more details.

Files changed (73) hide show
  1. mcli/__init__.py +160 -0
  2. mcli/__main__.py +14 -0
  3. mcli/app/__init__.py +23 -0
  4. mcli/app/main.py +5 -21
  5. mcli/app/model/__init__.py +0 -0
  6. mcli/app/model_cmd.py +57 -472
  7. mcli/app/video/__init__.py +5 -0
  8. mcli/chat/__init__.py +34 -0
  9. mcli/lib/__init__.py +0 -0
  10. mcli/lib/api/__init__.py +0 -0
  11. mcli/lib/auth/__init__.py +1 -0
  12. mcli/lib/config/__init__.py +1 -0
  13. mcli/lib/erd/__init__.py +25 -0
  14. mcli/lib/files/__init__.py +0 -0
  15. mcli/lib/fs/__init__.py +1 -0
  16. mcli/lib/logger/__init__.py +3 -0
  17. mcli/lib/performance/__init__.py +17 -0
  18. mcli/lib/pickles/__init__.py +1 -0
  19. mcli/lib/shell/__init__.py +0 -0
  20. mcli/lib/toml/__init__.py +1 -0
  21. mcli/lib/watcher/__init__.py +0 -0
  22. mcli/ml/__init__.py +16 -0
  23. mcli/ml/api/__init__.py +30 -0
  24. mcli/ml/api/routers/__init__.py +27 -0
  25. mcli/ml/auth/__init__.py +41 -0
  26. mcli/ml/backtesting/__init__.py +33 -0
  27. mcli/ml/cli/__init__.py +5 -0
  28. mcli/ml/config/__init__.py +33 -0
  29. mcli/ml/configs/__init__.py +16 -0
  30. mcli/ml/dashboard/__init__.py +12 -0
  31. mcli/ml/dashboard/components/__init__.py +7 -0
  32. mcli/ml/dashboard/pages/__init__.py +6 -0
  33. mcli/ml/data_ingestion/__init__.py +29 -0
  34. mcli/ml/database/__init__.py +40 -0
  35. mcli/ml/experimentation/__init__.py +29 -0
  36. mcli/ml/features/__init__.py +39 -0
  37. mcli/ml/mlops/__init__.py +19 -0
  38. mcli/ml/models/__init__.py +90 -0
  39. mcli/ml/monitoring/__init__.py +25 -0
  40. mcli/ml/optimization/__init__.py +27 -0
  41. mcli/ml/predictions/__init__.py +5 -0
  42. mcli/ml/preprocessing/__init__.py +24 -0
  43. mcli/ml/scripts/__init__.py +1 -0
  44. mcli/ml/trading/__init__.py +63 -0
  45. mcli/ml/training/__init__.py +7 -0
  46. mcli/mygroup/__init__.py +3 -0
  47. mcli/public/__init__.py +1 -0
  48. mcli/public/commands/__init__.py +2 -0
  49. mcli/self/__init__.py +3 -0
  50. mcli/workflow/__init__.py +0 -0
  51. mcli/workflow/daemon/__init__.py +15 -0
  52. mcli/workflow/dashboard/__init__.py +5 -0
  53. mcli/workflow/docker/__init__.py +0 -0
  54. mcli/workflow/file/__init__.py +0 -0
  55. mcli/workflow/gcloud/__init__.py +1 -0
  56. mcli/workflow/git_commit/__init__.py +0 -0
  57. mcli/workflow/interview/__init__.py +0 -0
  58. mcli/workflow/politician_trading/__init__.py +4 -0
  59. mcli/workflow/registry/__init__.py +0 -0
  60. mcli/workflow/repo/__init__.py +0 -0
  61. mcli/workflow/scheduler/__init__.py +25 -0
  62. mcli/workflow/search/__init__.py +0 -0
  63. mcli/workflow/sync/__init__.py +5 -0
  64. mcli/workflow/videos/__init__.py +1 -0
  65. mcli/workflow/wakatime/__init__.py +80 -0
  66. {mcli_framework-7.8.4.dist-info → mcli_framework-7.8.5.dist-info}/METADATA +1 -1
  67. {mcli_framework-7.8.4.dist-info → mcli_framework-7.8.5.dist-info}/RECORD +71 -10
  68. mcli/app/chat_cmd.py +0 -42
  69. mcli/test/test_cmd.py +0 -20
  70. {mcli_framework-7.8.4.dist-info → mcli_framework-7.8.5.dist-info}/WHEEL +0 -0
  71. {mcli_framework-7.8.4.dist-info → mcli_framework-7.8.5.dist-info}/entry_points.txt +0 -0
  72. {mcli_framework-7.8.4.dist-info → mcli_framework-7.8.5.dist-info}/licenses/LICENSE +0 -0
  73. {mcli_framework-7.8.4.dist-info → mcli_framework-7.8.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,30 @@
1
+ """API routes and endpoints for ML system"""
2
+
3
+ from .app import create_app, get_application
4
+ from .routers import (
5
+ admin_router,
6
+ auth_router,
7
+ backtest_router,
8
+ data_router,
9
+ model_router,
10
+ monitoring_router,
11
+ portfolio_router,
12
+ prediction_router,
13
+ trade_router,
14
+ websocket_router,
15
+ )
16
+
17
+ __all__ = [
18
+ "auth_router",
19
+ "model_router",
20
+ "prediction_router",
21
+ "portfolio_router",
22
+ "data_router",
23
+ "trade_router",
24
+ "backtest_router",
25
+ "monitoring_router",
26
+ "admin_router",
27
+ "websocket_router",
28
+ "create_app",
29
+ "get_application",
30
+ ]
@@ -0,0 +1,27 @@
1
+ """API routers"""
2
+
3
+ from . import (
4
+ admin_router,
5
+ auth_router,
6
+ backtest_router,
7
+ data_router,
8
+ model_router,
9
+ monitoring_router,
10
+ portfolio_router,
11
+ prediction_router,
12
+ trade_router,
13
+ websocket_router,
14
+ )
15
+
16
+ __all__ = [
17
+ "auth_router",
18
+ "model_router",
19
+ "prediction_router",
20
+ "portfolio_router",
21
+ "data_router",
22
+ "trade_router",
23
+ "backtest_router",
24
+ "monitoring_router",
25
+ "admin_router",
26
+ "websocket_router",
27
+ ]
@@ -0,0 +1,41 @@
1
+ """Authentication and authorization system"""
2
+
3
+ from .auth_manager import (
4
+ AuthManager,
5
+ create_access_token,
6
+ get_current_active_user,
7
+ get_current_user,
8
+ hash_password,
9
+ require_role,
10
+ verify_access_token,
11
+ verify_password,
12
+ )
13
+ from .models import (
14
+ PasswordChange,
15
+ PasswordReset,
16
+ TokenResponse,
17
+ UserCreate,
18
+ UserLogin,
19
+ UserResponse,
20
+ )
21
+ from .permissions import Permission, check_permission, has_permission
22
+
23
+ __all__ = [
24
+ "AuthManager",
25
+ "create_access_token",
26
+ "verify_access_token",
27
+ "get_current_user",
28
+ "get_current_active_user",
29
+ "require_role",
30
+ "hash_password",
31
+ "verify_password",
32
+ "UserCreate",
33
+ "UserLogin",
34
+ "UserResponse",
35
+ "TokenResponse",
36
+ "PasswordReset",
37
+ "PasswordChange",
38
+ "Permission",
39
+ "check_permission",
40
+ "has_permission",
41
+ ]
@@ -0,0 +1,33 @@
1
+ """Backtesting framework for trading strategies"""
2
+
3
+ from .backtest_engine import (
4
+ BacktestConfig,
5
+ BacktestEngine,
6
+ BacktestResult,
7
+ PositionManager,
8
+ TradingStrategy,
9
+ )
10
+ from .performance_metrics import (
11
+ PerformanceAnalyzer,
12
+ PortfolioMetrics,
13
+ RiskMetrics,
14
+ plot_performance,
15
+ )
16
+ from .trading_simulator import MarketSimulator, Order, Portfolio, Position, TradingSimulator
17
+
18
+ __all__ = [
19
+ "BacktestEngine",
20
+ "BacktestConfig",
21
+ "BacktestResult",
22
+ "TradingStrategy",
23
+ "PositionManager",
24
+ "PerformanceAnalyzer",
25
+ "PortfolioMetrics",
26
+ "RiskMetrics",
27
+ "plot_performance",
28
+ "TradingSimulator",
29
+ "Order",
30
+ "Position",
31
+ "Portfolio",
32
+ "MarketSimulator",
33
+ ]
@@ -0,0 +1,5 @@
1
+ """CLI interface for ML system"""
2
+
3
+ from .main import app
4
+
5
+ __all__ = ["app"]
@@ -0,0 +1,33 @@
1
+ """Configuration management for ML system"""
2
+
3
+ from .settings import (
4
+ APISettings,
5
+ DatabaseSettings,
6
+ DataSettings,
7
+ MLflowSettings,
8
+ ModelSettings,
9
+ MonitoringSettings,
10
+ RedisSettings,
11
+ SecuritySettings,
12
+ Settings,
13
+ create_settings,
14
+ get_settings,
15
+ settings,
16
+ update_settings,
17
+ )
18
+
19
+ __all__ = [
20
+ "Settings",
21
+ "DatabaseSettings",
22
+ "RedisSettings",
23
+ "MLflowSettings",
24
+ "ModelSettings",
25
+ "DataSettings",
26
+ "APISettings",
27
+ "MonitoringSettings",
28
+ "SecuritySettings",
29
+ "settings",
30
+ "get_settings",
31
+ "update_settings",
32
+ "create_settings",
33
+ ]
@@ -0,0 +1,16 @@
1
+ """ML Configuration Module"""
2
+
3
+ from .dvc_config import DVCConfig, get_dvc_config, setup_dvc
4
+ from .mlflow_config import MLflowConfig, get_mlflow_config, setup_mlflow
5
+ from .mlops_manager import MLOpsManager, get_mlops_manager
6
+
7
+ __all__ = [
8
+ "MLflowConfig",
9
+ "get_mlflow_config",
10
+ "setup_mlflow",
11
+ "DVCConfig",
12
+ "get_dvc_config",
13
+ "setup_dvc",
14
+ "MLOpsManager",
15
+ "get_mlops_manager",
16
+ ]
@@ -0,0 +1,12 @@
1
+ """ML Dashboard for real-time monitoring"""
2
+
3
+ from .app import main
4
+ from .cli import app as cli_app
5
+
6
+
7
+ def main():
8
+ """Main entry point for dashboard CLI"""
9
+ cli_app()
10
+
11
+
12
+ __all__ = ["main", "cli_app"]
@@ -0,0 +1,7 @@
1
+ """Reusable Streamlit dashboard components"""
2
+
3
+ from .charts import *
4
+ from .metrics import *
5
+ from .tables import *
6
+
7
+ __all__ = ["charts", "tables", "metrics"]
@@ -0,0 +1,6 @@
1
+ """Dashboard page modules"""
2
+
3
+ from .cicd import show_cicd_dashboard
4
+ from .workflows import show_workflows_dashboard
5
+
6
+ __all__ = ["show_cicd_dashboard", "show_workflows_dashboard"]
@@ -0,0 +1,29 @@
1
+ """Real-time data ingestion pipeline"""
2
+
3
+ from .api_connectors import (
4
+ AlphaVantageConnector,
5
+ CongressionalDataAPI,
6
+ PolygonIOConnector,
7
+ QuiverQuantConnector,
8
+ StockMarketAPI,
9
+ YahooFinanceConnector,
10
+ )
11
+ from .data_pipeline import DataLoader, DataTransformer, DataValidator, IngestionPipeline
12
+ from .stream_processor import DataStream, KafkaConsumer, StreamProcessor, WebSocketConsumer
13
+
14
+ __all__ = [
15
+ "StreamProcessor",
16
+ "DataStream",
17
+ "KafkaConsumer",
18
+ "WebSocketConsumer",
19
+ "CongressionalDataAPI",
20
+ "StockMarketAPI",
21
+ "AlphaVantageConnector",
22
+ "YahooFinanceConnector",
23
+ "PolygonIOConnector",
24
+ "QuiverQuantConnector",
25
+ "IngestionPipeline",
26
+ "DataValidator",
27
+ "DataTransformer",
28
+ "DataLoader",
29
+ ]
@@ -0,0 +1,40 @@
1
+ """Database models and utilities"""
2
+
3
+ from .models import (
4
+ Alert,
5
+ BacktestResult,
6
+ Base,
7
+ DataVersion,
8
+ Experiment,
9
+ FeatureSet,
10
+ Model,
11
+ Politician,
12
+ Portfolio,
13
+ Prediction,
14
+ StockData,
15
+ Trade,
16
+ User,
17
+ )
18
+ from .session import AsyncSessionLocal, SessionLocal, async_engine, engine, get_async_db, get_db
19
+
20
+ __all__ = [
21
+ "Base",
22
+ "User",
23
+ "Trade",
24
+ "Politician",
25
+ "StockData",
26
+ "Prediction",
27
+ "Portfolio",
28
+ "Alert",
29
+ "BacktestResult",
30
+ "Experiment",
31
+ "Model",
32
+ "FeatureSet",
33
+ "DataVersion",
34
+ "get_db",
35
+ "get_async_db",
36
+ "SessionLocal",
37
+ "AsyncSessionLocal",
38
+ "engine",
39
+ "async_engine",
40
+ ]
@@ -0,0 +1,29 @@
1
+ """ML Experimentation and A/B Testing Framework"""
2
+
3
+ from .ab_testing import (
4
+ ABTestingFramework,
5
+ ExperimentConfig,
6
+ ExperimentResult,
7
+ ExperimentStatus,
8
+ Metric,
9
+ MetricsCollector,
10
+ StatisticalAnalyzer,
11
+ TrafficSplitter,
12
+ UserAssignment,
13
+ Variant,
14
+ VariantType,
15
+ )
16
+
17
+ __all__ = [
18
+ "ABTestingFramework",
19
+ "ExperimentConfig",
20
+ "Variant",
21
+ "VariantType",
22
+ "Metric",
23
+ "ExperimentStatus",
24
+ "ExperimentResult",
25
+ "UserAssignment",
26
+ "TrafficSplitter",
27
+ "MetricsCollector",
28
+ "StatisticalAnalyzer",
29
+ ]
@@ -0,0 +1,39 @@
1
+ """Feature Engineering Module for Stock Recommendation Models"""
2
+
3
+ from .ensemble_features import (
4
+ DynamicFeatureSelector,
5
+ EnsembleFeatureBuilder,
6
+ FeatureInteractionEngine,
7
+ )
8
+ from .political_features import (
9
+ CongressionalTrackingFeatures,
10
+ PolicyImpactFeatures,
11
+ PoliticalInfluenceFeatures,
12
+ )
13
+ from .recommendation_engine import (
14
+ RecommendationConfig,
15
+ RecommendationResult,
16
+ StockRecommendationEngine,
17
+ )
18
+ from .stock_features import (
19
+ CrossAssetFeatures,
20
+ MarketRegimeFeatures,
21
+ StockRecommendationFeatures,
22
+ TechnicalIndicatorFeatures,
23
+ )
24
+
25
+ __all__ = [
26
+ "StockRecommendationFeatures",
27
+ "TechnicalIndicatorFeatures",
28
+ "MarketRegimeFeatures",
29
+ "CrossAssetFeatures",
30
+ "PoliticalInfluenceFeatures",
31
+ "CongressionalTrackingFeatures",
32
+ "PolicyImpactFeatures",
33
+ "EnsembleFeatureBuilder",
34
+ "FeatureInteractionEngine",
35
+ "DynamicFeatureSelector",
36
+ "StockRecommendationEngine",
37
+ "RecommendationConfig",
38
+ "RecommendationResult",
39
+ ]
@@ -0,0 +1,19 @@
1
+ """MLOps components for ML pipeline management"""
2
+
3
+ from .experiment_tracker import ExperimentRun, ExperimentTracker, MLflowConfig, ModelRegistry
4
+ from .model_serving import ModelEndpoint, ModelServer, PredictionService
5
+ from .pipeline_orchestrator import MLPipeline, PipelineConfig, PipelineExecutor, PipelineStep
6
+
7
+ __all__ = [
8
+ "ExperimentTracker",
9
+ "ModelRegistry",
10
+ "MLflowConfig",
11
+ "ExperimentRun",
12
+ "ModelServer",
13
+ "PredictionService",
14
+ "ModelEndpoint",
15
+ "MLPipeline",
16
+ "PipelineStep",
17
+ "PipelineConfig",
18
+ "PipelineExecutor",
19
+ ]
@@ -0,0 +1,90 @@
1
+ """ML Models for Stock Recommendation System"""
2
+
3
+ from pathlib import Path
4
+ from typing import Any, Dict, Optional
5
+
6
+ import torch
7
+
8
+ from .base_models import BaseStockModel, ModelMetrics, ValidationResult
9
+ from .ensemble_models import (
10
+ AttentionStockPredictor,
11
+ CNNFeatureExtractor,
12
+ DeepEnsembleModel,
13
+ EnsembleConfig,
14
+ EnsembleTrainer,
15
+ LSTMStockPredictor,
16
+ ModelConfig,
17
+ TransformerStockModel,
18
+ )
19
+ from .recommendation_models import (
20
+ RecommendationConfig,
21
+ RecommendationTrainer,
22
+ StockRecommendationModel,
23
+ )
24
+
25
+ # Model registry
26
+ _loaded_models: Dict[str, Any] = {}
27
+
28
+
29
+ async def load_production_models():
30
+ """Load production models into memory"""
31
+ from mcli.ml.config import settings
32
+ from mcli.ml.logging import get_logger
33
+
34
+ logger = get_logger(__name__)
35
+ model_dir = settings.model.model_dir
36
+
37
+ if not model_dir.exists():
38
+ model_dir.mkdir(parents=True, exist_ok=True)
39
+ return
40
+
41
+ for model_path in model_dir.glob("*.pt"):
42
+ try:
43
+ model_id = model_path.stem
44
+ model = torch.load(model_path, map_location=settings.model.device)
45
+ _loaded_models[model_id] = model
46
+ logger.info(f"Loaded model: {model_id}")
47
+ except Exception as e:
48
+ logger.error(f"Failed to load model {model_path}: {e}")
49
+
50
+
51
+ async def get_model_by_id(model_id: str):
52
+ """Get loaded model by ID"""
53
+ from mcli.ml.config import settings
54
+
55
+ if model_id not in _loaded_models:
56
+ # Try to load from disk
57
+ model_path = settings.model.model_dir / f"{model_id}.pt"
58
+ if model_path.exists():
59
+ _loaded_models[model_id] = torch.load(model_path, map_location=settings.model.device)
60
+
61
+ return _loaded_models.get(model_id)
62
+
63
+
64
+ def initialize_models():
65
+ """Initialize models on startup"""
66
+ from mcli.ml.logging import get_logger
67
+
68
+ logger = get_logger(__name__)
69
+ logger.info("Initializing ML models...")
70
+
71
+
72
+ __all__ = [
73
+ "DeepEnsembleModel",
74
+ "AttentionStockPredictor",
75
+ "TransformerStockModel",
76
+ "LSTMStockPredictor",
77
+ "CNNFeatureExtractor",
78
+ "EnsembleTrainer",
79
+ "ModelConfig",
80
+ "EnsembleConfig",
81
+ "BaseStockModel",
82
+ "ModelMetrics",
83
+ "ValidationResult",
84
+ "StockRecommendationModel",
85
+ "RecommendationTrainer",
86
+ "RecommendationConfig",
87
+ "load_production_models",
88
+ "get_model_by_id",
89
+ "initialize_models",
90
+ ]
@@ -0,0 +1,25 @@
1
+ """ML Model Monitoring and Drift Detection"""
2
+
3
+ from .drift_detection import (
4
+ AlertSeverity,
5
+ ConceptDriftDetector,
6
+ DataProfile,
7
+ DriftAlert,
8
+ DriftType,
9
+ ModelMetrics,
10
+ ModelMonitor,
11
+ OutlierDetector,
12
+ StatisticalDriftDetector,
13
+ )
14
+
15
+ __all__ = [
16
+ "ModelMonitor",
17
+ "StatisticalDriftDetector",
18
+ "ConceptDriftDetector",
19
+ "OutlierDetector",
20
+ "DriftAlert",
21
+ "DriftType",
22
+ "AlertSeverity",
23
+ "ModelMetrics",
24
+ "DataProfile",
25
+ ]
@@ -0,0 +1,27 @@
1
+ """Advanced Portfolio Optimization"""
2
+
3
+ from .portfolio_optimizer import (
4
+ AdvancedPortfolioOptimizer,
5
+ BaseOptimizer,
6
+ BlackLittermanOptimizer,
7
+ CVaROptimizer,
8
+ KellyCriterionOptimizer,
9
+ MeanVarianceOptimizer,
10
+ OptimizationConstraints,
11
+ OptimizationObjective,
12
+ PortfolioAllocation,
13
+ RiskParityOptimizer,
14
+ )
15
+
16
+ __all__ = [
17
+ "AdvancedPortfolioOptimizer",
18
+ "OptimizationObjective",
19
+ "OptimizationConstraints",
20
+ "PortfolioAllocation",
21
+ "MeanVarianceOptimizer",
22
+ "RiskParityOptimizer",
23
+ "BlackLittermanOptimizer",
24
+ "CVaROptimizer",
25
+ "KellyCriterionOptimizer",
26
+ "BaseOptimizer",
27
+ ]
@@ -0,0 +1,5 @@
1
+ """ML Predictions Module"""
2
+
3
+ from .prediction_engine import PoliticianTradingPredictor
4
+
5
+ __all__ = ["PoliticianTradingPredictor"]
@@ -0,0 +1,24 @@
1
+ """ML Data Preprocessing Module"""
2
+
3
+ from .data_cleaners import MissingValueHandler, OutlierDetector, TradingDataCleaner
4
+ from .feature_extractors import (
5
+ MarketFeatureExtractor,
6
+ PoliticianFeatureExtractor,
7
+ SentimentFeatureExtractor,
8
+ TemporalFeatureExtractor,
9
+ )
10
+ from .ml_pipeline import MLDataPipeline, MLDataPipelineConfig
11
+ from .politician_trading_preprocessor import PoliticianTradingPreprocessor
12
+
13
+ __all__ = [
14
+ "PoliticianTradingPreprocessor",
15
+ "PoliticianFeatureExtractor",
16
+ "MarketFeatureExtractor",
17
+ "TemporalFeatureExtractor",
18
+ "SentimentFeatureExtractor",
19
+ "TradingDataCleaner",
20
+ "OutlierDetector",
21
+ "MissingValueHandler",
22
+ "MLDataPipeline",
23
+ "MLDataPipelineConfig",
24
+ ]
@@ -0,0 +1 @@
1
+ """ML scripts module."""
@@ -0,0 +1,63 @@
1
+ """Trading module for portfolio management and trade execution"""
2
+
3
+ from mcli.ml.trading.alpaca_client import (
4
+ AlpacaTradingClient,
5
+ create_trading_client,
6
+ get_alpaca_config_from_env,
7
+ )
8
+ from mcli.ml.trading.models import ( # Enums; Database models; Pydantic models
9
+ OrderCreate,
10
+ OrderResponse,
11
+ OrderSide,
12
+ OrderStatus,
13
+ OrderType,
14
+ Portfolio,
15
+ PortfolioCreate,
16
+ PortfolioPerformanceSnapshot,
17
+ PortfolioResponse,
18
+ PortfolioType,
19
+ Position,
20
+ PositionResponse,
21
+ PositionSide,
22
+ RiskLevel,
23
+ TradingAccount,
24
+ TradingAccountCreate,
25
+ TradingOrder,
26
+ TradingSignal,
27
+ TradingSignalResponse,
28
+ )
29
+ from mcli.ml.trading.paper_trading import PaperTradingEngine
30
+ from mcli.ml.trading.risk_management import RiskManager
31
+ from mcli.ml.trading.trading_service import TradingService
32
+
33
+ __all__ = [
34
+ # Enums
35
+ "OrderStatus",
36
+ "OrderType",
37
+ "OrderSide",
38
+ "PositionSide",
39
+ "PortfolioType",
40
+ "RiskLevel",
41
+ # Database models
42
+ "TradingAccount",
43
+ "Portfolio",
44
+ "Position",
45
+ "TradingOrder",
46
+ "PortfolioPerformanceSnapshot",
47
+ "TradingSignal",
48
+ # Pydantic models
49
+ "TradingAccountCreate",
50
+ "PortfolioCreate",
51
+ "OrderCreate",
52
+ "PositionResponse",
53
+ "OrderResponse",
54
+ "PortfolioResponse",
55
+ "TradingSignalResponse",
56
+ # Services
57
+ "TradingService",
58
+ "AlpacaTradingClient",
59
+ "create_trading_client",
60
+ "get_alpaca_config_from_env",
61
+ "RiskManager",
62
+ "PaperTradingEngine",
63
+ ]
@@ -0,0 +1,7 @@
1
+ """ML model training module"""
2
+
3
+ from .train_model import PoliticianTradingNet, fetch_training_data
4
+ from .train_model import main as train_model
5
+ from .train_model import prepare_dataset
6
+
7
+ __all__ = ["PoliticianTradingNet", "train_model", "fetch_training_data", "prepare_dataset"]
@@ -0,0 +1,3 @@
1
+ """
2
+ Mygroup commands for mcli.
3
+ """
@@ -0,0 +1 @@
1
+ # logger.info("I am in mcli.public.__init__.py")
@@ -0,0 +1,2 @@
1
+ # User-generated commands directory
2
+ # Commands created through the MCLI chat interface are stored here
mcli/self/__init__.py ADDED
@@ -0,0 +1,3 @@
1
+ """
2
+ Self-management module for mcli.
3
+ """
File without changes
@@ -0,0 +1,15 @@
1
+ """
2
+ Daemon service for command management and execution.
3
+
4
+ This module provides a background daemon service that can store, manage, and execute
5
+ commands written in various programming languages (Python, Node.js, Lua, Shell).
6
+ Commands are stored in a SQLite database with embeddings for similarity search and
7
+ hierarchical grouping.
8
+
9
+ The daemon CLI commands are now loaded from portable JSON files in ~/.mcli/commands/
10
+ """
11
+
12
+ from .daemon import Command, CommandExecutor, DaemonService
13
+
14
+ # Export main components
15
+ __all__ = ["Command", "CommandExecutor", "DaemonService"]
@@ -0,0 +1,5 @@
1
+ """Dashboard workflow module."""
2
+
3
+ from .dashboard_cmd import dashboard
4
+
5
+ __all__ = ["dashboard"]
File without changes