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.
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/PKG-INFO +1 -1
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/pyproject.toml +1 -1
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/skills/build_wheels.py +14 -11
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/get_schema.py +2 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/mixins/incremental_build_mixin.py +24 -3
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/transformation.py +2 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/wheel.py +11 -4
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/perspective_repository.py +1 -1
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/polarity_repository.py +2 -2
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/statement_repository.py +2 -2
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/LICENSE +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/README.md +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/agent_context.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/analyst.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/anchor_theses.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/edit_perspective.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/expand_polarities.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/find_polarities.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/introduce_polarity.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/skills/surface_theses.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/system_prompts.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/tools/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/tools/create_dx_input.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/analyst/tools/place_statement.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/apps.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/conversation_facilitator.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/execution_report.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/explorer.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/skills/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/skills/explore_transformations.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/skills/generate_synthesis.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/system_prompts.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/tools/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/tools/create_nexus.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/tools/expand_nexus.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/tools/generate_synthesis.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/explorer/tools/present_exploration.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/add_input.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/discard.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/inspect_node.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/present_analysis.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/orchestrator/tools/query_graph.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/reasonable_concern.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/stream_events.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/ac_re_taxonomy.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/action_extraction.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/ai_dto/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/ai_dto/statement_dto.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/ai_dto/statements_deck_dto.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/antithesis_classification.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/antithesis_extraction.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/aspect_classification.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/aspect_generation.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_estimator.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_estimator_balanced.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_estimator_criteria.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_estimator_desirable.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_estimator_feasible.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_estimator_realistic.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/causality_normalizer.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality/estimator_resolver.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/causality_estimation.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/control_statements_check.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/create_nexus.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/diagonal_oppositions_check.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/display_text_edit.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/expand_nexus.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/perspective_combination.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/perspective_validation.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/positive_ac_re_apex_derivation.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/statement_classification.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/statement_deduplication.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/statement_placement.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/synthesis_generation.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/thesis_extraction.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/transformation_audit.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/concerns/transformation_generation.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/dialectical_reasoning.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/enums/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/enums/causality_preset.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/enums/di.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/events/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/events/graph_event.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/events/graph_event_bus.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/exceptions/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/exceptions/node_errors.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/exceptions/resolver_errors.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/composite_input_resolver.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/dialexity_input_resolver.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/estimation_manager.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/mixins/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/mixins/intent_mixin.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/mixins/persistable_mixin.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/assessable_entity.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/base_node.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/case.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/cycle.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/estimation.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/ideas.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/input.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/nexus.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/perspective.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/polarity.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/rationale.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/statement.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/synthesis.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/nodes/transition.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationship_manager.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/action_reflection_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/belongs_to_cycle_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/belongs_to_nexus_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/changed_to_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/contradiction_of_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/critiques_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/distilled_to_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/estimates_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/explains_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/has_input_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/has_statement_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/has_wheel_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/immutable_structure.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/is_source_of_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/is_target_of_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/negative_side_of_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/opposite_direction_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/opposite_of_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/polarity_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/positive_side_of_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/provides_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/relationships/synthesis_of_relationship.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/case_repository.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/cycle_repository.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/input_repository.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/nexus_repository.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/node_repository.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/schema_repository.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/transformation_repository.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/repositories/wheel_repository.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/scope_context.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/verbatim_input_resolver.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/wheel_segment.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/graph/wheel_segment_polar_pair.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/protocols/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/protocols/has_config.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/protocols/input_resolver.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/settings.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/__init__.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/bedrock_provider.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/concurrency.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/dc_replace.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/decompose_probability_uniformly.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/edge_context.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/effect_logger.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/order_transitions.py +0 -0
- {dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/utils/sequence_generation.py +0 -0
- {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
|
+
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
|
+
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
|
|
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
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
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,
|
|
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,
|
|
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
|
|
211
|
-
|
|
212
|
-
|
|
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
|
|
|
@@ -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)
|
|
File without changes
|
|
File without changes
|
{dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/agents/apps.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/enums/di.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dialectical_framework-1.2.3 → dialectical_framework-1.2.5}/src/dialectical_framework/settings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|