matrx-orm 3.1.147__tar.gz → 3.1.148__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 (382) hide show
  1. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/PKG-INFO +1 -1
  2. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/__init__.py +2 -0
  3. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/session_context.py +53 -9
  4. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/pyproject.toml +1 -1
  5. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_standalone_write_session_context.py +8 -2
  6. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/.gitignore +0 -0
  7. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/AGENTS.md +0 -0
  8. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/BASE_CLASS_METHODS.md +0 -0
  9. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/CLAUDE.md +0 -0
  10. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/MODEL_API.md +0 -0
  11. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/README.md +0 -0
  12. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/database/orm/extended/managers/ai_model_base.py +0 -0
  13. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/docs/migrations.md +0 -0
  14. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/FEATURE.md +0 -0
  15. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/MODULE_README.md +0 -0
  16. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/adapters/MODULE_README.md +0 -0
  17. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/adapters/__init__.py +0 -0
  18. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/adapters/async_postgresql.py +0 -0
  19. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/adapters/base_adapter.py +0 -0
  20. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/adapters/postgresql.py +0 -0
  21. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/adapters/postgrest_client_adapter.py +0 -0
  22. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/adapters/supabase_adapter.py +0 -0
  23. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/admin/FEATURE.md +0 -0
  24. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/admin/__init__.py +0 -0
  25. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/admin/router.py +0 -0
  26. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/api/__init__.py +0 -0
  27. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/api/auth.py +0 -0
  28. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/api/config.py +0 -0
  29. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/api/handlers.py +0 -0
  30. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/api/protocol.py +0 -0
  31. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/api/server.py +0 -0
  32. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/associations.py +0 -0
  33. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/cache_debug.py +0 -0
  34. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/catalog.py +0 -0
  35. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/catalog_sql.py +0 -0
  36. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/client/MODULE_README.md +0 -0
  37. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/client/__init__.py +0 -0
  38. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/client/postgres_connection.py +0 -0
  39. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/client/postgrest.py +0 -0
  40. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/client/supabase_auth.py +0 -0
  41. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/client/supabase_config.py +0 -0
  42. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/client/supabase_manager.py +0 -0
  43. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/EXTENDED-TASK.md +0 -0
  44. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/FEATURE.md +0 -0
  45. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/MODULE_README.md +0 -0
  46. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/RELATIONS-TASKS.md +0 -0
  47. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/TASKS.md +0 -0
  48. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/__init__.py +0 -0
  49. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/async_db_manager.py +0 -0
  50. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/base.py +0 -0
  51. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/config.py +0 -0
  52. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/connections.py +0 -0
  53. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/db_function.py +0 -0
  54. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/diagnostics.py +0 -0
  55. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/expressions.py +0 -0
  56. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/extended.py +0 -0
  57. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/fields.py +0 -0
  58. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/introspection.py +0 -0
  59. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/listen.py +0 -0
  60. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/loop_filters.py +0 -0
  61. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/model_dto.py +0 -0
  62. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/model_view.py +0 -0
  63. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/one_database.py +0 -0
  64. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/paginator.py +0 -0
  65. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/pool_maintenance.py +0 -0
  66. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/pool_watch.py +0 -0
  67. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/pooler_role.py +0 -0
  68. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/pydantic_bridge.py +0 -0
  69. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/registry.py +0 -0
  70. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/relations.py +0 -0
  71. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/resilience.py +0 -0
  72. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/rls_session.py +0 -0
  73. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/signals.py +0 -0
  74. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/tls.py +0 -0
  75. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/transaction.py +0 -0
  76. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/types.py +0 -0
  77. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/write_queue.py +0 -0
  78. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/core/write_retry.py +0 -0
  79. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/entity.py +0 -0
  80. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/error_handling.py +0 -0
  81. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/exceptions.py +0 -0
  82. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/extended/__init__.py +0 -0
  83. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/extended/app_error_handler.py +0 -0
  84. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/identity_rule.py +0 -0
  85. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/local_sqlite.py +0 -0
  86. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/middleware/__init__.py +0 -0
  87. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/middleware/base.py +0 -0
  88. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/migrations/MODULE_README.md +0 -0
  89. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/migrations/__init__.py +0 -0
  90. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/migrations/cli.py +0 -0
  91. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/migrations/ddl.py +0 -0
  92. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/migrations/diff.py +0 -0
  93. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/migrations/executor.py +0 -0
  94. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/migrations/integration.py +0 -0
  95. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/migrations/loader.py +0 -0
  96. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/migrations/operations.py +0 -0
  97. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/migrations/state.py +0 -0
  98. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/migrations/table_filter.py +0 -0
  99. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/no_org_assignment.py +0 -0
  100. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/FEATURE.md +0 -0
  101. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/MODULE_README.md +0 -0
  102. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/__init__.py +0 -0
  103. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/bulk_update_values.py +0 -0
  104. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/catalog_select.py +0 -0
  105. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/conflict.py +0 -0
  106. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/conflict_writes.py +0 -0
  107. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/create.py +0 -0
  108. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/db_functions.py +0 -0
  109. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/delete.py +0 -0
  110. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/dynamic_admin.py +0 -0
  111. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/dynamic_crud.py +0 -0
  112. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/graph_walk.py +0 -0
  113. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/latest_rows.py +0 -0
  114. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/queue_claim.py +0 -0
  115. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/read.py +0 -0
  116. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/relational_backfill.py +0 -0
  117. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/staging_load.py +0 -0
  118. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/operations/update.py +0 -0
  119. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/platform_access.py +0 -0
  120. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/platform_db.py +0 -0
  121. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/py.typed +0 -0
  122. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/pytest_plugin.py +0 -0
  123. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/python_sql/MODULE_README.md +0 -0
  124. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/python_sql/__init__.py +0 -0
  125. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/python_sql/db_objects.py +0 -0
  126. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/python_sql/table_detailed_relationships.py +0 -0
  127. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/python_sql/table_typescript_relationship.py +0 -0
  128. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/query/FEATURE.md +0 -0
  129. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/query/MODULE_README.md +0 -0
  130. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/query/__init__.py +0 -0
  131. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/query/builder.py +0 -0
  132. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/query/executor.py +0 -0
  133. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/resources/__init__.py +0 -0
  134. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/resources/additional-assigners-2026-09-12.json +0 -0
  135. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/resources/org_assignment_trigger_baseline.json +0 -0
  136. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/FEATURE.md +0 -0
  137. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/MODULE_README.md +0 -0
  138. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/__init__.py +0 -0
  139. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/code_handler.py +0 -0
  140. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/codegen_writer.py +0 -0
  141. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/columns.py +0 -0
  142. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/common.py +0 -0
  143. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/diff_preview.py +0 -0
  144. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/entity_capabilities.py +0 -0
  145. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/generator.py +0 -0
  146. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/helpers/__init__.py +0 -0
  147. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/helpers/base_generators.py +0 -0
  148. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/helpers/entity_generators.py +0 -0
  149. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/helpers/git_checker.py +0 -0
  150. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/package_wiring.py +0 -0
  151. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/relationships.py +0 -0
  152. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/runner.py +0 -0
  153. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/schema.py +0 -0
  154. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/schema_manager.py +0 -0
  155. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/tables.py +0 -0
  156. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/schema_builder/views.py +0 -0
  157. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/secrets_battery/FEATURE.md +0 -0
  158. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/secrets_battery/__init__.py +0 -0
  159. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/secrets_battery/attachments.py +0 -0
  160. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/secrets_battery/crypto.py +0 -0
  161. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/secrets_battery/host_authorization.py +0 -0
  162. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/secrets_battery/items.py +0 -0
  163. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/secrets_battery/model.py +0 -0
  164. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/secrets_battery/mutation_receipts.py +0 -0
  165. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/secrets_battery/org_service.py +0 -0
  166. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/secrets_battery/service.py +0 -0
  167. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/session/README.md +0 -0
  168. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/session/__init__.py +0 -0
  169. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/session/coalesce.py +0 -0
  170. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/session/dag.py +0 -0
  171. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/session/errors.py +0 -0
  172. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/session/fallback.py +0 -0
  173. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/session/flush.py +0 -0
  174. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/session/lifecycle.py +0 -0
  175. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/session/managed.py +0 -0
  176. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/session/op.py +0 -0
  177. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/session/reads.py +0 -0
  178. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/session/session.py +0 -0
  179. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/session/telemetry.py +0 -0
  180. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/sql_executor/MODULE_README.md +0 -0
  181. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/sql_executor/__init__.py +0 -0
  182. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/sql_executor/executor.py +0 -0
  183. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/sql_executor/queries.py +0 -0
  184. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/sql_executor/registry.py +0 -0
  185. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/sql_executor/types.py +0 -0
  186. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/sql_executor/utils.py +0 -0
  187. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/state.py +0 -0
  188. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/utils/__init__.py +0 -0
  189. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/utils/sql_utils.py +0 -0
  190. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/matrx_orm/utils/type_converters.py +0 -0
  191. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/scripts/git-branches.sh +0 -0
  192. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/scripts/publish.sh +0 -0
  193. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/scripts/release.sh +0 -0
  194. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/MODULE_README.md +0 -0
  195. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/__init__.py +0 -0
  196. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/conftest.py +0 -0
  197. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/MODULE_README.md +0 -0
  198. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/__init__.py +0 -0
  199. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_adapter_registry.py +0 -0
  200. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_admin_db_columns.py +0 -0
  201. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_admin_response_rendering.py +0 -0
  202. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_admin_search_negation.py +0 -0
  203. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_admin_search_sentinels.py +0 -0
  204. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_advisory_lock.py +0 -0
  205. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_agent_message.py +0 -0
  206. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_api_auth.py +0 -0
  207. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_api_config.py +0 -0
  208. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_api_handlers.py +0 -0
  209. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_api_protocol.py +0 -0
  210. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_array_agg_order_by.py +0 -0
  211. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_associations.py +0 -0
  212. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_associations_wiring.py +0 -0
  213. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_bulk_hydration_offload.py +0 -0
  214. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_bulk_update_by_pk.py +0 -0
  215. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_bulk_upsert_increment_set_fields.py +0 -0
  216. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_cache_debug.py +0 -0
  217. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_call_function.py +0 -0
  218. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_case_when.py +0 -0
  219. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_catalog.py +0 -0
  220. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_committed_row_guard.py +0 -0
  221. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_composite_pk_filter.py +0 -0
  222. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_composite_pk_write_paths.py +0 -0
  223. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_config.py +0 -0
  224. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_conflict_target.py +0 -0
  225. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_conflict_writes.py +0 -0
  226. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_connection_codecs.py +0 -0
  227. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_connection_poison_guard.py +0 -0
  228. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_connection_primitives.py +0 -0
  229. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_count_composite_distinct.py +0 -0
  230. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_count_limit_param_leak.py +0 -0
  231. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_db_function_field.py +0 -0
  232. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_ddl_generator.py +0 -0
  233. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_deadlock_retry.py +0 -0
  234. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_derived_table.py +0 -0
  235. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_dirty_tracking.py +0 -0
  236. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_dynamic_crud.py +0 -0
  237. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_exceptions.py +0 -0
  238. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_execute_query_integrity_mapping.py +0 -0
  239. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_expression_primitives.py +0 -0
  240. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_fields.py +0 -0
  241. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_filter_jsonb_agg_array_index.py +0 -0
  242. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_from_alias.py +0 -0
  243. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_fts.py +0 -0
  244. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_func_expression_args.py +0 -0
  245. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_graph_walk.py +0 -0
  246. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_having_annotate_alias.py +0 -0
  247. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_insert_ignore_and_admin_primitives.py +0 -0
  248. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_introspect_rls_policies.py +0 -0
  249. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_join_and_aggregate.py +0 -0
  250. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_latest_rows.py +0 -0
  251. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_listen_notify.py +0 -0
  252. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_local_sqlite.py +0 -0
  253. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_lock_contention_retry.py +0 -0
  254. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_managed_write_guard.py +0 -0
  255. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_matrx_entity.py +0 -0
  256. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_migration_diff_types.py +0 -0
  257. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_migration_loader.py +0 -0
  258. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_model_instance.py +0 -0
  259. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_model_meta.py +0 -0
  260. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_optimistic_concurrency.py +0 -0
  261. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_order_by_expression.py +0 -0
  262. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_org_assignment_inventory.py +0 -0
  263. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_parameter_name_hydration.py +0 -0
  264. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_patch_jsonb_path.py +0 -0
  265. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_persisted_count.py +0 -0
  266. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_pool_holder_census.py +0 -0
  267. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_pool_loop_recreation.py +0 -0
  268. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_pool_maintenance.py +0 -0
  269. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_postgrest_filters.py +0 -0
  270. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_pydantic_bridge.py +0 -0
  271. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_query_builder.py +0 -0
  272. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_query_error_detail.py +0 -0
  273. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_query_executor_sql.py +0 -0
  274. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_query_timeout.py +0 -0
  275. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_querybuilder_clone_semantics.py +0 -0
  276. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_queue_claim.py +0 -0
  277. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_read_connection_retry.py +0 -0
  278. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_registry.py +0 -0
  279. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_registry_multi_database.py +0 -0
  280. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_registry_multi_schema.py +0 -0
  281. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_relational_backfill.py +0 -0
  282. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_relations.py +0 -0
  283. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_resilience.py +0 -0
  284. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_rls_session_scope.py +0 -0
  285. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_schema_exists.py +0 -0
  286. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_session_advisory_lock.py +0 -0
  287. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_state_cache.py +0 -0
  288. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_subquery_filter_raw.py +0 -0
  289. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_subquery_in_filter.py +0 -0
  290. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_subquery_nested_expressions.py +0 -0
  291. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_supabase_auth.py +0 -0
  292. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_supabase_config.py +0 -0
  293. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_tls.py +0 -0
  294. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_transaction_database_identity.py +0 -0
  295. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_typed_join_projection.py +0 -0
  296. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_typed_predicates.py +0 -0
  297. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_update_case_expression.py +0 -0
  298. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_update_subquery.py +0 -0
  299. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_update_with_rebase.py +0 -0
  300. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_upsert_default_leak.py +0 -0
  301. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_upsert_with_conflict.py +0 -0
  302. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_values_jsonb_decode.py +0 -0
  303. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_watched_lifecycle.py +0 -0
  304. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_write_queue_deadline.py +0 -0
  305. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level1/test_write_retry_semantics.py +0 -0
  306. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level2/MODULE_README.md +0 -0
  307. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level2/__init__.py +0 -0
  308. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level2/conftest.py +0 -0
  309. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level2/test_bulk_ops.py +0 -0
  310. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level2/test_cache_integration.py +0 -0
  311. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level2/test_crud.py +0 -0
  312. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level2/test_foreign_keys.py +0 -0
  313. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level2/test_m2m.py +0 -0
  314. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level2/test_manager.py +0 -0
  315. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level2/test_migrations_live.py +0 -0
  316. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level2/test_query_execution.py +0 -0
  317. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level2/test_schema_diff.py +0 -0
  318. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/level2/verify_committed_row_guard_pg17.py +0 -0
  319. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/live_pooler_role.py +0 -0
  320. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project/.env.example +0 -0
  321. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project/README.md +0 -0
  322. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project/__init__.py +0 -0
  323. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project/generate.py +0 -0
  324. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project/generated/.gitkeep +0 -0
  325. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project/matrx_orm.yaml +0 -0
  326. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project/test_schema_generation.py +0 -0
  327. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project_desktop/.env.example +0 -0
  328. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project_desktop/README.md +0 -0
  329. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project_desktop/__init__.py +0 -0
  330. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project_desktop/client_example.py +0 -0
  331. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project_desktop/client_example.ts +0 -0
  332. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project_desktop/client_supabase_example.py +0 -0
  333. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/sample_project_desktop/server.py +0 -0
  334. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/entity_tests.py +0 -0
  335. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/test_base_generation.py +0 -0
  336. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/test_composite_pk_fk_generation.py +0 -0
  337. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/test_composite_unique_generation.py +0 -0
  338. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/test_dto_identity_generation.py +0 -0
  339. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/test_entity_capability_generation.py +0 -0
  340. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/test_enum_ordering.py +0 -0
  341. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/test_generate_schema.py +0 -0
  342. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/test_junction_analysis.py +0 -0
  343. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/test_multi_schema_output.py +0 -0
  344. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/test_schema_analysis.py +0 -0
  345. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/test_sql_expression_defaults.py +0 -0
  346. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/test_table_relationships_query.py +0 -0
  347. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema/test_view_generation.py +0 -0
  348. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema_builder/test_array_default_parsing.py +0 -0
  349. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema_builder/test_focused_generation_plan.py +0 -0
  350. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/schema_builder/test_host_models_aggregator.py +0 -0
  351. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/__init__.py +0 -0
  352. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/conftest.py +0 -0
  353. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_cache_no_downgrade.py +0 -0
  354. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_capture_poison_proof.py +0 -0
  355. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_coalesce.py +0 -0
  356. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_dag.py +0 -0
  357. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_disk_spill_fallback.py +0 -0
  358. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_flush_individual_fallback.py +0 -0
  359. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_governed_write.py +0 -0
  360. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_managed.py +0 -0
  361. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_op_enqueue_site.py +0 -0
  362. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_reads.py +0 -0
  363. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_record_error_bounded_insert.py +0 -0
  364. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_record_error_storm.py +0 -0
  365. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_session.py +0 -0
  366. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/session/test_spill_guard_plugin.py +0 -0
  367. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_array_arg_element_type.py +0 -0
  368. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_database_name_alias.py +0 -0
  369. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_db_functions.py +0 -0
  370. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_dynamic_select_unregistered.py +0 -0
  371. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_immutable_insert_or_exact_verify.py +0 -0
  372. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_keyed_digest.py +0 -0
  373. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_model_cls_refactor.py +0 -0
  374. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_no_blocking_asyncpg_tls.py +0 -0
  375. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_one_database.py +0 -0
  376. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_order_by_desc_nulls_last.py +0 -0
  377. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_pooler_role_guard.py +0 -0
  378. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_secrets_battery.py +0 -0
  379. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_secrets_minting_keys.py +0 -0
  380. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_sql_param_casts.py +0 -0
  381. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_sync_twins_guard.py +0 -0
  382. {matrx_orm-3.1.147 → matrx_orm-3.1.148}/tests/test_user_visible_lookup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: matrx-orm
