matrx-graph 0.2.332__tar.gz → 0.2.334__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 (483) hide show
  1. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/PKG-INFO +3 -3
  2. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/overview.py +26 -2
  3. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/workers/job_lease.py +2 -1
  4. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/pyproject.toml +3 -3
  5. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_overview_collapse.py +27 -1
  6. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/.gitignore +0 -0
  7. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/AGENTS.md +0 -0
  8. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/CLAUDE.md +0 -0
  9. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/README.md +0 -0
  10. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/docs/ENGINE_SPEC.md +0 -0
  11. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/docs/GAPS_AND_ROADMAP.md +0 -0
  12. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/docs/OPERATING_PRIORITIES.md +0 -0
  13. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/docs/README.md +0 -0
  14. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/docs/RUN_LIFECYCLE.md +0 -0
  15. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/docs/WORKFLOW_ARCHITECTURE.md +0 -0
  16. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/docs/action-authoring.md +0 -0
  17. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/docs/architecture.md +0 -0
  18. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/docs/node-authoring.md +0 -0
  19. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/docs/testing.md +0 -0
  20. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/__init__.py +0 -0
  21. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/actions/ACTION_STANDARDS.md +0 -0
  22. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/actions/__init__.py +0 -0
  23. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/actions/decorator.py +0 -0
  24. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/actions/registry.py +0 -0
  25. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/actions/spec.py +0 -0
  26. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/candidate.py +0 -0
  27. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/checkpoint/__init__.py +0 -0
  28. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/checkpoint/memory.py +0 -0
  29. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/checkpoint/postgres.py +0 -0
  30. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/checkpoint/protocol.py +0 -0
  31. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/checkpoint/value_store.py +0 -0
  32. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/checkpoint/values.py +0 -0
  33. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/checks.py +0 -0
  34. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/compile.py +0 -0
  35. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/composition.py +0 -0
  36. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/FEATURE.md +0 -0
  37. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/__init__.py +0 -0
  38. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/accessor.py +0 -0
  39. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/audit.py +0 -0
  40. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/authoring_gate.py +0 -0
  41. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/availability.py +0 -0
  42. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/converters.py +0 -0
  43. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/directives.py +0 -0
  44. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/edge_routing.py +0 -0
  45. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/envelope.py +0 -0
  46. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/fingerprint.py +0 -0
  47. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/graph_adapter.py +0 -0
  48. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/markers.py +0 -0
  49. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/model.py +0 -0
  50. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/occurrences.py +0 -0
  51. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/partial.py +0 -0
  52. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/pg_emitter.py +0 -0
  53. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/runtime_view.py +0 -0
  54. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/sample.py +0 -0
  55. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/sdk.py +0 -0
  56. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/subscriptions.py +0 -0
  57. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/translate.py +0 -0
  58. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/triggers.py +0 -0
  59. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/well_known.py +0 -0
  60. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/content_ir/wrappers.py +0 -0
  61. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/contract_kinds.py +0 -0
  62. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/contracts/__init__.py +0 -0
  63. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/contracts/audit.py +0 -0
  64. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/FEATURE.md +0 -0
  65. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/__init__.py +0 -0
  66. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/_registry.py +0 -0
  67. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/db_requirements.py +0 -0
  68. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/definition_store.py +0 -0
  69. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/event_store.py +0 -0
  70. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0020_wf_run_announce.sql +0 -0
  71. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0021_join_semantics.sql +0 -0
  72. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0022_node_data_slot.sql +0 -0
  73. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0023_fanout_identity.sql +0 -0
  74. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0024_definition_variables.sql +0 -0
  75. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0100_baseline_post_reorg.sql +0 -0
  76. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0101_run_request_attribution.sql +0 -0
  77. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0102_visibility_and_kind_verdicts.sql +0 -0
  78. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0103_work_item.sql +0 -0
  79. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0104_soft_delete_columns.sql +0 -0
  80. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0105_plan.sql +0 -0
  81. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0106_definition_visibility_internal_default.sql +0 -0
  82. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0107_plan_anchor_integrity.sql +0 -0
  83. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0108_plan_persistence_invariants.sql +0 -0
  84. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0109_node_data_slot_created_by.sql +0 -0
  85. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0110_run_log.sql +0 -0
  86. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0111_awaiting_input_status.sql +0 -0
  87. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0111_event_triggers.sql +0 -0
  88. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0112_definition_io_kind_declaration.sql +0 -0
  89. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0113_definition_published_to_web_and_shown_to.sql +0 -0
  90. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0114_definition_workflow_type.sql +0 -0
  91. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0115_checkpoint_value.sql +0 -0
  92. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0116_standalone_checkpoint_organization_and_values.sql +0 -0
  93. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/0117_review_flags.sql +0 -0
  94. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/README.md +0 -0
  95. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0001_wf_initial.sql +0 -0
  96. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0002_wf_queue.sql +0 -0
  97. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0003_wf_node_events.sql +0 -0
  98. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0004_wf_trigger.sql +0 -0
  99. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0005_wf_rls.sql +0 -0
  100. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0006_wf_run_cancelling.sql +0 -0
  101. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0007_wf_run_paused_and_errored.sql +0 -0
  102. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0008_wf_node_outcome_source.sql +0 -0
  103. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0009_wf_run_recovery_limit.sql +0 -0
  104. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0010_wf_idempotency.sql +0 -0
  105. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0011_wf_definition_concurrency_limit.sql +0 -0
  106. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0012_wf_trigger_fire.sql +0 -0
  107. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0013_wf_recovery_audit.sql +0 -0
  108. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0014_wf_node_events_notify.sql +0 -0
  109. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0016_wf_template.sql +0 -0
  110. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0017_wf_hardening.sql +0 -0
  111. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0018_wf_node_events_seq.sql +0 -0
  112. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/0019_wf_node_events_drop_check.sql +0 -0
  113. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/migrations/legacy_pre_reorg/README.md +0 -0
  114. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/node_data_slot_store.py +0 -0
  115. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/pool.py +0 -0
  116. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/run_store.py +0 -0
  117. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/standalone.py +0 -0
  118. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/store_change.py +0 -0
  119. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/trigger_event_store.py +0 -0
  120. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/trigger_proof.py +0 -0
  121. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/trigger_store.py +0 -0
  122. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/db/wf_manager.py +0 -0
  123. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/decision_spec.py +0 -0
  124. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/decisions.py +0 -0
  125. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/diagnostics/__init__.py +0 -0
  126. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/diagnostics/compile_validation.py +0 -0
  127. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/dry_run.py +0 -0
  128. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/emptiness.py +0 -0
  129. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/errors.py +0 -0
  130. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/examples/__init__.py +0 -0
  131. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/examples/self_validating_news.py +0 -0
  132. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/FEATURE.md +0 -0
  133. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/__init__.py +0 -0
  134. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/_retry.py +0 -0
  135. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/channels.py +0 -0
  136. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/client_payload.py +0 -0
  137. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/execution.py +0 -0
  138. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/introspect.py +0 -0
  139. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/json_dump.py +0 -0
  140. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/primitives.py +0 -0
  141. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/registry.py +0 -0
  142. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/resume_chain.py +0 -0
  143. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/resume_preflight.py +0 -0
  144. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/review_flags.py +0 -0
  145. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/run_stop.py +0 -0
  146. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/scheduler.py +0 -0
  147. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/executor/schema_validation.py +0 -0
  148. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/extract.py +0 -0
  149. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/failure.py +0 -0
  150. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/input_bindings.py +0 -0
  151. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/kind_control_keys.py +0 -0
  152. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/kind_fields.py +0 -0
  153. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/kinds.py +0 -0
  154. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/knobs.py +0 -0
  155. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/mapping_sources.py +0 -0
  156. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/__init__.py +0 -0
  157. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/_sandbox.py +0 -0
  158. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/_template.py +0 -0
  159. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/content_ir/__init__.py +0 -0
  160. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/content_ir/validate.py +0 -0
  161. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/control/FEATURE.md +0 -0
  162. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/control/__init__.py +0 -0
  163. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/control/branch.py +0 -0
  164. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/control/gather.py +0 -0
  165. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/control/human_input.py +0 -0
  166. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/control/loop.py +0 -0
  167. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/control/map.py +0 -0
  168. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/control/send.py +0 -0
  169. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/control/work_queue.py +0 -0
  170. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/control/work_seed.py +0 -0
  171. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/crypto/__init__.py +0 -0
  172. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/crypto/ops.py +0 -0
  173. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/FEATURE.md +0 -0
  174. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/__init__.py +0 -0
  175. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/assert_.py +0 -0
  176. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/collections.py +0 -0
  177. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/criteria_gate.py +0 -0
  178. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/data_table.py +0 -0
  179. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/filter.py +0 -0
  180. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/flatten.py +0 -0
  181. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/json_io.py +0 -0
  182. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/map_template.py +0 -0
  183. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/merge.py +0 -0
  184. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/pick_omit.py +0 -0
  185. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/read_record.py +0 -0
  186. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/tabular.py +0 -0
  187. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/data/transform.py +0 -0
  188. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/datetime_/__init__.py +0 -0
  189. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/datetime_/ops.py +0 -0
  190. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/flow/FEATURE.md +0 -0
  191. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/flow/__init__.py +0 -0
  192. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/flow/noop.py +0 -0
  193. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/flow/sleep.py +0 -0
  194. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/flow/throttle.py +0 -0
  195. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/http/__init__.py +0 -0
  196. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/http/_shared.py +0 -0
  197. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/http/custom_api.py +0 -0
  198. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/http/get.py +0 -0
  199. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/http/graphql.py +0 -0
  200. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/http/post.py +0 -0
  201. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/io/__init__.py +0 -0
  202. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/io/user_input.py +0 -0
  203. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/log/FEATURE.md +0 -0
  204. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/log/__init__.py +0 -0
  205. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/log/record.py +0 -0
  206. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/math_/__init__.py +0 -0
  207. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/math_/evaluate.py +0 -0
  208. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/output/FEATURE.md +0 -0
  209. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/output/__init__.py +0 -0
  210. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/output/to_frontend.py +0 -0
  211. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/pipe/FEATURE.md +0 -0
  212. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/pipe/__init__.py +0 -0
  213. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/pipe/contract.py +0 -0
  214. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/pipe/step.py +0 -0
  215. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/plan/__init__.py +0 -0
  216. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/plan/step.py +0 -0
  217. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/settings/__init__.py +0 -0
  218. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/settings/read.py +0 -0
  219. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/speech/FEATURE.md +0 -0
  220. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/speech/__init__.py +0 -0
  221. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/speech/budget.py +0 -0
  222. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/subgraph/__init__.py +0 -0
  223. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/subgraph/call.py +0 -0
  224. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/text/__init__.py +0 -0
  225. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/text/custom_extract.py +0 -0
  226. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/text/json_path.py +0 -0
  227. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/text/manipulate.py +0 -0
  228. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/text/regex.py +0 -0
  229. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/text/render_list.py +0 -0
  230. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/tool/__init__.py +0 -0
  231. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/nodes/tool/call.py +0 -0
  232. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/observability/__init__.py +0 -0
  233. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/patch.py +0 -0
  234. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/paths.py +0 -0
  235. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/py.typed +0 -0
  236. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/records.py +0 -0
  237. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/references.py +0 -0
  238. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/run_log.py +0 -0
  239. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/seats.py +0 -0
  240. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/settings.py +0 -0
  241. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/shape_probe.py +0 -0
  242. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/speech_pace.py +0 -0
  243. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/table_kind_mapping.json +0 -0
  244. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/table_kinds.py +0 -0
  245. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/__init__.py +0 -0
  246. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/canonical_payloads.py +0 -0
  247. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/channel.py +0 -0
  248. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/compiled.py +0 -0
  249. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/context.py +0 -0
  250. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/definition.py +0 -0
  251. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/deliverables.py +0 -0
  252. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/events.py +0 -0
  253. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/handle.py +0 -0
  254. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/identity_inputs.py +0 -0
  255. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/input_surface.py +0 -0
  256. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/node_spec.py +0 -0
  257. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/primitives.py +0 -0
  258. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/result.py +0 -0
  259. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/review.py +0 -0
  260. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/run.py +0 -0
  261. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/send.py +0 -0
  262. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/usl.py +0 -0
  263. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/value_objects.py +0 -0
  264. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/types/variables.py +0 -0
  265. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/validation.py +0 -0
  266. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/workers/FEATURE.md +0 -0
  267. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/workers/__init__.py +0 -0
  268. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/workers/capability.py +0 -0
  269. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/workers/cron_watcher.py +0 -0
  270. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/workers/event_watcher.py +0 -0
  271. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/workers/queue.py +0 -0
  272. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/workers/runner.py +0 -0
  273. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/workers/sleep_wake.py +0 -0
  274. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/matrx_graph/workset.py +0 -0
  275. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/__init__.py +0 -0
  276. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/_db_guard.py +0 -0
  277. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/_fixtures.py +0 -0
  278. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/ci/00_supabase_shim.sql +0 -0
  279. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/ci/10_canonical_reorg_shim.sql +0 -0
  280. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/ci/bootstrap_test_db.sh +0 -0
  281. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/conftest.py +0 -0
  282. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/fixtures/kind_control_keys_golden.json +0 -0
  283. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/fixtures/kind_registry_variants.json +0 -0
  284. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/fixtures/table_kind_golden.json +0 -0
  285. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/fixtures/w59_empty_prescriber_output.json +0 -0
  286. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/fixtures/watson_rulebook_ids.json +0 -0
  287. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/judge/__init__.py +0 -0
  288. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/judge/test_self_validating_news_e2e.py +0 -0
  289. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/level2/__init__.py +0 -0
  290. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/level2/test_anthropic_provider.py +0 -0
  291. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_a_bound_graph_hash_moves_with_content_only.py +0 -0
  292. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_a_condition_stop_is_said_at_run_level.py +0 -0
  293. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_a_failed_final_write_ends_the_run_failed.py +0 -0
  294. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_a_large_step_output_stays_out_of_the_run_row.py +0 -0
  295. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_a_leg_knows_whether_it_ran_fresh.py +0 -0
  296. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_a_lost_lease_never_strands_or_lingers.py +0 -0
  297. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_a_node_fires_when_its_facts_are_confirmed.py +0 -0
  298. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_a_started_leg_keeps_the_queues_guarantees.py +0 -0
  299. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_a_step_that_was_answered_is_not_called_skipped.py +0 -0
  300. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_a_terminal_run_keeps_settled_job_markers.py +0 -0
  301. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_action_output_handles.py +0 -0
  302. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_actions.py +0 -0
  303. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_adversarial_engine_core.py +0 -0
  304. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_adversarial_kind_routing.py +0 -0
  305. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_adversarial_partial_wire.py +0 -0
  306. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_adversarial_registry.py +0 -0
  307. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_an_optional_step_failure_completes_the_run.py +0 -0
  308. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_authoring_gate.py +0 -0
  309. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_back_edges.py +0 -0
  310. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_barrier_removed.py +0 -0
  311. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_branch_passthrough_keeps_its_own_kind.py +0 -0
  312. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_candidate_node_gate.py +0 -0
  313. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_capability_aware_claim.py +0 -0
  314. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_channel.py +0 -0
  315. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_channels_reducers.py +0 -0
  316. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_checkpoint_postgres_org_write.py +0 -0
  317. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_checkpoint_rows_stay_small.py +0 -0
  318. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_checkpoint_summaries.py +0 -0
  319. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_checkpoint_write_budget.py +0 -0
  320. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_client_bound_error_redaction.py +0 -0
  321. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_config_output_handles_normalized.py +0 -0
  322. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_content_ir_audit.py +0 -0
  323. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_content_ir_converters.py +0 -0
  324. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_content_ir_envelope.py +0 -0
  325. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_content_ir_markers.py +0 -0
  326. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_content_ir_model.py +0 -0
  327. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_content_ir_partial.py +0 -0
  328. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_content_ir_pg_emitter.py +0 -0
  329. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_content_ir_runtime_view.py +0 -0
  330. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_content_ir_sample.py +0 -0
  331. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_content_ir_stamped_marker_equality.py +0 -0
  332. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_content_ir_translate.py +0 -0
  333. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_context_propagation.py +0 -0
  334. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_contract_artifact_eviction.py +0 -0
  335. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_contract_audit.py +0 -0
  336. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_contract_kinds.py +0 -0
  337. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_criteria_gate.py +0 -0
  338. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_data_collections.py +0 -0
  339. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_data_nodes.py +0 -0
  340. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_db_guard.py +0 -0
  341. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_decision_attribution.py +0 -0
  342. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_decision_default_and_edge_key_guards.py +0 -0
  343. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_definition.py +0 -0
  344. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_definition_store_archive_filter.py +0 -0
  345. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_definition_store_list_skip.py +0 -0
  346. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_definition_store_publish_is_a_change.py +0 -0
  347. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_definition_store_save_draft_author.py +0 -0
  348. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_definition_store_version_load.py +0 -0
  349. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_deliverables_rule.py +0 -0
  350. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_dry_run.py +0 -0
  351. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_dry_run_source_input.py +0 -0
  352. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_dynamic_topology_guards.py +0 -0
  353. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_edge_field_selection.py +0 -0
  354. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_empty_deliverable_is_named.py +0 -0
  355. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_empty_fanout.py +0 -0
  356. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_end_to_end.py +0 -0
  357. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_event_payloads_stay_small.py +0 -0
  358. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_event_store_error_redaction.py +0 -0
  359. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_event_triggers.py +0 -0
  360. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_every_dispatcher_is_seen_by_lineage.py +0 -0
  361. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_every_terminal_status_stamps_completed_at.py +0 -0
  362. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_extract.py +0 -0
  363. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_failure.py +0 -0
  364. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_failure_is_not_the_users_words.py +0 -0
  365. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_flow_nodes.py +0 -0
  366. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_gather_ai_projection.py +0 -0
  367. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_gather_channel_item_indexes.py +0 -0
  368. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_http_nodes.py +0 -0
  369. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_http_nodes_refuse_internal_addresses.py +0 -0
  370. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_human_answer_kind_declaration.py +0 -0
  371. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_human_gate_decision.py +0 -0
  372. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_human_gate_seat.py +0 -0
  373. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_human_input_bare_context.py +0 -0
  374. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_human_input_pause_round_trip.py +0 -0
  375. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_human_input_presentation.py +0 -0
  376. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_identity_input_broadcast.py +0 -0
  377. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_inert_predicate_guard.py +0 -0
  378. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_ingestion_gate.py +0 -0
  379. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_input_gate_failure_is_routable.py +0 -0
  380. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_input_surface.py +0 -0
  381. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_input_surface_variant_registry.py +0 -0
  382. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_invocation_budget.py +0 -0
  383. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_io_nodes.py +0 -0
  384. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_json_dump.py +0 -0
  385. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_kind_accessor.py +0 -0
  386. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_kind_availability.py +0 -0
  387. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_kind_control_keys.py +0 -0
  388. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_kind_enforcement.py +0 -0
  389. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_kind_fields.py +0 -0
  390. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_kind_native_node_library.py +0 -0
  391. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_kind_routing.py +0 -0
  392. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_kind_sdk.py +0 -0
  393. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_kinds.py +0 -0
  394. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_knobs.py +0 -0
  395. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_list_include_ids.py +0 -0
  396. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_list_shaping_nodes.py +0 -0
  397. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_live_injection.py +0 -0
  398. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_log_record_node.py +0 -0
  399. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_loop_scale.py +0 -0
  400. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_map_payload_template.py +0 -0
  401. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_mapping_source_sigils.py +0 -0
  402. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_multi_dispatch_fanin.py +0 -0
  403. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_node_cost_event.py +0 -0
  404. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_node_data_slot_store.py +0 -0
  405. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_node_data_slot_validation.py +0 -0
  406. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_node_emitter_settle.py +0 -0
  407. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_node_error_kind.py +0 -0
  408. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_node_input_capture.py +0 -0
  409. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_node_result_envelope.py +0 -0
  410. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_node_spec.py +0 -0
  411. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_outage_path_is_not_an_agent_choice.py +0 -0
  412. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_outcome_inputs_by_reference.py +0 -0
  413. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_outcome_outputs_by_reference.py +0 -0
  414. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_output_channel_binding.py +0 -0
  415. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_output_kind_stamping.py +0 -0
  416. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_patch.py +0 -0
  417. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_pause_cancel_and_recovery.py +0 -0
  418. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_pipe_step.py +0 -0
  419. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_plan_identity_consistency.py +0 -0
  420. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_plan_step.py +0 -0
  421. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_postgres_checkpointer.py +0 -0
  422. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_postgres_workset_store.py +0 -0
  423. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_predicate_preview_per_item.py +0 -0
  424. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_primitives.py +0 -0
  425. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_public_media_scope.py +0 -0
  426. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_raised_error_details_reach_outcome.py +0 -0
  427. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_read_record_node.py +0 -0
  428. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_references.py +0 -0
  429. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_registry.py +0 -0
  430. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_required_inputs_gate.py +0 -0
  431. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_response_checks.py +0 -0
  432. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_resume_payload_folding.py +0 -0
  433. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_resume_preflight_soundness.py +0 -0
  434. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_review_flags_raised_by_the_engine.py +0 -0
  435. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_run_conversation_identity.py +0 -0
  436. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_run_store_control.py +0 -0
  437. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_run_variables.py +0 -0
  438. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_conditional_edge.py +0 -0
  439. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_config_override.py +0 -0
  440. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_events.py +0 -0
  441. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_failsoft.py +0 -0
  442. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_failure_cost_settlement.py +0 -0
  443. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_fanout_identity.py +0 -0
  444. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_fork_to_new_run.py +0 -0
  445. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_interrupt_siblings.py +0 -0
  446. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_join_hardening.py +0 -0
  447. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_joins.py +0 -0
  448. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_loop_contract.py +0 -0
  449. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_mock_response.py +0 -0
  450. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_node_retry_override.py +0 -0
  451. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_node_timeout.py +0 -0
  452. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_ready_nodes_do_not_wait.py +0 -0
  453. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_retry_policy.py +0 -0
  454. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_skip_edge_ids.py +0 -0
  455. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_step_mode.py +0 -0
  456. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_scheduler_step_wall_clock.py +0 -0
  457. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_screen_value.py +0 -0
  458. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_self_validating_news.py +0 -0
  459. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_send_unwired_items_is_loud.py +0 -0
  460. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_settings_read_step.py +0 -0
  461. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_site_blocked_is_not_not_authorized.py +0 -0
  462. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_speech_budget.py +0 -0
  463. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_standalone_db_models.py +0 -0
  464. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_store_event_source.py +0 -0
  465. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_subgraph_call.py +0 -0
  466. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_table_kind_round_trip.py +0 -0
  467. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_template_path_shape_gate.py +0 -0
  468. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_text_nodes.py +0 -0
  469. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_tool_loop_stall_is_a_cause.py +0 -0
  470. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_transform_output_shape.py +0 -0
  471. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_triggers_and_observability.py +0 -0
  472. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_user_input_filled_from_data.py +0 -0
  473. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_utility_nodes.py +0 -0
  474. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_validation_expression_sandbox.py +0 -0
  475. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_validation_fanned_edge_needs_items.py +0 -0
  476. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_validation_hints.py +0 -0
  477. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_validation_s4.py +0 -0
  478. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_values_held_on_server.py +0 -0
  479. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_w0_agent_build_engine_proofs.py +0 -0
  480. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_workers.py +0 -0
  481. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_workset.py +0 -0
  482. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_workset_chaos.py +0 -0
  483. {matrx_graph-0.2.332 → matrx_graph-0.2.334}/tests/test_zip_by_position.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: matrx-graph
