messagefoundry 0.2.6__tar.gz → 0.2.7__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 (788) hide show
  1. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.gitattributes +1 -0
  2. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/workflows/release.yml +15 -0
  3. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.gitignore +5 -0
  4. messagefoundry-0.2.7/.mefor-hooks/pre-commit +25 -0
  5. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/CHANGELOG.md +26 -1
  6. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/PKG-INFO +29 -22
  7. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/README.md +24 -21
  8. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/BACKLOG.md +82 -0
  9. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/__init__.py +1 -1
  10. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/pyproject.toml +7 -0
  11. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.claude/settings.json +0 -0
  12. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.dockerignore +0 -0
  13. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/CODEOWNERS +0 -0
  14. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  15. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  16. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  17. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  18. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/SECURITY.md +0 -0
  19. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/dependabot.yml +0 -0
  20. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/workflows/benchmark.yml +0 -0
  21. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/workflows/ci.yml +0 -0
  22. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/workflows/cla.yml +0 -0
  23. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/workflows/codeql.yml +0 -0
  24. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/workflows/dependabot-auto-merge.yml +0 -0
  25. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/workflows/dependabot-lock-resync.yml +0 -0
  26. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/workflows/freethread-smoke.yml +0 -0
  27. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/workflows/release-sync-check.yml +0 -0
  28. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/workflows/scorecard.yml +0 -0
  29. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/workflows/security.yml +0 -0
  30. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/workflows/vuln-metrics.yml +0 -0
  31. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.github/zizmor.yml +0 -0
  32. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.gitleaks.toml +0 -0
  33. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.pre-commit-config.yaml +0 -0
  34. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/.semgrep/messagefoundry.yml +0 -0
  35. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/CLA.md +0 -0
  36. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/CLAUDE.md +0 -0
  37. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/CODE_OF_CONDUCT.md +0 -0
  38. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/COMMERCIAL-LICENSE.md +0 -0
  39. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/CONTRIBUTING.md +0 -0
  40. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/GOVERNANCE.md +0 -0
  41. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/LICENSE +0 -0
  42. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/MAINTAINERS.md +0 -0
  43. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/NOTICE +0 -0
  44. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docker/Dockerfile +0 -0
  45. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docker/README.md +0 -0
  46. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docker/compose.yaml +0 -0
  47. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docker/k8s/secret.example.yaml +0 -0
  48. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docker/k8s/statefulset.yaml +0 -0
  49. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docker/locks/requirements-core.lock +0 -0
  50. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docker/locks/requirements-sqlserver.lock +0 -0
  51. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docker/secrets.env.example +0 -0
  52. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docker/smoke/Dockerfile +0 -0
  53. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docker/smoke/config/IB_Test_ADT.py +0 -0
  54. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docker/smoke/send_adt.py +0 -0
  55. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/ADOPTER-CI.md +0 -0
  56. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/AI.md +0 -0
  57. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/ARCHITECTURE.md +0 -0
  58. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/CI-QUALITY.md +0 -0
  59. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/CLUSTERING.md +0 -0
  60. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/CODESETS.md +0 -0
  61. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/CONFIGURATION.md +0 -0
  62. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/CONNECTIONS.md +0 -0
  63. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/CONTAINER-EXPOSURE-EVALUATION.md +0 -0
  64. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/CONTRIBUTOR-FIRST-ISSUES.md +0 -0
  65. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/CONTRIBUTOR-PROGRAM-PLAN.md +0 -0
  66. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/COUNSEL-ENGAGEMENT-BRIEF.md +0 -0
  67. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/DEPLOY-SERVER-DB.md +0 -0
  68. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/DEPLOYMENT.md +0 -0
  69. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/DICOM.md +0 -0
  70. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/DUAL_LICENSING_PLAN.md +0 -0
  71. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/EARLY-ADOPTER-GUIDE.md +0 -0
  72. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/FEATURE-MAP.md +0 -0
  73. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/HL7-VALIDATION.md +0 -0
  74. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/INSTALL-GUIDE.md +0 -0
  75. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/LOAD-TESTING.md +0 -0
  76. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/MENTAL-MODEL.md +0 -0
  77. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/MessageFoundry-Mental-Model.docx +0 -0
  78. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/PHI.md +0 -0
  79. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/REMOTE-CONSOLE-CUSTOMER-GUIDE.md +0 -0
  80. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/REMOTE-CONSOLE.md +0 -0
  81. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/SECURITY-REMEDIATION-LEDGER.md +0 -0
  82. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/SECURITY.md +0 -0
  83. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/SERVICE.md +0 -0
  84. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/SUPPORT-POLICY.md +0 -0
  85. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/SYSTEM-REQUIREMENTS.md +0 -0
  86. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/Secure_AI_Development_Standards.md +0 -0
  87. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/Secure_Development_Standards.md +0 -0
  88. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/TEE-RELAY.md +0 -0
  89. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/THROUGHPUT-IMPROVEMENTS.md +0 -0
  90. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/USER-GUIDE.md +0 -0
  91. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/WORKTREES.md +0 -0
  92. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0001-staged-pipeline-architecture.md +0 -0
  93. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0002-phase2-transport-security-and-strong-auth.md +0 -0
  94. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0003-non-hl7-transports-database-rest-soap.md +0 -0
  95. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0004-payload-agnostic-ingress.md +0 -0
  96. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0005-transform-accessible-state.md +0 -0
  97. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0006-external-data-lookups.md +0 -0
  98. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0007-gui-manageable-connections-toml.md +0 -0
  99. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0008-cluster-observability-api.md +0 -0
  100. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0009-run-scoped-context-providers.md +0 -0
  101. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0010-handler-callable-db-lookup.md +0 -0
  102. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0011-timer-scheduled-source.md +0 -0
  103. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0012-x12-edi-codec.md +0 -0
  104. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0013-increment-2-reingress-design.md +0 -0
  105. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0013-query-response-orchestration.md +0 -0
  106. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0014-alerting-rules-engine.md +0 -0
  107. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0015-ws-soap-outbound-mtls-wssecurity.md +0 -0
  108. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0016-synchronous-x12-request-response.md +0 -0
  109. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0017-consumer-deployment-model.md +0 -0
  110. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0018-per-message-signatures-accepted-risk.md +0 -0
  111. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0019-pluggable-keyprovider-hsm-kms-vault.md +0 -0
  112. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0020-protocol-diagnostic-capture.md +0 -0
  113. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0021-inbound-ack-nak-capture-response-sent.md +0 -0
  114. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0022-fhir-resource-codec-rest-client.md +0 -0
  115. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0024-smart-backend-services-token-provider.md +0 -0
  116. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0025-dicom-codec-store-connectors.md +0 -0
  117. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0026-off-box-egress-update-check.md +0 -0
  118. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0028-base64-binary-carriage-codec.md +0 -0
  119. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0030-anonymization-test-harness-tee.md +0 -0
  120. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0031-startup-connection-fault-isolation.md +0 -0
  121. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0032-console-desktop-launch.md +0 -0
  122. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0033-gui-manageable-code-sets.md +0 -0
  123. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0034-static-analysis-triage-policy-accepted-risk-register.md +0 -0
  124. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0035-ide-extension-workspace-trust-and-scope.md +0 -0
  125. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0036-windows-config-source-trust.md +0 -0
  126. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0037-multi-process-sharding-l3.md +0 -0
  127. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0038-internal-pass-through-connector.md +0 -0
  128. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0039-database-tier-sharding-l5.md +0 -0
  129. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0040-free-threaded-engine-support.md +0 -0
  130. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/0041-load-path-attestation-and-change-attribution.md +0 -0
  131. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/README.md +0 -0
  132. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/adr/TEMPLATE.md +0 -0
  133. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/architecture-components.png +0 -0
  134. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/architecture-components.svg +0 -0
  135. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/architecture-config-graph.png +0 -0
  136. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/architecture-config-graph.svg +0 -0
  137. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/architecture-diagram.md +0 -0
  138. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/architecture-message-flow.png +0 -0
  139. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/architecture-message-flow.svg +0 -0
  140. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/architecture-topology.png +0 -0
  141. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/architecture-topology.svg +0 -0
  142. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/benchmarks/TUNING-BASELINE.md +0 -0
  143. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/benchmarks/results/2026-06-16-ci-linux/environment.txt +0 -0
  144. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/benchmarks/results/2026-06-16-ci-linux/failover-postgres.json +0 -0
  145. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/benchmarks/results/2026-06-16-ci-linux/failover-sqlserver.json +0 -0
  146. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/benchmarks/results/2026-06-16-ci-linux/reference-postgres.json +0 -0
  147. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/benchmarks/results/2026-06-16-ci-linux/reference-sqlite.json +0 -0
  148. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/benchmarks/results/2026-06-16-ci-linux/reference-sqlserver.json +0 -0
  149. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/benchmarks/step-b-write-amplification.md +0 -0
  150. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/design/dbshard.md +0 -0
  151. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/design/freethread.md +0 -0
  152. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/design/multiproc.md +0 -0
  153. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/hl7-message-ordering-reference.md +0 -0
  154. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/message-ordering-design.md +0 -0
  155. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/releases/ASVS-OPTION-A-MULTISESSION-PLAN.md +0 -0
  156. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/releases/ASVS-PARTIALS-SWEEP-MULTISESSION-PLAN.md +0 -0
  157. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/releases/DOGFOOD-BACKLOG-MULTISESSION-PLAN.md +0 -0
  158. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/releases/MULTISESSION-PLAN-3.md +0 -0
  159. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/releases/MULTISESSION-PLAN-v0.2.md +0 -0
  160. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/releases/MULTISESSION-PLAN.md +0 -0
  161. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/releases/PLAN-3-LANE-HANDOFFS.md +0 -0
  162. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/releases/V0.2-LANE-HANDOFFS.md +0 -0
  163. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/releases/v0.1-EXECUTION-PLAN.md +0 -0
  164. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/releases/v0.1-PLAN.md +0 -0
  165. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/releases/v0.1.0-PRETAG-CHECKLIST.md +0 -0
  166. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/research/cloud-deployment-research-2026-06.md +0 -0
  167. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/research/config-ux-review.md +0 -0
  168. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/research/non-hl7-transform-components.md +0 -0
  169. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/reviews/DEPENDENCY-INFOSEC-POSTURE-2026-06-23.md +0 -0
  170. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/reviews/FULL-REVIEW-2026-06-10.md +0 -0
  171. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/ADVISORY-PROCESS.md +0 -0
  172. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/ASVS-FAILS-REMEDIATION-PLAN.md +0 -0
  173. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/ASVS-L2-PHASE0-CHANGES.md +0 -0
  174. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/ASVS-L2-REMEDIATION-PLAN.md +0 -0
  175. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/ASVS-L3-ASSESSMENT.md +0 -0
  176. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/ASVS-L3-REMEDIATION-PLAN.md +0 -0
  177. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/ASVS-L3-STATUS.md +0 -0
  178. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/BEYOND-ASVS-L3-ONEPAGE.md +0 -0
  179. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/BEYOND-ASVS-L3-REMEDIATION-PLAN-ONEPAGE.md +0 -0
  180. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/BEYOND-ASVS-L3-REMEDIATION-PLAN.md +0 -0
  181. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/BEYOND-ASVS-L3.md +0 -0
  182. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/DEP-CVE-RUNBOOK.md +0 -0
  183. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/DEPENDENCY-METRICS.md +0 -0
  184. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/MEFOR-Code-Review-Checklist.xlsx +0 -0
  185. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/PHASE-8C-RBAC.md +0 -0
  186. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/PUBLISHING.md +0 -0
  187. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/RCA-TEMPLATE.md +0 -0
  188. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/RELEASE-GATE.md +0 -0
  189. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/REMEDIATION-PLAN.md +0 -0
  190. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/REVIEW-2026-06-07.md +0 -0
  191. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/SDS-CONFORMANCE-REVIEW-2026-06-12.md +0 -0
  192. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/SDS-REMEDIATION-PLAN.md +0 -0
  193. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/SECURITY-POSTURE.md +0 -0
  194. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/SOUP-DEPENDENCY-HANDLING.md +0 -0
  195. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/SOUP-REVIEW-2026-06-18.md +0 -0
  196. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/SOUP-REVIEW-PROCEDURE.md +0 -0
  197. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/security/THREAT-MODEL.md +0 -0
  198. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/testing/VERIFY.md +0 -0
  199. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/testing/WIN2025-ACCEPTANCE.md +0 -0
  200. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/testing/WIN2025-TEST-MATRIX.md +0 -0
  201. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/docs/testing/WIN2025-TEST-PLAN.md +0 -0
  202. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/environments/dev.toml +0 -0
  203. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/environments/prod.toml +0 -0
  204. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/README.md +0 -0
  205. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/__main__.py +0 -0
  206. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/acceptance/__init__.py +0 -0
  207. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/acceptance/__main__.py +0 -0
  208. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/acceptance/matrix.py +0 -0
  209. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/acceptance/probes.py +0 -0
  210. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/acceptance/report.py +0 -0
  211. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/acceptance/runner.py +0 -0
  212. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/compose.py +0 -0
  213. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/config/coverage.py +0 -0
  214. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/config/load/_shape.py +0 -0
  215. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/config/load/graph.py +0 -0
  216. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/file_panel.py +0 -0
  217. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/file_transport.py +0 -0
  218. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/__init__.py +0 -0
  219. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/corpus.py +0 -0
  220. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/correlator.py +0 -0
  221. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/enginepoll.py +0 -0
  222. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/failover.py +0 -0
  223. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/failover_track.py +0 -0
  224. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/governor.py +0 -0
  225. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/ids.py +0 -0
  226. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/metrics.py +0 -0
  227. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profile.py +0 -0
  228. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profiles/README.md +0 -0
  229. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profiles/adt-fanout-stress.toml +0 -0
  230. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profiles/closed-loop.toml +0 -0
  231. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profiles/failover.toml +0 -0
  232. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profiles/fanout-baseline.toml +0 -0
  233. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profiles/malformed-load.toml +0 -0
  234. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profiles/reference.toml +0 -0
  235. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profiles/smoke-sqlserver.toml +0 -0
  236. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profiles/smoke.toml +0 -0
  237. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profiles/soak.toml +0 -0
  238. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profiles/spike-burst.toml +0 -0
  239. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profiles/sustained-overload.toml +0 -0
  240. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/profiles/writeamp.toml +0 -0
  241. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/report.py +0 -0
  242. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/runner.py +0 -0
  243. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/sender.py +0 -0
  244. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/load/sink.py +0 -0
  245. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/mllp.py +0 -0
  246. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/monitor.py +0 -0
  247. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/receive.py +0 -0
  248. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/reconcile/__init__.py +0 -0
  249. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/reconcile/__main__.py +0 -0
  250. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/reconcile/capture.py +0 -0
  251. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/reconcile/compare.py +0 -0
  252. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/reconcile/normalize.py +0 -0
  253. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/reconcile/report.py +0 -0
  254. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/scenarios.py +0 -0
  255. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/send.py +0 -0
  256. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/harness/window.py +0 -0
  257. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/.gitignore +0 -0
  258. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/.vscodeignore +0 -0
  259. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/README.md +0 -0
  260. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/esbuild.js +0 -0
  261. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/media/hl7schema.json +0 -0
  262. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/media/icon-amber.svg +0 -0
  263. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/media/icon.png +0 -0
  264. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/media/icon.svg +0 -0
  265. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/package-lock.json +0 -0
  266. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/package.json +0 -0
  267. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/snippets/messagefoundry.code-snippets +0 -0
  268. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/aiPolicy.ts +0 -0
  269. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/alertEditor.ts +0 -0
  270. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/auth.ts +0 -0
  271. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/chat.ts +0 -0
  272. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/cli.ts +0 -0
  273. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/codeSetEditor.ts +0 -0
  274. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/codesetsTree.ts +0 -0
  275. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/completion.ts +0 -0
  276. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/connectionEditor.ts +0 -0
  277. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/editorToolbar.ts +0 -0
  278. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/engineClient.ts +0 -0
  279. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/engineTarget.ts +0 -0
  280. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/extension.ts +0 -0
  281. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/generate.ts +0 -0
  282. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/git.ts +0 -0
  283. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/graphTree.ts +0 -0
  284. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/home.ts +0 -0
  285. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/insertElement.ts +0 -0
  286. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/newRoute.ts +0 -0
  287. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/promote.ts +0 -0
  288. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/promoteTarget.ts +0 -0
  289. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/sourceControl.ts +0 -0
  290. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/test/runTest.ts +0 -0
  291. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/test/suite/ai-policy.test.ts +0 -0
  292. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/test/suite/chat.test.ts +0 -0
  293. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/test/suite/editor-toolbar.test.ts +0 -0
  294. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/test/suite/engine-target.test.ts +0 -0
  295. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/test/suite/extension.test.ts +0 -0
  296. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/test/suite/index.ts +0 -0
  297. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/test/suite/insert-element.test.ts +0 -0
  298. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/test/suite/promote-target.test.ts +0 -0
  299. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/test/suite/pythonpath.test.ts +0 -0
  300. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/test/suite/settings-scope.test.ts +0 -0
  301. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/testBench.ts +0 -0
  302. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/src/validate.ts +0 -0
  303. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/tsconfig.json +0 -0
  304. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/ide/tsconfig.test.json +0 -0
  305. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/mefor.code-workspace +0 -0
  306. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/__main__.py +0 -0
  307. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/adr_analyze.py +0 -0
  308. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/anon/__init__.py +0 -0
  309. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/anon/_pools.py +0 -0
  310. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/anon/hl7.py +0 -0
  311. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/anon/keying.py +0 -0
  312. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/anon/leak.py +0 -0
  313. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/anon/rules.py +0 -0
  314. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/anon/surrogates.py +0 -0
  315. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/api/__init__.py +0 -0
  316. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/api/app.py +0 -0
  317. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/api/approvals.py +0 -0
  318. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/api/auth_models.py +0 -0
  319. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/api/auth_routes.py +0 -0
  320. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/api/field_authz.py +0 -0
  321. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/api/metrics.py +0 -0
  322. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/api/models.py +0 -0
  323. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/api/security.py +0 -0
  324. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/api/tls.py +0 -0
  325. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/auth/__init__.py +0 -0
  326. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/auth/data/common_passwords.NOTICE +0 -0
  327. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/auth/data/common_passwords.txt +0 -0
  328. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/auth/identity.py +0 -0
  329. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/auth/ldap.py +0 -0
  330. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/auth/notifications.py +0 -0
  331. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/auth/passwords.py +0 -0
  332. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/auth/permissions.py +0 -0
  333. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/auth/policy.py +0 -0
  334. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/auth/ratelimit.py +0 -0
  335. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/auth/service.py +0 -0
  336. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/auth/tokens.py +0 -0
  337. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/auth/totp.py +0 -0
  338. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/checks.py +0 -0
  339. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/__init__.py +0 -0
  340. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/active_environment.py +0 -0
  341. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/ai_policy.py +0 -0
  342. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/alerts_edit.py +0 -0
  343. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/code_sets.py +0 -0
  344. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/codeset_edit.py +0 -0
  345. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/connections_edit.py +0 -0
  346. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/connections_file.py +0 -0
  347. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/db_lookup.py +0 -0
  348. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/environments.py +0 -0
  349. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/fingerprint.py +0 -0
  350. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/ingest_time.py +0 -0
  351. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/models.py +0 -0
  352. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/reference.py +0 -0
  353. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/response.py +0 -0
  354. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/run_context.py +0 -0
  355. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/settings.py +0 -0
  356. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/state.py +0 -0
  357. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/tls_policy.py +0 -0
  358. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/config/wiring.py +0 -0
  359. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/__init__.py +0 -0
  360. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/__main__.py +0 -0
  361. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/_async.py +0 -0
  362. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/alerts_page.py +0 -0
  363. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/change_password.py +0 -0
  364. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/client.py +0 -0
  365. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/connections.py +0 -0
  366. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/dead_letters_page.py +0 -0
  367. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/delegates.py +0 -0
  368. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/event_log_page.py +0 -0
  369. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/icons/alerts.svg +0 -0
  370. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/icons/connections.svg +0 -0
  371. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/icons/dead-letters.svg +0 -0
  372. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/icons/engine-status.svg +0 -0
  373. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/icons/log-search.svg +0 -0
  374. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/icons/logo-lockup.svg +0 -0
  375. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/icons/users.svg +0 -0
  376. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/login.py +0 -0
  377. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/mfa.py +0 -0
  378. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/reauth.py +0 -0
  379. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/resources/README.md +0 -0
  380. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/resources/app.ico +0 -0
  381. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/resources/app.svg +0 -0
  382. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/search.py +0 -0
  383. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/service_control.py +0 -0
  384. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/sessions.py +0 -0
  385. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/shards.py +0 -0
  386. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/shell.py +0 -0
  387. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/status.py +0 -0
  388. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/theme.py +0 -0
  389. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/users_page.py +0 -0
  390. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/console/widgets.py +0 -0
  391. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/README.md +0 -0
  392. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/__init__.py +0 -0
  393. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/_core.py +0 -0
  394. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/_hl7data.py +0 -0
  395. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/adt.py +0 -0
  396. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/all_types.py +0 -0
  397. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/bar.py +0 -0
  398. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/dft.py +0 -0
  399. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/documents.py +0 -0
  400. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/mdm.py +0 -0
  401. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/mfn.py +0 -0
  402. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/oml.py +0 -0
  403. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/orl.py +0 -0
  404. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/orm.py +0 -0
  405. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/oru.py +0 -0
  406. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/ras.py +0 -0
  407. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/rde.py +0 -0
  408. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/siu.py +0 -0
  409. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/generators/vxu.py +0 -0
  410. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/hl7schema.py +0 -0
  411. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/last_resort.py +0 -0
  412. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/logging_setup.py +0 -0
  413. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/__init__.py +0 -0
  414. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/binary.py +0 -0
  415. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/consistency.py +0 -0
  416. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/dicom/__init__.py +0 -0
  417. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/dicom/_deps.py +0 -0
  418. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/dicom/_util.py +0 -0
  419. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/dicom/dataset.py +0 -0
  420. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/dicom/errors.py +0 -0
  421. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/dicom/hl7_map.py +0 -0
  422. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/dicom/peek.py +0 -0
  423. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/fhir/__init__.py +0 -0
  424. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/fhir/_deps.py +0 -0
  425. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/fhir/errors.py +0 -0
  426. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/fhir/peek.py +0 -0
  427. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/fhir/resource.py +0 -0
  428. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/groups.py +0 -0
  429. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/message.py +0 -0
  430. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/peek.py +0 -0
  431. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/split.py +0 -0
  432. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/summary.py +0 -0
  433. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/tree.py +0 -0
  434. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/validate.py +0 -0
  435. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/x12/__init__.py +0 -0
  436. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/x12/delimiters.py +0 -0
  437. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/x12/errors.py +0 -0
  438. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/x12/interchange.py +0 -0
  439. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/x12/message.py +0 -0
  440. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/parsing/x12/peek.py +0 -0
  441. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/__init__.py +0 -0
  442. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/alert_sinks.py +0 -0
  443. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/alerts.py +0 -0
  444. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/cert_expiry.py +0 -0
  445. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/cluster.py +0 -0
  446. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/cluster_sqlserver.py +0 -0
  447. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/config_convergence.py +0 -0
  448. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/dryrun.py +0 -0
  449. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/engine.py +0 -0
  450. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/leader_tasks.py +0 -0
  451. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/reference_sync.py +0 -0
  452. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/retention.py +0 -0
  453. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/security_notify.py +0 -0
  454. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/sharding.py +0 -0
  455. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/state_convergence.py +0 -0
  456. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/supervisor.py +0 -0
  457. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/pipeline/wiring_runner.py +0 -0
  458. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/py.typed +0 -0
  459. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/redaction.py +0 -0
  460. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/scaffold.py +0 -0
  461. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/secrets_dpapi.py +0 -0
  462. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/store/__init__.py +0 -0
  463. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/store/audit_tee.py +0 -0
  464. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/store/base.py +0 -0
  465. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/store/crypto.py +0 -0
  466. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/store/keyprovider.py +0 -0
  467. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/store/postgres.py +0 -0
  468. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/store/sqlserver.py +0 -0
  469. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/store/store.py +0 -0
  470. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/timezone.py +0 -0
  471. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/__init__.py +0 -0
  472. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/base.py +0 -0
  473. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/database.py +0 -0
  474. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/dicom.py +0 -0
  475. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/dicomweb.py +0 -0
  476. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/fhir.py +0 -0
  477. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/file.py +0 -0
  478. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/framing.py +0 -0
  479. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/loopback.py +0 -0
  480. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/mllp.py +0 -0
  481. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/passthrough.py +0 -0
  482. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/remotefile.py +0 -0
  483. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/rest.py +0 -0
  484. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/signing.py +0 -0
  485. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/smart.py +0 -0
  486. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/soap.py +0 -0
  487. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/tcp.py +0 -0
  488. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/timer.py +0 -0
  489. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/transports/x12.py +0 -0
  490. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/verify/__init__.py +0 -0
  491. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/verify/checks.py +0 -0
  492. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/verify/model.py +0 -0
  493. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/verify/report.py +0 -0
  494. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/verify/runner.py +0 -0
  495. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/messagefoundry/verify/smoke.py +0 -0
  496. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/packaging/messagefoundry-harness/README.md +0 -0
  497. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/packaging/messagefoundry-harness/pyproject.toml +0 -0
  498. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/requirements.lock +0 -0
  499. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/config/IB_ACME_ADT.py +0 -0
  500. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/config/IB_FHIR_INTAKE.py +0 -0
  501. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/config/IB_IMMUNIZATION_VXU.py +0 -0
  502. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/config/IB_PARTNER_X12.py +0 -0
  503. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/config/IB_RADIOLOGY_SR.py +0 -0
  504. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/config/IB_RTE_ELIGIBILITY.py +0 -0
  505. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/config/adt.py +0 -0
  506. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/config/codesets/event_labels.csv +0 -0
  507. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/config/codesets/facility_mnemonics.toml +0 -0
  508. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/config/connections.toml +0 -0
  509. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/consistency/validated_adt.py +0 -0
  510. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/dicom/generate_sr_sample.py +0 -0
  511. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/messages/adt_a01.hl7 +0 -0
  512. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/messages/adt_batch.hl7 +0 -0
  513. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/messages/hapi-hl7v2/.gitattributes +0 -0
  514. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/messages/hapi-hl7v2/README.md +0 -0
  515. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/messages/hapi-hl7v2/adt_a01.txt +0 -0
  516. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/messages/hapi-hl7v2/adt_a03.txt +0 -0
  517. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/messages/hapi-hl7v2/batch_18_messages.txt +0 -0
  518. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/messages/hapi-hl7v2/erp_z99_v231.hl7 +0 -0
  519. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/messages/hapi-hl7v2/omd_o03.txt +0 -0
  520. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/messages/hapi-hl7v2/omd_o03_rep.txt +0 -0
  521. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/messages/hapi-hl7v2/oml_o21.hl7 +0 -0
  522. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/messages/x12_270_eligibility.edi +0 -0
  523. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/results_relay/README.md +0 -0
  524. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/results_relay/codesets/test_codes.csv +0 -0
  525. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/results_relay/messages/oru_all_cancelled.hl7 +0 -0
  526. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/results_relay/messages/oru_results.hl7 +0 -0
  527. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/results_relay/results_relay.py +0 -0
  528. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/samples/send_mllp.py +0 -0
  529. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/console/install-console-shortcut.ps1 +0 -0
  530. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/console/pack_ico.py +0 -0
  531. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/console/uninstall-console-shortcut.ps1 +0 -0
  532. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/dev/postgres.ps1 +0 -0
  533. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/dev/sqlserver-docker.ps1 +0 -0
  534. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/dev/sqlserver.ps1 +0 -0
  535. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/hooks/block-blanket-git-stage.ps1 +0 -0
  536. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/publish/check_release_sync.py +0 -0
  537. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/publish/publish-denylist.txt +0 -0
  538. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/publish/publish.ps1 +0 -0
  539. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/publish/scan_forbidden.py +0 -0
  540. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/security/crypto_inventory_check.py +0 -0
  541. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/security/vuln_metrics.py +0 -0
  542. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/service/import-db-ca.ps1 +0 -0
  543. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/service/install-service.ps1 +0 -0
  544. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/service/uninstall-service.ps1 +0 -0
  545. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/trace_icon.py +0 -0
  546. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/worktree/new.ps1 +0 -0
  547. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/worktree/remove.ps1 +0 -0
  548. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/worktree/session-context.ps1 +0 -0
  549. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/scripts/worktree/spawn.ps1 +0 -0
  550. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/__init__.py +0 -0
  551. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/__main__.py +0 -0
  552. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/anon/__init__.py +0 -0
  553. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/anon/_hl7data.py +0 -0
  554. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/anon/_pools.py +0 -0
  555. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/anon/hl7.py +0 -0
  556. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/anon/keying.py +0 -0
  557. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/anon/leak.py +0 -0
  558. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/anon/rules.py +0 -0
  559. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/anon/surrogates.py +0 -0
  560. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/compare.py +0 -0
  561. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/correlate.py +0 -0
  562. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/hl7_fields.py +0 -0
  563. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/mefor_api.py +0 -0
  564. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/mllp.py +0 -0
  565. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/relay.py +0 -0
  566. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/report.py +0 -0
  567. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tee/store.py +0 -0
  568. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/_dicom_sample.py +0 -0
  569. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/_failover_load_support.py +0 -0
  570. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/_fhir_fixtures.py +0 -0
  571. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/conftest.py +0 -0
  572. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_acceptance_framework.py +0 -0
  573. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_ack_capture_runner.py +0 -0
  574. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_ack_sent_store.py +0 -0
  575. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_active_environment.py +0 -0
  576. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_ad_group_scope.py +0 -0
  577. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_admin_new_ip.py +0 -0
  578. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_adr_analyze.py +0 -0
  579. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_ai_policy.py +0 -0
  580. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_alert_rules.py +0 -0
  581. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_alert_sinks.py +0 -0
  582. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_alerts_edit.py +0 -0
  583. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_alerts_rules_api.py +0 -0
  584. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_anon_core.py +0 -0
  585. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_anon_integration.py +0 -0
  586. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_anon_parity.py +0 -0
  587. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_api.py +0 -0
  588. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_api_auth.py +0 -0
  589. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_api_reload.py +0 -0
  590. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_api_tls.py +0 -0
  591. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_approvals.py +0 -0
  592. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_asvs_phase0.py +0 -0
  593. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_audit_integrity.py +0 -0
  594. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_audit_offbox_tee.py +0 -0
  595. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_auth_core.py +0 -0
  596. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_auth_entry_hardening.py +0 -0
  597. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_auth_hardening.py +0 -0
  598. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_auth_service.py +0 -0
  599. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_auth_session_lifecycle.py +0 -0
  600. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_auth_store.py +0 -0
  601. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_binary_carriage.py +0 -0
  602. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_bootstrap_admin_perms.py +0 -0
  603. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_cert_expiry.py +0 -0
  604. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_channel_rbac.py +0 -0
  605. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_checks.py +0 -0
  606. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_checks_lint.py +0 -0
  607. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_cli.py +0 -0
  608. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_cluster.py +0 -0
  609. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_cluster_failover_postgres.py +0 -0
  610. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_cluster_failover_sqlserver.py +0 -0
  611. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_cluster_graph_gating.py +0 -0
  612. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_cluster_lease.py +0 -0
  613. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_code_sets.py +0 -0
  614. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_codeset_edit.py +0 -0
  615. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_config_fingerprint.py +0 -0
  616. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_config_source_trust.py +0 -0
  617. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_connection_api.py +0 -0
  618. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_connection_event_api.py +0 -0
  619. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_connection_event_emit.py +0 -0
  620. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_connection_event_outbound.py +0 -0
  621. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_connection_event_scope.py +0 -0
  622. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_connection_event_store.py +0 -0
  623. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_connection_resilience.py +0 -0
  624. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_connections_cli.py +0 -0
  625. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_connections_file.py +0 -0
  626. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_consistency.py +0 -0
  627. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_alerts.py +0 -0
  628. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_auth.py +0 -0
  629. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_client.py +0 -0
  630. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_dead_letters.py +0 -0
  631. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_event_log.py +0 -0
  632. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_hardening.py +0 -0
  633. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_icon.py +0 -0
  634. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_password.py +0 -0
  635. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_sessions.py +0 -0
  636. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_shards.py +0 -0
  637. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_status.py +0 -0
  638. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_step_up.py +0 -0
  639. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_theme.py +0 -0
  640. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_users.py +0 -0
  641. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_console_widgets.py +0 -0
  642. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_database_connector_integration.py +0 -0
  643. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_database_transport.py +0 -0
  644. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_db_lookup.py +0 -0
  645. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_db_lookup_live_runner.py +0 -0
  646. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_delivery_settings.py +0 -0
  647. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_dependabot_automerge_guardrails.py +0 -0
  648. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_dependency_boundaries.py +0 -0
  649. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_dicom_codec.py +0 -0
  650. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_dicom_scp.py +0 -0
  651. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_dicom_scp_security.py +0 -0
  652. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_dicom_scu.py +0 -0
  653. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_dicom_wiring.py +0 -0
  654. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_dicomweb.py +0 -0
  655. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_docs_runbooks.py +0 -0
  656. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_dryrun.py +0 -0
  657. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_ed_documents.py +0 -0
  658. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_ed_documents_e2e.py +0 -0
  659. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_egress_allowlist.py +0 -0
  660. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_environments.py +0 -0
  661. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_fhir_parsing.py +0 -0
  662. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_fhir_resource.py +0 -0
  663. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_fhir_transport.py +0 -0
  664. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_field_authz.py +0 -0
  665. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_field_authz_metadata.py +0 -0
  666. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_fifo_ordering.py +0 -0
  667. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_generate_cli.py +0 -0
  668. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_generated_adt.py +0 -0
  669. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_generators_core.py +0 -0
  670. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_generators_types.py +0 -0
  671. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_groups.py +0 -0
  672. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_harness.py +0 -0
  673. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_harness_compose.py +0 -0
  674. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_harness_config.py +0 -0
  675. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_harness_faults.py +0 -0
  676. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_harness_file.py +0 -0
  677. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_harness_monitor.py +0 -0
  678. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_harness_scenarios.py +0 -0
  679. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_hl7_core_features.py +0 -0
  680. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_hl7schema.py +0 -0
  681. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_inbound_bind.py +0 -0
  682. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_ingest_time.py +0 -0
  683. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_keyprovider.py +0 -0
  684. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_last_admin_guard.py +0 -0
  685. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_last_resort.py +0 -0
  686. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_leader_tasks.py +0 -0
  687. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_listener_tls_exposure.py +0 -0
  688. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_load_config.py +0 -0
  689. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_load_corpus.py +0 -0
  690. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_load_failover_postgres.py +0 -0
  691. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_load_failover_sqlserver.py +0 -0
  692. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_load_failover_unit.py +0 -0
  693. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_load_metrics.py +0 -0
  694. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_load_profile.py +0 -0
  695. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_load_report.py +0 -0
  696. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_load_runner.py +0 -0
  697. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_load_sender.py +0 -0
  698. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_load_sink.py +0 -0
  699. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_logging.py +0 -0
  700. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_message.py +0 -0
  701. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_message_split.py +0 -0
  702. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_metrics_exporter.py +0 -0
  703. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_mfa.py +0 -0
  704. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_mllp_encoding_override.py +0 -0
  705. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_mllp_tls.py +0 -0
  706. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_nonhl7_ingress_size_cap.py +0 -0
  707. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_operability_config.py +0 -0
  708. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_outbound_signing.py +0 -0
  709. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_outbound_simulate.py +0 -0
  710. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_packaging.py +0 -0
  711. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_parse_tree.py +0 -0
  712. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_parsing.py +0 -0
  713. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_passthrough.py +0 -0
  714. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_payload_agnostic_ingress.py +0 -0
  715. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_postgres_store.py +0 -0
  716. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_reconcile_capture.py +0 -0
  717. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_reconcile_compare.py +0 -0
  718. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_reconcile_harness.py +0 -0
  719. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_redaction.py +0 -0
  720. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_reference_sets.py +0 -0
  721. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_reingress.py +0 -0
  722. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_remotefile_transport.py +0 -0
  723. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_response_capture.py +0 -0
  724. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_rest_transport.py +0 -0
  725. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_retention.py +0 -0
  726. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_run_context.py +0 -0
  727. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_scaffold.py +0 -0
  728. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_scaffold_requirements.py +0 -0
  729. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_scan_forbidden.py +0 -0
  730. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_secrets_dpapi.py +0 -0
  731. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_security_notify.py +0 -0
  732. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_security_static.py +0 -0
  733. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_service_control.py +0 -0
  734. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_settings.py +0 -0
  735. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_sharding.py +0 -0
  736. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_sibling_helper_finder.py +0 -0
  737. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_smart_backend.py +0 -0
  738. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_soap_transport.py +0 -0
  739. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_soap_wssecurity.py +0 -0
  740. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_sqlserver_coordinator.py +0 -0
  741. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_sqlserver_cursor_close.py +0 -0
  742. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_sqlserver_schema_init.py +0 -0
  743. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_sqlserver_store.py +0 -0
  744. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_staged_pipeline.py +0 -0
  745. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_startup_fault_isolation.py +0 -0
  746. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_stats_reset.py +0 -0
  747. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_step_up.py +0 -0
  748. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_store.py +0 -0
  749. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_store_backend.py +0 -0
  750. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_store_encryption.py +0 -0
  751. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_store_file_hardening.py +0 -0
  752. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_store_once_deliver_many.py +0 -0
  753. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_store_read_pool.py +0 -0
  754. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_store_ssl.py +0 -0
  755. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_summary.py +0 -0
  756. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_supervisor.py +0 -0
  757. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_task_resilience.py +0 -0
  758. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_tcp_transport.py +0 -0
  759. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_tee_cli.py +0 -0
  760. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_tee_compare.py +0 -0
  761. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_tee_correlate.py +0 -0
  762. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_tee_hl7_fields.py +0 -0
  763. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_tee_mefor_api.py +0 -0
  764. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_tee_mllp.py +0 -0
  765. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_tee_relay.py +0 -0
  766. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_tee_report.py +0 -0
  767. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_tee_store.py +0 -0
  768. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_timer_source.py +0 -0
  769. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_timezone.py +0 -0
  770. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_tls_policy.py +0 -0
  771. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_totp.py +0 -0
  772. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_totp_window.py +0 -0
  773. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_transform_offloop.py +0 -0
  774. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_transform_state.py +0 -0
  775. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_transports.py +0 -0
  776. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_verify.py +0 -0
  777. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_version.py +0 -0
  778. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_win2025_acceptance.py +0 -0
  779. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_wiring.py +0 -0
  780. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_wiring_engine.py +0 -0
  781. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_wiring_reload.py +0 -0
  782. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_wiring_serve.py +0 -0
  783. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_ws_stats_revalidation.py +0 -0
  784. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_x12_parsing.py +0 -0
  785. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_x12_rte.py +0 -0
  786. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_x12_source_ip_allowlist.py +0 -0
  787. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/tests/test_x12_transport.py +0 -0
  788. {messagefoundry-0.2.6 → messagefoundry-0.2.7}/uv.lock +0 -0