3
- Version: 3.1.147
3
+ Version: 3.1.148
4
4
  Summary: Async-first PostgreSQL ORM with bidirectional migrations, schema introspection, many-to-many relationships, and built-in state caching
5
5
  Project-URL: Homepage, https://github.com/AI-Matrix-Engine/aidream-current
6
6
  Project-URL: Repository, https://github.com/AI-Matrix-Engine/aidream-current
@@ -241,6 +241,7 @@ from .core.registry import (
241
241
  from .core.relations import ManyToManyField
242
242
  from .core.rls_session import rls_session
243
243
  from .core.session_context import (
244
+ ACTOR_AGENT_GUC,
244
245
  ACTOR_SYSTEM_GUC,
245
246
  ACTOR_TIER_GUC,
246
247
  VALID_TIERS,
@@ -654,6 +655,7 @@ __all__ = [
654
655
  "acquire_connection",
655
656
  "set_local_guc",
656
657
  "SessionContextProvider",
658
+ "ACTOR_AGENT_GUC",
657
659
  "ACTOR_SYSTEM_GUC",
658
660
  "ACTOR_TIER_GUC",
659
661
  "VALID_TIERS",
@@ -35,6 +35,7 @@ from contextlib import asynccontextmanager, contextmanager
35
35
  from contextvars import ContextVar
36
36
  from dataclasses import dataclass
37
37
  from typing import Any, Literal
38
+ from uuid import UUID
38
39
 
39
40
  logger = logging.getLogger("matrx_orm.core.session_context")
40
41
 
@@ -110,6 +111,12 @@ ActorTier = Literal["code", "ai", "human"]
110
111
 
111
112
  ACTOR_TIER_GUC = "app.actor_tier"
112
113
  ACTOR_SYSTEM_GUC = "app.actor_system"
114
+ # DD-211: WHICH AGENT, when an agent is the one writing. The database reads it
115
+ # through ``platform.declared_actor_agent()`` and names the ``agent`` rung when
116
+ # it resolves ``records.confirmation.agent_write_born_confirmed`` -- which is
117
+ # what makes a per-agent born-confirmed exception a real setting instead of a
118
+ # control that saves a value nothing honours.
119
+ ACTOR_AGENT_GUC = "app.actor_agent"
113
120
 
114
121
  VALID_TIERS: frozenset[str] = frozenset({"code", "ai", "human"})
115
122
 
@@ -120,10 +127,25 @@ class ActorRef:
120
127
 
121
128
  tier: ActorTier
122
129
  system: str | None = None
130
+ #: The agent definition id, when the writer IS an agent (DD-211). A
131
+ #: person's write never carries one -- the database refuses the pair
132
+ #: ``tier="human"`` + an agent, because "a person did this" and "agent X
133
+ #: did this" are two different authors.
134
+ agent: str | None = None
123
135
 
124
136
  def as_gucs(self) -> dict[str, str]:
125
- """The two session GUCs this actor implies."""
126
- return {ACTOR_TIER_GUC: self.tier, ACTOR_SYSTEM_GUC: self.system or ""}
137
+ """The session GUCs this actor implies.
138
+
139
+ ``app.actor_agent`` is always emitted, empty when no agent is writing:
140
+ the GUCs are transaction-local and a *stale* agent left over from an
141
+ outer declaration would attribute this block's writes to the wrong
142
+ agent. Empty is read as "no agent" by ``platform.declared_actor_agent``.
143
+ """
144
+ return {
145
+ ACTOR_TIER_GUC: self.tier,
146
+ ACTOR_SYSTEM_GUC: self.system or "",
147
+ ACTOR_AGENT_GUC: self.agent or "",
148
+ }
127
149
 
128
150
 
129
151
  _current_actor: ContextVar[ActorRef | None] = ContextVar("_provenance_actor", default=None)
@@ -154,16 +176,33 @@ def declared_actor_gucs() -> dict[str, str]:
154
176
  return actor.as_gucs()
155
177
 
156
178
 
157
- def _validated_actor(tier: str, system: str, *, caller: str) -> ActorRef:
179
+ def _validated_actor(tier: str, system: str, agent: str | None, *, caller: str) -> ActorRef:
158
180
  if tier not in VALID_TIERS:
159
181
  raise ValueError(f"{caller} tier must be one of {sorted(VALID_TIERS)}; got {tier!r}")
160
182
  if not system or not system.strip():
161
183
  raise ValueError(f"{caller} requires a non-empty system (who specifically)")
162
- return ActorRef(tier=tier, system=system.strip()) # type: ignore[arg-type]
184
+ cleaned = (agent or "").strip() or None
185
+ if cleaned is not None:
186
+ if tier == "human":
187
+ # The database refuses this pair outright (23514). Refusing it here
188
+ # too means the door that made the mistake learns at the call site
189
+ # rather than on whichever write happens to land first.
190
+ raise ValueError(
191
+ f"{caller} was given tier='human' AND agent={cleaned!r}. A person's write carries "
192
+ "no agent: either the person is the author (drop the agent) or the agent is "
193
+ "(declare tier='ai' and the agent that is running)."
194
+ )
195
+ try:
196
+ UUID(cleaned)
197
+ except ValueError as exc:
198
+ raise ValueError(
199
+ f"{caller} agent must be the uuid of an agent.definition row; got {cleaned!r}"
200
+ ) from exc
201
+ return ActorRef(tier=tier, system=system.strip(), agent=cleaned) # type: ignore[arg-type]
163
202
 
164
203
 
165
204
  @contextmanager
166
- def declaring_actor(tier: ActorTier, system: str) -> Iterator[ActorRef]:
205
+ def declaring_actor(tier: ActorTier, system: str, agent: str | None = None) -> Iterator[ActorRef]:
167
206
  """Synchronous form of :func:`declared_actor` - same ContextVar, no await.
168
207
 
169
208
  A write door is often a plain function (``queue_message_create``), and the
@@ -173,7 +212,7 @@ def declaring_actor(tier: ActorTier, system: str) -> Iterator[ActorRef]:
173
212
  (``matrx_orm.session.op``) and the flush re-declares it per row. Nothing
174
213
  here touches a connection.
175
214
  """
176
- actor = _validated_actor(tier, system, caller="declaring_actor")
215
+ actor = _validated_actor(tier, system, agent, caller="declaring_actor")
177
216
  token = _current_actor.set(actor)
178
217
  try:
179
218
  yield actor
@@ -182,7 +221,9 @@ def declaring_actor(tier: ActorTier, system: str) -> Iterator[ActorRef]:
182
221
 
183
222
 
184
223
  @asynccontextmanager
185
- async def declared_actor(tier: ActorTier, system: str) -> AsyncIterator[ActorRef]:
224
+ async def declared_actor(
225
+ tier: ActorTier, system: str, agent: str | None = None
226
+ ) -> AsyncIterator[ActorRef]:
186
227
  """Declare the actor for the block WITHOUT opening a transaction.
187
228
 
188
229
  The declaration is a ContextVar, so the GUCs land when the work inside
@@ -195,9 +236,11 @@ async def declared_actor(tier: ActorTier, system: str) -> AsyncIterator[ActorRef
195
236
  transaction, so a chokepoint that opened one would break every handler that
196
237
  acts as the user.
197
238
  """
198
- actor = _validated_actor(tier, system, caller="declared_actor")
239
+ actor = _validated_actor(tier, system, agent, caller="declared_actor")
199
240
  token = _current_actor.set(actor)
200
- logger.debug("provenance: declared tier=%s system=%s", actor.tier, actor.system)
241
+ logger.debug(
242
+ "provenance: declared tier=%s system=%s agent=%s", actor.tier, actor.system, actor.agent
243
+ )
201
244
  try:
202
245
  yield actor
203
246
  finally:
@@ -205,6 +248,7 @@ async def declared_actor(tier: ActorTier, system: str) -> AsyncIterator[ActorRef
205
248
 
206
249
 
207
250
  __all__ = [
251
+ "ACTOR_AGENT_GUC",
208
252
  "ACTOR_SYSTEM_GUC",
209
253
  "ACTOR_TIER_GUC",
210
254
  "VALID_TIERS",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "matrx-orm"
3
- version = "3.1.147"
3
+ version = "3.1.148"
4
4
  description = "Async-first PostgreSQL ORM with bidirectional migrations, schema introspection, many-to-many relationships, and built-in state caching"
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
@@ -79,7 +79,9 @@ async def test_declared_write_keeps_the_queue_and_lands_gucs_in_its_transaction(
79
79
  (
80
80
  "begin",
81
81
  "test",
82
- {"app.actor_tier": "ai", "app.actor_system": "tool:instance_create"},
82
+ # DD-211: the agent is always emitted, empty when no agent is writing, so a
83
+ # nested declaration can never inherit an outer block's agent.
84
+ {"app.actor_tier": "ai", "app.actor_system": "tool:instance_create", "app.actor_agent": ""},
83
85
  ),
84
86
  ("write", "test", "INSERT INTO content_ir.kind_instance DEFAULT VALUES RETURNING id"),
85
87
  ("commit", "test"),
@@ -111,7 +113,11 @@ async def test_declared_write_without_a_queue_opens_its_own_transaction(monkeypa
111
113
  configure_session_context(None)
112
114
 
113
115
  assert rows == [{"id": 3}]
114
- assert events[0] == ("begin", "test", {"app.actor_tier": "human", "app.actor_system": "user-1"})
116
+ assert events[0] == (
117
+ "begin",
118
+ "test",
119
+ {"app.actor_tier": "human", "app.actor_system": "user-1", "app.actor_agent": ""},
120
+ )
115
121
  assert events[-1] == ("commit", "test")
116
122
 
117
123
 
File without changes
File without changes
File without changes
File without changes
File without changes