arvis 0.1.0a12__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.
- arvis/__init__.py +24 -0
- arvis/action/__init__.py +13 -0
- arvis/action/action_context.py +18 -0
- arvis/action/action_decision.py +26 -0
- arvis/action/action_evaluator.py +97 -0
- arvis/action/action_mapper.py +47 -0
- arvis/action/action_mode.py +17 -0
- arvis/action/action_policy.py +61 -0
- arvis/action/action_resolver.py +34 -0
- arvis/action/action_template.py +28 -0
- arvis/adapters/__init__.py +10 -0
- arvis/adapters/ir/__init__.py +0 -0
- arvis/adapters/ir/adaptive_adapter.py +20 -0
- arvis/adapters/ir/cognitive_ir_builder.py +50 -0
- arvis/adapters/ir/decision_adapter.py +154 -0
- arvis/adapters/ir/gate_adapter.py +86 -0
- arvis/adapters/ir/projection_adapter.py +30 -0
- arvis/adapters/ir/stability_adapter.py +24 -0
- arvis/adapters/ir/state_adapter.py +202 -0
- arvis/adapters/ir/validity_adapter.py +25 -0
- arvis/adapters/kernel/__init__.py +18 -0
- arvis/adapters/kernel/canonical_to_event.py +26 -0
- arvis/adapters/kernel/event_to_signal.py +23 -0
- arvis/adapters/kernel/kernel_adapter.py +38 -0
- arvis/adapters/kernel/mappers/__init__.py +0 -0
- arvis/adapters/kernel/mappers/ir_to_canonical.py +38 -0
- arvis/adapters/kernel/rules/__init__.py +23 -0
- arvis/adapters/kernel/rules/base_rule.py +21 -0
- arvis/adapters/kernel/rules/decision_rules.py +45 -0
- arvis/adapters/kernel/rules/fallback_rules.py +22 -0
- arvis/adapters/kernel/rules/gate_rules.py +38 -0
- arvis/adapters/kernel/rules/state_rules.py +36 -0
- arvis/adapters/kernel/signals/__init__.py +0 -0
- arvis/adapters/kernel/signals/signal_factory.py +122 -0
- arvis/adapters/kernel/signals/signal_semantics.py +45 -0
- arvis/adapters/kernel/timeline_from_signals.py +88 -0
- arvis/adapters/llm/__init__.py +32 -0
- arvis/adapters/llm/context/__init__.py +0 -0
- arvis/adapters/llm/context/arvis_context_mapper.py +80 -0
- arvis/adapters/llm/contracts/__init__.py +20 -0
- arvis/adapters/llm/contracts/context.py +15 -0
- arvis/adapters/llm/contracts/error_payload.py +24 -0
- arvis/adapters/llm/contracts/errors.py +24 -0
- arvis/adapters/llm/contracts/execution_result.py +49 -0
- arvis/adapters/llm/contracts/message.py +15 -0
- arvis/adapters/llm/contracts/options.py +16 -0
- arvis/adapters/llm/contracts/privacy.py +10 -0
- arvis/adapters/llm/contracts/request.py +73 -0
- arvis/adapters/llm/contracts/response.py +28 -0
- arvis/adapters/llm/contracts/result.py +56 -0
- arvis/adapters/llm/contracts/structured_output.py +14 -0
- arvis/adapters/llm/contracts/usage.py +49 -0
- arvis/adapters/llm/epistemic/__init__.py +1 -0
- arvis/adapters/llm/epistemic/state.py +41 -0
- arvis/adapters/llm/governance/__init__.py +0 -0
- arvis/adapters/llm/governance/budget.py +36 -0
- arvis/adapters/llm/governance/decision.py +17 -0
- arvis/adapters/llm/governance/evaluator.py +57 -0
- arvis/adapters/llm/governance/policy.py +29 -0
- arvis/adapters/llm/governance/risk.py +36 -0
- arvis/adapters/llm/observability/__init__.py +11 -0
- arvis/adapters/llm/observability/evaluation.py +30 -0
- arvis/adapters/llm/observability/math_utils.py +57 -0
- arvis/adapters/llm/observability/observation.py +34 -0
- arvis/adapters/llm/observability/observer.py +52 -0
- arvis/adapters/llm/observability/providers/__init__.py +1 -0
- arvis/adapters/llm/observability/providers/base.py +11 -0
- arvis/adapters/llm/observability/providers/mock.py +20 -0
- arvis/adapters/llm/observability/providers/openai.py +27 -0
- arvis/adapters/llm/observability/risk_mapper.py +56 -0
- arvis/adapters/llm/observability/risk_signal.py +41 -0
- arvis/adapters/llm/policy/__init__.py +11 -0
- arvis/adapters/llm/policy/behavior_policy.py +45 -0
- arvis/adapters/llm/policy/behavior_policy_mapper.py +108 -0
- arvis/adapters/llm/policy/linguistic_frame_mapper.py +74 -0
- arvis/adapters/llm/prompts/__init__.py +12 -0
- arvis/adapters/llm/prompts/builder.py +120 -0
- arvis/adapters/llm/prompts/contract.py +31 -0
- arvis/adapters/llm/prompts/prompt_to_messages.py +29 -0
- arvis/adapters/llm/prompts/sanitizer.py +11 -0
- arvis/adapters/llm/prompts/templates.py +20 -0
- arvis/adapters/llm/providers/__init__.py +23 -0
- arvis/adapters/llm/providers/anthropic.py +59 -0
- arvis/adapters/llm/providers/base.py +15 -0
- arvis/adapters/llm/providers/mock.py +30 -0
- arvis/adapters/llm/providers/ollama.py +61 -0
- arvis/adapters/llm/providers/openai.py +60 -0
- arvis/adapters/llm/providers/registry.py +35 -0
- arvis/adapters/llm/providers/resolver.py +33 -0
- arvis/adapters/llm/runtime/__init__.py +29 -0
- arvis/adapters/llm/runtime/evaluator.py +55 -0
- arvis/adapters/llm/runtime/executor.py +155 -0
- arvis/adapters/llm/runtime/fallback_executor.py +118 -0
- arvis/adapters/llm/runtime/guarded_adapter.py +153 -0
- arvis/adapters/llm/runtime/retry.py +99 -0
- arvis/adapters/llm/runtime/router.py +55 -0
- arvis/adapters/llm/tracing/__init__.py +15 -0
- arvis/adapters/llm/tracing/llm_trace.py +58 -0
- arvis/adapters/llm/tracing/serializer.py +53 -0
- arvis/adapters/llm/validation/__init__.py +0 -0
- arvis/adapters/llm/validation/output_validator.py +196 -0
- arvis/adapters/registry.py +8 -0
- arvis/adapters/tools/__init__.py +0 -0
- arvis/adapters/tools/authorization.py +10 -0
- arvis/adapters/tools/authorization_snapshot.py +78 -0
- arvis/adapters/tools/gates.py +31 -0
- arvis/adapters/tools/invocation.py +327 -0
- arvis/adapters/tools/policy.py +90 -0
- arvis/api/__init__.py +199 -0
- arvis/api/audit.py +28 -0
- arvis/api/cognition.py +31 -0
- arvis/api/commitment.py +293 -0
- arvis/api/engine.py +139 -0
- arvis/api/execution.py +49 -0
- arvis/api/ir.py +87 -0
- arvis/api/ir_canonical.py +32 -0
- arvis/api/ir_diff.py +45 -0
- arvis/api/math.py +39 -0
- arvis/api/memory.py +17 -0
- arvis/api/os.py +404 -0
- arvis/api/os_internals.py +429 -0
- arvis/api/reasoning.py +15 -0
- arvis/api/reflexive.py +29 -0
- arvis/api/runtime/__init__.py +0 -0
- arvis/api/runtime/cognitive_runtime.py +389 -0
- arvis/api/runtime_controls.py +25 -0
- arvis/api/runtime_mode.py +45 -0
- arvis/api/schema/ir_schema.json +68 -0
- arvis/api/stability.py +54 -0
- arvis/api/timeline.py +90 -0
- arvis/api/trace.py +119 -0
- arvis/api/version.py +84 -0
- arvis/api/views/__init__.py +0 -0
- arvis/api/views/cognitive_result_view.py +379 -0
- arvis/cognition/__init__.py +29 -0
- arvis/cognition/attention/__init__.py +0 -0
- arvis/cognition/attention/attention_context.py +23 -0
- arvis/cognition/attention/attention_policy.py +31 -0
- arvis/cognition/bundle/__init__.py +15 -0
- arvis/cognition/bundle/cognitive_bundle_builder.py +115 -0
- arvis/cognition/bundle/cognitive_bundle_invariants.py +125 -0
- arvis/cognition/bundle/cognitive_bundle_snapshot.py +46 -0
- arvis/cognition/calibration/__init__.py +0 -0
- arvis/cognition/calibration/calibration_engine.py +104 -0
- arvis/cognition/coherence/__init__.py +24 -0
- arvis/cognition/coherence/change_budget.py +23 -0
- arvis/cognition/coherence/coherence_limits.py +18 -0
- arvis/cognition/coherence/coherence_observer.py +171 -0
- arvis/cognition/coherence/coherence_policy.py +54 -0
- arvis/cognition/coherence/stability_constraint.py +72 -0
- arvis/cognition/confirmation/__init__.py +12 -0
- arvis/cognition/confirmation/confirmation_evaluator.py +26 -0
- arvis/cognition/confirmation/confirmation_flow.py +34 -0
- arvis/cognition/confirmation/confirmation_request.py +16 -0
- arvis/cognition/confirmation/confirmation_result.py +20 -0
- arvis/cognition/conflict/__init__.py +17 -0
- arvis/cognition/conflict/conflict_confirmation.py +14 -0
- arvis/cognition/conflict/conflict_evaluator.py +46 -0
- arvis/cognition/conflict/conflict_extractor.py +35 -0
- arvis/cognition/conflict/conflict_hint.py +18 -0
- arvis/cognition/conflict/conflict_impact.py +19 -0
- arvis/cognition/conflict/conflict_modulation.py +25 -0
- arvis/cognition/conflict/conflict_policy_result.py +14 -0
- arvis/cognition/conflict/conflict_pressure_engine.py +44 -0
- arvis/cognition/conflict/conflict_severity.py +15 -0
- arvis/cognition/conflict/conflict_signal.py +16 -0
- arvis/cognition/conflict/conflict_type.py +20 -0
- arvis/cognition/conflict/default_rules.py +22 -0
- arvis/cognition/control/__init__.py +15 -0
- arvis/cognition/control/adaptive_mode_snapshot.py +23 -0
- arvis/cognition/control/cognitive_control_engine.py +643 -0
- arvis/cognition/control/cognitive_control_runtime.py +34 -0
- arvis/cognition/control/cognitive_control_snapshot.py +36 -0
- arvis/cognition/control/exploration_controller.py +101 -0
- arvis/cognition/control/exploration_snapshot.py +36 -0
- arvis/cognition/control/mode_hysteresis.py +61 -0
- arvis/cognition/control/regime_control_snapshot.py +34 -0
- arvis/cognition/control/regime_policy.py +53 -0
- arvis/cognition/control/temporal_modulation.py +33 -0
- arvis/cognition/control/temporal_pressure.py +58 -0
- arvis/cognition/control/temporal_regulation.py +51 -0
- arvis/cognition/conversation/__init__.py +21 -0
- arvis/cognition/conversation/conversation_context.py +35 -0
- arvis/cognition/conversation/conversation_mode.py +19 -0
- arvis/cognition/conversation/conversation_signal.py +21 -0
- arvis/cognition/conversation/conversation_state.py +34 -0
- arvis/cognition/conversation/response_plan.py +36 -0
- arvis/cognition/conversation/response_realization_mode.py +13 -0
- arvis/cognition/conversation/response_strategy_decision.py +24 -0
- arvis/cognition/conversation/response_strategy_type.py +20 -0
- arvis/cognition/core/__init__.py +0 -0
- arvis/cognition/core/cognitive_core_engine.py +93 -0
- arvis/cognition/core/cognitive_core_result.py +28 -0
- arvis/cognition/decision/__init__.py +0 -0
- arvis/cognition/decision/decision_context.py +17 -0
- arvis/cognition/decision/decision_evaluator.py +71 -0
- arvis/cognition/decision/decision_result.py +43 -0
- arvis/cognition/decision/decision_signal.py +33 -0
- arvis/cognition/events/__init__.py +5 -0
- arvis/cognition/events/base_event.py +22 -0
- arvis/cognition/execution/__init__.py +5 -0
- arvis/cognition/execution/executable_intent.py +34 -0
- arvis/cognition/explanation/__init__.py +0 -0
- arvis/cognition/explanation/explanation_snapshot.py +34 -0
- arvis/cognition/gate/__init__.py +5 -0
- arvis/cognition/gate/cognitive_gate_protocol.py +11 -0
- arvis/cognition/gate/cognitive_gate_result.py +47 -0
- arvis/cognition/gate/cognitive_gate_verdict.py +9 -0
- arvis/cognition/gate/gate_decision_trace.py +27 -0
- arvis/cognition/gate/gate_trace_builder.py +78 -0
- arvis/cognition/gate/reason_code_normalizer.py +84 -0
- arvis/cognition/gate/reason_code_registry.py +54 -0
- arvis/cognition/governance/__init__.py +12 -0
- arvis/cognition/governance/governance_decision.py +22 -0
- arvis/cognition/governance/governance_evaluator.py +27 -0
- arvis/cognition/governance/governance_suggestion.py +16 -0
- arvis/cognition/introspection/__init__.py +0 -0
- arvis/cognition/introspection/introspection_snapshot.py +33 -0
- arvis/cognition/observability/__init__.py +2 -0
- arvis/cognition/observability/adaptive/__init__.py +0 -0
- arvis/cognition/observability/adaptive/adaptive_stability_snapshot.py +11 -0
- arvis/cognition/observability/observability_builder.py +173 -0
- arvis/cognition/observability/symbolic/__init__.py +11 -0
- arvis/cognition/observability/symbolic/symbolic_drift_snapshot.py +23 -0
- arvis/cognition/observability/symbolic/symbolic_feature_snapshot.py +17 -0
- arvis/cognition/pending/__init__.py +5 -0
- arvis/cognition/pending/pending_cognitive_action.py +28 -0
- arvis/cognition/policy/__init__.py +6 -0
- arvis/cognition/policy/cognitive_policy_result.py +24 -0
- arvis/cognition/policy/cognitive_signal_snapshot.py +24 -0
- arvis/cognition/projection/__init__.py +0 -0
- arvis/cognition/projection/projection_api.py +105 -0
- arvis/cognition/projection/projection_diagnostics.py +35 -0
- arvis/cognition/projection/projection_result.py +21 -0
- arvis/cognition/retrieval/__init__.py +0 -0
- arvis/cognition/retrieval/cognitive_retrieval_snapshot.py +22 -0
- arvis/cognition/state/__init__.py +26 -0
- arvis/cognition/state/cognitive_state.py +104 -0
- arvis/cognition/state/cognitive_state_builder.py +96 -0
- arvis/cognition/suggestion/__init__.py +0 -0
- arvis/cognition/suggestion/suggestion_evaluator.py +37 -0
- arvis/cognition/suggestion/suggestion_signal.py +13 -0
- arvis/cognition/temporal/__init__.py +0 -0
- arvis/cognition/temporal/temporal_context.py +23 -0
- arvis/cognition/temporal/temporal_policy.py +48 -0
- arvis/context/__init__.py +0 -0
- arvis/context/context_hint_policy_gate.py +31 -0
- arvis/contracts/__init__.py +0 -0
- arvis/contracts/cognitive_state_contract.py +141 -0
- arvis/control/__init__.py +31 -0
- arvis/control/control_context.py +33 -0
- arvis/control/control_inertia.py +117 -0
- arvis/control/control_preferences.py +22 -0
- arvis/control/control_signal.py +16 -0
- arvis/control/control_state.py +42 -0
- arvis/control/onboarding_state.py +16 -0
- arvis/control/understanding_snapshot.py +35 -0
- arvis/conversation/__init__.py +0 -0
- arvis/conversation/act_strategy_mapper.py +35 -0
- arvis/conversation/continuation.py +45 -0
- arvis/conversation/conversation_adaptive_controller.py +172 -0
- arvis/conversation/conversation_adaptive_policy.py +61 -0
- arvis/conversation/conversation_adversarial_detector.py +54 -0
- arvis/conversation/conversation_attractor_model.py +63 -0
- arvis/conversation/conversation_cognitive_bridge.py +99 -0
- arvis/conversation/conversation_coherence_metric.py +22 -0
- arvis/conversation/conversation_collapse_guard.py +26 -0
- arvis/conversation/conversation_composite_stability.py +42 -0
- arvis/conversation/conversation_context.py +37 -0
- arvis/conversation/conversation_energy_model.py +80 -0
- arvis/conversation/conversation_entropy_regulator.py +50 -0
- arvis/conversation/conversation_fast_path.py +34 -0
- arvis/conversation/conversation_feedback_signal.py +27 -0
- arvis/conversation/conversation_future_simulator.py +33 -0
- arvis/conversation/conversation_global_stability_adapter.py +29 -0
- arvis/conversation/conversation_lyapunov_adapter.py +24 -0
- arvis/conversation/conversation_memory_bridge.py +95 -0
- arvis/conversation/conversation_memory_policy.py +67 -0
- arvis/conversation/conversation_orchestrator.py +330 -0
- arvis/conversation/conversation_policy_base.py +18 -0
- arvis/conversation/conversation_policy_engine.py +60 -0
- arvis/conversation/conversation_predictive_strategy.py +31 -0
- arvis/conversation/conversation_predictor.py +69 -0
- arvis/conversation/conversation_regime_controller.py +195 -0
- arvis/conversation/conversation_stability_controller.py +78 -0
- arvis/conversation/conversation_stability_signals.py +141 -0
- arvis/conversation/conversation_state.py +48 -0
- arvis/conversation/conversation_strategy_dynamics.py +61 -0
- arvis/conversation/conversation_strategy_field.py +63 -0
- arvis/conversation/conversation_trajectory_controller.py +28 -0
- arvis/conversation/conversation_world_prediction_bridge.py +42 -0
- arvis/conversation/pending_turn.py +47 -0
- arvis/conversation/response_plan.py +5 -0
- arvis/conversation/response_plan_builder.py +128 -0
- arvis/conversation/response_realization_mode.py +7 -0
- arvis/conversation/response_strategy_decision.py +7 -0
- arvis/conversation/response_strategy_resolver.py +130 -0
- arvis/conversation/response_strategy_type.py +5 -0
- arvis/conversation/strategy_stability_controller.py +38 -0
- arvis/conversation/user_adaptive_profile.py +23 -0
- arvis/errors/__init__.py +234 -0
- arvis/errors/api.py +20 -0
- arvis/errors/artifact.py +26 -0
- arvis/errors/base.py +422 -0
- arvis/errors/boundaries/__init__.py +25 -0
- arvis/errors/boundaries/llm.py +77 -0
- arvis/errors/boundaries/observability.py +59 -0
- arvis/errors/boundaries/pipeline.py +112 -0
- arvis/errors/classification.py +178 -0
- arvis/errors/codes.py +195 -0
- arvis/errors/context.py +39 -0
- arvis/errors/disposition.py +39 -0
- arvis/errors/factories.py +39 -0
- arvis/errors/helpers.py +16 -0
- arvis/errors/kernel.py +34 -0
- arvis/errors/kernel_runtime.py +36 -0
- arvis/errors/llm_runtime.py +36 -0
- arvis/errors/manager.py +407 -0
- arvis/errors/messages.py +26 -0
- arvis/errors/normalization.py +158 -0
- arvis/errors/observability.py +32 -0
- arvis/errors/pipeline.py +32 -0
- arvis/errors/policy.py +42 -0
- arvis/errors/provenance.py +116 -0
- arvis/errors/redaction.py +137 -0
- arvis/errors/registry.py +36 -0
- arvis/errors/replay.py +25 -0
- arvis/errors/runtime.py +47 -0
- arvis/errors/runtime_execution.py +31 -0
- arvis/errors/runtime_pipeline.py +44 -0
- arvis/errors/runtime_scheduler.py +37 -0
- arvis/errors/syscall.py +53 -0
- arvis/errors/tool_runtime.py +52 -0
- arvis/errors/types.py +12 -0
- arvis/interfaces/__init__.py +4 -0
- arvis/interfaces/cognitive_bundle.py +47 -0
- arvis/ir/__init__.py +15 -0
- arvis/ir/cognitive_ir.py +41 -0
- arvis/ir/context.py +42 -0
- arvis/ir/decision.py +74 -0
- arvis/ir/envelope.py +44 -0
- arvis/ir/gate.py +33 -0
- arvis/ir/input.py +18 -0
- arvis/ir/normalization/__init__.py +0 -0
- arvis/ir/normalization/cognitive_ir_normalizer.py +97 -0
- arvis/ir/replay/__init__.py +0 -0
- arvis/ir/replay/replay_validator.py +81 -0
- arvis/ir/serialization/__init__.py +0 -0
- arvis/ir/serialization/cognitive_ir_hasher.py +29 -0
- arvis/ir/serialization/cognitive_ir_serializer.py +153 -0
- arvis/ir/state.py +47 -0
- arvis/ir/validation/__init__.py +0 -0
- arvis/ir/validation/cognitive_ir_validator.py +158 -0
- arvis/ir/version.py +4 -0
- arvis/kernel/__init__.py +8 -0
- arvis/kernel/execution/__init__.py +0 -0
- arvis/kernel/execution/cognitive_execution_state.py +43 -0
- arvis/kernel/execution/execution_gate_status.py +9 -0
- arvis/kernel/execution/execution_llm_state.py +16 -0
- arvis/kernel/gate/__init__.py +0 -0
- arvis/kernel/gate/input_risk.py +81 -0
- arvis/kernel/gate/pi_gate.py +120 -0
- arvis/kernel/kernel_contract.py +15 -0
- arvis/kernel/kernel_invariants.py +59 -0
- arvis/kernel/observability/__init__.py +11 -0
- arvis/kernel/observability/gate_observer.py +276 -0
- arvis/kernel/observability/lyapunov_observer.py +118 -0
- arvis/kernel/pipeline/__init__.py +0 -0
- arvis/kernel/pipeline/cognitive_pipeline.py +244 -0
- arvis/kernel/pipeline/cognitive_pipeline_context.py +835 -0
- arvis/kernel/pipeline/cognitive_pipeline_result.py +164 -0
- arvis/kernel/pipeline/context/__init__.py +51 -0
- arvis/kernel/pipeline/context/decision_context.py +34 -0
- arvis/kernel/pipeline/context/error_context.py +30 -0
- arvis/kernel/pipeline/context/execution_context.py +14 -0
- arvis/kernel/pipeline/context/observability/diagnostic_context.py +16 -0
- arvis/kernel/pipeline/context/observability/projections_context.py +20 -0
- arvis/kernel/pipeline/context/observability/state_context.py +14 -0
- arvis/kernel/pipeline/context/observability/symbolic_context.py +12 -0
- arvis/kernel/pipeline/context/observability_context.py +47 -0
- arvis/kernel/pipeline/context/projection_context.py +31 -0
- arvis/kernel/pipeline/context/runtime_bindings_context.py +18 -0
- arvis/kernel/pipeline/context/runtime_policy_context.py +12 -0
- arvis/kernel/pipeline/context/scientific_accessors.py +197 -0
- arvis/kernel/pipeline/context/scientific_context.py +435 -0
- arvis/kernel/pipeline/context/tooling_context.py +22 -0
- arvis/kernel/pipeline/factories/__init__.py +13 -0
- arvis/kernel/pipeline/factories/pipeline_result_factory.py +67 -0
- arvis/kernel/pipeline/factories/pipeline_trace_factory.py +57 -0
- arvis/kernel/pipeline/gate_overrides.py +11 -0
- arvis/kernel/pipeline/pipeline_contract.py +34 -0
- arvis/kernel/pipeline/result/__init__.py +17 -0
- arvis/kernel/pipeline/result/execution_result.py +27 -0
- arvis/kernel/pipeline/result/ir_result.py +31 -0
- arvis/kernel/pipeline/result/observability_result.py +13 -0
- arvis/kernel/pipeline/runtime_bindings.py +19 -0
- arvis/kernel/pipeline/services/__init__.py +17 -0
- arvis/kernel/pipeline/services/llm_request_builder.py +62 -0
- arvis/kernel/pipeline/services/pipeline_bootstrap_service.py +226 -0
- arvis/kernel/pipeline/services/pipeline_compatibility_service.py +64 -0
- arvis/kernel/pipeline/services/pipeline_error_service.py +62 -0
- arvis/kernel/pipeline/services/pipeline_execution_service.py +33 -0
- arvis/kernel/pipeline/services/pipeline_execution_sync_service.py +55 -0
- arvis/kernel/pipeline/services/pipeline_finalize_service.py +271 -0
- arvis/kernel/pipeline/services/pipeline_input_service.py +54 -0
- arvis/kernel/pipeline/services/pipeline_ir_bootstrap_service.py +214 -0
- arvis/kernel/pipeline/services/pipeline_ir_service.py +160 -0
- arvis/kernel/pipeline/services/pipeline_iteration_service.py +31 -0
- arvis/kernel/pipeline/services/pipeline_lifecycle_service.py +58 -0
- arvis/kernel/pipeline/services/pipeline_llm_service.py +499 -0
- arvis/kernel/pipeline/services/pipeline_observability_service.py +135 -0
- arvis/kernel/pipeline/services/pipeline_preparation_service.py +117 -0
- arvis/kernel/pipeline/services/pipeline_replay_service.py +67 -0
- arvis/kernel/pipeline/services/pipeline_retry_budget.py +40 -0
- arvis/kernel/pipeline/services/pipeline_retry_policy.py +151 -0
- arvis/kernel/pipeline/services/pipeline_runner_service.py +78 -0
- arvis/kernel/pipeline/services/pipeline_runtime_service.py +27 -0
- arvis/kernel/pipeline/services/pipeline_stage_execution_service.py +32 -0
- arvis/kernel/pipeline/services/pipeline_stage_registry_service.py +41 -0
- arvis/kernel/pipeline/stages/__init__.py +45 -0
- arvis/kernel/pipeline/stages/action_stage.py +140 -0
- arvis/kernel/pipeline/stages/bundle_stage.py +48 -0
- arvis/kernel/pipeline/stages/confirmation_stage.py +200 -0
- arvis/kernel/pipeline/stages/conflict_modulation_stage.py +28 -0
- arvis/kernel/pipeline/stages/conflict_stage.py +54 -0
- arvis/kernel/pipeline/stages/control_feedback_stage.py +151 -0
- arvis/kernel/pipeline/stages/control_stage.py +228 -0
- arvis/kernel/pipeline/stages/core_stage.py +409 -0
- arvis/kernel/pipeline/stages/decision_stage.py +96 -0
- arvis/kernel/pipeline/stages/execution_stage.py +71 -0
- arvis/kernel/pipeline/stages/gate/__init__.py +3 -0
- arvis/kernel/pipeline/stages/gate/adaptive.py +175 -0
- arvis/kernel/pipeline/stages/gate/composite.py +468 -0
- arvis/kernel/pipeline/stages/gate/confidence.py +34 -0
- arvis/kernel/pipeline/stages/gate/context.py +264 -0
- arvis/kernel/pipeline/stages/gate/decision_stack.py +564 -0
- arvis/kernel/pipeline/stages/gate/enforcement.py +214 -0
- arvis/kernel/pipeline/stages/gate/gating_regime.py +82 -0
- arvis/kernel/pipeline/stages/gate/input_risk_gate.py +201 -0
- arvis/kernel/pipeline/stages/gate/memory_policy.py +77 -0
- arvis/kernel/pipeline/stages/gate/mid_traces.py +69 -0
- arvis/kernel/pipeline/stages/gate/models.py +52 -0
- arvis/kernel/pipeline/stages/gate/observability.py +52 -0
- arvis/kernel/pipeline/stages/gate/pi_override.py +99 -0
- arvis/kernel/pipeline/stages/gate/stability.py +446 -0
- arvis/kernel/pipeline/stages/gate/stage.py +150 -0
- arvis/kernel/pipeline/stages/gate/switching.py +83 -0
- arvis/kernel/pipeline/stages/gate/trace_helpers.py +150 -0
- arvis/kernel/pipeline/stages/gate_stage.py +53 -0
- arvis/kernel/pipeline/stages/intent_stage.py +95 -0
- arvis/kernel/pipeline/stages/passive_context_stage.py +136 -0
- arvis/kernel/pipeline/stages/projection_stage.py +144 -0
- arvis/kernel/pipeline/stages/regime_stage.py +65 -0
- arvis/kernel/pipeline/stages/runtime_stage.py +69 -0
- arvis/kernel/pipeline/stages/structural_risk_stage.py +35 -0
- arvis/kernel/pipeline/stages/temporal_stage.py +68 -0
- arvis/kernel/pipeline/stages/tool_feedback_stage.py +25 -0
- arvis/kernel/pipeline/stages/tool_retry_stage.py +13 -0
- arvis/kernel/projection/__init__.py +19 -0
- arvis/kernel/projection/bundle_projection_mapper.py +23 -0
- arvis/kernel/projection/certificate.py +78 -0
- arvis/kernel/projection/domain.py +97 -0
- arvis/kernel/projection/llm_projection_mapper.py +121 -0
- arvis/kernel/projection/pi_impl.py +395 -0
- arvis/kernel/projection/pi_types.py +105 -0
- arvis/kernel/projection/projected_state.py +60 -0
- arvis/kernel/projection/validator.py +141 -0
- arvis/kernel/replay_engine.py +82 -0
- arvis/kernel/trace/__init__.py +0 -0
- arvis/kernel/trace/decision_trace.py +56 -0
- arvis/kernel/trace/decision_trace_schema.py +18 -0
- arvis/kernel_core/__init__.py +0 -0
- arvis/kernel_core/access/__init__.py +0 -0
- arvis/kernel_core/access/decision.py +28 -0
- arvis/kernel_core/access/identity.py +38 -0
- arvis/kernel_core/access/models.py +85 -0
- arvis/kernel_core/access/policy.py +96 -0
- arvis/kernel_core/access/resolvers.py +104 -0
- arvis/kernel_core/canonicalization.py +470 -0
- arvis/kernel_core/contracts/__init__.py +0 -0
- arvis/kernel_core/contracts/execution_contract.py +20 -0
- arvis/kernel_core/host_declaration.py +148 -0
- arvis/kernel_core/interrupts/__init__.py +0 -0
- arvis/kernel_core/interrupts/interrupt.py +19 -0
- arvis/kernel_core/interrupts/interrupt_bus.py +61 -0
- arvis/kernel_core/interrupts/interrupt_type.py +16 -0
- arvis/kernel_core/process/__init__.py +20 -0
- arvis/kernel_core/process/budget.py +53 -0
- arvis/kernel_core/process/lifecycle/__init__.py +9 -0
- arvis/kernel_core/process/lifecycle/lifecycle_manager.py +84 -0
- arvis/kernel_core/process/lifecycle/queue_manager.py +65 -0
- arvis/kernel_core/process/priority.py +17 -0
- arvis/kernel_core/process/process.py +478 -0
- arvis/kernel_core/process/process_descriptor.py +25 -0
- arvis/kernel_core/process/process_execution_state.py +15 -0
- arvis/kernel_core/process/process_factory.py +64 -0
- arvis/kernel_core/process/process_interrupt_state.py +10 -0
- arvis/kernel_core/process/process_runtime_state.py +27 -0
- arvis/kernel_core/process/snapshot.py +36 -0
- arvis/kernel_core/process/transitions.py +82 -0
- arvis/kernel_core/process/types.py +32 -0
- arvis/kernel_core/state/__init__.py +0 -0
- arvis/kernel_core/state/scheduler_state.py +43 -0
- arvis/kernel_core/syscalls/__init__.py +39 -0
- arvis/kernel_core/syscalls/artifact.py +126 -0
- arvis/kernel_core/syscalls/audit_sink.py +243 -0
- arvis/kernel_core/syscalls/engagement.py +314 -0
- arvis/kernel_core/syscalls/intent_outbox.py +361 -0
- arvis/kernel_core/syscalls/intent_result_bijection.py +149 -0
- arvis/kernel_core/syscalls/service_registry.py +47 -0
- arvis/kernel_core/syscalls/syscall.py +29 -0
- arvis/kernel_core/syscalls/syscall_handler.py +1138 -0
- arvis/kernel_core/syscalls/syscall_registry.py +155 -0
- arvis/kernel_core/syscalls/syscalls/__init__.py +21 -0
- arvis/kernel_core/syscalls/syscalls/interrupt_syscalls.py +55 -0
- arvis/kernel_core/syscalls/syscalls/llm_syscalls.py +189 -0
- arvis/kernel_core/syscalls/syscalls/meta_syscalls.py +146 -0
- arvis/kernel_core/syscalls/syscalls/process_syscalls.py +132 -0
- arvis/kernel_core/syscalls/syscalls/tool_syscalls.py +214 -0
- arvis/kernel_core/syscalls/syscalls/vfs_syscalls.py +739 -0
- arvis/kernel_core/vfs/__init__.py +0 -0
- arvis/kernel_core/vfs/exceptions.py +40 -0
- arvis/kernel_core/vfs/models.py +27 -0
- arvis/kernel_core/vfs/repositories/__init__.py +7 -0
- arvis/kernel_core/vfs/repositories/in_memory.py +135 -0
- arvis/kernel_core/vfs/repository.py +54 -0
- arvis/kernel_core/vfs/service.py +285 -0
- arvis/kernel_core/vfs/tree.py +58 -0
- arvis/kernel_core/vfs/zip/__init__.py +0 -0
- arvis/kernel_core/vfs/zip/analyzer.py +97 -0
- arvis/kernel_core/vfs/zip/collision.py +85 -0
- arvis/kernel_core/vfs/zip/exceptions.py +17 -0
- arvis/kernel_core/vfs/zip/executor.py +148 -0
- arvis/kernel_core/vfs/zip/guard.py +116 -0
- arvis/kernel_core/vfs/zip/models.py +93 -0
- arvis/kernel_core/vfs/zip/plan.py +70 -0
- arvis/kernel_core/vfs/zip/reader.py +83 -0
- arvis/kernel_core/vfs/zip/service.py +148 -0
- arvis/knowledge/__init__.py +0 -0
- arvis/knowledge/knowledge_event.py +24 -0
- arvis/knowledge/knowledge_signal.py +45 -0
- arvis/knowledge/knowledge_snapshot.py +22 -0
- arvis/knowledge/knowledge_state.py +32 -0
- arvis/linguistic/__init__.py +0 -0
- arvis/linguistic/acts/__init__.py +0 -0
- arvis/linguistic/acts/act_authorization_gate.py +32 -0
- arvis/linguistic/acts/act_types.py +12 -0
- arvis/linguistic/acts/gate_mapping.py +34 -0
- arvis/linguistic/acts/linguistic_act.py +33 -0
- arvis/linguistic/acts/mode_act_policy.py +33 -0
- arvis/linguistic/generation/__init__.py +0 -0
- arvis/linguistic/generation/frame_builder.py +103 -0
- arvis/linguistic/generation/generation_frame.py +23 -0
- arvis/linguistic/generation/prompt_builder.py +53 -0
- arvis/linguistic/generation/retrieval_frame_adapter.py +35 -0
- arvis/linguistic/invariants.py +46 -0
- arvis/linguistic/lexicon/__init__.py +0 -0
- arvis/linguistic/lexicon/core/__init__.py +0 -0
- arvis/linguistic/lexicon/core/minimal_v0.py +57 -0
- arvis/linguistic/lexicon/domains/__init__.py +0 -0
- arvis/linguistic/lexicon/domains/finance_v0.py +27 -0
- arvis/linguistic/lexicon/domains/legal_v0.py +27 -0
- arvis/linguistic/lexicon/domains/security_v0.py +41 -0
- arvis/linguistic/lexicon/lexicon_entry.py +54 -0
- arvis/linguistic/lexicon/lexicon_snapshot.py +48 -0
- arvis/linguistic/lexicon/registry/__init__.py +0 -0
- arvis/linguistic/lexicon/registry/lexicon_registry.py +28 -0
- arvis/linguistic/lexicon/resolvers/__init__.py +0 -0
- arvis/linguistic/lexicon/resolvers/lexicon_resolver.py +58 -0
- arvis/linguistic/realization/__init__.py +0 -0
- arvis/linguistic/realization/default_templates.py +16 -0
- arvis/linguistic/realization/realization_service.py +22 -0
- arvis/math/__init__.py +41 -0
- arvis/math/adaptive/__init__.py +0 -0
- arvis/math/adaptive/adaptive_control_policy.py +90 -0
- arvis/math/adaptive/adaptive_kappa_eff.py +85 -0
- arvis/math/adaptive/adaptive_runtime_observer.py +66 -0
- arvis/math/adaptive/adaptive_snapshot.py +29 -0
- arvis/math/confidence/__init__.py +11 -0
- arvis/math/confidence/system_confidence.py +70 -0
- arvis/math/control/__init__.py +0 -0
- arvis/math/control/beta_adaptive.py +59 -0
- arvis/math/control/confidence_control.py +65 -0
- arvis/math/control/eps_adaptive.py +112 -0
- arvis/math/control/epsilon_controller.py +39 -0
- arvis/math/control/irg_epsilon_controller.py +201 -0
- arvis/math/core/__init__.py +0 -0
- arvis/math/core/change_budget.py +43 -0
- arvis/math/core/contraction_monitor_core.py +352 -0
- arvis/math/core/control_inertia.py +13 -0
- arvis/math/core/fast_dynamics.py +22 -0
- arvis/math/core/local_dynamics.py +65 -0
- arvis/math/core/normalization.py +135 -0
- arvis/math/core/perturbation.py +45 -0
- arvis/math/core/stability_certificate.py +91 -0
- arvis/math/decision/__init__.py +0 -0
- arvis/math/decision/fusion_policy.py +47 -0
- arvis/math/decision/multiaxial_fusion.py +106 -0
- arvis/math/drift/__init__.py +0 -0
- arvis/math/drift/drift.py +71 -0
- arvis/math/drift/drift_detector.py +34 -0
- arvis/math/gate/__init__.py +0 -0
- arvis/math/gate/gate_adapter.py +13 -0
- arvis/math/gate/gate_entry.py +10 -0
- arvis/math/gate/gate_fusion.py +24 -0
- arvis/math/gate/gate_kernel.py +142 -0
- arvis/math/gate/gate_policy.py +75 -0
- arvis/math/gate/gate_types.py +58 -0
- arvis/math/lyapunov/__init__.py +0 -0
- arvis/math/lyapunov/composite_lyapunov.py +129 -0
- arvis/math/lyapunov/lyapunov.py +134 -0
- arvis/math/lyapunov/lyapunov_gate.py +95 -0
- arvis/math/lyapunov/probabilistic_lyapunov.py +93 -0
- arvis/math/lyapunov/quadratic_lyapunov.py +111 -0
- arvis/math/lyapunov/quadratic_projection.py +29 -0
- arvis/math/lyapunov/slow_dynamics.py +17 -0
- arvis/math/lyapunov/slow_state.py +46 -0
- arvis/math/lyapunov/target_map.py +63 -0
- arvis/math/lyapunov/verdict_order.py +53 -0
- arvis/math/observability/__init__.py +15 -0
- arvis/math/observability/global_forecast_snapshot.py +12 -0
- arvis/math/observability/global_stability_snapshot.py +20 -0
- arvis/math/observability/multi_horizon_snapshot.py +11 -0
- arvis/math/observability/predictive_snapshot.py +12 -0
- arvis/math/observability/stability_stats_snapshot.py +11 -0
- arvis/math/predictive/__init__.py +0 -0
- arvis/math/predictive/predictive_multi_horizon.py +165 -0
- arvis/math/predictive/predictive_stability.py +149 -0
- arvis/math/predictive/trajectory_observer.py +93 -0
- arvis/math/projection/__init__.py +0 -0
- arvis/math/projection/pi_operator.py +82 -0
- arvis/math/projection/projection_view.py +67 -0
- arvis/math/risk/__init__.py +0 -0
- arvis/math/risk/confidence_sequence.py +233 -0
- arvis/math/risk/risk_bound.py +72 -0
- arvis/math/risk/risk_calibration.py +111 -0
- arvis/math/signals/__init__.py +26 -0
- arvis/math/signals/base.py +67 -0
- arvis/math/signals/coercion.py +99 -0
- arvis/math/signals/confidence.py +16 -0
- arvis/math/signals/conflict.py +59 -0
- arvis/math/signals/drift.py +36 -0
- arvis/math/signals/forecast.py +16 -0
- arvis/math/signals/risk.py +56 -0
- arvis/math/signals/stability.py +20 -0
- arvis/math/signals/symbolic_drift.py +16 -0
- arvis/math/signals/system_tension.py +35 -0
- arvis/math/signals/uncertainty.py +32 -0
- arvis/math/stability/__init__.py +0 -0
- arvis/math/stability/global_guard.py +52 -0
- arvis/math/stability/global_stability.py +125 -0
- arvis/math/stability/hard_block_policy.py +74 -0
- arvis/math/stability/hybrid_risk_observer.py +191 -0
- arvis/math/stability/multi_horizon_stability.py +75 -0
- arvis/math/stability/regime_estimator.py +78 -0
- arvis/math/stability/theorem.py +11 -0
- arvis/math/stability/validity_envelope.py +86 -0
- arvis/math/state/__init__.py +7 -0
- arvis/math/state/fast_projection.py +19 -0
- arvis/math/state/fast_state.py +16 -0
- arvis/math/state/lyapunov_projection_state.py +11 -0
- arvis/math/state/symbolic_state.py +18 -0
- arvis/math/switching/__init__.py +0 -0
- arvis/math/switching/global_stability_observer.py +205 -0
- arvis/math/switching/regime_mapper.py +24 -0
- arvis/math/switching/regime_state.py +21 -0
- arvis/math/switching/switching_params.py +46 -0
- arvis/math/switching/switching_runtime.py +40 -0
- arvis/memory/__init__.py +35 -0
- arvis/memory/governance.py +96 -0
- arvis/memory/memory_gate.py +8 -0
- arvis/memory/memory_intent.py +9 -0
- arvis/memory/memory_long_entry.py +51 -0
- arvis/memory/memory_long_policy_gate.py +114 -0
- arvis/memory/memory_long_projector.py +45 -0
- arvis/memory/memory_long_record.py +12 -0
- arvis/memory/memory_long_registry.py +76 -0
- arvis/memory/memory_long_repository.py +82 -0
- arvis/memory/memory_long_service.py +92 -0
- arvis/memory/memory_long_snapshot.py +32 -0
- arvis/py.typed +0 -0
- arvis/reasoning/__init__.py +20 -0
- arvis/reasoning/gap_to_intent_mapper.py +28 -0
- arvis/reasoning/reasoning_gap.py +43 -0
- arvis/reasoning/reasoning_intent.py +32 -0
- arvis/reflexive/__init__.py +0 -0
- arvis/reflexive/architecture/__init__.py +0 -0
- arvis/reflexive/architecture/arvis_system_architecture.py +45 -0
- arvis/reflexive/attestation/__init__.py +0 -0
- arvis/reflexive/attestation/reflexive_attestation.py +105 -0
- arvis/reflexive/capabilities/__init__.py +0 -0
- arvis/reflexive/capabilities/capability.py +11 -0
- arvis/reflexive/capabilities/capability_registry.py +34 -0
- arvis/reflexive/capabilities/capability_snapshot.py +28 -0
- arvis/reflexive/capabilities/capability_snapshot_builder.py +21 -0
- arvis/reflexive/compliance/__init__.py +0 -0
- arvis/reflexive/compliance/compliance_reflexive_attestation.py +49 -0
- arvis/reflexive/compliance/reflexive_compliance_chain.py +41 -0
- arvis/reflexive/compliance/reflexive_explanation.py +86 -0
- arvis/reflexive/core/__init__.py +0 -0
- arvis/reflexive/core/irg_latent_state.py +27 -0
- arvis/reflexive/core/irg_service.py +86 -0
- arvis/reflexive/core/reflexive_mode.py +31 -0
- arvis/reflexive/core/reflexive_mode_registry.py +30 -0
- arvis/reflexive/introspection/__init__.py +0 -0
- arvis/reflexive/introspection/architecture_introspector.py +30 -0
- arvis/reflexive/introspection/arvis_introspection_service.py +50 -0
- arvis/reflexive/introspection/capability_introspector.py +29 -0
- arvis/reflexive/introspection/cognition_introspector.py +29 -0
- arvis/reflexive/introspection/counterfactual_introspector.py +25 -0
- arvis/reflexive/introspection/decision_introspector.py +30 -0
- arvis/reflexive/introspection/math_introspector.py +47 -0
- arvis/reflexive/introspection/runtime_introspector.py +11 -0
- arvis/reflexive/introspection/uncertainty_introspector.py +30 -0
- arvis/reflexive/introspection/world_model_introspector.py +36 -0
- arvis/reflexive/rendering/__init__.py +0 -0
- arvis/reflexive/rendering/reflexive_render_profile.py +25 -0
- arvis/reflexive/rendering/reflexive_render_registry.py +63 -0
- arvis/reflexive/rendering/reflexive_renderer.py +27 -0
- arvis/reflexive/snapshot/__init__.py +0 -0
- arvis/reflexive/snapshot/reflexive_snapshot.py +69 -0
- arvis/reflexive/snapshot/reflexive_snapshot_builder.py +64 -0
- arvis/reflexive/snapshot/reflexive_snapshot_service.py +62 -0
- arvis/reflexive/timeline/__init__.py +0 -0
- arvis/reflexive/timeline/aggregation/__init__.py +0 -0
- arvis/reflexive/timeline/aggregation/irg_timeline_insight_aggregate.py +27 -0
- arvis/reflexive/timeline/aggregation/irg_timeline_insight_aggregator.py +58 -0
- arvis/reflexive/timeline/aggregation/irg_timeline_temporal_aggregator.py +35 -0
- arvis/reflexive/timeline/aggregation/irg_timeline_temporal_comparator.py +59 -0
- arvis/reflexive/timeline/aggregation/irg_timeline_temporal_diff.py +30 -0
- arvis/reflexive/timeline/aggregation/irg_timeline_temporal_memory.py +54 -0
- arvis/reflexive/timeline/aggregation/irg_timeline_temporal_memory_view.py +20 -0
- arvis/reflexive/timeline/aggregation/irg_timeline_temporal_snapshot.py +24 -0
- arvis/reflexive/timeline/explanation/__init__.py +7 -0
- arvis/reflexive/timeline/explanation/irg_timeline_explanation.py +21 -0
- arvis/reflexive/timeline/explanation/irg_timeline_explanation_builder.py +62 -0
- arvis/reflexive/timeline/explanation/reflexive_timeline_exposure_explanation.py +57 -0
- arvis/reflexive/timeline/insight/__init__.py +0 -0
- arvis/reflexive/timeline/insight/irg_timeline_insight.py +34 -0
- arvis/reflexive/timeline/insight/irg_timeline_insight_builder.py +47 -0
- arvis/reflexive/timeline/irg_timeline_mapper.py +26 -0
- arvis/reflexive/timeline/irg_timeline_view.py +35 -0
- arvis/runtime/__init__.py +12 -0
- arvis/runtime/cognitive_process.py +29 -0
- arvis/runtime/cognitive_runtime_state.py +148 -0
- arvis/runtime/cognitive_scheduler.py +494 -0
- arvis/runtime/cognitive_state.py +40 -0
- arvis/runtime/invariants/__init__.py +5 -0
- arvis/runtime/invariants/scheduler_invariants.py +52 -0
- arvis/runtime/pipeline_executor.py +150 -0
- arvis/runtime/process_hooks.py +136 -0
- arvis/runtime/resource_model.py +49 -0
- arvis/runtime/runtime_decision_record.py +62 -0
- arvis/runtime/runtime_snapshot.py +24 -0
- arvis/runtime/runtime_snapshot_builder.py +73 -0
- arvis/runtime/scheduler_decision.py +24 -0
- arvis/signals/__init__.py +0 -0
- arvis/signals/canonical/__init__.py +22 -0
- arvis/signals/canonical/canonical_signal.py +32 -0
- arvis/signals/canonical/canonical_signal_category.py +15 -0
- arvis/signals/canonical/canonical_signal_invariants.py +17 -0
- arvis/signals/canonical/canonical_signal_key.py +15 -0
- arvis/signals/canonical/canonical_signal_registry.py +75 -0
- arvis/signals/canonical/canonical_signal_spec.py +50 -0
- arvis/signals/canonical/specs/__init__.py +2 -0
- arvis/signals/canonical/specs/decision.py +72 -0
- arvis/signals/canonical/specs/memory_long.py +11 -0
- arvis/signals/canonical/specs/risk.py +62 -0
- arvis/signals/canonical/specs/timeline.py +41 -0
- arvis/signals/canonical/specs/validation.py +72 -0
- arvis/signals/signal.py +125 -0
- arvis/signals/signal_event.py +63 -0
- arvis/signals/signal_invariants.py +40 -0
- arvis/signals/signal_journal.py +102 -0
- arvis/stability/__init__.py +20 -0
- arvis/stability/global_forecast_snapshot.py +20 -0
- arvis/stability/multi_horizon_snapshot.py +11 -0
- arvis/stability/predictive_snapshot.py +12 -0
- arvis/stability/stability_observer.py +29 -0
- arvis/stability/stability_snapshot.py +63 -0
- arvis/stability/stability_state_projector.py +89 -0
- arvis/stability/stability_statistics.py +62 -0
- arvis/telemetry/__init__.py +39 -0
- arvis/telemetry/adapters/__init__.py +83 -0
- arvis/telemetry/adapters/core.py +64 -0
- arvis/telemetry/adapters/errors.py +132 -0
- arvis/telemetry/adapters/forecast.py +40 -0
- arvis/telemetry/adapters/multi.py +38 -0
- arvis/telemetry/adapters/predictive.py +40 -0
- arvis/telemetry/adapters/stability.py +51 -0
- arvis/telemetry/adapters/stats.py +38 -0
- arvis/telemetry/adapters/symbolic_drift.py +44 -0
- arvis/telemetry/adapters/symbolic_features.py +47 -0
- arvis/telemetry/adapters/symbolic_state.py +46 -0
- arvis/telemetry/adapters/tension.py +41 -0
- arvis/telemetry/event.py +149 -0
- arvis/telemetry/redaction.py +32 -0
- arvis/telemetry/sink.py +74 -0
- arvis/telemetry/types.py +12 -0
- arvis/timeline/__init__.py +21 -0
- arvis/timeline/timeline_commitment.py +116 -0
- arvis/timeline/timeline_consistency_validator.py +35 -0
- arvis/timeline/timeline_cursor.py +78 -0
- arvis/timeline/timeline_delta.py +215 -0
- arvis/timeline/timeline_entry.py +164 -0
- arvis/timeline/timeline_hashchain.py +98 -0
- arvis/timeline/timeline_snapshot.py +81 -0
- arvis/timeline/timeline_types.py +55 -0
- arvis/timeline/timeline_view.py +57 -0
- arvis/timeline/timeline_view_types.py +22 -0
- arvis/timeline/timeline_window.py +61 -0
- arvis/tools/__init__.py +0 -0
- arvis/tools/authorization_service.py +294 -0
- arvis/tools/authorized_invocation.py +446 -0
- arvis/tools/base.py +59 -0
- arvis/tools/confirmation.py +472 -0
- arvis/tools/effect_context.py +154 -0
- arvis/tools/effect_dispatcher.py +254 -0
- arvis/tools/executor.py +134 -0
- arvis/tools/manager.py +564 -0
- arvis/tools/registry.py +168 -0
- arvis/tools/retry_policy.py +54 -0
- arvis/tools/runtime/__init__.py +8 -0
- arvis/tools/runtime/runtime_bindings.py +22 -0
- arvis/tools/spec.py +64 -0
- arvis/tools/tool_result.py +93 -0
- arvis/tools/tool_schema.py +22 -0
- arvis/types/__init__.py +10 -0
- arvis/types/identifiers.py +20 -0
- arvis/types/time.py +50 -0
- arvis/types/timestamps.py +7 -0
- arvis/uncertainty/__init__.py +17 -0
- arvis/uncertainty/uncertainty_axis.py +20 -0
- arvis/uncertainty/uncertainty_frame.py +24 -0
- arvis/uncertainty/uncertainty_frame_registry.py +51 -0
- arvis/uncertainty/uncertainty_inference.py +114 -0
- arvis/uncertainty/uncertainty_to_intent_mapper.py +69 -0
- arvis-0.1.0a12.dist-info/METADATA +454 -0
- arvis-0.1.0a12.dist-info/RECORD +844 -0
- arvis-0.1.0a12.dist-info/WHEEL +5 -0
- arvis-0.1.0a12.dist-info/licenses/AUTHORS_NOTE.md +29 -0
- arvis-0.1.0a12.dist-info/licenses/LICENSE +172 -0
- arvis-0.1.0a12.dist-info/licenses/NOTICE +6 -0
- arvis-0.1.0a12.dist-info/top_level.txt +1 -0
arvis/__init__.py
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# arvis/__init__.py
|
|
2
|
+
"""
|
|
3
|
+
Top-level public API.
|
|
4
|
+
|
|
5
|
+
Only stable high-level entrypoints are exposed here.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from .api.audit import AuditCommitmentPolicy
|
|
9
|
+
from .api.engine import ArvisEngine
|
|
10
|
+
from .api.os import CognitiveOS, CognitiveOSConfig
|
|
11
|
+
from .api.runtime_controls import TrustedRuntimeControls
|
|
12
|
+
from .api.runtime_mode import RuntimeMode
|
|
13
|
+
from .api.version import PACKAGE_VERSION
|
|
14
|
+
|
|
15
|
+
__version__ = PACKAGE_VERSION
|
|
16
|
+
|
|
17
|
+
__all__ = [
|
|
18
|
+
"ArvisEngine",
|
|
19
|
+
"AuditCommitmentPolicy",
|
|
20
|
+
"CognitiveOS",
|
|
21
|
+
"CognitiveOSConfig",
|
|
22
|
+
"RuntimeMode",
|
|
23
|
+
"TrustedRuntimeControls",
|
|
24
|
+
]
|
arvis/action/__init__.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# arvis/action/__init__.py
|
|
2
|
+
|
|
3
|
+
from .action_context import ActionContext
|
|
4
|
+
from .action_decision import ActionDecision
|
|
5
|
+
from .action_mode import ActionMode
|
|
6
|
+
from .action_template import ActionTemplate
|
|
7
|
+
|
|
8
|
+
__all__ = [
|
|
9
|
+
"ActionContext",
|
|
10
|
+
"ActionDecision",
|
|
11
|
+
"ActionMode",
|
|
12
|
+
"ActionTemplate",
|
|
13
|
+
]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# arvis/action/action_context.py
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@dataclass(frozen=True)
|
|
7
|
+
class ActionContext:
|
|
8
|
+
"""
|
|
9
|
+
Minimal kernel-safe action context.
|
|
10
|
+
|
|
11
|
+
Kernel invariants:
|
|
12
|
+
- immutable
|
|
13
|
+
- no backend dependency
|
|
14
|
+
- no place/control coupling
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
user_id: str
|
|
18
|
+
responsibility_mode: str = "standard"
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# arvis/action/action_decision.py
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from typing import Any
|
|
5
|
+
|
|
6
|
+
from .action_mode import ActionMode
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass(frozen=True)
|
|
10
|
+
class ActionDecision:
|
|
11
|
+
"""
|
|
12
|
+
Declarative result of evaluating an action.
|
|
13
|
+
|
|
14
|
+
Kernel invariants:
|
|
15
|
+
- immutable
|
|
16
|
+
- no execution
|
|
17
|
+
- explicit decision surface
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
allowed: bool
|
|
21
|
+
requires_user_validation: bool = False
|
|
22
|
+
denied_reason: str | None = None
|
|
23
|
+
audit_required: bool = False
|
|
24
|
+
tool: str | None = None
|
|
25
|
+
tool_payload: dict[str, Any] | None = None
|
|
26
|
+
action_mode: ActionMode = ActionMode.ASSISTED
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# arvis/action/action_evaluator.py
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from arvis.action.action_context import ActionContext
|
|
8
|
+
from arvis.math.signals import RiskSignal
|
|
9
|
+
|
|
10
|
+
from .action_decision import ActionDecision
|
|
11
|
+
from .action_mapper import map_verdict_to_action
|
|
12
|
+
from .action_template import ActionTemplate
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def evaluate_action(
|
|
16
|
+
verdict: Any,
|
|
17
|
+
template: ActionTemplate,
|
|
18
|
+
risk: RiskSignal,
|
|
19
|
+
context: ActionContext | None = None,
|
|
20
|
+
) -> ActionDecision:
|
|
21
|
+
"""
|
|
22
|
+
Context-aware action evaluation.
|
|
23
|
+
|
|
24
|
+
Combines:
|
|
25
|
+
- cognitive verdict
|
|
26
|
+
- action capabilities
|
|
27
|
+
- system risk
|
|
28
|
+
|
|
29
|
+
Kernel invariants:
|
|
30
|
+
- deterministic
|
|
31
|
+
- no side effects
|
|
32
|
+
- no external dependencies
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
base_decision = map_verdict_to_action(verdict)
|
|
36
|
+
|
|
37
|
+
# --------------------------------------------------
|
|
38
|
+
# Risk overrides
|
|
39
|
+
# --------------------------------------------------
|
|
40
|
+
|
|
41
|
+
# High risk + destructive action → block
|
|
42
|
+
if float(risk) > 0.7 and template.writes_data:
|
|
43
|
+
return ActionDecision(
|
|
44
|
+
allowed=False,
|
|
45
|
+
requires_user_validation=False,
|
|
46
|
+
denied_reason="high_risk_write_block",
|
|
47
|
+
audit_required=True,
|
|
48
|
+
action_mode=base_decision.action_mode,
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
# External trigger + medium risk → require validation
|
|
52
|
+
if float(risk) > 0.4 and template.triggers_external:
|
|
53
|
+
return ActionDecision(
|
|
54
|
+
allowed=True,
|
|
55
|
+
requires_user_validation=True,
|
|
56
|
+
denied_reason=None,
|
|
57
|
+
audit_required=True,
|
|
58
|
+
action_mode=base_decision.action_mode,
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
# Irreversible + any risk → require validation
|
|
62
|
+
if not template.reversible and float(risk) > 0.2:
|
|
63
|
+
return ActionDecision(
|
|
64
|
+
allowed=True,
|
|
65
|
+
requires_user_validation=True,
|
|
66
|
+
denied_reason=None,
|
|
67
|
+
audit_required=True,
|
|
68
|
+
action_mode=base_decision.action_mode,
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
# --------------------------------------------------
|
|
72
|
+
# Context overrides (user responsibility)
|
|
73
|
+
# --------------------------------------------------
|
|
74
|
+
|
|
75
|
+
if context is not None:
|
|
76
|
+
# Strict mode → force validation
|
|
77
|
+
if context.responsibility_mode == "strict":
|
|
78
|
+
return ActionDecision(
|
|
79
|
+
allowed=base_decision.allowed,
|
|
80
|
+
requires_user_validation=True,
|
|
81
|
+
denied_reason=base_decision.denied_reason,
|
|
82
|
+
audit_required=True,
|
|
83
|
+
action_mode=base_decision.action_mode,
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
# Autonomous mode → reduce friction (safe only)
|
|
87
|
+
if context.responsibility_mode == "autonomous":
|
|
88
|
+
if base_decision.allowed and float(risk) < 0.3:
|
|
89
|
+
return ActionDecision(
|
|
90
|
+
allowed=True,
|
|
91
|
+
requires_user_validation=False,
|
|
92
|
+
denied_reason=None,
|
|
93
|
+
audit_required=False,
|
|
94
|
+
action_mode=base_decision.action_mode,
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
return base_decision
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# arvis/action/action_mapper.py
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from arvis.math.lyapunov.lyapunov_gate import LyapunovVerdict
|
|
6
|
+
|
|
7
|
+
from .action_decision import ActionDecision
|
|
8
|
+
from .action_mode import ActionMode
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def map_verdict_to_action(verdict: LyapunovVerdict) -> ActionDecision:
|
|
12
|
+
"""
|
|
13
|
+
Pure mapping from cognitive verdict → action decision.
|
|
14
|
+
|
|
15
|
+
Kernel invariants:
|
|
16
|
+
- no side effects
|
|
17
|
+
- deterministic
|
|
18
|
+
- no external dependency
|
|
19
|
+
- no pipeline coupling
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
if verdict == LyapunovVerdict.ABSTAIN:
|
|
23
|
+
return ActionDecision(
|
|
24
|
+
allowed=False,
|
|
25
|
+
requires_user_validation=False,
|
|
26
|
+
denied_reason="stability_guard",
|
|
27
|
+
audit_required=True,
|
|
28
|
+
action_mode=ActionMode.MANUAL,
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
if verdict == LyapunovVerdict.REQUIRE_CONFIRMATION:
|
|
32
|
+
return ActionDecision(
|
|
33
|
+
allowed=True,
|
|
34
|
+
requires_user_validation=True,
|
|
35
|
+
denied_reason=None,
|
|
36
|
+
audit_required=True,
|
|
37
|
+
action_mode=ActionMode.ASSISTED,
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
# ALLOW
|
|
41
|
+
return ActionDecision(
|
|
42
|
+
allowed=True,
|
|
43
|
+
requires_user_validation=False,
|
|
44
|
+
denied_reason=None,
|
|
45
|
+
audit_required=False,
|
|
46
|
+
action_mode=ActionMode.AUTOMATIC,
|
|
47
|
+
)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# arvis/action/action_mode.py
|
|
2
|
+
|
|
3
|
+
from enum import StrEnum
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ActionMode(StrEnum):
|
|
7
|
+
"""
|
|
8
|
+
Describes how an action is initiated and validated.
|
|
9
|
+
|
|
10
|
+
Kernel invariant:
|
|
11
|
+
- declarative only
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
MANUAL = "manual"
|
|
15
|
+
ASSISTED = "assisted"
|
|
16
|
+
AUTOMATIC = "automatic"
|
|
17
|
+
BLOCKED = "blocked"
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# arvis/action/action_policy.py
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
|
|
7
|
+
from arvis.action.action_decision import ActionDecision
|
|
8
|
+
from arvis.action.action_mode import ActionMode
|
|
9
|
+
from arvis.math.signals import RiskSignal
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@dataclass(frozen=True)
|
|
13
|
+
class ActionPolicy:
|
|
14
|
+
"""
|
|
15
|
+
Global policy layer (system-level constraints)
|
|
16
|
+
|
|
17
|
+
ZKCS-safe:
|
|
18
|
+
- deterministic
|
|
19
|
+
- no external calls
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
max_risk_threshold: float = 0.85
|
|
23
|
+
require_audit_above: float = 0.6
|
|
24
|
+
|
|
25
|
+
def apply(
|
|
26
|
+
self,
|
|
27
|
+
decision: ActionDecision,
|
|
28
|
+
risk: RiskSignal,
|
|
29
|
+
) -> ActionDecision:
|
|
30
|
+
# --------------------------------------------------
|
|
31
|
+
# 1. Hard block (system safety)
|
|
32
|
+
# --------------------------------------------------
|
|
33
|
+
if float(risk) >= self.max_risk_threshold:
|
|
34
|
+
return ActionDecision(
|
|
35
|
+
allowed=False,
|
|
36
|
+
requires_user_validation=False,
|
|
37
|
+
denied_reason="policy_risk_threshold",
|
|
38
|
+
audit_required=True,
|
|
39
|
+
tool=decision.tool,
|
|
40
|
+
tool_payload=decision.tool_payload,
|
|
41
|
+
action_mode=ActionMode.BLOCKED,
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
# --------------------------------------------------
|
|
45
|
+
# 2. Force audit
|
|
46
|
+
# --------------------------------------------------
|
|
47
|
+
if float(risk) >= self.require_audit_above:
|
|
48
|
+
return ActionDecision(
|
|
49
|
+
allowed=decision.allowed,
|
|
50
|
+
requires_user_validation=decision.requires_user_validation,
|
|
51
|
+
denied_reason=decision.denied_reason,
|
|
52
|
+
audit_required=True,
|
|
53
|
+
tool=decision.tool,
|
|
54
|
+
tool_payload=decision.tool_payload,
|
|
55
|
+
action_mode=decision.action_mode,
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
# --------------------------------------------------
|
|
59
|
+
# 3. passthrough
|
|
60
|
+
# --------------------------------------------------
|
|
61
|
+
return decision
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# arvis/action/action_resolver.py
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from arvis.action.action_template import ActionTemplate
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def resolve_action(decision_result: Any) -> ActionTemplate:
|
|
11
|
+
"""
|
|
12
|
+
Resolve an ActionTemplate from a cognitive decision.
|
|
13
|
+
|
|
14
|
+
Kernel invariants:
|
|
15
|
+
- deterministic
|
|
16
|
+
- no side effects
|
|
17
|
+
- no external dependency
|
|
18
|
+
- no pipeline coupling
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
# Minimal v1 strategy:
|
|
22
|
+
# fallback to generic safe action
|
|
23
|
+
|
|
24
|
+
# You can branch later on decision_result.reason, intent, etc.
|
|
25
|
+
|
|
26
|
+
return ActionTemplate(
|
|
27
|
+
action_id="default_read",
|
|
28
|
+
description="default safe read action",
|
|
29
|
+
reads_data=True,
|
|
30
|
+
writes_data=False,
|
|
31
|
+
triggers_external=False,
|
|
32
|
+
risk_level="low",
|
|
33
|
+
reversible=True,
|
|
34
|
+
)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# arvis/action/action_template.py
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@dataclass(frozen=True)
|
|
7
|
+
class ActionTemplate:
|
|
8
|
+
"""
|
|
9
|
+
Declarative description of a possible action.
|
|
10
|
+
|
|
11
|
+
Kernel invariants:
|
|
12
|
+
- immutable
|
|
13
|
+
- no execution
|
|
14
|
+
- no side effects
|
|
15
|
+
- capability description only
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
action_id: str
|
|
19
|
+
description: str
|
|
20
|
+
|
|
21
|
+
reads_data: bool = False
|
|
22
|
+
writes_data: bool = False
|
|
23
|
+
triggers_external: bool = False
|
|
24
|
+
|
|
25
|
+
risk_level: str = "low"
|
|
26
|
+
reversible: bool = True
|
|
27
|
+
|
|
28
|
+
user_facing_label: str | None = None
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# arvis/adapters/ir/adaptive_adapter.py
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class AdaptiveIRAdapter:
|
|
9
|
+
@staticmethod
|
|
10
|
+
def from_adaptive(snapshot: Any) -> dict[str, Any] | None:
|
|
11
|
+
if snapshot is None:
|
|
12
|
+
return None
|
|
13
|
+
|
|
14
|
+
return {
|
|
15
|
+
"schema_version": "v1",
|
|
16
|
+
"available": True,
|
|
17
|
+
"stability_band": getattr(snapshot, "band", None),
|
|
18
|
+
"veto": bool(getattr(snapshot, "is_unstable", False)),
|
|
19
|
+
"margin": getattr(snapshot, "margin", None),
|
|
20
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# arvis/adapters/ir/cognitive_ir_builder.py
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from arvis.ir.cognitive_ir import CognitiveIR
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class CognitiveIRBuilder:
|
|
11
|
+
@staticmethod
|
|
12
|
+
def from_context(ctx: Any) -> CognitiveIR:
|
|
13
|
+
"""
|
|
14
|
+
Build canonical IR from pipeline context.
|
|
15
|
+
|
|
16
|
+
Pure projection:
|
|
17
|
+
- no logic
|
|
18
|
+
- no mutation
|
|
19
|
+
- no side effects
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
tool_results: list[dict[str, Any]] | None = None
|
|
23
|
+
|
|
24
|
+
extra = getattr(ctx, "extra", None)
|
|
25
|
+
if isinstance(extra, dict):
|
|
26
|
+
results = extra.get("tool_results", [])
|
|
27
|
+
if results:
|
|
28
|
+
tool_results = [
|
|
29
|
+
{
|
|
30
|
+
"tool_name": r.tool_name,
|
|
31
|
+
"success": r.success,
|
|
32
|
+
"output": r.output,
|
|
33
|
+
"error": r.error,
|
|
34
|
+
"latency_ms": getattr(r, "latency_ms", None),
|
|
35
|
+
}
|
|
36
|
+
for r in results
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
return CognitiveIR(
|
|
40
|
+
input=getattr(ctx, "ir_input", None),
|
|
41
|
+
context=getattr(ctx, "ir_context", None),
|
|
42
|
+
decision=getattr(ctx, "ir_decision", None),
|
|
43
|
+
state=getattr(ctx, "ir_state", None),
|
|
44
|
+
gate=getattr(ctx, "ir_gate", None),
|
|
45
|
+
projection=getattr(ctx, "ir_projection", None),
|
|
46
|
+
validity=getattr(ctx, "ir_validity", None),
|
|
47
|
+
stability=getattr(ctx, "ir_stability", None),
|
|
48
|
+
adaptive=getattr(ctx, "ir_adaptive", None),
|
|
49
|
+
tools=tool_results,
|
|
50
|
+
)
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# arvis/adapters/ir/decision_adapter.py
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from hashlib import sha256
|
|
6
|
+
from json import dumps
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
from arvis.ir.decision import (
|
|
10
|
+
CognitiveActionIR,
|
|
11
|
+
CognitiveConflictIR,
|
|
12
|
+
CognitiveDecisionIR,
|
|
13
|
+
CognitiveGapIR,
|
|
14
|
+
CognitiveKnowledgeIR,
|
|
15
|
+
CognitiveUncertaintyIR,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def _hash(payload: dict[str, Any]) -> str:
|
|
20
|
+
return sha256(dumps(payload, sort_keys=True, default=str).encode()).hexdigest()
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _string_value(value: object | None, default: str = "") -> str:
|
|
24
|
+
if value is None:
|
|
25
|
+
return default
|
|
26
|
+
enum_value = getattr(value, "value", None)
|
|
27
|
+
if isinstance(enum_value, str):
|
|
28
|
+
return enum_value
|
|
29
|
+
return str(value)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def _normalize_reason_codes(value: object | None) -> tuple[str, ...]:
|
|
33
|
+
if value is None:
|
|
34
|
+
return ()
|
|
35
|
+
if isinstance(value, (list, tuple)):
|
|
36
|
+
return tuple(str(x).strip() for x in value if str(x).strip())
|
|
37
|
+
raw = str(value)
|
|
38
|
+
return tuple(part.strip() for part in raw.split("|") if part.strip())
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class DecisionIRAdapter:
|
|
42
|
+
@staticmethod
|
|
43
|
+
def from_result(result: object) -> CognitiveDecisionIR:
|
|
44
|
+
reason_codes = _normalize_reason_codes(
|
|
45
|
+
getattr(result, "reason_codes", None) or getattr(result, "reason", None)
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
actions = tuple(
|
|
49
|
+
CognitiveActionIR(
|
|
50
|
+
action_id=str(getattr(a, "action_id", "unknown")),
|
|
51
|
+
category=str(getattr(a, "category", "unknown")),
|
|
52
|
+
severity=DecisionIRAdapter._severity(a),
|
|
53
|
+
requires_confirmation=DecisionIRAdapter._severity(a) != "safe",
|
|
54
|
+
parameters=getattr(a, "parameters", {}) or {},
|
|
55
|
+
)
|
|
56
|
+
for a in (getattr(result, "proposed_actions", []) or [])
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
gaps = tuple(
|
|
60
|
+
CognitiveGapIR(
|
|
61
|
+
gap_type=_string_value(getattr(g, "type", None), "unknown"),
|
|
62
|
+
severity=_string_value(getattr(g, "severity", None), "medium"),
|
|
63
|
+
description=str(getattr(g, "description", "")),
|
|
64
|
+
)
|
|
65
|
+
for g in (getattr(result, "gaps", []) or [])
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
conflicts = tuple(
|
|
69
|
+
CognitiveConflictIR(
|
|
70
|
+
conflict_type=_string_value(getattr(c, "type", None), "unknown"),
|
|
71
|
+
severity=_string_value(getattr(c, "severity", None), "high"),
|
|
72
|
+
description=str(getattr(c, "description", "")),
|
|
73
|
+
resolvable_by_confirmation=bool(
|
|
74
|
+
getattr(c, "resolvable_by_confirmation", True)
|
|
75
|
+
),
|
|
76
|
+
)
|
|
77
|
+
for c in (getattr(result, "conflicts", []) or [])
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
knowledge_snapshot = getattr(result, "knowledge_snapshot", None)
|
|
81
|
+
knowledge = None
|
|
82
|
+
if knowledge_snapshot is not None:
|
|
83
|
+
knowledge = CognitiveKnowledgeIR(
|
|
84
|
+
state=_string_value(
|
|
85
|
+
getattr(knowledge_snapshot, "state", None), "unknown"
|
|
86
|
+
).lower(),
|
|
87
|
+
support_level=getattr(knowledge_snapshot, "support_level", None),
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
uncertainty = tuple(
|
|
91
|
+
CognitiveUncertaintyIR(
|
|
92
|
+
axis=_string_value(getattr(u, "axis", None), "epistemic"),
|
|
93
|
+
level=float(getattr(u, "level", 0.5)),
|
|
94
|
+
explanation=getattr(u, "explanation", None),
|
|
95
|
+
)
|
|
96
|
+
for u in (getattr(result, "uncertainty_frames", []) or [])
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
memory_intent = _string_value(
|
|
100
|
+
getattr(result, "memory_intent", None), "none"
|
|
101
|
+
).lower()
|
|
102
|
+
|
|
103
|
+
payload = {
|
|
104
|
+
"reason_codes": reason_codes,
|
|
105
|
+
"memory_intent": memory_intent,
|
|
106
|
+
"actions": [a.action_id for a in actions],
|
|
107
|
+
"gaps": [g.gap_type for g in gaps],
|
|
108
|
+
"conflicts": [c.conflict_type for c in conflicts],
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return CognitiveDecisionIR(
|
|
112
|
+
decision_id=_hash(payload),
|
|
113
|
+
decision_kind=DecisionIRAdapter._kind(reason_codes, memory_intent),
|
|
114
|
+
memory_intent=memory_intent,
|
|
115
|
+
reason_codes=reason_codes,
|
|
116
|
+
proposed_actions=actions,
|
|
117
|
+
gaps=gaps,
|
|
118
|
+
conflicts=conflicts,
|
|
119
|
+
reasoning_intents=tuple(
|
|
120
|
+
_string_value(x)
|
|
121
|
+
for x in (getattr(result, "reasoning_intents", []) or [])
|
|
122
|
+
),
|
|
123
|
+
uncertainty_frames=uncertainty,
|
|
124
|
+
knowledge=knowledge,
|
|
125
|
+
context_hints=getattr(result, "context_hints", {}) or {},
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
@staticmethod
|
|
129
|
+
def _kind(reason_codes: tuple[str, ...], memory_intent: str) -> str:
|
|
130
|
+
tokens = set(reason_codes)
|
|
131
|
+
|
|
132
|
+
if "action_request" in tokens:
|
|
133
|
+
return "action"
|
|
134
|
+
if "search_user_files" in tokens:
|
|
135
|
+
return "action"
|
|
136
|
+
if memory_intent not in {"", "none"}:
|
|
137
|
+
return "memory"
|
|
138
|
+
if "conversation" in tokens:
|
|
139
|
+
return "conversational"
|
|
140
|
+
if "search" in tokens or "informational_query" in tokens:
|
|
141
|
+
return "informational"
|
|
142
|
+
if "meta_query" in tokens:
|
|
143
|
+
return "meta"
|
|
144
|
+
return "unknown"
|
|
145
|
+
|
|
146
|
+
@staticmethod
|
|
147
|
+
def _severity(action: object) -> str:
|
|
148
|
+
action_id = str(getattr(action, "action_id", ""))
|
|
149
|
+
|
|
150
|
+
if action_id in {"search_user_files", "retrieve", "summarize"}:
|
|
151
|
+
return "safe"
|
|
152
|
+
if action_id == "memory_store":
|
|
153
|
+
return "confirm"
|
|
154
|
+
return "confirm"
|