iints-sdk-python35 1.5.33__tar.gz → 1.5.34__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 (451) hide show
  1. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/CITATION.cff +1 -1
  2. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/PKG-INFO +22 -41
  3. iints_sdk_python35-1.5.34/README.md +42 -0
  4. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/API_REFERENCE.md +90 -5
  5. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/CLI_CHEATSHEET.md +24 -4
  6. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/COMMAND_REFERENCE.md +59 -3
  7. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/COMPREHENSIVE_GUIDE.md +9 -5
  8. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/MDMP.md +32 -9
  9. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/PHYSIOLOGY_REFERENCE.md +1 -1
  10. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/RESEARCH_WORKBENCH_GUIDE.md +4 -2
  11. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/TAURI_DESKTOP.md +4 -2
  12. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/UPDATING.md +31 -9
  13. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/USER_GUIDE_MAP.md +6 -2
  14. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/pyproject.toml +11 -10
  15. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/__init__.py +1 -9
  16. iints_sdk_python35-1.5.34/src/iints/_version.py +3 -0
  17. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/cli/cli.py +478 -42
  18. iints_sdk_python35-1.5.34/src/iints/cli/menu.py +155 -0
  19. iints_sdk_python35-1.5.33/src/iints/data/virtual_patients/clinic_safe_midnight.yaml → iints_sdk_python35-1.5.34/src/iints/data/virtual_patients/clinic_safe_hypo_prone.yaml +4 -4
  20. iints_sdk_python35-1.5.33/src/iints/data/virtual_patients/clinic_safe_hypo_prone.yaml → iints_sdk_python35-1.5.34/src/iints/data/virtual_patients/clinic_safe_midnight.yaml +4 -4
  21. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/virtual_patients/clinic_safe_pizza.yaml +3 -2
  22. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/mdmp/__init__.py +19 -0
  23. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/presets/__init__.py +1 -1
  24. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/presets/golden_benchmark.yaml +1 -1
  25. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/presets/presets.json +85 -83
  26. iints_sdk_python35-1.5.34/src/iints/versioning.py +468 -0
  27. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/app.py +1 -1
  28. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/cocoa_app.py +1 -1
  29. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/engine.py +34 -5
  30. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/local_ai.py +141 -27
  31. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/qt_app.py +1 -1
  32. iints_sdk_python35-1.5.34/src/iints_desktop/results.py +296 -0
  33. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/tauri_bridge.py +22 -2
  34. iints_sdk_python35-1.5.34/src/iints_desktop/update.py +123 -0
  35. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_sdk_python35.egg-info/PKG-INFO +22 -41
  36. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_sdk_python35.egg-info/SOURCES.txt +5 -1
  37. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_sdk_python35.egg-info/entry_points.txt +6 -6
  38. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_sdk_python35.egg-info/requires.txt +4 -3
  39. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/__init__.py +17 -1
  40. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/cli.py +4 -4
  41. iints_sdk_python35-1.5.34/src/mdmp_core/crypto.py +704 -0
  42. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_onboarding.py +98 -1
  43. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_desktop_app.py +87 -12
  44. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_tauri_bridge.py +6 -2
  45. iints_sdk_python35-1.5.34/tests/test_versioning.py +128 -0
  46. iints_sdk_python35-1.5.33/README.md +0 -62
  47. iints_sdk_python35-1.5.33/src/iints_desktop/results.py +0 -163
  48. iints_sdk_python35-1.5.33/src/iints_desktop/update.py +0 -80
  49. iints_sdk_python35-1.5.33/src/mdmp_core/crypto.py +0 -372
  50. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/LICENSE +0 -0
  51. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/LICENSE-MIT-IINTS-LEGACY +0 -0
  52. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/MANIFEST.in +0 -0
  53. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/NOTICE +0 -0
  54. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/ACADEMIC_RESEARCH_WORKBENCH.md +0 -0
  55. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/AI_ASSISTANT.md +0 -0
  56. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/AI_RED_TEAM_AUDITOR.md +0 -0
  57. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/ALL_SCIENTIFIC_THEORIES.md +0 -0
  58. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/APP_INSTALL.md +0 -0
  59. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/ARCHITECTURE_HARDENING.md +0 -0
  60. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/ARCHITECTURE_OVERVIEW.md +0 -0
  61. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/ARDUINO_UNO_Q.md +0 -0
  62. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/BOOTH_DEMO.md +0 -0
  63. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/CONTRIBUTING_SAFELY.md +0 -0
  64. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/CORE_CONCEPTS.md +0 -0
  65. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/CROSS_SCALE_REFERENCE_LABS.md +0 -0
  66. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/DESKTOP_APP.md +0 -0
  67. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/DESKTOP_SIGNING.md +0 -0
  68. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/DEVELOPER_PORTAL.md +0 -0
  69. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/DIABETES_RESEARCH_DATASETS.md +0 -0
  70. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/DIGITAL_PATIENT_PI.md +0 -0
  71. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/DIGITAL_TWIN_BIOLOGY.md +0 -0
  72. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/DOCUMENTATION_INDEX.md +0 -0
  73. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/DUAL_REPO_WORKFLOW.md +0 -0
  74. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/EDGE_HARDWARE.md +0 -0
  75. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/EDGE_REMOTE_DEPLOY.md +0 -0
  76. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/EU_AI_PACT_GOVERNANCE.md +0 -0
  77. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/EVIDENCE_BASE.md +0 -0
  78. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/EVIDENCE_BUNDLE.md +0 -0
  79. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/FORMULA_REGISTRY.md +0 -0
  80. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/FPGA_MODE.md +0 -0
  81. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/GETTING_STARTED.md +0 -0
  82. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/GLUCOSE_MODEL.md +0 -0
  83. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/HARDWARE.md +0 -0
  84. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/HYPOGLYCEMIA_SCIENCE_MODEL.md +0 -0
  85. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/INSTALLATION.md +0 -0
  86. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/JETSON_AUTOML_FACTORY.md +0 -0
  87. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/JETSON_ENDURANCE.md +0 -0
  88. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/LEARNING_PATH.md +0 -0
  89. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/LOCAL_AI_RESEARCH.md +0 -0
  90. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/LOCAL_AI_SAFETY_GATES.md +0 -0
  91. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/MAINTAINER_GUIDE.md +0 -0
  92. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/MAKERFAIRE_PI.md +0 -0
  93. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/MAKERFAIRE_PI_CHECKLIST.md +0 -0
  94. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/MDMP_FULL_GUIDE.md +0 -0
  95. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/MDMP_QUICKSTART.md +0 -0
  96. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/MECHANISTIC_REFERENCE_MODELS.md +0 -0
  97. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/MEDTRONIC_CARELINK_LIVE_BRIDGE.md +0 -0
  98. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/MEDTRONIC_DIRECT_PUMP_TRANSPORT.md +0 -0
  99. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/MISTRAL_MODEL_MIGRATION.md +0 -0
  100. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/NUMERIC_AUTHORITY.md +0 -0
  101. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/OBSIDIAN_PUBLIC_VAULT.md +0 -0
  102. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/OFFICIAL_MANUAL.md +0 -0
  103. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/PAPER_TECHNICAL_DOSSIER.md +0 -0
  104. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/PICO_PUMP_LAB.md +0 -0
  105. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/PLAIN_LANGUAGE_GUIDE.md +0 -0
  106. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/PROJECT_BOUNDARIES.md +0 -0
  107. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/PUBLIC_DOCUMENTATION.md +0 -0
  108. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/PUBLIC_RELEASE_CHECKLIST.md +0 -0
  109. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/QUICKSTART.md +0 -0
  110. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/REAL_DATA_REALISM.md +0 -0
  111. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/REFERENCE_OVERVIEW.md +0 -0
  112. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/RUN_OUTPUTS.md +0 -0
  113. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/SCIENTIFIC_WORKFLOW.md +0 -0
  114. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/SOURCE_LIBRARY.md +0 -0
  115. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/STUDY_ANALYSIS.md +0 -0
  116. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/TECHNICAL_README.md +0 -0
  117. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/THEORY_STRESS_LAB.md +0 -0
  118. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/TROUBLESHOOTING.md +0 -0
  119. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/WORKFLOWS.md +0 -0
  120. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/comparison_interpretation.md +0 -0
  121. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/emulation_references.md +0 -0
  122. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/docs/index.md +0 -0
  123. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/setup.cfg +0 -0
  124. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/ai/__init__.py +0 -0
  125. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/ai/assistant.py +0 -0
  126. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/ai/backends/__init__.py +0 -0
  127. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/ai/backends/base.py +0 -0
  128. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/ai/backends/mistral_api.py +0 -0
  129. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/ai/backends/ollama.py +0 -0
  130. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/ai/cli.py +0 -0
  131. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/ai/deterministic.py +0 -0
  132. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/ai/insights.py +0 -0
  133. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/ai/mdmp_guard.py +0 -0
  134. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/ai/model_catalog.py +0 -0
  135. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/ai/prepare.py +0 -0
  136. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/ai/prompts.py +0 -0
  137. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/__init__.py +0 -0
  138. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/algorithm_xray.py +0 -0
  139. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/baseline.py +0 -0
  140. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/booth_demo.py +0 -0
  141. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/carelink_workbench.py +0 -0
  142. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/clinical_benchmark.py +0 -0
  143. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/clinical_metrics.py +0 -0
  144. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/clinical_tir_analyzer.py +0 -0
  145. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/diabetes_metrics.py +0 -0
  146. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/edge_efficiency.py +0 -0
  147. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/edge_performance_monitor.py +0 -0
  148. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/eucys_results.py +0 -0
  149. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/evidence_bundle.py +0 -0
  150. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/explainability.py +0 -0
  151. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/explainable_ai.py +0 -0
  152. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/hardware_benchmark.py +0 -0
  153. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/metrics.py +0 -0
  154. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/population_report.py +0 -0
  155. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/poster.py +0 -0
  156. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/reporting.py +0 -0
  157. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/run_quality.py +0 -0
  158. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/safety_index.py +0 -0
  159. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/safety_visualizer.py +0 -0
  160. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/sensor_filtering.py +0 -0
  161. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/study_analysis.py +0 -0
  162. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/study_engine.py +0 -0
  163. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/study_experiment.py +0 -0
  164. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/study_poster.py +0 -0
  165. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/study_protocol.py +0 -0
  166. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/analysis/validator.py +0 -0
  167. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/api/__init__.py +0 -0
  168. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/api/base_algorithm.py +0 -0
  169. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/api/registry.py +0 -0
  170. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/api/template_algorithm.py +0 -0
  171. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/assets/iints_logo.png +0 -0
  172. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/cli/__init__.py +0 -0
  173. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/cli/patient_cli.py +0 -0
  174. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/__init__.py +0 -0
  175. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/__init__.py +0 -0
  176. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/battle_runner.py +0 -0
  177. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/clinical_baseline.py +0 -0
  178. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/correction_bolus.py +0 -0
  179. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/discovery.py +0 -0
  180. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/fixed_basal_bolus.py +0 -0
  181. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/hybrid_algorithm.py +0 -0
  182. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/imitation_controller.py +0 -0
  183. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/lstm_algorithm.py +0 -0
  184. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/mock_algorithms.py +0 -0
  185. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/mpc_controller.py +0 -0
  186. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/neural_controller.py +0 -0
  187. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/pid_controller.py +0 -0
  188. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/algorithms/standard_pump_algo.py +0 -0
  189. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/clinical_metrics.py +0 -0
  190. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/device.py +0 -0
  191. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/device_manager.py +0 -0
  192. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/devices/__init__.py +0 -0
  193. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/devices/models.py +0 -0
  194. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/digital_twin.py +0 -0
  195. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/formula_registry.py +0 -0
  196. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/patient/__init__.py +0 -0
  197. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/patient/advanced_metabolic_model.py +0 -0
  198. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/patient/bergman_model.py +0 -0
  199. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/patient/hovorka_model.py +0 -0
  200. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/patient/models.py +0 -0
  201. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/patient/patient_factory.py +0 -0
  202. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/patient/physiology.py +0 -0
  203. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/patient/profile.py +0 -0
  204. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/physiology_variation.py +0 -0
  205. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/safety/__init__.py +0 -0
  206. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/safety/config.py +0 -0
  207. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/safety/input_validator.py +0 -0
  208. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/safety/supervisor.py +0 -0
  209. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/simulation/__init__.py +0 -0
  210. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/simulation/scenario_parser.py +0 -0
  211. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/simulator.py +0 -0
  212. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/supervisor.py +0 -0
  213. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/core/units.py +0 -0
  214. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/__init__.py +0 -0
  215. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/adapter.py +0 -0
  216. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/certify.py +0 -0
  217. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/column_mapper.py +0 -0
  218. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/contracts/diabetes_cgm_mdmp_contract.yaml +0 -0
  219. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/contracts.py +0 -0
  220. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/datasets.json +0 -0
  221. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/demo/__init__.py +0 -0
  222. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/demo/demo_cgm.csv +0 -0
  223. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/evidence.py +0 -0
  224. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/guardians.py +0 -0
  225. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/importer.py +0 -0
  226. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/ingestor.py +0 -0
  227. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/mdmp_visualizer.py +0 -0
  228. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/medtronic_live.py +0 -0
  229. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/nightscout.py +0 -0
  230. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/physiology_residual_profiles.json +0 -0
  231. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/quality_checker.py +0 -0
  232. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/realism_dashboard.py +0 -0
  233. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/realism_governance.py +0 -0
  234. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/realism_reference.py +0 -0
  235. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/realism_references.json +0 -0
  236. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/realism_validator.py +0 -0
  237. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/registry.py +0 -0
  238. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/research_catalog.py +0 -0
  239. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/runner.py +0 -0
  240. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/study_corruption.py +0 -0
  241. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/synthetic_mirror.py +0 -0
  242. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/tidepool.py +0 -0
  243. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/universal_parser.py +0 -0
  244. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/virtual_patients/clinic_safe_baseline.yaml +0 -0
  245. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/virtual_patients/clinic_safe_hyper_challenge.yaml +0 -0
  246. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/virtual_patients/clinic_safe_stress_meal.yaml +0 -0
  247. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/virtual_patients/default_patient.yaml +0 -0
  248. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/virtual_patients/patient_559_config.yaml +0 -0
  249. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/virtual_patients/reference_azt1d_t1d.yaml +0 -0
  250. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/virtual_patients/reference_free_living_t1d.yaml +0 -0
  251. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/data/virtual_patients/reference_hupa_ucm_t1d.yaml +0 -0
  252. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/demo_assets.py +0 -0
  253. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/emulation/__init__.py +0 -0
  254. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/emulation/legacy_base.py +0 -0
  255. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/emulation/medtronic_780g.py +0 -0
  256. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/emulation/omnipod_5.py +0 -0
  257. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/emulation/tandem_controliq.py +0 -0
  258. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/governance/__init__.py +0 -0
  259. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/governance/research_policy.py +0 -0
  260. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/highlevel.py +0 -0
  261. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/jetson/__init__.py +0 -0
  262. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/jetson/endurance.py +0 -0
  263. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/jetson/research_pipeline.py +0 -0
  264. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/learning/__init__.py +0 -0
  265. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/learning/autonomous_optimizer.py +0 -0
  266. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/learning/learning_system.py +0 -0
  267. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/live_patient/__init__.py +0 -0
  268. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/live_patient/api.py +0 -0
  269. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/live_patient/daemon.py +0 -0
  270. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/live_patient/edge_benchmark.py +0 -0
  271. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/live_patient/edge_ops.py +0 -0
  272. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/live_patient/fpga.py +0 -0
  273. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/live_patient/long_study.py +0 -0
  274. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/live_patient/medtronic_direct.py +0 -0
  275. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/live_patient/pico_pump.py +0 -0
  276. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/live_patient/runtime.py +0 -0
  277. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/live_patient/service_export.py +0 -0
  278. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/live_patient/uno_q.py +0 -0
  279. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/mdmp/backend.py +0 -0
  280. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/mdmp/eu_ai_pact.py +0 -0
  281. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/metrics.py +0 -0
  282. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/population/__init__.py +0 -0
  283. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/population/generator.py +0 -0
  284. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/population/runner.py +0 -0
  285. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/presets/evidence_sources.yaml +0 -0
  286. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/presets/forecast_calibration_profiles.yaml +0 -0
  287. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/presets/safety_contract_default.yaml +0 -0
  288. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/presets/validation_profiles.yaml +0 -0
  289. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/__init__.py +0 -0
  290. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/academic_bundle.py +0 -0
  291. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/alphafold_engine.py +0 -0
  292. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/anatomy.py +0 -0
  293. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/audit.py +0 -0
  294. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/binding_evidence.py +0 -0
  295. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/calibration_gate.py +0 -0
  296. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/cellml_models.py +0 -0
  297. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/clinvar_engine.py +0 -0
  298. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/config.py +0 -0
  299. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/control.py +0 -0
  300. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/control_eval.py +0 -0
  301. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/copasi_models.py +0 -0
  302. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/data_blend.py +0 -0
  303. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/dataset.py +0 -0
  304. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/evaluation.py +0 -0
  305. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/external_models_common.py +0 -0
  306. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/fmi_models.py +0 -0
  307. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/forecasting.py +0 -0
  308. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/genetics.py +0 -0
  309. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/genomics_engine.py +0 -0
  310. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/glucose_model.py +0 -0
  311. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/jetson_hf_trainer.py +0 -0
  312. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/local_ai.py +0 -0
  313. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/local_ai_gate.py +0 -0
  314. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/losses.py +0 -0
  315. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/mechanistic_models.py +0 -0
  316. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/metrics.py +0 -0
  317. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/model_registry.py +0 -0
  318. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/neural_control.py +0 -0
  319. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/pharmacology.py +0 -0
  320. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/physiology.py +0 -0
  321. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/physiology_calibration.py +0 -0
  322. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/predictor.py +0 -0
  323. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/results_manager.py +0 -0
  324. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/stem_cell_optimizer.py +0 -0
  325. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/stem_cell_transplant.py +0 -0
  326. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/structure.py +0 -0
  327. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/research/tissue_stressor.py +0 -0
  328. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/scenarios/__init__.py +0 -0
  329. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/scenarios/generator.py +0 -0
  330. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/scenarios/study_pack.py +0 -0
  331. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/__init__.py +0 -0
  332. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/default_algorithm.py +0 -0
  333. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/demos/__init__.py +0 -0
  334. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/demos/live_stage_demo.py +0 -0
  335. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/pico_pump/README.md +0 -0
  336. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/pico_pump/code.py +0 -0
  337. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/pico_pump/serial_protocol.txt +0 -0
  338. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/scenarios/__init__.py +0 -0
  339. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/scenarios/chaos_insulin_stacking.json +0 -0
  340. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/scenarios/chaos_runaway_ai.json +0 -0
  341. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/scenarios/example_scenario.json +0 -0
  342. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/scenarios/exercise_stress.json +0 -0
  343. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/uno_q/README.md +0 -0
  344. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/templates/uno_q/iints_supervisor_bridge.ino +0 -0
  345. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/tools/ai_realism_auditor.py +0 -0
  346. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/tools/digital_twin_calibrator.py +0 -0
  347. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/tools/theory_stress_lab.py +0 -0
  348. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/utils/__init__.py +0 -0
  349. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/utils/academic_artifacts.py +0 -0
  350. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/utils/csv_safety.py +0 -0
  351. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/utils/plotting.py +0 -0
  352. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/utils/run_io.py +0 -0
  353. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/utils/url_safety.py +0 -0
  354. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/validation/__init__.py +0 -0
  355. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/validation/golden.py +0 -0
  356. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/validation/replay.py +0 -0
  357. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/validation/run_doctor.py +0 -0
  358. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/validation/run_validation.py +0 -0
  359. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/validation/safety_contract.py +0 -0
  360. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/validation/schemas.py +0 -0
  361. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/visualization/__init__.py +0 -0
  362. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/visualization/cockpit.py +0 -0
  363. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints/visualization/uncertainty_cloud.py +0 -0
  364. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/__init__.py +0 -0
  365. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/assets/alphafold/AF-P01275-F1-model_v4.cif +0 -0
  366. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/assets/alphafold/AF-P01308-F1-model_v4.cif +0 -0
  367. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/assets/alphafold/AF-P06213-F1-model_v6.cif +0 -0
  368. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/assets/alphafold/AF-P14672-F1-model_v6.cif +0 -0
  369. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/assets/alphafold/AF-P47871-F1-model_v6.cif +0 -0
  370. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/assets/alphafold/gcgr_3D.png +0 -0
  371. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/assets/alphafold/glucagon_3D.png +0 -0
  372. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/assets/alphafold/glut4_3D.png +0 -0
  373. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/assets/alphafold/insr_3D.png +0 -0
  374. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/assets/alphafold/insulin_3D.png +0 -0
  375. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/assets/app_icon.icns +0 -0
  376. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/assets/app_icon.ico +0 -0
  377. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/assets/app_icon.png +0 -0
  378. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/evidence_connectors.py +0 -0
  379. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/fetcher.py +0 -0
  380. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/launcher.py +0 -0
  381. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/mdmp.py +0 -0
  382. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/molecule_viewer.py +0 -0
  383. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/molecules.py +0 -0
  384. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/render_3dmol.py +0 -0
  385. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_desktop/terminal_utils.py +0 -0
  386. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_sdk_python35.egg-info/dependency_links.txt +0 -0
  387. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/iints_sdk_python35.egg-info/top_level.txt +0 -0
  388. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_ai/__init__.py +0 -0
  389. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_ai/lineage.py +0 -0
  390. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/audit.py +0 -0
  391. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/bias_hooks.py +0 -0
  392. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/bundle.py +0 -0
  393. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/certification.py +0 -0
  394. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/compare.py +0 -0
  395. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/conformance.py +0 -0
  396. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/contracts.py +0 -0
  397. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/data/conformance/vectors/delegation.json +0 -0
  398. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/data/conformance/vectors/fingerprint.json +0 -0
  399. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/data/conformance/vectors/grading.json +0 -0
  400. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/data/conformance/vectors/signing.json +0 -0
  401. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/delegate.py +0 -0
  402. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/diffing.py +0 -0
  403. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/drift.py +0 -0
  404. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/exceptions.py +0 -0
  405. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/fingerprint.py +0 -0
  406. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/fingerprint_store.py +0 -0
  407. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/hf.py +0 -0
  408. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/keys/mdmp_pub_v1.pem +0 -0
  409. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/llm_provenance.py +0 -0
  410. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/migrate.py +0 -0
  411. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/policy.py +0 -0
  412. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/prov.py +0 -0
  413. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/registry.py +0 -0
  414. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/runner.py +0 -0
  415. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/schema_export.py +0 -0
  416. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/synthetic.py +0 -0
  417. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/trust.py +0 -0
  418. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_core/visualizer.py +0 -0
  419. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_flavors/__init__.py +0 -0
  420. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_integrations/__init__.py +0 -0
  421. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_integrations/dvc.py +0 -0
  422. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_integrations/mlflow.py +0 -0
  423. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/src/mdmp_integrations/wandb.py +0 -0
  424. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_bergman.py +0 -0
  425. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_ci_governance.py +0 -0
  426. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_algorithm_loading.py +0 -0
  427. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_booth_demo.py +0 -0
  428. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_carelink_workbench.py +0 -0
  429. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_cloud_import_security.py +0 -0
  430. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_demo_export.py +0 -0
  431. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_demo_live.py +0 -0
  432. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_edge_runtime.py +0 -0
  433. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_expo_tools.py +0 -0
  434. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_fpga.py +0 -0
  435. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_patient_runtime.py +0 -0
  436. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_poster.py +0 -0
  437. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_research_workflows.py +0 -0
  438. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_run_summary.py +0 -0
  439. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_cli_theory_stress_lab.py +0 -0
  440. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_desktop_packaging.py +0 -0
  441. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_install_doctor.py +0 -0
  442. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_jetson_endurance.py +0 -0
  443. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_physiology_variation.py +0 -0
  444. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_plugin_system.py +0 -0
  445. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_population.py +0 -0
  446. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_presets_realism.py +0 -0
  447. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_qt_desktop_runtime.py +0 -0
  448. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_research_policy.py +0 -0
  449. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_research_realism_tools.py +0 -0
  450. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_scientific_fidelity.py +0 -0
  451. {iints_sdk_python35-1.5.33 → iints_sdk_python35-1.5.34}/tests/test_simulator_calibration.py +0 -0
