dialectical-framework 0.4.4__py3-none-any.whl

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 (84) hide show
  1. dialectical_framework/__init__.py +43 -0
  2. dialectical_framework/ai_dto/__init__.py +0 -0
  3. dialectical_framework/ai_dto/causal_cycle_assessment_dto.py +16 -0
  4. dialectical_framework/ai_dto/causal_cycle_dto.py +16 -0
  5. dialectical_framework/ai_dto/causal_cycles_deck_dto.py +11 -0
  6. dialectical_framework/ai_dto/dialectical_component_dto.py +16 -0
  7. dialectical_framework/ai_dto/dialectical_components_deck_dto.py +12 -0
  8. dialectical_framework/ai_dto/dto_mapper.py +103 -0
  9. dialectical_framework/ai_dto/reciprocal_solution_dto.py +24 -0
  10. dialectical_framework/analyst/__init__.py +1 -0
  11. dialectical_framework/analyst/audit/__init__.py +0 -0
  12. dialectical_framework/analyst/consultant.py +30 -0
  13. dialectical_framework/analyst/decorator_action_reflection.py +28 -0
  14. dialectical_framework/analyst/decorator_discrete_spiral.py +30 -0
  15. dialectical_framework/analyst/domain/__init__.py +0 -0
  16. dialectical_framework/analyst/domain/assessable_cycle.py +128 -0
  17. dialectical_framework/analyst/domain/cycle.py +133 -0
  18. dialectical_framework/analyst/domain/interpretation.py +16 -0
  19. dialectical_framework/analyst/domain/rationale.py +116 -0
  20. dialectical_framework/analyst/domain/spiral.py +47 -0
  21. dialectical_framework/analyst/domain/transformation.py +24 -0
  22. dialectical_framework/analyst/domain/transition.py +160 -0
  23. dialectical_framework/analyst/domain/transition_cell_to_cell.py +29 -0
  24. dialectical_framework/analyst/domain/transition_segment_to_segment.py +16 -0
  25. dialectical_framework/analyst/strategic_consultant.py +32 -0
  26. dialectical_framework/analyst/think_action_reflection.py +217 -0
  27. dialectical_framework/analyst/think_constructive_convergence.py +87 -0
  28. dialectical_framework/analyst/wheel_builder_transition_calculator.py +157 -0
  29. dialectical_framework/brain.py +81 -0
  30. dialectical_framework/dialectical_analysis.py +14 -0
  31. dialectical_framework/dialectical_component.py +111 -0
  32. dialectical_framework/dialectical_components_deck.py +48 -0
  33. dialectical_framework/dialectical_reasoning.py +105 -0
  34. dialectical_framework/directed_graph.py +419 -0
  35. dialectical_framework/enums/__init__.py +0 -0
  36. dialectical_framework/enums/causality_type.py +10 -0
  37. dialectical_framework/enums/di.py +11 -0
  38. dialectical_framework/enums/dialectical_reasoning_mode.py +9 -0
  39. dialectical_framework/enums/predicate.py +9 -0
  40. dialectical_framework/protocols/__init__.py +0 -0
  41. dialectical_framework/protocols/assessable.py +141 -0
  42. dialectical_framework/protocols/causality_sequencer.py +111 -0
  43. dialectical_framework/protocols/content_fidelity_evaluator.py +16 -0
  44. dialectical_framework/protocols/has_brain.py +18 -0
  45. dialectical_framework/protocols/has_config.py +18 -0
  46. dialectical_framework/protocols/ratable.py +79 -0
  47. dialectical_framework/protocols/reloadable.py +7 -0
  48. dialectical_framework/protocols/thesis_extractor.py +15 -0
  49. dialectical_framework/settings.py +77 -0
  50. dialectical_framework/synthesis.py +7 -0
  51. dialectical_framework/synthesist/__init__.py +1 -0
  52. dialectical_framework/synthesist/causality/__init__.py +0 -0
  53. dialectical_framework/synthesist/causality/causality_sequencer_balanced.py +398 -0
  54. dialectical_framework/synthesist/causality/causality_sequencer_desirable.py +55 -0
  55. dialectical_framework/synthesist/causality/causality_sequencer_feasible.py +55 -0
  56. dialectical_framework/synthesist/causality/causality_sequencer_realistic.py +56 -0
  57. dialectical_framework/synthesist/concepts/__init__.py +0 -0
  58. dialectical_framework/synthesist/concepts/thesis_extractor_basic.py +135 -0
  59. dialectical_framework/synthesist/polarity/__init__.py +0 -0
  60. dialectical_framework/synthesist/polarity/polarity_reasoner.py +700 -0
  61. dialectical_framework/synthesist/polarity/reason_blind.py +62 -0
  62. dialectical_framework/synthesist/polarity/reason_conversational.py +91 -0
  63. dialectical_framework/synthesist/polarity/reason_fast.py +177 -0
  64. dialectical_framework/synthesist/polarity/reason_fast_and_simple.py +52 -0
  65. dialectical_framework/synthesist/polarity/reason_fast_polarized_conflict.py +55 -0
  66. dialectical_framework/synthesist/reverse_engineer.py +401 -0
  67. dialectical_framework/synthesist/wheel_builder.py +337 -0
  68. dialectical_framework/utils/__init__.py +1 -0
  69. dialectical_framework/utils/dc_replace.py +42 -0
  70. dialectical_framework/utils/decompose_probability_uniformly.py +15 -0
  71. dialectical_framework/utils/extend_tpl.py +12 -0
  72. dialectical_framework/utils/gm.py +12 -0
  73. dialectical_framework/utils/is_async.py +13 -0
  74. dialectical_framework/utils/use_brain.py +80 -0
  75. dialectical_framework/validator/__init__.py +1 -0
  76. dialectical_framework/validator/basic_checks.py +75 -0
  77. dialectical_framework/validator/check.py +12 -0
  78. dialectical_framework/wheel.py +395 -0
  79. dialectical_framework/wheel_segment.py +203 -0
  80. dialectical_framework/wisdom_unit.py +185 -0
  81. dialectical_framework-0.4.4.dist-info/LICENSE +21 -0
  82. dialectical_framework-0.4.4.dist-info/METADATA +123 -0
  83. dialectical_framework-0.4.4.dist-info/RECORD +84 -0
  84. dialectical_framework-0.4.4.dist-info/WHEEL +4 -0
