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.
Files changed (444) hide show
  1. iints_sdk_python35-1.5.31/CITATION.cff +19 -0
  2. iints_sdk_python35-1.5.31/MANIFEST.in +3 -0
  3. {iints_sdk_python35-1.5.30/src/iints_sdk_python35.egg-info → iints_sdk_python35-1.5.31}/PKG-INFO +31 -3
  4. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/README.md +2 -2
  5. iints_sdk_python35-1.5.31/docs/ACADEMIC_RESEARCH_WORKBENCH.md +99 -0
  6. iints_sdk_python35-1.5.31/docs/AI_ASSISTANT.md +455 -0
  7. iints_sdk_python35-1.5.31/docs/AI_RED_TEAM_AUDITOR.md +216 -0
  8. iints_sdk_python35-1.5.31/docs/ALL_SCIENTIFIC_THEORIES.md +223 -0
  9. iints_sdk_python35-1.5.31/docs/API_REFERENCE.md +4972 -0
  10. iints_sdk_python35-1.5.31/docs/APP_INSTALL.md +129 -0
  11. iints_sdk_python35-1.5.31/docs/ARCHITECTURE_HARDENING.md +86 -0
  12. iints_sdk_python35-1.5.31/docs/ARCHITECTURE_OVERVIEW.md +91 -0
  13. iints_sdk_python35-1.5.31/docs/ARDUINO_UNO_Q.md +540 -0
  14. iints_sdk_python35-1.5.31/docs/BOOTH_DEMO.md +282 -0
  15. iints_sdk_python35-1.5.31/docs/CLI_CHEATSHEET.md +493 -0
  16. iints_sdk_python35-1.5.31/docs/COMMAND_REFERENCE.md +662 -0
  17. iints_sdk_python35-1.5.31/docs/COMPREHENSIVE_GUIDE.md +756 -0
  18. iints_sdk_python35-1.5.31/docs/CONTRIBUTING_SAFELY.md +109 -0
  19. iints_sdk_python35-1.5.31/docs/CORE_CONCEPTS.md +107 -0
  20. iints_sdk_python35-1.5.31/docs/CROSS_SCALE_REFERENCE_LABS.md +254 -0
  21. iints_sdk_python35-1.5.31/docs/DESKTOP_APP.md +179 -0
  22. iints_sdk_python35-1.5.31/docs/DESKTOP_SIGNING.md +50 -0
  23. iints_sdk_python35-1.5.31/docs/DEVELOPER_PORTAL.md +115 -0
  24. iints_sdk_python35-1.5.31/docs/DIABETES_RESEARCH_DATASETS.md +113 -0
  25. iints_sdk_python35-1.5.31/docs/DIGITAL_PATIENT_PI.md +457 -0
  26. iints_sdk_python35-1.5.31/docs/DIGITAL_TWIN_BIOLOGY.md +217 -0
  27. iints_sdk_python35-1.5.31/docs/DOCUMENTATION_INDEX.md +77 -0
  28. iints_sdk_python35-1.5.31/docs/DUAL_REPO_WORKFLOW.md +71 -0
  29. iints_sdk_python35-1.5.31/docs/EDGE_HARDWARE.md +349 -0
  30. iints_sdk_python35-1.5.31/docs/EDGE_REMOTE_DEPLOY.md +158 -0
  31. iints_sdk_python35-1.5.31/docs/EU_AI_PACT_GOVERNANCE.md +67 -0
  32. iints_sdk_python35-1.5.31/docs/EVIDENCE_BASE.md +293 -0
  33. iints_sdk_python35-1.5.31/docs/EVIDENCE_BUNDLE.md +111 -0
  34. iints_sdk_python35-1.5.31/docs/FORMULA_REGISTRY.md +440 -0
  35. iints_sdk_python35-1.5.31/docs/FPGA_MODE.md +218 -0
  36. iints_sdk_python35-1.5.31/docs/GETTING_STARTED.md +152 -0
  37. iints_sdk_python35-1.5.31/docs/GLUCOSE_MODEL.md +394 -0
  38. iints_sdk_python35-1.5.31/docs/HARDWARE.md +95 -0
  39. iints_sdk_python35-1.5.31/docs/HYPOGLYCEMIA_SCIENCE_MODEL.md +190 -0
  40. iints_sdk_python35-1.5.31/docs/INSTALLATION.md +179 -0
  41. iints_sdk_python35-1.5.31/docs/JETSON_AUTOML_FACTORY.md +140 -0
  42. iints_sdk_python35-1.5.31/docs/JETSON_ENDURANCE.md +359 -0
  43. iints_sdk_python35-1.5.31/docs/LEARNING_PATH.md +118 -0
  44. iints_sdk_python35-1.5.31/docs/LOCAL_AI_RESEARCH.md +374 -0
  45. iints_sdk_python35-1.5.31/docs/LOCAL_AI_SAFETY_GATES.md +39 -0
  46. iints_sdk_python35-1.5.31/docs/MAINTAINER_GUIDE.md +147 -0
  47. iints_sdk_python35-1.5.31/docs/MAKERFAIRE_PI.md +216 -0
  48. iints_sdk_python35-1.5.31/docs/MAKERFAIRE_PI_CHECKLIST.md +181 -0
  49. iints_sdk_python35-1.5.31/docs/MDMP.md +138 -0
  50. iints_sdk_python35-1.5.31/docs/MDMP_FULL_GUIDE.md +293 -0
  51. iints_sdk_python35-1.5.31/docs/MDMP_QUICKSTART.md +91 -0
  52. iints_sdk_python35-1.5.31/docs/MECHANISTIC_REFERENCE_MODELS.md +159 -0
  53. iints_sdk_python35-1.5.31/docs/MEDTRONIC_CARELINK_LIVE_BRIDGE.md +99 -0
  54. iints_sdk_python35-1.5.31/docs/MEDTRONIC_DIRECT_PUMP_TRANSPORT.md +88 -0
  55. iints_sdk_python35-1.5.31/docs/MISTRAL_MODEL_MIGRATION.md +55 -0
  56. iints_sdk_python35-1.5.31/docs/NUMERIC_AUTHORITY.md +58 -0
  57. iints_sdk_python35-1.5.31/docs/OBSIDIAN_PUBLIC_VAULT.md +57 -0
  58. iints_sdk_python35-1.5.31/docs/OFFICIAL_MANUAL.md +70 -0
  59. iints_sdk_python35-1.5.31/docs/PAPER_TECHNICAL_DOSSIER.md +1479 -0
  60. iints_sdk_python35-1.5.31/docs/PHYSIOLOGY_REFERENCE.md +443 -0
  61. iints_sdk_python35-1.5.31/docs/PICO_PUMP_LAB.md +153 -0
  62. iints_sdk_python35-1.5.31/docs/PLAIN_LANGUAGE_GUIDE.md +80 -0
  63. iints_sdk_python35-1.5.31/docs/PROJECT_BOUNDARIES.md +59 -0
  64. iints_sdk_python35-1.5.31/docs/PUBLIC_DOCUMENTATION.md +242 -0
  65. iints_sdk_python35-1.5.31/docs/PUBLIC_RELEASE_CHECKLIST.md +111 -0
  66. iints_sdk_python35-1.5.31/docs/QUICKSTART.md +94 -0
  67. iints_sdk_python35-1.5.31/docs/REAL_DATA_REALISM.md +45 -0
  68. iints_sdk_python35-1.5.31/docs/REFERENCE_OVERVIEW.md +55 -0
  69. iints_sdk_python35-1.5.31/docs/RUN_OUTPUTS.md +125 -0
  70. iints_sdk_python35-1.5.31/docs/SCIENTIFIC_WORKFLOW.md +312 -0
  71. iints_sdk_python35-1.5.31/docs/SOURCE_LIBRARY.md +149 -0
  72. iints_sdk_python35-1.5.31/docs/STUDY_ANALYSIS.md +121 -0
  73. iints_sdk_python35-1.5.31/docs/TAURI_DESKTOP.md +126 -0
  74. iints_sdk_python35-1.5.31/docs/TECHNICAL_README.md +887 -0
  75. iints_sdk_python35-1.5.31/docs/THEORY_STRESS_LAB.md +64 -0
  76. iints_sdk_python35-1.5.31/docs/TROUBLESHOOTING.md +138 -0
  77. iints_sdk_python35-1.5.31/docs/UPDATING.md +217 -0
  78. iints_sdk_python35-1.5.31/docs/USER_GUIDE_MAP.md +52 -0
  79. iints_sdk_python35-1.5.31/docs/WORKFLOWS.md +142 -0
  80. iints_sdk_python35-1.5.31/docs/comparison_interpretation.md +76 -0
  81. iints_sdk_python35-1.5.31/docs/emulation_references.md +77 -0
  82. iints_sdk_python35-1.5.31/docs/index.md +85 -0
  83. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/pyproject.toml +32 -1
  84. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/__init__.py +1 -1
  85. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/cli/cli.py +534 -0
  86. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/formula_registry.py +115 -0
  87. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/evidence_sources.yaml +73 -1
  88. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/__init__.py +57 -0
  89. iints_sdk_python35-1.5.31/src/iints/research/academic_bundle.py +525 -0
  90. iints_sdk_python35-1.5.31/src/iints/research/binding_evidence.py +256 -0
  91. iints_sdk_python35-1.5.31/src/iints/research/cellml_models.py +338 -0
  92. iints_sdk_python35-1.5.31/src/iints/research/clinvar_engine.py +226 -0
  93. iints_sdk_python35-1.5.31/src/iints/research/copasi_models.py +403 -0
  94. iints_sdk_python35-1.5.31/src/iints/research/external_models_common.py +171 -0
  95. iints_sdk_python35-1.5.31/src/iints/research/fmi_models.py +535 -0
  96. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/genomics_engine.py +57 -25
  97. iints_sdk_python35-1.5.31/src/iints/research/mechanistic_models.py +740 -0
  98. iints_sdk_python35-1.5.31/src/iints_desktop/evidence_connectors.py +384 -0
  99. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/launcher.py +1 -1
  100. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/qt_app.py +272 -6
  101. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/tauri_bridge.py +242 -1
  102. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/update.py +1 -1
  103. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31/src/iints_sdk_python35.egg-info}/PKG-INFO +31 -3
  104. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_sdk_python35.egg-info/SOURCES.txt +89 -0
  105. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_sdk_python35.egg-info/requires.txt +30 -0
  106. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_research_workflows.py +121 -0
  107. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_desktop_app.py +104 -9
  108. iints_sdk_python35-1.5.31/tests/test_desktop_packaging.py +31 -0
  109. iints_sdk_python35-1.5.31/tests/test_tauri_bridge.py +330 -0
  110. iints_sdk_python35-1.5.30/src/iints_desktop/evidence_connectors.py +0 -173
  111. iints_sdk_python35-1.5.30/tests/test_tauri_bridge.py +0 -165
  112. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/LICENSE +0 -0
  113. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/LICENSE-MIT-IINTS-LEGACY +0 -0
  114. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/NOTICE +0 -0
  115. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/setup.cfg +0 -0
  116. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/__init__.py +0 -0
  117. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/assistant.py +0 -0
  118. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/backends/__init__.py +0 -0
  119. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/backends/base.py +0 -0
  120. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/backends/mistral_api.py +0 -0
  121. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/backends/ollama.py +0 -0
  122. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/cli.py +0 -0
  123. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/deterministic.py +0 -0
  124. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/insights.py +0 -0
  125. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/mdmp_guard.py +0 -0
  126. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/model_catalog.py +0 -0
  127. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/prepare.py +0 -0
  128. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/ai/prompts.py +0 -0
  129. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/__init__.py +0 -0
  130. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/algorithm_xray.py +0 -0
  131. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/baseline.py +0 -0
  132. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/booth_demo.py +0 -0
  133. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/carelink_workbench.py +0 -0
  134. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/clinical_benchmark.py +0 -0
  135. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/clinical_metrics.py +0 -0
  136. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/clinical_tir_analyzer.py +0 -0
  137. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/diabetes_metrics.py +0 -0
  138. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/edge_efficiency.py +0 -0
  139. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/edge_performance_monitor.py +0 -0
  140. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/eucys_results.py +0 -0
  141. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/evidence_bundle.py +0 -0
  142. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/explainability.py +0 -0
  143. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/explainable_ai.py +0 -0
  144. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/hardware_benchmark.py +0 -0
  145. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/metrics.py +0 -0
  146. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/population_report.py +0 -0
  147. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/poster.py +0 -0
  148. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/reporting.py +0 -0
  149. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/run_quality.py +0 -0
  150. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/safety_index.py +0 -0
  151. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/safety_visualizer.py +0 -0
  152. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/sensor_filtering.py +0 -0
  153. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/study_analysis.py +0 -0
  154. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/study_engine.py +0 -0
  155. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/study_experiment.py +0 -0
  156. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/study_poster.py +0 -0
  157. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/study_protocol.py +0 -0
  158. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/analysis/validator.py +0 -0
  159. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/api/__init__.py +0 -0
  160. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/api/base_algorithm.py +0 -0
  161. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/api/registry.py +0 -0
  162. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/api/template_algorithm.py +0 -0
  163. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/assets/iints_logo.png +0 -0
  164. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/cli/__init__.py +0 -0
  165. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/cli/patient_cli.py +0 -0
  166. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/__init__.py +0 -0
  167. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/__init__.py +0 -0
  168. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/battle_runner.py +0 -0
  169. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/clinical_baseline.py +0 -0
  170. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/correction_bolus.py +0 -0
  171. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/discovery.py +0 -0
  172. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/fixed_basal_bolus.py +0 -0
  173. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/hybrid_algorithm.py +0 -0
  174. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/imitation_controller.py +0 -0
  175. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/lstm_algorithm.py +0 -0
  176. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/mock_algorithms.py +0 -0
  177. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/mpc_controller.py +0 -0
  178. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/neural_controller.py +0 -0
  179. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/pid_controller.py +0 -0
  180. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/algorithms/standard_pump_algo.py +0 -0
  181. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/clinical_metrics.py +0 -0
  182. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/device.py +0 -0
  183. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/device_manager.py +0 -0
  184. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/devices/__init__.py +0 -0
  185. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/devices/models.py +0 -0
  186. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/digital_twin.py +0 -0
  187. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/__init__.py +0 -0
  188. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/advanced_metabolic_model.py +0 -0
  189. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/bergman_model.py +0 -0
  190. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/hovorka_model.py +0 -0
  191. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/models.py +0 -0
  192. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/patient_factory.py +0 -0
  193. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/physiology.py +0 -0
  194. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/patient/profile.py +0 -0
  195. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/physiology_variation.py +0 -0
  196. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/safety/__init__.py +0 -0
  197. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/safety/config.py +0 -0
  198. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/safety/input_validator.py +0 -0
  199. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/safety/supervisor.py +0 -0
  200. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/simulation/__init__.py +0 -0
  201. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/simulation/scenario_parser.py +0 -0
  202. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/simulator.py +0 -0
  203. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/supervisor.py +0 -0
  204. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/core/units.py +0 -0
  205. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/__init__.py +0 -0
  206. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/adapter.py +0 -0
  207. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/certify.py +0 -0
  208. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/column_mapper.py +0 -0
  209. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/contracts/diabetes_cgm_mdmp_contract.yaml +0 -0
  210. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/contracts.py +0 -0
  211. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/datasets.json +0 -0
  212. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/demo/__init__.py +0 -0
  213. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/demo/demo_cgm.csv +0 -0
  214. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/evidence.py +0 -0
  215. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/guardians.py +0 -0
  216. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/importer.py +0 -0
  217. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/ingestor.py +0 -0
  218. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/mdmp_visualizer.py +0 -0
  219. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/medtronic_live.py +0 -0
  220. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/nightscout.py +0 -0
  221. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/physiology_residual_profiles.json +0 -0
  222. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/quality_checker.py +0 -0
  223. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/realism_dashboard.py +0 -0
  224. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/realism_governance.py +0 -0
  225. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/realism_reference.py +0 -0
  226. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/realism_references.json +0 -0
  227. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/realism_validator.py +0 -0
  228. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/registry.py +0 -0
  229. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/research_catalog.py +0 -0
  230. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/runner.py +0 -0
  231. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/study_corruption.py +0 -0
  232. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/synthetic_mirror.py +0 -0
  233. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/tidepool.py +0 -0
  234. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/universal_parser.py +0 -0
  235. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/clinic_safe_baseline.yaml +0 -0
  236. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/clinic_safe_hyper_challenge.yaml +0 -0
  237. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/clinic_safe_hypo_prone.yaml +0 -0
  238. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/clinic_safe_midnight.yaml +0 -0
  239. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/clinic_safe_pizza.yaml +0 -0
  240. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/clinic_safe_stress_meal.yaml +0 -0
  241. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/default_patient.yaml +0 -0
  242. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/patient_559_config.yaml +0 -0
  243. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/reference_azt1d_t1d.yaml +0 -0
  244. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/reference_free_living_t1d.yaml +0 -0
  245. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/data/virtual_patients/reference_hupa_ucm_t1d.yaml +0 -0
  246. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/demo_assets.py +0 -0
  247. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/emulation/__init__.py +0 -0
  248. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/emulation/legacy_base.py +0 -0
  249. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/emulation/medtronic_780g.py +0 -0
  250. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/emulation/omnipod_5.py +0 -0
  251. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/emulation/tandem_controliq.py +0 -0
  252. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/governance/__init__.py +0 -0
  253. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/governance/research_policy.py +0 -0
  254. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/highlevel.py +0 -0
  255. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/jetson/__init__.py +0 -0
  256. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/jetson/endurance.py +0 -0
  257. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/jetson/research_pipeline.py +0 -0
  258. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/learning/__init__.py +0 -0
  259. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/learning/autonomous_optimizer.py +0 -0
  260. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/learning/learning_system.py +0 -0
  261. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/__init__.py +0 -0
  262. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/api.py +0 -0
  263. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/daemon.py +0 -0
  264. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/edge_benchmark.py +0 -0
  265. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/edge_ops.py +0 -0
  266. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/fpga.py +0 -0
  267. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/long_study.py +0 -0
  268. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/medtronic_direct.py +0 -0
  269. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/pico_pump.py +0 -0
  270. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/runtime.py +0 -0
  271. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/service_export.py +0 -0
  272. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/live_patient/uno_q.py +0 -0
  273. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/mdmp/__init__.py +0 -0
  274. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/mdmp/backend.py +0 -0
  275. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/mdmp/eu_ai_pact.py +0 -0
  276. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/metrics.py +0 -0
  277. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/population/__init__.py +0 -0
  278. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/population/generator.py +0 -0
  279. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/population/runner.py +0 -0
  280. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/__init__.py +0 -0
  281. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/forecast_calibration_profiles.yaml +0 -0
  282. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/golden_benchmark.yaml +0 -0
  283. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/presets.json +0 -0
  284. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/safety_contract_default.yaml +0 -0
  285. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/presets/validation_profiles.yaml +0 -0
  286. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/alphafold_engine.py +0 -0
  287. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/anatomy.py +0 -0
  288. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/audit.py +0 -0
  289. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/calibration_gate.py +0 -0
  290. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/config.py +0 -0
  291. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/control.py +0 -0
  292. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/control_eval.py +0 -0
  293. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/data_blend.py +0 -0
  294. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/dataset.py +0 -0
  295. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/evaluation.py +0 -0
  296. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/forecasting.py +0 -0
  297. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/genetics.py +0 -0
  298. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/glucose_model.py +0 -0
  299. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/jetson_hf_trainer.py +0 -0
  300. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/local_ai.py +0 -0
  301. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/local_ai_gate.py +0 -0
  302. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/losses.py +0 -0
  303. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/metrics.py +0 -0
  304. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/model_registry.py +0 -0
  305. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/neural_control.py +0 -0
  306. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/pharmacology.py +0 -0
  307. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/physiology.py +0 -0
  308. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/physiology_calibration.py +0 -0
  309. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/predictor.py +0 -0
  310. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/results_manager.py +0 -0
  311. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/stem_cell_optimizer.py +0 -0
  312. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/stem_cell_transplant.py +0 -0
  313. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/structure.py +0 -0
  314. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/research/tissue_stressor.py +0 -0
  315. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/scenarios/__init__.py +0 -0
  316. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/scenarios/generator.py +0 -0
  317. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/scenarios/study_pack.py +0 -0
  318. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/__init__.py +0 -0
  319. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/default_algorithm.py +0 -0
  320. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/demos/__init__.py +0 -0
  321. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/demos/live_stage_demo.py +0 -0
  322. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/pico_pump/README.md +0 -0
  323. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/pico_pump/code.py +0 -0
  324. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/pico_pump/serial_protocol.txt +0 -0
  325. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/scenarios/__init__.py +0 -0
  326. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/scenarios/chaos_insulin_stacking.json +0 -0
  327. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/scenarios/chaos_runaway_ai.json +0 -0
  328. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/scenarios/example_scenario.json +0 -0
  329. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/scenarios/exercise_stress.json +0 -0
  330. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/uno_q/README.md +0 -0
  331. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/templates/uno_q/iints_supervisor_bridge.ino +0 -0
  332. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/tools/ai_realism_auditor.py +0 -0
  333. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/tools/digital_twin_calibrator.py +0 -0
  334. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/tools/theory_stress_lab.py +0 -0
  335. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/utils/__init__.py +0 -0
  336. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/utils/academic_artifacts.py +0 -0
  337. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/utils/csv_safety.py +0 -0
  338. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/utils/plotting.py +0 -0
  339. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/utils/run_io.py +0 -0
  340. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/utils/url_safety.py +0 -0
  341. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/__init__.py +0 -0
  342. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/golden.py +0 -0
  343. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/replay.py +0 -0
  344. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/run_doctor.py +0 -0
  345. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/run_validation.py +0 -0
  346. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/safety_contract.py +0 -0
  347. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/validation/schemas.py +0 -0
  348. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/visualization/__init__.py +0 -0
  349. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/visualization/cockpit.py +0 -0
  350. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints/visualization/uncertainty_cloud.py +0 -0
  351. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/__init__.py +0 -0
  352. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/app.py +0 -0
  353. {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
  354. {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
  355. {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
  356. {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
  357. {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
  358. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/gcgr_3D.png +0 -0
  359. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/glucagon_3D.png +0 -0
  360. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/glut4_3D.png +0 -0
  361. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/insr_3D.png +0 -0
  362. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/alphafold/insulin_3D.png +0 -0
  363. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/app_icon.icns +0 -0
  364. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/app_icon.ico +0 -0
  365. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/assets/app_icon.png +0 -0
  366. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/cocoa_app.py +0 -0
  367. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/engine.py +0 -0
  368. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/fetcher.py +0 -0
  369. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/local_ai.py +0 -0
  370. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/mdmp.py +0 -0
  371. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/molecule_viewer.py +0 -0
  372. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/molecules.py +0 -0
  373. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/render_3dmol.py +0 -0
  374. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/results.py +0 -0
  375. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_desktop/terminal_utils.py +0 -0
  376. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_sdk_python35.egg-info/dependency_links.txt +0 -0
  377. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_sdk_python35.egg-info/entry_points.txt +0 -0
  378. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/iints_sdk_python35.egg-info/top_level.txt +0 -0
  379. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_ai/__init__.py +0 -0
  380. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_ai/lineage.py +0 -0
  381. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/__init__.py +0 -0
  382. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/audit.py +0 -0
  383. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/bias_hooks.py +0 -0
  384. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/bundle.py +0 -0
  385. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/certification.py +0 -0
  386. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/cli.py +0 -0
  387. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/compare.py +0 -0
  388. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/conformance.py +0 -0
  389. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/contracts.py +0 -0
  390. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/crypto.py +0 -0
  391. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/data/conformance/vectors/delegation.json +0 -0
  392. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/data/conformance/vectors/fingerprint.json +0 -0
  393. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/data/conformance/vectors/grading.json +0 -0
  394. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/data/conformance/vectors/signing.json +0 -0
  395. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/delegate.py +0 -0
  396. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/diffing.py +0 -0
  397. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/drift.py +0 -0
  398. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/exceptions.py +0 -0
  399. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/fingerprint.py +0 -0
  400. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/fingerprint_store.py +0 -0
  401. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/hf.py +0 -0
  402. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/keys/mdmp_pub_v1.pem +0 -0
  403. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/llm_provenance.py +0 -0
  404. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/migrate.py +0 -0
  405. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/policy.py +0 -0
  406. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/prov.py +0 -0
  407. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/registry.py +0 -0
  408. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/runner.py +0 -0
  409. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/schema_export.py +0 -0
  410. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/synthetic.py +0 -0
  411. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/trust.py +0 -0
  412. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_core/visualizer.py +0 -0
  413. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_flavors/__init__.py +0 -0
  414. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_integrations/__init__.py +0 -0
  415. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_integrations/dvc.py +0 -0
  416. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_integrations/mlflow.py +0 -0
  417. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/src/mdmp_integrations/wandb.py +0 -0
  418. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_bergman.py +0 -0
  419. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_ci_governance.py +0 -0
  420. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_algorithm_loading.py +0 -0
  421. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_booth_demo.py +0 -0
  422. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_carelink_workbench.py +0 -0
  423. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_cloud_import_security.py +0 -0
  424. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_demo_export.py +0 -0
  425. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_demo_live.py +0 -0
  426. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_edge_runtime.py +0 -0
  427. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_expo_tools.py +0 -0
  428. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_fpga.py +0 -0
  429. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_onboarding.py +0 -0
  430. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_patient_runtime.py +0 -0
  431. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_poster.py +0 -0
  432. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_run_summary.py +0 -0
  433. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_cli_theory_stress_lab.py +0 -0
  434. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_install_doctor.py +0 -0
  435. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_jetson_endurance.py +0 -0
  436. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_physiology_variation.py +0 -0
  437. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_plugin_system.py +0 -0
  438. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_population.py +0 -0
  439. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_presets_realism.py +0 -0
  440. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_qt_desktop_runtime.py +0 -0
  441. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_research_policy.py +0 -0
  442. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_research_realism_tools.py +0 -0
  443. {iints_sdk_python35-1.5.30 → iints_sdk_python35-1.5.31}/tests/test_scientific_fidelity.py +0 -0
  444. {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
@@ -0,0 +1,3 @@
1
+ include CITATION.cff
2
+ include README.md
3
+ include docs/*.md
@@ -1,10 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iints-sdk-python35
3
- Version: 1.5.30
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 and opening generated results without using many terminal commands. Windows and Linux beta builds use the richer Qt interface; the current macOS DMG uses a small native Cocoa fallback so it opens more reliably while the Mac Qt bundle is being hardened.
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[full,desktop,mdmp]"
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 and opening generated results without using many terminal commands. Windows and Linux beta builds use the richer Qt interface; the current macOS DMG uses a small native Cocoa fallback so it opens more reliably while the Mac Qt bundle is being hardened.
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[full,desktop,mdmp]"
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
+ ```