iints-sdk-python35 1.5.30__tar.gz → 1.5.31__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.
- iints_sdk_python35-1.5.31/CITATION.cff +19 -0
- iints_sdk_python35-1.5.31/MANIFEST.in +3 -0
- {iints_sdk_python35-1.5.30/src/iints_sdk_python35.egg-info → iints_sdk_python35-1.5.31}/PKG-INFO +31 -3
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/README.md +2 -2
- iints_sdk_python35-1.5.31/docs/ACADEMIC_RESEARCH_WORKBENCH.md +99 -0
- iints_sdk_python35-1.5.31/docs/AI_ASSISTANT.md +455 -0
- iints_sdk_python35-1.5.31/docs/AI_RED_TEAM_AUDITOR.md +216 -0
- iints_sdk_python35-1.5.31/docs/ALL_SCIENTIFIC_THEORIES.md +223 -0
- iints_sdk_python35-1.5.31/docs/API_REFERENCE.md +4972 -0
- iints_sdk_python35-1.5.31/docs/APP_INSTALL.md +129 -0
- iints_sdk_python35-1.5.31/docs/ARCHITECTURE_HARDENING.md +86 -0
- iints_sdk_python35-1.5.31/docs/ARCHITECTURE_OVERVIEW.md +91 -0
- iints_sdk_python35-1.5.31/docs/ARDUINO_UNO_Q.md +540 -0
- iints_sdk_python35-1.5.31/docs/BOOTH_DEMO.md +282 -0
- iints_sdk_python35-1.5.31/docs/CLI_CHEATSHEET.md +493 -0
- iints_sdk_python35-1.5.31/docs/COMMAND_REFERENCE.md +662 -0
- iints_sdk_python35-1.5.31/docs/COMPREHENSIVE_GUIDE.md +756 -0
- iints_sdk_python35-1.5.31/docs/CONTRIBUTING_SAFELY.md +109 -0
- iints_sdk_python35-1.5.31/docs/CORE_CONCEPTS.md +107 -0
- iints_sdk_python35-1.5.31/docs/CROSS_SCALE_REFERENCE_LABS.md +254 -0
- iints_sdk_python35-1.5.31/docs/DESKTOP_APP.md +179 -0
- iints_sdk_python35-1.5.31/docs/DESKTOP_SIGNING.md +50 -0
- iints_sdk_python35-1.5.31/docs/DEVELOPER_PORTAL.md +115 -0
- iints_sdk_python35-1.5.31/docs/DIABETES_RESEARCH_DATASETS.md +113 -0
- iints_sdk_python35-1.5.31/docs/DIGITAL_PATIENT_PI.md +457 -0
- iints_sdk_python35-1.5.31/docs/DIGITAL_TWIN_BIOLOGY.md +217 -0
- iints_sdk_python35-1.5.31/docs/DOCUMENTATION_INDEX.md +77 -0
- iints_sdk_python35-1.5.31/docs/DUAL_REPO_WORKFLOW.md +71 -0
- iints_sdk_python35-1.5.31/docs/EDGE_HARDWARE.md +349 -0
- iints_sdk_python35-1.5.31/docs/EDGE_REMOTE_DEPLOY.md +158 -0
- iints_sdk_python35-1.5.31/docs/EU_AI_PACT_GOVERNANCE.md +67 -0
- iints_sdk_python35-1.5.31/docs/EVIDENCE_BASE.md +293 -0
- iints_sdk_python35-1.5.31/docs/EVIDENCE_BUNDLE.md +111 -0
- iints_sdk_python35-1.5.31/docs/FORMULA_REGISTRY.md +440 -0
- iints_sdk_python35-1.5.31/docs/FPGA_MODE.md +218 -0
- iints_sdk_python35-1.5.31/docs/GETTING_STARTED.md +152 -0
- iints_sdk_python35-1.5.31/docs/GLUCOSE_MODEL.md +394 -0
- iints_sdk_python35-1.5.31/docs/HARDWARE.md +95 -0
- iints_sdk_python35-1.5.31/docs/HYPOGLYCEMIA_SCIENCE_MODEL.md +190 -0
- iints_sdk_python35-1.5.31/docs/INSTALLATION.md +179 -0
- iints_sdk_python35-1.5.31/docs/JETSON_AUTOML_FACTORY.md +140 -0
- iints_sdk_python35-1.5.31/docs/JETSON_ENDURANCE.md +359 -0
- iints_sdk_python35-1.5.31/docs/LEARNING_PATH.md +118 -0
- iints_sdk_python35-1.5.31/docs/LOCAL_AI_RESEARCH.md +374 -0
- iints_sdk_python35-1.5.31/docs/LOCAL_AI_SAFETY_GATES.md +39 -0
- iints_sdk_python35-1.5.31/docs/MAINTAINER_GUIDE.md +147 -0
- iints_sdk_python35-1.5.31/docs/MAKERFAIRE_PI.md +216 -0
- iints_sdk_python35-1.5.31/docs/MAKERFAIRE_PI_CHECKLIST.md +181 -0
- iints_sdk_python35-1.5.31/docs/MDMP.md +138 -0
- iints_sdk_python35-1.5.31/docs/MDMP_FULL_GUIDE.md +293 -0
- iints_sdk_python35-1.5.31/docs/MDMP_QUICKSTART.md +91 -0
- iints_sdk_python35-1.5.31/docs/MECHANISTIC_REFERENCE_MODELS.md +159 -0
- iints_sdk_python35-1.5.31/docs/MEDTRONIC_CARELINK_LIVE_BRIDGE.md +99 -0
- iints_sdk_python35-1.5.31/docs/MEDTRONIC_DIRECT_PUMP_TRANSPORT.md +88 -0
- iints_sdk_python35-1.5.31/docs/MISTRAL_MODEL_MIGRATION.md +55 -0
- iints_sdk_python35-1.5.31/docs/NUMERIC_AUTHORITY.md +58 -0
- iints_sdk_python35-1.5.31/docs/OBSIDIAN_PUBLIC_VAULT.md +57 -0
- iints_sdk_python35-1.5.31/docs/OFFICIAL_MANUAL.md +70 -0
- iints_sdk_python35-1.5.31/docs/PAPER_TECHNICAL_DOSSIER.md +1479 -0
- iints_sdk_python35-1.5.31/docs/PHYSIOLOGY_REFERENCE.md +443 -0
- iints_sdk_python35-1.5.31/docs/PICO_PUMP_LAB.md +153 -0
- iints_sdk_python35-1.5.31/docs/PLAIN_LANGUAGE_GUIDE.md +80 -0
- iints_sdk_python35-1.5.31/docs/PROJECT_BOUNDARIES.md +59 -0
- iints_sdk_python35-1.5.31/docs/PUBLIC_DOCUMENTATION.md +242 -0
- iints_sdk_python35-1.5.31/docs/PUBLIC_RELEASE_CHECKLIST.md +111 -0
- iints_sdk_python35-1.5.31/docs/QUICKSTART.md +94 -0
- iints_sdk_python35-1.5.31/docs/REAL_DATA_REALISM.md +45 -0
- iints_sdk_python35-1.5.31/docs/REFERENCE_OVERVIEW.md +55 -0
- iints_sdk_python35-1.5.31/docs/RUN_OUTPUTS.md +125 -0
- iints_sdk_python35-1.5.31/docs/SCIENTIFIC_WORKFLOW.md +312 -0
- iints_sdk_python35-1.5.31/docs/SOURCE_LIBRARY.md +149 -0
- iints_sdk_python35-1.5.31/docs/STUDY_ANALYSIS.md +121 -0
- iints_sdk_python35-1.5.31/docs/TAURI_DESKTOP.md +126 -0
- iints_sdk_python35-1.5.31/docs/TECHNICAL_README.md +887 -0
- iints_sdk_python35-1.5.31/docs/THEORY_STRESS_LAB.md +64 -0
- iints_sdk_python35-1.5.31/docs/TROUBLESHOOTING.md +138 -0
- iints_sdk_python35-1.5.31/docs/UPDATING.md +217 -0
- iints_sdk_python35-1.5.31/docs/USER_GUIDE_MAP.md +52 -0
- iints_sdk_python35-1.5.31/docs/WORKFLOWS.md +142 -0
- iints_sdk_python35-1.5.31/docs/comparison_interpretation.md +76 -0
- iints_sdk_python35-1.5.31/docs/emulation_references.md +77 -0
- iints_sdk_python35-1.5.31/docs/index.md +85 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/pyproject.toml +32 -1
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/__init__.py +1 -1
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/cli/cli.py +534 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/formula_registry.py +115 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/evidence_sources.yaml +73 -1
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/__init__.py +57 -0
- iints_sdk_python35-1.5.31/src/iints/research/academic_bundle.py +525 -0
- iints_sdk_python35-1.5.31/src/iints/research/binding_evidence.py +256 -0
- iints_sdk_python35-1.5.31/src/iints/research/cellml_models.py +338 -0
- iints_sdk_python35-1.5.31/src/iints/research/clinvar_engine.py +226 -0
- iints_sdk_python35-1.5.31/src/iints/research/copasi_models.py +403 -0
- iints_sdk_python35-1.5.31/src/iints/research/external_models_common.py +171 -0
- iints_sdk_python35-1.5.31/src/iints/research/fmi_models.py +535 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/genomics_engine.py +57 -25
- iints_sdk_python35-1.5.31/src/iints/research/mechanistic_models.py +740 -0
- iints_sdk_python35-1.5.31/src/iints_desktop/evidence_connectors.py +384 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/launcher.py +1 -1
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/qt_app.py +272 -6
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/tauri_bridge.py +242 -1
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/update.py +1 -1
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31/src/iints_sdk_python35.egg-info}/PKG-INFO +31 -3
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_sdk_python35.egg-info/SOURCES.txt +89 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_sdk_python35.egg-info/requires.txt +30 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_research_workflows.py +121 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_desktop_app.py +104 -9
- iints_sdk_python35-1.5.31/tests/test_desktop_packaging.py +31 -0
- iints_sdk_python35-1.5.31/tests/test_tauri_bridge.py +330 -0
- iints_sdk_python35-1.5.30/src/iints_desktop/evidence_connectors.py +0 -173
- iints_sdk_python35-1.5.30/tests/test_tauri_bridge.py +0 -165
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/LICENSE +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/LICENSE-MIT-IINTS-LEGACY +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/NOTICE +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/setup.cfg +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/assistant.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/backends/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/backends/base.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/backends/mistral_api.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/backends/ollama.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/cli.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/deterministic.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/insights.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/mdmp_guard.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/model_catalog.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/prepare.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/prompts.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/algorithm_xray.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/baseline.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/booth_demo.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/carelink_workbench.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/clinical_benchmark.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/clinical_metrics.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/clinical_tir_analyzer.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/diabetes_metrics.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/edge_efficiency.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/edge_performance_monitor.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/eucys_results.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/evidence_bundle.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/explainability.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/explainable_ai.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/hardware_benchmark.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/metrics.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/population_report.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/poster.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/reporting.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/run_quality.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/safety_index.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/safety_visualizer.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/sensor_filtering.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/study_analysis.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/study_engine.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/study_experiment.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/study_poster.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/study_protocol.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/validator.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/api/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/api/base_algorithm.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/api/registry.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/api/template_algorithm.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/assets/iints_logo.png +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/cli/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/cli/patient_cli.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/battle_runner.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/clinical_baseline.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/correction_bolus.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/discovery.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/fixed_basal_bolus.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/hybrid_algorithm.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/imitation_controller.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/lstm_algorithm.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/mock_algorithms.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/mpc_controller.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/neural_controller.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/pid_controller.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/standard_pump_algo.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/clinical_metrics.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/device.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/device_manager.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/devices/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/devices/models.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/digital_twin.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/advanced_metabolic_model.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/bergman_model.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/hovorka_model.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/models.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/patient_factory.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/physiology.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/profile.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/physiology_variation.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/safety/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/safety/config.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/safety/input_validator.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/safety/supervisor.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/simulation/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/simulation/scenario_parser.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/simulator.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/supervisor.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/units.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/adapter.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/certify.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/column_mapper.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/contracts/diabetes_cgm_mdmp_contract.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/contracts.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/datasets.json +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/demo/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/demo/demo_cgm.csv +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/evidence.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/guardians.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/importer.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/ingestor.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/mdmp_visualizer.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/medtronic_live.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/nightscout.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/physiology_residual_profiles.json +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/quality_checker.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/realism_dashboard.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/realism_governance.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/realism_reference.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/realism_references.json +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/realism_validator.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/registry.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/research_catalog.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/runner.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/study_corruption.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/synthetic_mirror.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/tidepool.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/universal_parser.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/clinic_safe_baseline.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/clinic_safe_hyper_challenge.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/clinic_safe_hypo_prone.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/clinic_safe_midnight.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/clinic_safe_pizza.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/clinic_safe_stress_meal.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/default_patient.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/patient_559_config.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/reference_azt1d_t1d.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/reference_free_living_t1d.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/reference_hupa_ucm_t1d.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/demo_assets.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/emulation/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/emulation/legacy_base.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/emulation/medtronic_780g.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/emulation/omnipod_5.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/emulation/tandem_controliq.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/governance/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/governance/research_policy.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/highlevel.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/jetson/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/jetson/endurance.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/jetson/research_pipeline.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/learning/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/learning/autonomous_optimizer.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/learning/learning_system.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/api.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/daemon.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/edge_benchmark.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/edge_ops.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/fpga.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/long_study.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/medtronic_direct.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/pico_pump.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/runtime.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/service_export.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/uno_q.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/mdmp/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/mdmp/backend.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/mdmp/eu_ai_pact.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/metrics.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/population/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/population/generator.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/population/runner.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/forecast_calibration_profiles.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/golden_benchmark.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/presets.json +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/safety_contract_default.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/validation_profiles.yaml +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/alphafold_engine.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/anatomy.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/audit.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/calibration_gate.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/config.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/control.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/control_eval.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/data_blend.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/dataset.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/evaluation.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/forecasting.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/genetics.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/glucose_model.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/jetson_hf_trainer.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/local_ai.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/local_ai_gate.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/losses.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/metrics.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/model_registry.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/neural_control.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/pharmacology.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/physiology.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/physiology_calibration.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/predictor.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/results_manager.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/stem_cell_optimizer.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/stem_cell_transplant.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/structure.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/tissue_stressor.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/scenarios/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/scenarios/generator.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/scenarios/study_pack.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/default_algorithm.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/demos/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/demos/live_stage_demo.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/pico_pump/README.md +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/pico_pump/code.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/pico_pump/serial_protocol.txt +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/scenarios/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/scenarios/chaos_insulin_stacking.json +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/scenarios/chaos_runaway_ai.json +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/scenarios/example_scenario.json +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/scenarios/exercise_stress.json +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/uno_q/README.md +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/uno_q/iints_supervisor_bridge.ino +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/tools/ai_realism_auditor.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/tools/digital_twin_calibrator.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/tools/theory_stress_lab.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/utils/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/utils/academic_artifacts.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/utils/csv_safety.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/utils/plotting.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/utils/run_io.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/utils/url_safety.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/golden.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/replay.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/run_doctor.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/run_validation.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/safety_contract.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/schemas.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/visualization/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/visualization/cockpit.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/visualization/uncertainty_cloud.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/app.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/AF-P01275-F1-model_v4.cif +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/AF-P01308-F1-model_v4.cif +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/AF-P06213-F1-model_v6.cif +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/AF-P14672-F1-model_v6.cif +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/AF-P47871-F1-model_v6.cif +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/gcgr_3D.png +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/glucagon_3D.png +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/glut4_3D.png +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/insr_3D.png +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/insulin_3D.png +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/app_icon.icns +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/app_icon.ico +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/app_icon.png +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/cocoa_app.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/engine.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/fetcher.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/local_ai.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/mdmp.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/molecule_viewer.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/molecules.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/render_3dmol.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/results.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/terminal_utils.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_sdk_python35.egg-info/dependency_links.txt +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_sdk_python35.egg-info/entry_points.txt +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_sdk_python35.egg-info/top_level.txt +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_ai/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_ai/lineage.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/audit.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/bias_hooks.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/bundle.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/certification.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/cli.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/compare.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/conformance.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/contracts.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/crypto.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/data/conformance/vectors/delegation.json +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/data/conformance/vectors/fingerprint.json +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/data/conformance/vectors/grading.json +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/data/conformance/vectors/signing.json +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/delegate.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/diffing.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/drift.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/exceptions.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/fingerprint.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/fingerprint_store.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/hf.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/keys/mdmp_pub_v1.pem +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/llm_provenance.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/migrate.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/policy.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/prov.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/registry.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/runner.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/schema_export.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/synthetic.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/trust.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/visualizer.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_flavors/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_integrations/__init__.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_integrations/dvc.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_integrations/mlflow.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_integrations/wandb.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_bergman.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_ci_governance.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_algorithm_loading.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_booth_demo.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_carelink_workbench.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_cloud_import_security.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_demo_export.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_demo_live.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_edge_runtime.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_expo_tools.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_fpga.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_onboarding.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_patient_runtime.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_poster.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_run_summary.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_theory_stress_lab.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_install_doctor.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_jetson_endurance.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_physiology_variation.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_plugin_system.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_population.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_presets_realism.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_qt_desktop_runtime.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_research_policy.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_research_realism_tools.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_scientific_fidelity.py +0 -0
- {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_simulator_calibration.py +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: "If you use IINTS-AF SDK in research, please cite the software and the exact release used."
|
|
3
|
+
title: "IINTS-AF SDK"
|
|
4
|
+
type: software
|
|
5
|
+
authors:
|
|
6
|
+
- family-names: "Bobbaers"
|
|
7
|
+
given-names: "Rune"
|
|
8
|
+
email: "rune.bobbaers@gmail.com"
|
|
9
|
+
version: "1.5.31"
|
|
10
|
+
date-released: "2026-07-21"
|
|
11
|
+
repository-code: "https://github.com/python35/IINTS-SDK"
|
|
12
|
+
url: "https://iints.org"
|
|
13
|
+
license: "Apache-2.0"
|
|
14
|
+
keywords:
|
|
15
|
+
- diabetes technology
|
|
16
|
+
- glucose simulation
|
|
17
|
+
- digital twin
|
|
18
|
+
- research software
|
|
19
|
+
- artificial pancreas
|
{iints_sdk_python35-1.5.30/src/iints_sdk_python35.egg-info → iints_sdk_python35-1.5.31}/PKG-INFO
RENAMED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iints-sdk-python35
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.31
|
|
4
4
|
Summary: A pre-clinical Edge-AI SDK for diabetes management validation.
|
|
5
5
|
Author-email: Rune Bobbaers <rune.bobbaers@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
7
7
|
Project-URL: Homepage, https://github.com/python35/IINTS-SDK
|
|
8
|
+
Project-URL: Documentation, https://python35.github.io/IINTS-SDK/
|
|
9
|
+
Project-URL: Repository, https://github.com/python35/IINTS-SDK
|
|
10
|
+
Project-URL: Issues, https://github.com/python35/IINTS-SDK/issues
|
|
8
11
|
Classifier: Programming Language :: Python :: 3
|
|
9
12
|
Classifier: Programming Language :: Python :: 3.10
|
|
10
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
@@ -20,6 +23,7 @@ License-File: NOTICE
|
|
|
20
23
|
License-File: LICENSE-MIT-IINTS-LEGACY
|
|
21
24
|
Requires-Dist: certifi>=2024.2.2
|
|
22
25
|
Requires-Dist: cryptography<50.0.0,>=48.0.1
|
|
26
|
+
Requires-Dist: defusedxml<1.0.0,>=0.7.1
|
|
23
27
|
Requires-Dist: fastapi!=0.136.3,<0.139.1,>=0.115.0
|
|
24
28
|
Requires-Dist: numpy<3.0.0,>=1.24.0
|
|
25
29
|
Requires-Dist: pandas<3.0.0,>=2.0.0
|
|
@@ -68,6 +72,10 @@ Requires-Dist: h5py<4.0.0,>=3.10.0; extra == "research"
|
|
|
68
72
|
Requires-Dist: onnx<2.0.0,>=1.22.0; extra == "research"
|
|
69
73
|
Requires-Dist: onnxscript<1.0.0,>=0.1.0; extra == "research"
|
|
70
74
|
Requires-Dist: plotly<7.0.0,>=5.18.0; extra == "research"
|
|
75
|
+
Provides-Extra: mechanistic
|
|
76
|
+
Requires-Dist: libroadrunner<3.0.0,>=2.9.2; extra == "mechanistic"
|
|
77
|
+
Provides-Extra: fmi
|
|
78
|
+
Requires-Dist: FMPy<0.4.0,>=0.3.30; extra == "fmi"
|
|
71
79
|
Provides-Extra: mdmp
|
|
72
80
|
Requires-Dist: cryptography<50.0.0,>=48.0.1; extra == "mdmp"
|
|
73
81
|
Provides-Extra: desktop
|
|
@@ -84,6 +92,26 @@ Provides-Extra: desktop-macos
|
|
|
84
92
|
Requires-Dist: pyinstaller<7.0.0,>=6.11.0; extra == "desktop-macos"
|
|
85
93
|
Requires-Dist: setuptools<84.0.0,>=83.0.0; extra == "desktop-macos"
|
|
86
94
|
Requires-Dist: pyobjc-framework-Cocoa<13.0,>=10.0; extra == "desktop-macos"
|
|
95
|
+
Provides-Extra: desktop-all
|
|
96
|
+
Requires-Dist: FMPy<0.4.0,>=0.3.30; extra == "desktop-all"
|
|
97
|
+
Requires-Dist: SciencePlots<3.0.0,>=2.1.0; extra == "desktop-all"
|
|
98
|
+
Requires-Dist: fpdf2<3.0.0,>=2.8.0; extra == "desktop-all"
|
|
99
|
+
Requires-Dist: h5py<4.0.0,>=3.10.0; extra == "desktop-all"
|
|
100
|
+
Requires-Dist: libroadrunner<3.0.0,>=2.9.2; extra == "desktop-all"
|
|
101
|
+
Requires-Dist: matplotlib<4.0.0,>=3.5.0; extra == "desktop-all"
|
|
102
|
+
Requires-Dist: onnx<2.0.0,>=1.22.0; extra == "desktop-all"
|
|
103
|
+
Requires-Dist: onnxscript<1.0.0,>=0.1.0; extra == "desktop-all"
|
|
104
|
+
Requires-Dist: openpyxl<4.0.0,>=3.0.0; extra == "desktop-all"
|
|
105
|
+
Requires-Dist: pillow<13.0.0,>=12.3.0; extra == "desktop-all"
|
|
106
|
+
Requires-Dist: plotly<7.0.0,>=5.18.0; extra == "desktop-all"
|
|
107
|
+
Requires-Dist: pyarrow<25.0.0,>=12.0.0; extra == "desktop-all"
|
|
108
|
+
Requires-Dist: pyinstaller<7.0.0,>=6.11.0; extra == "desktop-all"
|
|
109
|
+
Requires-Dist: pyobjc-framework-Cocoa<13.0,>=10.0; platform_system == "Darwin" and extra == "desktop-all"
|
|
110
|
+
Requires-Dist: pyserial<4.0,>=3.5; extra == "desktop-all"
|
|
111
|
+
Requires-Dist: PySide6<7.0.0,>=6.7.0; extra == "desktop-all"
|
|
112
|
+
Requires-Dist: seaborn<1.0.0,>=0.11.0; extra == "desktop-all"
|
|
113
|
+
Requires-Dist: setuptools<84.0.0,>=83.0.0; extra == "desktop-all"
|
|
114
|
+
Requires-Dist: torch<3.0.0,>=2.13.0; extra == "desktop-all"
|
|
87
115
|
Dynamic: license-file
|
|
88
116
|
|
|
89
117
|
# IINTS-AF SDK
|
|
@@ -109,7 +137,7 @@ IINTS-AF is not a medical device. It must not be used for diagnosis, insulin dos
|
|
|
109
137
|
|
|
110
138
|
## Desktop App
|
|
111
139
|
|
|
112
|
-
IINTS-AF also has a native desktop app for running demos
|
|
140
|
+
IINTS-AF also has a native Qt desktop app for running demos, reviewing results, certifying data, and using the research workbench without memorising terminal commands. The packaged Windows, macOS, and Linux betas include their Python runtime and supported Python-side research engines.
|
|
113
141
|
|
|
114
142
|
Current beta downloads:
|
|
115
143
|
|
|
@@ -122,7 +150,7 @@ Current beta downloads:
|
|
|
122
150
|
Python install, including the PySide6 desktop runtime:
|
|
123
151
|
|
|
124
152
|
```bash
|
|
125
|
-
python -m pip install -U "iints-sdk-python35[
|
|
153
|
+
python -m pip install -U "iints-sdk-python35[desktop-all]"
|
|
126
154
|
iints-desktop
|
|
127
155
|
```
|
|
128
156
|
|
|
@@ -21,7 +21,7 @@ IINTS-AF is not a medical device. It must not be used for diagnosis, insulin dos
|
|
|
21
21
|
|
|
22
22
|
## Desktop App
|
|
23
23
|
|
|
24
|
-
IINTS-AF also has a native desktop app for running demos
|
|
24
|
+
IINTS-AF also has a native Qt desktop app for running demos, reviewing results, certifying data, and using the research workbench without memorising terminal commands. The packaged Windows, macOS, and Linux betas include their Python runtime and supported Python-side research engines.
|
|
25
25
|
|
|
26
26
|
Current beta downloads:
|
|
27
27
|
|
|
@@ -34,7 +34,7 @@ Current beta downloads:
|
|
|
34
34
|
Python install, including the PySide6 desktop runtime:
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
python -m pip install -U "iints-sdk-python35[
|
|
37
|
+
python -m pip install -U "iints-sdk-python35[desktop-all]"
|
|
38
38
|
iints-desktop
|
|
39
39
|
```
|
|
40
40
|
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Academic Research Workbench
|
|
2
|
+
|
|
3
|
+
IINTS-AF can add a reviewable academic metadata layer to a completed simulation run. The goal is practical reproducibility: another researcher should be able to identify the software, configuration, seed, artifacts, checksums, and references without relying on a screenshot or an AI summary.
|
|
4
|
+
|
|
5
|
+
!!! warning "Scope"
|
|
6
|
+
An academic package is not peer review, ethical approval, privacy clearance, clinical validation, or medical-device certification. It does not upload data. Review every artifact before sharing it.
|
|
7
|
+
|
|
8
|
+
## Create A Package
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
iints research academic-bundle results/my_run \
|
|
12
|
+
--title "Baseline T1D reproducibility run" \
|
|
13
|
+
--creator "Researcher Name" \
|
|
14
|
+
--orcid "https://orcid.org/0000-0000-0000-0000" \
|
|
15
|
+
--license "CC-BY-4.0"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
To associate references explicitly, repeat `--source-id`:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
iints research academic-bundle results/my_run \
|
|
22
|
+
--source-id hovorka_2004_nmpc_t1d \
|
|
23
|
+
--source-id attd_2019_time_in_range
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
When no source IDs are supplied, the exporter makes only conservative associations that can be inferred from run metadata and artifacts. These associations are candidates for human review, not proof that a paper validates the implementation.
|
|
27
|
+
|
|
28
|
+
The run-artifact licence defaults to `NOASSERTION`. The SDK code is Apache-2.0, but that software licence is not silently applied to real-data-derived CSV files, reports, or other research artifacts. Choose a data/output licence only when you have the right to do so.
|
|
29
|
+
|
|
30
|
+
The same operation is available in both desktop workbenches from the **Results** or **Reproducibility package** area.
|
|
31
|
+
|
|
32
|
+
## Generated Files
|
|
33
|
+
|
|
34
|
+
| File | Purpose |
|
|
35
|
+
| --- | --- |
|
|
36
|
+
| `ro-crate-metadata.json` | [RO-Crate 1.2](https://www.researchobject.org/ro-crate/specification/1.2/introduction.html) JSON-LD with run, software, file, checksum, creator, licence, and source entities |
|
|
37
|
+
| `academic_audit.json` | machine-readable checks for metadata, seed, configuration, manifest, revision, sources, attribution, licence, artifact inventory, and basic privacy markers |
|
|
38
|
+
| `academic_sources.json` | exact evidence-registry snapshot, registry hash, selected sources, and selection method |
|
|
39
|
+
| `ACADEMIC_BUNDLE.md` | short human review guide stored with the run |
|
|
40
|
+
|
|
41
|
+
Existing experimental files are not copied or rewritten. The exporter reads them to calculate SHA-256 checksums and then writes the four metadata files beside them.
|
|
42
|
+
|
|
43
|
+
## Readiness Status
|
|
44
|
+
|
|
45
|
+
| Status | Meaning |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| `ready` | all implemented required, recommended, and review checks passed |
|
|
48
|
+
| `needs_review` | required metadata exists, but one or more recommended or human-review checks remain |
|
|
49
|
+
| `incomplete` | a required artifact or metadata field is missing |
|
|
50
|
+
|
|
51
|
+
The score measures only the implemented checklist. A high score does not mean that a model is physiologically accurate or that a dataset may legally be shared.
|
|
52
|
+
|
|
53
|
+
## Academic Integration Levels
|
|
54
|
+
|
|
55
|
+
The app labels every external resource by maturity so a portal link cannot be mistaken for a functioning scientific integration.
|
|
56
|
+
|
|
57
|
+
| Level | Meaning | Current examples |
|
|
58
|
+
| --- | --- | --- |
|
|
59
|
+
| Integrated | the SDK calls a defined local/API workflow and writes a reviewable artifact | RO-Crate export; AlphaFold; SBML/libRoadRunner; COPASI; CellML/OpenCOR validation; FMI/FMPy; BindingDB |
|
|
60
|
+
| Partial | a useful query or render exists, but full versioned import and validation are not complete | GTEx expression, ChEMBL context, STRING networks, ClinVar context |
|
|
61
|
+
| Planned | a scientifically useful boundary is documented but not implemented | SED-ML protocol export, automatic Physiome repository import, structured PubMed capture |
|
|
62
|
+
| Portal | the app opens an official allowlisted resource; no evidence is ingested | RCSB PDB, UniProt, Human Protein Atlas, ClinicalTrials.gov, Zenodo |
|
|
63
|
+
|
|
64
|
+
## Standards Direction
|
|
65
|
+
|
|
66
|
+
- [FAIR4RS](https://www.nature.com/articles/s41597-022-01710-x) guides software citation, metadata, access, interoperability, and reuse. IINTS-AF is FAIR-oriented; it is not externally FAIR-certified.
|
|
67
|
+
- [RO-Crate 1.2](https://www.researchobject.org/ro-crate/specification/1.2/introduction.html) is implemented for run-level metadata and artifact inventory.
|
|
68
|
+
- [SED-ML Level 1 Version 5](https://sed-ml.org/) is the planned portable description for model/simulation/task/output protocols. IINTS-AF does not yet claim SED-ML compatibility.
|
|
69
|
+
- [SBML Level 3 Version 2](https://sbml.org/documents/specifications/) is supported for safe structural inspection of local reference files. Optional independent execution uses libRoadRunner. Current Python patient models are not claimed to be SBML models.
|
|
70
|
+
- [BioModels](https://www.biomodels.org/) is useful for model provenance and comparison. Automatic repository import is not implemented; local model files can be inspected only after the researcher has reviewed their source and licence.
|
|
71
|
+
- [Zenodo](https://developers.zenodo.org/) remains a manual publication route after privacy, licensing, and completeness review; the SDK never uploads automatically.
|
|
72
|
+
|
|
73
|
+
## Evidence Rules
|
|
74
|
+
|
|
75
|
+
1. Record the exact database, identifier, query, access date, and local artifact hash.
|
|
76
|
+
2. Prefer primary publications and official database records over summaries.
|
|
77
|
+
3. Keep structural confidence, variant assertions, expression evidence, and physiological parameters separate.
|
|
78
|
+
4. Never convert AlphaFold pLDDT or PAE directly into pathogenicity, insulin sensitivity, or a dosing parameter.
|
|
79
|
+
5. Never let external evidence or local AI silently alter the deterministic simulation configuration.
|
|
80
|
+
6. Preserve failed runs, exclusions, software versions, and changed assumptions.
|
|
81
|
+
7. Review direct and indirect identifiers before publishing any real-patient-derived data.
|
|
82
|
+
|
|
83
|
+
## Recommended Paper Workflow
|
|
84
|
+
|
|
85
|
+
```mermaid
|
|
86
|
+
flowchart LR
|
|
87
|
+
A["Freeze protocol and hypotheses"] --> B["Run with recorded seeds"]
|
|
88
|
+
B --> C["Validate raw artifacts"]
|
|
89
|
+
C --> D["Create academic package"]
|
|
90
|
+
D --> E["Resolve audit findings"]
|
|
91
|
+
E --> F["Review privacy and licences"]
|
|
92
|
+
F --> G["Archive code, environment, and approved outputs"]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Use deterministic metrics and raw time series as the numerical authority. Local AI can help critique or explain a run, but its response is a review note and is not included as ground truth.
|
|
96
|
+
|
|
97
|
+
For independent external equation-model checks, use [Mechanistic Reference Models](MECHANISTIC_REFERENCE_MODELS.md). Reference execution remains separate from IINTS calibration so a successful solver run cannot silently change the virtual patient.
|
|
98
|
+
|
|
99
|
+
For sensitivity tasks, CellML validation, physical-device FMUs, and measured affinity evidence, continue with [Cross-scale Reference Labs](CROSS_SCALE_REFERENCE_LABS.md). These outputs remain separate evidence layers and require explicit mappings before comparison.
|
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
# AI Assistant Guide
|
|
2
|
+
|
|
3
|
+
Use this guide when you want local AI help for explaining validated outputs, without giving the model dosing authority.
|
|
4
|
+
|
|
5
|
+
By the end, you should understand what the assistant can do, how MDMP gating protects the workflow, and how to run the local setup end to end.
|
|
6
|
+
|
|
7
|
+
## Scope
|
|
8
|
+
|
|
9
|
+
- Research use only.
|
|
10
|
+
- Not a medical device.
|
|
11
|
+
- No clinical dosing advice.
|
|
12
|
+
- AI output is blocked unless MDMP verification succeeds first.
|
|
13
|
+
|
|
14
|
+
## What The AI Layer Does
|
|
15
|
+
|
|
16
|
+
The local AI assistant is designed for four narrow tasks:
|
|
17
|
+
|
|
18
|
+
- `explain`: explain a single simulation step in plain language
|
|
19
|
+
- `trends`: summarize glucose-oriented trends from a payload
|
|
20
|
+
- `anomalies`: call out unusual or safety-relevant patterns
|
|
21
|
+
- `report`: generate a short markdown run summary
|
|
22
|
+
|
|
23
|
+
The assistant is intentionally conservative. It explains simulation behavior or imported glucose data patterns; it does not produce treatment advice.
|
|
24
|
+
|
|
25
|
+
## Architecture
|
|
26
|
+
|
|
27
|
+
The flow is:
|
|
28
|
+
|
|
29
|
+
1. `iints ai ...` loads a JSON payload from disk.
|
|
30
|
+
2. `MDMPGuard` verifies the signed MDMP artifact and enforces the minimum grade.
|
|
31
|
+
3. `IINTSAssistant` selects the backend.
|
|
32
|
+
4. `OllamaBackend` checks that Ollama is reachable and that a local open Ministral 3 tag is installed.
|
|
33
|
+
5. The prompt is built from a fixed system instruction plus a serialized payload.
|
|
34
|
+
6. The response is wrapped with a hard-coded research-only disclaimer before output is shown or saved.
|
|
35
|
+
|
|
36
|
+
## Local Backend Behavior
|
|
37
|
+
|
|
38
|
+
The SDK defaults to local inference through Ollama.
|
|
39
|
+
|
|
40
|
+
Default model:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
ministral-3:8b
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Supported convenience aliases include:
|
|
47
|
+
|
|
48
|
+
- `ministral`
|
|
49
|
+
- `ministral-3`
|
|
50
|
+
- `ministral-3:8b`
|
|
51
|
+
- `ministral-8b`
|
|
52
|
+
- `ministral-8b-instruct`
|
|
53
|
+
|
|
54
|
+
If the alias is used, IINTS resolves it to the installed local Ollama tag before generation.
|
|
55
|
+
|
|
56
|
+
## Mistral Serverless API Migration
|
|
57
|
+
|
|
58
|
+
The local SDK default is not affected by Mistral Serverless API retirements, because IINTS uses Ollama unless you explicitly build an external cloud workflow. For cloud-side scripts, use the current replacements:
|
|
59
|
+
|
|
60
|
+
| Old family | New model |
|
|
61
|
+
| --- | --- |
|
|
62
|
+
| Devstral Small / Magistral Small / Mistral Small 3.2 | `mistral-small-latest` with `reasoning_effort="high"` |
|
|
63
|
+
| Devstral Medium / Magistral Medium / Mistral Large 2 / Pixtral Large / Mistral Medium 3.x | `mistral-medium-3-5` with `reasoning_effort="high"` for code or research-review tasks |
|
|
64
|
+
| Mistral OCR 2 | `mistral-ocr-latest` |
|
|
65
|
+
| Mistral Moderation | `mistral-moderation-2603` |
|
|
66
|
+
| Voxtral Mini Transcribe 1.0 | `voxtral-mini-latest` |
|
|
67
|
+
|
|
68
|
+
Run the built-in migration table:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
iints ai models
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
See [Mistral Model Migration](MISTRAL_MODEL_MIGRATION.md) for the full mapping.
|
|
75
|
+
|
|
76
|
+
## Fastest Working Setup
|
|
77
|
+
|
|
78
|
+
Always work from an active virtual environment:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
python3 -m venv .venv
|
|
82
|
+
source .venv/bin/activate
|
|
83
|
+
python -m pip install -U pip
|
|
84
|
+
python -m pip install -e ".[full,mdmp]"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Full Ollama Setup
|
|
88
|
+
|
|
89
|
+
This is the shortest reliable setup if you want the local AI layer working end to end.
|
|
90
|
+
|
|
91
|
+
### 1. Install the SDK
|
|
92
|
+
|
|
93
|
+
Released SDK:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
python3 -m venv .venv
|
|
97
|
+
source .venv/bin/activate
|
|
98
|
+
python -m pip install -U pip
|
|
99
|
+
python -m pip install -U "iints-sdk-python35[full,mdmp]"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Source checkout:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
cd /path/to/IINTS-SDK
|
|
106
|
+
python3 -m venv .venv
|
|
107
|
+
source .venv/bin/activate
|
|
108
|
+
python -m pip install -U pip
|
|
109
|
+
python -m pip install -U -e ".[full,mdmp]"
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 2. Install Ollama
|
|
113
|
+
|
|
114
|
+
On macOS/Linux, the quick official path is:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
curl -fsSL https://ollama.com/install.sh | sh
|
|
118
|
+
ollama -v
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
If you are on Windows, install Ollama first via the official installer and then reopen your terminal.
|
|
122
|
+
|
|
123
|
+
### 3. Start Ollama
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
ollama serve
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
If Ollama is already running as a service, you do not need to start it manually again.
|
|
130
|
+
|
|
131
|
+
### 4. Pull a local model
|
|
132
|
+
|
|
133
|
+
Balanced default:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
ollama pull ministral-3:8b
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Smaller fallback:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
ollama pull ministral-3:3b
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 5. Link Ollama to the SDK
|
|
146
|
+
|
|
147
|
+
By default, the SDK looks for Ollama here:
|
|
148
|
+
|
|
149
|
+
```text
|
|
150
|
+
http://127.0.0.1:11434
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
So on a normal single-machine setup, there is nothing extra to configure.
|
|
154
|
+
|
|
155
|
+
If you want to set it explicitly:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
export OLLAMA_HOST=http://127.0.0.1:11434
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
If you want to override it for one command only:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
iints ai local-check \
|
|
165
|
+
--model ministral-3:8b \
|
|
166
|
+
--ollama-host http://127.0.0.1:11434
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Important notes:
|
|
170
|
+
|
|
171
|
+
- `OLLAMA_HOST` is the normal way to point the SDK at a non-default local Ollama endpoint.
|
|
172
|
+
- Remote Ollama endpoints are blocked by default. Only enable them deliberately.
|
|
173
|
+
- If you truly want to connect to a non-loopback Ollama host, you must also set `IINTS_ALLOW_REMOTE_OLLAMA=1`.
|
|
174
|
+
|
|
175
|
+
### 6. Verify the full chain
|
|
176
|
+
|
|
177
|
+
Install and check the local model:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
ollama pull ministral-3:8b
|
|
181
|
+
iints ai local-check --model ministral-3:8b
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
If the model is missing, the command fails with the exact `ollama pull ...` command to run next.
|
|
185
|
+
If your Ollama runtime is too old for the open Ministral 3 line, `local-check` now tells you that as well.
|
|
186
|
+
`local-check` also runs a tiny generation smoke-test by default, so it catches the common case where `/api/tags` works but the model crashes during real inference.
|
|
187
|
+
The current Ollama listing for `ministral-3` expects Ollama `0.13.1` or newer.
|
|
188
|
+
|
|
189
|
+
## Hardware Recommendations
|
|
190
|
+
|
|
191
|
+
Use this as a practical starting point:
|
|
192
|
+
|
|
193
|
+
| Model | Good Fit | Recommended System RAM | Recommended GPU VRAM | Approx Download |
|
|
194
|
+
|---|---|---:|---:|---:|
|
|
195
|
+
| `ministral-3:3b` | smaller laptops, CPU-first setups, entry-level edge boxes | 16 GB | 6 GB | ~3 GB |
|
|
196
|
+
| `ministral-3:8b` | balanced desktop or strong laptop | 24 GB | 10 GB | ~6 GB |
|
|
197
|
+
| `ministral-3:14b` | high-end workstation | 32 GB | 16 GB | ~10 GB |
|
|
198
|
+
|
|
199
|
+
General advice:
|
|
200
|
+
|
|
201
|
+
- Start with `ministral-3:8b` unless you have a specific reason to go smaller or larger.
|
|
202
|
+
- Choose `ministral-3:3b` if latency and memory matter more than answer quality.
|
|
203
|
+
- Choose `ministral-3:14b` only if your machine can comfortably absorb the extra RAM and latency.
|
|
204
|
+
- Run `iints ai models` in the CLI to see the same recommendations in a terminal-friendly table.
|
|
205
|
+
- If `ministral-3:8b` closes the connection during generation, try `ministral-3:3b` first before assuming something is wrong with the SDK.
|
|
206
|
+
|
|
207
|
+
## Recommended Run Workflow
|
|
208
|
+
|
|
209
|
+
After a run completes, prepare the run directory once:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
iints ai prepare results/<run_id>
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
That command creates:
|
|
216
|
+
|
|
217
|
+
- `ai/report_payload.json`
|
|
218
|
+
- `ai/anomalies_payload.json`
|
|
219
|
+
- `ai/trends_payload.json`
|
|
220
|
+
- `ai/step_riskiest.json`
|
|
221
|
+
- `ai/step_latest.json`
|
|
222
|
+
- `ai/report.signed.mdmp` plus `ai/keys/` when the MDMP extra is installed
|
|
223
|
+
|
|
224
|
+
After that, you can point the AI commands directly at the run directory:
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
iints ai explain results/<run_id>
|
|
228
|
+
iints ai trends results/<run_id>
|
|
229
|
+
iints ai anomalies results/<run_id>
|
|
230
|
+
iints ai report results/<run_id> --output results/<run_id>/ai/ai_report.md
|
|
231
|
+
iints ai review results/<run_id>
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
For imported CareLink data, generate a personal workspace first:
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
iints carelink-workbench \
|
|
238
|
+
--input-csv "/path/to/CareLink export.csv" \
|
|
239
|
+
--output-dir results/personal_carelink
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
That creates:
|
|
243
|
+
|
|
244
|
+
- `carelink_dashboard.png`
|
|
245
|
+
- `carelink_poster.png`
|
|
246
|
+
- `carelink_dashboard.html`
|
|
247
|
+
- `carelink_timeline.csv`
|
|
248
|
+
- `carelink_metrics.json`
|
|
249
|
+
- `ai/report_payload.json`
|
|
250
|
+
- `ai/review_payload.json`
|
|
251
|
+
- `ai/trends_payload.json`
|
|
252
|
+
- `ai/anomalies_payload.json`
|
|
253
|
+
- `ai/step_riskiest.json`
|
|
254
|
+
- `ai/report.signed.mdmp` when the MDMP extra is installed
|
|
255
|
+
|
|
256
|
+
After that, the same AI commands work directly on the CareLink workspace directory:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
iints ai report results/personal_carelink --model ministral-3:3b
|
|
260
|
+
iints ai review results/personal_carelink --model ministral-3:3b
|
|
261
|
+
iints ai trends results/personal_carelink --model ministral-3:3b
|
|
262
|
+
iints ai explain results/personal_carelink --model ministral-3:3b
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## Digital Patient Review
|
|
266
|
+
|
|
267
|
+
The Raspberry Pi live runtime also plugs into the same AI layer.
|
|
268
|
+
|
|
269
|
+
After a live patient session has written its bundle under `patient_runtime/live_bundle/`, run:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
iints patient review \
|
|
273
|
+
--workspace patient_runtime \
|
|
274
|
+
--model ministral-3:3b
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
That automatically prepares the runtime bundle, checks the MDMP gate, and writes:
|
|
278
|
+
|
|
279
|
+
- `patient_runtime/live_bundle/ai/realism_review.md`
|
|
280
|
+
|
|
281
|
+
This is useful for expo demos where you want the Pi to both simulate and critique the realism of the current run.
|
|
282
|
+
|
|
283
|
+
## Generation Commands
|
|
284
|
+
|
|
285
|
+
Prepared run directory mode:
|
|
286
|
+
|
|
287
|
+
```bash
|
|
288
|
+
iints ai explain results/<run_id>
|
|
289
|
+
iints ai trends results/<run_id>
|
|
290
|
+
iints ai anomalies results/<run_id>
|
|
291
|
+
iints ai report results/<run_id> --output results/<run_id>/ai/ai_report.md
|
|
292
|
+
iints ai review results/<run_id>
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
Prepared CareLink workspace mode:
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
iints carelink-workbench \
|
|
299
|
+
--input-csv "/path/to/CareLink export.csv" \
|
|
300
|
+
--output-dir results/personal_carelink
|
|
301
|
+
|
|
302
|
+
iints ai report results/personal_carelink --model ministral-3:3b
|
|
303
|
+
iints ai review results/personal_carelink --model ministral-3:3b
|
|
304
|
+
iints ai trends results/personal_carelink --model ministral-3:3b
|
|
305
|
+
iints ai explain results/personal_carelink --model ministral-3:3b
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
Direct JSON mode:
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
iints ai explain results/step.json \
|
|
312
|
+
--mdmp-cert results/report.signed.mdmp
|
|
313
|
+
|
|
314
|
+
iints ai trends results/glucose_payload.json \
|
|
315
|
+
--mdmp-cert results/report.signed.mdmp
|
|
316
|
+
|
|
317
|
+
iints ai anomalies results/simulation_run.json \
|
|
318
|
+
--mdmp-cert results/report.signed.mdmp
|
|
319
|
+
|
|
320
|
+
iints ai report results/simulation_run.json \
|
|
321
|
+
--mdmp-cert results/report.signed.mdmp \
|
|
322
|
+
--output results/ai_report.md
|
|
323
|
+
|
|
324
|
+
iints ai review results/simulation_run.json \
|
|
325
|
+
--mdmp-cert results/report.signed.mdmp \
|
|
326
|
+
--output results/realism_review.md
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
`iints ai review` writes a realism-focused critique. When you point it at a prepared run directory and do not pass `--output`, it automatically saves to `results/<run_id>/ai/realism_review.md`.
|
|
330
|
+
|
|
331
|
+
The review now asks the local model to always structure feedback as:
|
|
332
|
+
|
|
333
|
+
- overall realism verdict
|
|
334
|
+
- what looks realistic
|
|
335
|
+
- what looks suspicious
|
|
336
|
+
- priority fixes
|
|
337
|
+
- what to improve next
|
|
338
|
+
- follow-up validation checks
|
|
339
|
+
|
|
340
|
+
Useful options:
|
|
341
|
+
|
|
342
|
+
- `--mode local` to require Ollama explicitly
|
|
343
|
+
- `--model ministral-3:8b` or `--model ministral`
|
|
344
|
+
- `--model ministral-3:3b` for lighter machines
|
|
345
|
+
- `--model ministral-3:14b` for stronger workstations
|
|
346
|
+
- `--ollama-host http://127.0.0.1:11434` to override the endpoint
|
|
347
|
+
- `--timeout-seconds 120` for slower local hardware
|
|
348
|
+
- `--minimum-grade research_grade` to raise or lower the MDMP floor
|
|
349
|
+
|
|
350
|
+
## How Reliability Is Enforced
|
|
351
|
+
|
|
352
|
+
For local robustness, the SDK now does four checks before a real generation call:
|
|
353
|
+
|
|
354
|
+
- verifies that the Ollama HTTP endpoint is reachable
|
|
355
|
+
- verifies that a compatible local open Ministral 3 model is installed
|
|
356
|
+
- normalizes common local model aliases to the installed tag
|
|
357
|
+
- truncates oversized JSON payloads before prompt construction so large run artifacts do not overwhelm local inference
|
|
358
|
+
- flags too-old Ollama runtimes when they do not meet the minimum version expected for the open Ministral 3 line
|
|
359
|
+
|
|
360
|
+
If a generation succeeds, the response records the actual resolved model name used by the local backend.
|
|
361
|
+
|
|
362
|
+
## MDMP Guard Behavior
|
|
363
|
+
|
|
364
|
+
The AI assistant does not run on unsigned or insufficiently graded artifacts.
|
|
365
|
+
|
|
366
|
+
The guard enforces:
|
|
367
|
+
|
|
368
|
+
- signed MDMP verification
|
|
369
|
+
- minimum grade threshold
|
|
370
|
+
- hard-coded disclaimer injection on every response
|
|
371
|
+
|
|
372
|
+
That means the research-only warning is not dependent on the prompt and cannot be removed by changing prompt text alone.
|
|
373
|
+
|
|
374
|
+
## Troubleshooting
|
|
375
|
+
|
|
376
|
+
### Ollama Not Reachable
|
|
377
|
+
|
|
378
|
+
Run:
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
iints ai local-check --model ministral-3:8b
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
This now checks both basic reachability and a tiny real generation.
|
|
385
|
+
|
|
386
|
+
If the endpoint is wrong, retry with:
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
iints ai local-check --model ministral-3:8b --ollama-host http://127.0.0.1:11434
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### Model Missing
|
|
393
|
+
|
|
394
|
+
Pull the model shown in the error output:
|
|
395
|
+
|
|
396
|
+
```bash
|
|
397
|
+
ollama pull ministral-3:8b
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
### Local Inference Is Slow
|
|
401
|
+
|
|
402
|
+
Increase the timeout:
|
|
403
|
+
|
|
404
|
+
```bash
|
|
405
|
+
iints ai report results/simulation_run.json \
|
|
406
|
+
--mdmp-cert results/report.signed.mdmp \
|
|
407
|
+
--timeout-seconds 180
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
If the server disconnects instead of timing out, the model may be too heavy for the machine at that moment. In that case try:
|
|
411
|
+
|
|
412
|
+
```bash
|
|
413
|
+
ollama pull ministral-3:3b
|
|
414
|
+
iints ai local-check --model ministral-3:3b
|
|
415
|
+
iints ai report results/<run_id> --model ministral-3:3b
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### Large Run Payloads
|
|
419
|
+
|
|
420
|
+
The assistant now clips oversized payloads automatically before sending them to the model. If you want tighter control, pass a smaller JSON summary rather than a full raw run dump.
|
|
421
|
+
|
|
422
|
+
### No `report.signed.mdmp` In My Run Folder
|
|
423
|
+
|
|
424
|
+
That is now expected for a fresh raw run. The easiest fix is:
|
|
425
|
+
|
|
426
|
+
```bash
|
|
427
|
+
iints ai prepare results/<run_id>
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
This creates a local development certificate for AI use when the MDMP extra is available, so you do not have to hand-build `step.json` and `report.signed.mdmp` yourself.
|
|
431
|
+
|
|
432
|
+
### `No such command 'ai'`
|
|
433
|
+
|
|
434
|
+
If the CLI says `No such command 'ai'`, the most common cause is a legacy `iints` package still being installed beside `iints-sdk-python35`. That older package can shadow the newer SDK command tree.
|
|
435
|
+
|
|
436
|
+
Run the install doctor:
|
|
437
|
+
|
|
438
|
+
```bash
|
|
439
|
+
iints-sdk-doctor
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
If it reports a package ownership conflict, repair the environment:
|
|
443
|
+
|
|
444
|
+
```bash
|
|
445
|
+
python -m pip uninstall -y iints iints-sdk-python35
|
|
446
|
+
python -m pip install -U "iints-sdk-python35[full,mdmp]"
|
|
447
|
+
hash -r
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
Then retry:
|
|
451
|
+
|
|
452
|
+
```bash
|
|
453
|
+
iints ai models
|
|
454
|
+
iints ai local-check --model ministral-3:8b
|
|
455
|
+
```
|