siphrix 1.0.0__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.
- siphrix/__init__.py +94 -0
- siphrix/__main__.py +13 -0
- siphrix/adapters/__init__.py +98 -0
- siphrix/adapters/context/__init__.py +15 -0
- siphrix/adapters/context/base.py +81 -0
- siphrix/adapters/context/composite_context.py +80 -0
- siphrix/adapters/context/environment_context.py +37 -0
- siphrix/adapters/context/normalizer.py +339 -0
- siphrix/adapters/context/role_context.py +37 -0
- siphrix/adapters/context/session_context.py +37 -0
- siphrix/adapters/context/tenant_context.py +37 -0
- siphrix/adapters/executors/__init__.py +10 -0
- siphrix/adapters/executors/base.py +241 -0
- siphrix/adapters/executors/email_executor.py +384 -0
- siphrix/adapters/executors/filesystem_executor.py +271 -0
- siphrix/adapters/executors/network_executor.py +309 -0
- siphrix/adapters/executors/os_enforcement_bridge.py +32716 -0
- siphrix/adapters/executors/pre_execution_gate.py +934 -0
- siphrix/adapters/executors/sandbox_executor.py +351 -0
- siphrix/adapters/executors/shell_executor.py +240 -0
- siphrix/adapters/executors/stub_executor.py +47 -0
- siphrix/adapters/frameworks/__init__.py +7 -0
- siphrix/adapters/frameworks/agent_runtime_adapter.py +85 -0
- siphrix/adapters/frameworks/base.py +158 -0
- siphrix/adapters/frameworks/orchestration_adapter.py +65 -0
- siphrix/adapters/frameworks/workflow_adapter.py +57 -0
- siphrix/adapters/planners/__init__.py +19 -0
- siphrix/adapters/planners/anthropic_planner.py +57 -0
- siphrix/adapters/planners/base.py +93 -0
- siphrix/adapters/planners/custom_planner.py +24 -0
- siphrix/adapters/planners/gemini_planner.py +173 -0
- siphrix/adapters/planners/local_planner.py +29 -0
- siphrix/adapters/planners/mock_planner.py +84 -0
- siphrix/adapters/planners/normalizer.py +408 -0
- siphrix/adapters/planners/ollama_planner.py +46 -0
- siphrix/adapters/planners/openai_planner.py +58 -0
- siphrix/adapters/registry.py +1004 -0
- siphrix/agent.py +556 -0
- siphrix/analysis/__init__.py +144 -0
- siphrix/analysis/bounded_explorer.py +53 -0
- siphrix/analysis/collusion.py +41 -0
- siphrix/analysis/containment_plan.py +121 -0
- siphrix/analysis/cross_agent_correlation.py +159 -0
- siphrix/analysis/cross_analyzer.py +21 -0
- siphrix/analysis/cross_coverage.py +29 -0
- siphrix/analysis/cross_diff.py +15 -0
- siphrix/analysis/cross_engine.py +15 -0
- siphrix/analysis/cross_policy.py +23 -0
- siphrix/analysis/cross_rules.py +27 -0
- siphrix/analysis/cross_state.py +46 -0
- siphrix/analysis/decomposition.py +178 -0
- siphrix/analysis/determinism.py +77 -0
- siphrix/analysis/escalation.py +151 -0
- siphrix/analysis/exfiltration.py +56 -0
- siphrix/analysis/formal.py +14 -0
- siphrix/analysis/formal_properties.py +38 -0
- siphrix/analysis/observation_bus.py +41 -0
- siphrix/analysis/policies.py +24 -0
- siphrix/analysis/proof_artifacts.py +18 -0
- siphrix/analysis/simulation.py +153 -0
- siphrix/analysis/state_machine.py +218 -0
- siphrix/analysis/temporal_risk.py +155 -0
- siphrix/analysis/threat_graph.py +120 -0
- siphrix/analysis/trajectory.py +102 -0
- siphrix/analysis/zero_trust.py +120 -0
- siphrix/audit.py +564 -0
- siphrix/canon/canon_runtime.py +401 -0
- siphrix/canon/canon_v1.md +118 -0
- siphrix/canon/canon_v1_laws.yaml +419 -0
- siphrix/canon/conformance_tests.yaml +107 -0
- siphrix/cli/__init__.py +60 -0
- siphrix/cli/app.py +19328 -0
- siphrix/cli/demo.py +845 -0
- siphrix/cli/enterprise.py +28 -0
- siphrix/cli/governance.py +26 -0
- siphrix/cli/predictive.py +28 -0
- siphrix/cli/style.py +325 -0
- siphrix/coherence/__init__.py +3 -0
- siphrix/coherence/enforcer.py +87 -0
- siphrix/config.py +265 -0
- siphrix/console/__init__.py +54 -0
- siphrix/console/_public_api.py +1561 -0
- siphrix/console/ai_tool_bridge.py +1896 -0
- siphrix/console/analytics_risk_intelligence.py +8394 -0
- siphrix/console/app.py +26 -0
- siphrix/console/approval_workflow.py +4556 -0
- siphrix/console/audit_explorer.py +2079 -0
- siphrix/console/audit_workspace.py +493 -0
- siphrix/console/browser_ai_monitor.py +9242 -0
- siphrix/console/constitutional_projection.py +1743 -0
- siphrix/console/contracts.py +2096 -0
- siphrix/console/dashboard_overview.py +2577 -0
- siphrix/console/decision_workspace.py +250 -0
- siphrix/console/distributed_infrastructure.py +7744 -0
- siphrix/console/enterprise_features.py +7970 -0
- siphrix/console/high_assurance_enforcement.py +5910 -0
- siphrix/console/hosted_foundation.py +4561 -0
- siphrix/console/hosted_policy_control_plane.py +8316 -0
- siphrix/console/local_agent.py +991 -0
- siphrix/console/multi_agent_governance.py +9179 -0
- siphrix/console/notifications_alerting.py +9051 -0
- siphrix/console/operator_actions.py +475 -0
- siphrix/console/operator_api.py +2658 -0
- siphrix/console/operator_api_auth.py +206 -0
- siphrix/console/operator_command_execution.py +519 -0
- siphrix/console/operator_commands.py +1143 -0
- siphrix/console/operator_control.py +582 -0
- siphrix/console/org_rbac.py +7651 -0
- siphrix/console/policy_builder.py +1538 -0
- siphrix/console/policy_workspace.py +395 -0
- siphrix/console/replay_lab.py +3370 -0
- siphrix/console/replay_workspace.py +356 -0
- siphrix/console/risk_feed_workspace.py +462 -0
- siphrix/console/routes/__init__.py +5 -0
- siphrix/console/routes/console_routes.py +46 -0
- siphrix/console/runtime_workspace.py +592 -0
- siphrix/console/simulation_projection.py +237 -0
- siphrix/console/ui/__init__.py +93 -0
- siphrix/console/ui/console_app.py +584 -0
- siphrix/console/ui/console_rendering.py +103 -0
- siphrix/console/ui/console_ui_models.py +383 -0
- siphrix/console/ui/workspace_viewers.py +394 -0
- siphrix/console/workspace_links.py +333 -0
- siphrix/constitution/__init__.py +43 -0
- siphrix/constitution/_public_api.py +652 -0
- siphrix/constitution/agent_exchange_record.py +306 -0
- siphrix/constitution/agent_exchange_record_validation.py +46 -0
- siphrix/constitution/agent_handshake_record.py +295 -0
- siphrix/constitution/agent_handshake_record_validation.py +46 -0
- siphrix/constitution/agent_identity_record.py +442 -0
- siphrix/constitution/agent_identity_record_validation.py +127 -0
- siphrix/constitution/approval_envelope_record.py +222 -0
- siphrix/constitution/approval_envelope_record_validation.py +46 -0
- siphrix/constitution/audit_trace_record.py +459 -0
- siphrix/constitution/audit_trace_record_validation.py +128 -0
- siphrix/constitution/audit_trace_validation_pack.py +51 -0
- siphrix/constitution/audit_trace_validation_pack_validation.py +91 -0
- siphrix/constitution/context_window_record.py +466 -0
- siphrix/constitution/context_window_record_validation.py +128 -0
- siphrix/constitution/context_window_validation_pack.py +51 -0
- siphrix/constitution/context_window_validation_pack_validation.py +91 -0
- siphrix/constitution/delegation_authority_record.py +420 -0
- siphrix/constitution/delegation_authority_record_validation.py +77 -0
- siphrix/constitution/distribution_channel_record.py +238 -0
- siphrix/constitution/distribution_channel_record_validation.py +46 -0
- siphrix/constitution/distribution_lineage_record.py +249 -0
- siphrix/constitution/distribution_lineage_record_validation.py +45 -0
- siphrix/constitution/distribution_manifest_record.py +240 -0
- siphrix/constitution/distribution_manifest_record_validation.py +46 -0
- siphrix/constitution/distribution_receipt_record.py +261 -0
- siphrix/constitution/distribution_receipt_record_validation.py +45 -0
- siphrix/constitution/enclave_attestation_record.py +285 -0
- siphrix/constitution/enclave_attestation_record_validation.py +46 -0
- siphrix/constitution/enclave_boundary_record.py +275 -0
- siphrix/constitution/enclave_boundary_record_validation.py +46 -0
- siphrix/constitution/execution/__init__.py +44 -0
- siphrix/constitution/execution/_public_api.py +213 -0
- siphrix/constitution/execution/decision_executor_binding_validation.py +194 -0
- siphrix/constitution/execution/decision_executor_bindings.py +490 -0
- siphrix/constitution/execution/execution_attestation.py +587 -0
- siphrix/constitution/execution/execution_attestation_validation.py +230 -0
- siphrix/constitution/execution/execution_boundaries.py +490 -0
- siphrix/constitution/execution/execution_boundary_validation.py +252 -0
- siphrix/constitution/execution/execution_bridge.py +348 -0
- siphrix/constitution/execution/execution_bridge_resolution.py +104 -0
- siphrix/constitution/execution/execution_bridge_validation.py +114 -0
- siphrix/constitution/execution/execution_conformance.py +562 -0
- siphrix/constitution/execution/execution_conformance_validation.py +230 -0
- siphrix/constitution/execution/execution_handoff.py +603 -0
- siphrix/constitution/execution/execution_handoff_validation.py +227 -0
- siphrix/constitution/execution/execution_refusal.py +541 -0
- siphrix/constitution/execution/execution_refusal_validation.py +208 -0
- siphrix/constitution/execution/executor_capabilities.py +593 -0
- siphrix/constitution/execution/executor_capability_validation.py +299 -0
- siphrix/constitution/execution/executor_contract.py +669 -0
- siphrix/constitution/execution/executor_validation.py +282 -0
- siphrix/constitution/execution/operational/__init__.py +49 -0
- siphrix/constitution/execution/operational/_public_api.py +239 -0
- siphrix/constitution/execution/operational/boundary.py +406 -0
- siphrix/constitution/execution/operational/capability.py +291 -0
- siphrix/constitution/execution/operational/completion.py +340 -0
- siphrix/constitution/execution/operational/completion_validation.py +142 -0
- siphrix/constitution/execution/operational/dispatch_binding.py +319 -0
- siphrix/constitution/execution/operational/dispatch_binding_resolution.py +133 -0
- siphrix/constitution/execution/operational/dispatch_binding_validation.py +123 -0
- siphrix/constitution/execution/operational/handoff.py +335 -0
- siphrix/constitution/execution/operational/handoff_consumption.py +121 -0
- siphrix/constitution/execution/operational/handoff_validation.py +107 -0
- siphrix/constitution/execution/operational/identity.py +322 -0
- siphrix/constitution/execution/operational/outcome_production.py +287 -0
- siphrix/constitution/execution/operational/outcome_production_resolution.py +128 -0
- siphrix/constitution/execution/operational/outcome_production_validation.py +88 -0
- siphrix/constitution/execution/operational/production_completion.py +279 -0
- siphrix/constitution/execution/operational/production_completion_resolution.py +121 -0
- siphrix/constitution/execution/operational/production_completion_validation.py +89 -0
- siphrix/constitution/execution/operational/record.py +258 -0
- siphrix/constitution/execution/operational/refusal.py +306 -0
- siphrix/constitution/execution/operational/refusal_validation.py +126 -0
- siphrix/constitution/execution/operational/registry.py +318 -0
- siphrix/constitution/execution/operational/registry_validation.py +222 -0
- siphrix/constitution/execution/operational/request.py +287 -0
- siphrix/constitution/execution/operational/request_validation.py +126 -0
- siphrix/constitution/execution/operational/result.py +302 -0
- siphrix/constitution/execution/operational/result_validation.py +126 -0
- siphrix/constitution/execution/operational/validation.py +349 -0
- siphrix/constitution/inter_agent_policy_record.py +315 -0
- siphrix/constitution/inter_agent_policy_record_validation.py +66 -0
- siphrix/constitution/mesh_route_record.py +288 -0
- siphrix/constitution/mesh_route_record_validation.py +46 -0
- siphrix/constitution/mesh_topology_record.py +285 -0
- siphrix/constitution/mesh_topology_record_validation.py +46 -0
- siphrix/constitution/organization_entry_gate.py +367 -0
- siphrix/constitution/organization_entry_gate_validation.py +112 -0
- siphrix/constitution/organization_execution_scope_binding.py +360 -0
- siphrix/constitution/organization_execution_scope_binding_validation.py +112 -0
- siphrix/constitution/organization_identity.py +310 -0
- siphrix/constitution/organization_identity_validation.py +100 -0
- siphrix/constitution/organization_membership.py +345 -0
- siphrix/constitution/organization_membership_validation.py +111 -0
- siphrix/constitution/organization_policy_attachment.py +381 -0
- siphrix/constitution/organization_policy_attachment_validation.py +114 -0
- siphrix/constitution/organization_role.py +352 -0
- siphrix/constitution/organization_role_assignment.py +368 -0
- siphrix/constitution/organization_role_assignment_validation.py +113 -0
- siphrix/constitution/organization_role_validation.py +110 -0
- siphrix/constitution/organization_scope.py +333 -0
- siphrix/constitution/organization_scope_bridge.py +365 -0
- siphrix/constitution/organization_scope_bridge_validation.py +112 -0
- siphrix/constitution/organization_scope_validation.py +108 -0
- siphrix/constitution/organization_validation_pack.py +128 -0
- siphrix/constitution/organization_validation_pack_validation.py +133 -0
- siphrix/constitution/quorum_requirement_record.py +220 -0
- siphrix/constitution/quorum_requirement_record_validation.py +46 -0
- siphrix/constitution/replay_record.py +431 -0
- siphrix/constitution/replay_record_validation.py +128 -0
- siphrix/constitution/replay_validation_pack.py +51 -0
- siphrix/constitution/replay_validation_pack_validation.py +90 -0
- siphrix/constitution/trust_attestation_record.py +244 -0
- siphrix/constitution/trust_attestation_record_validation.py +46 -0
- siphrix/constitution/trust_boundary_record.py +253 -0
- siphrix/constitution/trust_boundary_record_validation.py +46 -0
- siphrix/constitution/trust_relation_record.py +228 -0
- siphrix/constitution/trust_relation_record_validation.py +46 -0
- siphrix/contracts/__init__.py +52 -0
- siphrix/contracts/_public_api.py +672 -0
- siphrix/contracts/_validation_base.py +116 -0
- siphrix/contracts/_validation_constitutional.py +2074 -0
- siphrix/contracts/_validation_core.py +2273 -0
- siphrix/contracts/_validation_integration.py +292 -0
- siphrix/contracts/_validation_projected.py +1216 -0
- siphrix/contracts/_validation_risk.py +1772 -0
- siphrix/contracts/_validation_simulation.py +1406 -0
- siphrix/contracts/_validation_workspace.py +4702 -0
- siphrix/contracts/action.py +218 -0
- siphrix/contracts/adapter_capability.py +107 -0
- siphrix/contracts/agent_identity.py +221 -0
- siphrix/contracts/approval_runtime.py +803 -0
- siphrix/contracts/audit.py +18 -0
- siphrix/contracts/audit_event.py +132 -0
- siphrix/contracts/constitutional_audit.py +661 -0
- siphrix/contracts/constitutional_diff.py +1100 -0
- siphrix/contracts/context.py +101 -0
- siphrix/contracts/decision.py +116 -0
- siphrix/contracts/delegation_graph.py +571 -0
- siphrix/contracts/escalation_paths.py +760 -0
- siphrix/contracts/execution.py +183 -0
- siphrix/contracts/flow.py +253 -0
- siphrix/contracts/inter_agent_policy.py +581 -0
- siphrix/contracts/multi_agent.py +12 -0
- siphrix/contracts/planner.py +251 -0
- siphrix/contracts/quorum_resolver.py +753 -0
- siphrix/contracts/risk.py +11 -0
- siphrix/contracts/simulation.py +861 -0
- siphrix/contracts/trust_relations.py +726 -0
- siphrix/contracts/validation.py +229 -0
- siphrix/devtools/__init__.py +1 -0
- siphrix/doctor.py +302 -0
- siphrix/engine/__init__.py +65 -0
- siphrix/engine/canonical_manifest.py +18 -0
- siphrix/engine/gap_audit.py +38 -0
- siphrix/engine/runner_profiles.py +259 -0
- siphrix/engine/stack_declaration.py +30 -0
- siphrix/engine/unified_runner.py +420 -0
- siphrix/examples/__init__.py +47 -0
- siphrix/examples/integration_audit.py +7 -0
- siphrix/examples/integration_layer_utils.py +38 -0
- siphrix/examples/integration_snapshot.py +7 -0
- siphrix/examples/role_policy_resolver.py +18 -0
- siphrix/exec_intercept/__init__.py +4 -0
- siphrix/exec_intercept/evaluator.py +188 -0
- siphrix/exec_intercept/intercept.py +83 -0
- siphrix/exec_intercept/policy.py +25 -0
- siphrix/exec_intercept/types.py +48 -0
- siphrix/explanation.py +114 -0
- siphrix/foundation/__init__.py +111 -0
- siphrix/foundation/analyzer.py +37 -0
- siphrix/foundation/aspl.py +68 -0
- siphrix/foundation/aspl_lexer.py +97 -0
- siphrix/foundation/aspl_types.py +64 -0
- siphrix/foundation/audit_chain.py +99 -0
- siphrix/foundation/canon.py +30 -0
- siphrix/foundation/poe.py +44 -0
- siphrix/foundation/policy_signing.py +139 -0
- siphrix/foundation/policy_sources.py +30 -0
- siphrix/foundation/preflight.py +20 -0
- siphrix/foundation/proof_bundle.py +95 -0
- siphrix/foundation/state.py +30 -0
- siphrix/governance/__init__.py +39 -0
- siphrix/governance/_public_api.py +1012 -0
- siphrix/governance/audit/__init__.py +1 -0
- siphrix/governance/audit/certification.py +114 -0
- siphrix/governance/audit/chain_integrity.py +186 -0
- siphrix/governance/audit/chain_retrieval_truth.py +144 -0
- siphrix/governance/audit/chain_truth.py +175 -0
- siphrix/governance/audit/closure_manifest.py +103 -0
- siphrix/governance/audit/correlation_readiness.py +155 -0
- siphrix/governance/audit/cross_layer_consistency.py +97 -0
- siphrix/governance/audit/evidence_assurance.py +207 -0
- siphrix/governance/audit/export.py +98 -0
- siphrix/governance/audit/exporter.py +173 -0
- siphrix/governance/audit/forensic_readiness.py +245 -0
- siphrix/governance/audit/global_determinism.py +81 -0
- siphrix/governance/audit/global_truth.py +86 -0
- siphrix/governance/audit/handoff.py +84 -0
- siphrix/governance/audit/incident_readiness.py +148 -0
- siphrix/governance/audit/incident_reconstruction.py +137 -0
- siphrix/governance/audit/incident_reproducibility.py +75 -0
- siphrix/governance/audit/index.py +175 -0
- siphrix/governance/audit/index_query_consistency.py +142 -0
- siphrix/governance/audit/integrity.py +166 -0
- siphrix/governance/audit/lineage_confidence.py +201 -0
- siphrix/governance/audit/match_safety.py +114 -0
- siphrix/governance/audit/no_overclaim.py +88 -0
- siphrix/governance/audit/package_safety.py +100 -0
- siphrix/governance/audit/packaging_readiness.py +130 -0
- siphrix/governance/audit/packaging_truth.py +107 -0
- siphrix/governance/audit/query_engine.py +461 -0
- siphrix/governance/audit/query_honesty.py +188 -0
- siphrix/governance/audit/query_integrity.py +346 -0
- siphrix/governance/audit/query_projection.py +90 -0
- siphrix/governance/audit/query_projection_faithfulness.py +154 -0
- siphrix/governance/audit/query_readiness.py +173 -0
- siphrix/governance/audit/query_reproducibility.py +138 -0
- siphrix/governance/audit/query_truth.py +164 -0
- siphrix/governance/audit/reconstruction_chain_truth.py +137 -0
- siphrix/governance/audit/record.py +127 -0
- siphrix/governance/audit/record_admissibility.py +254 -0
- siphrix/governance/audit/reproducibility.py +141 -0
- siphrix/governance/audit/retention_redaction_foundation.py +266 -0
- siphrix/governance/audit/retrieval_readiness.py +156 -0
- siphrix/governance/audit/schema.py +226 -0
- siphrix/governance/audit/tamper_detection.py +136 -0
- siphrix/governance/audit/timeline.py +161 -0
- siphrix/governance/audit/timeline_hardening.py +209 -0
- siphrix/governance/audit/workspace_projection.py +111 -0
- siphrix/governance/compliance/__init__.py +1 -0
- siphrix/governance/compliance/export.py +58 -0
- siphrix/governance/compliance/mapping.py +115 -0
- siphrix/governance/compliance/replay.py +45 -0
- siphrix/governance/correlation_graph.py +391 -0
- siphrix/governance/correlation_graph_integrity.py +120 -0
- siphrix/governance/decision_ledger.py +79 -0
- siphrix/governance/delegated_authority.py +109 -0
- siphrix/governance/evidence/__init__.py +1 -0
- siphrix/governance/evidence/bundle.py +127 -0
- siphrix/governance/evidence/bundle_faithfulness.py +170 -0
- siphrix/governance/evidence/export.py +99 -0
- siphrix/governance/evidence/provenance.py +137 -0
- siphrix/governance/evidence/retention.py +54 -0
- siphrix/governance/exception_governance.py +112 -0
- siphrix/governance/explainability.py +31 -0
- siphrix/governance/governance_record.py +55 -0
- siphrix/governance/incident/__init__.py +1 -0
- siphrix/governance/incident/grouping_honesty.py +105 -0
- siphrix/governance/incident/reconstruction.py +176 -0
- siphrix/governance/incident/review_package.py +156 -0
- siphrix/governance/incident/truth.py +122 -0
- siphrix/governance/operator_investigation_view.py +113 -0
- siphrix/governance/policy_framework.py +45 -0
- siphrix/governance/quorum_approval.py +147 -0
- siphrix/governance/quorum_store.py +348 -0
- siphrix/governance/regulatory_profiles.py +83 -0
- siphrix/governance/retention_workflow.py +41 -0
- siphrix/hosted/__init__.py +36 -0
- siphrix/hosted/admin_dashboard.py +930 -0
- siphrix/hosted/scaffold.py +958 -0
- siphrix/hosted/store.py +1031 -0
- siphrix/identity/__init__.py +3 -0
- siphrix/identity/loader.py +14 -0
- siphrix/identity/schema.py +64 -0
- siphrix/identity/temp_builder.py +29 -0
- siphrix/identity/validator.py +17 -0
- siphrix/integration_flow/__init__.py +5 -0
- siphrix/integration_flow/orchestrator.py +423 -0
- siphrix/integrations/__init__.py +70 -0
- siphrix/integrations/audit.py +100 -0
- siphrix/integrations/layer_utils.py +419 -0
- siphrix/integrations/snapshot.py +245 -0
- siphrix/intention/__init__.py +3 -0
- siphrix/intention/interpreter.py +116 -0
- siphrix/intention/types.py +18 -0
- siphrix/local_agent.py +375 -0
- siphrix/local_daemon.py +1365 -0
- siphrix/local_diagnostics.py +273 -0
- siphrix/local_hosted_import/__init__.py +32 -0
- siphrix/local_hosted_import/cli.py +276 -0
- siphrix/local_hosted_import/daemon_api.py +234 -0
- siphrix/local_hosted_import/store.py +430 -0
- siphrix/local_hosted_import/verifier.py +560 -0
- siphrix/local_state.py +1081 -0
- siphrix/logs/__init__.py +3 -0
- siphrix/logs/logger.py +43 -0
- siphrix/memory/__init__.py +3 -0
- siphrix/memory/api.py +207 -0
- siphrix/memory/schema.py +33 -0
- siphrix/memory/store.py +32 -0
- siphrix/orchestrator/__init__.py +14 -0
- siphrix/orchestrator/llm_stub.py +43 -0
- siphrix/orchestrator/pipeline.py +251 -0
- siphrix/policies/agent_default_v1.yaml +22 -0
- siphrix/policies/global_baseline_v1.yaml +40 -0
- siphrix/policies/index.yaml +5 -0
- siphrix/policies/org_default_v1.yaml +17 -0
- siphrix/policies/team_default_v1.yaml +22 -0
- siphrix/policy_packs/__init__.py +153 -0
- siphrix/policy_packs/bridge.py +223 -0
- siphrix/policy_packs/dev_agent_defaults.yaml +53 -0
- siphrix/policy_packs/enterprise_defaults.yaml +57 -0
- siphrix/policy_packs/resolver.py +83 -0
- siphrix/policy_packs/roles/admin.yaml +33 -0
- siphrix/policy_packs/roles/developer.yaml +36 -0
- siphrix/policy_packs/roles/finance.yaml +26 -0
- siphrix/policy_packs/roles/support.yaml +24 -0
- siphrix/policy_packs/safe_defaults.yaml +279 -0
- siphrix/policy_packs/signing.py +279 -0
- siphrix/policy_remote.py +136 -0
- siphrix/policy_runtime/__init__.py +20 -0
- siphrix/policy_runtime/input.py +178 -0
- siphrix/policy_runtime/loader.py +569 -0
- siphrix/policy_runtime/manager.py +1066 -0
- siphrix/policy_runtime/registry.py +73 -0
- siphrix/policy_runtime/rule_eval.py +91 -0
- siphrix/policy_runtime/types.py +87 -0
- siphrix/policy_sources/source.py +129 -0
- siphrix/policy_versioning/__init__.py +39 -0
- siphrix/policy_versioning/_public_api.py +3994 -0
- siphrix/policy_versioning/activation/__init__.py +1 -0
- siphrix/policy_versioning/activation/activation.py +100 -0
- siphrix/policy_versioning/activation/atomicity.py +96 -0
- siphrix/policy_versioning/activation/atomicity_truth.py +98 -0
- siphrix/policy_versioning/activation/chain_truth.py +113 -0
- siphrix/policy_versioning/activation/eligibility.py +117 -0
- siphrix/policy_versioning/activation/emergency_control.py +125 -0
- siphrix/policy_versioning/activation/emergency_safety.py +94 -0
- siphrix/policy_versioning/activation/foundation_readiness.py +160 -0
- siphrix/policy_versioning/activation/honesty.py +124 -0
- siphrix/policy_versioning/activation/integrity.py +205 -0
- siphrix/policy_versioning/activation/projection.py +121 -0
- siphrix/policy_versioning/activation/projection_faithfulness.py +109 -0
- siphrix/policy_versioning/activation/readiness.py +184 -0
- siphrix/policy_versioning/activation/reproducibility.py +64 -0
- siphrix/policy_versioning/activation/rollback_orchestration.py +190 -0
- siphrix/policy_versioning/activation/rollback_preparation.py +156 -0
- siphrix/policy_versioning/activation/rollback_safety.py +75 -0
- siphrix/policy_versioning/activation/rollback_truth.py +105 -0
- siphrix/policy_versioning/activation/rollout.py +174 -0
- siphrix/policy_versioning/activation/rollout_eligibility.py +169 -0
- siphrix/policy_versioning/activation/staging.py +115 -0
- siphrix/policy_versioning/attestation_view.py +491 -0
- siphrix/policy_versioning/batch_replay_reports.py +626 -0
- siphrix/policy_versioning/compilation/__init__.py +1 -0
- siphrix/policy_versioning/compilation/compiler.py +816 -0
- siphrix/policy_versioning/compilation/compiler_coverage.py +521 -0
- siphrix/policy_versioning/compilation/compiler_diff.py +441 -0
- siphrix/policy_versioning/compilation/compiler_export.py +2350 -0
- siphrix/policy_versioning/compilation/compiler_honesty.py +783 -0
- siphrix/policy_versioning/compilation/compiler_integrity.py +1071 -0
- siphrix/policy_versioning/compilation/compiler_readiness.py +819 -0
- siphrix/policy_versioning/compilation/compiler_reproducibility.py +452 -0
- siphrix/policy_versioning/compilation/compiler_safety.py +636 -0
- siphrix/policy_versioning/compilation/compiler_summary.py +325 -0
- siphrix/policy_versioning/compilation/compiler_trace.py +275 -0
- siphrix/policy_versioning/compilation/consistency.py +117 -0
- siphrix/policy_versioning/compilation/cross_run_analysis.py +154 -0
- siphrix/policy_versioning/compilation/derivation.py +110 -0
- siphrix/policy_versioning/compilation/expected_overlays.py +135 -0
- siphrix/policy_versioning/compilation/fingerprint_registry.py +167 -0
- siphrix/policy_versioning/compilation/gap_enforcement.py +59 -0
- siphrix/policy_versioning/compilation/graph.py +201 -0
- siphrix/policy_versioning/compilation/graph_integrity.py +187 -0
- siphrix/policy_versioning/compilation/graph_projection.py +68 -0
- siphrix/policy_versioning/compilation/lineage.py +73 -0
- siphrix/policy_versioning/compilation/lineage_honesty.py +92 -0
- siphrix/policy_versioning/compilation/models.py +991 -0
- siphrix/policy_versioning/compilation/regression.py +108 -0
- siphrix/policy_versioning/compilation/resolution.py +453 -0
- siphrix/policy_versioning/compilation/semantic_dependency.py +104 -0
- siphrix/policy_versioning/compilation/stage33_export.py +161 -0
- siphrix/policy_versioning/compilation/stage33_reproducibility.py +68 -0
- siphrix/policy_versioning/compilation/stage34_readiness.py +96 -0
- siphrix/policy_versioning/compilation/trace.py +70 -0
- siphrix/policy_versioning/compilation/trace_integrity.py +106 -0
- siphrix/policy_versioning/context/__init__.py +1 -0
- siphrix/policy_versioning/context/compat.py +611 -0
- siphrix/policy_versioning/context/consistency.py +725 -0
- siphrix/policy_versioning/context/fingerprint.py +272 -0
- siphrix/policy_versioning/context/foundation_readiness.py +668 -0
- siphrix/policy_versioning/context/invariants.py +940 -0
- siphrix/policy_versioning/context/migration.py +477 -0
- siphrix/policy_versioning/context/models.py +1908 -0
- siphrix/policy_versioning/context/normalization_hardening.py +444 -0
- siphrix/policy_versioning/context/provenance.py +502 -0
- siphrix/policy_versioning/context/resolver.py +2397 -0
- siphrix/policy_versioning/context/resolver_arbitration.py +783 -0
- siphrix/policy_versioning/context/resolver_export.py +552 -0
- siphrix/policy_versioning/context/resolver_honesty.py +509 -0
- siphrix/policy_versioning/context/resolver_integrity.py +741 -0
- siphrix/policy_versioning/context/resolver_readiness.py +591 -0
- siphrix/policy_versioning/context/resolver_reproducibility.py +347 -0
- siphrix/policy_versioning/counterfactual_models.py +417 -0
- siphrix/policy_versioning/distribution/__init__.py +1 -0
- siphrix/policy_versioning/distribution/foundation_readiness.py +193 -0
- siphrix/policy_versioning/distribution/honesty.py +107 -0
- siphrix/policy_versioning/distribution/integrity.py +182 -0
- siphrix/policy_versioning/distribution/protocol.py +197 -0
- siphrix/policy_versioning/distribution/protocol_readiness.py +173 -0
- siphrix/policy_versioning/distribution/readiness.py +105 -0
- siphrix/policy_versioning/distribution/reproducibility.py +114 -0
- siphrix/policy_versioning/environment_view.py +392 -0
- siphrix/policy_versioning/evaluation/__init__.py +1 -0
- siphrix/policy_versioning/evaluation/contradictions.py +135 -0
- siphrix/policy_versioning/evaluation/engine.py +353 -0
- siphrix/policy_versioning/evaluation/honesty.py +145 -0
- siphrix/policy_versioning/evaluation/integrity.py +226 -0
- siphrix/policy_versioning/evaluation/matching.py +520 -0
- siphrix/policy_versioning/evaluation/models.py +344 -0
- siphrix/policy_versioning/evaluation/projection.py +133 -0
- siphrix/policy_versioning/evaluation/readiness.py +164 -0
- siphrix/policy_versioning/evaluation/reproducibility.py +104 -0
- siphrix/policy_versioning/evaluation/result.py +359 -0
- siphrix/policy_versioning/evaluation/safety.py +103 -0
- siphrix/policy_versioning/explanation/__init__.py +1 -0
- siphrix/policy_versioning/explanation/closure.py +71 -0
- siphrix/policy_versioning/explanation/consistency.py +101 -0
- siphrix/policy_versioning/explanation/contracts.py +120 -0
- siphrix/policy_versioning/explanation/diff.py +231 -0
- siphrix/policy_versioning/explanation/drift.py +73 -0
- siphrix/policy_versioning/explanation/projection.py +143 -0
- siphrix/policy_versioning/explanation/readiness.py +164 -0
- siphrix/policy_versioning/explanation/registry.py +176 -0
- siphrix/policy_versioning/explanation/reproducibility.py +117 -0
- siphrix/policy_versioning/explanation/safety.py +109 -0
- siphrix/policy_versioning/explanation/stability.py +49 -0
- siphrix/policy_versioning/intake_governance.py +378 -0
- siphrix/policy_versioning/integration.py +424 -0
- siphrix/policy_versioning/investigation.py +2222 -0
- siphrix/policy_versioning/investigation_hardening.py +2307 -0
- siphrix/policy_versioning/lifecycle/__init__.py +1 -0
- siphrix/policy_versioning/lifecycle/final_stage3_honesty.py +116 -0
- siphrix/policy_versioning/lifecycle/final_stage3_integrity.py +173 -0
- siphrix/policy_versioning/lifecycle/final_stage3_readiness.py +98 -0
- siphrix/policy_versioning/lifecycle/point2_certification.py +135 -0
- siphrix/policy_versioning/lifecycle/point2_closure_assurance.py +182 -0
- siphrix/policy_versioning/lifecycle/point2_closure_manifest.py +107 -0
- siphrix/policy_versioning/lifecycle/point2_closure_readiness.py +96 -0
- siphrix/policy_versioning/lifecycle/point2_contracts.py +153 -0
- siphrix/policy_versioning/lifecycle/point2_handoff.py +98 -0
- siphrix/policy_versioning/lifecycle/point2_honesty.py +120 -0
- siphrix/policy_versioning/lifecycle/point2_integrity.py +166 -0
- siphrix/policy_versioning/lifecycle/point2_operational_profile.py +97 -0
- siphrix/policy_versioning/lifecycle/point2_postclosure_drift.py +94 -0
- siphrix/policy_versioning/lifecycle/point2_seal_enforcement.py +197 -0
- siphrix/policy_versioning/lifecycle/point2_transition_governance.py +187 -0
- siphrix/policy_versioning/lifecycle/point3_certification.py +194 -0
- siphrix/policy_versioning/lifecycle/point3_certification_stability.py +89 -0
- siphrix/policy_versioning/lifecycle/point3_closure_manifest.py +170 -0
- siphrix/policy_versioning/lifecycle/point3_closure_readiness.py +128 -0
- siphrix/policy_versioning/lifecycle/point3_contract_postclosure.py +85 -0
- siphrix/policy_versioning/lifecycle/point3_contracts.py +139 -0
- siphrix/policy_versioning/lifecycle/point3_drift_detection.py +139 -0
- siphrix/policy_versioning/lifecycle/point3_drift_impact.py +82 -0
- siphrix/policy_versioning/lifecycle/point3_handoff.py +154 -0
- siphrix/policy_versioning/lifecycle/point3_honesty.py +120 -0
- siphrix/policy_versioning/lifecycle/point3_integrity.py +170 -0
- siphrix/policy_versioning/lifecycle/point3_operational_profile.py +158 -0
- siphrix/policy_versioning/lifecycle/point3_postclosure_assurance.py +80 -0
- siphrix/policy_versioning/lifecycle/point3_postclosure_audit.py +78 -0
- siphrix/policy_versioning/lifecycle/point3_recertification.py +98 -0
- siphrix/policy_versioning/lifecycle/point3_seal_enforcement.py +167 -0
- siphrix/policy_versioning/lifecycle/policy_final_point3_readiness.py +135 -0
- siphrix/policy_versioning/lifecycle/stage3_certification.py +114 -0
- siphrix/policy_versioning/lifecycle/stage3_chain_truth.py +94 -0
- siphrix/policy_versioning/lifecycle/stage3_closure_manifest.py +113 -0
- siphrix/policy_versioning/lifecycle/stage3_contracts.py +132 -0
- siphrix/policy_versioning/lifecycle/stage3_drift_preparation.py +97 -0
- siphrix/policy_versioning/lifecycle/stage3_export_integration.py +124 -0
- siphrix/policy_versioning/lifecycle/stage3_handoff.py +92 -0
- siphrix/policy_versioning/lifecycle/stage3_operational_profile.py +83 -0
- siphrix/policy_versioning/lifecycle/stage3_operator_investigation_views.py +95 -0
- siphrix/policy_versioning/lifecycle/stage3_replay_integration.py +150 -0
- siphrix/policy_versioning/lifecycle/stage3_scope_assurance.py +104 -0
- siphrix/policy_versioning/local_policy_intake.py +161 -0
- siphrix/policy_versioning/local_policy_intake_hardening.py +100 -0
- siphrix/policy_versioning/local_policy_trust.py +142 -0
- siphrix/policy_versioning/local_policy_trust_safety.py +66 -0
- siphrix/policy_versioning/manifest/__init__.py +1 -0
- siphrix/policy_versioning/manifest/authority_contracts.py +169 -0
- siphrix/policy_versioning/manifest/authority_lineage.py +215 -0
- siphrix/policy_versioning/manifest/authority_overlap.py +250 -0
- siphrix/policy_versioning/manifest/channel_resolver.py +151 -0
- siphrix/policy_versioning/manifest/compatibility.py +144 -0
- siphrix/policy_versioning/manifest/compatibility_hardening.py +154 -0
- siphrix/policy_versioning/manifest/integrity.py +137 -0
- siphrix/policy_versioning/manifest/manifest.py +310 -0
- siphrix/policy_versioning/manifest/projection.py +143 -0
- siphrix/policy_versioning/manifest/projection_faithfulness.py +108 -0
- siphrix/policy_versioning/manifest/registry.py +156 -0
- siphrix/policy_versioning/manifest/registry_provenance.py +98 -0
- siphrix/policy_versioning/manifest/registry_provenance_truth.py +105 -0
- siphrix/policy_versioning/manifest/remote_channel_resolution.py +104 -0
- siphrix/policy_versioning/manifest/remote_channel_truth.py +100 -0
- siphrix/policy_versioning/manifest/remote_local_consistency.py +106 -0
- siphrix/policy_versioning/manifest/reproducibility.py +103 -0
- siphrix/policy_versioning/operator_hardening.py +2384 -0
- siphrix/policy_versioning/operator_views.py +1762 -0
- siphrix/policy_versioning/orchestration/__init__.py +1 -0
- siphrix/policy_versioning/orchestration/audit.py +60 -0
- siphrix/policy_versioning/orchestration/chain_truth.py +135 -0
- siphrix/policy_versioning/orchestration/fetch.py +158 -0
- siphrix/policy_versioning/orchestration/fetch_selection_safety.py +76 -0
- siphrix/policy_versioning/orchestration/honesty.py +132 -0
- siphrix/policy_versioning/orchestration/integrity.py +235 -0
- siphrix/policy_versioning/orchestration/projection.py +132 -0
- siphrix/policy_versioning/orchestration/projection_faithfulness.py +125 -0
- siphrix/policy_versioning/orchestration/readiness.py +112 -0
- siphrix/policy_versioning/orchestration/reproducibility.py +63 -0
- siphrix/policy_versioning/orchestration/resolution_trace.py +420 -0
- siphrix/policy_versioning/orchestration/revocation.py +160 -0
- siphrix/policy_versioning/orchestration/revocation_truth.py +95 -0
- siphrix/policy_versioning/orchestration/semantic_diff.py +920 -0
- siphrix/policy_versioning/orchestration/state.py +89 -0
- siphrix/policy_versioning/orchestration/target_truth.py +100 -0
- siphrix/policy_versioning/overlays/__init__.py +1 -0
- siphrix/policy_versioning/overlays/applicability.py +482 -0
- siphrix/policy_versioning/overlays/conflicts.py +435 -0
- siphrix/policy_versioning/overlays/explanations.py +519 -0
- siphrix/policy_versioning/overlays/field_merge.py +740 -0
- siphrix/policy_versioning/overlays/merge.py +622 -0
- siphrix/policy_versioning/overlays/models.py +811 -0
- siphrix/policy_versioning/overlays/readiness.py +639 -0
- siphrix/policy_versioning/overlays/scope.py +471 -0
- siphrix/policy_versioning/overlays/selector.py +888 -0
- siphrix/policy_versioning/overlays/semantics.py +353 -0
- siphrix/policy_versioning/overlays/soundness.py +345 -0
- siphrix/policy_versioning/policy_lineage.py +295 -0
- siphrix/policy_versioning/promotion_execution.py +355 -0
- siphrix/policy_versioning/registry_config.py +165 -0
- siphrix/policy_versioning/registry_intake.py +388 -0
- siphrix/policy_versioning/registry_view.py +397 -0
- siphrix/policy_versioning/replay/__init__.py +1 -0
- siphrix/policy_versioning/replay/compat.py +539 -0
- siphrix/policy_versioning/replay/engine.py +1657 -0
- siphrix/policy_versioning/replay/export_integration.py +602 -0
- siphrix/policy_versioning/replay/models.py +1528 -0
- siphrix/policy_versioning/replay/queries.py +549 -0
- siphrix/policy_versioning/replay/view_models.py +708 -0
- siphrix/policy_versioning/replay/workspace.py +366 -0
- siphrix/policy_versioning/resource_classifier.py +270 -0
- siphrix/policy_versioning/rollback_execution.py +471 -0
- siphrix/policy_versioning/runtime_integration/__init__.py +1 -0
- siphrix/policy_versioning/runtime_integration/bundle_assessment.py +85 -0
- siphrix/policy_versioning/runtime_integration/causal_attribution.py +122 -0
- siphrix/policy_versioning/runtime_integration/export_integration.py +162 -0
- siphrix/policy_versioning/runtime_integration/integration_chain_truth.py +113 -0
- siphrix/policy_versioning/runtime_integration/integration_closure_readiness.py +340 -0
- siphrix/policy_versioning/runtime_integration/integration_honesty.py +151 -0
- siphrix/policy_versioning/runtime_integration/integration_integrity.py +257 -0
- siphrix/policy_versioning/runtime_integration/integration_readiness.py +102 -0
- siphrix/policy_versioning/runtime_integration/integration_reproducibility.py +161 -0
- siphrix/policy_versioning/runtime_integration/investigation_views.py +89 -0
- siphrix/policy_versioning/runtime_integration/justification.py +140 -0
- siphrix/policy_versioning/runtime_integration/justification_honesty.py +130 -0
- siphrix/policy_versioning/runtime_integration/operator_views.py +97 -0
- siphrix/policy_versioning/runtime_integration/projection_contracts.py +95 -0
- siphrix/policy_versioning/runtime_integration/projection_faithfulness.py +120 -0
- siphrix/policy_versioning/runtime_integration/provenance_integrity.py +135 -0
- siphrix/policy_versioning/runtime_integration/replay_integration.py +202 -0
- siphrix/policy_versioning/runtime_integration/timeline_truth.py +334 -0
- siphrix/policy_versioning/runtime_integration/timeline_workspace.py +104 -0
- siphrix/policy_versioning/runtime_integration/trace_builder.py +152 -0
- siphrix/policy_versioning/runtime_integration/trace_integrity.py +193 -0
- siphrix/policy_versioning/runtime_integration/trace_linkage.py +58 -0
- siphrix/policy_versioning/runtime_integration/trace_models.py +490 -0
- siphrix/policy_versioning/runtime_integration/view_safety.py +197 -0
- siphrix/policy_versioning/session_resolver.py +303 -0
- siphrix/policy_versioning/snapshots/__init__.py +1 -0
- siphrix/policy_versioning/snapshots/approval_state_resolver.py +229 -0
- siphrix/policy_versioning/snapshots/decision_diff.py +2124 -0
- siphrix/policy_versioning/snapshots/decision_ready_policy.py +215 -0
- siphrix/policy_versioning/snapshots/decision_ready_policy_safety.py +95 -0
- siphrix/policy_versioning/snapshots/decision_snapshot_store.py +861 -0
- siphrix/policy_versioning/snapshots/lineage_engine.py +447 -0
- siphrix/policy_versioning/snapshots/lineage_integrity.py +383 -0
- siphrix/policy_versioning/snapshots/lineage_store.py +145 -0
- siphrix/policy_versioning/snapshots/snapshot_integrity.py +872 -0
- siphrix/policy_versioning/temporal_policy_resolver.py +326 -0
- siphrix/policy_versioning/tenant_view.py +262 -0
- siphrix/policy_versioning/transition_governance.py +356 -0
- siphrix/policy_versioning/transition_ledger.py +278 -0
- siphrix/policy_versioning/trust/__init__.py +1 -0
- siphrix/policy_versioning/trust/chain_consistency.py +173 -0
- siphrix/policy_versioning/trust/chain_risk.py +124 -0
- siphrix/policy_versioning/trust/epoch_drift.py +214 -0
- siphrix/policy_versioning/trust/foundation_readiness.py +127 -0
- siphrix/policy_versioning/trust/governance_readiness.py +154 -0
- siphrix/policy_versioning/trust/history.py +131 -0
- siphrix/policy_versioning/trust/honesty.py +96 -0
- siphrix/policy_versioning/trust/trust.py +373 -0
- siphrix/policy_versioning/versioned_policy_codec.py +312 -0
- siphrix/readiness/__init__.py +32 -0
- siphrix/readiness/assessor.py +260 -0
- siphrix/readiness/checks.py +1325 -0
- siphrix/readiness/models.py +102 -0
- siphrix/release.py +288 -0
- siphrix/resilience/__init__.py +123 -0
- siphrix/resilience/adaptive_guardrail.py +169 -0
- siphrix/resilience/audit_log_model.py +42 -0
- siphrix/resilience/blast_radius_control.py +115 -0
- siphrix/resilience/damage_containment.py +31 -0
- siphrix/resilience/distributed_control.py +150 -0
- siphrix/resilience/distributed_lock.py +34 -0
- siphrix/resilience/enforcement_cluster.py +66 -0
- siphrix/resilience/evidence_adaptation.py +85 -0
- siphrix/resilience/fragmented_kill_switch.py +98 -0
- siphrix/resilience/healing.py +69 -0
- siphrix/resilience/health_monitor.py +71 -0
- siphrix/resilience/human_recovery.py +79 -0
- siphrix/resilience/org_control_plane.py +109 -0
- siphrix/resilience/regional_control.py +122 -0
- siphrix/resilience/split_brain.py +40 -0
- siphrix/resilience/state_engine.py +55 -0
- siphrix/resilience/temporal_dsl.py +104 -0
- siphrix/resilience/temporal_policy.py +58 -0
- siphrix/resilience/temporal_state.py +33 -0
- siphrix/resilience/tenant_isolation.py +79 -0
- siphrix/risk/__init__.py +149 -0
- siphrix/risk/risk_execution.py +277 -0
- siphrix/risk/risk_explainer.py +496 -0
- siphrix/risk/risk_factor_engine.py +578 -0
- siphrix/risk/risk_orchestration.py +424 -0
- siphrix/risk/risk_policy_mapping.py +174 -0
- siphrix/risk/risk_score.py +562 -0
- siphrix/risk/risk_thresholds.py +160 -0
- siphrix/runtime/__init__.py +192 -0
- siphrix/runtime/audit_hardening.py +33 -0
- siphrix/runtime/bridge_analyzer.py +41 -0
- siphrix/runtime/broker_plane.py +146 -0
- siphrix/runtime/broker_protocol.py +40 -0
- siphrix/runtime/broker_socket.py +74 -0
- siphrix/runtime/capabilities.py +30 -0
- siphrix/runtime/capability_coupling.py +48 -0
- siphrix/runtime/contracts.py +93 -0
- siphrix/runtime/decision_snapshot.py +15 -0
- siphrix/runtime/enforcement.py +136 -0
- siphrix/runtime/enforcement_points.py +46 -0
- siphrix/runtime/evidence_ledger.py +148 -0
- siphrix/runtime/exec_intercept.py +6 -0
- siphrix/runtime/execution_guard.py +26 -0
- siphrix/runtime/failure_semantics.py +43 -0
- siphrix/runtime/hooks.py +99 -0
- siphrix/runtime/intervention.py +106 -0
- siphrix/runtime/kernel_syscall_interception.py +351 -0
- siphrix/runtime/linux_kernel_backend.py +131 -0
- siphrix/runtime/mediation.py +155 -0
- siphrix/runtime/policy_remote.py +21 -0
- siphrix/runtime/policy_runtime.py +17 -0
- siphrix/runtime/session_wrappers.py +35 -0
- siphrix/runtime/sessions.py +92 -0
- siphrix/runtime/syscall_intents.py +54 -0
- siphrix/runtime_paths.py +225 -0
- siphrix/simulation/__init__.py +27 -0
- siphrix/simulation/audit.py +397 -0
- siphrix/simulation/engine.py +945 -0
- siphrix/state/__init__.py +3 -0
- siphrix/state/state_manager.py +83 -0
- siphrix/tests_all_global.py +1089 -0
- siphrix/trust/__init__.py +146 -0
- siphrix/trust/attestation.py +105 -0
- siphrix/trust/broker_attestation.py +29 -0
- siphrix/trust/distributed_attestation.py +93 -0
- siphrix/trust/identity.py +13 -0
- siphrix/trust/integrity_chain.py +101 -0
- siphrix/trust/policy_anchor.py +42 -0
- siphrix/trust/policy_remote_guard.py +757 -0
- siphrix/trust/policy_store.py +45 -0
- siphrix/trust/push_updates.py +55 -0
- siphrix/trust/recheck.py +34 -0
- siphrix/trust/remote_policy_server.py +198 -0
- siphrix/trust/remote_sync.py +307 -0
- siphrix/trust/signed_heartbeat.py +145 -0
- siphrix/trust/trust_cascade.py +89 -0
- siphrix/trust/trust_epoch.py +115 -0
- siphrix/trust/trust_mode.py +366 -0
- siphrix/trust/trust_seal.py +190 -0
- siphrix/utils/__init__.py +5 -0
- siphrix/utils/io.py +16 -0
- siphrix/web_console/__init__.py +73 -0
- siphrix/web_console/static/console.css +606 -0
- siphrix/web_console/static/console.js +886 -0
- siphrix/web_console/static/index.html +344 -0
- siphrix-1.0.0.dist-info/METADATA +1543 -0
- siphrix-1.0.0.dist-info/RECORD +816 -0
- siphrix-1.0.0.dist-info/WHEEL +5 -0
- siphrix-1.0.0.dist-info/entry_points.txt +2 -0
- siphrix-1.0.0.dist-info/licenses/LICENSE +21 -0
- siphrix-1.0.0.dist-info/top_level.txt +1 -0
siphrix/__init__.py
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"""Siphrix — AI Action Firewall & Policy Runtime.
|
|
2
|
+
|
|
3
|
+
Siphrix sits between what an AI agent wants to do and what it is
|
|
4
|
+
allowed to do: it evaluates every agent action against a policy
|
|
5
|
+
before execution, emits an auditable decision trail, and fails closed
|
|
6
|
+
when in doubt.
|
|
7
|
+
|
|
8
|
+
CLI first-run path:
|
|
9
|
+
|
|
10
|
+
siphrix demo # the official three-flow demo
|
|
11
|
+
python -m siphrix --help # discover every subcommand
|
|
12
|
+
|
|
13
|
+
Internally Siphrix is built from four coordinated layers — a policy
|
|
14
|
+
decision layer (``siphrix.policy_runtime``), a runtime enforcement
|
|
15
|
+
layer (``siphrix.runtime``, ``siphrix.exec_intercept``), a
|
|
16
|
+
trust / audit / governance support layer (``siphrix.trust``,
|
|
17
|
+
``siphrix.audit``, ``siphrix.governance``), and an operator
|
|
18
|
+
readiness surface (``siphrix.doctor``, ``siphrix.readiness``,
|
|
19
|
+
the ``siphrix`` CLI). Externally it is one product: the firewall
|
|
20
|
+
at the boundary between agent intent and real-world action.
|
|
21
|
+
|
|
22
|
+
This module defines the official, product-facing public API. A small
|
|
23
|
+
set of names is promoted here; everything else lives under the
|
|
24
|
+
corresponding subpackage (``siphrix.orchestrator``,
|
|
25
|
+
``siphrix.policy_runtime``, ``siphrix.governance``,
|
|
26
|
+
``siphrix.contracts``, …) and must be imported explicitly.
|
|
27
|
+
|
|
28
|
+
Official public API
|
|
29
|
+
-------------------
|
|
30
|
+
|
|
31
|
+
Runtime execution:
|
|
32
|
+
|
|
33
|
+
from siphrix import run_pipeline, PipelineResult
|
|
34
|
+
|
|
35
|
+
result = run_pipeline("your input")
|
|
36
|
+
result.outcome # "proceed" | "block" | "ask_confirm" | "clarify"
|
|
37
|
+
result.final_text # generated text when outcome == "proceed"
|
|
38
|
+
|
|
39
|
+
Policy evaluation:
|
|
40
|
+
|
|
41
|
+
from siphrix import PolicyInput, PolicyManager, PolicyDecision
|
|
42
|
+
|
|
43
|
+
policy_input = PolicyInput.from_dict({"action_name": "http_get"})
|
|
44
|
+
decision: PolicyDecision = PolicyManager().decide(policy_input.to_action_context())
|
|
45
|
+
decision.verdict # "ALLOW" | "BLOCK" | "ABORT"
|
|
46
|
+
decision.reason # stable reason code
|
|
47
|
+
|
|
48
|
+
Invalid input is surfaced through ``PolicyInputValidationError``.
|
|
49
|
+
|
|
50
|
+
Agent / tool-calling integration:
|
|
51
|
+
|
|
52
|
+
from siphrix import ActionEvaluator
|
|
53
|
+
|
|
54
|
+
evaluator = ActionEvaluator()
|
|
55
|
+
response = evaluator.evaluate({
|
|
56
|
+
"action_name": "http_get",
|
|
57
|
+
"resource.domain": "example.com",
|
|
58
|
+
"effect_type": "READ_ONLY",
|
|
59
|
+
"risk_level": "LOW",
|
|
60
|
+
})
|
|
61
|
+
if response.allowed:
|
|
62
|
+
perform_action()
|
|
63
|
+
|
|
64
|
+
Version:
|
|
65
|
+
|
|
66
|
+
from siphrix import __version__
|
|
67
|
+
|
|
68
|
+
Stability
|
|
69
|
+
---------
|
|
70
|
+
The names re-exported here are the stable product surface. Names
|
|
71
|
+
reachable only through deeper module paths (``siphrix.<subpackage>.*``)
|
|
72
|
+
are documented per-subpackage but are not part of this top-level
|
|
73
|
+
contract.
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
from siphrix.agent import ActionEvaluationResponse, ActionEvaluator
|
|
77
|
+
from siphrix.orchestrator import PipelineResult, run_pipeline
|
|
78
|
+
from siphrix.policy_runtime.input import PolicyInput, PolicyInputValidationError
|
|
79
|
+
from siphrix.policy_runtime.manager import PolicyManager
|
|
80
|
+
from siphrix.policy_runtime.types import PolicyDecision
|
|
81
|
+
|
|
82
|
+
__version__ = "1.0.0"
|
|
83
|
+
|
|
84
|
+
__all__ = [
|
|
85
|
+
"ActionEvaluationResponse",
|
|
86
|
+
"ActionEvaluator",
|
|
87
|
+
"PipelineResult",
|
|
88
|
+
"PolicyDecision",
|
|
89
|
+
"PolicyInput",
|
|
90
|
+
"PolicyInputValidationError",
|
|
91
|
+
"PolicyManager",
|
|
92
|
+
"__version__",
|
|
93
|
+
"run_pipeline",
|
|
94
|
+
]
|
siphrix/__main__.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"""Package entry point for ``python -m siphrix``.
|
|
2
|
+
|
|
3
|
+
Delegates to the canonical CLI in :mod:`siphrix.cli.app` so that
|
|
4
|
+
``python -m siphrix <cmd>`` and the installed ``siphrix`` console
|
|
5
|
+
script run byte-identical code.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from siphrix.cli.app import main
|
|
11
|
+
|
|
12
|
+
if __name__ == "__main__":
|
|
13
|
+
raise SystemExit(main())
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"""Adapter domain surfaces for planners, context ingestion, and future frameworks.
|
|
2
|
+
|
|
3
|
+
This package root is a thin PEP 562 lazy facade. Public names are
|
|
4
|
+
owned by the sibling submodules listed in ``_ROUTES`` below; they are
|
|
5
|
+
resolved on first attribute access and cached into ``globals()`` for
|
|
6
|
+
subsequent O(1) dict hits. Behaviour is identical to the previous
|
|
7
|
+
eager re-export module: ``from siphrix.adapters import <name>`` still
|
|
8
|
+
works for every historical public name.
|
|
9
|
+
"""
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
import importlib
|
|
13
|
+
from typing import Any
|
|
14
|
+
|
|
15
|
+
_ROUTES: dict[str, str] = {
|
|
16
|
+
# from .registry
|
|
17
|
+
'AdapterLookupError': 'registry',
|
|
18
|
+
'AdapterRegistrationError': 'registry',
|
|
19
|
+
'AdapterSelectionError': 'registry',
|
|
20
|
+
'ContextAdapterRequirements': 'registry',
|
|
21
|
+
'ExecutorAdapterRequirements': 'registry',
|
|
22
|
+
'FrameworkAdapterRequirements': 'registry',
|
|
23
|
+
'IntegrationRegistry': 'registry',
|
|
24
|
+
'PlannerAdapterRequirements': 'registry',
|
|
25
|
+
'build_default_integration_registry': 'registry',
|
|
26
|
+
# from .frameworks
|
|
27
|
+
'AgentRuntimeAdapter': 'frameworks',
|
|
28
|
+
'OrchestrationAdapter': 'frameworks',
|
|
29
|
+
'WorkflowAdapter': 'frameworks',
|
|
30
|
+
# from .planners
|
|
31
|
+
'AnthropicPlanner': 'planners',
|
|
32
|
+
'CustomPlanner': 'planners',
|
|
33
|
+
'GeminiPlanner': 'planners',
|
|
34
|
+
'LocalPlanner': 'planners',
|
|
35
|
+
'MockPlanner': 'planners',
|
|
36
|
+
'OllamaPlanner': 'planners',
|
|
37
|
+
'OpenAIPlanner': 'planners',
|
|
38
|
+
# from .context
|
|
39
|
+
'CompositeContextAdapter': 'context',
|
|
40
|
+
'EnvironmentContextAdapter': 'context',
|
|
41
|
+
'RoleContextAdapter': 'context',
|
|
42
|
+
'SessionContextAdapter': 'context',
|
|
43
|
+
'TenantContextAdapter': 'context',
|
|
44
|
+
# from .executors
|
|
45
|
+
'EmailExecutor': 'executors',
|
|
46
|
+
'FilesystemExecutor': 'executors',
|
|
47
|
+
'NetworkExecutor': 'executors',
|
|
48
|
+
'SandboxExecutor': 'executors',
|
|
49
|
+
'ShellExecutor': 'executors',
|
|
50
|
+
'StubExecutor': 'executors',
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
__all__ = [
|
|
54
|
+
'AdapterLookupError',
|
|
55
|
+
'AdapterRegistrationError',
|
|
56
|
+
'AdapterSelectionError',
|
|
57
|
+
'AgentRuntimeAdapter',
|
|
58
|
+
'AnthropicPlanner',
|
|
59
|
+
'CompositeContextAdapter',
|
|
60
|
+
'ContextAdapterRequirements',
|
|
61
|
+
'CustomPlanner',
|
|
62
|
+
'EmailExecutor',
|
|
63
|
+
'EnvironmentContextAdapter',
|
|
64
|
+
'ExecutorAdapterRequirements',
|
|
65
|
+
'FilesystemExecutor',
|
|
66
|
+
'FrameworkAdapterRequirements',
|
|
67
|
+
'GeminiPlanner',
|
|
68
|
+
'IntegrationRegistry',
|
|
69
|
+
'LocalPlanner',
|
|
70
|
+
'MockPlanner',
|
|
71
|
+
'NetworkExecutor',
|
|
72
|
+
'OllamaPlanner',
|
|
73
|
+
'OpenAIPlanner',
|
|
74
|
+
'OrchestrationAdapter',
|
|
75
|
+
'PlannerAdapterRequirements',
|
|
76
|
+
'RoleContextAdapter',
|
|
77
|
+
'SandboxExecutor',
|
|
78
|
+
'SessionContextAdapter',
|
|
79
|
+
'ShellExecutor',
|
|
80
|
+
'StubExecutor',
|
|
81
|
+
'TenantContextAdapter',
|
|
82
|
+
'WorkflowAdapter',
|
|
83
|
+
'build_default_integration_registry',
|
|
84
|
+
]
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def __getattr__(name: str) -> Any:
|
|
88
|
+
sub = _ROUTES.get(name)
|
|
89
|
+
if sub is None:
|
|
90
|
+
raise AttributeError(f"module 'siphrix.adapters' has no attribute {name!r}")
|
|
91
|
+
module = importlib.import_module(f".{sub}", 'siphrix.adapters')
|
|
92
|
+
value = getattr(module, name)
|
|
93
|
+
globals()[name] = value
|
|
94
|
+
return value
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def __dir__() -> list[str]:
|
|
98
|
+
return sorted(set(globals()) | set(_ROUTES))
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"""Canonical context adapters for Siphrix integration boundaries."""
|
|
2
|
+
|
|
3
|
+
from siphrix.adapters.context.composite_context import CompositeContextAdapter
|
|
4
|
+
from siphrix.adapters.context.environment_context import EnvironmentContextAdapter
|
|
5
|
+
from siphrix.adapters.context.role_context import RoleContextAdapter
|
|
6
|
+
from siphrix.adapters.context.session_context import SessionContextAdapter
|
|
7
|
+
from siphrix.adapters.context.tenant_context import TenantContextAdapter
|
|
8
|
+
|
|
9
|
+
__all__ = [
|
|
10
|
+
"CompositeContextAdapter",
|
|
11
|
+
"EnvironmentContextAdapter",
|
|
12
|
+
"RoleContextAdapter",
|
|
13
|
+
"SessionContextAdapter",
|
|
14
|
+
"TenantContextAdapter",
|
|
15
|
+
]
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
"""Shared base helpers for canonical context adapters."""
|
|
4
|
+
|
|
5
|
+
from typing import Iterable, Mapping, Optional
|
|
6
|
+
|
|
7
|
+
from siphrix.adapters.context.normalizer import merge_context_fragments, normalize_context_mapping
|
|
8
|
+
from siphrix.contracts.adapter_capability import (
|
|
9
|
+
AdapterCapability,
|
|
10
|
+
AdapterDescriptor,
|
|
11
|
+
AdapterExecutionSemantics,
|
|
12
|
+
)
|
|
13
|
+
from siphrix.contracts.context import IntegrationContext
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class ContextAdapterBase:
|
|
17
|
+
provider_name = "context"
|
|
18
|
+
adapter_kind = "context"
|
|
19
|
+
supported_context_fields: tuple[str, ...] = ()
|
|
20
|
+
supports_merge = False
|
|
21
|
+
supports_partial_context = True
|
|
22
|
+
preserves_provenance = True
|
|
23
|
+
|
|
24
|
+
def describe_capabilities(self) -> AdapterDescriptor:
|
|
25
|
+
return AdapterDescriptor(
|
|
26
|
+
adapter_id=f"context:{self.provider_name}",
|
|
27
|
+
domain="context",
|
|
28
|
+
provider_name=self.provider_name,
|
|
29
|
+
adapter_kind=self.adapter_kind,
|
|
30
|
+
metadata={
|
|
31
|
+
"supports_merge": str(self.supports_merge).lower(),
|
|
32
|
+
"supports_partial_context": str(self.supports_partial_context).lower(),
|
|
33
|
+
"supports_field_provenance": str(self.preserves_provenance).lower(),
|
|
34
|
+
"supports_override_trail": str(self.preserves_provenance).lower(),
|
|
35
|
+
"primary_output": "IntegrationContext",
|
|
36
|
+
},
|
|
37
|
+
capabilities=(
|
|
38
|
+
AdapterCapability(
|
|
39
|
+
name=f"{self.provider_name}-context",
|
|
40
|
+
supported_context_fields=self.supported_context_fields,
|
|
41
|
+
execution_semantics=AdapterExecutionSemantics.SYNC,
|
|
42
|
+
preserves_raw_output=False,
|
|
43
|
+
produces_structured_actions=False,
|
|
44
|
+
validates_payloads=True,
|
|
45
|
+
supports_provenance=self.preserves_provenance,
|
|
46
|
+
metadata={
|
|
47
|
+
"kind": self.adapter_kind,
|
|
48
|
+
"supports_merge": str(self.supports_merge).lower(),
|
|
49
|
+
"supports_partial_context": str(self.supports_partial_context).lower(),
|
|
50
|
+
"supports_field_provenance": str(self.preserves_provenance).lower(),
|
|
51
|
+
"supports_override_trail": str(self.preserves_provenance).lower(),
|
|
52
|
+
"primary_output": "IntegrationContext",
|
|
53
|
+
},
|
|
54
|
+
),
|
|
55
|
+
),
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
def build_context_from_mapping(
|
|
59
|
+
self,
|
|
60
|
+
payload: Mapping[str, object],
|
|
61
|
+
*,
|
|
62
|
+
source_name: str,
|
|
63
|
+
defaults: Optional[Mapping[str, object]] = None,
|
|
64
|
+
source_system: Optional[str] = None,
|
|
65
|
+
) -> IntegrationContext:
|
|
66
|
+
fragment = normalize_context_mapping(
|
|
67
|
+
payload,
|
|
68
|
+
source_name=source_name,
|
|
69
|
+
supported_fields=self.supported_context_fields,
|
|
70
|
+
defaults=defaults,
|
|
71
|
+
source_adapter=self.provider_name,
|
|
72
|
+
source_system=source_system,
|
|
73
|
+
)
|
|
74
|
+
return merge_context_fragments((fragment,), source_adapter=self.provider_name, source_system=source_system)
|
|
75
|
+
|
|
76
|
+
def compose_context(self, fragments: Iterable, *, source_system: Optional[str] = None) -> IntegrationContext:
|
|
77
|
+
return merge_context_fragments(
|
|
78
|
+
fragments,
|
|
79
|
+
source_adapter=self.provider_name,
|
|
80
|
+
source_system=source_system,
|
|
81
|
+
)
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Mapping, Optional
|
|
4
|
+
|
|
5
|
+
from siphrix.adapters.context.base import ContextAdapterBase
|
|
6
|
+
from siphrix.adapters.context.environment_context import EnvironmentContextAdapter
|
|
7
|
+
from siphrix.adapters.context.normalizer import normalize_context_mapping
|
|
8
|
+
from siphrix.adapters.context.role_context import RoleContextAdapter
|
|
9
|
+
from siphrix.adapters.context.session_context import SessionContextAdapter
|
|
10
|
+
from siphrix.adapters.context.tenant_context import TenantContextAdapter
|
|
11
|
+
from siphrix.contracts.context import IntegrationContext
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class CompositeContextAdapter(ContextAdapterBase):
|
|
15
|
+
provider_name = "composite_context"
|
|
16
|
+
supported_context_fields = (
|
|
17
|
+
"role",
|
|
18
|
+
"tenant",
|
|
19
|
+
"environment",
|
|
20
|
+
"session",
|
|
21
|
+
"actor_id",
|
|
22
|
+
"actor_display_name",
|
|
23
|
+
"runtime_channel",
|
|
24
|
+
"source_system",
|
|
25
|
+
"source_adapter",
|
|
26
|
+
)
|
|
27
|
+
supports_merge = True
|
|
28
|
+
|
|
29
|
+
def __init__(self) -> None:
|
|
30
|
+
self.role_adapter = RoleContextAdapter()
|
|
31
|
+
self.tenant_adapter = TenantContextAdapter()
|
|
32
|
+
self.environment_adapter = EnvironmentContextAdapter()
|
|
33
|
+
self.session_adapter = SessionContextAdapter()
|
|
34
|
+
|
|
35
|
+
def normalize(
|
|
36
|
+
self,
|
|
37
|
+
*,
|
|
38
|
+
role_context: Optional[Mapping[str, object]] = None,
|
|
39
|
+
tenant_context: Optional[Mapping[str, object]] = None,
|
|
40
|
+
environment_context: Optional[Mapping[str, object]] = None,
|
|
41
|
+
session_context: Optional[Mapping[str, object]] = None,
|
|
42
|
+
defaults: Optional[Mapping[str, object]] = None,
|
|
43
|
+
source_system: Optional[str] = None,
|
|
44
|
+
) -> IntegrationContext:
|
|
45
|
+
fragments = []
|
|
46
|
+
if defaults:
|
|
47
|
+
fragments.append(
|
|
48
|
+
normalize_context_mapping(
|
|
49
|
+
{},
|
|
50
|
+
source_name="defaults",
|
|
51
|
+
supported_fields=self.supported_context_fields,
|
|
52
|
+
defaults=defaults,
|
|
53
|
+
source_system=source_system,
|
|
54
|
+
)
|
|
55
|
+
)
|
|
56
|
+
if tenant_context is not None:
|
|
57
|
+
fragments.append(self.tenant_adapter.normalize_fragment(tenant_context, source_system=source_system))
|
|
58
|
+
if environment_context is not None:
|
|
59
|
+
fragments.append(self.environment_adapter.normalize_fragment(environment_context, source_system=source_system))
|
|
60
|
+
if session_context is not None:
|
|
61
|
+
fragments.append(self.session_adapter.normalize_fragment(session_context, source_system=source_system))
|
|
62
|
+
if role_context is not None:
|
|
63
|
+
fragments.append(self.role_adapter.normalize_fragment(role_context, source_system=source_system))
|
|
64
|
+
return self.compose_context(fragments, source_system=source_system)
|
|
65
|
+
|
|
66
|
+
def normalize_mapping(
|
|
67
|
+
self,
|
|
68
|
+
payload: Mapping[str, object],
|
|
69
|
+
*,
|
|
70
|
+
defaults: Optional[Mapping[str, object]] = None,
|
|
71
|
+
source_system: Optional[str] = None,
|
|
72
|
+
) -> IntegrationContext:
|
|
73
|
+
return self.normalize(
|
|
74
|
+
role_context=payload,
|
|
75
|
+
tenant_context=payload,
|
|
76
|
+
environment_context=payload,
|
|
77
|
+
session_context=payload,
|
|
78
|
+
defaults=defaults,
|
|
79
|
+
source_system=source_system,
|
|
80
|
+
)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Mapping, Optional
|
|
4
|
+
|
|
5
|
+
from siphrix.adapters.context.base import ContextAdapterBase
|
|
6
|
+
from siphrix.adapters.context.normalizer import NormalizedContextFragment, normalize_context_mapping
|
|
7
|
+
from siphrix.contracts.context import IntegrationContext
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class EnvironmentContextAdapter(ContextAdapterBase):
|
|
11
|
+
provider_name = "environment_context"
|
|
12
|
+
supported_context_fields = ("environment", "runtime_channel", "source_system", "source_adapter")
|
|
13
|
+
|
|
14
|
+
def normalize(
|
|
15
|
+
self,
|
|
16
|
+
payload: Mapping[str, object],
|
|
17
|
+
*,
|
|
18
|
+
defaults: Optional[Mapping[str, object]] = None,
|
|
19
|
+
source_system: Optional[str] = None,
|
|
20
|
+
) -> IntegrationContext:
|
|
21
|
+
return self.build_context_from_mapping(payload, source_name="environment_context", defaults=defaults, source_system=source_system)
|
|
22
|
+
|
|
23
|
+
def normalize_fragment(
|
|
24
|
+
self,
|
|
25
|
+
payload: Mapping[str, object],
|
|
26
|
+
*,
|
|
27
|
+
defaults: Optional[Mapping[str, object]] = None,
|
|
28
|
+
source_system: Optional[str] = None,
|
|
29
|
+
) -> NormalizedContextFragment:
|
|
30
|
+
return normalize_context_mapping(
|
|
31
|
+
payload,
|
|
32
|
+
source_name="environment_context",
|
|
33
|
+
supported_fields=self.supported_context_fields,
|
|
34
|
+
defaults=defaults,
|
|
35
|
+
source_adapter=self.provider_name,
|
|
36
|
+
source_system=source_system,
|
|
37
|
+
)
|