@@ -6,7 +6,7 @@ authors:
6
6
  - family-names: "Bobbaers"
7
7
  given-names: "Rune"
8
8
  email: "rune.bobbaers@gmail.com"
9
- version: "1.5.33"
9
+ version: "1.5.34"
10
10
  date-released: "2026-08-09"
11
11
  repository-code: "https://github.com/python35/IINTS-SDK"
12
12
  url: "https://iints.org"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iints-sdk-python35
3
- Version: 1.5.33
3
+ Version: 1.5.34
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
@@ -24,8 +24,9 @@ License-File: LICENSE-MIT-IINTS-LEGACY
24
24
  Requires-Dist: certifi>=2024.2.2
25
25
  Requires-Dist: cryptography<51.0.0,>=50.0.0
26
26
  Requires-Dist: defusedxml<1.0.0,>=0.7.1
27
- Requires-Dist: fastapi!=0.136.3,<0.139.1,>=0.115.0
27
+ Requires-Dist: fastapi!=0.136.3,<0.141.2,>=0.115.0
28
28
  Requires-Dist: numpy<3.0.0,>=1.24.0
29
+ Requires-Dist: packaging<27.0,>=23.0
29
30
  Requires-Dist: pandas<3.0.0,>=2.0.0
30
31
  Requires-Dist: pydantic<3.0.0,>=2.0.0
