dialectical-framework 1.2.3__tar.gz → 1.2.5__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 (169) hide show
  1. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/PKG-INFO +1 -1
  2. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/pyproject.toml +1 -1
  3. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/skills/build_wheels.py +14 -11
  4. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/get_schema.py +2 -0
  5. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/mixins/incremental_build_mixin.py +24 -3
  6. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/transformation.py +2 -0
  7. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/wheel.py +11 -4
  8. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/perspective_repository.py +1 -1
  9. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/polarity_repository.py +2 -2
  10. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/statement_repository.py +2 -2
  11. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/LICENSE +0 -0
  12. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/README.md +0 -0
  13. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/__init__.py +0 -0
  14. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/__init__.py +0 -0
  15. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/agent_context.py +0 -0
  16. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/__init__.py +0 -0
  17. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/analyst.py +0 -0
  18. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/__init__.py +0 -0
  19. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/anchor_theses.py +0 -0
  20. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/edit_perspective.py +0 -0
  21. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/expand_polarities.py +0 -0
  22. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/find_polarities.py +0 -0
  23. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/introduce_polarity.py +0 -0
  24. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/surface_theses.py +0 -0
  25. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/system_prompts.py +0 -0
  26. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/tools/__init__.py +0 -0
  27. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/tools/create_dx_input.py +0 -0
  28. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/tools/place_statement.py +0 -0
  29. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/apps.py +0 -0
  30. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/conversation_facilitator.py +0 -0
  31. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/execution_report.py +0 -0
  32. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/__init__.py +0 -0
  33. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/explorer.py +0 -0
  34. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/skills/__init__.py +0 -0
  35. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/skills/explore_transformations.py +0 -0
  36. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/skills/generate_synthesis.py +0 -0
  37. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/system_prompts.py +0 -0
  38. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/tools/__init__.py +0 -0
  39. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/tools/create_nexus.py +0 -0
  40. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/tools/expand_nexus.py +0 -0
  41. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/tools/generate_synthesis.py +0 -0
  42. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/tools/present_exploration.py +0 -0
  43. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/__init__.py +0 -0
  44. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/__init__.py +0 -0
  45. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/add_input.py +0 -0
  46. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/discard.py +0 -0
  47. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/inspect_node.py +0 -0
  48. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/present_analysis.py +0 -0
  49. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/query_graph.py +0 -0
  50. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/reasonable_concern.py +0 -0
  51. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/stream_events.py +0 -0
  52. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/__init__.py +0 -0
  53. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/ac_re_taxonomy.py +0 -0
  54. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/action_extraction.py +0 -0
  55. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/ai_dto/__init__.py +0 -0
  56. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/ai_dto/statement_dto.py +0 -0
  57. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/ai_dto/statements_deck_dto.py +0 -0
  58. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/antithesis_classification.py +0 -0
  59. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/antithesis_extraction.py +0 -0
  60. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/aspect_classification.py +0 -0
  61. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/aspect_generation.py +0 -0
  62. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/__init__.py +0 -0
  63. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_estimator.py +0 -0
  64. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_estimator_balanced.py +0 -0
  65. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_estimator_criteria.py +0 -0
  66. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_estimator_desirable.py +0 -0
  67. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_estimator_feasible.py +0 -0
  68. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_estimator_realistic.py +0 -0
  69. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_normalizer.py +0 -0
  70. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/estimator_resolver.py +0 -0
  71. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality_estimation.py +0 -0
  72. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/control_statements_check.py +0 -0
  73. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/create_nexus.py +0 -0
  74. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/diagonal_oppositions_check.py +0 -0
  75. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/display_text_edit.py +0 -0
  76. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/expand_nexus.py +0 -0
  77. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/perspective_combination.py +0 -0
  78. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/perspective_validation.py +0 -0
  79. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/positive_ac_re_apex_derivation.py +0 -0
  80. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/statement_classification.py +0 -0
  81. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/statement_deduplication.py +0 -0
  82. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/statement_placement.py +0 -0
  83. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/synthesis_generation.py +0 -0
  84. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/thesis_extraction.py +0 -0
  85. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/transformation_audit.py +0 -0
  86. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/transformation_generation.py +0 -0
  87. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/dialectical_reasoning.py +0 -0
  88. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/enums/__init__.py +0 -0
  89. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/enums/causality_preset.py +0 -0
  90. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/enums/di.py +0 -0
  91. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/events/__init__.py +0 -0
  92. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/events/graph_event.py +0 -0
  93. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/events/graph_event_bus.py +0 -0
  94. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/exceptions/__init__.py +0 -0
  95. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/exceptions/node_errors.py +0 -0
  96. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/exceptions/resolver_errors.py +0 -0
  97. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/__init__.py +0 -0
  98. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/composite_input_resolver.py +0 -0
  99. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/dialexity_input_resolver.py +0 -0
  100. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/estimation_manager.py +0 -0
  101. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/mixins/__init__.py +0 -0
  102. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/mixins/intent_mixin.py +0 -0
  103. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/mixins/persistable_mixin.py +0 -0
  104. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/__init__.py +0 -0
  105. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/assessable_entity.py +0 -0
  106. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/base_node.py +0 -0
  107. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/case.py +0 -0
  108. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/cycle.py +0 -0
  109. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/estimation.py +0 -0
  110. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/ideas.py +0 -0
  111. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/input.py +0 -0
  112. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/nexus.py +0 -0
  113. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/perspective.py +0 -0
  114. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/polarity.py +0 -0
  115. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/rationale.py +0 -0
  116. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/statement.py +0 -0
  117. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/synthesis.py +0 -0
  118. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/transition.py +0 -0
  119. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationship_manager.py +0 -0
  120. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/__init__.py +0 -0
  121. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/action_reflection_relationship.py +0 -0
  122. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/belongs_to_cycle_relationship.py +0 -0
  123. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/belongs_to_nexus_relationship.py +0 -0
  124. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/changed_to_relationship.py +0 -0
  125. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/contradiction_of_relationship.py +0 -0
  126. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/critiques_relationship.py +0 -0
  127. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/distilled_to_relationship.py +0 -0
  128. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/estimates_relationship.py +0 -0
  129. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/explains_relationship.py +0 -0
  130. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/has_input_relationship.py +0 -0
  131. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/has_statement_relationship.py +0 -0
  132. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/has_wheel_relationship.py +0 -0
  133. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/immutable_structure.py +0 -0
  134. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/is_source_of_relationship.py +0 -0
  135. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/is_target_of_relationship.py +0 -0
  136. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/negative_side_of_relationship.py +0 -0
  137. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/opposite_direction_relationship.py +0 -0
  138. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/opposite_of_relationship.py +0 -0
  139. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/polarity_relationship.py +0 -0
  140. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/positive_side_of_relationship.py +0 -0
  141. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/provides_relationship.py +0 -0
  142. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/synthesis_of_relationship.py +0 -0
  143. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/__init__.py +0 -0
  144. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/case_repository.py +0 -0
  145. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/cycle_repository.py +0 -0
  146. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/input_repository.py +0 -0
  147. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/nexus_repository.py +0 -0
  148. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/node_repository.py +0 -0
  149. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/schema_repository.py +0 -0
  150. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/transformation_repository.py +0 -0
  151. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/wheel_repository.py +0 -0
  152. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/scope_context.py +0 -0
  153. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/verbatim_input_resolver.py +0 -0
  154. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/wheel_segment.py +0 -0
  155. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/wheel_segment_polar_pair.py +0 -0
  156. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/protocols/__init__.py +0 -0
  157. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/protocols/has_config.py +0 -0
  158. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/protocols/input_resolver.py +0 -0
  159. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/settings.py +0 -0
  160. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/__init__.py +0 -0
  161. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/bedrock_provider.py +0 -0
  162. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/concurrency.py +0 -0
  163. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/dc_replace.py +0 -0
  164. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/decompose_probability_uniformly.py +0 -0
  165. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/edge_context.py +0 -0
  166. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/effect_logger.py +0 -0
  167. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/order_transitions.py +0 -0
  168. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/sequence_generation.py +0 -0
  169. {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/use_brain.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dialectical-framework
3
- Version: 1.2.3
3
+ Version: 1.2.5
4
4
  Summary: A dialectical framework for augmented intelligence. AI reasoning powered with dialectics supports humans in: system optimization (psychology, engineering, business, politics, etc.); dispute resolution (mediation, conflicts, negotiations, etc.); decision-making (dilemmas, challenging situations, win-win, etc.).
5
5
  License: MIT
6
6
  Keywords: dialectics,dialectical-reasoning,synthesis,thesis-antithesis,ai,artificial-intelligence,llm,reasoning-framework,philosophy,logic,argumentation,conflict-resolution,decision-making,critical-thinking,semantic-graph,mirascope,pydantic,perspectives,polarity-reasoning
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "dialectical-framework"
3
- version = "1.2.3"
3
+ version = "1.2.5"
4
4
  description = "A dialectical framework for augmented intelligence. AI reasoning powered with dialectics supports humans in: system optimization (psychology, engineering, business, politics, etc.); dispute resolution (mediation, conflicts, negotiations, etc.); decision-making (dilemmas, challenging situations, win-win, etc.)."
5
5
  authors = ["Evaldas Taroza <evaldas@dialexity.com>"]
6
6
  readme = "README.md"
@@ -171,7 +171,7 @@ class BuildWheels(ReasonableConcern[BuildWheelsResult]):
171
171
  self._report.artifacts["cycle_intent"] = cycle_intent
172
172
 
173
173
  # 3. Resolve Perspectives
174
- perspectives = self._resolve_perspectives()
174
+ perspectives = self._resolve_perspectives(nexus)
175
175
 
176
176
  if not perspectives:
177
177
  self._report.summary = (
@@ -358,18 +358,21 @@ class BuildWheels(ReasonableConcern[BuildWheelsResult]):
358
358
 
359
359
  return CausalityPreset.BALANCED
360
360
 
361
- def _resolve_perspectives(self) -> list[Perspective]:
362
- """Resolve Perspectives from hashes or prefixes."""
361
+ def _resolve_perspectives(self, nexus: Nexus) -> list[Perspective]:
362
+ """Resolve Perspectives from explicit hashes, falling back to Nexus members."""
363
363
  from dialectical_framework.graph.nodes.perspective import Perspective
364
364
 
365
- repo = NodeRepository()
366
- perspectives = []
367
- for pp_hash in self.perspective_hashes:
368
- node = repo.find_by_hash(pp_hash, node_type=Perspective)
369
- if node is None:
370
- raise ValueError(f"Perspective not found: {pp_hash}")
371
- perspectives.append(node)
372
- return perspectives
365
+ if self.perspective_hashes:
366
+ repo = NodeRepository()
367
+ perspectives = []
368
+ for pp_hash in self.perspective_hashes:
369
+ node = repo.find_by_hash(pp_hash, node_type=Perspective)
370
+ if node is None:
371
+ raise ValueError(f"Perspective not found: {pp_hash}")
372
+ perspectives.append(node)
373
+ return perspectives
374
+
375
+ return [pp for pp, _ in nexus.perspectives.all() if not pp.discarded]
373
376
 
374
377
 
375
378
  @llm.tool
@@ -36,6 +36,8 @@ GRAPH_SCHEMA = """## Graph Schema
36
36
 
37
37
  All nodes share: `hash` (content-addressable ID), `sid` (session scope), `committed_at`.
38
38
 
39
+ **Important:** Only query committed nodes. Always add `WHERE n.hash IS NOT NULL` to filter out incomplete (in-progress or abandoned) nodes. Nodes with `hash IS NULL` are not yet finalized and must not be included in results.
40
+
39
41
  ### Relationship Edge Properties
40
42
 
41
43
  **Polarity positions** (T, A, T_PLUS, T_MINUS, A_PLUS, A_MINUS relationships) carry:
@@ -16,7 +16,7 @@ The pattern follows git's staging area concept:
16
16
  from __future__ import annotations
17
17
 
18
18
  import time
19
- from typing import TYPE_CHECKING, Any, Iterator, Union
19
+ from typing import TYPE_CHECKING, Any, Iterator, Self, Union
20
20
 
21
21
  from dependency_injector.wiring import Provide, inject
22
22
  from gqlalchemy import Memgraph, Neo4j
@@ -37,9 +37,9 @@ class IncrementalBuildMixin(PersistableMixin):
37
37
 
38
38
  Lifecycle:
39
39
  1. Create node: cycle = Cycle(intent="...")
40
- 2. Save as HEAD: cycle.save() # hash=None, committed_at=None, persisted
40
+ 2. Save as HEAD: cycle.save() # hash=None, saved_at=now, persisted
41
41
  3. Add children: cycle.set_perspectives([pp1, pp2])
42
- 4. Commit: cycle.commit() # committed_at set, hash computed, immutable
42
+ 4. Commit: cycle.commit() # committed_at set, hash computed, saved_at cleared
43
43
 
44
44
  After commit(), the node behaves like any other committed node.
45
45
 
@@ -52,6 +52,26 @@ class IncrementalBuildMixin(PersistableMixin):
52
52
  _id: Any
53
53
  committed_at: float | None
54
54
 
55
+ # Tracks when save() persisted this node before commit.
56
+ # Non-null means the node is being built. Cleared on commit().
57
+ # Stale values (old timestamps with no commit) indicate abandoned garbage.
58
+ saved_at: float | None
59
+
60
+ @inject
61
+ def save(
62
+ self,
63
+ graph_db: Union[Memgraph, Neo4j] = Provide[DI.graph_db],
64
+ ) -> Self:
65
+ """
66
+ Persist this node as HEAD state, recording saved_at timestamp.
67
+
68
+ saved_at marks that this node is actively being built. It is cleared
69
+ on commit(). A stale saved_at with no commit indicates abandoned garbage.
70
+ """
71
+ if not self.is_committed:
72
+ self.saved_at = time.time()
73
+ return super().save(graph_db=graph_db)
74
+
55
75
  def _get_commit_dependents(self) -> Iterator[BaseNode]:
56
76
  """
57
77
  Get all committed children for hash computation.
@@ -111,6 +131,7 @@ class IncrementalBuildMixin(PersistableMixin):
111
131
 
112
132
  # Set committed_at BEFORE computing hash (it's part of the hash for structural nodes)
113
133
  self.committed_at = time.time()
134
+ self.saved_at = None
114
135
  self.hash = self.compute_hash()
115
136
 
116
137
  # No dedup for container nodes - they have relationships attached by commit time.
@@ -12,6 +12,7 @@ Transformation alternatives at different insight/proactiveness levels.
12
12
  from __future__ import annotations
13
13
 
14
14
  import re
15
+ import time
15
16
  from typing import ClassVar, Optional, TYPE_CHECKING, Union, Self
16
17
 
17
18
  from dependency_injector.wiring import Provide, inject
@@ -344,6 +345,7 @@ class Transformation(IncrementalBuildMixin, IntentMixin, AssessableEntity, label
344
345
  """
345
346
  # Auto-save if not already saved (allows calling commit() directly)
346
347
  if self._id is None:
348
+ self.saved_at = time.time()
347
349
  result = graph_db.save_node(self)
348
350
  if result is not None and result._id is not None:
349
351
  self._id = result._id
@@ -193,6 +193,11 @@ class Wheel(IncrementalBuildMixin, IntentMixin, AssessableEntity, label="Wheel")
193
193
  result: list[Perspective] = []
194
194
  pp_repo = PerspectiveRepository()
195
195
 
196
+ cycle_result = self.cycle.get()
197
+ allowed_hashes: set[str] | None = None
198
+ if cycle_result:
199
+ allowed_hashes = set(cycle_result[0].perspective_hashes)
200
+
196
201
  for edge in self.edges:
197
202
  source_result = edge.source.get()
198
203
  target_result = edge.target.get()
@@ -204,12 +209,14 @@ class Wheel(IncrementalBuildMixin, IntentMixin, AssessableEntity, label="Wheel")
204
209
  components.append(target_result[0])
205
210
 
206
211
  for component in components:
207
- # Find the PP this component belongs to
208
212
  pp_tuples = pp_repo.find_by_statement(component)
209
213
  for pp, _ in pp_tuples:
210
- if pp.hash not in seen_hashes:
211
- seen_hashes.add(pp.hash)
212
- result.append(pp)
214
+ if pp.hash in seen_hashes:
215
+ continue
216
+ if allowed_hashes is not None and pp.hash not in allowed_hashes:
217
+ continue
218
+ seen_hashes.add(pp.hash)
219
+ result.append(pp)
213
220
 
214
221
  return result
215
222
 
@@ -43,7 +43,7 @@ class PerspectiveRepository:
43
43
 
44
44
  query = """
45
45
  MATCH (pp:Perspective {sid: $sid})
46
- WHERE pp.discarded IS NULL
46
+ WHERE pp.discarded IS NULL AND pp.hash IS NOT NULL
47
47
  RETURN pp
48
48
  ORDER BY pp.committed_at
49
49
  """
@@ -171,10 +171,10 @@ class PolarityRepository:
171
171
 
172
172
  query = """
173
173
  MATCH (pol:Polarity {sid: $sid})
174
- WHERE pol.discarded IS NULL
174
+ WHERE pol.discarded IS NULL AND pol.hash IS NOT NULL
175
175
  AND NOT EXISTS {
176
176
  MATCH (pp:Perspective {sid: $sid})-[:HAS_POLARITY]->(pol)
177
- WHERE pp.discarded IS NULL
177
+ WHERE pp.discarded IS NULL AND pp.hash IS NOT NULL
178
178
  }
179
179
  RETURN pol
180
180
  """
@@ -88,7 +88,7 @@ class StatementRepository:
88
88
 
89
89
  query = """
90
90
  MATCH (c:Statement)
91
- WHERE c.sid = $sid
91
+ WHERE c.sid = $sid AND c.hash IS NOT NULL
92
92
  RETURN c
93
93
  """
94
94
  results = graph_db.execute_and_fetch(query, {"sid": sid})
@@ -184,7 +184,7 @@ class StatementRepository:
184
184
 
185
185
  query = """
186
186
  MATCH (s:Statement {sid: $sid})
187
- WHERE s.discarded IS NULL
187
+ WHERE s.discarded IS NULL AND s.hash IS NOT NULL
188
188
  AND NOT (s)-[:T]->(:Polarity)
189
189
  AND NOT (s)-[:A]->(:Polarity)
190
190
  AND NOT (s)-[:T_PLUS]->(:Perspective)