iints-sdk-python35 1.5.31__tar.gz → 1.5.32__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 (445) hide show
  1. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/CITATION.cff +2 -2
  2. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/PKG-INFO +22 -5
  3. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/README.md +21 -4
  4. iints_sdk_python35-1.5.32/docs/APP_INSTALL.md +104 -0
  5. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/DESKTOP_APP.md +2 -0
  6. iints_sdk_python35-1.5.32/docs/RESEARCH_WORKBENCH_GUIDE.md +294 -0
  7. iints_sdk_python35-1.5.32/docs/TAURI_DESKTOP.md +169 -0
  8. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/UPDATING.md +1 -1
  9. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/pyproject.toml +1 -1
  10. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/__init__.py +1 -1
  11. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/baseline.py +10 -2
  12. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/cli/cli.py +2 -0
  13. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/highlevel.py +4 -2
  14. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/structure.py +1 -0
  15. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/molecules.py +29 -17
  16. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/tauri_bridge.py +82 -3
  17. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_sdk_python35.egg-info/PKG-INFO +22 -5
  18. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_sdk_python35.egg-info/SOURCES.txt +1 -0
  19. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_desktop_app.py +157 -0
  20. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_tauri_bridge.py +52 -2
  21. iints_sdk_python35-1.5.31/docs/APP_INSTALL.md +0 -129
  22. iints_sdk_python35-1.5.31/docs/TAURI_DESKTOP.md +0 -126
  23. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/LICENSE +0 -0
  24. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/LICENSE-MIT-IINTS-LEGACY +0 -0
  25. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/MANIFEST.in +0 -0
  26. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/NOTICE +0 -0
  27. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/ACADEMIC_RESEARCH_WORKBENCH.md +0 -0
  28. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/AI_ASSISTANT.md +0 -0
  29. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/AI_RED_TEAM_AUDITOR.md +0 -0
  30. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/ALL_SCIENTIFIC_THEORIES.md +0 -0
  31. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/API_REFERENCE.md +0 -0
  32. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/ARCHITECTURE_HARDENING.md +0 -0
  33. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/ARCHITECTURE_OVERVIEW.md +0 -0
  34. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/ARDUINO_UNO_Q.md +0 -0
  35. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/BOOTH_DEMO.md +0 -0
  36. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/CLI_CHEATSHEET.md +0 -0
  37. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/COMMAND_REFERENCE.md +0 -0
  38. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/COMPREHENSIVE_GUIDE.md +0 -0
  39. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/CONTRIBUTING_SAFELY.md +0 -0
  40. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/CORE_CONCEPTS.md +0 -0
  41. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/CROSS_SCALE_REFERENCE_LABS.md +0 -0
  42. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/DESKTOP_SIGNING.md +0 -0
  43. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/DEVELOPER_PORTAL.md +0 -0
  44. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/DIABETES_RESEARCH_DATASETS.md +0 -0
  45. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/DIGITAL_PATIENT_PI.md +0 -0
  46. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/DIGITAL_TWIN_BIOLOGY.md +0 -0
  47. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/DOCUMENTATION_INDEX.md +0 -0
  48. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/DUAL_REPO_WORKFLOW.md +0 -0
  49. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/EDGE_HARDWARE.md +0 -0
  50. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/EDGE_REMOTE_DEPLOY.md +0 -0
  51. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/EU_AI_PACT_GOVERNANCE.md +0 -0
  52. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/EVIDENCE_BASE.md +0 -0
  53. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/EVIDENCE_BUNDLE.md +0 -0
  54. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/FORMULA_REGISTRY.md +0 -0
  55. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/FPGA_MODE.md +0 -0
  56. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/GETTING_STARTED.md +0 -0
  57. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/GLUCOSE_MODEL.md +0 -0
  58. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/HARDWARE.md +0 -0
  59. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/HYPOGLYCEMIA_SCIENCE_MODEL.md +0 -0
  60. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/INSTALLATION.md +0 -0
  61. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/JETSON_AUTOML_FACTORY.md +0 -0
  62. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/JETSON_ENDURANCE.md +0 -0
  63. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/LEARNING_PATH.md +0 -0
  64. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/LOCAL_AI_RESEARCH.md +0 -0
  65. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/LOCAL_AI_SAFETY_GATES.md +0 -0
  66. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/MAINTAINER_GUIDE.md +0 -0
  67. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/MAKERFAIRE_PI.md +0 -0
  68. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/MAKERFAIRE_PI_CHECKLIST.md +0 -0
  69. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/MDMP.md +0 -0
  70. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/MDMP_FULL_GUIDE.md +0 -0
  71. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/MDMP_QUICKSTART.md +0 -0
  72. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/MECHANISTIC_REFERENCE_MODELS.md +0 -0
  73. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/MEDTRONIC_CARELINK_LIVE_BRIDGE.md +0 -0
  74. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/MEDTRONIC_DIRECT_PUMP_TRANSPORT.md +0 -0
  75. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/MISTRAL_MODEL_MIGRATION.md +0 -0
  76. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/NUMERIC_AUTHORITY.md +0 -0
  77. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/OBSIDIAN_PUBLIC_VAULT.md +0 -0
  78. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/OFFICIAL_MANUAL.md +0 -0
  79. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/PAPER_TECHNICAL_DOSSIER.md +0 -0
  80. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/PHYSIOLOGY_REFERENCE.md +0 -0
  81. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/PICO_PUMP_LAB.md +0 -0
  82. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/PLAIN_LANGUAGE_GUIDE.md +0 -0
  83. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/PROJECT_BOUNDARIES.md +0 -0
  84. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/PUBLIC_DOCUMENTATION.md +0 -0
  85. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/PUBLIC_RELEASE_CHECKLIST.md +0 -0
  86. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/QUICKSTART.md +0 -0
  87. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/REAL_DATA_REALISM.md +0 -0
  88. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/REFERENCE_OVERVIEW.md +0 -0
  89. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/RUN_OUTPUTS.md +0 -0
  90. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/SCIENTIFIC_WORKFLOW.md +0 -0
  91. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/SOURCE_LIBRARY.md +0 -0
  92. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/STUDY_ANALYSIS.md +0 -0
  93. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/TECHNICAL_README.md +0 -0
  94. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/THEORY_STRESS_LAB.md +0 -0
  95. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/TROUBLESHOOTING.md +0 -0
  96. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/USER_GUIDE_MAP.md +0 -0
  97. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/WORKFLOWS.md +0 -0
  98. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/comparison_interpretation.md +0 -0
  99. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/emulation_references.md +0 -0
  100. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/docs/index.md +0 -0
  101. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/setup.cfg +0 -0
  102. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/ai/__init__.py +0 -0
  103. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/ai/assistant.py +0 -0
  104. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/ai/backends/__init__.py +0 -0
  105. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/ai/backends/base.py +0 -0
  106. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/ai/backends/mistral_api.py +0 -0
  107. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/ai/backends/ollama.py +0 -0
  108. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/ai/cli.py +0 -0
  109. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/ai/deterministic.py +0 -0
  110. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/ai/insights.py +0 -0
  111. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/ai/mdmp_guard.py +0 -0
  112. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/ai/model_catalog.py +0 -0
  113. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/ai/prepare.py +0 -0
  114. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/ai/prompts.py +0 -0
  115. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/__init__.py +0 -0
  116. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/algorithm_xray.py +0 -0
  117. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/booth_demo.py +0 -0
  118. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/carelink_workbench.py +0 -0
  119. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/clinical_benchmark.py +0 -0
  120. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/clinical_metrics.py +0 -0
  121. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/clinical_tir_analyzer.py +0 -0
  122. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/diabetes_metrics.py +0 -0
  123. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/edge_efficiency.py +0 -0
  124. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/edge_performance_monitor.py +0 -0
  125. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/eucys_results.py +0 -0
  126. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/evidence_bundle.py +0 -0
  127. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/explainability.py +0 -0
  128. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/explainable_ai.py +0 -0
  129. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/hardware_benchmark.py +0 -0
  130. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/metrics.py +0 -0
  131. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/population_report.py +0 -0
  132. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/poster.py +0 -0
  133. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/reporting.py +0 -0
  134. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/run_quality.py +0 -0
  135. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/safety_index.py +0 -0
  136. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/safety_visualizer.py +0 -0
  137. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/sensor_filtering.py +0 -0
  138. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/study_analysis.py +0 -0
  139. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/study_engine.py +0 -0
  140. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/study_experiment.py +0 -0
  141. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/study_poster.py +0 -0
  142. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/study_protocol.py +0 -0
  143. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/analysis/validator.py +0 -0
  144. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/api/__init__.py +0 -0
  145. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/api/base_algorithm.py +0 -0
  146. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/api/registry.py +0 -0
  147. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/api/template_algorithm.py +0 -0
  148. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/assets/iints_logo.png +0 -0
  149. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/cli/__init__.py +0 -0
  150. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/cli/patient_cli.py +0 -0
  151. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/__init__.py +0 -0
  152. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/__init__.py +0 -0
  153. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/battle_runner.py +0 -0
  154. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/clinical_baseline.py +0 -0
  155. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/correction_bolus.py +0 -0
  156. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/discovery.py +0 -0
  157. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/fixed_basal_bolus.py +0 -0
  158. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/hybrid_algorithm.py +0 -0
  159. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/imitation_controller.py +0 -0
  160. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/lstm_algorithm.py +0 -0
  161. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/mock_algorithms.py +0 -0
  162. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/mpc_controller.py +0 -0
  163. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/neural_controller.py +0 -0
  164. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/pid_controller.py +0 -0
  165. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/algorithms/standard_pump_algo.py +0 -0
  166. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/clinical_metrics.py +0 -0
  167. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/device.py +0 -0
  168. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/device_manager.py +0 -0
  169. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/devices/__init__.py +0 -0
  170. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/devices/models.py +0 -0
  171. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/digital_twin.py +0 -0
  172. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/formula_registry.py +0 -0
  173. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/patient/__init__.py +0 -0
  174. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/patient/advanced_metabolic_model.py +0 -0
  175. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/patient/bergman_model.py +0 -0
  176. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/patient/hovorka_model.py +0 -0
  177. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/patient/models.py +0 -0
  178. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/patient/patient_factory.py +0 -0
  179. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/patient/physiology.py +0 -0
  180. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/patient/profile.py +0 -0
  181. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/physiology_variation.py +0 -0
  182. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/safety/__init__.py +0 -0
  183. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/safety/config.py +0 -0
  184. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/safety/input_validator.py +0 -0
  185. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/safety/supervisor.py +0 -0
  186. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/simulation/__init__.py +0 -0
  187. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/simulation/scenario_parser.py +0 -0
  188. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/simulator.py +0 -0
  189. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/supervisor.py +0 -0
  190. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/core/units.py +0 -0
  191. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/__init__.py +0 -0
  192. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/adapter.py +0 -0
  193. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/certify.py +0 -0
  194. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/column_mapper.py +0 -0
  195. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/contracts/diabetes_cgm_mdmp_contract.yaml +0 -0
  196. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/contracts.py +0 -0
  197. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/datasets.json +0 -0
  198. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/demo/__init__.py +0 -0
  199. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/demo/demo_cgm.csv +0 -0
  200. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/evidence.py +0 -0
  201. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/guardians.py +0 -0
  202. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/importer.py +0 -0
  203. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/ingestor.py +0 -0
  204. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/mdmp_visualizer.py +0 -0
  205. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/medtronic_live.py +0 -0
  206. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/nightscout.py +0 -0
  207. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/physiology_residual_profiles.json +0 -0
  208. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/quality_checker.py +0 -0
  209. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/realism_dashboard.py +0 -0
  210. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/realism_governance.py +0 -0
  211. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/realism_reference.py +0 -0
  212. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/realism_references.json +0 -0
  213. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/realism_validator.py +0 -0
  214. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/registry.py +0 -0
  215. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/research_catalog.py +0 -0
  216. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/runner.py +0 -0
  217. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/study_corruption.py +0 -0
  218. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/synthetic_mirror.py +0 -0
  219. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/tidepool.py +0 -0
  220. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/universal_parser.py +0 -0
  221. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/virtual_patients/clinic_safe_baseline.yaml +0 -0
  222. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/virtual_patients/clinic_safe_hyper_challenge.yaml +0 -0
  223. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/virtual_patients/clinic_safe_hypo_prone.yaml +0 -0
  224. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/virtual_patients/clinic_safe_midnight.yaml +0 -0
  225. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/virtual_patients/clinic_safe_pizza.yaml +0 -0
  226. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/virtual_patients/clinic_safe_stress_meal.yaml +0 -0
  227. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/virtual_patients/default_patient.yaml +0 -0
  228. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/virtual_patients/patient_559_config.yaml +0 -0
  229. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/virtual_patients/reference_azt1d_t1d.yaml +0 -0
  230. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/virtual_patients/reference_free_living_t1d.yaml +0 -0
  231. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/data/virtual_patients/reference_hupa_ucm_t1d.yaml +0 -0
  232. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/demo_assets.py +0 -0
  233. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/emulation/__init__.py +0 -0
  234. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/emulation/legacy_base.py +0 -0
  235. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/emulation/medtronic_780g.py +0 -0
  236. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/emulation/omnipod_5.py +0 -0
  237. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/emulation/tandem_controliq.py +0 -0
  238. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/governance/__init__.py +0 -0
  239. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/governance/research_policy.py +0 -0
  240. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/jetson/__init__.py +0 -0
  241. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/jetson/endurance.py +0 -0
  242. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/jetson/research_pipeline.py +0 -0
  243. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/learning/__init__.py +0 -0
  244. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/learning/autonomous_optimizer.py +0 -0
  245. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/learning/learning_system.py +0 -0
  246. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/live_patient/__init__.py +0 -0
  247. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/live_patient/api.py +0 -0
  248. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/live_patient/daemon.py +0 -0
  249. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/live_patient/edge_benchmark.py +0 -0
  250. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/live_patient/edge_ops.py +0 -0
  251. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/live_patient/fpga.py +0 -0
  252. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/live_patient/long_study.py +0 -0
  253. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/live_patient/medtronic_direct.py +0 -0
  254. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/live_patient/pico_pump.py +0 -0
  255. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/live_patient/runtime.py +0 -0
  256. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/live_patient/service_export.py +0 -0
  257. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/live_patient/uno_q.py +0 -0
  258. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/mdmp/__init__.py +0 -0
  259. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/mdmp/backend.py +0 -0
  260. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/mdmp/eu_ai_pact.py +0 -0
  261. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/metrics.py +0 -0
  262. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/population/__init__.py +0 -0
  263. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/population/generator.py +0 -0
  264. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/population/runner.py +0 -0
  265. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/presets/__init__.py +0 -0
  266. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/presets/evidence_sources.yaml +0 -0
  267. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/presets/forecast_calibration_profiles.yaml +0 -0
  268. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/presets/golden_benchmark.yaml +0 -0
  269. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/presets/presets.json +0 -0
  270. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/presets/safety_contract_default.yaml +0 -0
  271. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/presets/validation_profiles.yaml +0 -0
  272. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/__init__.py +0 -0
  273. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/academic_bundle.py +0 -0
  274. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/alphafold_engine.py +0 -0
  275. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/anatomy.py +0 -0
  276. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/audit.py +0 -0
  277. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/binding_evidence.py +0 -0
  278. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/calibration_gate.py +0 -0
  279. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/cellml_models.py +0 -0
  280. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/clinvar_engine.py +0 -0
  281. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/config.py +0 -0
  282. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/control.py +0 -0
  283. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/control_eval.py +0 -0
  284. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/copasi_models.py +0 -0
  285. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/data_blend.py +0 -0
  286. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/dataset.py +0 -0
  287. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/evaluation.py +0 -0
  288. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/external_models_common.py +0 -0
  289. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/fmi_models.py +0 -0
  290. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/forecasting.py +0 -0
  291. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/genetics.py +0 -0
  292. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/genomics_engine.py +0 -0
  293. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/glucose_model.py +0 -0
  294. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/jetson_hf_trainer.py +0 -0
  295. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/local_ai.py +0 -0
  296. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/local_ai_gate.py +0 -0
  297. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/losses.py +0 -0
  298. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/mechanistic_models.py +0 -0
  299. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/metrics.py +0 -0
  300. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/model_registry.py +0 -0
  301. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/neural_control.py +0 -0
  302. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/pharmacology.py +0 -0
  303. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/physiology.py +0 -0
  304. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/physiology_calibration.py +0 -0
  305. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/predictor.py +0 -0
  306. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/results_manager.py +0 -0
  307. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/stem_cell_optimizer.py +0 -0
  308. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/stem_cell_transplant.py +0 -0
  309. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/research/tissue_stressor.py +0 -0
  310. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/scenarios/__init__.py +0 -0
  311. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/scenarios/generator.py +0 -0
  312. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/scenarios/study_pack.py +0 -0
  313. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/__init__.py +0 -0
  314. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/default_algorithm.py +0 -0
  315. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/demos/__init__.py +0 -0
  316. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/demos/live_stage_demo.py +0 -0
  317. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/pico_pump/README.md +0 -0
  318. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/pico_pump/code.py +0 -0
  319. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/pico_pump/serial_protocol.txt +0 -0
  320. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/scenarios/__init__.py +0 -0
  321. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/scenarios/chaos_insulin_stacking.json +0 -0
  322. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/scenarios/chaos_runaway_ai.json +0 -0
  323. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/scenarios/example_scenario.json +0 -0
  324. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/scenarios/exercise_stress.json +0 -0
  325. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/uno_q/README.md +0 -0
  326. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/templates/uno_q/iints_supervisor_bridge.ino +0 -0
  327. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/tools/ai_realism_auditor.py +0 -0
  328. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/tools/digital_twin_calibrator.py +0 -0
  329. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/tools/theory_stress_lab.py +0 -0
  330. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/utils/__init__.py +0 -0
  331. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/utils/academic_artifacts.py +0 -0
  332. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/utils/csv_safety.py +0 -0
  333. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/utils/plotting.py +0 -0
  334. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/utils/run_io.py +0 -0
  335. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/utils/url_safety.py +0 -0
  336. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/validation/__init__.py +0 -0
  337. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/validation/golden.py +0 -0
  338. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/validation/replay.py +0 -0
  339. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/validation/run_doctor.py +0 -0
  340. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/validation/run_validation.py +0 -0
  341. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/validation/safety_contract.py +0 -0
  342. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/validation/schemas.py +0 -0
  343. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/visualization/__init__.py +0 -0
  344. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/visualization/cockpit.py +0 -0
  345. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints/visualization/uncertainty_cloud.py +0 -0
  346. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/__init__.py +0 -0
  347. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/app.py +0 -0
  348. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/assets/alphafold/AF-P01275-F1-model_v4.cif +0 -0
  349. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/assets/alphafold/AF-P01308-F1-model_v4.cif +0 -0
  350. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/assets/alphafold/AF-P06213-F1-model_v6.cif +0 -0
  351. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/assets/alphafold/AF-P14672-F1-model_v6.cif +0 -0
  352. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/assets/alphafold/AF-P47871-F1-model_v6.cif +0 -0
  353. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/assets/alphafold/gcgr_3D.png +0 -0
  354. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/assets/alphafold/glucagon_3D.png +0 -0
  355. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/assets/alphafold/glut4_3D.png +0 -0
  356. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/assets/alphafold/insr_3D.png +0 -0
  357. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/assets/alphafold/insulin_3D.png +0 -0
  358. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/assets/app_icon.icns +0 -0
  359. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/assets/app_icon.ico +0 -0
  360. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/assets/app_icon.png +0 -0
  361. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/cocoa_app.py +0 -0
  362. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/engine.py +0 -0
  363. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/evidence_connectors.py +0 -0
  364. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/fetcher.py +0 -0
  365. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/launcher.py +0 -0
  366. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/local_ai.py +0 -0
  367. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/mdmp.py +0 -0
  368. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/molecule_viewer.py +0 -0
  369. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/qt_app.py +0 -0
  370. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/render_3dmol.py +0 -0
  371. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/results.py +0 -0
  372. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/terminal_utils.py +0 -0
  373. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_desktop/update.py +0 -0
  374. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_sdk_python35.egg-info/dependency_links.txt +0 -0
  375. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_sdk_python35.egg-info/entry_points.txt +0 -0
  376. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_sdk_python35.egg-info/requires.txt +0 -0
  377. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/iints_sdk_python35.egg-info/top_level.txt +0 -0
  378. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_ai/__init__.py +0 -0
  379. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_ai/lineage.py +0 -0
  380. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/__init__.py +0 -0
  381. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/audit.py +0 -0
  382. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/bias_hooks.py +0 -0
  383. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/bundle.py +0 -0
  384. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/certification.py +0 -0
  385. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/cli.py +0 -0
  386. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/compare.py +0 -0
  387. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/conformance.py +0 -0
  388. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/contracts.py +0 -0
  389. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/crypto.py +0 -0
  390. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/data/conformance/vectors/delegation.json +0 -0
  391. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/data/conformance/vectors/fingerprint.json +0 -0
  392. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/data/conformance/vectors/grading.json +0 -0
  393. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/data/conformance/vectors/signing.json +0 -0
  394. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/delegate.py +0 -0
  395. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/diffing.py +0 -0
  396. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/drift.py +0 -0
  397. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/exceptions.py +0 -0
  398. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/fingerprint.py +0 -0
  399. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/fingerprint_store.py +0 -0
  400. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/hf.py +0 -0
  401. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/keys/mdmp_pub_v1.pem +0 -0
  402. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/llm_provenance.py +0 -0
  403. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/migrate.py +0 -0
  404. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/policy.py +0 -0
  405. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/prov.py +0 -0
  406. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/registry.py +0 -0
  407. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/runner.py +0 -0
  408. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/schema_export.py +0 -0
  409. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/synthetic.py +0 -0
  410. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/trust.py +0 -0
  411. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_core/visualizer.py +0 -0
  412. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_flavors/__init__.py +0 -0
  413. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_integrations/__init__.py +0 -0
  414. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_integrations/dvc.py +0 -0
  415. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_integrations/mlflow.py +0 -0
  416. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/src/mdmp_integrations/wandb.py +0 -0
  417. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_bergman.py +0 -0
  418. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_ci_governance.py +0 -0
  419. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_algorithm_loading.py +0 -0
  420. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_booth_demo.py +0 -0
  421. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_carelink_workbench.py +0 -0
  422. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_cloud_import_security.py +0 -0
  423. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_demo_export.py +0 -0
  424. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_demo_live.py +0 -0
  425. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_edge_runtime.py +0 -0
  426. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_expo_tools.py +0 -0
  427. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_fpga.py +0 -0
  428. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_onboarding.py +0 -0
  429. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_patient_runtime.py +0 -0
  430. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_poster.py +0 -0
  431. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_research_workflows.py +0 -0
  432. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_run_summary.py +0 -0
  433. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_cli_theory_stress_lab.py +0 -0
  434. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_desktop_packaging.py +0 -0
  435. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_install_doctor.py +0 -0
  436. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_jetson_endurance.py +0 -0
  437. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_physiology_variation.py +0 -0
  438. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_plugin_system.py +0 -0
  439. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_population.py +0 -0
  440. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_presets_realism.py +0 -0
  441. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_qt_desktop_runtime.py +0 -0
  442. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_research_policy.py +0 -0
  443. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_research_realism_tools.py +0 -0
  444. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_scientific_fidelity.py +0 -0
  445. {iints_sdk_python35-1.5.31 → iints_sdk_python35-1.5.32}/tests/test_simulator_calibration.py +0 -0