31
32
  Requires-Dist: PyYAML<7.0.0,>=6.0.0
@@ -67,7 +68,7 @@ Requires-Dist: aiohttp<4.0.0,>=3.14.1; extra == "nightscout"
67
68
  Requires-Dist: py-nightscout; extra == "nightscout"
68
69
  Provides-Extra: research
69
70
  Requires-Dist: torch<3.0.0,>=2.13.0; extra == "research"
70
- Requires-Dist: pyarrow<25.0.0,>=12.0.0; extra == "research"
71
+ Requires-Dist: pyarrow<26.0.0,>=12.0.0; extra == "research"
71
72
  Requires-Dist: h5py<4.0.0,>=3.10.0; extra == "research"
72
73
  Requires-Dist: onnx<2.0.0,>=1.22.0; extra == "research"
73
74
  Requires-Dist: onnxscript<1.0.0,>=0.1.0; extra == "research"
@@ -104,7 +105,7 @@ Requires-Dist: onnxscript<1.0.0,>=0.1.0; extra == "desktop-all"
104
105
  Requires-Dist: openpyxl<4.0.0,>=3.0.0; extra == "desktop-all"
105
106
  Requires-Dist: pillow<13.0.0,>=12.3.0; extra == "desktop-all"
106
107
  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: pyarrow<26.0.0,>=12.0.0; extra == "desktop-all"
108
109
  Requires-Dist: pyinstaller<7.0.0,>=6.11.0; extra == "desktop-all"
109
110
  Requires-Dist: pyobjc-framework-Cocoa<13.0,>=10.0; platform_system == "Darwin" and extra == "desktop-all"
110
111
  Requires-Dist: pyserial<4.0,>=3.5; extra == "desktop-all"