@@ -0,0 +1,185 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from pydantic import Field
6
+
7
+ from dialectical_framework.protocols.assessable import Assessable
8
+ from dialectical_framework.dialectical_component import DialecticalComponent
9
+ from dialectical_framework.enums.dialectical_reasoning_mode import \
10
+ DialecticalReasoningMode
11
+ from dialectical_framework.synthesis import Synthesis
12
+ from dialectical_framework.wheel_segment import WheelSegment
13
+
14
+ if TYPE_CHECKING:
15
+ from dialectical_framework.analyst.domain.transformation import \
16
+ Transformation
17
+
18
+ ALIAS_A = "A"
19
+ ALIAS_A_PLUS = "A+"
20
+ ALIAS_A_MINUS = "A-"
21
+
22
+
23
+ class WisdomUnit(WheelSegment):
24
+ """
25
+ A basic "molecule" in the dialectical framework, which makes up a diagonal relationship (complementary opposing pieces of the wheel).
26
+ It's very restrictive to avoid any additional fields.
27
+ However, it's flexible that the fields can be set by the field name or by alias.
28
+ """
29
+
30
+ reasoning_mode: DialecticalReasoningMode = Field(
31
+ default_factory=lambda: DialecticalReasoningMode.GENERAL_CONCEPTS,
32
+ description="The type of dialectical reasoning strategy used to construct this wisdom unit (e.g., 'General Concepts' = default, 'Problem/Solution', 'Action Plan/Steps')",
33
+ )
34
+
35
+ a_plus: DialecticalComponent | None = Field(
36
+ default=None,
37
+ description="The positive side of the antithesis: A+",
38
+ alias=ALIAS_A_PLUS,
39
+ )
40
+
41
+ a: DialecticalComponent | None = Field(
42
+ default=None, description="The antithesis: A", alias=ALIAS_A
43
+ )
44
+
45
+ a_minus: DialecticalComponent | None = Field(
46
+ default=None,
47
+ description="The negative side of the antithesis: A-",
48
+ alias=ALIAS_A_MINUS,
49
+ )
50
+
51
+ synthesis: Synthesis | None = Field(
52
+ default=None, description="The synthesis of the wisdom unit."
53
+ )
54
+
55
+ transformation: Transformation | None = Field(
56
+ default=None, description="The transformative cycle."
57
+ )
58
+
59
+ def _get_sub_assessables(self) -> list[Assessable]:
60
+ result = super()._get_sub_assessables()
61
+ if self.a:
62
+ result.append(self.a)
63
+ if self.a_minus:
64
+ result.append(self.a_minus)
65
+ if self.a_plus:
66
+ result.append(self.a_plus)
67
+ if self.synthesis:
68
+ result.append(self.synthesis)
69
+ if self.transformation:
70
+ result.append(self.transformation)
71
+ return result
72
+
73
+ def _calculate_contextual_fidelity_for_sub_elements_excl_rationales(self, *, mutate: bool = True) -> list[float]:
74
+ """
75
+ Calculates the context fidelity score for this wisdom unit as the geometric mean
76
+ of its constituent DialecticalComponent's scores, including those from its synthesis,
77
+ and weighted rationale opinions.
78
+ Components with a context_fidelity_score of 0.0 or None are excluded from the calculation.
79
+ """
80
+ parts = []
81
+
82
+ # Collect from dialectical components
83
+ for f in self.field_to_alias.keys():
84
+ dc = getattr(self, f)
85
+ if isinstance(dc, DialecticalComponent):
86
+ fidelity = dc.calculate_contextual_fidelity(mutate=mutate)
87
+ parts.append(fidelity)
88
+
89
+ # Collect scores from Synthesis (S+, S-) components if present
90
+ if self.synthesis is not None:
91
+ # Synthesis is also a WheelSegment, so it has its own components (T/T+ equivalent to S+/S-)
92
+ for f in self.synthesis.field_to_alias.keys():
93
+ dc = getattr(self.synthesis, f)
94
+ if isinstance(dc, DialecticalComponent):
95
+ fidelity = dc.calculate_contextual_fidelity(mutate=mutate)
96
+ parts.append(fidelity)
97
+
98
+ # Collect fidelity from transformation
99
+ if self.transformation is not None:
100
+ # We don't take transitions, we take the aggregated thing on purpose
101
+ fidelity = self.transformation.calculate_contextual_fidelity(mutate=mutate)
102
+ parts.append(fidelity)
103
+
104
+ return parts
105
+
106
+ def calculate_probability(self, *, mutate: bool = True) -> float | None:
107
+ """
108
+ Calculate probability from the transformation cycle.
109
+ This represents the structural feasibility of the dialectical transformation,
110
+ not expert opinions about it (those influence contextual_fidelity).
111
+
112
+ IMPORTANT: we don't use opinion probabilities here, because only the structural relationship matters.
113
+ """
114
+ if self.transformation is None:
115
+ probability = None
116
+ else:
117
+ probability = self.transformation.calculate_probability(mutate=mutate)
118
+
119
+ if mutate:
120
+ self.probability = probability
121
+ return probability
122
+
123
+ def extract_segment_t(self) -> WheelSegment:
124
+ # TODO: maybe it's enough to return self, because the interface is still WheelSegment?
125
+ return WheelSegment(
126
+ t=self.t,
127
+ t_plus=self.t_plus,
128
+ t_minus=self.t_minus,
129
+ )
130
+
131
+ def extract_segment_a(self) -> WheelSegment:
132
+ return WheelSegment(
133
+ t=self.a,
134
+ t_plus=self.a_plus,
135
+ t_minus=self.a_minus,
136
+ )
137
+
138
+ def swap_segments(self, mutate: bool = True) -> WisdomUnit:
139
+ """
140
+ Swap thesis (T, T+, T−) and antithesis (A, A+, A−) components.
141
+
142
+ Parameters
143
+ ----------
144
+ mutate : bool, default True
145
+ • True – perform the swap in-place and return *self*
146
+ • False – leave *self* unchanged and return a **new** `WisdomUnit`
147
+ whose positions are swapped.
148
+
149
+ Returns
150
+ -------
151
+ WisdomUnit
152
+ The mutated instance (if ``mutate``) or the newly created,
153
+ swapped copy.
154
+ """
155
+ # Choose the object we will modify.
156
+ target: WisdomUnit = self if mutate else self.model_copy()
157
+
158
+ # Swap each corresponding pair.
159
+ target.t, target.a = target.a, target.t
160
+ target.t_plus, target.a_plus = target.a_plus, target.t_plus
161
+ target.t_minus, target.a_minus = target.a_minus, target.t_minus
162
+
163
+ return target
164
+
165
+ def pretty(self) -> str:
166
+ ws_formatted = super().pretty()
167
+ if self.synthesis and self.synthesis.t_plus:
168
+ return ws_formatted + f"\nSynthesis: {self.synthesis.pretty()}"
169
+ else:
170
+ return ws_formatted
171
+
172
+ def add_indexes_to_aliases(self, human_friendly_index: int):
173
+ super().add_indexes_to_aliases(human_friendly_index)
174
+ if self.synthesis:
175
+ self.synthesis.add_indexes_to_aliases(human_friendly_index)
176
+
177
+ def set_dialectical_component_as_copy_from_another_segment(
178
+ self, wheel_segment: WheelSegment, dc_field: str
179
+ ):
180
+ if not hasattr(wheel_segment, dc_field):
181
+ setattr(self, dc_field, None)
182
+ return
183
+
184
+ c: DialecticalComponent | None = getattr(wheel_segment, dc_field)
185
+ setattr(self, dc_field, c.model_copy() if c else None)
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Dialexity
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,123 @@
1
+ Metadata-Version: 2.3
2
+ Name: dialectical-framework
3
+ Version: 0.4.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
+ License: MIT
6
+ Keywords: dialectics,reasoning,ai,philosophy,logic
7
+ Author: Evaldas Taroza
8
+ Author-email: evaldas@dialexity.com
9
+ Requires-Python: >=3.11,<4.0
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
18
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
+ Requires-Dist: dependency-injector (>=4.48.1,<5.0.0)
20
+ Requires-Dist: mirascope[anthropic,azure,bedrock,langfuse,litellm,openai,tenacity] (>=1.25.6,<2.0.0)
21
+ Requires-Dist: python-dotenv (>=1.1.1,<2.0.0)
22
+ Requires-Dist: tabulate (>=0.9.0,<0.10.0)
23
+ Project-URL: Homepage, https://github.com/dialexity/dialectical-framework
24
+ Project-URL: Repository, https://github.com/dialexity/dialectical-framework
25
+ Description-Content-Type: text/markdown
26
+
27
+ # Dialectical Framework
28
+ Turn stories, strategies, or systems into insight. Auto-generate Dialectical Wheels (DWs) from any text to reveal blind spots, surface polarities, and trace dynamic paths toward synthesis.
29
+ DWs are semantic maps that expose tension, transformation, and coherence within a system—whether narrative, ethical, organizational, or technological.
30
+
31
+ ## What It Does:
32
+ - Converts natural language into Dialectical Wheels (DWs)
33
+ - Highlights thesis–antithesis tensions and feedback loops
34
+ - Reveals overlooked leverage points and systemic blind-spots
35
+ - Maps decisions, ethics, or mindsets across dialectical structures
36
+
37
+ ## Built for:
38
+ - Systems optimization
39
+ - Wisdom mining & decision diagnostics
40
+ - Augmented intelligence / narrative AI
41
+ - Ethical modeling & polarity navigation
42
+
43
+ ## Useful for:
44
+ - Consultants, coaches, facilitators, and system designers
45
+ - Storytellers, educators, and regenerative thinkers
46
+ - Strategists, SDD/BIMA practitioners, values-driven innovators
47
+
48
+ ## Learn more:
49
+ - [Dialectical Wheels Overview](https://dialexity.com/blog/dialectical-wheels-for-systems-optimization/)
50
+ - [Wisdom Mining & Tokenomics](https://dialexity.com/blog/dialectical-token-dlt/)
51
+ - [Dialectical Ethics](https://dialexity.com/blog/dialectical-ethics/)
52
+ - [Earlier Work](https://dialexity.com/blog/wp-content/uploads/2023/11/Moral-Wisdom-from-Ontology-1.pdf)
53
+
54
+ # Development
55
+
56
+ ## Contributors Welcome!
57
+
58
+ We invite developers, philosophers, cognitive scientists, and regenerative ecosystem builders to co-create with us.
59
+
60
+ ## Setup
61
+
62
+ Behind the scenes we heavily rely on [Mirascope](https://mirascope.com/)
63
+
64
+ ## Environment Variables
65
+
66
+ | Variable Name | Description | Example Value |
67
+ |----------------------------------|--------------------------------------|---------------|
68
+ | DIALEXITY_DEFAULT_MODEL | Default model name for the framework | gpt-4 |
69
+ | DIALEXITY_DEFAULT_MODEL_PROVIDER | Model provider (required) | openai |
70
+
71
+ You can store these in a `.env` file or export them in your environment.
72
+
73
+ These will specify the default "brain" for your reasoning.
74
+
75
+ ## Architecture
76
+
77
+ At the core of the dialectical framework is a dialectical wheel. It is a fancy semantic graph where nodes are statements or concepts and edges are relationships such as "opposite of," "complementary to," etc. To make the graph more readable, it's depicted as a 2D wheel.
78
+
79
+ | Simple | More Complicated |
80
+ |-----------------------------------------------------|------------------------------------------------------|
81
+ | ![Dialectical Wheel Diagram](docs/wheel-scheme.png) | ![Dialectical Wheel Diagram](docs/wheel-scheme2.png) |
82
+
83
+ The main architectural parts are:
84
+ - Wheel
85
+ - Wheel Segment
86
+ - Wisdom Unit
87
+ - Dialectical Component
88
+ - Transition
89
+
90
+
91
+ **Wheel** is composed of segments. Think of a dialectical wheel as a pizza, a segment is a slice of pizza. In the simplest case it represents some thesis (a statement, a concept, an action, a thought, an idea, etc.). A thesis can have positive and negative things related to it. Hence, a segment of a wheel is composed of these dialectical components: a thesis (T), positive side of that thesis (T+) and a negative side of that thesis (T-). In more detailed wheels, a segment could have more than 3 layers.
92
+
93
+ If we take two opposite segments, we get the basic (and the most important) structure: **Wisdom Unit** (half-wheel, verified by diagonal constraints: control statements). It's composed of:
94
+
95
+ | Dialectical Component | Description |
96
+ |-----------------------|----------------------------------|
97
+ | T- | Negative side of the main thesis |
98
+ | T | The thesis |
99
+ | T+ | Positive side of the main thesis |
100
+ | A+ | Positive side of the antithesis |
101
+ | A | The antithesis |
102
+ | A- | Negative side of the antithesis |
103
+
104
+ In a Wheel, segments next to each other are related. We wrap that relationship into a **Transition**. Practically, a Transition is a recipe for how to go from one segment to another in a way that we approach synthesis. Essentially, it shows how the negative side of a given thesis (Tn-) converts into the positive side of the following thesis (T(n+1)+). If we were to look at a wheel as a sliced pizza, the lines that separate the slices would be Transitions.
105
+
106
+ If we derive Transitions in a Wheel with only 2 segments (aka half-wheel), they are symmetrical and represent a special kind of Wisdom Unit, we call it Action (Ac) and Reflection (Re). As any Wisdom Unit, Action and Reflection must be verified by diagonal constraints as well.
107
+
108
+ ## Prototyping & App Ideas
109
+
110
+ ### Simple Win-Win Finder
111
+ ![Win-Win Finder](./docs/b2c-mvp.png)
112
+
113
+ ### Eye-Opener
114
+ Working beta product [Eye Opener](https://app.dialexity.com/aiapps/eye-opener). It's a tool that analyzes text and generates a visual map of its underlying structure and hidden assumptions. The core feature is a graph-like interface we call the Dialectical Wheel, that shows the delayed dialectical responses ("blind spots").
115
+
116
+ ### Argument Inspector
117
+ Working beta product [Argument Inspector](https://dialexity.com/start). Useful for analysts and mediators/facilitators to deeper understand the case.
118
+
119
+ ### Atlas of Feelings
120
+ [The Atlas of Feelings](https://dialexity.com/blog/atlas-of-feelings-character-qualities/) is the Plutchik's wheel converted into the „vortex“ model, whereby the most gentle emotions are inside of the wheel, whereas the rudest are outside. As everything is interconnected with dialectical rules, we can understand human nature better.
121
+
122
+ ### "Spiral" Lila game
123
+ In [this blog post](https://dialexity.com/blog/spiral-lila-with-character-traits/) we explain how the ancient Lila (Leela) game has been elevated to a new level.
@@ -0,0 +1,84 @@
1
+ dialectical_framework/__init__.py,sha256=7lLfeZlmh9fPD2QHMPp4e7yKw7Xo-nE6OA1t5V5YXYE,1763
2
+ dialectical_framework/ai_dto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ dialectical_framework/ai_dto/causal_cycle_assessment_dto.py,sha256=6Y7Yjrrvk6B7EyCLWx-ueNeC_9hIOlU4kIIjY4cECtM,514
4
+ dialectical_framework/ai_dto/causal_cycle_dto.py,sha256=lCGrKUk-Fg_6rsc5RWcaT26ZmvchU-Yw03u8ta8sjWQ,486
5
+ dialectical_framework/ai_dto/causal_cycles_deck_dto.py,sha256=PU2v5U4WUJJbAxrOHTh4X0o3YOkzcv47bIr3vM2X_3w,356
6
+ dialectical_framework/ai_dto/dialectical_component_dto.py,sha256=Fa44bFdLITNSfkGT6CRwkCPgTdkCMs4qnJqvg9iZg9w,510
7
+ dialectical_framework/ai_dto/dialectical_components_deck_dto.py,sha256=IzWohRcfnpFKYbnXK_BCY85aDua1K_XgcwBvp2GErH4,474
8
+ dialectical_framework/ai_dto/dto_mapper.py,sha256=qG2iNh1PU_cHc82cOcasYpucmN4JS7yO6-lizjvv7BI,3661
9
+ dialectical_framework/ai_dto/reciprocal_solution_dto.py,sha256=0eVHr-iHmjPpc9_csE93nz5dYgcvILvxlwK8KHBelR4,892
10
+ dialectical_framework/analyst/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
11
+ dialectical_framework/analyst/audit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ dialectical_framework/analyst/consultant.py,sha256=5Ra2qw84kOgsO-o6OWjK1yUzfacXvB60cC35SBAY3Bw,862
13
+ dialectical_framework/analyst/decorator_action_reflection.py,sha256=ql99tLWDKoEZ1idBLxn64g1-XLhROFG4Srb_1YdstME,1123
14
+ dialectical_framework/analyst/decorator_discrete_spiral.py,sha256=UZZRENaaUdD_pfgcwLS19T1utN1_pJekZMt4ZkNr3gQ,1232
15
+ dialectical_framework/analyst/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ dialectical_framework/analyst/domain/assessable_cycle.py,sha256=vWIlkx9LePDhzHKz4wRsvit2fxD09U0YDHkBO1I5cQ8,4901
17
+ dialectical_framework/analyst/domain/cycle.py,sha256=hgftf437hCOaVUgV__t38ilKrGKdjafX9_1DGphM16c,4798
18
+ dialectical_framework/analyst/domain/interpretation.py,sha256=UoDQ8ThkHQHy9HC0q95VpPqSfDGN441ofqLqbIvK9Ig,539
19
+ dialectical_framework/analyst/domain/rationale.py,sha256=3gJ_aUNZyh7HpRWchb0ZK1cKnVM5NJqRgUDWcOb6rDQ,4965
20
+ dialectical_framework/analyst/domain/spiral.py,sha256=950jLteX1LDu-6mdS-i04tGBmIQA220PG7FFOxzXIBY,1589
21
+ dialectical_framework/analyst/domain/transformation.py,sha256=FZcqyJb9b5YT7Jt_aZ77r25RQzR2mRg31keI9p3N4QA,827
22
+ dialectical_framework/analyst/domain/transition.py,sha256=85p6ul_F2_KoG631t0v7vnb1qb849DOT9CgLxjCbYWo,6119
23
+ dialectical_framework/analyst/domain/transition_cell_to_cell.py,sha256=Y14jcccoQqhQm9-m7HUYTZIdeZmlghHQy8ww3VPvhks,931
24
+ dialectical_framework/analyst/domain/transition_segment_to_segment.py,sha256=gPoYM3Ev5vF4UWpLhCZtV92YTfFcpmp-aYDsSdi8w5A,560
25
+ dialectical_framework/analyst/strategic_consultant.py,sha256=Iz48nTbPYckZYWc7PSc0zRwDVuCMqo_cbBxiU7ez0_U,1000
26
+ dialectical_framework/analyst/think_action_reflection.py,sha256=AWHD0kSiyPpH_r2H2_YZgmYNLQRUvvGyqbocu4JgLYQ,8828
27
+ dialectical_framework/analyst/think_constructive_convergence.py,sha256=83-LvaxM3N7DZpfVLonazCVi5URtaxnAXajigjHaIro,3940
28
+ dialectical_framework/analyst/wheel_builder_transition_calculator.py,sha256=C3ejfFNYiuy5tYmcU7mvDQab-PTrwuawZqo5nd1rYFI,6652
29
+ dialectical_framework/brain.py,sha256=C4zFnZjOrvU1-v-rNHcj33cDQq4ks7p1DSC_llGEh5w,3454
30
+ dialectical_framework/dialectical_analysis.py,sha256=bTKzAQYtvsrC1f3OGMh-PYBxr4YHe9qFPKZ4WrsBZw0,341
31
+ dialectical_framework/dialectical_component.py,sha256=itejXLuyNlQFl_gs0YL8TFOd5V4-qL6qckRL1PqOPJI,4276
32
+ dialectical_framework/dialectical_components_deck.py,sha256=Jr0ibukWDx8JQPmo5ang9tKPvzW-rVkq8-igTOZlC9s,1876
33
+ dialectical_framework/dialectical_reasoning.py,sha256=yc_ZsdCy2-_ciisdN5aATZ_WVy35wYbUaGwVal4BUVw,3904
34
+ dialectical_framework/directed_graph.py,sha256=4OM_Jiy9etT1iwoSelH8_EcyXDlE2uNjTBhCtH6IAvM,17753
35
+ dialectical_framework/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
+ dialectical_framework/enums/causality_type.py,sha256=LZJA7keU2ucgTR-ec35lUsp3-zJ7JX0a39tnZNvJWPY,200
37
+ dialectical_framework/enums/di.py,sha256=vzMmsXhENEkVmw_hqKtNgxr35bF-gOoQo5aDRKk-8_M,296
38
+ dialectical_framework/enums/dialectical_reasoning_mode.py,sha256=NVvTaYrfpsIfwbI3XREQvRJc5zyaE5Z6CTojtDvEoio,225
39
+ dialectical_framework/enums/predicate.py,sha256=iFMxhvyhOy5v3HWF3Ntweg_eUfdDjbeg88NoQd6Ks9g,210
40
+ dialectical_framework/protocols/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
+ dialectical_framework/protocols/assessable.py,sha256=uXSQxaYETekqUnOk5NIwk4EEcIRNMokH_zMfrI5o4MY,5476
42
+ dialectical_framework/protocols/causality_sequencer.py,sha256=yoPcmYklMAGHXnGoRM_NN1oW-2uKVWnHpeoZoI7h0D4,4369
43
+ dialectical_framework/protocols/content_fidelity_evaluator.py,sha256=_XEeUUdUk5UFbpiSzmfg4JLwN8Wz30wcJHy0KifnbSk,577
44
+ dialectical_framework/protocols/has_brain.py,sha256=Ed_reh4k6y9WHKeZF-pzyz_au3_lYQSlNk8xp7EG3B8,397
45
+ dialectical_framework/protocols/has_config.py,sha256=BSDtIFBtHdgVkitONN_JBDS1npHdEqPA_0huNIaODZ4,435
46
+ dialectical_framework/protocols/ratable.py,sha256=MqxXylUfBnpWd729VtuQTpOop1Qtu7FbC5StdZBH4xI,3231
47
+ dialectical_framework/protocols/reloadable.py,sha256=Rxg98PJa-Iir30LC96Ivsbmdy8zm2hWj8LnntNABr2Q,149
48
+ dialectical_framework/protocols/thesis_extractor.py,sha256=Ho4B4SGn8vJ8j8HO9t2i1gMzxre7jWG071Yoys6CgXY,517
49
+ dialectical_framework/settings.py,sha256=i6eSLX3L_h9ZZCJh82phQ-Fh46Yt_KXilHwph85zADY,2821
50
+ dialectical_framework/synthesis.py,sha256=u1tSwrVobraIm5k2oAEd2r7jWGpMWtJ8LMMe2ZwyWPY,140
51
+ dialectical_framework/synthesist/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
52
+ dialectical_framework/synthesist/causality/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ dialectical_framework/synthesist/causality/causality_sequencer_balanced.py,sha256=UNtC63P-dqotqajeM2zRoqDE1L_AFMnHjFGXHw7cuyI,17821
54
+ dialectical_framework/synthesist/causality/causality_sequencer_desirable.py,sha256=y0fZdiufhnLJBaWCCeuvwDDz_QqjeyLhUCTveTCF9pk,2485
55
+ dialectical_framework/synthesist/causality/causality_sequencer_feasible.py,sha256=GXMhKxzFHwcw2pUOmskW0soiYHbfzG1-oA5ck-ZxQuQ,2486
56
+ dialectical_framework/synthesist/causality/causality_sequencer_realistic.py,sha256=_Zn64vqGaTjnsFd79HumGwJ2e-jQOFqRcODKKTgXxDQ,2473
57
+ dialectical_framework/synthesist/concepts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
+ dialectical_framework/synthesist/concepts/thesis_extractor_basic.py,sha256=jxZFdUTwMbDPfZeZmLQlyNNDT8khtdrFa4rFvCGKMVg,5493
59
+ dialectical_framework/synthesist/polarity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
+ dialectical_framework/synthesist/polarity/polarity_reasoner.py,sha256=4NLol_gWNGP9N_DZddYAcFGjiImDNH1DSUIsUXftqXY,31884
61
+ dialectical_framework/synthesist/polarity/reason_blind.py,sha256=Ay0ORM9igUIoUGK1C3ktXsrVRb-vf07VVnT_79yJkHE,2030
62
+ dialectical_framework/synthesist/polarity/reason_conversational.py,sha256=jFyWG7DQR4Tx2BgQ47-ZmtUWGpTVRLKaXI8jv_gX5AY,2816
63
+ dialectical_framework/synthesist/polarity/reason_fast.py,sha256=m7yFq0DstquUFE6WdVPu7K5oz1BMP3IZNmNcRy1Ci4Q,7934
64
+ dialectical_framework/synthesist/polarity/reason_fast_and_simple.py,sha256=X1tAH6hjQe6z2znaXCYoVONGN8jcw1EoECaqiW_XJP0,2241
65
+ dialectical_framework/synthesist/polarity/reason_fast_polarized_conflict.py,sha256=mLTN7IfQ4qQYPyID4fMOw0jKAMa4IEm8Bxx6Ukntoxg,2236
66
+ dialectical_framework/synthesist/reverse_engineer.py,sha256=-WVhCvx5eiVJAW9zjVJzGLvj5dezOUKGUzjTNDHrvfk,15799
67
+ dialectical_framework/synthesist/wheel_builder.py,sha256=-drSkbAaLNiFOa1MM5z_7_AzwSLlqhWBEsTJo-nI8J0,13494
68
+ dialectical_framework/utils/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
69
+ dialectical_framework/utils/dc_replace.py,sha256=IstdBlkJIeymcMcahGixrs10kTpm07M6vlL-6ISAr7Q,1730
70
+ dialectical_framework/utils/decompose_probability_uniformly.py,sha256=Da57nb2_66bqaOmh7F6JVDwQYvGx_PWlzuhwUZuthnU,490
71
+ dialectical_framework/utils/extend_tpl.py,sha256=SsnBiunAFlpAfgY536YkHl5CD8kD3DqpQzIf-Wb4GuM,296
72
+ dialectical_framework/utils/gm.py,sha256=eokGwQYCTkehEpvt78CjW5JA6l3MDsikV_CzQUp-TOs,473
73
+ dialectical_framework/utils/is_async.py,sha256=cDcYDy_Xd0Pla2HnHCBZZqUOytG0Rx1kSfEZ0hZAskI,338
74
+ dialectical_framework/utils/use_brain.py,sha256=v1bDy0b56Pw0kJLx6G4lWvZMGIrhlFwLZiEEEoQGGfk,3269
75
+ dialectical_framework/validator/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
76
+ dialectical_framework/validator/basic_checks.py,sha256=jLo3vWi6g7obMM-5vkIZqxi469cYMgbjJCUpzi48rYQ,2740
77
+ dialectical_framework/validator/check.py,sha256=hzcfdCfa3WVLrtMyj2Ghuk80jg9kuipQjWFhiTV3acI,382
78
+ dialectical_framework/wheel.py,sha256=0kAQ1_Ozru43DPWiXPipUN0S0_sZh58edSA9iqwQYBY,15689
79
+ dialectical_framework/wheel_segment.py,sha256=aJFyi1_uZd7IKnnkrShy5LZVFVlCNfvOjw5yRYAfYUw,7086
80
+ dialectical_framework/wisdom_unit.py,sha256=h6KQdh_G9CYbCi2lwhiV2YiP-mCFc9dLPn--e2peZZg,6964
81
+ dialectical_framework-0.4.4.dist-info/LICENSE,sha256=F4XQYrUdTugbGBdh0_PS1XmwEOAOUPnFokoKuukKDp4,1066
82
+ dialectical_framework-0.4.4.dist-info/METADATA,sha256=xOIOfVGKESHZvgT86mA6AzNVOqx_I1qbruwHbOakMXg,7421
83
+ dialectical_framework-0.4.4.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
84
+ dialectical_framework-0.4.4.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 2.1.3
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any