@@ -2,3 +2,4 @@
2
2
  # `git diff --exit-code`) can't be tripped by Windows CRLF drift (DEP-1).
3
3
  uv.lock text eol=lf
4
4
  requirements.lock text eol=lf
5
+ .mefor-hooks/** text eol=lf
@@ -54,6 +54,21 @@ jobs:
54
54
  with:
55
55
  python-version: "3.14"
56
56
 
57
+ - name: Rewrite README repo slug for the public PyPI long_description
58
+ run: |
59
+ # PyPI renders README.md (pyproject `readme = "README.md"`) as the project description and
60
+ # fetches it anonymously. The source README points at the PRIVATE source repo
61
+ # (wshallwshall/MessageFoundry) so the team's GitHub view shows the private repo's own CI
62
+ # badges — but anonymous fetches of a private repo's Actions badge SVG 404 (broken badge
63
+ # images), and every body link 404s on click. The public mirror (MEFORORG/MessageFoundry)
64
+ # runs the same workflows and is anonymously reachable, so rewrite the slug here (the same
65
+ # rewrite scripts/publish/publish.ps1 applies to the mirror) before `python -m build` embeds
66
+ # the README. Ephemeral runner edit only — never committed.
67
+ sed -i 's#wshallwshall/MessageFoundry#MEFORORG/MessageFoundry#g' README.md
68
+ if grep -q 'wshallwshall/MessageFoundry' README.md; then
69
+ echo '::error::README slug rewrite left private-repo links'; exit 1
70
+ fi
71
+
57
72
  - name: Build sdist + wheel
58
73
  run: |
59
74
  python -m pip install --upgrade pip build
@@ -80,3 +80,8 @@ TRANSCRIPTS.md
80
80
  # Still usable by name (they sit in PROFILES_DIR) and copy-on to the test box.
81
81
  /harness/load/profiles/hospital-baseline.toml
82
82
  /harness/load/profiles/soak-12h.toml
83
+ # --- MessageFoundry ---
84
+ .mefor/
85
+ *.db*
86
+ .DS_Store
87
+ Thumbs.db
@@ -0,0 +1,25 @@
1
+ #!/bin/sh
2
+ # MessageFoundry pre-commit checks — generated by the VS Code extension.
3
+ # Runs `messagefoundry check` so a commit can't introduce a broken config.
4
+ # Bypass once with: git commit --no-verify
5
+
6
+ PY=python
7
+ command -v python >/dev/null 2>&1 || PY=python3
8
+ if ! command -v "$PY" >/dev/null 2>&1; then
9
+ echo "MessageFoundry: python not found; skipping checks." >&2
10
+ exit 0
11
+ fi
12
+
13
+ # Prefer a project virtualenv if present (Windows + POSIX layouts).
14
+ if [ -x ".venv/Scripts/python.exe" ]; then
15
+ PY=".venv/Scripts/python.exe"
16
+ elif [ -x ".venv/bin/python" ]; then
17
+ PY=".venv/bin/python"
18
+ fi
19
+
20
+ if ! "$PY" -c "import messagefoundry" >/dev/null 2>&1; then
21
+ echo "MessageFoundry: 'messagefoundry' not importable in this environment; skipping checks." >&2
22
+ exit 0
23
+ fi
24
+
25
+ exec "$PY" -m messagefoundry check --config 'samples/config' --messages 'samples/messages'
@@ -6,6 +6,30 @@ All notable changes to MessageFoundry are documented here. The format follows
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.2.7] — 2026-06-27 — Early Access
10
+
11
+ A docs/packaging release that fixes the broken badge images on the PyPI project page
12
+ and adds a config-check pre-commit hook.
13
+
14
+ ### Fixed
15
+ - **Broken badge images in the PyPI project description.** The CI and Security status
16
+ badges in the README pointed at the **private** source repo, so they rendered as
17
+ broken images on the public PyPI page — an anonymous viewer can't fetch a private
18
+ repo's GitHub Actions badge SVG (it 404s). The README now points at the public
19
+ mirror (`MEFORORG/MessageFoundry`), and the release build additionally rewrites any
20
+ remaining `wshallwshall`→`MEFORORG` repo slug in the README before it is embedded as
21
+ the PyPI `long_description`, so the rendered badges resolve anonymously. (#568)
22
+
23
+ ### Added
24
+ - **`messagefoundry check` pre-commit hook.** A VS Code-extension-generated
25
+ `.mefor-hooks/pre-commit` runs `messagefoundry check` so a commit can't introduce a
26
+ broken config (skips cleanly if python or the package isn't importable; bypass with
27
+ `--no-verify`). (#568)
28
+
29
+ ### Docs
30
+ - Backlog **#47** — base64 embedded-document (attachment) pruning (Mirth
31
+ attachment-handler / data-pruner parity); and a Changelog link in the README. (#568)
32
+
9
33
  ## [0.2.6] — 2026-06-27 — Early Access
10
34
 
11
35
  A large release: the **throughput-maximization build** (high-fan-out store-once, multi-process
@@ -275,7 +299,8 @@ tests, but the external code review + penetration test (the bar for a security-c
275
299
  - Releases are built, SBOM'd (CycloneDX), and signed with [Sigstore](https://www.sigstore.dev/) — see the
276
300
  `release` workflow.
277
301
 
278
- [Unreleased]: https://github.com/wshallwshall/MessageFoundry/compare/v0.2.6...HEAD
302
+ [Unreleased]: https://github.com/wshallwshall/MessageFoundry/compare/v0.2.7...HEAD
303
+ [0.2.7]: https://github.com/wshallwshall/MessageFoundry/compare/v0.2.6...v0.2.7
279
304
  [0.2.6]: https://github.com/wshallwshall/MessageFoundry/compare/v0.2.5...v0.2.6
280
305
  [0.2.5]: https://github.com/wshallwshall/MessageFoundry/compare/v0.2.4...v0.2.5
281
306
  [0.2.4]: https://github.com/wshallwshall/MessageFoundry/compare/v0.2.3...v0.2.4
@@ -1,7 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: messagefoundry
3
- Version: 0.2.6
3
+ Version: 0.2.7
4
4
  Summary: Open-source healthcare integration engine — route, transform, and validate messages across many formats and connection types
5
+ Project-URL: Homepage, https://messagefoundry.org/
6
+ Project-URL: Documentation, https://messagefoundry.org/
7
+ Project-URL: Repository, https://github.com/MEFORORG/MessageFoundry
8
+ Project-URL: Issues, https://github.com/MEFORORG/MessageFoundry/issues
5
9
  License-Expression: AGPL-3.0-or-later
6
10
  License-File: LICENSE
7
11
  License-File: NOTICE
@@ -66,10 +70,13 @@ Description-Content-Type: text/markdown
66
70
 
67
71
  # MessageFoundry
68
72
 
69
- [![CI](https://github.com/wshallwshall/MessageFoundry/actions/workflows/ci.yml/badge.svg)](https://github.com/wshallwshall/MessageFoundry/actions/workflows/ci.yml)
70
- [![Security](https://github.com/wshallwshall/MessageFoundry/actions/workflows/security.yml/badge.svg)](https://github.com/wshallwshall/MessageFoundry/actions/workflows/security.yml)
71
- [![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/wshallwshall/MessageFoundry/blob/main/LICENSE)
72
- [![Python 3.14+](https://img.shields.io/badge/python-3.14%2B-blue.svg)](https://github.com/wshallwshall/MessageFoundry/blob/main/pyproject.toml)
73
+ [![CI](https://github.com/MEFORORG/MessageFoundry/actions/workflows/ci.yml/badge.svg)](https://github.com/MEFORORG/MessageFoundry/actions/workflows/ci.yml)
74
+ [![Security](https://github.com/MEFORORG/MessageFoundry/actions/workflows/security.yml/badge.svg)](https://github.com/MEFORORG/MessageFoundry/actions/workflows/security.yml)
75
+ [![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/MEFORORG/MessageFoundry/blob/main/LICENSE)
76
+ [![Python 3.14+](https://img.shields.io/badge/python-3.14%2B-blue.svg)](https://github.com/MEFORORG/MessageFoundry/blob/main/pyproject.toml)
77
+
78
+ **Website & documentation: [messagefoundry.org](https://messagefoundry.org/)** ·
79
+ **[Changelog](https://github.com/MEFORORG/MessageFoundry/blob/main/CHANGELOG.md)**
73
80
 
74
81
  MessageFoundry is an **open-source healthcare integration engine** — a modern, Python-native HL7
75
82
  interface engine. It connects clinical and business systems by routing, transforming, and validating
@@ -96,10 +103,10 @@ The PySide6 console talks to it over a localhost HTTP + WebSocket API — the sa
96
103
  whether the engine runs in-process, as a local daemon, or (later) on a remote host.
97
104
  No hand-rolled IPC; the deployment split is a config choice, not an architectural fork.
98
105
 
99
- See **[docs/architecture-diagram.md](https://github.com/wshallwshall/MessageFoundry/blob/main/docs/architecture-diagram.md)** for the rendered diagrams —
106
+ See **[docs/architecture-diagram.md](https://github.com/MEFORORG/MessageFoundry/blob/main/docs/architecture-diagram.md)** for the rendered diagrams —
100
107
  system topology, runtime message flow through the staged queue, and the config wiring graph (Mermaid,
101
108
  renders on GitHub and in the VS Code preview). The prose source of truth is
102
- [docs/ARCHITECTURE.md](https://github.com/wshallwshall/MessageFoundry/blob/main/docs/ARCHITECTURE.md).
109
+ [docs/ARCHITECTURE.md](https://github.com/MEFORORG/MessageFoundry/blob/main/docs/ARCHITECTURE.md).
103
110
 
104
111
  ### Key decisions
105
112
  - **Reliable by default.** A durable, transactional pipeline gives at-least-once delivery,
@@ -113,7 +120,7 @@ renders on GitHub and in the VS Code preview). The prose source of truth is
113
120
  - **PHI is first-class.** Authentication, RBAC, a user-attributed audit log of message
114
121
  views/replays, **encryption-at-rest** for message bodies (AES-256-GCM), **global PHI log redaction**,
115
122
  and **transport TLS** (HTTPS/WSS for the API plus MLLP-over-TLS) are **built**; MFA and off-box log
116
- shipping remain on the roadmap. See [docs/PHI.md](https://github.com/wshallwshall/MessageFoundry/blob/main/docs/PHI.md) for the full data-protection map.
123
+ shipping remain on the roadmap. See [docs/PHI.md](https://github.com/MEFORORG/MessageFoundry/blob/main/docs/PHI.md) for the full data-protection map.
117
124
 
118
125
  ## Features
119
126
 
@@ -132,9 +139,9 @@ transport TLS — and it runs single-node or in active-passive high availability
132
139
 
133
140
  Full documentation lives on **[messagefoundry.org](https://messagefoundry.org/)**:
134
141
 
135
- - **[Mental map](https://messagefoundry.org/assets/docs/MessageFoundry-Mental-Model.pdf)** — a one-page
136
- picture of how the pieces fit: Connections → Router → Handlers → Connections, with the headless
137
- engine and the console/IDE that drive it.
142
+ - **[Mental map](https://messagefoundry.org/assets/docs/MessageFoundry-Mental-Model.pdf)** — an
143
+ orientation guide to how the pieces fit: Connections → Router → Handlers → Connections, with the
144
+ headless engine and the console/IDE that drive it.
138
145
  - **[Install Guide](https://messagefoundry.org/assets/docs/MessageFoundry-Install-Guide.pdf)** — install,
139
146
  configure, secure, and roll out to production.
140
147
  - **[User Guide](https://messagefoundry.org/assets/docs/MessageFoundry-User-Guide.pdf)** — author and
@@ -149,7 +156,7 @@ Full documentation lives on **[messagefoundry.org](https://messagefoundry.org/)*
149
156
  **The recommended way to deploy MessageFoundry is to install the published package from
150
157
  [PyPI](https://pypi.org/project/messagefoundry/)** — a signed, version-pinned wheel is the
151
158
  supported production artifact, with no source checkout required. Install it as a **pinned
152
- dependency**, then scaffold your own config repo ([ADR 0017](https://github.com/wshallwshall/MessageFoundry/blob/main/docs/adr/0017-consumer-deployment-model.md)):
159
+ dependency**, then scaffold your own config repo ([ADR 0017](https://github.com/MEFORORG/MessageFoundry/blob/main/docs/adr/0017-consumer-deployment-model.md)):
153
160
 
154
161
  ```bash
155
162
  pip install "messagefoundry==<version>" # pin the exact engine version (core runtime, SQLite store)
@@ -181,8 +188,8 @@ test harness* below for where to get it.
181
188
  > **Verify before you install (supply chain).** Every release is built by a GitHub Actions workflow,
182
189
  > Sigstore-signed, and carries SLSA build-provenance + PEP 740 attestations. Verify a downloaded
183
190
  > wheel against its source commit with
184
- > `gh attestation verify <wheel> --repo wshallwshall/MessageFoundry`, or pull the signed wheel + SBOM
185
- > from the [GitHub Release assets](https://github.com/wshallwshall/MessageFoundry/releases). For an
191
+ > `gh attestation verify <wheel> --repo MEFORORG/MessageFoundry`, or pull the signed wheel + SBOM
192
+ > from the [GitHub Release assets](https://github.com/MEFORORG/MessageFoundry/releases). For an
186
193
  > air-gapped site, mirror the wheel to a private index.
187
194
  >
188
195
  > *(Engine developers install from a checkout instead — see [Development](#development).)*
@@ -219,14 +226,14 @@ python -m messagefoundry.console --url http://127.0.0.1:8765
219
226
 
220
227
  ### VS Code extension & test harness
221
228
 
222
- - **VS Code extension** ([`ide/`](https://github.com/wshallwshall/MessageFoundry/tree/main/ide/)) — author and test interfaces in your editor: a New Route
229
+ - **VS Code extension** ([`ide/`](https://github.com/MEFORORG/MessageFoundry/tree/main/ide/)) — author and test interfaces in your editor: a New Route
223
230
  Wizard, validate-on-save, a Test Bench (dry-run `.hl7` files with before/after diffs), Stage →
224
231
  Promote to a running engine, and an HL7-aware `@messagefoundry` chat participant. **It is not on PyPI**
225
232
  (a VS Code extension is a different ecosystem) **and not yet on the VS Code Marketplace** — Marketplace
226
- + Open VSX publishing is **planned** (see [the backlog](https://github.com/wshallwshall/MessageFoundry/blob/main/docs/BACKLOG.md)). Until then, get it from
233
+ + Open VSX publishing is **planned** (see [the backlog](https://github.com/MEFORORG/MessageFoundry/blob/main/docs/BACKLOG.md)). Until then, get it from
227
234
  this repo: open the `ide/` folder in VS Code and press **F5** (Extension Development Host), or build the
228
235
  VSIX (`cd ide && npm install && npx @vscode/vsce package`) and install the `.vsix`. See
229
- [ide/README.md](https://github.com/wshallwshall/MessageFoundry/blob/main/ide/README.md).
236
+ [ide/README.md](https://github.com/MEFORORG/MessageFoundry/blob/main/ide/README.md).
230
237
  - **Test harness** — synthetic-only send/receive (MLLP), load, and failover tooling for exercising a
231
238
  running engine. It ships as a **separate distribution, `messagefoundry-harness`**, released in lockstep
232
239
  with the engine (it is *not* in the engine wheel): `pip install messagefoundry-harness`, then
@@ -235,14 +242,14 @@ python -m messagefoundry.console --url http://127.0.0.1:8765
235
242
  ## License
236
243
 
237
244
  MessageFoundry is licensed under the **GNU Affero General Public License v3.0 or later**
238
- (`AGPL-3.0-or-later`) — see [LICENSE](https://github.com/wshallwshall/MessageFoundry/blob/main/LICENSE). Running a modified version as a network service
245
+ (`AGPL-3.0-or-later`) — see [LICENSE](https://github.com/MEFORORG/MessageFoundry/blob/main/LICENSE). Running a modified version as a network service
239
246
  triggers the AGPL's §13 source-offer obligation. A separately-licensed commercial edition is planned
240
247
  by **MessageFoundry Organization** under the standard open-core model — see
241
- [COMMERCIAL-LICENSE.md](https://github.com/wshallwshall/MessageFoundry/blob/main/COMMERCIAL-LICENSE.md) (terms pending legal review). See [NOTICE](https://github.com/wshallwshall/MessageFoundry/blob/main/NOTICE)
248
+ [COMMERCIAL-LICENSE.md](https://github.com/MEFORORG/MessageFoundry/blob/main/COMMERCIAL-LICENSE.md) (terms pending legal review). See [NOTICE](https://github.com/MEFORORG/MessageFoundry/blob/main/NOTICE)
242
249
  for copyright and attribution.
243
250
 
244
251
  ## Contributing
245
252
 
246
- Contributions are welcome — see [CONTRIBUTING.md](https://github.com/wshallwshall/MessageFoundry/blob/main/CONTRIBUTING.md), our
247
- [Code of Conduct](https://github.com/wshallwshall/MessageFoundry/blob/main/CODE_OF_CONDUCT.md), and how the project is governed in [GOVERNANCE.md](https://github.com/wshallwshall/MessageFoundry/blob/main/GOVERNANCE.md).
248
- A signed [Contributor License Agreement](https://github.com/wshallwshall/MessageFoundry/blob/main/CLA.md) is required before a pull request can be merged.
253
+ Contributions are welcome — see [CONTRIBUTING.md](https://github.com/MEFORORG/MessageFoundry/blob/main/CONTRIBUTING.md), our
254
+ [Code of Conduct](https://github.com/MEFORORG/MessageFoundry/blob/main/CODE_OF_CONDUCT.md), and how the project is governed in [GOVERNANCE.md](https://github.com/MEFORORG/MessageFoundry/blob/main/GOVERNANCE.md).
255
+ A signed [Contributor License Agreement](https://github.com/MEFORORG/MessageFoundry/blob/main/CLA.md) is required before a pull request can be merged.
@@ -1,9 +1,12 @@
1
1
  # MessageFoundry
2
2
 
3
- [![CI](https://github.com/wshallwshall/MessageFoundry/actions/workflows/ci.yml/badge.svg)](https://github.com/wshallwshall/MessageFoundry/actions/workflows/ci.yml)
4
- [![Security](https://github.com/wshallwshall/MessageFoundry/actions/workflows/security.yml/badge.svg)](https://github.com/wshallwshall/MessageFoundry/actions/workflows/security.yml)
5
- [![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/wshallwshall/MessageFoundry/blob/main/LICENSE)
6
- [![Python 3.14+](https://img.shields.io/badge/python-3.14%2B-blue.svg)](https://github.com/wshallwshall/MessageFoundry/blob/main/pyproject.toml)
3
+ [![CI](https://github.com/MEFORORG/MessageFoundry/actions/workflows/ci.yml/badge.svg)](https://github.com/MEFORORG/MessageFoundry/actions/workflows/ci.yml)
4
+ [![Security](https://github.com/MEFORORG/MessageFoundry/actions/workflows/security.yml/badge.svg)](https://github.com/MEFORORG/MessageFoundry/actions/workflows/security.yml)
5
+ [![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/MEFORORG/MessageFoundry/blob/main/LICENSE)
6
+ [![Python 3.14+](https://img.shields.io/badge/python-3.14%2B-blue.svg)](https://github.com/MEFORORG/MessageFoundry/blob/main/pyproject.toml)
7
+
8
+ **Website & documentation: [messagefoundry.org](https://messagefoundry.org/)** ·
9
+ **[Changelog](https://github.com/MEFORORG/MessageFoundry/blob/main/CHANGELOG.md)**
7
10
 
8
11
  MessageFoundry is an **open-source healthcare integration engine** — a modern, Python-native HL7
9
12
  interface engine. It connects clinical and business systems by routing, transforming, and validating
@@ -30,10 +33,10 @@ The PySide6 console talks to it over a localhost HTTP + WebSocket API — the sa
30
33
  whether the engine runs in-process, as a local daemon, or (later) on a remote host.
31
34
  No hand-rolled IPC; the deployment split is a config choice, not an architectural fork.
32
35
 
33
- See **[docs/architecture-diagram.md](https://github.com/wshallwshall/MessageFoundry/blob/main/docs/architecture-diagram.md)** for the rendered diagrams —
36
+ See **[docs/architecture-diagram.md](https://github.com/MEFORORG/MessageFoundry/blob/main/docs/architecture-diagram.md)** for the rendered diagrams —
34
37
  system topology, runtime message flow through the staged queue, and the config wiring graph (Mermaid,
35
38
  renders on GitHub and in the VS Code preview). The prose source of truth is
36
- [docs/ARCHITECTURE.md](https://github.com/wshallwshall/MessageFoundry/blob/main/docs/ARCHITECTURE.md).
39
+ [docs/ARCHITECTURE.md](https://github.com/MEFORORG/MessageFoundry/blob/main/docs/ARCHITECTURE.md).
37
40
 
38
41
  ### Key decisions
39
42
  - **Reliable by default.** A durable, transactional pipeline gives at-least-once delivery,
@@ -47,7 +50,7 @@ renders on GitHub and in the VS Code preview). The prose source of truth is
47
50
  - **PHI is first-class.** Authentication, RBAC, a user-attributed audit log of message
48
51
  views/replays, **encryption-at-rest** for message bodies (AES-256-GCM), **global PHI log redaction**,
49
52
  and **transport TLS** (HTTPS/WSS for the API plus MLLP-over-TLS) are **built**; MFA and off-box log
50
- shipping remain on the roadmap. See [docs/PHI.md](https://github.com/wshallwshall/MessageFoundry/blob/main/docs/PHI.md) for the full data-protection map.
53
+ shipping remain on the roadmap. See [docs/PHI.md](https://github.com/MEFORORG/MessageFoundry/blob/main/docs/PHI.md) for the full data-protection map.
51
54
 
52
55
  ## Features
53
56
 
@@ -66,9 +69,9 @@ transport TLS — and it runs single-node or in active-passive high availability
66
69
 
67
70
  Full documentation lives on **[messagefoundry.org](https://messagefoundry.org/)**:
68
71
 
69
- - **[Mental map](https://messagefoundry.org/assets/docs/MessageFoundry-Mental-Model.pdf)** — a one-page
70
- picture of how the pieces fit: Connections → Router → Handlers → Connections, with the headless
71
- engine and the console/IDE that drive it.
72
+ - **[Mental map](https://messagefoundry.org/assets/docs/MessageFoundry-Mental-Model.pdf)** — an
73
+ orientation guide to how the pieces fit: Connections → Router → Handlers → Connections, with the
74
+ headless engine and the console/IDE that drive it.
72
75
  - **[Install Guide](https://messagefoundry.org/assets/docs/MessageFoundry-Install-Guide.pdf)** — install,
73
76
  configure, secure, and roll out to production.
74
77
  - **[User Guide](https://messagefoundry.org/assets/docs/MessageFoundry-User-Guide.pdf)** — author and
@@ -83,7 +86,7 @@ Full documentation lives on **[messagefoundry.org](https://messagefoundry.org/)*
83
86
  **The recommended way to deploy MessageFoundry is to install the published package from
84
87
  [PyPI](https://pypi.org/project/messagefoundry/)** — a signed, version-pinned wheel is the
85
88
  supported production artifact, with no source checkout required. Install it as a **pinned
86
- dependency**, then scaffold your own config repo ([ADR 0017](https://github.com/wshallwshall/MessageFoundry/blob/main/docs/adr/0017-consumer-deployment-model.md)):
89
+ dependency**, then scaffold your own config repo ([ADR 0017](https://github.com/MEFORORG/MessageFoundry/blob/main/docs/adr/0017-consumer-deployment-model.md)):
87
90
 
88
91
  ```bash
89
92
  pip install "messagefoundry==<version>" # pin the exact engine version (core runtime, SQLite store)
@@ -115,8 +118,8 @@ test harness* below for where to get it.
115
118
  > **Verify before you install (supply chain).** Every release is built by a GitHub Actions workflow,
116
119
  > Sigstore-signed, and carries SLSA build-provenance + PEP 740 attestations. Verify a downloaded
117
120
  > wheel against its source commit with
118
- > `gh attestation verify <wheel> --repo wshallwshall/MessageFoundry`, or pull the signed wheel + SBOM
119
- > from the [GitHub Release assets](https://github.com/wshallwshall/MessageFoundry/releases). For an
121
+ > `gh attestation verify <wheel> --repo MEFORORG/MessageFoundry`, or pull the signed wheel + SBOM
122
+ > from the [GitHub Release assets](https://github.com/MEFORORG/MessageFoundry/releases). For an
120
123
  > air-gapped site, mirror the wheel to a private index.
121
124
  >
122
125
  > *(Engine developers install from a checkout instead — see [Development](#development).)*
@@ -153,14 +156,14 @@ python -m messagefoundry.console --url http://127.0.0.1:8765
153
156
 
154
157
  ### VS Code extension & test harness
155
158
 
156
- - **VS Code extension** ([`ide/`](https://github.com/wshallwshall/MessageFoundry/tree/main/ide/)) — author and test interfaces in your editor: a New Route
159
+ - **VS Code extension** ([`ide/`](https://github.com/MEFORORG/MessageFoundry/tree/main/ide/)) — author and test interfaces in your editor: a New Route
157
160
  Wizard, validate-on-save, a Test Bench (dry-run `.hl7` files with before/after diffs), Stage →
158
161
  Promote to a running engine, and an HL7-aware `@messagefoundry` chat participant. **It is not on PyPI**
159
162
  (a VS Code extension is a different ecosystem) **and not yet on the VS Code Marketplace** — Marketplace
160
- + Open VSX publishing is **planned** (see [the backlog](https://github.com/wshallwshall/MessageFoundry/blob/main/docs/BACKLOG.md)). Until then, get it from
163
+ + Open VSX publishing is **planned** (see [the backlog](https://github.com/MEFORORG/MessageFoundry/blob/main/docs/BACKLOG.md)). Until then, get it from
161
164
  this repo: open the `ide/` folder in VS Code and press **F5** (Extension Development Host), or build the
162
165
  VSIX (`cd ide && npm install && npx @vscode/vsce package`) and install the `.vsix`. See
163
- [ide/README.md](https://github.com/wshallwshall/MessageFoundry/blob/main/ide/README.md).
166
+ [ide/README.md](https://github.com/MEFORORG/MessageFoundry/blob/main/ide/README.md).
164
167
  - **Test harness** — synthetic-only send/receive (MLLP), load, and failover tooling for exercising a
165
168
  running engine. It ships as a **separate distribution, `messagefoundry-harness`**, released in lockstep
166
169
  with the engine (it is *not* in the engine wheel): `pip install messagefoundry-harness`, then
@@ -169,14 +172,14 @@ python -m messagefoundry.console --url http://127.0.0.1:8765
169
172
  ## License
170
173
 
171
174
  MessageFoundry is licensed under the **GNU Affero General Public License v3.0 or later**
172
- (`AGPL-3.0-or-later`) — see [LICENSE](https://github.com/wshallwshall/MessageFoundry/blob/main/LICENSE). Running a modified version as a network service
175
+ (`AGPL-3.0-or-later`) — see [LICENSE](https://github.com/MEFORORG/MessageFoundry/blob/main/LICENSE). Running a modified version as a network service
173
176
  triggers the AGPL's §13 source-offer obligation. A separately-licensed commercial edition is planned
174
177
  by **MessageFoundry Organization** under the standard open-core model — see
175
- [COMMERCIAL-LICENSE.md](https://github.com/wshallwshall/MessageFoundry/blob/main/COMMERCIAL-LICENSE.md) (terms pending legal review). See [NOTICE](https://github.com/wshallwshall/MessageFoundry/blob/main/NOTICE)
178
+ [COMMERCIAL-LICENSE.md](https://github.com/MEFORORG/MessageFoundry/blob/main/COMMERCIAL-LICENSE.md) (terms pending legal review). See [NOTICE](https://github.com/MEFORORG/MessageFoundry/blob/main/NOTICE)
176
179
  for copyright and attribution.
177
180
 
178
181
  ## Contributing
179
182
 
180
- Contributions are welcome — see [CONTRIBUTING.md](https://github.com/wshallwshall/MessageFoundry/blob/main/CONTRIBUTING.md), our
181
- [Code of Conduct](https://github.com/wshallwshall/MessageFoundry/blob/main/CODE_OF_CONDUCT.md), and how the project is governed in [GOVERNANCE.md](https://github.com/wshallwshall/MessageFoundry/blob/main/GOVERNANCE.md).
182
- A signed [Contributor License Agreement](https://github.com/wshallwshall/MessageFoundry/blob/main/CLA.md) is required before a pull request can be merged.
183
+ Contributions are welcome — see [CONTRIBUTING.md](https://github.com/MEFORORG/MessageFoundry/blob/main/CONTRIBUTING.md), our
184
+ [Code of Conduct](https://github.com/MEFORORG/MessageFoundry/blob/main/CODE_OF_CONDUCT.md), and how the project is governed in [GOVERNANCE.md](https://github.com/MEFORORG/MessageFoundry/blob/main/GOVERNANCE.md).
185
+ A signed [Contributor License Agreement](https://github.com/MEFORORG/MessageFoundry/blob/main/CLA.md) is required before a pull request can be merged.
@@ -2419,6 +2419,88 @@ investigation (2026-06-27).
2419
2419
 
2420
2420
  ---
2421
2421
 
2422
+ ## 47. Embedded-document (base64 attachment) pruning — strip OBX-5 / `mfb64:` blobs after a per-connection window (Mirth attachment-handler parity) (P2)
2423
+
2424
+ **Type:** feature — selective PHI/storage minimization. Large **base64-encoded embedded documents** (PDF
2425
+ reports, CCD/C-CDA, scanned images) ride inline in messages — in HL7 they arrive in **OBX-5** (ED data
2426
+ type), and generically anywhere via the ADR 0028 `mfb64:v1:` carriage marker
2427
+ ([`adr/0028-base64-binary-carriage-codec.md`](adr/0028-base64-binary-carriage-codec.md)). These blobs are
2428
+ often tens to hundreds of KB each and are stored verbatim in the raw message at **every** persisted stage
2429
+ (`ingress` → `routed` → `outbound`), so a chatty document feed bloats the store far out of proportion to
2430
+ its message *count*. The ask: let **each connection** carry a setting to **purge just the embedded
2431
+ documents** after a timeframe, keeping the rest of the message (segments, fields, metadata, disposition)
2432
+ intact.
2433
+
2434
+ **Gap today.** Retention is all-or-nothing on the whole body: the global `RetentionRunner`
2435
+ ([`pipeline/retention.py`](../messagefoundry/pipeline/retention.py)) calls `purge_message_bodies`
2436
+ ([`store/store.py`](../messagefoundry/store/store.py)), which **nulls the entire raw body** keep-metadata,
2437
+ store-wide, by message age only. There is no way to evict *only the bulky attachment* while preserving the
2438
+ surrounding HL7 (the segments an operator still wants to see), and no per-connection window (that broader
2439
+ gap is **#34**). Nothing offloads the blob at ingest either — it rides the pipeline inline.
2440
+
2441
+ **What Mirth does (researched 2026-06-26).** Mirth solves this with **two** complementary mechanisms, and
2442
+ it's worth deciding which we mirror:
2443
+ - **Attachment Handler (offload at ingest).** A per-channel handler on the source connector extracts bulky
2444
+ embedded content *before* the message is stored/transformed — e.g. a **Regex** handler pulls the base64
2445
+ PDF out of OBX-5, a **DICOM**/**JavaScript**/**Custom** handler for other shapes. The extracted bytes go
2446
+ to a **separate attachment table** (`d_ma<channelId>`) and the inline blob is replaced in the message by
2447
+ an **attachment token** (`${ATTACH:...}`); it's reattached on the outbound via the same token. A Base64
2448
+ decode option ([MIRTH-2799](https://www.mirthcorp.com/community/issues/si/jira.issueviews:issue-html/MIRTH-2799/MIRTH-2799.html))
2449
+ stores the *decoded* bytes, not the base64 string. This keeps the main message rows small and avoids
2450
+ loading the blob through every transformer step — the recommended lever to bound DB growth.
2451
+ - **Data Pruner (prune after a window).** A scheduled task prunes message **content** and **metadata** on
2452
+ *independent* clocks per channel's Message Storage settings — e.g. keep metadata indefinitely but prune
2453
+ content (incl. attachments) after 1 day. Attachments live in their own tables and are pruned with the
2454
+ content. Pruning runs only when the scheduler is enabled, and *which* messages prune is governed by the
2455
+ per-channel storage/`max_message_age` settings.
2456
+ *(Sources: [Zen Healthcare — The Data Pruner](https://consultzen.com/mirth-connect-tutorial-data-pruner/);
2457
+ [NextGen — Message Pruning Settings](https://docs.nextgen.com/en-US/mirth%C2%AE-connect-by-nextgen-healthcare-user-guide-3273569/message-pruning-settings-14245);
2458
+ [CapMinds — high-volume CCD/C-CDA channels](https://www.capminds.com/blog/optimizing-mirth-connect-channels-for-high-volume-ccd-c-cda-document-workflows/).)*
2459
+
2460
+ **Design fork (for the ADR).** The user's literal ask is the **prune-after-a-window** half (Mirth's Data
2461
+ Pruner, attachment-scoped). The more impactful half is **offload-at-ingest** (Mirth's Attachment Handler),
2462
+ which stops the bloat at the source instead of carrying it through three stages first. Decide whether to
2463
+ build (a) an in-place **selective strip** of the embedded document after a per-connection window — cheaper,
2464
+ matches the request, but the blob still bloats the store until the window elapses and is duplicated across
2465
+ stages meanwhile; (b) an **ingest-time offload** to a separate attachment store with a placeholder marker
2466
+ (true Mirth parity, bounds growth from the start, but a larger build touching the pipeline + a new store
2467
+ table + reattach-on-outbound); or (c) both, with (a) as the near-term increment.
2468
+
2469
+ **Scope (when built — increment (a)):**
2470
+ - A **per-connection `prune_documents_after` window** (with an embedded-doc size threshold), layered over a
2471
+ global default — the same **global-default + per-connection-override** model used for FIFO,
2472
+ `RetryPolicy`, `BuildupThreshold`, and proposed for **#34** retention. Author it on the inbound
2473
+ `ConnectionSpec` and/or as `connections.toml` keys (ADR 0007) so it stays hand-/GUI-editable.
2474
+ - A new store purge path (sibling to `purge_message_bodies`) that **rewrites the stored raw in place**,
2475
+ replacing each embedded document with a small **placeholder/tombstone** (size + content-type + a
2476
+ "pruned <ts>" marker) while leaving the rest of the message byte-stable. Target both carriage forms: the
2477
+ generic `mfb64:v1:` marker and HL7 **OBX-5 ED** embeds. **Never string-slice raw HL7** (CLAUDE.md §8) —
2478
+ edit via the parsed model / codec and re-encode. Must land on **all three** backends (SQLite / Postgres /
2479
+ SQL Server).
2480
+ - Preserve every invariant: **never delete the row** (counts / disposition / audit stay intact), the
2481
+ message remains parseable after the strip, and emit **one audit entry per pass** recording the
2482
+ per-connection window + counts + bytes reclaimed (no message content). Pruning a document is irreversible —
2483
+ surface it as a distinct disposition/flag so an operator viewing the message knows the attachment was
2484
+ evicted vs never present.
2485
+
2486
+ **Out of scope / leave to siblings:** whole-message retention windows and dead-letter pruning are **#34**
2487
+ (this is the *document-only*, finer-grained cut — they should share the per-connection-override plumbing).
2488
+ `audit_days` stays keep-forever. The ingest-time offload (fork (b)) is its own ADR if pursued.
2489
+
2490
+ **Why P2 / on-trigger.** Real document feeds (radiology results with embedded PDFs, CCDs) are exactly where
2491
+ store bloat bites, and PHI data-minimization wants the bulky attachment gone on a *shorter* clock than the
2492
+ clinical metadata — a standard Mirth operator expectation. But it's not an open exposure on the shipping
2493
+ config and wants an ADR (the design fork above) before code. **Trigger:** a feed carrying large OBX-5 / base64
2494
+ embedded documents whose volume bloats the store. Relates to **#34** (per-connection retention — shared
2495
+ override plumbing), **ADR 0028** (base64 carriage), and **#21**/**#33** (per-connection observability /
2496
+ config-UX).
2497
+
2498
+ **Source:** owner request (2026-06-26) — "let each connection purge base64 embedded documents (OBX-5 in
2499
+ HL7, or other message types) after a timeframe; they bloat the logs — research what Mirth does." Mirth
2500
+ attachment-handler + data-pruner behavior researched the same day (citations above).
2501
+
2502
+ ---
2503
+
2422
2504
  *Everything else from the 2026-06-10 full-codebase review (1 critical, 13 high, 33 medium, 31 low —
2423
2505
  78 findings) has been remediated; see the review report's §6 action order. The two items it still