@@ -6,8 +6,8 @@ authors:
6
6
  - family-names: "Bobbaers"
7
7
  given-names: "Rune"
8
8
  email: "rune.bobbaers@gmail.com"
9
- version: "1.5.31"
10
- date-released: "2026-07-21"
9
+ version: "1.5.32"
10
+ date-released: "2026-07-23"
11
11
  repository-code: "https://github.com/python35/IINTS-SDK"
12
12
  url: "https://iints.org"
13
13
  license: "Apache-2.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iints-sdk-python35
3
- Version: 1.5.31
3
+ Version: 1.5.32
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
@@ -133,9 +133,28 @@ IINTS-AF is not a medical device. It must not be used for diagnosis, insulin dos
133
133
 
134
134
  - Website: [iints.org](https://iints.org)
135
135
  - Documentation: [python35.github.io/IINTS-SDK](https://python35.github.io/IINTS-SDK/)
136
- - Desktop app downloads: [latest beta](https://github.com/python35/IINTS-SDK/releases/tag/desktop-beta-latest)
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)
137
138
 
138
- ## Desktop App
139
+ ## Rust Research Workbench
140
+
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.
142
+
143
+ Current Rust/Tauri beta downloads:
144
+
145
+ | Platform | Download |
146
+ | --- | --- |
147
+ | Windows | [`.exe` installer](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-windows-x64-setup.exe) |
148
+ | macOS | [`.dmg`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-macos.dmg) |
149
+ | Linux | [`.AppImage`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-linux-x64.AppImage) |
150
+
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
139
158
 
140
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.
141
160
 
@@ -154,8 +173,6 @@ python -m pip install -U "iints-sdk-python35[desktop-all]"
154
173
  iints-desktop
155
174
  ```
156
175
 
157
- Experimental next-generation shell: a Tauri + Rust desktop prototype lives in `apps/iints-tauri`. It keeps the Python SDK as the scientific engine while moving the native app boundary into Rust. See `docs/TAURI_DESKTOP.md`.
158
-
159
176
  ## License
160
177
 
161
178
  Apache-2.0 licensed, with legacy MIT notices where applicable.
@@ -17,9 +17,28 @@ IINTS-AF is not a medical device. It must not be used for diagnosis, insulin dos
17
17
 
18
18
  - Website: [iints.org](https://iints.org)
19
19
  - Documentation: [python35.github.io/IINTS-SDK](https://python35.github.io/IINTS-SDK/)
20
- - Desktop app downloads: [latest beta](https://github.com/python35/IINTS-SDK/releases/tag/desktop-beta-latest)
20
+ - Rust research workbench: [latest beta](https://github.com/python35/IINTS-SDK/releases/tag/tauri-beta-latest)
21
+ - Classic desktop app: [latest Qt beta](https://github.com/python35/IINTS-SDK/releases/tag/desktop-beta-latest)
21
22
 
22
- ## Desktop App
23
+ ## Rust Research Workbench
24
+
25
+ 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.
26
+
27
+ Current Rust/Tauri beta downloads:
28
+
29
+ | Platform | Download |
30
+ | --- | --- |
31
+ | Windows | [`.exe` installer](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-windows-x64-setup.exe) |
32
+ | macOS | [`.dmg`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-macos.dmg) |
33
+ | Linux | [`.AppImage`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-linux-x64.AppImage) |
34
+
35
+ The beta delegates scientific operations to the IINTS-AF Python engine. On first launch, choose
36
+ **Install Python engine** if the bridge is unavailable; the app creates a private engine and keeps
37
+ its setup visible in a terminal.
38
+
39
+ See the [Tauri workbench documentation](https://python35.github.io/IINTS-SDK/TAURI_DESKTOP/) for architecture, security boundaries, and development instructions.
40
+
41
+ ## Classic Desktop App
23
42
 
24
43
  IINTS-AF also has a native Qt desktop app for running demos, reviewing results, certifying data, and using the research workbench without memorising terminal commands. The packaged Windows, macOS, and Linux betas include their Python runtime and supported Python-side research engines.
25
44
 
@@ -38,8 +57,6 @@ python -m pip install -U "iints-sdk-python35[desktop-all]"
38
57
  iints-desktop
39
58
  ```
40
59
 
41
- Experimental next-generation shell: a Tauri + Rust desktop prototype lives in `apps/iints-tauri`. It keeps the Python SDK as the scientific engine while moving the native app boundary into Rust. See `docs/TAURI_DESKTOP.md`.
42
-
43
60
  ## License
44
61
 
45
62
  Apache-2.0 licensed, with legacy MIT notices where applicable.
@@ -0,0 +1,104 @@
1
+ # Desktop App Installation
2
+
3
+ The IINTS-AF Research Workbench is the recommended desktop interface for the Python research SDK. It uses a native Rust/Tauri shell and keeps simulation, validation, reporting, and research calculations inside the Python SDK.
4
+
5
+ !!! warning "Research scope"
6
+ IINTS-AF is research and education software. It is not a medical device and must not be used for diagnosis, dosing, treatment decisions, or real-time patient care.
7
+
8
+ ## Download The Current Beta
9
+
10
+ The stable links below always point to the newest tested Tauri beta:
11
+
12
+ | Platform | Installer | Start |
13
+ | --- | --- | --- |
14
+ | Windows | [Download `.exe`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-windows-x64-setup.exe) | run the setup file, then open **IINTS-AF Research Workbench** |
15
+ | macOS | [Download `.dmg`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-macos.dmg) | open the DMG, drag the app to Applications, then open it |
16
+ | Linux | [Download `.AppImage`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-linux-x64.AppImage) | mark it executable, then run it |
17
+
18
+ Matching `.sha256` files are published beside each installer. See [Desktop App Signing](DESKTOP_SIGNING.md) for signature and notarization details.
19
+
20
+ ## First Launch
21
+
22
+ The native app needs the IINTS-AF Python engine for scientific calculations. The app now handles this setup through a visible, fixed maintenance command:
23
+
24
+ 1. Open the workbench.
25
+ 2. If **Python bridge unavailable** appears, select **Install Python engine** on Overview, or open **Settings** and select **Install or update Python SDK**.
26
+ 3. Keep the terminal open while the installation completes.
27
+ 4. Return to the app and select **Refresh versions**.
28
+ 5. Run **Run diagnostics** before the first experiment.
29
+
30
+ The app creates a private environment at `~/.iints-af/python-engine`. It does not modify an unrelated project virtual environment. On later runs, the same action updates or repairs that private engine.
31
+
32
+ The bootstrap requires Python `3.10` through `3.14`. On macOS, the app checks common Homebrew, MacPorts, and Python.org framework locations before the limited Finder application `PATH`. Advanced users can override discovery with `IINTS_PYTHON`.
33
+
34
+ ### Manual Fallback
35
+
36
+ If Python is not installed, install a current release from [python.org](https://www.python.org/downloads/), reopen the app, and use **Install or update Python SDK** again.
37
+
38
+ Advanced users may prepare the engine manually:
39
+
40
+ === "macOS or Linux"
41
+
42
+ ```bash
43
+ python3 -m venv "$HOME/.iints-af/python-engine"
44
+ "$HOME/.iints-af/python-engine/bin/python" -m pip install --upgrade pip "iints-sdk-python35[desktop-all]"
45
+ ```
46
+
47
+ === "Windows PowerShell"
48
+
49
+ ```powershell
50
+ py -3 -m venv "$HOME\.iints-af\python-engine"
51
+ & "$HOME\.iints-af\python-engine\Scripts\python.exe" -m pip install --upgrade pip "iints-sdk-python35[desktop-all]"
52
+ ```
53
+
54
+ ## macOS Security Messages
55
+
56
+ The CI pipeline verifies the complete app bundle inside the finished DMG. Public downloads still require Apple Developer ID signing and notarization to avoid all Gatekeeper warnings.
57
+
58
+ If an official beta is ad-hoc signed, macOS may report an unidentified developer. Use Finder's **Open** context-menu action once. Do not disable Gatekeeper system-wide. If macOS reports that the app is damaged, download the newest DMG again and verify its SHA-256 value; do not bypass a failed integrity check.
59
+
60
+ ## Linux AppImage
61
+
62
+ If the file is not executable:
63
+
64
+ ```bash
65
+ chmod +x IINTS-AF-Research-Workbench-linux-x64.AppImage
66
+ ./IINTS-AF-Research-Workbench-linux-x64.AppImage
67
+ ```
68
+
69
+ The private Python engine still needs a system Python with `venv` support. On Debian or Ubuntu, a missing `venv` module is normally supplied by the distribution's `python3-venv` package.
70
+
71
+ ## Optional External Tools
72
+
73
+ The SDK package installs supported Python libraries. Large or independently licensed external applications remain explicit:
74
+
75
+ - Ollama and local model files
76
+ - COPASI
77
+ - OpenCOR
78
+ - trusted FMUs or external model files
79
+
80
+ The workbench detects these tools and explains which feature needs them. It does not silently download executables, model weights, or native-code FMUs.
81
+
82
+ ## Python And Classic Qt App
83
+
84
+ Researchers who prefer a Python-managed desktop environment can still install the classic Qt interface:
85
+
86
+ ```bash
87
+ python -m pip install --upgrade "iints-sdk-python35[desktop-all]"
88
+ iints-desktop
89
+ ```
90
+
91
+ The classic packaged beta remains available from the [`desktop-beta-latest` release](https://github.com/python35/IINTS-SDK/releases/tag/desktop-beta-latest), but the Rust/Tauri workbench is the recommended desktop route.
92
+
93
+ ## Troubleshooting
94
+
95
+ | Message or symptom | Action |
96
+ | --- | --- |
97
+ | Python bridge unavailable | select **Install Python engine**, wait for the terminal, then select **Refresh versions** |
98
+ | Python 3.10-3.14 was not found | install Python from python.org and repeat the maintenance action |
99
+ | `No module named iints_desktop` | update or repair the private engine from Settings; the selected Python does not contain the SDK bridge |
100
+ | protocol list is empty | refresh versions, run diagnostics, then refresh protocols |
101
+ | optional research engine unavailable | install only the external engine required by that lab |
102
+ | app update available | close the app and install the newest file from the stable beta release |
103
+
104
+ For the complete illustrated workflow, continue with the [Research Workbench User Guide](RESEARCH_WORKBENCH_GUIDE.md).
@@ -4,6 +4,8 @@ The IINTS-AF desktop app is a graphical workbench for the same Python SDK used b
4
4
 
5
5
  The app does not contain a second physiology or safety engine.
6
6
 
7
+ For a visual, step-by-step walkthrough, start with the [Research Workbench User Guide](RESEARCH_WORKBENCH_GUIDE.md).
8
+
7
9
  ```mermaid
8
10
  flowchart LR
9
11
  A["Desktop interface"] --> B["Audited app bridge"]
@@ -0,0 +1,294 @@
1
+ # Research Workbench User Guide
2
+
3
+ The IINTS-AF Research Workbench is the native desktop interface for the Python SDK. It helps you run a protocol, inspect its outputs, create reproducibility evidence, and request a local AI review without reimplementing scientific logic in the app.
4
+
5
+ !!! warning "Research scope"
6
+ IINTS-AF is research and education software. It is not a medical device and must not be used for diagnosis, insulin dosing, treatment decisions, or real-time patient care.
7
+
8
+ !!! info "About the screenshots"
9
+ The screenshots below use a labelled documentation fixture. The values illustrate the interface only; they are not study results or validation evidence.
10
+
11
+ ## Install And Open
12
+
13
+ Use the current native beta installer for your platform:
14
+
15
+ | Platform | Installer |
16
+ | --- | --- |
17
+ | Windows | [Download `.exe`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-windows-x64-setup.exe) |
18
+ | macOS | [Download `.dmg`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-macos.dmg) |
19
+ | Linux | [Download `.AppImage`](https://github.com/python35/IINTS-SDK/releases/download/tauri-beta-latest/IINTS-AF-Research-Workbench-linux-x64.AppImage) |
20
+
21
+ The native app delegates calculations to the Python SDK. If Overview reports that the Python engine is unavailable, select **Install Python engine**. The same action is available under **Settings → Install or update Python SDK**.
22
+
23
+ The app opens a terminal with a fixed Rust-owned command, creates a private engine at `~/.iints-af/python-engine`, and installs the supported SDK dependencies there. After completion, return to the app and select **Refresh versions**. This avoids relying on the limited `PATH` inherited by a macOS Finder launch and does not modify an unrelated project environment.
24
+
25
+ Python `3.10` through `3.14` must be available on the computer. The [installation guide](APP_INSTALL.md) includes a manual fallback when automatic discovery cannot find it.
26
+
27
+ ### Native interaction
28
+
29
+ The installed app deliberately behaves like a desktop workbench rather than a website:
30
+
31
+ - labels, navigation, and buttons cannot be accidentally selected or dragged
32
+ - inputs, logs, AI answers, result values, and tables remain selectable for research work
33
+ - the browser context menu is suppressed outside those copyable data areas
34
+ - scientific charts appear immediately without decorative drawing animations
35
+ - embedded browser developer tools are disabled in the packaged application
36
+ - folder and model/result locations use native macOS, Windows, or Linux selectors; paths remain
37
+ editable for advanced reproducibility workflows
38
+
39
+ Use <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>O</kbd> to open the result-file selector and
40
+ <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>,</kbd> to open Settings.
41
+
42
+ These interface rules do not restrict access to generated artifacts; files remain available in the selected output folder.
43
+
44
+ ## The Normal Workflow
45
+
46
+ Use the left navigation in this order:
47
+
48
+ 1. **Overview** — verify the local engine and optional tools.
49
+ 2. **Run protocols** — choose a protocol, output folder, and deterministic seed.
50
+ 3. **Inspect results** — review metrics, the glucose trace, and CSV rows.
51
+ 4. **Reproducibility** — create checksums, metadata, and an audit package.
52
+ 5. **Local AI review** — optionally ask Ollama to summarize the loaded result.
53
+ 6. **Research tools** — use independent biology, equation-model, or device-physics tools.
54
+ 7. **Evidence sources** — inspect connector status and open official resources.
55
+ 8. **Settings** — save local defaults, check versions, update software, and open help.
56
+
57
+ ## 1. Check The Environment
58
+
59
+ ![IINTS-AF overview showing engine readiness and software versions](assets/workbench/01-overview.png)
60
+
61
+ Select **Run diagnostics** before a new experiment. A normal ready environment shows:
62
+
63
+ - the installed IINTS-AF SDK version
64
+ - the Python version used by the app bridge
65
+ - whether Ollama is available
66
+ - readiness of optional modules such as MDMP, Plotly, libRoadRunner, and FMPy
67
+
68
+ Missing optional modules do not always block a normal simulation. They only block the feature that depends on them.
69
+
70
+ Equivalent terminal check:
71
+
72
+ ```bash
73
+ iints doctor
74
+ python -c "import iints; print(iints.__version__)"
75
+ ```
76
+
77
+ ## 2. Run A Protocol
78
+
79
+ ![Protocol selection, deterministic seed, output folder, and run history](assets/workbench/02-run-protocol.png)
80
+
81
+ 1. Select one protocol in the left panel.
82
+ 2. Select **Choose folder...** and choose an output location you can archive later.
83
+ 3. Record the seed. The default `42` is suitable for a reproducible first run.
84
+ 4. Select **Run selected protocol**.
85
+ 5. Wait until the status field reports completion or a recorded error.
86
+
87
+ Do not compare runs unless their protocol, SDK version, patient profile, time step, and seed policy are recorded.
88
+
89
+ The app calls the same SDK engine used by CLI workflows. A typical command-line equivalent is:
90
+
91
+ ```bash
92
+ iints presets run \
93
+ --name realistic_reference_day \
94
+ --algo algorithms/example_algorithm.py \
95
+ --seed 42 \
96
+ --output-dir results/reference_day_seed_42
97
+ ```
98
+
99
+ The exact equivalent command can differ by curated desktop protocol. Treat the generated run configuration as the authoritative record.
100
+
101
+ ## 3. Inspect Results
102
+
103
+ ![Results workspace with summary metrics and a glucose trajectory](assets/workbench/03-results.png)
104
+
105
+ After a desktop protocol completes, the app loads its `results.csv` automatically. To inspect an
106
+ existing run, select **Choose CSV...**, choose the local file, and then select **Load preview**.
107
+ Advanced users may still edit the displayed path directly.
108
+
109
+ Review these parts together:
110
+
111
+ - **Result status** — confirms the file and row count that were loaded.
112
+ - **Summary metrics** — compact orientation metrics, not a complete analysis.
113
+ - **Glucose trajectory** — a bounded visual preview with the configured 70–180 mg/dL reference band.
114
+ - **Tabular preview** — the first bounded rows from the source CSV.
115
+ - **MDMP certificate** — data-contract checks for the selected CSV.
116
+
117
+ The preview is read-only. It must not silently interpolate, repair, or overwrite the source CSV.
118
+
119
+ Useful CLI checks:
120
+
121
+ ```bash
122
+ iints report --results-csv path/to/results.csv --style agp
123
+ iints data certify data_contract.yaml path/to/results.csv --quick
124
+ ```
125
+
126
+ Read [Understand A Run](RUN_OUTPUTS.md) before using a preview as evidence in a study.
127
+
128
+ ## 4. Create A Reproducibility Package
129
+
130
+ ![Reproducibility package form with run path, creator, ORCID, licence, and evidence IDs](assets/workbench/05-reproducibility.png)
131
+
132
+ Open **Reproducibility** after loading a completed run.
133
+
134
+ 1. Confirm the completed run folder or select **Choose folder...** to locate one.
135
+ 2. Add a descriptive package title.
136
+ 3. Add the researcher name and ORCID when appropriate.
137
+ 4. Leave the run-artifact licence as `NOASSERTION` unless you know which licence applies to every exported artifact.
138
+ 5. Add explicit evidence source IDs only when those sources support the run.
139
+ 6. Select **Create academic package**.
140
+
141
+ The package stays local. It adds RO-Crate metadata, checksums, a source snapshot, and an audit report. A successful export is not peer review, privacy approval, or clinical validation.
142
+
143
+ Equivalent CLI command:
144
+
145
+ ```bash
146
+ iints research academic-bundle path/to/completed_run
147
+ ```
148
+
149
+ See [Academic Research Workbench](ACADEMIC_RESEARCH_WORKBENCH.md) for artifact definitions.
150
+
151
+ ## 5. Use Local AI Review
152
+
153
+ ![Local AI workspace showing model selection, question context, policy status, and a readable answer](assets/workbench/04-local-ai.png)
154
+
155
+ Local AI is optional and advisory.
156
+
157
+ 1. Open **Local AI review**.
158
+ 2. Select or type an Ollama model name.
159
+ 3. Keep the host at `http://127.0.0.1:11434` for a local server.
160
+ 4. Select **Start local AI**. The app starts Ollama when possible and prepares the selected model.
161
+ 5. Confirm that the correct result CSV is attached below the question.
162
+ 6. Write a focused research question.
163
+ 7. Select **Analyze loaded result**.
164
+
165
+ The answer is separated into model metadata, policy status, warnings, headings, and lists. Verify every numerical or physiological claim against deterministic SDK outputs.
166
+
167
+ Example questions:
168
+
169
+ ```text
170
+ Which deterministic metrics should I inspect before accepting this run as realistic?
171
+ ```
172
+
173
+ ```text
174
+ Summarize the glucose pattern, list possible simulation artifacts, and identify claims that cannot be supported by this CSV alone.
175
+ ```
176
+
177
+ Do not ask the model for dosing or treatment advice. Read [AI Safety Gates](LOCAL_AI_SAFETY_GATES.md) for the enforced boundaries.
178
+
179
+ ## 6. Use Research Tools
180
+
181
+ ![Research tools workspace with genomics, tissue stress, and independent reference model controls](assets/workbench/06-research-tools.png)
182
+
183
+ The **Research tools** workspace contains independent evidence and stress-test layers:
184
+
185
+ | Tool | Use | Important boundary |
186
+ | --- | --- | --- |
187
+ | AlphaFold assets | inspect protein structure and PAE confidence | confidence is not disease severity |
188
+ | Genomics stressor | compare an explicit functional-scalar scenario | unknown variants are not assigned an effect automatically |
189
+ | Tissue resistance | separate muscle and liver sensitivity assumptions | a stress test is not patient calibration |
190
+ | SBML/libRoadRunner | execute an independent equation model | external units are not assumed to be mg/dL or minutes |
191
+ | COPASI | inspect sensitivity and identifiability tasks | configured tasks and bounds require review |
192
+ | OpenCOR/CellML | validate an independent physiology model | imported models remain separate evidence |
193
+ | FMI/FMPy | inspect or run reviewed device-physics models | FMUs can contain native code and require explicit trust |
194
+ | BindingDB | retrieve measured affinity records | Ki, Kd, IC50, pLDDT, and in-vivo effect are distinct evidence types |
195
+
196
+ Start with **Check all engines**. Open only the lab you need, and preserve the generated evidence bundle with the study record.
197
+
198
+ Use **Choose file...** beside SBML, COPASI, CellML, or FMI inputs. The native selector filters the
199
+ visible files by the expected extension. Selecting a file never executes it: static inspection and
200
+ explicit execution remain separate actions, and COPASI/FMI execution still requires the relevant
201
+ confirmation checkbox.
202
+
203
+ ### Inspect an AlphaFold structure
204
+
205
+ Each bundled protein card provides separate actions with different evidence meanings:
206
+
207
+ 1. **View 3D** opens a local, interactive C-alpha backbone in the app. Drag to rotate, scroll to
208
+ zoom, or use the arrow keys. Colours represent AlphaFold pLDDT confidence.
209
+ 2. **Open PNG** opens the bundled static render.
210
+ 3. **Reveal mmCIF** shows the exact local coordinate file in Finder, Explorer, or the Linux file
211
+ manager rather than relying on an operating-system association for `.cif`.
212
+ 4. **Generate PAE** retrieves the official AlphaFold Predicted Aligned Error data over verified
213
+ HTTPS and writes an interactive HTML artifact below the selected output folder.
214
+ 5. **AlphaFold entry** opens the matching official database page in the system browser.
215
+
216
+ pLDDT describes local structure-prediction confidence and PAE describes confidence in relative
217
+ residue placement. Neither value is converted into pathogenicity, insulin sensitivity, disease
218
+ severity, or treatment logic.
219
+
220
+ ## 7. Evidence Sources
221
+
222
+ The **Evidence sources** workspace describes whether a connector is:
223
+
224
+ - **Integrated** — the SDK can retrieve or generate a bounded evidence artifact.
225
+ - **Partial** — only part of the workflow is implemented.
226
+ - **Portal** — the app opens the official external resource.
227
+ - **Planned** — no functioning integration exists yet.
228
+
229
+ Opening a portal does not import its content into a simulation. External evidence must be cited, reviewed, licensed appropriately, and connected to a claim explicitly.
230
+
231
+ ## 8. Configure And Maintain The App
232
+
233
+ ![Settings workspace with local preferences, app and SDK versions, update controls, and documentation links](assets/workbench/07-settings.png)
234
+
235
+ Open **Settings** to maintain the workbench without mixing application controls into a scientific run.
236
+
237
+ ### Local preferences
238
+
239
+ You can set:
240
+
241
+ - the default output folder, selected with **Choose folder...**
242
+ - the default deterministic seed
243
+ - the default local Ollama model
244
+ - the local Ollama host
245
+ - whether diagnostics run at startup
246
+
247
+ Select **Save settings** to apply these values to the Run and Local AI workspaces. Preferences are stored only in the app's local browser storage. The Settings panel does not store tokens, passwords, patient data, or run results. Ollama hosts are restricted to `localhost`, `127.0.0.1`, or `::1`.
248
+
249
+ ### Software updates
250
+
251
+ The desktop app and Python SDK have separate version records:
252
+
253
+ - **Install or update Python SDK** creates, repairs, or updates the private app engine through a fixed, Rust-owned command. The app does not accept arbitrary shell text.
254
+ - **Download latest app update** opens the stable `tauri-beta-latest` GitHub release. Install the new signed installer for your platform after closing the current app.
255
+ - **Refresh versions** checks the native app and the Python engine independently.
256
+
257
+ The beta deliberately does not replace its own executable silently. This keeps downloads, signatures, and release notes visible until a signed Tauri self-updater is introduced and audited.
258
+
259
+ ### Help
260
+
261
+ The same workspace links to this user guide, installation troubleshooting, the complete SDK documentation, and [iints.org](https://iints.org/).
262
+
263
+ ## Common Problems
264
+
265
+ | Message or symptom | What to do |
266
+ | --- | --- |
267
+ | Python bridge unavailable | select **Install Python engine**, wait for completion, then select **Refresh versions** |
268
+ | `No module named iints_desktop` | repair the private engine with **Install or update Python SDK**; the discovered Python does not contain the SDK bridge |
269
+ | Protocol list is empty | run diagnostics, verify the SDK installation, then select Refresh protocols |
270
+ | Native selector does not open | confirm you are using the installed app rather than a browser preview |
271
+ | CSV preview fails | select the file again with **Choose CSV...** and confirm it is a supported results CSV |
272
+ | Ollama not found | install Ollama once, then select Start local AI |
273
+ | Model is missing | choose Refresh model list or allow Start local AI to pull the selected model |
274
+ | Optional research engine missing | install or configure only the engine required for that lab |
275
+ | macOS blocks the beta | follow the signed-build and Gatekeeper guidance in [Desktop App Installation](APP_INSTALL.md) |
276
+
277
+ ## Keep A Reviewable Record
278
+
279
+ For every result you intend to discuss or publish, preserve:
280
+
281
+ ```text
282
+ run-folder/
283
+ ├── results.csv
284
+ ├── config.json or run metadata
285
+ ├── clinical or research report
286
+ ├── safety and audit events
287
+ ├── MDMP artifacts when used
288
+ └── academic_bundle/
289
+ ├── ro-crate-metadata.json
290
+ ├── checksums
291
+ └── academic audit
292
+ ```
293
+
294
+ The interface is a workbench, not the scientific authority. The Python SDK output, recorded configuration, deterministic checks, and source evidence remain the basis for interpretation.