3
- Version: 0.2.332
3
+ Version: 0.2.334
4
4
  Summary: Channel-based, super-step workflow orchestration engine for the Matrx ecosystem
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
@@ -19,14 +19,14 @@ Requires-Python: >=3.13
19
19
  Requires-Dist: croniter>=2.0
20
20
  Requires-Dist: httpx>=0.27
21
21
  Requires-Dist: jsonschema>=4.20
22
- Requires-Dist: matrx-connect>=0.1.236
22
+ Requires-Dist: matrx-connect>=0.1.237
23
23
  Requires-Dist: matrx-utils>=2.0.83
24
24
  Requires-Dist: pydantic>=2.12
25
25
  Requires-Dist: pyyaml>=6.0
26
26
  Provides-Extra: otel
27
27
  Requires-Dist: opentelemetry-api>=1.25; extra == 'otel'
28
28
  Provides-Extra: postgres
29
- Requires-Dist: matrx-orm>=3.1.242; extra == 'postgres'
29
+ Requires-Dist: matrx-orm>=3.1.243; extra == 'postgres'
30
30
  Description-Content-Type: text/markdown
31
31
 
32
32
  # matrx-graph
@@ -19,7 +19,9 @@ The spec has no place for the real node ids (Archify's node schema is closed), s
19
19
 
20
20
  ``definition_structure_hash`` is the staleness key: sha256 over the nodes (id, type) and the edges
21
21
  (source, target, kind) only — never positions, labels, config or any other cosmetic field — so
22
- dragging a node does not invalidate an overview and adding a connection does.
22
+ dragging a node does not invalidate an overview and adding a connection does. Because the collapse
23
+ also reads labels, lanes and the title, ``definition_collapse_hash`` covers those inputs; a host
24
+ re-collapses when EITHER hash differs.
23
25
  """
24
26
 
25
27
  from __future__ import annotations
@@ -132,6 +134,23 @@ def definition_structure_hash(definition: Definition) -> str:
132
134
  return hashlib.sha256(payload.encode("utf-8")).hexdigest()
133
135
 
134
136
 
137
+ def definition_collapse_hash(
138
+ definition: Definition, *, title: str = "Workflow overview", categories: dict[str, str] | None = None
139
+ ) -> str:
140
+ """sha256 over everything ``collapse_definition_detailed`` READS, so a stored overview is re-collapsed
141
+ whenever its picture could differ. Derived from the collapse code: per node, in definition order (the
142
+ order breaks ties), the id, the spec type, the plain-words label (``_label_of``: label, else id, else
143
+ spec tail) and the lane (``node_family``: registry category, ``data.category``, spec name); per edge
144
+ (sorted) source, target and kind; and the workflow title. Positions, config and every field the
145
+ collapse never reads are ignored, so dragging a node leaves it unchanged while renaming a step changes
146
+ it. Complements ``definition_structure_hash`` (which means STRUCTURE only); bump ``COLLAPSE_VERSION``
147
+ when the collapse starts reading something new."""
148
+ nodes = [[n.id, n.spec_type, _label_of(n), node_family(n, categories)] for n in definition.nodes]
149
+ edges = sorted((e.source, e.target, e.kind.value) for e in definition.edges)
150
+ payload = json.dumps({"title": title, "nodes": nodes, "edges": edges}, sort_keys=True, separators=(",", ":"))
151
+ return hashlib.sha256(payload.encode("utf-8")).hexdigest()
152
+
153
+
135
154
  # --------------------------------------------------------------------------- labels
136
155
 
137
156
  _STOPWORDS = frozenset({"the", "and", "for", "from", "with", "your", "step", "agent", "source", "run", "make", "new"})
@@ -199,6 +218,8 @@ class CollapseResult:
199
218
  hidden: list[str]
200
219
  structure_hash: str
201
220
  collapse_version: int = COLLAPSE_VERSION
221
+ #: ``definition_collapse_hash`` of the inputs this picture was built from.
222
+ collapse_hash: str = ""
202
223
 
203
224
 
204
225
  def collapse_definition(
@@ -392,7 +413,10 @@ def collapse_definition_detailed(
392
413
  if cards:
393
414
  spec["cards"] = cards
394
415
  node_map = {ids[k]: list(items[k].members) for k in items}
395
- return CollapseResult(spec=spec, node_map=node_map, hidden=hidden, structure_hash=structure_hash)
416
+ return CollapseResult(
417
+ spec=spec, node_map=node_map, hidden=hidden, structure_hash=structure_hash,
418
+ collapse_hash=definition_collapse_hash(definition, title=title, categories=categories),
419
+ )
396
420
 
397
421
 
398
422
  # --------------------------------------------------------------------------- folding
@@ -48,7 +48,8 @@ class JobLease:
48
48
  #: the copy finished its work and is settling the job (``complete``): a renewal that lands after the settle
49
49
  #: commits answers "not ours", and that is not a loss (K1b, M1)
50
50
  settling: bool = False
51
- #: per-copy fencing token for anything this copy holds (an import slot): a newer copy's is always greater
51
+ #: per-copy fencing token for anything this copy holds (an import slot): a newer copy's is always greater. The
52
+ #: runner sets the job's attempt (bumped by every claim); a lease made by hand defaults to its creation time
52
53
  generation: float = field(default_factory=time.time)
53
54
  visibility_timeout: int = 600
54
55
  lost: bool = False
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "matrx-graph"
7
- version = "0.2.332"
7
+ version = "0.2.334"
8
8
  description = "Channel-based, super-step workflow orchestration engine for the Matrx ecosystem"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -33,7 +33,7 @@ classifiers = [
33
33
  requires-python = ">=3.13"
34
34
  dependencies = [
35
35
  "pydantic>=2.12",
36
- "matrx-connect>=0.1.236",
36
+ "matrx-connect>=0.1.237",
37
37
  # workers/queue.py imports compute_backoff_ms and validation.py imports
38
38
  # format_options/suggestion_line; all were first exported by 1.1.0.
39
39
  "matrx-utils>=2.0.83",
@@ -50,7 +50,7 @@ dependencies = [
50
50
 
51
51
  [project.optional-dependencies]
52
52
  postgres = [
53
- "matrx-orm>=3.1.242",
53
+ "matrx-orm>=3.1.243",
54
54
  ]
55
55
  otel = [
56
56
  "opentelemetry-api>=1.25",
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from matrx_graph import Definition
6
- from matrx_graph.overview import collapse_definition, collapse_definition_detailed, definition_structure_hash
6
+ from matrx_graph.overview import collapse_definition, collapse_definition_detailed, definition_collapse_hash, definition_structure_hash
7
7
 
8
8
 
9
9
  def _node(nid: str, spec: str, label: str | None = None, x: float = 0.0, y: float = 0.0) -> dict:
@@ -90,3 +90,29 @@ def test_the_hash_ignores_positions_and_labels_but_not_structure() -> None:
90
90
  kind = base.model_dump(mode="json")
91
91
  kind["edges"][0]["data"]["kind"] = "control"
92
92
  assert definition_structure_hash(Definition.model_validate(kind)) != definition_structure_hash(base)
93
+
94
+
95
+ def test_collapse_hash_covers_what_the_collapse_reads_and_ignores_positions() -> None:
96
+ base = _fan_out()
97
+ h = definition_collapse_hash(base, title="T")
98
+
99
+ moved = Definition.model_validate(
100
+ {**base.model_dump(mode="json"), "nodes": [{**n.model_dump(mode="json"), "position": {"x": 7.0, "y": 9.0}} for n in base.nodes]}
101
+ )
102
+ assert definition_collapse_hash(moved, title="T") == h # moving a node: no change
103
+
104
+ renamed = Definition.model_validate(base.model_dump(mode="json"))
105
+ renamed.nodes[2].data["label"] = "Something else"
106
+ assert definition_collapse_hash(renamed, title="T") != h # renaming: changes (structure hash does not)
107
+ assert definition_structure_hash(renamed) == definition_structure_hash(base)
108
+
109
+ assert definition_collapse_hash(base, title="Other") != h # the title is in the picture
110
+ solo = Definition.model_validate({"nodes": [_node("a", "tool.call", "Look up")], "edges": []})
111
+ assert definition_collapse_hash(solo, categories={"tool.call": "llm"}) != definition_collapse_hash(solo) # lane source
112
+ assert definition_collapse_hash(base, title="T", categories={"ai.agent.produce": "tool"}) == h # same lane: no change
113
+
114
+ more = base.model_dump(mode="json")
115
+ more["edges"].append(_edge("in", "save"))
116
+ assert definition_collapse_hash(Definition.model_validate(more), title="T") != h
117
+
118
+ assert collapse_definition_detailed(base, title="T").collapse_hash == h
File without changes
File without changes
File without changes
File without changes