@@ -121,57 +122,37 @@ Dynamic: license-file
121
122
  [![CI](https://github.com/python35/IINTS-SDK/actions/workflows/python-package.yml/badge.svg)](https://github.com/python35/IINTS-SDK/actions/workflows/python-package.yml)
122
123
  [![Docs](https://img.shields.io/badge/docs-IINTS--AF-0a66c2?style=flat)](https://python35.github.io/IINTS-SDK/)
123
124
 
124
- IINTS-AF is an open-source research SDK for diabetes technology simulation.
125
+ IINTS-AF is an open-source research SDK for diabetes-technology simulation. It provides virtual-patient scenarios, algorithm experiments, deterministic safety checks, data-assurance tools, glucose-forecasting research, and reproducible reports.
125
126
 
126
- The SDK lets researchers, students, and developers test diabetes-algorithm ideas in a virtual environment. It can simulate digital patients, meals, insulin delivery, CGM/sensor behavior, safety checks, glucose-prediction experiments, and generated reports.
127
-
128
- The purpose of IINTS-AF is to make algorithm behavior easier to inspect and discuss before anything is connected to a real person.
127
+ Its purpose is to make diabetes-technology behavior easier to inspect, test, and discuss before anything is connected to a real person.
129
128
 
130
129
  IINTS-AF is not a medical device. It must not be used for diagnosis, insulin dosing, treatment decisions, or real-time patient care.
131
130
 
132
- ## Links
133
-
134
- - Website: [iints.org](https://iints.org)
135
- - Documentation: [python35.github.io/IINTS-SDK](https://python35.github.io/IINTS-SDK/)
136
- - Rust research workbench: [latest beta](https://github.com/python35/IINTS-SDK/releases/tag/tauri-beta-latest)
137
- - Classic desktop app: [latest Qt beta](https://github.com/python35/IINTS-SDK/releases/tag/desktop-beta-latest)
131
+ ## Start
138
132
 
139
- ## Rust Research Workbench
133
+ ```bash
134
+ python -m pip install -U "iints-sdk-python35[full,mdmp,research,edge]"
135
+ iints demo
136
+ iints menu
137
+ iints version --refresh
138
+ ```
140
139
 
141
- The new native research workbench uses a Rust/Tauri security boundary around the Python scientific engine. It provides guided simulation workflows, result inspection, reproducibility records, local Ollama review, MDMP evidence tools, and audited research connectors.
140
+ ## Desktop App
142
141
 
143
- Current Rust/Tauri beta downloads:
142
+ The optional Rust/Tauri research workbench offers guided runs, result inspection, local AI review, and data-assurance tools.
144
143
 
145
- | Platform | Download |
144
+ | Platform | Latest beta |
146
145
  | --- | --- |
147
146
  | Windows | [`.exe` installer](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-windows-x64-setup.exe) |
148
147
  | macOS | [`.dmg`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-macos.dmg) |
149
148
  | Linux | [`.AppImage`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-linux-x64.AppImage) |
150
149
 
151
- The beta delegates scientific operations to the IINTS-AF Python engine. On first launch, choose
152
- **Install Python engine** if the bridge is unavailable; the app creates a private engine and keeps
153
- its setup visible in a terminal.
154
-
155
- See the [Tauri workbench documentation](https://python35.github.io/IINTS-SDK/TAURI_DESKTOP/) for architecture, security boundaries, and development instructions.
156
-
157
- ## Classic Desktop App
158
-
159
- 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.
160
-
161
- Current beta downloads:
162
-
163
- | Platform | Download |
164
- | --- | --- |
165
- | Windows | [`.exe`](https://github.com/python35/IINTS-SDK/releases/download/desktop-beta-latest/IINTS-AF-Desktop-Beta-windows-x64.exe) |
166
- | macOS | [`.dmg`](https://github.com/python35/IINTS-SDK/releases/download/desktop-beta-latest/IINTS-AF-Desktop-Beta-macos.dmg) |
167
- | Linux | [executable](https://github.com/python35/IINTS-SDK/releases/download/desktop-beta-latest/IINTS-AF-Desktop-Beta-linux-x64) |
168
-
169
- Python install, including the PySide6 desktop runtime:
150
+ ## Links
170
151
 
171
- ```bash
172
- python -m pip install -U "iints-sdk-python35[desktop-all]"
173
- iints-desktop
174
- ```
152
+ - Website: [iints.org](https://iints.org)
153
+ - Documentation: [python35.github.io/IINTS-SDK](https://python35.github.io/IINTS-SDK/)
154
+ - Source: [github.com/python35/IINTS-SDK](https://github.com/python35/IINTS-SDK)
155
+ - Desktop guide: [Tauri research workbench](https://python35.github.io/IINTS-SDK/TAURI_DESKTOP/)
175
156
 
176
157
  ## License
177
158
 
@@ -0,0 +1,42 @@
1
+ # IINTS-AF SDK
2
+
3
+ [![EUCYS 2026](https://img.shields.io/badge/EUCYS-2026%20Selected-gold?style=flat)](https://www.uni-kiel.de/en/eucys2026)
4
+ [![PyPI version](https://badge.fury.io/py/iints-sdk-python35.svg)](https://badge.fury.io/py/iints-sdk-python35)
5
+ [![CI](https://github.com/python35/IINTS-SDK/actions/workflows/python-package.yml/badge.svg)](https://github.com/python35/IINTS-SDK/actions/workflows/python-package.yml)
6
+ [![Docs](https://img.shields.io/badge/docs-IINTS--AF-0a66c2?style=flat)](https://python35.github.io/IINTS-SDK/)
7
+
8
+ IINTS-AF is an open-source research SDK for diabetes-technology simulation. It provides virtual-patient scenarios, algorithm experiments, deterministic safety checks, data-assurance tools, glucose-forecasting research, and reproducible reports.
9
+
10
+ Its purpose is to make diabetes-technology behavior easier to inspect, test, and discuss before anything is connected to a real person.
11
+
12
+ IINTS-AF is not a medical device. It must not be used for diagnosis, insulin dosing, treatment decisions, or real-time patient care.
13
+
14
+ ## Start
15
+
16
+ ```bash
17
+ python -m pip install -U "iints-sdk-python35[full,mdmp,research,edge]"
18
+ iints demo
19
+ iints menu
20
+ iints version --refresh
21
+ ```
22
+
23
+ ## Desktop App
24
+
25
+ The optional Rust/Tauri research workbench offers guided runs, result inspection, local AI review, and data-assurance tools.
26
+
27
+ | Platform | Latest beta |
28
+ | --- | --- |
29
+ | Windows | [`.exe` installer](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-windows-x64-setup.exe) |
30
+ | macOS | [`.dmg`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-macos.dmg) |
31
+ | Linux | [`.AppImage`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-linux-x64.AppImage) |
32
+
33
+ ## Links
34
+
35
+ - Website: [iints.org](https://iints.org)
36
+ - Documentation: [python35.github.io/IINTS-SDK](https://python35.github.io/IINTS-SDK/)
37
+ - Source: [github.com/python35/IINTS-SDK](https://github.com/python35/IINTS-SDK)
38
+ - Desktop guide: [Tauri research workbench](https://python35.github.io/IINTS-SDK/TAURI_DESKTOP/)
39
+
40
+ ## License
41
+
42
+ Apache-2.0 licensed, with legacy MIT notices where applicable.
@@ -3,16 +3,17 @@
3
3
  This page is generated from the Python source tree by `tools/docs/generate_api_reference.py`.
4
4
  Do not edit it by hand; regenerate it after public module changes.
5
5
 
6
- Documented modules: **218**
6
+ Documented modules: **221**
7
7
 
8
8
  ## Package Index
9
9
 
10
10
  | Package | Modules |
11
11
  | --- | ---: |
12
+ | `_version` | 1 |
12
13
  | `ai` | 13 |
13
14
  | `analysis` | 30 |
14
15
  | `api` | 4 |
15
- | `cli` | 3 |
16
+ | `cli` | 4 |
16
17
  | `core` | 40 |
17
18
  | `data` | 25 |
18
19
  | `demo_assets` | 1 |
@@ -33,10 +34,15 @@ Documented modules: **218**
33
34
  | `tools` | 3 |
34
35
  | `utils` | 6 |
35
36
  | `validation` | 7 |
37
+ | `versioning` | 1 |
36
38
  | `visualization` | 3 |
37
39
 
38
40
  ## Module Index
39
41
 
42
+ ### `_version`
43
+
44
+ - [`iints._version`](#iints_version)
45
+
40
46
  ### `ai`
41
47
 
42
48
  - [`iints.ai`](#iintsai)
@@ -97,6 +103,7 @@ Documented modules: **218**
97
103
 
98
104
  - [`iints.cli`](#iintscli)
99
105
  - [`iints.cli.cli`](#iintsclicli)
106
+ - [`iints.cli.menu`](#iintsclimenu)
100
107
  - [`iints.cli.patient_cli`](#iintsclipatient_cli)
101
108
 
102
109
  ### `core`
@@ -324,6 +331,10 @@ Documented modules: **218**
324
331
  - [`iints.validation.safety_contract`](#iintsvalidationsafety_contract)
325
332
  - [`iints.validation.schemas`](#iintsvalidationschemas)
326
333
 
334
+ ### `versioning`
335
+
336
+ - [`iints.versioning`](#iintsversioning)
337
+
327
338
  ### `visualization`
328
339
 
329
340
  - [`iints.visualization`](#iintsvisualization)
@@ -347,6 +358,13 @@ Documented modules: **218**
347
358
  - `generate_agp_report(simulation_results: 'pd.DataFrame', output_path: Optional[str] = None, safety_report: Optional[dict] = None, subject_name: str = 'Research simulation', summary_json_path: Optional[str] = None) -> Optional[str]`
348
359
  - `generate_agp_assets(simulation_results: 'pd.DataFrame', output_dir: Optional[str] = None, subject_name: str = 'Research simulation', summary_json_path: Optional[str] = None, export_svg: bool = True) -> Optional[dict]`
349
360
 
361
+ ## `iints._version`
362
+
363
+ - Source: `src/iints/_version.py`
364
+ - Summary: Version of the IINTS source code in this distribution.
365
+
366
+ No public classes, functions, or all-caps constants are declared directly in this module.
367
+
350
368
  ## `iints.ai`
351
369
 
352
370
  - Source: `src/iints/ai/__init__.py`
@@ -1311,14 +1329,14 @@ No public classes, functions, or all-caps constants are declared directly in thi
1311
1329
  #### `BrandedTyperGroup` methods
1312
1330
 
1313
1331
  - `get_help(self, ctx)`
1314
- - `list_commands(self, ctx)`
1315
1332
 
1316
1333
  ### Public Functions
1317
1334
 
1318
1335
  - `app_callback(ctx: typer.Context, version: Annotated[bool, typer.Option('--version', help='Show the installed SDK version and exit.', is_eager=True)] = False)`
1319
1336
  - `evaluate(algo: Annotated[Path, typer.Option(help='Path to the algorithm Python file')], population: Annotated[int, typer.Option(help='Number of virtual patients to simulate')] = 100, patient_config_name: Annotated[str, typer.Option('--patient-config', help='Base patient configuration name')] = 'default_patient', patient_config_path: Annotated[Optional[Path], typer.Option('--patient-config-path', help='Path to base patient config YAML')] = None, scenario_path: Annotated[Optional[Path], typer.Option('--scenario', help='Path to scenario JSON')] = None, duration: Annotated[int, typer.Option(help='Simulation duration in minutes')] = 720, time_step: Annotated[int, typer.Option(help='Time step in minutes')] = 5, output_dir: Annotated[Optional[Path], typer.Option(help='Output directory')] = None, max_workers: Annotated[Optional[int], typer.Option(help='Max parallel workers (default: all cores)')] = None, seed: Annotated[Optional[int], typer.Option(help='Random seed for reproducibility')] = None, patient_model: Annotated[str, typer.Option('--patient-model', help='Patient model: auto, bergman, custom, simglucose')] = 'auto')`
1320
1337
  - `doctor(smoke_run: Annotated[bool, typer.Option(help='Run a short deterministic smoke simulation')] = False, smoke_duration: Annotated[int, typer.Option(help='Smoke simulation duration in minutes')] = 30, full: Annotated[bool, typer.Option('--full', help='Run extra environment checks that help beginners debug setup issues')] = False, suggest: Annotated[bool, typer.Option('--suggest', help='Print concrete next commands based on what doctor finds')] = False)`
1321
- - `update_sdk(source: Annotated[str, typer.Option(help='Update source: auto, pypi, or github. Auto tries PyPI first and falls back to GitHub main.')] = 'auto', install_extras: Annotated[str, typer.Option('--extras', help='Comma-separated extras to install, e.g. full,mdmp,research,edge. Use empty string for none.')] = 'full,mdmp,research,edge', github_ref: Annotated[str, typer.Option('--github-ref', help='Git ref used with --source github or as the auto fallback.')] = 'main', user: Annotated[bool, typer.Option('--user/--no-user', help='Pass --user to pip for user-site installs.')] = False, pre: Annotated[bool, typer.Option('--pre/--no-pre', help='Allow pre-release versions.')] = False, upgrade_pip: Annotated[bool, typer.Option('--upgrade-pip/--no-upgrade-pip', help='Upgrade pip before installing IINTS.')] = False, repair: Annotated[bool, typer.Option('--repair/--no-repair', help='Uninstall legacy/conflicting IINTS packages before reinstalling.')] = False, force_reinstall: Annotated[bool, typer.Option('--force-reinstall/--no-force-reinstall', help='Ask pip to reinstall even if the version appears current.')] = False, no_cache_dir: Annotated[bool, typer.Option('--no-cache-dir/--use-pip-cache', help="Disable pip's wheel/download cache for this update.")] = False, dry_run: Annotated[bool, typer.Option('--dry-run', help='Print the pip command without executing it.')] = False, yes: Annotated[bool, typer.Option('--yes', '-y', help='Run without asking for confirmation.')] = False, verify: Annotated[bool, typer.Option('--verify/--no-verify', help='Verify the installed package version after the update command completes.')] = True) -> None`
1338
+ - `version_status(refresh: Annotated[bool, typer.Option('--refresh/--cached', help='Refresh stable release metadata instead of using a fresh cache entry.')] = False, offline: Annotated[bool, typer.Option('--offline', help='Do not access release services; use local and cached information only.')] = False, json_output: Annotated[bool, typer.Option('--json', help='Emit machine-readable JSON.')] = False, fail_if_outdated: Annotated[bool, typer.Option('--fail-if-outdated', help='Exit with code 2 when a newer stable SDK release exists.')] = False, fail_if_unknown: Annotated[bool, typer.Option('--fail-if-unknown', help='Exit with code 3 when the latest stable release cannot be verified.')] = False, fail_if_mismatch: Annotated[bool, typer.Option('--fail-if-mismatch', help='Exit with code 4 when package metadata and active SDK source report different versions.')] = False) -> None`
1339
+ - `update_sdk(source: Annotated[str, typer.Option(help='Update source: auto, pypi, or github. Auto uses the stable PyPI release channel.')] = 'auto', install_extras: Annotated[str, typer.Option('--extras', help='Comma-separated extras to install, e.g. full,mdmp,research,edge. Use empty string for none.')] = 'full,mdmp,research,edge', github_ref: Annotated[str, typer.Option('--github-ref', help="Git ref used with --source github. Use 'stable' for the latest SDK release tag.")] = 'stable', user: Annotated[bool, typer.Option('--user/--no-user', help='Pass --user to pip for user-site installs.')] = False, pre: Annotated[bool, typer.Option('--pre/--no-pre', help='Allow pre-release versions.')] = False, upgrade_pip: Annotated[bool, typer.Option('--upgrade-pip/--no-upgrade-pip', help='Upgrade pip before installing IINTS.')] = False, repair: Annotated[bool, typer.Option('--repair/--no-repair', help='Uninstall legacy/conflicting IINTS packages before reinstalling.')] = False, force_reinstall: Annotated[bool, typer.Option('--force-reinstall/--no-force-reinstall', help='Ask pip to reinstall even if the version appears current.')] = False, no_cache_dir: Annotated[bool, typer.Option('--no-cache-dir/--use-pip-cache', help="Disable pip's wheel/download cache for this update.")] = False, dry_run: Annotated[bool, typer.Option('--dry-run', help='Print the pip command without executing it.')] = False, yes: Annotated[bool, typer.Option('--yes', '-y', help='Run without asking for confirmation.')] = False, verify: Annotated[bool, typer.Option('--verify/--no-verify', help='Verify the installed package version after the update command completes.')] = True, check_only: Annotated[bool, typer.Option('--check', help='Check stable release metadata without changing the environment.')] = False) -> None`
1322
1340
  - `delete_sdk(everything: Annotated[bool, typer.Option('--everything/--standard', help='Remove packages, user data, local generated outputs, and a detected IINTS source checkout.')] = False, packages: Annotated[bool, typer.Option('--packages/--no-packages', help='Uninstall IINTS Python packages from the active Python environment.')] = True, user_data: Annotated[bool, typer.Option('--user-data/--no-user-data', help='Remove user-level IINTS config, plugin, and cache folders.')] = True, local_outputs: Annotated[bool, typer.Option('--local-outputs/--no-local-outputs', help='Also remove known generated IINTS output folders in the current directory.')] = False, source_checkout: Annotated[bool, typer.Option('--source-checkout/--no-source-checkout', help='Also remove the detected local IINTS-SDK source checkout, if running from one.')] = False, extra_path: Annotated[Optional[List[Path]], typer.Option('--path', help='Extra IINTS-owned path to remove. Refuses home, root, and current working directory.')] = None, dry_run: Annotated[bool, typer.Option('--dry-run', help='Show what would be removed without deleting anything.')] = False, yes: Annotated[bool, typer.Option('--yes', '-y', help='Delete without asking for confirmation.')] = False) -> None`
1323
1341
  - `run_doctor(algo: Annotated[Optional[Path], typer.Option(help='Algorithm Python file to inspect.')] = None, patient_config_path: Annotated[Optional[Path], typer.Option(help='Patient YAML used for the run.')] = None, scenario_path: Annotated[Optional[Path], typer.Option('--scenario-path', '--scenario', help='Scenario JSON used for the run.')] = None, duration: Annotated[int, typer.Option(help='Requested duration in minutes.')] = 1440, time_step: Annotated[int, typer.Option(help='Simulation time step in minutes.')] = 5, output_dir: Annotated[Optional[Path], typer.Option(help='Output directory to preflight.')] = None, patient_config_name: Annotated[str, typer.Option(help='Packaged patient profile name, if not using a YAML path.')] = 'default_patient', output_json: Annotated[Optional[Path], typer.Option(help='Optional JSON report path.')] = None, fail_on_warning: Annotated[bool, typer.Option(help='Exit with code 1 when any warning is found.')] = False) -> None`
1324
1342
  - `evidence_build(run: Annotated[List[str], typer.Option('--run', help='Repeatable run input in label=path form, for example normal=results/normal.')], output_dir: Annotated[Path, typer.Option(help='Output directory for the evidence bundle.')] = Path('results/evidence_bundle'), title: Annotated[str, typer.Option(help='Human-readable bundle title.')] = 'IINTS Research Evidence Bundle', local_ai_dir: Annotated[Optional[Path], typer.Option(help='Optional local AI lab output directory.')] = None, pump_bundle_dir: Annotated[Optional[Path], typer.Option(help='Optional Pico pump bundle directory.')] = None) -> None`
@@ -1342,6 +1360,10 @@ No public classes, functions, or all-caps constants are declared directly in thi
1342
1360
  - `demo(demo_kind: Annotated[Optional[str], typer.Argument(help='Optional story preset: doctor, eucys, booth, live, quick, or full. Example: `iints demo eucys`.')] = None, output_dir: Annotated[Path, typer.Option(help='Directory where demo outputs should be written')] = Path('results/demo'), mode: Annotated[str, typer.Option('--mode', help='Demo mode: live, quick, or full')] = 'live', quick_mode: Annotated[bool, typer.Option('--quick', help='Shortcut for --mode quick')] = False, full_mode: Annotated[bool, typer.Option('--full', help='Shortcut for --mode full')] = False, presentation_mode: Annotated[bool, typer.Option('--presentation/--simulation-only', help='Default starts the full presentation demo; use --simulation-only for the old one-run starter simulation.')] = True, preset: Annotated[Optional[str], typer.Option(help='Optional preset override. Defaults to quickstart_meal for quick and realistic_reference_day for full.')] = None, seed: Annotated[int, typer.Option(help='Deterministic seed for the bundled demo')] = 42, compare_baselines: Annotated[bool, typer.Option(help='Include built-in baselines in the demo output')] = True, audience: Annotated[str, typer.Option(help='Presenter framing for the live demo: mixed, clinical, engineering, or jury.')] = 'jury', prepare_ai: Annotated[bool, typer.Option('--prepare-ai/--skip-ai', help='Prepare optional local-AI artifacts during the live demo.')] = False, build_evidence: Annotated[bool, typer.Option('--evidence/--no-evidence', help='Build a public research evidence bundle after the demo.')] = True, full_code: Annotated[bool, typer.Option('--full-code/--preview-code', help='Print the whole exported live demo script instead of the curated preview.')] = False, overwrite: Annotated[bool, typer.Option('--overwrite/--no-overwrite', help='Allow replacing previously exported live demo files.')] = True, stage_mode: Annotated[bool, typer.Option('--stage/--technical', help='Default keeps the live demo audience-safe; --technical shows more raw execution detail.')] = True, dry_run: Annotated[bool, typer.Option('--dry-run', help='Show the plan without running the demo')] = False)`
1343
1361
  - `start(goal: Annotated[str, typer.Option('--goal', help='What you want to do: demo, project, study, edge, or data. Aliases like pi, research, and quickstart also work.')] = 'demo', run_now: Annotated[bool, typer.Option('--run', help='Run the safe starter action for demo, project, or edge instead of only printing the plan.')] = False, output_dir: Annotated[Path, typer.Option(help='Output directory for --goal demo.')] = Path('results/demo'), project_name: Annotated[str, typer.Option(help='Project folder name for --goal project.')] = 'iints_quickstart', edge_output_dir: Annotated[Path, typer.Option(help='Edge project folder for --goal edge.')] = Path('iints_pi_demo'), board: Annotated[str, typer.Option(help='Edge board for --goal edge: raspberry_pi or uno_q.')] = 'raspberry_pi') -> None`
1344
1362
  - `onboard(output_dir: Annotated[Path, typer.Option(help='Root directory for the canonical onboarding outputs.')] = Path('results/onboarding'), run_safe_steps: Annotated[bool, typer.Option('--run-safe-steps', help='Run doctor, demo, import-demo, and realism-check.')] = False) -> None`
1363
+ - `cli_map()`
1364
+ - `cli_overview()`
1365
+ - `cli_menu()`
1366
+ - `cli_hub()`
1345
1367
  - `guide()`
1346
1368
  - `new_algo(name: Annotated[str, typer.Option(help='Name of the new algorithm')], author: Annotated[str, typer.Option(help='Author of the algorithm')], output_dir: Annotated[Path, typer.Option(help='Directory to save the new algorithm file')] = Path('.'))`
1347
1369
  - `presets_list()`
@@ -1387,6 +1409,10 @@ No public classes, functions, or all-caps constants are declared directly in thi
1387
1409
  - `mdmp_validate(contract_path: Annotated[Path, typer.Argument(help='Path to MDMP contract YAML')], input_csv: Annotated[Path, typer.Argument(help='Path to input CSV')], output_json: Annotated[Optional[Path], typer.Option(help='Optional output report JSON path')] = None, apply_builtin_transforms: Annotated[bool, typer.Option(help='Apply built-in unit conversion transforms (default: off for explicit MDMP operation)')] = False, fail_on_noncompliant: Annotated[bool, typer.Option(help='Exit code 1 when compliance checks fail')] = False, min_mdmp_grade: Annotated[Optional[str], typer.Option(help='Optional MDMP grade gate (draft, research_grade, clinical_grade)')] = None)`
1388
1410
  - `mdmp_visualizer(report_json: Annotated[Path, typer.Argument(help='Path to MDMP validation report JSON')], output_html: Annotated[Path, typer.Option(help='Output HTML path')] = Path('results/mdmp_dashboard.html'), title: Annotated[str, typer.Option(help='Dashboard title')] = 'IINTS MDMP Certification Dashboard')`
1389
1411
  - `mdmp_synthetic_mirror(input_csv: Annotated[Path, typer.Argument(help='Source CSV')], contract_path: Annotated[Path, typer.Argument(help='MDMP contract YAML')], output_csv: Annotated[Path, typer.Option(help='Output synthetic CSV path')] = Path('data/synthetic_mirror.csv'), output_json: Annotated[Optional[Path], typer.Option(help='Optional synthetic mirror report JSON')] = Path('results/synthetic_mirror_report.json'), rows: Annotated[Optional[int], typer.Option(help='Optional number of rows to generate')] = None, seed: Annotated[int, typer.Option(help='Random seed')] = 42, noise_scale: Annotated[float, typer.Option(help='Numeric perturbation scale')] = 0.05, min_mdmp_grade: Annotated[Optional[str], typer.Option(help='Optional MDMP grade gate')] = 'research_grade', fail_on_noncompliant: Annotated[bool, typer.Option(help='Exit code 1 when generated dataset fails compliance')] = True)`
1412
+ - `mdmp_encrypt_data(input_file: Annotated[Path, typer.Option('--input', '-i', help='Path to input dataset file (CSV/JSON/Parquet)')], output_file: Annotated[Optional[Path], typer.Option('--output', '-o', help='Path to encrypted output file (.enc)')] = None, key: Annotated[Optional[str], typer.Option('--key', '-k', help='Passphrase value (discouraged: visible in shell history; prompt or --key-file is safer)')] = None, key_file: Annotated[Optional[Path], typer.Option('--key-file', help='File containing a passphrase or exactly 32 raw key bytes')] = None, aad: Annotated[Optional[str], typer.Option('--aad', help='Optional Associated Authenticated Data (e.g. study-ID)')] = None, force: Annotated[bool, typer.Option('--force', help='Allow replacing an existing encrypted output file')] = False)`
1413
+ - `mdmp_decrypt_data(input_file: Annotated[Path, typer.Option('--input', '-i', help='Path to encrypted .enc file')], output_file: Annotated[Path, typer.Option('--output', '-o', help='Path to restored output file')], key: Annotated[Optional[str], typer.Option('--key', '-k', help='Passphrase value (discouraged: visible in shell history; prompt or --key-file is safer)')] = None, key_file: Annotated[Optional[Path], typer.Option('--key-file', help='File containing a passphrase or exactly 32 raw key bytes')] = None, aad: Annotated[Optional[str], typer.Option('--aad', help='Associated Authenticated Data used during encryption')] = None, force: Annotated[bool, typer.Option('--force', help='Allow replacing an existing decrypted output file')] = False)`
1414
+ - `mdmp_sign_card(card_file: Annotated[Path, typer.Option('--card', '-c', help='Path to JSON data card / passport')], private_key: Annotated[Path, typer.Option('--key', '-k', help='Path to Ed25519 private key PEM')], output_file: Annotated[Optional[Path], typer.Option('--output', '-o', help='Path to signed output JSON')] = None, signer_name: Annotated[str, typer.Option('--signer', help='Authority name / signer identity')] = 'MDMP-Authority-v1', key_id: Annotated[str, typer.Option('--key-id', help='Key identifier')] = 'mdmp_pub_v1', post_quantum: Annotated[bool, typer.Option('--pqc', '--hybrid', help='Reserved compatibility flag; real ML-DSA signing is not implemented')] = False)`
1415
+ - `mdmp_verify_card(card_file: Annotated[Path, typer.Argument(help='Path to signed JSON data card / passport')], public_key: Annotated[Optional[Path], typer.Option('--key', '-k', help='Optional explicit public key PEM')] = None, dataset_path: Annotated[Optional[Path], typer.Option('--dataset', '-d', help='Optional dataset file to verify fingerprint match')] = None)`
1390
1416
  - `sources(category: Annotated[Optional[str], typer.Option(help='Filter by source category (guideline, trial, model, dataset, ...).')] = None, output_json: Annotated[Optional[Path], typer.Option(help='Optional JSON output path.')] = None)`
1391
1417
  - `research_prepare_azt1d(input_dir: Annotated[Path, typer.Option(help='Root directory containing AZT1D Subject folders')] = Path('data_packs/public/azt1d/AZT1D 2025/CGM Records'), output: Annotated[Path, typer.Option(help='Output dataset path (CSV or Parquet)')] = Path('data_packs/public/azt1d/processed/azt1d_merged.csv'), report: Annotated[Path, typer.Option(help='Quality report output path')] = Path('data_packs/public/azt1d/quality_report.json'), time_step: Annotated[int, typer.Option(help='Expected CGM sample interval (minutes)')] = 5, max_gap_multiplier: Annotated[float, typer.Option(help='Segment-break gap multiplier')] = 2.5, dia_minutes: Annotated[float, typer.Option(help='Insulin action duration (minutes)')] = 240.0, peak_minutes: Annotated[float, typer.Option(help='IOB peak time (minutes, OpenAPS bilinear)')] = 75.0, carb_absorb_minutes: Annotated[float, typer.Option(help='Carb absorption duration (minutes)')] = 120.0, max_basal: Annotated[float, typer.Option(help='Clip basal values above this (U/hr)')] = 20.0, max_bolus: Annotated[float, typer.Option(help='Clip bolus values above this (U)')] = 30.0, max_carbs: Annotated[float, typer.Option(help='Clip carb grams above this')] = 200.0, basal_is_rate: Annotated[bool, typer.Option(help='Treat Basal column as U/hr (convert to U/step)')] = True)`
1392
1418
  - `research_prepare_ohio(input_dir: Annotated[Path, typer.Option(help='Local OhioT1DM root containing 2018/2020 train/test XML folders. Do not commit this folder.')] = Path('OhioT1DM-volledig'), output: Annotated[Path, typer.Option(help='Output dataset path (CSV or Parquet)')] = Path('data_packs/public/ohio_t1dm_full/processed/ohio_train.csv'), report: Annotated[Path, typer.Option(help='Quality report output path')] = Path('data_packs/public/ohio_t1dm_full/processed/ohio_train_quality_report.json'), years: Annotated[str, typer.Option(help='Comma-separated years to include, e.g. 2018,2020')] = '2018,2020', splits: Annotated[str, typer.Option(help='Comma-separated Ohio splits to include: train,test')] = 'train', time_step: Annotated[int, typer.Option(help='Expected CGM sample interval (minutes)')] = 5, max_gap_multiplier: Annotated[float, typer.Option(help='Segment-break gap multiplier')] = 2.5, dia_minutes: Annotated[float, typer.Option(help='Insulin action duration (minutes)')] = 240.0, peak_minutes: Annotated[float, typer.Option(help='IOB peak time (minutes, OpenAPS bilinear)')] = 75.0, carb_absorb_minutes: Annotated[float, typer.Option(help='Carb absorption duration (minutes)')] = 120.0, max_basal: Annotated[float, typer.Option(help='Clip basal values above this (U/hr)')] = 20.0, max_bolus: Annotated[float, typer.Option(help='Clip bolus insulin units above this')] = 30.0, max_carbs: Annotated[float, typer.Option(help='Clip carb grams above this')] = 200.0, icr_default: Annotated[float, typer.Option(help='Fallback ICR (g/U)')] = 10.0, isf_default: Annotated[float, typer.Option(help='Fallback ISF (mg/dL per U)')] = 50.0, filter_meals_without_rise: Annotated[bool, typer.Option('--filter-meals-without-rise/--keep-all-meals', help='Filter meal events that do not show a post-meal glucose rise.')] = True, meal_rise_threshold: Annotated[float, typer.Option(help='Minimum post-meal glucose rise to keep a meal event.')] = 10.0, meal_pre_window: Annotated[float, typer.Option(help='Minutes before meal used for baseline glucose.')] = 10.0, meal_post_window: Annotated[float, typer.Option(help='Minutes after meal used for rise detection.')] = 90.0)`
@@ -1520,6 +1546,27 @@ No public classes, functions, or all-caps constants are declared directly in thi
1520
1546
  - `APP_HELP`
1521
1547
  - `IINTS_ASCII_LOGO`
1522
1548
 
1549
+ ## `iints.cli.menu`
1550
+
1551
+ - Source: `src/iints/cli/menu.py`
1552
+ - Summary: Small, stable navigation helpers for the public CLI.
1553
+ - Explicit exports: `COMMAND_DOMAINS, interactive_menu, show_command_map`
1554
+
1555
+ ### Public Classes
1556
+
1557
+ | Class | Signature | Summary |
1558
+ | --- | --- | --- |
1559
+ | `CommandDomain` | `CommandDomain` | No module docstring. |
1560
+
1561
+ ### Public Functions
1562
+
1563
+ - `show_command_map(console: Optional[Console] = None) -> None`
1564
+ - `interactive_menu(console: Optional[Console] = None) -> None`
1565
+
1566
+ ### Public Constants
1567
+
1568
+ - `COMMAND_DOMAINS`
1569
+
1523
1570
  ## `iints.cli.patient_cli`
1524
1571
 
1525
1572
  - Source: `src/iints/cli/patient_cli.py`
@@ -3482,7 +3529,7 @@ No public classes, functions, or all-caps constants are declared directly in thi
3482
3529
 
3483
3530
  - Source: `src/iints/mdmp/__init__.py`
3484
3531
  - Summary: MDMP public API (separated namespace).
3485
- - Explicit exports: `StreamSpec, FeatureSpec, LabelSpec, ValidationSpec, ProcessSpec, ModelReadyContract, compile_contract, parse_contract, load_contract_yaml, ContractRunner, ValidationResult, CheckResult, MDMP_PROTOCOL_VERSION, MDMP_GRADE_ORDER, classify_mdmp_grade, mdmp_grade_meets_minimum, dataframe_fingerprint, mdmp_gate, MDMPGateError, generate_synthetic_mirror, SyntheticMirrorArtifact, build_mdmp_dashboard_html, MDMPValidationResult, MDMPCheckResult, BACKEND_MDMP_GRADE_ORDER, backend_mdmp_grade_meets_minimum, get_backend, is_mdmp_available, active_mdmp_backend, load_mdmp_contract, run_mdmp_validation, build_mdmp_dashboard_html_with_backend, CORE_AI_PACT_CONTROLS, EU_AI_PACT_CONTROL_DESCRIPTIONS, HIGH_RISK_READINESS_CONTROLS, EUAIPactReadinessResult, review_eu_ai_pact_readiness`
3532
+ - Explicit exports: `StreamSpec, FeatureSpec, LabelSpec, ValidationSpec, ProcessSpec, ModelReadyContract, compile_contract, parse_contract, load_contract_yaml, ContractRunner, ValidationResult, CheckResult, MDMP_PROTOCOL_VERSION, MDMP_GRADE_ORDER, classify_mdmp_grade, mdmp_grade_meets_minimum, dataframe_fingerprint, mdmp_gate, MDMPGateError, generate_synthetic_mirror, SyntheticMirrorArtifact, build_mdmp_dashboard_html, MDMPValidationResult, MDMPCheckResult, BACKEND_MDMP_GRADE_ORDER, backend_mdmp_grade_meets_minimum, get_backend, is_mdmp_available, active_mdmp_backend, load_mdmp_contract, run_mdmp_validation, build_mdmp_dashboard_html_with_backend, CORE_AI_PACT_CONTROLS, EU_AI_PACT_CONTROL_DESCRIPTIONS, HIGH_RISK_READINESS_CONTROLS, EUAIPactReadinessResult, review_eu_ai_pact_readiness, MDMPSigner, MDMPVerifier, derive_key_hkdf, derive_key_scrypt, encrypt_patient_payload, decrypt_patient_payload, encrypt_cgm_dataset_file, decrypt_cgm_dataset_file`
3486
3533
 
3487
3534
  No public classes, functions, or all-caps constants are declared directly in this module.
3488
3535
 
@@ -4925,6 +4972,44 @@ No public classes, functions, or all-caps constants are declared directly in thi
4925
4972
 
4926
4973
  - `LATEST_SCHEMA_VERSION`
4927
4974
 
4975
+ ## `iints.versioning`
4976
+
4977
+ - Source: `src/iints/versioning.py`
4978
+ - Summary: Shared, network-bounded version inspection for the CLI and desktop app.
4979
+ - Explicit exports: `APP_RELEASE_URL, APP_RELEASES_API_URL, ComponentVersionStatus, SDK_DISTRIBUTION, SDK_PYPI_JSON_URL, SDK_RELEASE_URL, check_app_version, check_sdk_version, clear_version_cache, installed_sdk_environment, installed_sdk_version, version_is_newer, version_report`
4980
+
4981
+ ### Public Classes
4982
+
4983
+ | Class | Signature | Summary |
4984
+ | --- | --- | --- |
4985
+ | `ComponentVersionStatus` | `ComponentVersionStatus` | No module docstring. |
4986
+
4987
+ #### `ComponentVersionStatus` methods
4988
+
4989
+ - `to_dict(self) -> dict[str, Any]`
4990
+
4991
+ ### Public Functions
4992
+
4993
+ - `version_is_newer(candidate: str, reference: str) -> bool`
4994
+ - `clear_version_cache(path: Path | None = None) -> None`
4995
+ - `installed_sdk_version() -> str`
4996
+ - `installed_sdk_environment() -> dict[str, Any]`
4997
+ - `check_sdk_version(*, installed: str | None = None, refresh: bool = False, offline: bool = False, cache_path: Path | None = None, cache_ttl: timedelta = DEFAULT_CACHE_TTL, timeout: float = DEFAULT_NETWORK_TIMEOUT_SECONDS, fetch_json: JsonFetcher = _fetch_json) -> ComponentVersionStatus`
4998
+ - `check_app_version(installed: str, *, refresh: bool = False, offline: bool = False, cache_path: Path | None = None, cache_ttl: timedelta = DEFAULT_CACHE_TTL, timeout: float = DEFAULT_NETWORK_TIMEOUT_SECONDS, fetch_json: JsonFetcher = _fetch_json) -> ComponentVersionStatus`
4999
+ - `version_report(*, app_version: str | None = None, refresh: bool = False, offline: bool = False) -> dict[str, Any]`
5000
+
5001
+ ### Public Constants
5002
+
5003
+ - `APP_RELEASES_API_URL`
5004
+ - `APP_RELEASE_URL`
5005
+ - `APP_TAG_PREFIX`
5006
+ - `DEFAULT_CACHE_TTL`
5007
+ - `DEFAULT_NETWORK_TIMEOUT_SECONDS`
5008
+ - `SDK_DISTRIBUTION`
5009
+ - `SDK_PYPI_JSON_URL`
5010
+ - `SDK_RELEASE_URL`
5011
+ - `VERSION_CHECK_SCHEMA`
5012
+
4928
5013
  ## `iints.visualization`
4929
5014
 
4930
5015
  - Source: `src/iints/visualization/__init__.py`
@@ -5,6 +5,15 @@ This is the fast command page for demos, research runs, data prep, local AI, Jet
5
5
  !!! warning "Research-only boundary"
6
6
  IINTS-AF is for simulation, education, benchmarking, and bench-only research. Do not use these commands for real insulin dosing.
7
7
 
8
+ ## Command Navigation
9
+
10
+ ```bash
11
+ iints menu # Choose one of the maintained command domains
12
+ iints map # Print the maintained command map
13
+ iints guide # Run a first demo or open command navigation
14
+ iints version --refresh
15
+ ```
16
+
8
17
  ## First-Time Setup
9
18
 
10
19
  ```bash
@@ -17,8 +26,9 @@ After the SDK is installed, future updates are shorter:
17
26
 
18
27
  ```bash
19
28
  iints update
20
- iints update --dry-run # show PyPI + GitHub fallback commands
21
- iints update --source github --yes # newest GitHub version
29
+ iints version --refresh # compare with stable release metadata
30
+ iints update --dry-run # show the stable PyPI command
31
+ iints update --source github --github-ref stable --yes
22
32
  iints update --repair --force-reinstall --yes # repair stale/legacy installs
23
33
  ```
24
34
 
@@ -255,6 +265,15 @@ iints import-tidepool --output-dir results/tidepool
255
265
  Realism and MDMP checks:
256
266
 
257
267
  ```bash
268
+ # Authenticated local-file encryption. Prompting avoids shell-history leakage.
269
+ iints mdmp encrypt-data --input data/cgm.csv --output data/cgm.enc
270
+ iints mdmp decrypt-data --input data/cgm.enc --output data/cgm_dec.csv
271
+
272
+ # Ed25519 data-passport signing; no post-quantum signature is claimed.
273
+ iints mdmp sign --card results/passport.json --key keys/private.pem
274
+ iints mdmp verify results/passport.json
275
+
276
+ # Contract conformance & realism
258
277
  iints data realism-check results/imported_trace/cgm_standard.csv \
259
278
  --reference free_living_t1d \
260
279
  --output-html results/imported_trace/realism_dashboard.html
@@ -475,9 +494,10 @@ iints sources
475
494
  If a command exists in the docs but not on your machine, update the SDK:
476
495
 
477
496
  ```bash
478
- iints update --source github --yes
497
+ iints version --refresh
498
+ iints update
479
499
  hash -r
480
- iints --help
500
+ iints version --refresh
481
501
  ```
482
502
 
483
503
  ## What To Open After A Demo
@@ -8,10 +8,18 @@ Use this page when you know the task and want the public command family quickly,
8
8
 
9
9
  **Read next:** [Technical Reference](TECHNICAL_README.md) for deeper integration details.
10
10
 
11
+ ## Command Navigation
12
+
13
+ ### `iints menu` (or `iints hub`)
14
+ Choose a maintained command domain and print reliable entry points without invoking a workflow automatically.
15
+
16
+ ### `iints map` (or `iints overview`)
17
+ Print the maintained command domains. Typer-generated `--help` remains authoritative for options.
18
+
11
19
  ## Beginner-Friendly Entry Points
12
20
 
13
21
  ### `iints guide`
14
- Use this when you are not sure where to start.
22
+ Run the short starter demo or open command navigation.
15
23
 
16
24
  ### `iints start`
17
25
  Print a goal-based first-run plan, or run the safe starter action.
@@ -96,6 +104,17 @@ The generated project is self-contained: it includes `patients/stable_patient.ya
96
104
  ### `iints run --wizard`
97
105
  Interactive custom run builder.
98
106
 
107
+ ### `iints version`
108
+ Compare the active Python environment with the latest stable PyPI release.
109
+
110
+ ```bash
111
+ iints version --refresh
112
+ iints version --offline --json
113
+ iints version --refresh --fail-if-outdated --fail-if-unknown
114
+ ```
115
+
116
+ The report distinguishes installed distribution metadata from active source code and includes the Python executable, CLI path, package location, release source, and check time. Exit code `2` means a verified update is available; exit code `3` means release status could not be verified when `--fail-if-unknown` is active.
117
+
99
118
  ### `iints update`
100
119
  Update the current Python environment to the newest SDK release.
101
120
 
@@ -106,11 +125,11 @@ iints update
106
125
  iints update --dry-run
107
126
  iints update --repair --force-reinstall --yes
108
127
  iints update --no-cache-dir --yes
109
- iints update --source github --yes
128
+ iints update --source github --github-ref stable --yes
110
129
  iints update --extras full,mdmp,research,edge
111
130
  ```
112
131
 
113
- The command prints the exact `python -m pip install -U ...` invocation before it changes anything. By default it uses `--source auto`: PyPI first, then GitHub main as a fallback if the release has not propagated yet. Use `--dry-run` during a live demo setup check.
132
+ The command prints the exact `python -m pip install -U ...` invocation before it changes anything. By default `--source auto` uses the stable PyPI release and never silently falls back to GitHub `main`. Use `--dry-run` during a live demo setup check, or `--check` for a status-only automation check.
114
133
 
115
134
  ### `iints delete`
116
135
  Remove IINTS from the current machine/environment with a visible deletion plan.
@@ -653,6 +672,43 @@ iints profiles create --name endurance_patient --preset endurance
653
672
 
654
673
  Starter presets are provided for `stable-demo`, `stress-test`, and `endurance`.
655
674
 
675
+ ## MDMP Cryptography And Provenance
676
+
677
+ ### `iints mdmp encrypt-data`
678
+ Encrypt a local dataset with ChaCha20-Poly1305 authenticated encryption. Text passphrases are processed with a random per-envelope scrypt salt:
679
+
680
+ ```bash
681
+ iints mdmp encrypt-data --input data/patient_cgm.csv --output data/patient_cgm.enc
682
+ ```
683
+
684
+ ### `iints mdmp decrypt-data`
685
+ Decrypt and authenticate encrypted dataset files, ensuring tamper-resistance:
686
+
687
+ ```bash
688
+ iints mdmp decrypt-data --input data/patient_cgm.enc --output data/restored.csv
689
+ ```
690
+
691
+ ### `iints mdmp sign`
692
+ Sign an MDMP dataset passport card with Ed25519. The SDK does not currently implement or claim an ML-DSA/post-quantum signature:
693
+
694
+ ```bash
695
+ iints mdmp sign --card results/passport.json --key keys/mdmp_private_v1.pem
696
+ ```
697
+
698
+ ### `iints mdmp verify`
699
+ Verify an MDMP dataset passport card signature, expiry, and SHA-256 fingerprint:
700
+
701
+ ```bash
702
+ iints mdmp verify results/passport.json --dataset data/patient_cgm.csv
703
+ ```
704
+
705
+ ### `iints mdmp validate`
706
+ Validate dataset against an MDMP contract schema and range rules:
707
+
708
+ ```bash
709
+ iints mdmp validate contracts/cgm_contract.yaml data/patient_cgm.csv --min-mdmp-grade research_grade
710
+ ```
711
+
656
712
  ## Full Details
657
713
 
658
714
  For every option and advanced workflow, continue to:
@@ -602,11 +602,15 @@ Quickstart project in one command:
602
602
  iints quickstart --project-name iints_quickstart
603
603
  ```
604
604
 
605
- New presets:
606
- * `hypo_prone_night`
607
- * `hyper_challenge`
608
- * `pizza_paradox`
609
- * `midnight_crash`
605
+ Maintained research presets:
606
+ * `hypo_prone_night` (descriptive alias: `nocturnal_post_exercise_hypoglycemia`)
607
+ * `hyper_challenge` (descriptive alias: `acute_hyperglycemia_underdosing_challenge`)
608
+ * `pizza_paradox` (descriptive alias: `biphasic_macronutrient_absorption`)
609
+ * `midnight_crash` (descriptive alias: `nocturnal_insulin_stacking_challenge`)
610
+ * `quickstart_meal` (descriptive alias: `acute_postprandial_excursion`)
611
+ * `realistic_reference_day` (descriptive alias: `calibrated_free_living_reference_day`)
612
+
613
+ These are in-silico research scenarios. Their names do not imply clinical validation or patient-specific calibration.
610
614
 
611
615
  Generate your own clinic-safe preset scaffold:
612
616
 
@@ -10,7 +10,8 @@ It does **not** certify a model for clinical use on its own.
10
10
 
11
11
  Public SDK surface:
12
12
  - Python: `iints.data`
13
- - CLI: `iints data ...`
13
+ - CLI contracts and certification: `iints data ...`
14
+ - CLI protection and passport verification: `iints mdmp ...`
14
15
 
15
16
  ## Who This Page Is For
16
17
 
@@ -57,17 +58,39 @@ Implemented in:
57
58
  - Contracts define required columns, expected types, and physiologic ranges.
58
59
  - Unit conversions can be applied deterministically (for example `mmol/L -> mg/dL`).
59
60
 
60
- 2. Chain of Trust
61
- - Contract and dataset fingerprints are generated with SHA-256.
62
- - Any source-data change produces a new fingerprint.
61
+ 2. Deterministic Provenance
62
+ - Contract and dataset fingerprints use SHA-256.
63
+ - Any source-data change produces a different fingerprint.
63
64
 
64
- 3. Compliance Scoring
65
- - Every run returns `compliance_score` and pass/fail checks.
66
- - MDMP grade is derived from score + hard compliance.
65
+ 3. Explicit Compliance Scoring
66
+ - Every validation report records individual checks, a score, and an MDMP grade.
67
+ - A grade summarizes contract conformance only; it is not a clinical certification.
67
68
 
68
69
  4. Runtime Guardians
69
- - `mdmp_gate` can enforce MDMP checks directly before function execution.
70
- - This supports in-memory pipeline protection for research workloads.
70
+ - `mdmp_gate` can enforce a contract before an in-memory research function runs.
71
+ - This provides a reproducible data-quality boundary inside a pipeline.
72
+
73
+ 5. Authenticated Local-File Encryption
74
+ - ChaCha20-Poly1305 authenticated encryption protects confidentiality and integrity of local files.
75
+ - Human passphrases are processed with scrypt and a random per-envelope salt; exact 32-byte raw keys are also supported.
76
+ - New passphrase-protected envelopes require at least 12 UTF-8 bytes. Longer, randomly generated passphrases remain preferable.
77
+ - Associated authenticated data (AAD) can bind a study identifier or other context to the ciphertext.
78
+ - This feature protects files at rest. It does not replace TLS, access control, key management, backups, or host security.
79
+
80
+ 6. Signed Data Passports
81
+ - Ed25519 signatures authenticate passport content and SHA-256 fingerprints.
82
+ - Signature format v2 also authenticates the signer label, key identifier, algorithm label, and signing timestamp. Existing v1 cards remain verifiable through an explicit compatibility path.
83
+ - Verification can use an explicit public key, the bundled research root, or an MDMP trust store.
84
+ - The SDK does not currently implement or claim ML-DSA or other post-quantum signatures. The legacy `--pqc` flag fails closed instead of creating a misleading label.
85
+
86
+ Encryption example:
87
+
88
+ ```bash
89
+ iints mdmp encrypt-data --input data/my_cgm.csv --output data/my_cgm.csv.enc
90
+ iints mdmp decrypt-data --input data/my_cgm.csv.enc --output data/restored.csv
91
+ ```
92
+
93
+ The commands prompt for a passphrase. Prefer the prompt or `--key-file`; avoid `--key` because command-line arguments can be exposed in shell history and process listings.
71
94
 
72
95
  ## MDMP Grades
73
96
 
@@ -378,7 +378,7 @@ The public `reference_free_living_t1d` profile uses a gate-compatible calibratio
378
378
  | HAAF and hypo-awareness memory | implemented as an experimental bounded memory state; not a clinically validated predictor of awareness or severe-hypoglycemia risk |
379
379
  | exogenous glucagon PK/PD for dual-hormone pumps | implemented as an experimental Hovorka-style depot/plasma/effect layer with simulator safety caps; not emergency-dose guidance |
380
380
  | illness, infection, menstrual cycle, steroid exposure | approximated through scenario disturbances and stress events; not a complete endocrine illness model |
381
- | fat/protein mixed-meal kinetics | approximated with delayed meal profiles such as `pizza_paradox` |
381
+ | fat/protein mixed-meal kinetics | approximated with delayed dual-wave meal profiles such as `biphasic_macronutrient_absorption` (alias `pizza_paradox`) |
382
382
  | GLP-1 / incretin physiology | represented as a bounded meal-emptying modifier, not a personalized incretin hormone assay |
383
383
  | circadian endocrine rhythms | represented as an optional dawn EGP oscillator, not a full cortisol/growth-hormone model |
384
384
  | exercise GLUT4 translocation | represented as a bounded NIMGU state, not a calibrated muscle-biopsy model |