dialectical-framework 1.8.0__tar.gz → 1.9.1__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 (232) hide show
  1. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/PKG-INFO +74 -14
  2. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/README.md +73 -14
  3. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/pyproject.toml +1 -1
  4. dialectical_framework-1.9.1/src/dialectical_framework/agents/advisor/advisor.py +2072 -0
  5. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/advisor/system_prompts.py +282 -11
  6. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/advisor/tools/anchor.py +47 -0
  7. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/advisor/tools/deepen.py +35 -0
  8. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/advisor/tools/explore.py +98 -12
  9. dialectical_framework-1.9.1/src/dialectical_framework/agents/advisor/tools/ingest.py +129 -0
  10. dialectical_framework-1.9.1/src/dialectical_framework/agents/advisor/tools/record_decision.py +122 -0
  11. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/advisor/tools/scoped.py +118 -8
  12. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/analyst/analyst.py +139 -28
  13. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/analyst/skills/anchor_theses.py +58 -6
  14. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/analyst/skills/edit_perspective.py +160 -4
  15. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/analyst/skills/expand_polarities.py +45 -1
  16. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/analyst/skills/find_polarities.py +76 -3
  17. dialectical_framework-1.9.1/src/dialectical_framework/agents/analyst/skills/introduce_polarity.py +381 -0
  18. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/analyst/skills/surface_theses.py +273 -18
  19. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/app_spec.py +64 -5
  20. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/apps.py +47 -1
  21. dialectical_framework-1.9.1/src/dialectical_framework/agents/conversation_facilitator.py +1249 -0
  22. dialectical_framework-1.9.1/src/dialectical_framework/agents/explorer/explorer.py +683 -0
  23. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/explorer/skills/build_wheels.py +48 -2
  24. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/explorer/skills/explore_transformations.py +222 -63
  25. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/explorer/skills/generate_synthesis.py +19 -7
  26. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/explorer/system_prompts.py +14 -5
  27. dialectical_framework-1.9.1/src/dialectical_framework/agents/orchestrator/tools/add_input.py +47 -0
  28. dialectical_framework-1.9.1/src/dialectical_framework/agents/orchestrator/tools/audit_feasibility.py +287 -0
  29. dialectical_framework-1.9.1/src/dialectical_framework/agents/orchestrator/tools/digest_input.py +44 -0
  30. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/orchestrator/tools/get_schema.py +12 -8
  31. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/orchestrator/tools/present_analysis.py +12 -4
  32. dialectical_framework-1.9.1/src/dialectical_framework/agents/stream_events.py +122 -0
  33. dialectical_framework-1.9.1/src/dialectical_framework/agents/turn_timing.py +356 -0
  34. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/ac_re_taxonomy.py +2 -2
  35. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/action_extraction.py +26 -4
  36. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/add_input.py +9 -8
  37. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/antithesis_extraction.py +92 -3
  38. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/causality/causality_estimator_balanced.py +24 -9
  39. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/create_dx_input.py +1 -3
  40. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/dialectical_context.py +258 -43
  41. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/perspective_combination.py +50 -4
  42. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/positive_ac_re_apex_derivation.py +159 -60
  43. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/record_decision.py +58 -11
  44. dialectical_framework-1.9.1/src/dialectical_framework/concerns/source_digest.py +528 -0
  45. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/statement_deduplication.py +22 -2
  46. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/synthesis_generation.py +38 -19
  47. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/thesis_extraction.py +182 -24
  48. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/transformation_audit.py +95 -8
  49. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/transformation_generation.py +105 -108
  50. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/dialectical_reasoning.py +4 -0
  51. dialectical_framework-1.9.1/src/dialectical_framework/events/graph_event_bus.py +107 -0
  52. dialectical_framework-1.9.1/src/dialectical_framework/events/progress_event.py +131 -0
  53. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/mixins/incremental_build_mixin.py +30 -13
  54. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/base_node.py +14 -0
  55. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/case.py +4 -1
  56. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/decision.py +3 -1
  57. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/rationale.py +19 -0
  58. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/transformation.py +24 -14
  59. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/transition.py +14 -2
  60. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/wheel.py +29 -12
  61. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationship_manager.py +178 -17
  62. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/polarity_relationship.py +11 -6
  63. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/rendering.py +129 -14
  64. dialectical_framework-1.9.1/src/dialectical_framework/graph/repositories/case_repository.py +101 -0
  65. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/repositories/cycle_repository.py +9 -1
  66. dialectical_framework-1.9.1/src/dialectical_framework/graph/repositories/input_repository.py +185 -0
  67. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/repositories/nexus_repository.py +3 -2
  68. dialectical_framework-1.9.1/src/dialectical_framework/graph/repositories/node_repository.py +274 -0
  69. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/repositories/perspective_repository.py +94 -0
  70. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/repositories/wheel_repository.py +132 -7
  71. dialectical_framework-1.9.1/src/dialectical_framework/settings.py +296 -0
  72. dialectical_framework-1.9.1/src/dialectical_framework/utils/__init__.py +0 -0
  73. dialectical_framework-1.9.1/src/dialectical_framework/utils/async_drain.py +134 -0
  74. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/utils/bedrock_provider.py +159 -0
  75. dialectical_framework-1.9.1/src/dialectical_framework/utils/call_census.py +409 -0
  76. dialectical_framework-1.9.1/src/dialectical_framework/utils/chunking.py +138 -0
  77. dialectical_framework-1.9.1/src/dialectical_framework/utils/edge_context.py +201 -0
  78. dialectical_framework-1.9.1/src/dialectical_framework/utils/input_context.py +168 -0
  79. dialectical_framework-1.9.1/src/dialectical_framework/utils/progress.py +487 -0
  80. dialectical_framework-1.9.1/src/dialectical_framework/utils/retry_accounting.py +137 -0
  81. dialectical_framework-1.9.1/src/dialectical_framework/utils/use_brain.py +928 -0
  82. dialectical_framework-1.8.0/src/dialectical_framework/agents/advisor/advisor.py +0 -738
  83. dialectical_framework-1.8.0/src/dialectical_framework/agents/advisor/tools/ingest.py +0 -58
  84. dialectical_framework-1.8.0/src/dialectical_framework/agents/advisor/tools/record_decision.py +0 -87
  85. dialectical_framework-1.8.0/src/dialectical_framework/agents/analyst/skills/introduce_polarity.py +0 -243
  86. dialectical_framework-1.8.0/src/dialectical_framework/agents/conversation_facilitator.py +0 -551
  87. dialectical_framework-1.8.0/src/dialectical_framework/agents/explorer/explorer.py +0 -435
  88. dialectical_framework-1.8.0/src/dialectical_framework/agents/orchestrator/tools/add_input.py +0 -27
  89. dialectical_framework-1.8.0/src/dialectical_framework/agents/orchestrator/tools/digest_input.py +0 -28
  90. dialectical_framework-1.8.0/src/dialectical_framework/agents/stream_events.py +0 -82
  91. dialectical_framework-1.8.0/src/dialectical_framework/concerns/source_digest.py +0 -195
  92. dialectical_framework-1.8.0/src/dialectical_framework/events/graph_event_bus.py +0 -55
  93. dialectical_framework-1.8.0/src/dialectical_framework/graph/repositories/case_repository.py +0 -52
  94. dialectical_framework-1.8.0/src/dialectical_framework/graph/repositories/input_repository.py +0 -52
  95. dialectical_framework-1.8.0/src/dialectical_framework/graph/repositories/node_repository.py +0 -177
  96. dialectical_framework-1.8.0/src/dialectical_framework/settings.py +0 -156
  97. dialectical_framework-1.8.0/src/dialectical_framework/utils/edge_context.py +0 -54
  98. dialectical_framework-1.8.0/src/dialectical_framework/utils/input_context.py +0 -51
  99. dialectical_framework-1.8.0/src/dialectical_framework/utils/use_brain.py +0 -433
  100. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/LICENSE +0 -0
  101. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/PATENTS +0 -0
  102. {dialectical_framework-1.8.0/src/dialectical_framework/utils → dialectical_framework-1.9.1/src/dialectical_framework}/__init__.py +0 -0
  103. {dialectical_framework-1.8.0/src/dialectical_framework/protocols → dialectical_framework-1.9.1/src/dialectical_framework/agents}/__init__.py +0 -0
  104. {dialectical_framework-1.8.0/src/dialectical_framework/agents/advisor/tools → dialectical_framework-1.9.1/src/dialectical_framework/agents/advisor}/__init__.py +0 -0
  105. {dialectical_framework-1.8.0/src/dialectical_framework/agents/advisor → dialectical_framework-1.9.1/src/dialectical_framework/agents/advisor/tools}/__init__.py +0 -0
  106. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/advisor/tools/sync.py +0 -0
  107. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/agent_context.py +0 -0
  108. {dialectical_framework-1.8.0/src/dialectical_framework/graph/repositories → dialectical_framework-1.9.1/src/dialectical_framework/agents/analyst}/__init__.py +0 -0
  109. {dialectical_framework-1.8.0/src/dialectical_framework/graph/relationships → dialectical_framework-1.9.1/src/dialectical_framework/agents/analyst/skills}/__init__.py +0 -0
  110. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/analyst/system_prompts.py +0 -0
  111. {dialectical_framework-1.8.0/src/dialectical_framework/graph/nodes → dialectical_framework-1.9.1/src/dialectical_framework/agents/analyst/tools}/__init__.py +0 -0
  112. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/analyst/tools/place_statement.py +0 -0
  113. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/execution_report.py +0 -0
  114. {dialectical_framework-1.8.0/src/dialectical_framework/graph/mixins → dialectical_framework-1.9.1/src/dialectical_framework/agents/explorer}/__init__.py +0 -0
  115. {dialectical_framework-1.8.0/src/dialectical_framework/graph → dialectical_framework-1.9.1/src/dialectical_framework/agents/explorer/skills}/__init__.py +0 -0
  116. {dialectical_framework-1.8.0/src/dialectical_framework/exceptions → dialectical_framework-1.9.1/src/dialectical_framework/agents/explorer/tools}/__init__.py +0 -0
  117. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/explorer/tools/create_nexus.py +0 -0
  118. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/explorer/tools/expand_nexus.py +0 -0
  119. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/explorer/tools/generate_synthesis.py +0 -0
  120. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/explorer/tools/present_exploration.py +0 -0
  121. {dialectical_framework-1.8.0/src/dialectical_framework/events → dialectical_framework-1.9.1/src/dialectical_framework/agents/orchestrator}/__init__.py +0 -0
  122. {dialectical_framework-1.8.0/src/dialectical_framework/enums → dialectical_framework-1.9.1/src/dialectical_framework/agents/orchestrator/tools}/__init__.py +0 -0
  123. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/orchestrator/tools/create_dx_input.py +0 -0
  124. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/orchestrator/tools/discard.py +0 -0
  125. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/orchestrator/tools/inspect_node.py +0 -0
  126. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/orchestrator/tools/query_graph.py +0 -0
  127. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/orchestrator/tools/read_digest.py +0 -0
  128. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/orchestrator/tools/read_input.py +0 -0
  129. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/reasonable_concern.py +0 -0
  130. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/agents/toolsets.py +0 -0
  131. {dialectical_framework-1.8.0/src/dialectical_framework/concerns/causality → dialectical_framework-1.9.1/src/dialectical_framework/concerns}/__init__.py +0 -0
  132. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/ai_dto/__init__.py +0 -0
  133. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/ai_dto/statement_dto.py +0 -0
  134. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/ai_dto/statements_deck_dto.py +0 -0
  135. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/antithesis_classification.py +0 -0
  136. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/antithetical_thesis_detection.py +0 -0
  137. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/aspect_classification.py +0 -0
  138. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/aspect_generation.py +0 -0
  139. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/build_status.py +0 -0
  140. {dialectical_framework-1.8.0/src/dialectical_framework/concerns → dialectical_framework-1.9.1/src/dialectical_framework/concerns/causality}/__init__.py +0 -0
  141. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/causality/causality_estimator.py +0 -0
  142. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/causality/causality_estimator_criteria.py +0 -0
  143. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/causality/causality_estimator_desirable.py +0 -0
  144. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/causality/causality_estimator_feasible.py +0 -0
  145. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/causality/causality_estimator_realistic.py +0 -0
  146. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/causality/causality_normalizer.py +0 -0
  147. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/causality/estimator_resolver.py +0 -0
  148. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/causality_estimation.py +0 -0
  149. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/control_statements_check.py +0 -0
  150. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/create_nexus.py +0 -0
  151. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/decision_coherence_check.py +0 -0
  152. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/decision_confirmation_check.py +0 -0
  153. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/diagonal_oppositions_check.py +0 -0
  154. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/discard.py +0 -0
  155. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/display_text_edit.py +0 -0
  156. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/expand_nexus.py +0 -0
  157. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/perspective_validation.py +0 -0
  158. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/scoring_scales.py +0 -0
  159. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/statement_classification.py +0 -0
  160. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/statement_headline.py +0 -0
  161. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/statement_placement.py +0 -0
  162. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/concerns/tetrad_grounding.py +0 -0
  163. {dialectical_framework-1.8.0/src/dialectical_framework/agents/orchestrator/tools → dialectical_framework-1.9.1/src/dialectical_framework/enums}/__init__.py +0 -0
  164. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/enums/causality_preset.py +0 -0
  165. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/enums/di.py +0 -0
  166. {dialectical_framework-1.8.0/src/dialectical_framework/agents/orchestrator → dialectical_framework-1.9.1/src/dialectical_framework/events}/__init__.py +0 -0
  167. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/events/graph_event.py +0 -0
  168. {dialectical_framework-1.8.0/src/dialectical_framework/agents/explorer/tools → dialectical_framework-1.9.1/src/dialectical_framework/exceptions}/__init__.py +0 -0
  169. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/exceptions/node_errors.py +0 -0
  170. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/exceptions/resolver_errors.py +0 -0
  171. {dialectical_framework-1.8.0/src/dialectical_framework/agents/explorer/skills → dialectical_framework-1.9.1/src/dialectical_framework/graph}/__init__.py +0 -0
  172. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/composite_input_resolver.py +0 -0
  173. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/dialexity_input_resolver.py +0 -0
  174. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/estimation_manager.py +0 -0
  175. {dialectical_framework-1.8.0/src/dialectical_framework/agents/explorer → dialectical_framework-1.9.1/src/dialectical_framework/graph/mixins}/__init__.py +0 -0
  176. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/mixins/intent_mixin.py +0 -0
  177. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/mixins/persistable_mixin.py +0 -0
  178. {dialectical_framework-1.8.0/src/dialectical_framework/agents/analyst/tools → dialectical_framework-1.9.1/src/dialectical_framework/graph/nodes}/__init__.py +0 -0
  179. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/assessable_entity.py +0 -0
  180. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/cycle.py +0 -0
  181. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/estimation.py +0 -0
  182. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/ideas.py +0 -0
  183. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/input.py +0 -0
  184. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/nexus.py +0 -0
  185. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/perspective.py +0 -0
  186. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/polarity.py +0 -0
  187. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/statement.py +0 -0
  188. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/nodes/synthesis.py +0 -0
  189. {dialectical_framework-1.8.0/src/dialectical_framework/agents/analyst/skills → dialectical_framework-1.9.1/src/dialectical_framework/graph/relationships}/__init__.py +0 -0
  190. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/action_reflection_relationship.py +0 -0
  191. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/belongs_to_cycle_relationship.py +0 -0
  192. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/belongs_to_nexus_relationship.py +0 -0
  193. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/changed_to_relationship.py +0 -0
  194. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/contradiction_of_relationship.py +0 -0
  195. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/critiques_relationship.py +0 -0
  196. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/distilled_to_relationship.py +0 -0
  197. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/estimates_relationship.py +0 -0
  198. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/explains_relationship.py +0 -0
  199. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/grounded_in_relationship.py +0 -0
  200. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/has_input_relationship.py +0 -0
  201. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/has_statement_relationship.py +0 -0
  202. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/has_wheel_relationship.py +0 -0
  203. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/immutable_structure.py +0 -0
  204. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/is_source_of_relationship.py +0 -0
  205. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/is_target_of_relationship.py +0 -0
  206. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/negative_side_of_relationship.py +0 -0
  207. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/opposite_direction_relationship.py +0 -0
  208. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/opposite_of_relationship.py +0 -0
  209. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/positive_side_of_relationship.py +0 -0
  210. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/provides_relationship.py +0 -0
  211. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/relationships/synthesis_of_relationship.py +0 -0
  212. {dialectical_framework-1.8.0/src/dialectical_framework/agents/analyst → dialectical_framework-1.9.1/src/dialectical_framework/graph/repositories}/__init__.py +0 -0
  213. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/repositories/decision_repository.py +0 -0
  214. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/repositories/polarity_repository.py +0 -0
  215. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/repositories/schema_repository.py +0 -0
  216. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/repositories/statement_repository.py +0 -0
  217. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/repositories/transformation_repository.py +0 -0
  218. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/scope_context.py +0 -0
  219. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/verbatim_input_resolver.py +0 -0
  220. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/wheel_segment.py +0 -0
  221. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/graph/wheel_segment_polar_pair.py +0 -0
  222. {dialectical_framework-1.8.0/src/dialectical_framework/agents → dialectical_framework-1.9.1/src/dialectical_framework/protocols}/__init__.py +0 -0
  223. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/protocols/has_config.py +0 -0
  224. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/protocols/input_resolver.py +0 -0
  225. /dialectical_framework-1.8.0/src/dialectical_framework/__init__.py → /dialectical_framework-1.9.1/src/dialectical_framework/py.typed +0 -0
  226. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/utils/concurrency.py +0 -0
  227. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/utils/dc_replace.py +0 -0
  228. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/utils/decompose_probability_uniformly.py +0 -0
  229. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/utils/effect_logger.py +0 -0
  230. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/utils/order_transitions.py +0 -0
  231. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/utils/sequence_generation.py +0 -0
  232. {dialectical_framework-1.8.0 → dialectical_framework-1.9.1}/src/dialectical_framework/utils/thinking_compat.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dialectical-framework