2424
2506
  sourced — **#1 (SQL Server concurrency)** and **#2 (console off-thread)** — are now both **DONE**
@@ -61,7 +61,7 @@ from messagefoundry.parsing.message import Message, RawMessage
61
61
  from messagefoundry.parsing.split import split_by_obr
62
62
  from messagefoundry.timezone import convert_hl7_timestamp, to_zone
63
63
 
64
- __version__ = "0.2.6"
64
+ __version__ = "0.2.7"
65
65
 
66
66
  __all__ = [
67
67
  "Message",
@@ -48,6 +48,13 @@ dependencies = [
48
48
  "defusedxml>=0.7.1", # hardened XML parse for RawMessage.xml() — XXE/DTD/entity-expansion safe (ADR 0004, BACKLOG #31)
49
49
  ]
50
50
 
51
+ # Shown on the PyPI sidebar; point at the PUBLIC repo/site (the wshallwshall repo is private).
52
+ [project.urls]
53
+ Homepage = "https://messagefoundry.org/"
54
+ Documentation = "https://messagefoundry.org/"
55
+ Repository = "https://github.com/MEFORORG/MessageFoundry"
56
+ Issues = "https://github.com/MEFORORG/MessageFoundry/issues"
57
+
51
58
  [project.optional-dependencies]
52
59
  console = [
53
60
  "PySide6>=6.6", # admin console (LGPL — OSS-distributable)
File without changes
File without changes
File without changes
File without changes