3
- Version: 1.8.0
3
+ Version: 1.9.1
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
@@ -41,7 +41,7 @@ Description-Content-Type: text/markdown
41
41
 
42
42
  # Dialectical Framework
43
43
 
44
- **Make an LLM reason in oppositions, not averages.**
44
+ **Dialectical AI: Achieving Objectivity and Synthesis in LLM Reasoning via Structured Tension Graphs**
45
45
 
46
46
  Ask a model a hard question and it tends to collapse the tension into one confident answer — or hedge with a bland "on one hand… on the other." This framework does neither. For every thesis it generates a genuine antithesis, maps precisely where each side overreaches (T-, A-) and where it constructively balances the other (T+, A+), and drives the pair toward a **synthesis** — not a compromise, but a new quality that emerges from their circular causality and that neither pole held alone.
47
47
 
@@ -57,7 +57,9 @@ And the synthesis is *earned*, not asserted. Where "think step by step" leaves r
57
57
 
58
58
  ## How It Works
59
59
 
60
- 1. **Input** — text, URLs, or raw ideas from any domain
60
+ 1. **Input** — text or raw ideas from any domain (URLs, uploads and other sources
61
+ once you supply an [`InputResolver`](docs/graph.md#input-resolution) — the default
62
+ fetches nothing)
61
63
  2. **Analysis** — extract the theses, find each one's true antithesis, develop the four aspects (T+, T-, A+, A-) that say where each side helps and where it overreaches
62
64
  3. **Graph curation** — commit every insight as content-addressed, rule-validated nodes and edges — nothing is stored until it holds up
63
65
  4. **Exploration** — combine perspectives into Cycles, arrange them into Wheels, and trace the Transformations whose circular causality yields synthesis
@@ -82,6 +84,9 @@ An **agent** is the entry point — a thin LLM orchestrator that manages a conve
82
84
  - [Agents: Analyst, Explorer, Advisor](docs/agents.md) — the building blocks, their tools, and the UX to build around them
83
85
  - [Graph Data Model](docs/graph.md)
84
86
  - [Scoring & Metrics](docs/scoring.md)
87
+ - Runnable: [examples/advisor_chat.py](examples/advisor_chat.py) (console chat),
88
+ [notebooks/minds.ipynb](notebooks/minds.ipynb) and
89
+ [notebooks/seasons.ipynb](notebooks/seasons.ipynb) (building an app with `AppSpec`)
85
90
 
86
91
  ## Why a Reasoning Graph
87
92
 
@@ -129,24 +134,60 @@ Wherever the answer is a tension rather than a fact, this drops in as the reason
129
134
  Analyst + Explorer are the structure-forward "graph navigator" experience; the Advisor is a chat-only product over the same graph. See [docs/agents.md](docs/agents.md) for full specs, tool lists, and the UX to build around each.
130
135
 
131
136
  ```python
137
+ import asyncio
138
+ from contextlib import aclosing
139
+
132
140
  from dialectical_framework.dialectical_reasoning import DialecticalReasoning
133
141
  from dialectical_framework.settings import Settings
134
142
  from dialectical_framework.graph.nodes.case import Case
135
143
  from dialectical_framework.graph.scope_context import scope
136
144
  from dialectical_framework.agents.advisor.advisor import Advisor
145
+ from dialectical_framework.agents.stream_events import TextDelta
146
+
147
+
148
+ async def main():
149
+ # Initialize once
150
+ DialecticalReasoning.setup(Settings.from_env())
151
+
152
+ # A Case owns the scope id (sid); all graph writes are sid-scoped.
153
+ case = Case(); case.commit()
154
+
155
+ with scope(case.sid):
156
+ # `principal="human"` because a real person is on the other end: it is
157
+ # what lets a decision they confirm be recorded as THEIR confirmation.
158
+ # The default attests nobody — see docs/agents.md.
159
+ advisor = Advisor(
160
+ app_preamble="You are a systems thinking coach...", principal="human"
161
+ )
162
+ # `aclosing` because a host that stops MID-TURN must CLOSE the generator
163
+ # — that is what releases the provider connection and records the turn's
164
+ # seconds. Breaking on `ResponseComplete` needs none of it: that event is
165
+ # yielded after the turn's closing work. See docs/agents.md.
166
+ async with aclosing(
167
+ advisor.chat_stream("Analyze the tension between growth and sustainability")
168
+ ) as events:
169
+ async for event in events:
170
+ # ThinkingDelta, TextDelta, ToolStart, ToolResult, ResponseComplete
171
+ if isinstance(event, TextDelta):
172
+ print(event.text, end="", flush=True)
173
+
174
+ # Once, after the last turn: the Advisor weaves a decision's pathway off
175
+ # the turn, and this is where that finishes. See docs/agents.md.
176
+ await advisor.wait_for_deferred_work()
177
+
178
+
179
+ asyncio.run(main())
180
+ ```
137
181
 
138
- # Initialize once
139
- DialecticalReasoning.setup(Settings.from_env())
140
-
141
- # A Case owns the scope id (sid); all graph writes are sid-scoped.
142
- case = Case(); case.commit()
182
+ Runnable versions of the above:
143
183
 
144
- with scope(case.sid):
145
- advisor = Advisor(app_preamble="You are a systems thinking coach...")
146
- async for event in advisor.chat_stream("Analyze the tension between growth and sustainability"):
147
- # ThinkingDelta, TextDelta, ToolStart, ToolResult, ResponseComplete
148
- handle(event)
149
- ```
184
+ - **[examples/advisor_chat.py](examples/advisor_chat.py)** — a console chat, and the
185
+ smallest program in which all five host obligations are load-bearing (`poetry run
186
+ python examples/advisor_chat.py`).
187
+ - **[notebooks/minds.ipynb](notebooks/minds.ipynb)** — plugging your own domain in
188
+ with a single declarative `AppSpec`.
189
+ - **[notebooks/seasons.ipynb](notebooks/seasons.ipynb)** — one `AppSpec` across every
190
+ agent head (Analyst, Explorer, Advisor, and the counsel toggle).
150
191
 
151
192
  ## Setup
152
193
 
@@ -158,11 +199,29 @@ with scope(case.sid):
158
199
 
159
200
  ### Install
160
201
 
202
+ Into your own application:
203
+
204
+ ```bash
205
+ pip install dialectical-framework
206
+ ```
207
+
208
+ To work on the framework itself:
209
+
161
210
  ```bash
162
211
  poetry install
212
+ ```
213
+
214
+ Either way, configuration comes from the environment:
215
+
216
+ ```bash
163
217
  cp .env.example .env # then fill in the values (see .env.example for details)
164
218
  ```
165
219
 
220
+ `DIALEXITY_DEFAULT_MODEL` is the only variable the framework itself requires (plus
221
+ whatever credentials your provider's SDK reads). Everything else is commented out in
222
+ `.env.example`, where each commented value **is** the code default — so the graph
223
+ connection works as-is against Memgraph on `127.0.0.1:7687`.
224
+
166
225
  ### Run Tests
167
226
 
168
227
  ```bash
@@ -185,3 +244,4 @@ The methods for applying dialectical reasoning with AI are patented. The MIT
185
244
  License does not grant patent rights beyond a limited grant for use of this
186
245
  software as distributed — see [PATENTS](https://github.com/dialexity/dialectical-framework/blob/main/PATENTS) for the patent terms and
187
246
  [dialexity.com/patents](https://dialexity.com/patents) for the patent listing.
247
+
@@ -1,6 +1,6 @@
1
1
  # Dialectical Framework
2
2
 
3
- **Make an LLM reason in oppositions, not averages.**
3
+ **Dialectical AI: Achieving Objectivity and Synthesis in LLM Reasoning via Structured Tension Graphs**
4
4
 
5
5
  Ask a model a hard question and it tends to collapse the tension into one confident answer — or hedge with a bland "on one hand… on the other." This framework does neither. For every thesis it generates a genuine antithesis, maps precisely where each side overreaches (T-, A-) and where it constructively balances the other (T+, A+), and drives the pair toward a **synthesis** — not a compromise, but a new quality that emerges from their circular causality and that neither pole held alone.
6
6
 
@@ -16,7 +16,9 @@ And the synthesis is *earned*, not asserted. Where "think step by step" leaves r
16
16
 
17
17
  ## How It Works
18
18
 
19
- 1. **Input** — text, URLs, or raw ideas from any domain
19
+ 1. **Input** — text or raw ideas from any domain (URLs, uploads and other sources
20
+ once you supply an [`InputResolver`](docs/graph.md#input-resolution) — the default
21
+ fetches nothing)
20
22
  2. **Analysis** — extract the theses, find each one's true antithesis, develop the four aspects (T+, T-, A+, A-) that say where each side helps and where it overreaches
21
23
  3. **Graph curation** — commit every insight as content-addressed, rule-validated nodes and edges — nothing is stored until it holds up
22
24
  4. **Exploration** — combine perspectives into Cycles, arrange them into Wheels, and trace the Transformations whose circular causality yields synthesis
@@ -41,6 +43,9 @@ An **agent** is the entry point — a thin LLM orchestrator that manages a conve
41
43
  - [Agents: Analyst, Explorer, Advisor](docs/agents.md) — the building blocks, their tools, and the UX to build around them
42
44
  - [Graph Data Model](docs/graph.md)
43
45
  - [Scoring & Metrics](docs/scoring.md)
46
+ - Runnable: [examples/advisor_chat.py](examples/advisor_chat.py) (console chat),
47
+ [notebooks/minds.ipynb](notebooks/minds.ipynb) and
48
+ [notebooks/seasons.ipynb](notebooks/seasons.ipynb) (building an app with `AppSpec`)
44
49
 
45
50
  ## Why a Reasoning Graph
46
51
 
@@ -88,24 +93,60 @@ Wherever the answer is a tension rather than a fact, this drops in as the reason
88
93
  Analyst + Explorer are the structure-forward "graph navigator" experience; the Advisor is a chat-only product over the same graph. See [docs/agents.md](docs/agents.md) for full specs, tool lists, and the UX to build around each.
89
94
 
90
95
  ```python
96
+ import asyncio
97
+ from contextlib import aclosing
98
+
91
99
  from dialectical_framework.dialectical_reasoning import DialecticalReasoning
92
100
  from dialectical_framework.settings import Settings
93
101
  from dialectical_framework.graph.nodes.case import Case
94
102
  from dialectical_framework.graph.scope_context import scope
95
103
  from dialectical_framework.agents.advisor.advisor import Advisor
104
+ from dialectical_framework.agents.stream_events import TextDelta
105
+
106
+
107
+ async def main():
108
+ # Initialize once
109
+ DialecticalReasoning.setup(Settings.from_env())
110
+
111
+ # A Case owns the scope id (sid); all graph writes are sid-scoped.
112
+ case = Case(); case.commit()
113
+
114
+ with scope(case.sid):
115
+ # `principal="human"` because a real person is on the other end: it is
116
+ # what lets a decision they confirm be recorded as THEIR confirmation.
117
+ # The default attests nobody — see docs/agents.md.
118
+ advisor = Advisor(
119
+ app_preamble="You are a systems thinking coach...", principal="human"
120
+ )
121
+ # `aclosing` because a host that stops MID-TURN must CLOSE the generator
122
+ # — that is what releases the provider connection and records the turn's
123
+ # seconds. Breaking on `ResponseComplete` needs none of it: that event is
124
+ # yielded after the turn's closing work. See docs/agents.md.
125
+ async with aclosing(
126
+ advisor.chat_stream("Analyze the tension between growth and sustainability")
127
+ ) as events:
128
+ async for event in events:
129
+ # ThinkingDelta, TextDelta, ToolStart, ToolResult, ResponseComplete
130
+ if isinstance(event, TextDelta):
131
+ print(event.text, end="", flush=True)
132
+
133
+ # Once, after the last turn: the Advisor weaves a decision's pathway off
134
+ # the turn, and this is where that finishes. See docs/agents.md.
135
+ await advisor.wait_for_deferred_work()
136
+
137
+
138
+ asyncio.run(main())
139
+ ```
96
140
 
97
- # Initialize once
98
- DialecticalReasoning.setup(Settings.from_env())
99
-
100
- # A Case owns the scope id (sid); all graph writes are sid-scoped.
101
- case = Case(); case.commit()
141
+ Runnable versions of the above:
102
142
 
103
- with scope(case.sid):
104
- advisor = Advisor(app_preamble="You are a systems thinking coach...")
105
- async for event in advisor.chat_stream("Analyze the tension between growth and sustainability"):
106
- # ThinkingDelta, TextDelta, ToolStart, ToolResult, ResponseComplete
107
- handle(event)
108
- ```
143
+ - **[examples/advisor_chat.py](examples/advisor_chat.py)** — a console chat, and the
144
+ smallest program in which all five host obligations are load-bearing (`poetry run
145
+ python examples/advisor_chat.py`).
146
+ - **[notebooks/minds.ipynb](notebooks/minds.ipynb)** — plugging your own domain in
147
+ with a single declarative `AppSpec`.
148
+ - **[notebooks/seasons.ipynb](notebooks/seasons.ipynb)** — one `AppSpec` across every
149
+ agent head (Analyst, Explorer, Advisor, and the counsel toggle).
109
150
 
110
151
  ## Setup
111
152
 
@@ -117,11 +158,29 @@ with scope(case.sid):
117
158
 
118
159
  ### Install
119
160
 
161
+ Into your own application:
162
+
163
+ ```bash
164
+ pip install dialectical-framework
165
+ ```
166
+
167
+ To work on the framework itself:
168
+
120
169
  ```bash
121
170
  poetry install
171
+ ```
172
+
173
+ Either way, configuration comes from the environment:
174
+
175
+ ```bash
122
176
  cp .env.example .env # then fill in the values (see .env.example for details)
123
177
  ```
124
178
 
179
+ `DIALEXITY_DEFAULT_MODEL` is the only variable the framework itself requires (plus
180
+ whatever credentials your provider's SDK reads). Everything else is commented out in
181
+ `.env.example`, where each commented value **is** the code default — so the graph
182
+ connection works as-is against Memgraph on `127.0.0.1:7687`.
183
+
125
184
  ### Run Tests
126
185
 
127
186
  ```bash
@@ -143,4 +202,4 @@ The source code is licensed under the [MIT License](https://github.com/dialexity
143
202
  The methods for applying dialectical reasoning with AI are patented. The MIT
144
203
  License does not grant patent rights beyond a limited grant for use of this
145
204
  software as distributed — see [PATENTS](https://github.com/dialexity/dialectical-framework/blob/main/PATENTS) for the patent terms and
146
- [dialexity.com/patents](https://dialexity.com/patents) for the patent listing.
205
+ [dialexity.com/patents](https://dialexity.com/patents) for the patent listing.
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "dialectical-framework"
3
- version = "1.8.0"
3
+ version = "1.9.1"
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"