siphrix 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- siphrix-1.0.0/CHANGELOG.md +433 -0
- siphrix-1.0.0/CONTRIBUTING.md +191 -0
- siphrix-1.0.0/LICENSE +21 -0
- siphrix-1.0.0/MANIFEST.in +145 -0
- siphrix-1.0.0/PKG-INFO +1543 -0
- siphrix-1.0.0/README.md +1479 -0
- siphrix-1.0.0/SECURITY.md +148 -0
- siphrix-1.0.0/docs/CANONICAL_CONTRACTS.md +134 -0
- siphrix-1.0.0/docs/README.md +38 -0
- siphrix-1.0.0/docs/REPO_STRUCTURE.md +79 -0
- siphrix-1.0.0/docs/architecture/ARCHITECTURE_v1.md +89 -0
- siphrix-1.0.0/docs/architecture/HOSTED_ADMIN_DASHBOARD_MVP.md +128 -0
- siphrix-1.0.0/docs/architecture/HOSTED_CONTROL_PLANE_BOUNDARY.md +396 -0
- siphrix-1.0.0/docs/architecture/HOSTED_FOUNDATION_RUNTIME.md +386 -0
- siphrix-1.0.0/docs/architecture/HOSTED_HEALTH_SKELETON.md +184 -0
- siphrix-1.0.0/docs/architecture/HOSTED_POLICY_BUNDLE_SYSTEM.md +459 -0
- siphrix-1.0.0/docs/architecture/HOSTED_SERVER_SCAFFOLD_BOUNDARY.md +369 -0
- siphrix-1.0.0/docs/architecture/LOCAL_DAEMON_HOSTED_POLICY_IMPORT_BOUNDARY.md +617 -0
- siphrix-1.0.0/docs/architecture/TRUST_AND_REMOTE_POLICY.md +501 -0
- siphrix-1.0.0/docs/architecture/policy_versioning.md +10720 -0
- siphrix-1.0.0/docs/architecture_snapshot.md +175 -0
- siphrix-1.0.0/docs/audits/api_public_api_normalization_round.md +390 -0
- siphrix-1.0.0/docs/audits/bom_cleanup_report.md +140 -0
- siphrix-1.0.0/docs/audits/bom_cleanup_round.md +155 -0
- siphrix-1.0.0/docs/audits/canonical_path_and_naming_consistency_round.md +334 -0
- siphrix-1.0.0/docs/audits/cleanup_series_final_closing_memo.md +428 -0
- siphrix-1.0.0/docs/audits/console_init_extraction.md +253 -0
- siphrix-1.0.0/docs/audits/constitution_all_snapshot_resync.md +268 -0
- siphrix-1.0.0/docs/audits/constitution_execution_init_extraction.md +211 -0
- siphrix-1.0.0/docs/audits/constitution_execution_operational_init_extraction.md +228 -0
- siphrix-1.0.0/docs/audits/constitution_init_extraction.md +234 -0
- siphrix-1.0.0/docs/audits/constitution_test_hygiene_round.md +194 -0
- siphrix-1.0.0/docs/audits/constitution_test_hygiene_round_2.md +195 -0
- siphrix-1.0.0/docs/audits/contracts_init_extraction.md +257 -0
- siphrix-1.0.0/docs/audits/contracts_validation_docs_sweep.md +166 -0
- siphrix-1.0.0/docs/audits/contracts_validation_facade_conversion.md +309 -0
- siphrix-1.0.0/docs/audits/contracts_validation_phase0_lock.md +194 -0
- siphrix-1.0.0/docs/audits/contracts_validation_phase1_base_extraction.md +203 -0
- siphrix-1.0.0/docs/audits/contracts_validation_phase2_core_extraction.md +288 -0
- siphrix-1.0.0/docs/audits/contracts_validation_phase3_simulation_extraction.md +331 -0
- siphrix-1.0.0/docs/audits/contracts_validation_phase4_projected_extraction.md +282 -0
- siphrix-1.0.0/docs/audits/contracts_validation_phase5_constitutional_extraction.md +368 -0
- siphrix-1.0.0/docs/audits/contracts_validation_phase6_integration_extraction.md +328 -0
- siphrix-1.0.0/docs/audits/contracts_validation_risk_extraction.md +276 -0
- siphrix-1.0.0/docs/audits/contracts_validation_split_plan.md +675 -0
- siphrix-1.0.0/docs/audits/contracts_validation_workspace_extraction.md +333 -0
- siphrix-1.0.0/docs/audits/docs_truth_alignment_round.md +341 -0
- siphrix-1.0.0/docs/audits/engine_init_facade_conversion.md +325 -0
- siphrix-1.0.0/docs/audits/final_repo_boundary_and_naming_round.md +341 -0
- siphrix-1.0.0/docs/audits/foundation_cycle_break.md +169 -0
- siphrix-1.0.0/docs/audits/foundation_init_facade_conversion.md +360 -0
- siphrix-1.0.0/docs/audits/governance_init_extraction.md +181 -0
- siphrix-1.0.0/docs/audits/import_graph_audit.md +484 -0
- siphrix-1.0.0/docs/audits/init_facade_conversion_round.md +356 -0
- siphrix-1.0.0/docs/audits/init_facade_conversion_round_2.md +338 -0
- siphrix-1.0.0/docs/audits/launch_baseline_audit.md +433 -0
- siphrix-1.0.0/docs/audits/policy_versioning_init_extraction.md +191 -0
- siphrix-1.0.0/docs/audits/rebaseline_closing_memo.md +295 -0
- siphrix-1.0.0/docs/audits/release_readiness_and_precommit_hygiene_round.md +373 -0
- siphrix-1.0.0/docs/audits/repo_artifact_cleanup.md +218 -0
- siphrix-1.0.0/docs/audits/repo_cleanup_round.md +305 -0
- siphrix-1.0.0/docs/audits/risk_contracts_cycle_break.md +301 -0
- siphrix-1.0.0/docs/decision_executor_bindings.md +153 -0
- siphrix-1.0.0/docs/execution_attestation.md +135 -0
- siphrix-1.0.0/docs/execution_boundaries.md +142 -0
- siphrix-1.0.0/docs/execution_conformance.md +152 -0
- siphrix-1.0.0/docs/execution_handoff.md +121 -0
- siphrix-1.0.0/docs/execution_refusal.md +148 -0
- siphrix-1.0.0/docs/executor_capabilities.md +161 -0
- siphrix-1.0.0/docs/executor_contracts.md +185 -0
- siphrix-1.0.0/docs/integration/ADVANCED.md +198 -0
- siphrix-1.0.0/docs/integration/APPROVAL_WORKFLOW.md +284 -0
- siphrix-1.0.0/docs/integration/CONTEXT_ADAPTERS.md +77 -0
- siphrix-1.0.0/docs/integration/CONTROL_PANEL.md +108 -0
- siphrix-1.0.0/docs/integration/EXECUTOR_ADAPTERS.md +92 -0
- siphrix-1.0.0/docs/integration/FLOW_CONTROL.md +101 -0
- siphrix-1.0.0/docs/integration/FRAMEWORK_ADAPTERS.md +59 -0
- siphrix-1.0.0/docs/integration/HOSTED_FOUNDATION.md +266 -0
- siphrix-1.0.0/docs/integration/HOW_TO_INTEGRATE_SIPHRIX.md +612 -0
- siphrix-1.0.0/docs/integration/INTEGRATION_REGISTRY.md +84 -0
- siphrix-1.0.0/docs/integration/LOCAL_AGENT_DAEMON.md +374 -0
- siphrix-1.0.0/docs/integration/LOCAL_DAEMON_API.md +775 -0
- siphrix-1.0.0/docs/integration/LOCAL_STATE.md +405 -0
- siphrix-1.0.0/docs/integration/OPERATOR_API.md +483 -0
- siphrix-1.0.0/docs/integration/ORCHESTRATION.md +123 -0
- siphrix-1.0.0/docs/integration/ORG_RBAC.md +258 -0
- siphrix-1.0.0/docs/integration/PLANNER_ADAPTERS.md +188 -0
- siphrix-1.0.0/docs/integration/POLICY_AUTHORING.md +298 -0
- siphrix-1.0.0/docs/integration/POLICY_CONTROL_PLANE.md +223 -0
- siphrix-1.0.0/docs/integration/QUICKSTART.md +393 -0
- siphrix-1.0.0/docs/integration/README.md +62 -0
- siphrix-1.0.0/docs/integration/RISK_SCORING.md +325 -0
- siphrix-1.0.0/docs/integration/SDK_REFERENCE.md +325 -0
- siphrix-1.0.0/docs/integration/SIPHRIX_CONSOLE.md +588 -0
- siphrix-1.0.0/docs/integration/TOOL_DISPATCHER_INTEGRATION.md +347 -0
- siphrix-1.0.0/docs/launch/COMMERCIAL_BOUNDARY.md +331 -0
- siphrix-1.0.0/docs/launch/DEMO_SCRIPT.md +171 -0
- siphrix-1.0.0/docs/launch/GITHUB_RELEASE_v1.0.0.md +145 -0
- siphrix-1.0.0/docs/launch/NEXT_PHASE_DECISION.md +359 -0
- siphrix-1.0.0/docs/launch/PRIVATE_BETA_ACCEPTANCE.md +161 -0
- siphrix-1.0.0/docs/launch/PRIVATE_BETA_KNOWN_LIMITATIONS.md +40 -0
- siphrix-1.0.0/docs/launch/PRIVATE_BETA_ONBOARDING.md +586 -0
- siphrix-1.0.0/docs/launch/PRIVATE_BETA_RELEASE_NOTES.md +70 -0
- siphrix-1.0.0/docs/launch/PRIVATE_BETA_RUNBOOK.md +109 -0
- siphrix-1.0.0/docs/launch/PRIVATE_BETA_SMOKE_MATRIX.md +46 -0
- siphrix-1.0.0/docs/launch/PUBLIC_HANDOFF.md +122 -0
- siphrix-1.0.0/docs/launch/QUICK_EVAL.md +807 -0
- siphrix-1.0.0/docs/launch/R11_ACCEPTANCE.md +191 -0
- siphrix-1.0.0/docs/launch/README.md +29 -0
- siphrix-1.0.0/docs/launch/RELEASE_NOTES_v1.0.0.md +179 -0
- siphrix-1.0.0/docs/point_7_10_console_ui_foundation.md +277 -0
- siphrix-1.0.0/docs/point_8_simulation.md +402 -0
- siphrix-1.0.0/docs/point_9_multi_agent_governance.md +1434 -0
- siphrix-1.0.0/docs/policy-schema-v4.md +111 -0
- siphrix-1.0.0/docs/policy-schema.md +120 -0
- siphrix-1.0.0/docs/release/FINAL_RELEASE_STATUS.md +147 -0
- siphrix-1.0.0/docs/release/FINAL_RELEASE_VERDICT_v1.md +134 -0
- siphrix-1.0.0/docs/release/FINAL_STATUS_v1.md +203 -0
- siphrix-1.0.0/docs/release/LOCAL_ALPHA_RELEASE_CHECKLIST.md +161 -0
- siphrix-1.0.0/docs/release/README.md +95 -0
- siphrix-1.0.0/docs/release/RELEASE_CONTENTS_v1.md +69 -0
- siphrix-1.0.0/docs/release/RELEASE_NOTES_v1.md +71 -0
- siphrix-1.0.0/docs/release/RELEASE_RUNBOOK.md +328 -0
- siphrix-1.0.0/docs/release/SIPHRIX_FULL_ABSORPTION_AUDIT.md +316 -0
- siphrix-1.0.0/docs/release/WINDOWS_INSTALLER.md +342 -0
- siphrix-1.0.0/docs/risk.md +253 -0
- siphrix-1.0.0/docs/sensitive-detection.md +289 -0
- siphrix-1.0.0/docs/ui/DASHBOARD.md +809 -0
- siphrix-1.0.0/docs/ui/README.md +125 -0
- siphrix-1.0.0/docs/ui/SHOWCASE.md +316 -0
- siphrix-1.0.0/installer/windows/README.md +176 -0
- siphrix-1.0.0/installer/windows/build-installer.ps1 +380 -0
- siphrix-1.0.0/installer/windows/build-wheelhouse.ps1 +94 -0
- siphrix-1.0.0/installer/windows/launch-siphrix.bat +42 -0
- siphrix-1.0.0/installer/windows/launch-siphrix.ps1 +50 -0
- siphrix-1.0.0/installer/windows/open-console.bat +10 -0
- siphrix-1.0.0/installer/windows/siphrix.iss +142 -0
- siphrix-1.0.0/pyproject.toml +162 -0
- siphrix-1.0.0/pytest.ini +6 -0
- siphrix-1.0.0/setup.cfg +4 -0
- siphrix-1.0.0/siphrix/__init__.py +94 -0
- siphrix-1.0.0/siphrix/__main__.py +13 -0
- siphrix-1.0.0/siphrix/adapters/__init__.py +98 -0
- siphrix-1.0.0/siphrix/adapters/context/__init__.py +15 -0
- siphrix-1.0.0/siphrix/adapters/context/base.py +81 -0
- siphrix-1.0.0/siphrix/adapters/context/composite_context.py +80 -0
- siphrix-1.0.0/siphrix/adapters/context/environment_context.py +37 -0
- siphrix-1.0.0/siphrix/adapters/context/normalizer.py +339 -0
- siphrix-1.0.0/siphrix/adapters/context/role_context.py +37 -0
- siphrix-1.0.0/siphrix/adapters/context/session_context.py +37 -0
- siphrix-1.0.0/siphrix/adapters/context/tenant_context.py +37 -0
- siphrix-1.0.0/siphrix/adapters/executors/__init__.py +10 -0
- siphrix-1.0.0/siphrix/adapters/executors/base.py +241 -0
- siphrix-1.0.0/siphrix/adapters/executors/email_executor.py +384 -0
- siphrix-1.0.0/siphrix/adapters/executors/filesystem_executor.py +271 -0
- siphrix-1.0.0/siphrix/adapters/executors/network_executor.py +309 -0
- siphrix-1.0.0/siphrix/adapters/executors/os_enforcement_bridge.py +32716 -0
- siphrix-1.0.0/siphrix/adapters/executors/pre_execution_gate.py +934 -0
- siphrix-1.0.0/siphrix/adapters/executors/sandbox_executor.py +351 -0
- siphrix-1.0.0/siphrix/adapters/executors/shell_executor.py +240 -0
- siphrix-1.0.0/siphrix/adapters/executors/stub_executor.py +47 -0
- siphrix-1.0.0/siphrix/adapters/frameworks/__init__.py +7 -0
- siphrix-1.0.0/siphrix/adapters/frameworks/agent_runtime_adapter.py +85 -0
- siphrix-1.0.0/siphrix/adapters/frameworks/base.py +158 -0
- siphrix-1.0.0/siphrix/adapters/frameworks/orchestration_adapter.py +65 -0
- siphrix-1.0.0/siphrix/adapters/frameworks/workflow_adapter.py +57 -0
- siphrix-1.0.0/siphrix/adapters/planners/__init__.py +19 -0
- siphrix-1.0.0/siphrix/adapters/planners/anthropic_planner.py +57 -0
- siphrix-1.0.0/siphrix/adapters/planners/base.py +93 -0
- siphrix-1.0.0/siphrix/adapters/planners/custom_planner.py +24 -0
- siphrix-1.0.0/siphrix/adapters/planners/gemini_planner.py +173 -0
- siphrix-1.0.0/siphrix/adapters/planners/local_planner.py +29 -0
- siphrix-1.0.0/siphrix/adapters/planners/mock_planner.py +84 -0
- siphrix-1.0.0/siphrix/adapters/planners/normalizer.py +408 -0
- siphrix-1.0.0/siphrix/adapters/planners/ollama_planner.py +46 -0
- siphrix-1.0.0/siphrix/adapters/planners/openai_planner.py +58 -0
- siphrix-1.0.0/siphrix/adapters/registry.py +1004 -0
- siphrix-1.0.0/siphrix/agent.py +556 -0
- siphrix-1.0.0/siphrix/analysis/__init__.py +144 -0
- siphrix-1.0.0/siphrix/analysis/bounded_explorer.py +53 -0
- siphrix-1.0.0/siphrix/analysis/collusion.py +41 -0
- siphrix-1.0.0/siphrix/analysis/containment_plan.py +121 -0
- siphrix-1.0.0/siphrix/analysis/cross_agent_correlation.py +159 -0
- siphrix-1.0.0/siphrix/analysis/cross_analyzer.py +21 -0
- siphrix-1.0.0/siphrix/analysis/cross_coverage.py +29 -0
- siphrix-1.0.0/siphrix/analysis/cross_diff.py +15 -0
- siphrix-1.0.0/siphrix/analysis/cross_engine.py +15 -0
- siphrix-1.0.0/siphrix/analysis/cross_policy.py +23 -0
- siphrix-1.0.0/siphrix/analysis/cross_rules.py +27 -0
- siphrix-1.0.0/siphrix/analysis/cross_state.py +46 -0
- siphrix-1.0.0/siphrix/analysis/decomposition.py +178 -0
- siphrix-1.0.0/siphrix/analysis/determinism.py +77 -0
- siphrix-1.0.0/siphrix/analysis/escalation.py +151 -0
- siphrix-1.0.0/siphrix/analysis/exfiltration.py +56 -0
- siphrix-1.0.0/siphrix/analysis/formal.py +14 -0
- siphrix-1.0.0/siphrix/analysis/formal_properties.py +38 -0
- siphrix-1.0.0/siphrix/analysis/observation_bus.py +41 -0
- siphrix-1.0.0/siphrix/analysis/policies.py +24 -0
- siphrix-1.0.0/siphrix/analysis/proof_artifacts.py +18 -0
- siphrix-1.0.0/siphrix/analysis/simulation.py +153 -0
- siphrix-1.0.0/siphrix/analysis/state_machine.py +218 -0
- siphrix-1.0.0/siphrix/analysis/temporal_risk.py +155 -0
- siphrix-1.0.0/siphrix/analysis/threat_graph.py +120 -0
- siphrix-1.0.0/siphrix/analysis/trajectory.py +102 -0
- siphrix-1.0.0/siphrix/analysis/zero_trust.py +120 -0
- siphrix-1.0.0/siphrix/audit.py +564 -0
- siphrix-1.0.0/siphrix/canon/canon_runtime.py +401 -0
- siphrix-1.0.0/siphrix/canon/canon_v1.md +118 -0
- siphrix-1.0.0/siphrix/canon/canon_v1_laws.yaml +419 -0
- siphrix-1.0.0/siphrix/canon/conformance_tests.yaml +107 -0
- siphrix-1.0.0/siphrix/cli/__init__.py +60 -0
- siphrix-1.0.0/siphrix/cli/app.py +19328 -0
- siphrix-1.0.0/siphrix/cli/demo.py +845 -0
- siphrix-1.0.0/siphrix/cli/enterprise.py +28 -0
- siphrix-1.0.0/siphrix/cli/governance.py +26 -0
- siphrix-1.0.0/siphrix/cli/predictive.py +28 -0
- siphrix-1.0.0/siphrix/cli/style.py +325 -0
- siphrix-1.0.0/siphrix/coherence/__init__.py +3 -0
- siphrix-1.0.0/siphrix/coherence/enforcer.py +87 -0
- siphrix-1.0.0/siphrix/config.py +265 -0
- siphrix-1.0.0/siphrix/console/__init__.py +54 -0
- siphrix-1.0.0/siphrix/console/_public_api.py +1561 -0
- siphrix-1.0.0/siphrix/console/ai_tool_bridge.py +1896 -0
- siphrix-1.0.0/siphrix/console/analytics_risk_intelligence.py +8394 -0
- siphrix-1.0.0/siphrix/console/app.py +26 -0
- siphrix-1.0.0/siphrix/console/approval_workflow.py +4556 -0
- siphrix-1.0.0/siphrix/console/audit_explorer.py +2079 -0
- siphrix-1.0.0/siphrix/console/audit_workspace.py +493 -0
- siphrix-1.0.0/siphrix/console/browser_ai_monitor.py +9242 -0
- siphrix-1.0.0/siphrix/console/constitutional_projection.py +1743 -0
- siphrix-1.0.0/siphrix/console/contracts.py +2096 -0
- siphrix-1.0.0/siphrix/console/dashboard_overview.py +2577 -0
- siphrix-1.0.0/siphrix/console/decision_workspace.py +250 -0
- siphrix-1.0.0/siphrix/console/distributed_infrastructure.py +7744 -0
- siphrix-1.0.0/siphrix/console/enterprise_features.py +7970 -0
- siphrix-1.0.0/siphrix/console/high_assurance_enforcement.py +5910 -0
- siphrix-1.0.0/siphrix/console/hosted_foundation.py +4561 -0
- siphrix-1.0.0/siphrix/console/hosted_policy_control_plane.py +8316 -0
- siphrix-1.0.0/siphrix/console/local_agent.py +991 -0
- siphrix-1.0.0/siphrix/console/multi_agent_governance.py +9179 -0
- siphrix-1.0.0/siphrix/console/notifications_alerting.py +9051 -0
- siphrix-1.0.0/siphrix/console/operator_actions.py +475 -0
- siphrix-1.0.0/siphrix/console/operator_api.py +2658 -0
- siphrix-1.0.0/siphrix/console/operator_api_auth.py +206 -0
- siphrix-1.0.0/siphrix/console/operator_command_execution.py +519 -0
- siphrix-1.0.0/siphrix/console/operator_commands.py +1143 -0
- siphrix-1.0.0/siphrix/console/operator_control.py +582 -0
- siphrix-1.0.0/siphrix/console/org_rbac.py +7651 -0
- siphrix-1.0.0/siphrix/console/policy_builder.py +1538 -0
- siphrix-1.0.0/siphrix/console/policy_workspace.py +395 -0
- siphrix-1.0.0/siphrix/console/replay_lab.py +3370 -0
- siphrix-1.0.0/siphrix/console/replay_workspace.py +356 -0
- siphrix-1.0.0/siphrix/console/risk_feed_workspace.py +462 -0
- siphrix-1.0.0/siphrix/console/routes/__init__.py +5 -0
- siphrix-1.0.0/siphrix/console/routes/console_routes.py +46 -0
- siphrix-1.0.0/siphrix/console/runtime_workspace.py +592 -0
- siphrix-1.0.0/siphrix/console/simulation_projection.py +237 -0
- siphrix-1.0.0/siphrix/console/ui/__init__.py +93 -0
- siphrix-1.0.0/siphrix/console/ui/console_app.py +584 -0
- siphrix-1.0.0/siphrix/console/ui/console_rendering.py +103 -0
- siphrix-1.0.0/siphrix/console/ui/console_ui_models.py +383 -0
- siphrix-1.0.0/siphrix/console/ui/workspace_viewers.py +394 -0
- siphrix-1.0.0/siphrix/console/workspace_links.py +333 -0
- siphrix-1.0.0/siphrix/constitution/__init__.py +43 -0
- siphrix-1.0.0/siphrix/constitution/_public_api.py +652 -0
- siphrix-1.0.0/siphrix/constitution/agent_exchange_record.py +306 -0
- siphrix-1.0.0/siphrix/constitution/agent_exchange_record_validation.py +46 -0
- siphrix-1.0.0/siphrix/constitution/agent_handshake_record.py +295 -0
- siphrix-1.0.0/siphrix/constitution/agent_handshake_record_validation.py +46 -0
- siphrix-1.0.0/siphrix/constitution/agent_identity_record.py +442 -0
- siphrix-1.0.0/siphrix/constitution/agent_identity_record_validation.py +127 -0
- siphrix-1.0.0/siphrix/constitution/approval_envelope_record.py +222 -0
- siphrix-1.0.0/siphrix/constitution/approval_envelope_record_validation.py +46 -0
- siphrix-1.0.0/siphrix/constitution/audit_trace_record.py +459 -0
- siphrix-1.0.0/siphrix/constitution/audit_trace_record_validation.py +128 -0
- siphrix-1.0.0/siphrix/constitution/audit_trace_validation_pack.py +51 -0
- siphrix-1.0.0/siphrix/constitution/audit_trace_validation_pack_validation.py +91 -0
- siphrix-1.0.0/siphrix/constitution/context_window_record.py +466 -0
- siphrix-1.0.0/siphrix/constitution/context_window_record_validation.py +128 -0
- siphrix-1.0.0/siphrix/constitution/context_window_validation_pack.py +51 -0
- siphrix-1.0.0/siphrix/constitution/context_window_validation_pack_validation.py +91 -0
- siphrix-1.0.0/siphrix/constitution/delegation_authority_record.py +420 -0
- siphrix-1.0.0/siphrix/constitution/delegation_authority_record_validation.py +77 -0
- siphrix-1.0.0/siphrix/constitution/distribution_channel_record.py +238 -0
- siphrix-1.0.0/siphrix/constitution/distribution_channel_record_validation.py +46 -0
- siphrix-1.0.0/siphrix/constitution/distribution_lineage_record.py +249 -0
- siphrix-1.0.0/siphrix/constitution/distribution_lineage_record_validation.py +45 -0
- siphrix-1.0.0/siphrix/constitution/distribution_manifest_record.py +240 -0
- siphrix-1.0.0/siphrix/constitution/distribution_manifest_record_validation.py +46 -0
- siphrix-1.0.0/siphrix/constitution/distribution_receipt_record.py +261 -0
- siphrix-1.0.0/siphrix/constitution/distribution_receipt_record_validation.py +45 -0
- siphrix-1.0.0/siphrix/constitution/enclave_attestation_record.py +285 -0
- siphrix-1.0.0/siphrix/constitution/enclave_attestation_record_validation.py +46 -0
- siphrix-1.0.0/siphrix/constitution/enclave_boundary_record.py +275 -0
- siphrix-1.0.0/siphrix/constitution/enclave_boundary_record_validation.py +46 -0
- siphrix-1.0.0/siphrix/constitution/execution/__init__.py +44 -0
- siphrix-1.0.0/siphrix/constitution/execution/_public_api.py +213 -0
- siphrix-1.0.0/siphrix/constitution/execution/decision_executor_binding_validation.py +194 -0
- siphrix-1.0.0/siphrix/constitution/execution/decision_executor_bindings.py +490 -0
- siphrix-1.0.0/siphrix/constitution/execution/execution_attestation.py +587 -0
- siphrix-1.0.0/siphrix/constitution/execution/execution_attestation_validation.py +230 -0
- siphrix-1.0.0/siphrix/constitution/execution/execution_boundaries.py +490 -0
- siphrix-1.0.0/siphrix/constitution/execution/execution_boundary_validation.py +252 -0
- siphrix-1.0.0/siphrix/constitution/execution/execution_bridge.py +348 -0
- siphrix-1.0.0/siphrix/constitution/execution/execution_bridge_resolution.py +104 -0
- siphrix-1.0.0/siphrix/constitution/execution/execution_bridge_validation.py +114 -0
- siphrix-1.0.0/siphrix/constitution/execution/execution_conformance.py +562 -0
- siphrix-1.0.0/siphrix/constitution/execution/execution_conformance_validation.py +230 -0
- siphrix-1.0.0/siphrix/constitution/execution/execution_handoff.py +603 -0
- siphrix-1.0.0/siphrix/constitution/execution/execution_handoff_validation.py +227 -0
- siphrix-1.0.0/siphrix/constitution/execution/execution_refusal.py +541 -0
- siphrix-1.0.0/siphrix/constitution/execution/execution_refusal_validation.py +208 -0
- siphrix-1.0.0/siphrix/constitution/execution/executor_capabilities.py +593 -0
- siphrix-1.0.0/siphrix/constitution/execution/executor_capability_validation.py +299 -0
- siphrix-1.0.0/siphrix/constitution/execution/executor_contract.py +669 -0
- siphrix-1.0.0/siphrix/constitution/execution/executor_validation.py +282 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/__init__.py +49 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/_public_api.py +239 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/boundary.py +406 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/capability.py +291 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/completion.py +340 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/completion_validation.py +142 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/dispatch_binding.py +319 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/dispatch_binding_resolution.py +133 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/dispatch_binding_validation.py +123 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/handoff.py +335 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/handoff_consumption.py +121 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/handoff_validation.py +107 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/identity.py +322 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/outcome_production.py +287 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/outcome_production_resolution.py +128 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/outcome_production_validation.py +88 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/production_completion.py +279 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/production_completion_resolution.py +121 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/production_completion_validation.py +89 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/record.py +258 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/refusal.py +306 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/refusal_validation.py +126 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/registry.py +318 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/registry_validation.py +222 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/request.py +287 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/request_validation.py +126 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/result.py +302 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/result_validation.py +126 -0
- siphrix-1.0.0/siphrix/constitution/execution/operational/validation.py +349 -0
- siphrix-1.0.0/siphrix/constitution/inter_agent_policy_record.py +315 -0
- siphrix-1.0.0/siphrix/constitution/inter_agent_policy_record_validation.py +66 -0
- siphrix-1.0.0/siphrix/constitution/mesh_route_record.py +288 -0
- siphrix-1.0.0/siphrix/constitution/mesh_route_record_validation.py +46 -0
- siphrix-1.0.0/siphrix/constitution/mesh_topology_record.py +285 -0
- siphrix-1.0.0/siphrix/constitution/mesh_topology_record_validation.py +46 -0
- siphrix-1.0.0/siphrix/constitution/organization_entry_gate.py +367 -0
- siphrix-1.0.0/siphrix/constitution/organization_entry_gate_validation.py +112 -0
- siphrix-1.0.0/siphrix/constitution/organization_execution_scope_binding.py +360 -0
- siphrix-1.0.0/siphrix/constitution/organization_execution_scope_binding_validation.py +112 -0
- siphrix-1.0.0/siphrix/constitution/organization_identity.py +310 -0
- siphrix-1.0.0/siphrix/constitution/organization_identity_validation.py +100 -0
- siphrix-1.0.0/siphrix/constitution/organization_membership.py +345 -0
- siphrix-1.0.0/siphrix/constitution/organization_membership_validation.py +111 -0
- siphrix-1.0.0/siphrix/constitution/organization_policy_attachment.py +381 -0
- siphrix-1.0.0/siphrix/constitution/organization_policy_attachment_validation.py +114 -0
- siphrix-1.0.0/siphrix/constitution/organization_role.py +352 -0
- siphrix-1.0.0/siphrix/constitution/organization_role_assignment.py +368 -0
- siphrix-1.0.0/siphrix/constitution/organization_role_assignment_validation.py +113 -0
- siphrix-1.0.0/siphrix/constitution/organization_role_validation.py +110 -0
- siphrix-1.0.0/siphrix/constitution/organization_scope.py +333 -0
- siphrix-1.0.0/siphrix/constitution/organization_scope_bridge.py +365 -0
- siphrix-1.0.0/siphrix/constitution/organization_scope_bridge_validation.py +112 -0
- siphrix-1.0.0/siphrix/constitution/organization_scope_validation.py +108 -0
- siphrix-1.0.0/siphrix/constitution/organization_validation_pack.py +128 -0
- siphrix-1.0.0/siphrix/constitution/organization_validation_pack_validation.py +133 -0
- siphrix-1.0.0/siphrix/constitution/quorum_requirement_record.py +220 -0
- siphrix-1.0.0/siphrix/constitution/quorum_requirement_record_validation.py +46 -0
- siphrix-1.0.0/siphrix/constitution/replay_record.py +431 -0
- siphrix-1.0.0/siphrix/constitution/replay_record_validation.py +128 -0
- siphrix-1.0.0/siphrix/constitution/replay_validation_pack.py +51 -0
- siphrix-1.0.0/siphrix/constitution/replay_validation_pack_validation.py +90 -0
- siphrix-1.0.0/siphrix/constitution/trust_attestation_record.py +244 -0
- siphrix-1.0.0/siphrix/constitution/trust_attestation_record_validation.py +46 -0
- siphrix-1.0.0/siphrix/constitution/trust_boundary_record.py +253 -0
- siphrix-1.0.0/siphrix/constitution/trust_boundary_record_validation.py +46 -0
- siphrix-1.0.0/siphrix/constitution/trust_relation_record.py +228 -0
- siphrix-1.0.0/siphrix/constitution/trust_relation_record_validation.py +46 -0
- siphrix-1.0.0/siphrix/contracts/__init__.py +52 -0
- siphrix-1.0.0/siphrix/contracts/_public_api.py +672 -0
- siphrix-1.0.0/siphrix/contracts/_validation_base.py +116 -0
- siphrix-1.0.0/siphrix/contracts/_validation_constitutional.py +2074 -0
- siphrix-1.0.0/siphrix/contracts/_validation_core.py +2273 -0
- siphrix-1.0.0/siphrix/contracts/_validation_integration.py +292 -0
- siphrix-1.0.0/siphrix/contracts/_validation_projected.py +1216 -0
- siphrix-1.0.0/siphrix/contracts/_validation_risk.py +1772 -0
- siphrix-1.0.0/siphrix/contracts/_validation_simulation.py +1406 -0
- siphrix-1.0.0/siphrix/contracts/_validation_workspace.py +4702 -0
- siphrix-1.0.0/siphrix/contracts/action.py +218 -0
- siphrix-1.0.0/siphrix/contracts/adapter_capability.py +107 -0
- siphrix-1.0.0/siphrix/contracts/agent_identity.py +221 -0
- siphrix-1.0.0/siphrix/contracts/approval_runtime.py +803 -0
- siphrix-1.0.0/siphrix/contracts/audit.py +18 -0
- siphrix-1.0.0/siphrix/contracts/audit_event.py +132 -0
- siphrix-1.0.0/siphrix/contracts/constitutional_audit.py +661 -0
- siphrix-1.0.0/siphrix/contracts/constitutional_diff.py +1100 -0
- siphrix-1.0.0/siphrix/contracts/context.py +101 -0
- siphrix-1.0.0/siphrix/contracts/decision.py +116 -0
- siphrix-1.0.0/siphrix/contracts/delegation_graph.py +571 -0
- siphrix-1.0.0/siphrix/contracts/escalation_paths.py +760 -0
- siphrix-1.0.0/siphrix/contracts/execution.py +183 -0
- siphrix-1.0.0/siphrix/contracts/flow.py +253 -0
- siphrix-1.0.0/siphrix/contracts/inter_agent_policy.py +581 -0
- siphrix-1.0.0/siphrix/contracts/multi_agent.py +12 -0
- siphrix-1.0.0/siphrix/contracts/planner.py +251 -0
- siphrix-1.0.0/siphrix/contracts/quorum_resolver.py +753 -0
- siphrix-1.0.0/siphrix/contracts/risk.py +11 -0
- siphrix-1.0.0/siphrix/contracts/simulation.py +861 -0
- siphrix-1.0.0/siphrix/contracts/trust_relations.py +726 -0
- siphrix-1.0.0/siphrix/contracts/validation.py +229 -0
- siphrix-1.0.0/siphrix/devtools/__init__.py +1 -0
- siphrix-1.0.0/siphrix/doctor.py +302 -0
- siphrix-1.0.0/siphrix/engine/__init__.py +65 -0
- siphrix-1.0.0/siphrix/engine/canonical_manifest.py +18 -0
- siphrix-1.0.0/siphrix/engine/gap_audit.py +38 -0
- siphrix-1.0.0/siphrix/engine/runner_profiles.py +259 -0
- siphrix-1.0.0/siphrix/engine/stack_declaration.py +30 -0
- siphrix-1.0.0/siphrix/engine/unified_runner.py +420 -0
- siphrix-1.0.0/siphrix/examples/__init__.py +47 -0
- siphrix-1.0.0/siphrix/examples/integration_audit.py +7 -0
- siphrix-1.0.0/siphrix/examples/integration_layer_utils.py +38 -0
- siphrix-1.0.0/siphrix/examples/integration_snapshot.py +7 -0
- siphrix-1.0.0/siphrix/examples/role_policy_resolver.py +18 -0
- siphrix-1.0.0/siphrix/exec_intercept/__init__.py +4 -0
- siphrix-1.0.0/siphrix/exec_intercept/evaluator.py +188 -0
- siphrix-1.0.0/siphrix/exec_intercept/intercept.py +83 -0
- siphrix-1.0.0/siphrix/exec_intercept/policy.py +25 -0
- siphrix-1.0.0/siphrix/exec_intercept/types.py +48 -0
- siphrix-1.0.0/siphrix/explanation.py +114 -0
- siphrix-1.0.0/siphrix/foundation/__init__.py +111 -0
- siphrix-1.0.0/siphrix/foundation/analyzer.py +37 -0
- siphrix-1.0.0/siphrix/foundation/aspl.py +68 -0
- siphrix-1.0.0/siphrix/foundation/aspl_lexer.py +97 -0
- siphrix-1.0.0/siphrix/foundation/aspl_types.py +64 -0
- siphrix-1.0.0/siphrix/foundation/audit_chain.py +99 -0
- siphrix-1.0.0/siphrix/foundation/canon.py +30 -0
- siphrix-1.0.0/siphrix/foundation/poe.py +44 -0
- siphrix-1.0.0/siphrix/foundation/policy_signing.py +139 -0
- siphrix-1.0.0/siphrix/foundation/policy_sources.py +30 -0
- siphrix-1.0.0/siphrix/foundation/preflight.py +20 -0
- siphrix-1.0.0/siphrix/foundation/proof_bundle.py +95 -0
- siphrix-1.0.0/siphrix/foundation/state.py +30 -0
- siphrix-1.0.0/siphrix/governance/__init__.py +39 -0
- siphrix-1.0.0/siphrix/governance/_public_api.py +1012 -0
- siphrix-1.0.0/siphrix/governance/audit/__init__.py +1 -0
- siphrix-1.0.0/siphrix/governance/audit/certification.py +114 -0
- siphrix-1.0.0/siphrix/governance/audit/chain_integrity.py +186 -0
- siphrix-1.0.0/siphrix/governance/audit/chain_retrieval_truth.py +144 -0
- siphrix-1.0.0/siphrix/governance/audit/chain_truth.py +175 -0
- siphrix-1.0.0/siphrix/governance/audit/closure_manifest.py +103 -0
- siphrix-1.0.0/siphrix/governance/audit/correlation_readiness.py +155 -0
- siphrix-1.0.0/siphrix/governance/audit/cross_layer_consistency.py +97 -0
- siphrix-1.0.0/siphrix/governance/audit/evidence_assurance.py +207 -0
- siphrix-1.0.0/siphrix/governance/audit/export.py +98 -0
- siphrix-1.0.0/siphrix/governance/audit/exporter.py +173 -0
- siphrix-1.0.0/siphrix/governance/audit/forensic_readiness.py +245 -0
- siphrix-1.0.0/siphrix/governance/audit/global_determinism.py +81 -0
- siphrix-1.0.0/siphrix/governance/audit/global_truth.py +86 -0
- siphrix-1.0.0/siphrix/governance/audit/handoff.py +84 -0
- siphrix-1.0.0/siphrix/governance/audit/incident_readiness.py +148 -0
- siphrix-1.0.0/siphrix/governance/audit/incident_reconstruction.py +137 -0
- siphrix-1.0.0/siphrix/governance/audit/incident_reproducibility.py +75 -0
- siphrix-1.0.0/siphrix/governance/audit/index.py +175 -0
- siphrix-1.0.0/siphrix/governance/audit/index_query_consistency.py +142 -0
- siphrix-1.0.0/siphrix/governance/audit/integrity.py +166 -0
- siphrix-1.0.0/siphrix/governance/audit/lineage_confidence.py +201 -0
- siphrix-1.0.0/siphrix/governance/audit/match_safety.py +114 -0
- siphrix-1.0.0/siphrix/governance/audit/no_overclaim.py +88 -0
- siphrix-1.0.0/siphrix/governance/audit/package_safety.py +100 -0
- siphrix-1.0.0/siphrix/governance/audit/packaging_readiness.py +130 -0
- siphrix-1.0.0/siphrix/governance/audit/packaging_truth.py +107 -0
- siphrix-1.0.0/siphrix/governance/audit/query_engine.py +461 -0
- siphrix-1.0.0/siphrix/governance/audit/query_honesty.py +188 -0
- siphrix-1.0.0/siphrix/governance/audit/query_integrity.py +346 -0
- siphrix-1.0.0/siphrix/governance/audit/query_projection.py +90 -0
- siphrix-1.0.0/siphrix/governance/audit/query_projection_faithfulness.py +154 -0
- siphrix-1.0.0/siphrix/governance/audit/query_readiness.py +173 -0
- siphrix-1.0.0/siphrix/governance/audit/query_reproducibility.py +138 -0
- siphrix-1.0.0/siphrix/governance/audit/query_truth.py +164 -0
- siphrix-1.0.0/siphrix/governance/audit/reconstruction_chain_truth.py +137 -0
- siphrix-1.0.0/siphrix/governance/audit/record.py +127 -0
- siphrix-1.0.0/siphrix/governance/audit/record_admissibility.py +254 -0
- siphrix-1.0.0/siphrix/governance/audit/reproducibility.py +141 -0
- siphrix-1.0.0/siphrix/governance/audit/retention_redaction_foundation.py +266 -0
- siphrix-1.0.0/siphrix/governance/audit/retrieval_readiness.py +156 -0
- siphrix-1.0.0/siphrix/governance/audit/schema.py +226 -0
- siphrix-1.0.0/siphrix/governance/audit/tamper_detection.py +136 -0
- siphrix-1.0.0/siphrix/governance/audit/timeline.py +161 -0
- siphrix-1.0.0/siphrix/governance/audit/timeline_hardening.py +209 -0
- siphrix-1.0.0/siphrix/governance/audit/workspace_projection.py +111 -0
- siphrix-1.0.0/siphrix/governance/compliance/__init__.py +1 -0
- siphrix-1.0.0/siphrix/governance/compliance/export.py +58 -0
- siphrix-1.0.0/siphrix/governance/compliance/mapping.py +115 -0
- siphrix-1.0.0/siphrix/governance/compliance/replay.py +45 -0
- siphrix-1.0.0/siphrix/governance/correlation_graph.py +391 -0
- siphrix-1.0.0/siphrix/governance/correlation_graph_integrity.py +120 -0
- siphrix-1.0.0/siphrix/governance/decision_ledger.py +79 -0
- siphrix-1.0.0/siphrix/governance/delegated_authority.py +109 -0
- siphrix-1.0.0/siphrix/governance/evidence/__init__.py +1 -0
- siphrix-1.0.0/siphrix/governance/evidence/bundle.py +127 -0
- siphrix-1.0.0/siphrix/governance/evidence/bundle_faithfulness.py +170 -0
- siphrix-1.0.0/siphrix/governance/evidence/export.py +99 -0
- siphrix-1.0.0/siphrix/governance/evidence/provenance.py +137 -0
- siphrix-1.0.0/siphrix/governance/evidence/retention.py +54 -0
- siphrix-1.0.0/siphrix/governance/exception_governance.py +112 -0
- siphrix-1.0.0/siphrix/governance/explainability.py +31 -0
- siphrix-1.0.0/siphrix/governance/governance_record.py +55 -0
- siphrix-1.0.0/siphrix/governance/incident/__init__.py +1 -0
- siphrix-1.0.0/siphrix/governance/incident/grouping_honesty.py +105 -0
- siphrix-1.0.0/siphrix/governance/incident/reconstruction.py +176 -0
- siphrix-1.0.0/siphrix/governance/incident/review_package.py +156 -0
- siphrix-1.0.0/siphrix/governance/incident/truth.py +122 -0
- siphrix-1.0.0/siphrix/governance/operator_investigation_view.py +113 -0
- siphrix-1.0.0/siphrix/governance/policy_framework.py +45 -0
- siphrix-1.0.0/siphrix/governance/quorum_approval.py +147 -0
- siphrix-1.0.0/siphrix/governance/quorum_store.py +348 -0
- siphrix-1.0.0/siphrix/governance/regulatory_profiles.py +83 -0
- siphrix-1.0.0/siphrix/governance/retention_workflow.py +41 -0
- siphrix-1.0.0/siphrix/hosted/__init__.py +36 -0
- siphrix-1.0.0/siphrix/hosted/admin_dashboard.py +930 -0
- siphrix-1.0.0/siphrix/hosted/scaffold.py +958 -0
- siphrix-1.0.0/siphrix/hosted/store.py +1031 -0
- siphrix-1.0.0/siphrix/identity/__init__.py +3 -0
- siphrix-1.0.0/siphrix/identity/loader.py +14 -0
- siphrix-1.0.0/siphrix/identity/schema.py +64 -0
- siphrix-1.0.0/siphrix/identity/temp_builder.py +29 -0
- siphrix-1.0.0/siphrix/identity/validator.py +17 -0
- siphrix-1.0.0/siphrix/integration_flow/__init__.py +5 -0
- siphrix-1.0.0/siphrix/integration_flow/orchestrator.py +423 -0
- siphrix-1.0.0/siphrix/integrations/__init__.py +70 -0
- siphrix-1.0.0/siphrix/integrations/audit.py +100 -0
- siphrix-1.0.0/siphrix/integrations/layer_utils.py +419 -0
- siphrix-1.0.0/siphrix/integrations/snapshot.py +245 -0
- siphrix-1.0.0/siphrix/intention/__init__.py +3 -0
- siphrix-1.0.0/siphrix/intention/interpreter.py +116 -0
- siphrix-1.0.0/siphrix/intention/types.py +18 -0
- siphrix-1.0.0/siphrix/local_agent.py +375 -0
- siphrix-1.0.0/siphrix/local_daemon.py +1365 -0
- siphrix-1.0.0/siphrix/local_diagnostics.py +273 -0
- siphrix-1.0.0/siphrix/local_hosted_import/__init__.py +32 -0
- siphrix-1.0.0/siphrix/local_hosted_import/cli.py +276 -0
- siphrix-1.0.0/siphrix/local_hosted_import/daemon_api.py +234 -0
- siphrix-1.0.0/siphrix/local_hosted_import/store.py +430 -0
- siphrix-1.0.0/siphrix/local_hosted_import/verifier.py +560 -0
- siphrix-1.0.0/siphrix/local_state.py +1081 -0
- siphrix-1.0.0/siphrix/logs/__init__.py +3 -0
- siphrix-1.0.0/siphrix/logs/logger.py +43 -0
- siphrix-1.0.0/siphrix/memory/__init__.py +3 -0
- siphrix-1.0.0/siphrix/memory/api.py +207 -0
- siphrix-1.0.0/siphrix/memory/schema.py +33 -0
- siphrix-1.0.0/siphrix/memory/store.py +32 -0
- siphrix-1.0.0/siphrix/orchestrator/__init__.py +14 -0
- siphrix-1.0.0/siphrix/orchestrator/llm_stub.py +43 -0
- siphrix-1.0.0/siphrix/orchestrator/pipeline.py +251 -0
- siphrix-1.0.0/siphrix/policies/agent_default_v1.yaml +22 -0
- siphrix-1.0.0/siphrix/policies/global_baseline_v1.yaml +40 -0
- siphrix-1.0.0/siphrix/policies/index.yaml +5 -0
- siphrix-1.0.0/siphrix/policies/org_default_v1.yaml +17 -0
- siphrix-1.0.0/siphrix/policies/team_default_v1.yaml +22 -0
- siphrix-1.0.0/siphrix/policy_packs/__init__.py +153 -0
- siphrix-1.0.0/siphrix/policy_packs/bridge.py +223 -0
- siphrix-1.0.0/siphrix/policy_packs/dev_agent_defaults.yaml +53 -0
- siphrix-1.0.0/siphrix/policy_packs/enterprise_defaults.yaml +57 -0
- siphrix-1.0.0/siphrix/policy_packs/resolver.py +83 -0
- siphrix-1.0.0/siphrix/policy_packs/roles/admin.yaml +33 -0
- siphrix-1.0.0/siphrix/policy_packs/roles/developer.yaml +36 -0
- siphrix-1.0.0/siphrix/policy_packs/roles/finance.yaml +26 -0
- siphrix-1.0.0/siphrix/policy_packs/roles/support.yaml +24 -0
- siphrix-1.0.0/siphrix/policy_packs/safe_defaults.yaml +279 -0
- siphrix-1.0.0/siphrix/policy_packs/signing.py +279 -0
- siphrix-1.0.0/siphrix/policy_remote.py +136 -0
- siphrix-1.0.0/siphrix/policy_runtime/__init__.py +20 -0
- siphrix-1.0.0/siphrix/policy_runtime/input.py +178 -0
- siphrix-1.0.0/siphrix/policy_runtime/loader.py +569 -0
- siphrix-1.0.0/siphrix/policy_runtime/manager.py +1066 -0
- siphrix-1.0.0/siphrix/policy_runtime/registry.py +73 -0
- siphrix-1.0.0/siphrix/policy_runtime/rule_eval.py +91 -0
- siphrix-1.0.0/siphrix/policy_runtime/types.py +87 -0
- siphrix-1.0.0/siphrix/policy_sources/source.py +129 -0
- siphrix-1.0.0/siphrix/policy_versioning/__init__.py +39 -0
- siphrix-1.0.0/siphrix/policy_versioning/_public_api.py +3994 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/activation.py +100 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/atomicity.py +96 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/atomicity_truth.py +98 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/chain_truth.py +113 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/eligibility.py +117 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/emergency_control.py +125 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/emergency_safety.py +94 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/foundation_readiness.py +160 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/honesty.py +124 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/integrity.py +205 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/projection.py +121 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/projection_faithfulness.py +109 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/readiness.py +184 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/reproducibility.py +64 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/rollback_orchestration.py +190 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/rollback_preparation.py +156 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/rollback_safety.py +75 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/rollback_truth.py +105 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/rollout.py +174 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/rollout_eligibility.py +169 -0
- siphrix-1.0.0/siphrix/policy_versioning/activation/staging.py +115 -0
- siphrix-1.0.0/siphrix/policy_versioning/attestation_view.py +491 -0
- siphrix-1.0.0/siphrix/policy_versioning/batch_replay_reports.py +626 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/compiler.py +816 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/compiler_coverage.py +521 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/compiler_diff.py +441 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/compiler_export.py +2350 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/compiler_honesty.py +783 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/compiler_integrity.py +1071 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/compiler_readiness.py +819 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/compiler_reproducibility.py +452 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/compiler_safety.py +636 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/compiler_summary.py +325 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/compiler_trace.py +275 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/consistency.py +117 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/cross_run_analysis.py +154 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/derivation.py +110 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/expected_overlays.py +135 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/fingerprint_registry.py +167 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/gap_enforcement.py +59 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/graph.py +201 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/graph_integrity.py +187 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/graph_projection.py +68 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/lineage.py +73 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/lineage_honesty.py +92 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/models.py +991 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/regression.py +108 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/resolution.py +453 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/semantic_dependency.py +104 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/stage33_export.py +161 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/stage33_reproducibility.py +68 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/stage34_readiness.py +96 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/trace.py +70 -0
- siphrix-1.0.0/siphrix/policy_versioning/compilation/trace_integrity.py +106 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/compat.py +611 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/consistency.py +725 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/fingerprint.py +272 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/foundation_readiness.py +668 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/invariants.py +940 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/migration.py +477 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/models.py +1908 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/normalization_hardening.py +444 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/provenance.py +502 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/resolver.py +2397 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/resolver_arbitration.py +783 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/resolver_export.py +552 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/resolver_honesty.py +509 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/resolver_integrity.py +741 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/resolver_readiness.py +591 -0
- siphrix-1.0.0/siphrix/policy_versioning/context/resolver_reproducibility.py +347 -0
- siphrix-1.0.0/siphrix/policy_versioning/counterfactual_models.py +417 -0
- siphrix-1.0.0/siphrix/policy_versioning/distribution/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/distribution/foundation_readiness.py +193 -0
- siphrix-1.0.0/siphrix/policy_versioning/distribution/honesty.py +107 -0
- siphrix-1.0.0/siphrix/policy_versioning/distribution/integrity.py +182 -0
- siphrix-1.0.0/siphrix/policy_versioning/distribution/protocol.py +197 -0
- siphrix-1.0.0/siphrix/policy_versioning/distribution/protocol_readiness.py +173 -0
- siphrix-1.0.0/siphrix/policy_versioning/distribution/readiness.py +105 -0
- siphrix-1.0.0/siphrix/policy_versioning/distribution/reproducibility.py +114 -0
- siphrix-1.0.0/siphrix/policy_versioning/environment_view.py +392 -0
- siphrix-1.0.0/siphrix/policy_versioning/evaluation/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/evaluation/contradictions.py +135 -0
- siphrix-1.0.0/siphrix/policy_versioning/evaluation/engine.py +353 -0
- siphrix-1.0.0/siphrix/policy_versioning/evaluation/honesty.py +145 -0
- siphrix-1.0.0/siphrix/policy_versioning/evaluation/integrity.py +226 -0
- siphrix-1.0.0/siphrix/policy_versioning/evaluation/matching.py +520 -0
- siphrix-1.0.0/siphrix/policy_versioning/evaluation/models.py +344 -0
- siphrix-1.0.0/siphrix/policy_versioning/evaluation/projection.py +133 -0
- siphrix-1.0.0/siphrix/policy_versioning/evaluation/readiness.py +164 -0
- siphrix-1.0.0/siphrix/policy_versioning/evaluation/reproducibility.py +104 -0
- siphrix-1.0.0/siphrix/policy_versioning/evaluation/result.py +359 -0
- siphrix-1.0.0/siphrix/policy_versioning/evaluation/safety.py +103 -0
- siphrix-1.0.0/siphrix/policy_versioning/explanation/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/explanation/closure.py +71 -0
- siphrix-1.0.0/siphrix/policy_versioning/explanation/consistency.py +101 -0
- siphrix-1.0.0/siphrix/policy_versioning/explanation/contracts.py +120 -0
- siphrix-1.0.0/siphrix/policy_versioning/explanation/diff.py +231 -0
- siphrix-1.0.0/siphrix/policy_versioning/explanation/drift.py +73 -0
- siphrix-1.0.0/siphrix/policy_versioning/explanation/projection.py +143 -0
- siphrix-1.0.0/siphrix/policy_versioning/explanation/readiness.py +164 -0
- siphrix-1.0.0/siphrix/policy_versioning/explanation/registry.py +176 -0
- siphrix-1.0.0/siphrix/policy_versioning/explanation/reproducibility.py +117 -0
- siphrix-1.0.0/siphrix/policy_versioning/explanation/safety.py +109 -0
- siphrix-1.0.0/siphrix/policy_versioning/explanation/stability.py +49 -0
- siphrix-1.0.0/siphrix/policy_versioning/intake_governance.py +378 -0
- siphrix-1.0.0/siphrix/policy_versioning/integration.py +424 -0
- siphrix-1.0.0/siphrix/policy_versioning/investigation.py +2222 -0
- siphrix-1.0.0/siphrix/policy_versioning/investigation_hardening.py +2307 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/final_stage3_honesty.py +116 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/final_stage3_integrity.py +173 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/final_stage3_readiness.py +98 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point2_certification.py +135 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point2_closure_assurance.py +182 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point2_closure_manifest.py +107 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point2_closure_readiness.py +96 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point2_contracts.py +153 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point2_handoff.py +98 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point2_honesty.py +120 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point2_integrity.py +166 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point2_operational_profile.py +97 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point2_postclosure_drift.py +94 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point2_seal_enforcement.py +197 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point2_transition_governance.py +187 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_certification.py +194 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_certification_stability.py +89 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_closure_manifest.py +170 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_closure_readiness.py +128 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_contract_postclosure.py +85 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_contracts.py +139 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_drift_detection.py +139 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_drift_impact.py +82 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_handoff.py +154 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_honesty.py +120 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_integrity.py +170 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_operational_profile.py +158 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_postclosure_assurance.py +80 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_postclosure_audit.py +78 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_recertification.py +98 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/point3_seal_enforcement.py +167 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/policy_final_point3_readiness.py +135 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/stage3_certification.py +114 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/stage3_chain_truth.py +94 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/stage3_closure_manifest.py +113 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/stage3_contracts.py +132 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/stage3_drift_preparation.py +97 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/stage3_export_integration.py +124 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/stage3_handoff.py +92 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/stage3_operational_profile.py +83 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/stage3_operator_investigation_views.py +95 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/stage3_replay_integration.py +150 -0
- siphrix-1.0.0/siphrix/policy_versioning/lifecycle/stage3_scope_assurance.py +104 -0
- siphrix-1.0.0/siphrix/policy_versioning/local_policy_intake.py +161 -0
- siphrix-1.0.0/siphrix/policy_versioning/local_policy_intake_hardening.py +100 -0
- siphrix-1.0.0/siphrix/policy_versioning/local_policy_trust.py +142 -0
- siphrix-1.0.0/siphrix/policy_versioning/local_policy_trust_safety.py +66 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/authority_contracts.py +169 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/authority_lineage.py +215 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/authority_overlap.py +250 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/channel_resolver.py +151 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/compatibility.py +144 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/compatibility_hardening.py +154 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/integrity.py +137 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/manifest.py +310 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/projection.py +143 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/projection_faithfulness.py +108 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/registry.py +156 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/registry_provenance.py +98 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/registry_provenance_truth.py +105 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/remote_channel_resolution.py +104 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/remote_channel_truth.py +100 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/remote_local_consistency.py +106 -0
- siphrix-1.0.0/siphrix/policy_versioning/manifest/reproducibility.py +103 -0
- siphrix-1.0.0/siphrix/policy_versioning/operator_hardening.py +2384 -0
- siphrix-1.0.0/siphrix/policy_versioning/operator_views.py +1762 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/audit.py +60 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/chain_truth.py +135 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/fetch.py +158 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/fetch_selection_safety.py +76 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/honesty.py +132 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/integrity.py +235 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/projection.py +132 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/projection_faithfulness.py +125 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/readiness.py +112 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/reproducibility.py +63 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/resolution_trace.py +420 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/revocation.py +160 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/revocation_truth.py +95 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/semantic_diff.py +920 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/state.py +89 -0
- siphrix-1.0.0/siphrix/policy_versioning/orchestration/target_truth.py +100 -0
- siphrix-1.0.0/siphrix/policy_versioning/overlays/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/overlays/applicability.py +482 -0
- siphrix-1.0.0/siphrix/policy_versioning/overlays/conflicts.py +435 -0
- siphrix-1.0.0/siphrix/policy_versioning/overlays/explanations.py +519 -0
- siphrix-1.0.0/siphrix/policy_versioning/overlays/field_merge.py +740 -0
- siphrix-1.0.0/siphrix/policy_versioning/overlays/merge.py +622 -0
- siphrix-1.0.0/siphrix/policy_versioning/overlays/models.py +811 -0
- siphrix-1.0.0/siphrix/policy_versioning/overlays/readiness.py +639 -0
- siphrix-1.0.0/siphrix/policy_versioning/overlays/scope.py +471 -0
- siphrix-1.0.0/siphrix/policy_versioning/overlays/selector.py +888 -0
- siphrix-1.0.0/siphrix/policy_versioning/overlays/semantics.py +353 -0
- siphrix-1.0.0/siphrix/policy_versioning/overlays/soundness.py +345 -0
- siphrix-1.0.0/siphrix/policy_versioning/policy_lineage.py +295 -0
- siphrix-1.0.0/siphrix/policy_versioning/promotion_execution.py +355 -0
- siphrix-1.0.0/siphrix/policy_versioning/registry_config.py +165 -0
- siphrix-1.0.0/siphrix/policy_versioning/registry_intake.py +388 -0
- siphrix-1.0.0/siphrix/policy_versioning/registry_view.py +397 -0
- siphrix-1.0.0/siphrix/policy_versioning/replay/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/replay/compat.py +539 -0
- siphrix-1.0.0/siphrix/policy_versioning/replay/engine.py +1657 -0
- siphrix-1.0.0/siphrix/policy_versioning/replay/export_integration.py +602 -0
- siphrix-1.0.0/siphrix/policy_versioning/replay/models.py +1528 -0
- siphrix-1.0.0/siphrix/policy_versioning/replay/queries.py +549 -0
- siphrix-1.0.0/siphrix/policy_versioning/replay/view_models.py +708 -0
- siphrix-1.0.0/siphrix/policy_versioning/replay/workspace.py +366 -0
- siphrix-1.0.0/siphrix/policy_versioning/resource_classifier.py +270 -0
- siphrix-1.0.0/siphrix/policy_versioning/rollback_execution.py +471 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/bundle_assessment.py +85 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/causal_attribution.py +122 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/export_integration.py +162 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/integration_chain_truth.py +113 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/integration_closure_readiness.py +340 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/integration_honesty.py +151 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/integration_integrity.py +257 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/integration_readiness.py +102 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/integration_reproducibility.py +161 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/investigation_views.py +89 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/justification.py +140 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/justification_honesty.py +130 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/operator_views.py +97 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/projection_contracts.py +95 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/projection_faithfulness.py +120 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/provenance_integrity.py +135 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/replay_integration.py +202 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/timeline_truth.py +334 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/timeline_workspace.py +104 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/trace_builder.py +152 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/trace_integrity.py +193 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/trace_linkage.py +58 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/trace_models.py +490 -0
- siphrix-1.0.0/siphrix/policy_versioning/runtime_integration/view_safety.py +197 -0
- siphrix-1.0.0/siphrix/policy_versioning/session_resolver.py +303 -0
- siphrix-1.0.0/siphrix/policy_versioning/snapshots/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/snapshots/approval_state_resolver.py +229 -0
- siphrix-1.0.0/siphrix/policy_versioning/snapshots/decision_diff.py +2124 -0
- siphrix-1.0.0/siphrix/policy_versioning/snapshots/decision_ready_policy.py +215 -0
- siphrix-1.0.0/siphrix/policy_versioning/snapshots/decision_ready_policy_safety.py +95 -0
- siphrix-1.0.0/siphrix/policy_versioning/snapshots/decision_snapshot_store.py +861 -0
- siphrix-1.0.0/siphrix/policy_versioning/snapshots/lineage_engine.py +447 -0
- siphrix-1.0.0/siphrix/policy_versioning/snapshots/lineage_integrity.py +383 -0
- siphrix-1.0.0/siphrix/policy_versioning/snapshots/lineage_store.py +145 -0
- siphrix-1.0.0/siphrix/policy_versioning/snapshots/snapshot_integrity.py +872 -0
- siphrix-1.0.0/siphrix/policy_versioning/temporal_policy_resolver.py +326 -0
- siphrix-1.0.0/siphrix/policy_versioning/tenant_view.py +262 -0
- siphrix-1.0.0/siphrix/policy_versioning/transition_governance.py +356 -0
- siphrix-1.0.0/siphrix/policy_versioning/transition_ledger.py +278 -0
- siphrix-1.0.0/siphrix/policy_versioning/trust/__init__.py +1 -0
- siphrix-1.0.0/siphrix/policy_versioning/trust/chain_consistency.py +173 -0
- siphrix-1.0.0/siphrix/policy_versioning/trust/chain_risk.py +124 -0
- siphrix-1.0.0/siphrix/policy_versioning/trust/epoch_drift.py +214 -0
- siphrix-1.0.0/siphrix/policy_versioning/trust/foundation_readiness.py +127 -0
- siphrix-1.0.0/siphrix/policy_versioning/trust/governance_readiness.py +154 -0
- siphrix-1.0.0/siphrix/policy_versioning/trust/history.py +131 -0
- siphrix-1.0.0/siphrix/policy_versioning/trust/honesty.py +96 -0
- siphrix-1.0.0/siphrix/policy_versioning/trust/trust.py +373 -0
- siphrix-1.0.0/siphrix/policy_versioning/versioned_policy_codec.py +312 -0
- siphrix-1.0.0/siphrix/readiness/__init__.py +32 -0
- siphrix-1.0.0/siphrix/readiness/assessor.py +260 -0
- siphrix-1.0.0/siphrix/readiness/checks.py +1325 -0
- siphrix-1.0.0/siphrix/readiness/models.py +102 -0
- siphrix-1.0.0/siphrix/release.py +288 -0
- siphrix-1.0.0/siphrix/resilience/__init__.py +123 -0
- siphrix-1.0.0/siphrix/resilience/adaptive_guardrail.py +169 -0
- siphrix-1.0.0/siphrix/resilience/audit_log_model.py +42 -0
- siphrix-1.0.0/siphrix/resilience/blast_radius_control.py +115 -0
- siphrix-1.0.0/siphrix/resilience/damage_containment.py +31 -0
- siphrix-1.0.0/siphrix/resilience/distributed_control.py +150 -0
- siphrix-1.0.0/siphrix/resilience/distributed_lock.py +34 -0
- siphrix-1.0.0/siphrix/resilience/enforcement_cluster.py +66 -0
- siphrix-1.0.0/siphrix/resilience/evidence_adaptation.py +85 -0
- siphrix-1.0.0/siphrix/resilience/fragmented_kill_switch.py +98 -0
- siphrix-1.0.0/siphrix/resilience/healing.py +69 -0
- siphrix-1.0.0/siphrix/resilience/health_monitor.py +71 -0
- siphrix-1.0.0/siphrix/resilience/human_recovery.py +79 -0
- siphrix-1.0.0/siphrix/resilience/org_control_plane.py +109 -0
- siphrix-1.0.0/siphrix/resilience/regional_control.py +122 -0
- siphrix-1.0.0/siphrix/resilience/split_brain.py +40 -0
- siphrix-1.0.0/siphrix/resilience/state_engine.py +55 -0
- siphrix-1.0.0/siphrix/resilience/temporal_dsl.py +104 -0
- siphrix-1.0.0/siphrix/resilience/temporal_policy.py +58 -0
- siphrix-1.0.0/siphrix/resilience/temporal_state.py +33 -0
- siphrix-1.0.0/siphrix/resilience/tenant_isolation.py +79 -0
- siphrix-1.0.0/siphrix/risk/__init__.py +149 -0
- siphrix-1.0.0/siphrix/risk/risk_execution.py +277 -0
- siphrix-1.0.0/siphrix/risk/risk_explainer.py +496 -0
- siphrix-1.0.0/siphrix/risk/risk_factor_engine.py +578 -0
- siphrix-1.0.0/siphrix/risk/risk_orchestration.py +424 -0
- siphrix-1.0.0/siphrix/risk/risk_policy_mapping.py +174 -0
- siphrix-1.0.0/siphrix/risk/risk_score.py +562 -0
- siphrix-1.0.0/siphrix/risk/risk_thresholds.py +160 -0
- siphrix-1.0.0/siphrix/runtime/__init__.py +192 -0
- siphrix-1.0.0/siphrix/runtime/audit_hardening.py +33 -0
- siphrix-1.0.0/siphrix/runtime/bridge_analyzer.py +41 -0
- siphrix-1.0.0/siphrix/runtime/broker_plane.py +146 -0
- siphrix-1.0.0/siphrix/runtime/broker_protocol.py +40 -0
- siphrix-1.0.0/siphrix/runtime/broker_socket.py +74 -0
- siphrix-1.0.0/siphrix/runtime/capabilities.py +30 -0
- siphrix-1.0.0/siphrix/runtime/capability_coupling.py +48 -0
- siphrix-1.0.0/siphrix/runtime/contracts.py +93 -0
- siphrix-1.0.0/siphrix/runtime/decision_snapshot.py +15 -0
- siphrix-1.0.0/siphrix/runtime/enforcement.py +136 -0
- siphrix-1.0.0/siphrix/runtime/enforcement_points.py +46 -0
- siphrix-1.0.0/siphrix/runtime/evidence_ledger.py +148 -0
- siphrix-1.0.0/siphrix/runtime/exec_intercept.py +6 -0
- siphrix-1.0.0/siphrix/runtime/execution_guard.py +26 -0
- siphrix-1.0.0/siphrix/runtime/failure_semantics.py +43 -0
- siphrix-1.0.0/siphrix/runtime/hooks.py +99 -0
- siphrix-1.0.0/siphrix/runtime/intervention.py +106 -0
- siphrix-1.0.0/siphrix/runtime/kernel_syscall_interception.py +351 -0
- siphrix-1.0.0/siphrix/runtime/linux_kernel_backend.py +131 -0
- siphrix-1.0.0/siphrix/runtime/mediation.py +155 -0
- siphrix-1.0.0/siphrix/runtime/policy_remote.py +21 -0
- siphrix-1.0.0/siphrix/runtime/policy_runtime.py +17 -0
- siphrix-1.0.0/siphrix/runtime/session_wrappers.py +35 -0
- siphrix-1.0.0/siphrix/runtime/sessions.py +92 -0
- siphrix-1.0.0/siphrix/runtime/syscall_intents.py +54 -0
- siphrix-1.0.0/siphrix/runtime_paths.py +225 -0
- siphrix-1.0.0/siphrix/simulation/__init__.py +27 -0
- siphrix-1.0.0/siphrix/simulation/audit.py +397 -0
- siphrix-1.0.0/siphrix/simulation/engine.py +945 -0
- siphrix-1.0.0/siphrix/state/__init__.py +3 -0
- siphrix-1.0.0/siphrix/state/state_manager.py +83 -0
- siphrix-1.0.0/siphrix/tests_all_global.py +1089 -0
- siphrix-1.0.0/siphrix/trust/__init__.py +146 -0
- siphrix-1.0.0/siphrix/trust/attestation.py +105 -0
- siphrix-1.0.0/siphrix/trust/broker_attestation.py +29 -0
- siphrix-1.0.0/siphrix/trust/distributed_attestation.py +93 -0
- siphrix-1.0.0/siphrix/trust/identity.py +13 -0
- siphrix-1.0.0/siphrix/trust/integrity_chain.py +101 -0
- siphrix-1.0.0/siphrix/trust/policy_anchor.py +42 -0
- siphrix-1.0.0/siphrix/trust/policy_remote_guard.py +757 -0
- siphrix-1.0.0/siphrix/trust/policy_store.py +45 -0
- siphrix-1.0.0/siphrix/trust/push_updates.py +55 -0
- siphrix-1.0.0/siphrix/trust/recheck.py +34 -0
- siphrix-1.0.0/siphrix/trust/remote_policy_server.py +198 -0
- siphrix-1.0.0/siphrix/trust/remote_sync.py +307 -0
- siphrix-1.0.0/siphrix/trust/signed_heartbeat.py +145 -0
- siphrix-1.0.0/siphrix/trust/trust_cascade.py +89 -0
- siphrix-1.0.0/siphrix/trust/trust_epoch.py +115 -0
- siphrix-1.0.0/siphrix/trust/trust_mode.py +366 -0
- siphrix-1.0.0/siphrix/trust/trust_seal.py +190 -0
- siphrix-1.0.0/siphrix/utils/__init__.py +5 -0
- siphrix-1.0.0/siphrix/utils/io.py +16 -0
- siphrix-1.0.0/siphrix/web_console/__init__.py +73 -0
- siphrix-1.0.0/siphrix/web_console/static/console.css +606 -0
- siphrix-1.0.0/siphrix/web_console/static/console.js +886 -0
- siphrix-1.0.0/siphrix/web_console/static/index.html +344 -0
- siphrix-1.0.0/siphrix.egg-info/PKG-INFO +1543 -0
- siphrix-1.0.0/siphrix.egg-info/SOURCES.txt +1352 -0
- siphrix-1.0.0/siphrix.egg-info/dependency_links.txt +1 -0
- siphrix-1.0.0/siphrix.egg-info/entry_points.txt +2 -0
- siphrix-1.0.0/siphrix.egg-info/requires.txt +11 -0
- siphrix-1.0.0/siphrix.egg-info/top_level.txt +1 -0
- siphrix-1.0.0/tests/__init__.py +22 -0
- siphrix-1.0.0/tests/_shared/__init__.py +11 -0
- siphrix-1.0.0/tests/_shared/workspace_fixtures.py +602 -0
- siphrix-1.0.0/tests/conftest.py +27 -0
- siphrix-1.0.0/tests/constitution/__init__.py +0 -0
- siphrix-1.0.0/tests/constitution/execution/__init__.py +0 -0
- siphrix-1.0.0/tests/constitution/execution/test_decision_executor_bindings.py +648 -0
- siphrix-1.0.0/tests/constitution/execution/test_execution_attestation.py +673 -0
- siphrix-1.0.0/tests/constitution/execution/test_execution_boundaries.py +832 -0
- siphrix-1.0.0/tests/constitution/execution/test_execution_conformance.py +765 -0
- siphrix-1.0.0/tests/constitution/execution/test_execution_handoff.py +723 -0
- siphrix-1.0.0/tests/constitution/execution/test_execution_refusal.py +666 -0
- siphrix-1.0.0/tests/constitution/execution/test_executor_capabilities.py +1074 -0
- siphrix-1.0.0/tests/constitution/execution/test_executor_contract.py +1207 -0
- siphrix-1.0.0/tests/fixtures/keys/README.md +11 -0
- siphrix-1.0.0/tests/fixtures/keys/dev_policy_private_example.pem +3 -0
- siphrix-1.0.0/tests/fixtures/keys/dev_policy_public_example.pem +3 -0
- siphrix-1.0.0/tests/fixtures/local_repo_showcase/src/app.py +3 -0
- siphrix-1.0.0/tests/fixtures/policies/compat/policy_v3_boundary.yaml +11 -0
- siphrix-1.0.0/tests/fixtures/policies/compat/policy_v3_compose.yaml +8 -0
- siphrix-1.0.0/tests/fixtures/policies/compat/policy_v3_risk.yaml +12 -0
- siphrix-1.0.0/tests/fixtures/policies/compat/policy_v4_allow.yaml +15 -0
- siphrix-1.0.0/tests/fixtures/policies/compat/policy_v4_block.yaml +19 -0
- siphrix-1.0.0/tests/fixtures/policies/compat/policy_v4_child.yaml +16 -0
- siphrix-1.0.0/tests/fixtures/policies/compat/policy_v4_expired.yaml +22 -0
- siphrix-1.0.0/tests/fixtures/policies/compat/policy_v4_fallback.yaml +15 -0
- siphrix-1.0.0/tests/fixtures/policies/compat/policy_v4_parent.yaml +19 -0
- siphrix-1.0.0/tests/test_action_evaluator_audit_fail_closed.py +392 -0
- siphrix-1.0.0/tests/test_agent_adapter.py +291 -0
- siphrix-1.0.0/tests/test_agent_exchange_record_closure.py +99 -0
- siphrix-1.0.0/tests/test_agent_exchange_record_foundation.py +72 -0
- siphrix-1.0.0/tests/test_agent_exchange_record_hardening.py +714 -0
- siphrix-1.0.0/tests/test_agent_handshake_record_closure.py +101 -0
- siphrix-1.0.0/tests/test_agent_handshake_record_foundation.py +72 -0
- siphrix-1.0.0/tests/test_agent_handshake_record_hardening.py +657 -0
- siphrix-1.0.0/tests/test_agent_identity.py +372 -0
- siphrix-1.0.0/tests/test_agent_identity_record_closure.py +239 -0
- siphrix-1.0.0/tests/test_agent_identity_record_foundation.py +285 -0
- siphrix-1.0.0/tests/test_agent_identity_record_hardening.py +661 -0
- siphrix-1.0.0/tests/test_ai_tool_bridge_contracts.py +1197 -0
- siphrix-1.0.0/tests/test_ai_tool_bridge_error_hygiene.py +966 -0
- siphrix-1.0.0/tests/test_analytics_risk_intelligence_contracts.py +831 -0
- siphrix-1.0.0/tests/test_analytics_risk_intelligence_error_hygiene.py +722 -0
- siphrix-1.0.0/tests/test_approval_envelope_record_closure.py +124 -0
- siphrix-1.0.0/tests/test_approval_envelope_record_foundation.py +107 -0
- siphrix-1.0.0/tests/test_approval_envelope_record_hardening.py +454 -0
- siphrix-1.0.0/tests/test_approval_runtime.py +605 -0
- siphrix-1.0.0/tests/test_approval_workflow_contracts.py +1402 -0
- siphrix-1.0.0/tests/test_approval_workflow_error_hygiene.py +725 -0
- siphrix-1.0.0/tests/test_audit.py +302 -0
- siphrix-1.0.0/tests/test_audit_explorer_contracts.py +1016 -0
- siphrix-1.0.0/tests/test_audit_explorer_error_hygiene.py +835 -0
- siphrix-1.0.0/tests/test_audit_preview_redaction.py +318 -0
- siphrix-1.0.0/tests/test_audit_trace_record.py +387 -0
- siphrix-1.0.0/tests/test_audit_trace_record_closure.py +330 -0
- siphrix-1.0.0/tests/test_audit_trace_record_hardening.py +713 -0
- siphrix-1.0.0/tests/test_audit_trace_validation_pack.py +232 -0
- siphrix-1.0.0/tests/test_audit_trace_validation_pack_closure.py +305 -0
- siphrix-1.0.0/tests/test_audit_trace_validation_pack_hardening.py +672 -0
- siphrix-1.0.0/tests/test_audit_workspace.py +191 -0
- siphrix-1.0.0/tests/test_browser_ai_monitor_contracts.py +1053 -0
- siphrix-1.0.0/tests/test_browser_ai_monitor_error_hygiene.py +1077 -0
- siphrix-1.0.0/tests/test_canon_runtime_hardening.py +169 -0
- siphrix-1.0.0/tests/test_canonical_contracts_foundation.py +340 -0
- siphrix-1.0.0/tests/test_cli.py +2626 -0
- siphrix-1.0.0/tests/test_cli_alias_surface.py +522 -0
- siphrix-1.0.0/tests/test_cli_diagnostics.py +458 -0
- siphrix-1.0.0/tests/test_cli_error_hygiene.py +278 -0
- siphrix-1.0.0/tests/test_cli_hosted_import.py +298 -0
- siphrix-1.0.0/tests/test_cli_profile_binds_pack.py +202 -0
- siphrix-1.0.0/tests/test_cli_quickstart.py +310 -0
- siphrix-1.0.0/tests/test_cli_show_internal_help.py +211 -0
- siphrix-1.0.0/tests/test_console_contracts.py +278 -0
- siphrix-1.0.0/tests/test_console_ui_foundation.py +804 -0
- siphrix-1.0.0/tests/test_console_ui_shell.py +232 -0
- siphrix-1.0.0/tests/test_constitution_record_inventory.py +113 -0
- siphrix-1.0.0/tests/test_constitutional_audit.py +485 -0
- siphrix-1.0.0/tests/test_constitutional_diff.py +563 -0
- siphrix-1.0.0/tests/test_constitutional_projection.py +657 -0
- siphrix-1.0.0/tests/test_context_adapters.py +304 -0
- siphrix-1.0.0/tests/test_context_window_record.py +507 -0
- siphrix-1.0.0/tests/test_context_window_record_closure.py +375 -0
- siphrix-1.0.0/tests/test_context_window_record_hardening.py +751 -0
- siphrix-1.0.0/tests/test_context_window_validation_pack.py +268 -0
- siphrix-1.0.0/tests/test_context_window_validation_pack_closure.py +302 -0
- siphrix-1.0.0/tests/test_context_window_validation_pack_hardening.py +680 -0
- siphrix-1.0.0/tests/test_dashboard_error_hygiene.py +303 -0
- siphrix-1.0.0/tests/test_dashboard_shell.py +7442 -0
- siphrix-1.0.0/tests/test_dashboard_workspace_contracts.py +931 -0
- siphrix-1.0.0/tests/test_decision_diff.py +2757 -0
- siphrix-1.0.0/tests/test_decision_path_e2e_audit.py +352 -0
- siphrix-1.0.0/tests/test_decision_snapshot_store.py +1301 -0
- siphrix-1.0.0/tests/test_decision_workspace.py +366 -0
- siphrix-1.0.0/tests/test_delegation_authority_record_closure.py +170 -0
- siphrix-1.0.0/tests/test_delegation_authority_record_foundation.py +175 -0
- siphrix-1.0.0/tests/test_delegation_authority_record_hardening.py +566 -0
- siphrix-1.0.0/tests/test_delegation_graph.py +559 -0
- siphrix-1.0.0/tests/test_demo_decision_coverage.py +163 -0
- siphrix-1.0.0/tests/test_demo_no_network_required.py +181 -0
- siphrix-1.0.0/tests/test_demo_no_secret_leak.py +195 -0
- siphrix-1.0.0/tests/test_demo_scenarios.py +340 -0
- siphrix-1.0.0/tests/test_developer_quickstart_polish.py +287 -0
- siphrix-1.0.0/tests/test_distributed_infrastructure_contracts.py +1704 -0
- siphrix-1.0.0/tests/test_distributed_infrastructure_error_hygiene.py +674 -0
- siphrix-1.0.0/tests/test_distribution_channel_record_closure.py +136 -0
- siphrix-1.0.0/tests/test_distribution_channel_record_foundation.py +107 -0
- siphrix-1.0.0/tests/test_distribution_channel_record_hardening.py +744 -0
- siphrix-1.0.0/tests/test_distribution_lineage_record_closure.py +117 -0
- siphrix-1.0.0/tests/test_distribution_lineage_record_foundation.py +68 -0
- siphrix-1.0.0/tests/test_distribution_lineage_record_hardening.py +822 -0
- siphrix-1.0.0/tests/test_distribution_manifest_record_closure.py +141 -0
- siphrix-1.0.0/tests/test_distribution_manifest_record_foundation.py +107 -0
- siphrix-1.0.0/tests/test_distribution_manifest_record_hardening.py +797 -0
- siphrix-1.0.0/tests/test_distribution_receipt_record_closure.py +120 -0
- siphrix-1.0.0/tests/test_distribution_receipt_record_foundation.py +68 -0
- siphrix-1.0.0/tests/test_distribution_receipt_record_hardening.py +895 -0
- siphrix-1.0.0/tests/test_distribution_trust_layer_closure.py +908 -0
- siphrix-1.0.0/tests/test_docs_path_hygiene.py +141 -0
- siphrix-1.0.0/tests/test_doctor.py +182 -0
- siphrix-1.0.0/tests/test_email_executor_smtp_backend.py +329 -0
- siphrix-1.0.0/tests/test_enclave_attestation_record_closure.py +127 -0
- siphrix-1.0.0/tests/test_enclave_attestation_record_foundation.py +68 -0
- siphrix-1.0.0/tests/test_enclave_attestation_record_hardening.py +1010 -0
- siphrix-1.0.0/tests/test_enclave_boundary_record_closure.py +127 -0
- siphrix-1.0.0/tests/test_enclave_boundary_record_foundation.py +68 -0
- siphrix-1.0.0/tests/test_enclave_boundary_record_hardening.py +973 -0
- siphrix-1.0.0/tests/test_enterprise_features_contracts.py +989 -0
- siphrix-1.0.0/tests/test_enterprise_features_error_hygiene.py +721 -0
- siphrix-1.0.0/tests/test_escalation_paths.py +612 -0
- siphrix-1.0.0/tests/test_execution_intercept_v1.py +86 -0
- siphrix-1.0.0/tests/test_executor_adapters.py +552 -0
- siphrix-1.0.0/tests/test_explanation.py +149 -0
- siphrix-1.0.0/tests/test_filesystem_default_root.py +153 -0
- siphrix-1.0.0/tests/test_filesystem_escape_hardening.py +328 -0
- siphrix-1.0.0/tests/test_flow_contracts.py +272 -0
- siphrix-1.0.0/tests/test_framework_adapters.py +211 -0
- siphrix-1.0.0/tests/test_frontier_layer_closure.py +931 -0
- siphrix-1.0.0/tests/test_gemini_planner.py +169 -0
- siphrix-1.0.0/tests/test_governance_quorum_store.py +276 -0
- siphrix-1.0.0/tests/test_high_assurance_enforcement_contracts.py +1619 -0
- siphrix-1.0.0/tests/test_high_assurance_enforcement_error_hygiene.py +647 -0
- siphrix-1.0.0/tests/test_high_assurance_pre_execution_gate.py +1448 -0
- siphrix-1.0.0/tests/test_hosted_admin_dashboard_mvp.py +551 -0
- siphrix-1.0.0/tests/test_hosted_control_plane_boundary_docs.py +428 -0
- siphrix-1.0.0/tests/test_hosted_control_plane_skeleton_contracts.py +704 -0
- siphrix-1.0.0/tests/test_hosted_foundation_contracts.py +1033 -0
- siphrix-1.0.0/tests/test_hosted_foundation_error_hygiene.py +702 -0
- siphrix-1.0.0/tests/test_hosted_foundation_runtime.py +961 -0
- siphrix-1.0.0/tests/test_hosted_health_skeleton.py +633 -0
- siphrix-1.0.0/tests/test_hosted_policy_bundle_runtime.py +1102 -0
- siphrix-1.0.0/tests/test_hosted_policy_control_plane_contracts.py +1189 -0
- siphrix-1.0.0/tests/test_hosted_policy_control_plane_error_hygiene.py +985 -0
- siphrix-1.0.0/tests/test_hosted_server_scaffold_boundary_docs.py +535 -0
- siphrix-1.0.0/tests/test_integration_examples_safety.py +566 -0
- siphrix-1.0.0/tests/test_integration_layer.py +133 -0
- siphrix-1.0.0/tests/test_integration_registry.py +299 -0
- siphrix-1.0.0/tests/test_integration_snapshot_flow.py +747 -0
- siphrix-1.0.0/tests/test_inter_agent_policy.py +541 -0
- siphrix-1.0.0/tests/test_inter_agent_policy_record_closure.py +122 -0
- siphrix-1.0.0/tests/test_inter_agent_policy_record_foundation.py +117 -0
- siphrix-1.0.0/tests/test_inter_agent_policy_record_hardening.py +427 -0
- siphrix-1.0.0/tests/test_intercept_http_hardening.py +63 -0
- siphrix-1.0.0/tests/test_investigation.py +1420 -0
- siphrix-1.0.0/tests/test_investigation_hardening.py +1731 -0
- siphrix-1.0.0/tests/test_kernel_syscall_interception.py +127 -0
- siphrix-1.0.0/tests/test_launch_pack.py +480 -0
- siphrix-1.0.0/tests/test_lineage_integrity.py +934 -0
- siphrix-1.0.0/tests/test_linux_kernel_backend.py +57 -0
- siphrix-1.0.0/tests/test_local_agent_contracts.py +889 -0
- siphrix-1.0.0/tests/test_local_agent_daemon_contract.py +474 -0
- siphrix-1.0.0/tests/test_local_agent_error_hygiene.py +778 -0
- siphrix-1.0.0/tests/test_local_approvals_store.py +404 -0
- siphrix-1.0.0/tests/test_local_daemon_approvals_api.py +479 -0
- siphrix-1.0.0/tests/test_local_daemon_contract.py +896 -0
- siphrix-1.0.0/tests/test_local_daemon_hosted_import_api.py +438 -0
- siphrix-1.0.0/tests/test_local_daemon_hosted_policy_import_boundary_docs.py +733 -0
- siphrix-1.0.0/tests/test_local_daemon_rules_api.py +448 -0
- siphrix-1.0.0/tests/test_local_diagnostics_bundle.py +605 -0
- siphrix-1.0.0/tests/test_local_firewall_onboarding_docs.py +1094 -0
- siphrix-1.0.0/tests/test_local_hosted_policy_import_stage_activation.py +494 -0
- siphrix-1.0.0/tests/test_local_hosted_policy_import_verifier.py +1004 -0
- siphrix-1.0.0/tests/test_local_repo_showcase.py +324 -0
- siphrix-1.0.0/tests/test_local_rules_enforcement.py +506 -0
- siphrix-1.0.0/tests/test_local_state_rules_store.py +375 -0
- siphrix-1.0.0/tests/test_memory_runtime_paths.py +374 -0
- siphrix-1.0.0/tests/test_mesh_route_record_closure.py +134 -0
- siphrix-1.0.0/tests/test_mesh_route_record_foundation.py +68 -0
- siphrix-1.0.0/tests/test_mesh_route_record_hardening.py +1019 -0
- siphrix-1.0.0/tests/test_mesh_topology_record_closure.py +126 -0
- siphrix-1.0.0/tests/test_mesh_topology_record_foundation.py +68 -0
- siphrix-1.0.0/tests/test_mesh_topology_record_hardening.py +1045 -0
- siphrix-1.0.0/tests/test_multi_agent_governance_contracts.py +1176 -0
- siphrix-1.0.0/tests/test_multi_agent_governance_error_hygiene.py +552 -0
- siphrix-1.0.0/tests/test_multi_agent_governance_layer_closure.py +445 -0
- siphrix-1.0.0/tests/test_network_executor_real_transport.py +258 -0
- siphrix-1.0.0/tests/test_next_phase_decision_docs.py +189 -0
- siphrix-1.0.0/tests/test_notifications_alerting_contracts.py +1112 -0
- siphrix-1.0.0/tests/test_notifications_alerting_error_hygiene.py +830 -0
- siphrix-1.0.0/tests/test_official_demo_smoke.py +882 -0
- siphrix-1.0.0/tests/test_operational_execution_layer_closure.py +819 -0
- siphrix-1.0.0/tests/test_operator_actions.py +382 -0
- siphrix-1.0.0/tests/test_operator_api.py +1078 -0
- siphrix-1.0.0/tests/test_operator_api_intake_endpoints.py +444 -0
- siphrix-1.0.0/tests/test_operator_api_mutation_endpoints.py +494 -0
- siphrix-1.0.0/tests/test_operator_api_quorum_endpoints.py +461 -0
- siphrix-1.0.0/tests/test_operator_api_quorum_integration.py +704 -0
- siphrix-1.0.0/tests/test_operator_api_registry_endpoints.py +443 -0
- siphrix-1.0.0/tests/test_operator_api_security_hardening.py +525 -0
- siphrix-1.0.0/tests/test_operator_api_versioned_policy_intake_endpoint.py +381 -0
- siphrix-1.0.0/tests/test_operator_command_execution.py +348 -0
- siphrix-1.0.0/tests/test_operator_commands.py +842 -0
- siphrix-1.0.0/tests/test_operator_control.py +444 -0
- siphrix-1.0.0/tests/test_operator_e2e_smoke.py +476 -0
- siphrix-1.0.0/tests/test_operator_hardening.py +1742 -0
- siphrix-1.0.0/tests/test_operator_views.py +1384 -0
- siphrix-1.0.0/tests/test_orchestrator_flow.py +681 -0
- siphrix-1.0.0/tests/test_org_rbac_contracts.py +1270 -0
- siphrix-1.0.0/tests/test_org_rbac_error_hygiene.py +815 -0
- siphrix-1.0.0/tests/test_os_enforcement_bridge_contracts.py +2012 -0
- siphrix-1.0.0/tests/test_os_enforcement_bridge_error_hygiene.py +1456 -0
- siphrix-1.0.0/tests/test_os_enforcement_linux_attach_acceptance_gate.py +1439 -0
- siphrix-1.0.0/tests/test_os_enforcement_linux_attach_probe.py +1338 -0
- siphrix-1.0.0/tests/test_os_enforcement_linux_real_attach_pilot.py +1771 -0
- siphrix-1.0.0/tests/test_os_enforcement_linux_real_attach_preflight_attestation.py +1265 -0
- siphrix-1.0.0/tests/test_os_enforcement_linux_real_attach_validation.py +1310 -0
- siphrix-1.0.0/tests/test_os_enforcement_linux_runtime_preflight_harness.py +1386 -0
- siphrix-1.0.0/tests/test_os_enforcement_linux_seccomp_strict_child_pilot.py +1982 -0
- siphrix-1.0.0/tests/test_os_enforcement_rollback_audit_safety.py +1306 -0
- siphrix-1.0.0/tests/test_os_enforcement_runtime_attach_boundary.py +1299 -0
- siphrix-1.0.0/tests/test_os_enforcement_runtime_attachment.py +1562 -0
- siphrix-1.0.0/tests/test_os_enforcement_runtime_attachment_lab.py +1471 -0
- siphrix-1.0.0/tests/test_packaging_surface.py +246 -0
- siphrix-1.0.0/tests/test_planner_adapter_ecosystem.py +159 -0
- siphrix-1.0.0/tests/test_planner_adapters.py +27 -0
- siphrix-1.0.0/tests/test_point11_readiness.py +278 -0
- siphrix-1.0.0/tests/test_point1_completion.py +1196 -0
- siphrix-1.0.0/tests/test_point1_ultra_hardening.py +2437 -0
- siphrix-1.0.0/tests/test_point2_stage1_foundation.py +1418 -0
- siphrix-1.0.0/tests/test_point2_stage1_hardening.py +1509 -0
- siphrix-1.0.0/tests/test_point2_stage21_hardening.py +2159 -0
- siphrix-1.0.0/tests/test_point2_stage2_resolver.py +1400 -0
- siphrix-1.0.0/tests/test_point2_stage311_hardening.py +1377 -0
- siphrix-1.0.0/tests/test_point2_stage31_overlay.py +1594 -0
- siphrix-1.0.0/tests/test_point2_stage321_hardening.py +1687 -0
- siphrix-1.0.0/tests/test_point2_stage322_cross_run_intelligence.py +397 -0
- siphrix-1.0.0/tests/test_point2_stage32_compiler.py +1686 -0
- siphrix-1.0.0/tests/test_point2_stage331_hardening.py +288 -0
- siphrix-1.0.0/tests/test_point2_stage33_decision_ready_policy.py +317 -0
- siphrix-1.0.0/tests/test_point2_stage341_certification_closure.py +332 -0
- siphrix-1.0.0/tests/test_point2_stage34_final_hardening.py +302 -0
- siphrix-1.0.0/tests/test_point2_stage411_runtime_hardening.py +609 -0
- siphrix-1.0.0/tests/test_point2_stage41_runtime_evaluation.py +722 -0
- siphrix-1.0.0/tests/test_point2_stage421_runtime_explanation_hardening.py +557 -0
- siphrix-1.0.0/tests/test_point2_stage422_runtime_explanation_intelligence.py +579 -0
- siphrix-1.0.0/tests/test_point2_stage42_runtime_trace_justification.py +569 -0
- siphrix-1.0.0/tests/test_point2_stage431_runtime_integration_hardening.py +710 -0
- siphrix-1.0.0/tests/test_point2_stage43_runtime_integration.py +543 -0
- siphrix-1.0.0/tests/test_point2_stage441_postclosure_assurance.py +427 -0
- siphrix-1.0.0/tests/test_point2_stage44_final_closure.py +481 -0
- siphrix-1.0.0/tests/test_point3_stage311_manifest_trust_hardening.py +515 -0
- siphrix-1.0.0/tests/test_point3_stage312_trust_governance.py +411 -0
- siphrix-1.0.0/tests/test_point3_stage31_policy_manifest_trust_foundation.py +501 -0
- siphrix-1.0.0/tests/test_point3_stage321_distribution_hardening.py +423 -0
- siphrix-1.0.0/tests/test_point3_stage32_distribution_foundation.py +410 -0
- siphrix-1.0.0/tests/test_point3_stage331_activation_hardening.py +424 -0
- siphrix-1.0.0/tests/test_point3_stage33_activation_safety.py +676 -0
- siphrix-1.0.0/tests/test_point3_stage341_orchestration_hardening.py +416 -0
- siphrix-1.0.0/tests/test_point3_stage34_orchestration.py +494 -0
- siphrix-1.0.0/tests/test_point3_stage351_postclosure_governance.py +319 -0
- siphrix-1.0.0/tests/test_point3_stage35_closure.py +450 -0
- siphrix-1.0.0/tests/test_point4_stage411_audit_hardening.py +699 -0
- siphrix-1.0.0/tests/test_point4_stage412_forensic_readiness.py +532 -0
- siphrix-1.0.0/tests/test_point4_stage421_query_hardening.py +763 -0
- siphrix-1.0.0/tests/test_point4_stage42_audit_query_engine.py +551 -0
- siphrix-1.0.0/tests/test_point4_stage431_incident_hardening.py +672 -0
- siphrix-1.0.0/tests/test_point4_stage43_incident_reconstruction.py +754 -0
- siphrix-1.0.0/tests/test_point4_stage441_final_closure.py +350 -0
- siphrix-1.0.0/tests/test_point4_stage44_packaging_surfaces.py +422 -0
- siphrix-1.0.0/tests/test_policy_attestation_view.py +591 -0
- siphrix-1.0.0/tests/test_policy_builder_contracts.py +998 -0
- siphrix-1.0.0/tests/test_policy_builder_error_hygiene.py +1067 -0
- siphrix-1.0.0/tests/test_policy_environment_view.py +631 -0
- siphrix-1.0.0/tests/test_policy_input_contract.py +119 -0
- siphrix-1.0.0/tests/test_policy_intake_governance.py +530 -0
- siphrix-1.0.0/tests/test_policy_lineage_engine.py +172 -0
- siphrix-1.0.0/tests/test_policy_lineage_graph.py +589 -0
- siphrix-1.0.0/tests/test_policy_loader_hardening.py +500 -0
- siphrix-1.0.0/tests/test_policy_model_hardening.py +760 -0
- siphrix-1.0.0/tests/test_policy_operator_api_auth.py +204 -0
- siphrix-1.0.0/tests/test_policy_pack_bridge.py +190 -0
- siphrix-1.0.0/tests/test_policy_pack_signing.py +712 -0
- siphrix-1.0.0/tests/test_policy_packs.py +84 -0
- siphrix-1.0.0/tests/test_policy_promotion_execution.py +539 -0
- siphrix-1.0.0/tests/test_policy_registry_config.py +212 -0
- siphrix-1.0.0/tests/test_policy_registry_intake.py +492 -0
- siphrix-1.0.0/tests/test_policy_registry_view.py +363 -0
- siphrix-1.0.0/tests/test_policy_remote.py +225 -0
- siphrix-1.0.0/tests/test_policy_remote_cache_path.py +144 -0
- siphrix-1.0.0/tests/test_policy_rollback_execution.py +896 -0
- siphrix-1.0.0/tests/test_policy_runtime_rule_eval_hardening.py +260 -0
- siphrix-1.0.0/tests/test_policy_runtime_sensitive_intent.py +268 -0
- siphrix-1.0.0/tests/test_policy_runtime_v2.py +141 -0
- siphrix-1.0.0/tests/test_policy_runtime_v3.py +151 -0
- siphrix-1.0.0/tests/test_policy_runtime_v4.py +243 -0
- siphrix-1.0.0/tests/test_policy_runtime_v4_complete.py +168 -0
- siphrix-1.0.0/tests/test_policy_schema_version_lock.py +473 -0
- siphrix-1.0.0/tests/test_policy_shadowing_detection.py +457 -0
- siphrix-1.0.0/tests/test_policy_tenant_view.py +381 -0
- siphrix-1.0.0/tests/test_policy_transition_governance.py +790 -0
- siphrix-1.0.0/tests/test_policy_versioned_policy_codec.py +432 -0
- siphrix-1.0.0/tests/test_policy_versioning_e2e_lifecycle.py +378 -0
- siphrix-1.0.0/tests/test_policy_versioning_foundation.py +191 -0
- siphrix-1.0.0/tests/test_policy_versioning_public_api_pin.py +138 -0
- siphrix-1.0.0/tests/test_policy_workspace.py +262 -0
- siphrix-1.0.0/tests/test_private_beta_acceptance_docs.py +304 -0
- siphrix-1.0.0/tests/test_private_beta_release_readiness.py +280 -0
- siphrix-1.0.0/tests/test_product_positioning.py +333 -0
- siphrix-1.0.0/tests/test_public_api_surface.py +118 -0
- siphrix-1.0.0/tests/test_quorum_requirement_record_closure.py +123 -0
- siphrix-1.0.0/tests/test_quorum_requirement_record_foundation.py +107 -0
- siphrix-1.0.0/tests/test_quorum_requirement_record_hardening.py +436 -0
- siphrix-1.0.0/tests/test_quorum_resolver.py +704 -0
- siphrix-1.0.0/tests/test_r11_acceptance_docs.py +449 -0
- siphrix-1.0.0/tests/test_readiness_audit_chain.py +348 -0
- siphrix-1.0.0/tests/test_readiness_audit_posture.py +243 -0
- siphrix-1.0.0/tests/test_readiness_executor_wiring.py +165 -0
- siphrix-1.0.0/tests/test_readiness_launch_gate.py +322 -0
- siphrix-1.0.0/tests/test_readiness_policy_shadowing.py +394 -0
- siphrix-1.0.0/tests/test_readiness_remote_policy_cache.py +368 -0
- siphrix-1.0.0/tests/test_release_artifact_hygiene.py +602 -0
- siphrix-1.0.0/tests/test_release_gate_model.py +404 -0
- siphrix-1.0.0/tests/test_release_gate_workflow.py +371 -0
- siphrix-1.0.0/tests/test_release_hardening.py +278 -0
- siphrix-1.0.0/tests/test_release_install_smoke.py +350 -0
- siphrix-1.0.0/tests/test_release_signing.py +443 -0
- siphrix-1.0.0/tests/test_replay_context_audit_layer_closure.py +591 -0
- siphrix-1.0.0/tests/test_replay_engine.py +2999 -0
- siphrix-1.0.0/tests/test_replay_lab_contracts.py +1357 -0
- siphrix-1.0.0/tests/test_replay_lab_error_hygiene.py +844 -0
- siphrix-1.0.0/tests/test_replay_record.py +491 -0
- siphrix-1.0.0/tests/test_replay_record_closure.py +374 -0
- siphrix-1.0.0/tests/test_replay_record_hardening.py +841 -0
- siphrix-1.0.0/tests/test_replay_validation_pack.py +263 -0
- siphrix-1.0.0/tests/test_replay_validation_pack_closure.py +315 -0
- siphrix-1.0.0/tests/test_replay_validation_pack_hardening.py +633 -0
- siphrix-1.0.0/tests/test_replay_workspace.py +169 -0
- siphrix-1.0.0/tests/test_repo_hygiene.py +386 -0
- siphrix-1.0.0/tests/test_repo_structure_invariants.py +329 -0
- siphrix-1.0.0/tests/test_resilience_distributed_orchestrator_closure.py +668 -0
- siphrix-1.0.0/tests/test_resilience_operational_closure.py +477 -0
- siphrix-1.0.0/tests/test_resilience_surface.py +135 -0
- siphrix-1.0.0/tests/test_risk_action_decision.py +248 -0
- siphrix-1.0.0/tests/test_risk_contracts.py +641 -0
- siphrix-1.0.0/tests/test_risk_execution.py +222 -0
- siphrix-1.0.0/tests/test_risk_explainer.py +204 -0
- siphrix-1.0.0/tests/test_risk_factor_engine.py +388 -0
- siphrix-1.0.0/tests/test_risk_feed_workspace.py +210 -0
- siphrix-1.0.0/tests/test_risk_live_policy_runtime_integration.py +564 -0
- siphrix-1.0.0/tests/test_risk_orchestration.py +152 -0
- siphrix-1.0.0/tests/test_risk_score_aggregation.py +352 -0
- siphrix-1.0.0/tests/test_risk_score_response_integration.py +295 -0
- siphrix-1.0.0/tests/test_role_policy_resolver.py +38 -0
- siphrix-1.0.0/tests/test_rule_eval_property.py +340 -0
- siphrix-1.0.0/tests/test_runtime_config.py +218 -0
- siphrix-1.0.0/tests/test_runtime_paths_consolidation.py +410 -0
- siphrix-1.0.0/tests/test_runtime_workspace.py +294 -0
- siphrix-1.0.0/tests/test_safe_defaults_posture.py +283 -0
- siphrix-1.0.0/tests/test_sandbox_executor_docker_runner.py +247 -0
- siphrix-1.0.0/tests/test_sdk_cli_polish.py +243 -0
- siphrix-1.0.0/tests/test_sensitive_detector_protocol.py +264 -0
- siphrix-1.0.0/tests/test_serialization_compat.py +958 -0
- siphrix-1.0.0/tests/test_shell_executor_hardening.py +143 -0
- siphrix-1.0.0/tests/test_simulation_audit.py +1134 -0
- siphrix-1.0.0/tests/test_simulation_console_projection.py +772 -0
- siphrix-1.0.0/tests/test_simulation_contracts.py +776 -0
- siphrix-1.0.0/tests/test_simulation_engine.py +1073 -0
- siphrix-1.0.0/tests/test_simulation_executor_parity.py +262 -0
- siphrix-1.0.0/tests/test_simulation_side_effects.py +1115 -0
- siphrix-1.0.0/tests/test_snapshot_integrity.py +1129 -0
- siphrix-1.0.0/tests/test_test_layout_invariants.py +126 -0
- siphrix-1.0.0/tests/test_trust_attestation_record_closure.py +143 -0
- siphrix-1.0.0/tests/test_trust_attestation_record_foundation.py +107 -0
- siphrix-1.0.0/tests/test_trust_attestation_record_hardening.py +772 -0
- siphrix-1.0.0/tests/test_trust_boundary_record_closure.py +144 -0
- siphrix-1.0.0/tests/test_trust_boundary_record_foundation.py +107 -0
- siphrix-1.0.0/tests/test_trust_boundary_record_hardening.py +814 -0
- siphrix-1.0.0/tests/test_trust_hardening.py +1171 -0
- siphrix-1.0.0/tests/test_trust_posture.py +410 -0
- siphrix-1.0.0/tests/test_trust_relation_record_closure.py +123 -0
- siphrix-1.0.0/tests/test_trust_relation_record_foundation.py +107 -0
- siphrix-1.0.0/tests/test_trust_relation_record_hardening.py +427 -0
- siphrix-1.0.0/tests/test_trust_relations.py +567 -0
- siphrix-1.0.0/tests/test_trust_secret_rotation_runtime.py +279 -0
- siphrix-1.0.0/tests/test_ui_dashboard_spec.py +512 -0
- siphrix-1.0.0/tests/test_universal_ai_firewall_demo.py +163 -0
- siphrix-1.0.0/tests/test_web_console_mvp.py +818 -0
- siphrix-1.0.0/tests/test_windows_installer_contract.py +780 -0
- siphrix-1.0.0/tests/test_workspace_links.py +315 -0
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Unreleased — rebrand to Siphrix
|
|
4
|
+
|
|
5
|
+
### Product rename: AlterSpec → Siphrix
|
|
6
|
+
- renamed the Python package, console script, and PyPI distribution
|
|
7
|
+
from `alterspec` to `siphrix` (`import siphrix`, `siphrix ...`)
|
|
8
|
+
- renamed the operator environment-variable contract from
|
|
9
|
+
`ALTERSPEC_*` to `SIPHRIX_*` and the default runtime home from
|
|
10
|
+
`~/.alterspec` to `~/.siphrix` (clean break — pre-beta, no migration
|
|
11
|
+
shim; existing `~/.alterspec` state is not auto-migrated)
|
|
12
|
+
- renamed all brand strings in CLI/console output, docs, and fixtures
|
|
13
|
+
(21,238 occurrences across 1,331 files); `git mv alterspec siphrix`
|
|
14
|
+
for the package tree plus the dashboard/docs/installer/research paths
|
|
15
|
+
- no behaviour change: the policy engine, runtime, contracts, schema
|
|
16
|
+
identifiers, and reason codes are unchanged; the full suite
|
|
17
|
+
(29,864 passed, 16 skipped) and `release_check.py` (PUBLISH OK) are
|
|
18
|
+
green on the renamed package
|
|
19
|
+
- external follow-up (not an in-repo change): the GitHub repository
|
|
20
|
+
must be renamed to `siphrix` for the rewritten project URLs to
|
|
21
|
+
resolve
|
|
22
|
+
|
|
23
|
+
## v1.0.0 — final release structure
|
|
24
|
+
|
|
25
|
+
### Release-grade reorganization
|
|
26
|
+
- consolidated the canonical integration library into `siphrix.integrations`
|
|
27
|
+
(`audit`, `layer_utils`, `snapshot`); the former `siphrix.examples.*`
|
|
28
|
+
modules remain as backward-compatibility re-export shims
|
|
29
|
+
- moved `role_policy_resolver` into the package at
|
|
30
|
+
`siphrix.policy_packs.resolver`; policy pack YAMLs (`safe_defaults`,
|
|
31
|
+
`enterprise_defaults`, `dev_agent_defaults`) and role overlays
|
|
32
|
+
(`admin`, `developer`, `finance`, `support`) are now shipped as package data
|
|
33
|
+
- relocated demo agents (`app.py`, `demo_scenarios.py`, `example_agent.py`,
|
|
34
|
+
`example_agent_openai.py`) to `examples/` at the repo root (not packaged)
|
|
35
|
+
- relocated the operator control panel to `tools/integration_control_panel.py`
|
|
36
|
+
and dev scripts to `scripts/` (not packaged)
|
|
37
|
+
- moved `POLICY_VERSIONING_ARCHITECTURE.md` to `docs/architecture/`
|
|
38
|
+
- moved v3/v4 compatibility policy fixtures to `tests/fixtures/policies/compat/`
|
|
39
|
+
|
|
40
|
+
### Runtime side-effect isolation
|
|
41
|
+
- `siphrix.logs.logger` and `siphrix.state.state_manager` now write to
|
|
42
|
+
`~/.siphrix/` by default; `SIPHRIX_HOME`, `SIPHRIX_LOG_PATH`, and
|
|
43
|
+
`SIPHRIX_STATE_PATH` override the paths
|
|
44
|
+
- `siphrix.policy_remote`, `siphrix.trust.policy_remote_guard`,
|
|
45
|
+
`siphrix.policy_sources.source`, and `siphrix.engine.runner_profiles`
|
|
46
|
+
no longer write into the package source tree; all defaults resolve under
|
|
47
|
+
`~/.siphrix/` with matching env-var overrides
|
|
48
|
+
- `siphrix.memory.api` no longer defaults to the package-local path
|
|
49
|
+
`siphrix/memory/memory_store.json`; the canonical default is now
|
|
50
|
+
`$SIPHRIX_HOME/memory/memory_store.json` (defaulting to
|
|
51
|
+
`~/.siphrix/memory/memory_store.json`), resolved via the new
|
|
52
|
+
`siphrix.runtime_paths` helper. The parent directory is created on
|
|
53
|
+
first use; a legacy repo-local seed is migrated verbatim only when the
|
|
54
|
+
canonical runtime file does not yet exist
|
|
55
|
+
|
|
56
|
+
### Trust posture
|
|
57
|
+
- introduced `siphrix.trust.trust_mode` with two explicit postures:
|
|
58
|
+
`development` (default) and `hardened` (requires
|
|
59
|
+
`$SIPHRIX_TRUST_SEAL_SECRET` ≥ 32 bytes or an explicit caller
|
|
60
|
+
argument; fails closed with stable `trust_seal_secret_missing` /
|
|
61
|
+
`trust_seal_secret_too_short` codes)
|
|
62
|
+
- `siphrix.trust.trust_seal` now routes secret resolution through the
|
|
63
|
+
posture resolver; hardened-mode sign / verify never falls back to the
|
|
64
|
+
development default. The historical `DEFAULT_TRUST_SEAL_SECRET`
|
|
65
|
+
constant is preserved as a development-only alias of the built-in
|
|
66
|
+
development secret for backwards compatibility
|
|
67
|
+
- added `siphrix.readiness.checks.check_trust_posture`; wired into
|
|
68
|
+
`siphrix.doctor.run_doctor` (canonical check count 4 → 5) and into
|
|
69
|
+
the `ALL_CHECKS` tuple in readiness (8 → 9)
|
|
70
|
+
- documented the reference remote-policy server as a development /
|
|
71
|
+
reference surface only, with an explicit tie-in to the trust-mode
|
|
72
|
+
concept
|
|
73
|
+
|
|
74
|
+
### Readiness / doctor launch gate
|
|
75
|
+
- added `siphrix.readiness.checks.check_runtime_paths` — verifies
|
|
76
|
+
canonical runtime path resolution and guards against regressions
|
|
77
|
+
where a resolved path would fall inside the installed package tree
|
|
78
|
+
- added `siphrix.readiness.checks.check_runtime_home_writable` — real
|
|
79
|
+
write-probe against `ensure_siphrix_home()` (creates + writes +
|
|
80
|
+
reads + removes a short marker file); `UNHEALTHY` if the runtime
|
|
81
|
+
home cannot be created or written
|
|
82
|
+
- `ALL_CHECKS` tuple grew from 9 → 11 entries; `test_point11_readiness`
|
|
83
|
+
count assertion updated
|
|
84
|
+
- `check_core_package` in `siphrix.doctor` now also reports a
|
|
85
|
+
`DEGRADED` posture when `siphrix.__version__` diverges from
|
|
86
|
+
`pyproject.toml`'s `[project].version` (repo / editable installs only)
|
|
87
|
+
- `assess_system_readiness` now injects a structured
|
|
88
|
+
`metadata["launch_readiness"]` with two booleans
|
|
89
|
+
(`development_ready` / `production_ready`) plus per-gate `blocking`
|
|
90
|
+
subsystem lists. `production_ready` requires every check HEALTHY
|
|
91
|
+
*and* `trust_posture.production_ready=True`
|
|
92
|
+
- new `siphrix.readiness.format_report` — compact operator-grade
|
|
93
|
+
text renderer for human / CI logs. JSON consumers continue to use
|
|
94
|
+
`SystemHealthReport.to_dict()`
|
|
95
|
+
- the doctor surface (`siphrix doctor` / `run_doctor`) inherits the
|
|
96
|
+
launch-readiness metadata automatically; 3 live postures verified
|
|
97
|
+
(dev default, hardened-missing-secret, hardened-configured)
|
|
98
|
+
|
|
99
|
+
### CLI polish
|
|
100
|
+
- top-level description updated to
|
|
101
|
+
"Siphrix — AI Action Firewall & Policy Runtime."
|
|
102
|
+
- `--help` now includes a stable `examples:` epilog, a brief
|
|
103
|
+
launch-gate note, and a trust-posture note — every subcommand stays
|
|
104
|
+
visible under `positional arguments`
|
|
105
|
+
- **new `siphrix doctor --json`** — emits the full
|
|
106
|
+
`SystemHealthReport.to_dict()` as JSON (indent=2, sort_keys=True)
|
|
107
|
+
with no text preamble, so `siphrix doctor --json | jq
|
|
108
|
+
.metadata.launch_readiness.production_ready` works as a CI gate
|
|
109
|
+
- `siphrix doctor` text mode now uses the shared
|
|
110
|
+
`siphrix.readiness.format_report`, which renders the
|
|
111
|
+
launch-readiness block alongside the per-subsystem status lines.
|
|
112
|
+
The legacy `siphrix doctor: <summary>` first line is preserved
|
|
113
|
+
so existing scripts that grep for it keep working
|
|
114
|
+
- `format_report` status glyphs realigned to the full-word format
|
|
115
|
+
already pinned by the CLI test surface
|
|
116
|
+
(`[HEALTHY]`/`[DEGRADED]`/`[UNHEALTHY]`/`[SKIPPED]`)
|
|
117
|
+
- exit code contract for `siphrix doctor` unchanged: `0` on `READY`
|
|
118
|
+
or `DEGRADED`, `1` on `NOT_READY`; JSON mode propagates the same
|
|
119
|
+
exit code so CI jobs gate correctly regardless of output format
|
|
120
|
+
|
|
121
|
+
### Examples: official golden-path demo
|
|
122
|
+
- **new `examples/official_demo.py`** — the official Siphrix product
|
|
123
|
+
demo. A single provider-neutral script with three tightly curated
|
|
124
|
+
flows in one run:
|
|
125
|
+
1. **Demo 1 — Blocked unsafe action**: a destructive `file_delete`
|
|
126
|
+
is blocked under the shipped `safe_defaults` pack
|
|
127
|
+
(`blocked_by_global:file_delete_blocked_by_pack`, matched rule
|
|
128
|
+
`block_file_delete`).
|
|
129
|
+
2. **Demo 2 — Allowed safe action**: a read-only `file_read` is
|
|
130
|
+
explicitly allowed (`allow_all_layers`, matched rule
|
|
131
|
+
`allow_file_read`).
|
|
132
|
+
3. **Demo 3 — Auditable decisions + launch-readiness posture**:
|
|
133
|
+
prints the decision trail (with `decision_id` and reason codes)
|
|
134
|
+
and the `siphrix doctor` launch-readiness block.
|
|
135
|
+
No third-party SDK, no network, no API keys. Runs entirely against
|
|
136
|
+
the shipped policy pack translated on the fly via
|
|
137
|
+
`siphrix.policy_packs.export_policy_pack`.
|
|
138
|
+
- `examples/example_agent_openai.py` now carries a prominent
|
|
139
|
+
module docstring marking it as optional / provider-specific (requires
|
|
140
|
+
`pip install openai` and a valid `OPENAI_API_KEY`). The golden path
|
|
141
|
+
is provider-neutral.
|
|
142
|
+
- README Quickstart updated to introduce `python examples/official_demo.py`
|
|
143
|
+
as the official one-command demo; existing references to
|
|
144
|
+
`basic_agent`, `tool_calling`, `universal_pattern` are preserved as
|
|
145
|
+
the three focused single-shape walkthroughs.
|
|
146
|
+
- new `tests/test_official_demo_smoke.py` — 7 tests pinning the
|
|
147
|
+
golden-path contract: exit code, three-banner layout, BLOCK/ALLOW
|
|
148
|
+
verdicts with their decision_ids and matched-rule ids, doctor
|
|
149
|
+
launch-readiness block, no `SIPHRIX_POLICY_FILE` leak into the
|
|
150
|
+
parent process, no `openai` SDK import.
|
|
151
|
+
|
|
152
|
+
### Packaging / install surface
|
|
153
|
+
- **new `siphrix demo` CLI subcommand** — the official golden-path
|
|
154
|
+
product demo is now reachable from any `pip install siphrix` as
|
|
155
|
+
`siphrix demo`. The demo core moved into the installable package
|
|
156
|
+
at `siphrix/cli/demo.py`; `examples/official_demo.py` is now a
|
|
157
|
+
thin wrapper over `siphrix.cli.demo.main` so both invocation
|
|
158
|
+
styles run byte-identical code.
|
|
159
|
+
- `pyproject.toml` metadata tightened:
|
|
160
|
+
- `description` now reads
|
|
161
|
+
"Siphrix — AI Action Firewall & Policy Runtime. Evaluates
|
|
162
|
+
every agent action against a policy before execution, emits an
|
|
163
|
+
auditable decision trail, and fails closed when in doubt."
|
|
164
|
+
- 10-entry `keywords` list (`ai`, `ai-agents`, `ai-safety`,
|
|
165
|
+
`action-firewall`, `policy-engine`, `policy-runtime`,
|
|
166
|
+
`governance`, `audit`, `enforcement`, `fail-closed`).
|
|
167
|
+
- Full `classifiers` block: MIT License, Python 3.11–3.14,
|
|
168
|
+
Production/Stable, Typed, Security + Monitoring topics.
|
|
169
|
+
- `project.urls` now includes `Homepage` and `Issues` alongside
|
|
170
|
+
the existing `Repository` / `Documentation` / `Changelog`.
|
|
171
|
+
- New `[project.optional-dependencies].build = ["build>=1.0",
|
|
172
|
+
"twine>=5.0"]` so operators can `pip install siphrix[build]`
|
|
173
|
+
for release tooling.
|
|
174
|
+
- `siphrix.cli.demo` ships as part of the wheel (confirmed 778
|
|
175
|
+
entries, `siphrix/cli/demo.py` present). Entry point remains
|
|
176
|
+
`siphrix = siphrix.cli.app:main`.
|
|
177
|
+
- `siphrix.cli.demo.main` now scopes both `SIPHRIX_POLICY_FILE`
|
|
178
|
+
and `SIPHRIX_NO_SIDE_EFFECTS` so the demo narrative is stable
|
|
179
|
+
regardless of the caller's ambient environment. Variables are
|
|
180
|
+
restored to their original values in `finally`.
|
|
181
|
+
- Fixed a pre-existing test-isolation leak in
|
|
182
|
+
`ConfigIntegrationTests` (`test_cli.py`): a tearDown now clears
|
|
183
|
+
`SIPHRIX_NO_SIDE_EFFECTS` after tests that invoke
|
|
184
|
+
`--profile safe_defaults`.
|
|
185
|
+
- **new `tests/test_packaging_surface.py`** — 15 tests pinning the
|
|
186
|
+
shipped contract without requiring a full `python -m build`:
|
|
187
|
+
pyproject metadata truthfulness (description / keywords / MIT
|
|
188
|
+
classifier / Python version classifiers / Homepage + Issues URLs /
|
|
189
|
+
`siphrix = siphrix.cli.app:main` entry point), public API
|
|
190
|
+
shape (`siphrix.__all__` vs expected 9-name set), shipped policy
|
|
191
|
+
pack + role overlay + canon YAMLs physically on disk next to the
|
|
192
|
+
installed package, `siphrix.cli.demo.main` importable, repo-only
|
|
193
|
+
subtrees (`siphrix.tests`, `siphrix.research`,
|
|
194
|
+
`siphrix.devtools.pytest_fallback`) excluded from the wheel by
|
|
195
|
+
the `[tool.setuptools.packages.find] exclude` list.
|
|
196
|
+
- README Quickstart reorganised: step 2 is now the official
|
|
197
|
+
`siphrix demo` golden path (replaces the raw `python
|
|
198
|
+
examples/official_demo.py` form while still documenting the repo
|
|
199
|
+
entry point as an equivalent). New "What ships vs. what's
|
|
200
|
+
repo-only" table clarifies the installed surface.
|
|
201
|
+
- Verified end-to-end by building the wheel, installing into a
|
|
202
|
+
clean venv, and exercising `siphrix --help`, `version`, `packs`,
|
|
203
|
+
`doctor`, `demo` — all succeed from the wheel install.
|
|
204
|
+
|
|
205
|
+
### Product narrative & positioning consistency
|
|
206
|
+
- Established **one canonical product tagline** used verbatim on
|
|
207
|
+
every first-impression surface:
|
|
208
|
+
"Siphrix — AI Action Firewall & Policy Runtime."
|
|
209
|
+
- Aligned the five identity surfaces:
|
|
210
|
+
- `README.md` opening line (was: "A runtime enforcement engine
|
|
211
|
+
for AI agents.") + second identity restatement further down
|
|
212
|
+
(was: "canonical enforcement engine for AI systems").
|
|
213
|
+
- `siphrix/__init__.py` module docstring first line (was:
|
|
214
|
+
"deterministic runtime control layer for AI systems.").
|
|
215
|
+
- `SECURITY.md` opening paragraph — new "**Siphrix — AI Action
|
|
216
|
+
Firewall & Policy Runtime.**" lead preserves the existing
|
|
217
|
+
threat-model content verbatim.
|
|
218
|
+
- `pyproject.toml` `description` — unchanged (already aligned in
|
|
219
|
+
the packaging round).
|
|
220
|
+
- `siphrix` CLI top-level `--help` — unchanged (already aligned
|
|
221
|
+
in the CLI round).
|
|
222
|
+
- Introduced explicit **supporting-layer vocabulary** so the one
|
|
223
|
+
external identity does not erase internal architecture detail:
|
|
224
|
+
*policy decision layer*, *runtime enforcement layer*,
|
|
225
|
+
*trust / audit / governance support layer*, *operator readiness
|
|
226
|
+
surface*. The README's "What Siphrix v1.0.0 Includes" section
|
|
227
|
+
now groups every existing feature bullet under one of the four
|
|
228
|
+
layers — no feature removed, no capability renamed, just a
|
|
229
|
+
reading-aid regrouping.
|
|
230
|
+
- **new `tests/test_product_positioning.py`** — 8 narrow, robust
|
|
231
|
+
invariants: canonical tagline present at the head of README,
|
|
232
|
+
SECURITY, package docstring, pyproject description; CLI module
|
|
233
|
+
carries the product-positioning phrase; three historic identity
|
|
234
|
+
phrases ("runtime enforcement engine for AI", "deterministic
|
|
235
|
+
runtime control layer for AI", "canonical enforcement engine for
|
|
236
|
+
AI") are banned from the head of each identity surface; the four
|
|
237
|
+
supporting-layer labels remain legible somewhere in README; and
|
|
238
|
+
the three real installed commands (`siphrix doctor`,
|
|
239
|
+
`siphrix doctor --json`, `siphrix demo`) are documented in
|
|
240
|
+
README. The tests are **head-scoped** on each file: supporting-layer
|
|
241
|
+
vocabulary deeper in the docs remains legitimate architecture
|
|
242
|
+
language and is explicitly not policed.
|
|
243
|
+
|
|
244
|
+
### Release workflow & three-gate release model
|
|
245
|
+
- Introduced the canonical **three-gate release model** inside
|
|
246
|
+
`tools/release_check.py`, with named constants:
|
|
247
|
+
- `repo_ready` — repo healthy for development (members:
|
|
248
|
+
`doctor`, `version_consistency`).
|
|
249
|
+
- `package_ready` — package safe to publish (members:
|
|
250
|
+
`build_artifacts`, `wheel_contents`, `sdist_contents`,
|
|
251
|
+
`twine_check`, `install_smoke`).
|
|
252
|
+
- `production_posture_ready` — **informational** gate derived
|
|
253
|
+
from `siphrix doctor`'s `launch_readiness.production_ready`
|
|
254
|
+
bit. Not a publication blocker in the default exit-code
|
|
255
|
+
contract.
|
|
256
|
+
- New PASS / WARN / FAIL banner (`_format_gate_banner`): lists each
|
|
257
|
+
gate with its verdict and per-gate blockers, ends with one
|
|
258
|
+
decision line (`OVERALL: PUBLISH OK` / `OVERALL: DO NOT PUBLISH`
|
|
259
|
+
/ `OVERALL: BLOCKED (--strict-production)`) that operators and CI
|
|
260
|
+
can grep.
|
|
261
|
+
- New `--strict-production` CLI flag — exit code `2` when repo and
|
|
262
|
+
package gates both PASS but production posture is not PASS. Useful
|
|
263
|
+
for release cuts that must land on a hardened install.
|
|
264
|
+
- Legacy `--strict` flag preserved: promotes DEGRADED/SKIPPED in
|
|
265
|
+
the two publication gates to FAIL.
|
|
266
|
+
- Exit-code contract documented: `0` = publish OK, `1` = repo or
|
|
267
|
+
package gate failed, `2` = `--strict-production` caught a
|
|
268
|
+
development-posture install.
|
|
269
|
+
- JSON output (`--json`) carries a new `release_gates` section with
|
|
270
|
+
per-gate `verdict` + `blockers` + the final `exit_code`, so CI
|
|
271
|
+
jobs gate directly on a stable machine-readable shape.
|
|
272
|
+
- **new `docs/release/RELEASE_RUNBOOK.md`** — the canonical live
|
|
273
|
+
release runbook. One page. Three-gate model explained. Preflight
|
|
274
|
+
checklist. One canonical release-gate command. Manual smoke
|
|
275
|
+
against the exact installed CLI surface (`siphrix version`,
|
|
276
|
+
`siphrix --help`, `siphrix doctor`, `siphrix doctor --json`,
|
|
277
|
+
`siphrix demo`). Publish + rollback steps.
|
|
278
|
+
- `CONTRIBUTING.md` grows a short "Release flow" section pointing
|
|
279
|
+
at the runbook and naming the canonical gate command.
|
|
280
|
+
- `docs/release/README.md` promotes the runbook to the canonical
|
|
281
|
+
(live) section.
|
|
282
|
+
- README "Release Documents" list leads with the runbook.
|
|
283
|
+
- **new `tests/test_release_gate_model.py`** — 22 invariants across
|
|
284
|
+
5 test classes: three gate constants exist; gate membership is a
|
|
285
|
+
partition of `SUBSYSTEM_IDS`; `production_posture_ready` is not a
|
|
286
|
+
subsystem id; gate verdict logic (PASS / WARN / FAIL + `--strict`
|
|
287
|
+
promotion); exit-code contract for all three documented cases
|
|
288
|
+
(publish OK, publish OK with production WARN, publish blocked,
|
|
289
|
+
`--strict-production` exit 2); banner shape; runbook + CONTRIBUTING
|
|
290
|
+
consistency (names the gates, references the canonical command,
|
|
291
|
+
lists every installed smoke command). Together these prove the
|
|
292
|
+
release model is machine-pinned and cannot silently drift.
|
|
293
|
+
- Live end-to-end demonstrated against the current working tree
|
|
294
|
+
(repo_ready=PASS, package_ready=FAIL, production_posture_ready=WARN,
|
|
295
|
+
OVERALL=DO NOT PUBLISH, exit 1) — a pre-existing Windows
|
|
296
|
+
`install_smoke` path race, independent of this round's changes.
|
|
297
|
+
- every repo-level test that previously wrote into `tests/.tmp/` now writes
|
|
298
|
+
under `tempfile.gettempdir()/siphrix/`; the executor-adapter tests use
|
|
299
|
+
the same tempfile root instead of a repo-local `tests_runtime/` directory
|
|
300
|
+
|
|
301
|
+
### Packaging discipline
|
|
302
|
+
- `pyproject.toml` explicitly excludes `siphrix.tests`, `siphrix.research`,
|
|
303
|
+
and `siphrix.devtools.pytest_fallback` from the installable wheel while
|
|
304
|
+
keeping them in the repository for CI
|
|
305
|
+
- `MANIFEST.in` prunes the same subtrees from the sdist; wheel + sdist contents
|
|
306
|
+
audited post-build (748 / 1 129 entries, zero leakage of forbidden subtrees)
|
|
307
|
+
- removed the repo-root `pytest/` shadow module that was shadowing the real
|
|
308
|
+
`pytest` package; the offline fallback remains only at
|
|
309
|
+
`siphrix/devtools/pytest_fallback/`
|
|
310
|
+
|
|
311
|
+
### CI release gate
|
|
312
|
+
- **new `.github/workflows/release-gate.yml`** — CI workflow that runs
|
|
313
|
+
`tools/release_check.py` on push/PR across Python 3.11 and 3.12, uses
|
|
314
|
+
`--strict` on `v*` tag pushes, uploads the built `dist/` only on tag
|
|
315
|
+
builds, and (when configured with a GitHub Environment) chains a
|
|
316
|
+
manually-approved `publish-pypi` job that uses PyPI Trusted Publishing
|
|
317
|
+
(OIDC) — no long-lived API tokens stored in the repository
|
|
318
|
+
- `make release-check` — local equivalent of the CI job
|
|
319
|
+
|
|
320
|
+
### Release artifact signing
|
|
321
|
+
- **new `siphrix.release`** module with the canonical release-manifest
|
|
322
|
+
helpers (`build_release_manifest`, `sign_release_manifest`,
|
|
323
|
+
`write_release_manifest`, `load_release_manifest`,
|
|
324
|
+
`verify_release_manifest`). The signed manifest is canonical JSON over
|
|
325
|
+
every declared artifact's name, size, and SHA-256, signed once with
|
|
326
|
+
Ed25519 via `siphrix.foundation.proof_bundle` (no new crypto
|
|
327
|
+
primitive)
|
|
328
|
+
- **new `tools/release_sign.py`** — operator script. Runs after
|
|
329
|
+
`python -m build` over a populated `dist/` directory and writes
|
|
330
|
+
`dist/release_manifest.json`. Private keys stay outside the repo via
|
|
331
|
+
the on-disk convention already owned by
|
|
332
|
+
`foundation.proof_bundle.ensure_keypair`
|
|
333
|
+
- **new `tools/release_verify.py`** — consumer-side verifier. Re-hashes
|
|
334
|
+
every declared artifact and verifies the Ed25519 signature; exits
|
|
335
|
+
non-zero on any tamper
|
|
336
|
+
- **new `tests/test_release_signing.py`** — 28 offline tests covering
|
|
337
|
+
digest correctness, manifest round-trip, tamper detection (wheel
|
|
338
|
+
bytes, sdist bytes, missing artifact, forged signature, edited
|
|
339
|
+
manifest field), deterministic verification, and end-to-end operator
|
|
340
|
+
flow
|
|
341
|
+
|
|
342
|
+
### Operator dashboard (all 8 pages shipped, framework-free)
|
|
343
|
+
- **new `docs/ui/DASHBOARD.md`** — canonical dashboard spec: page map,
|
|
344
|
+
component list, data contracts, UI states, explicit out-of-scope
|
|
345
|
+
list. The dashboard is a **read-only-or-ephemeral projection** of
|
|
346
|
+
existing product surfaces — no new backend, no framework, no npm
|
|
347
|
+
- **new `tools/siphrix_dashboard/`** — the implementation. Stdlib-only
|
|
348
|
+
Python dev server + plain HTML + vanilla JS. Every `/api/*` endpoint
|
|
349
|
+
is a thin adapter over an already-shipped command or Python helper
|
|
350
|
+
- **v1 pages** (read-only projections): **Overview**, **Readiness**,
|
|
351
|
+
**Policy Packs**, **Release State** — each binds to
|
|
352
|
+
`siphrix doctor --json`, `siphrix.policy_packs.list_policy_packs()`,
|
|
353
|
+
and `python tools/release_check.py --json`
|
|
354
|
+
- **v2 pages** (ephemeral endpoints with bounded input contracts):
|
|
355
|
+
**Audit** (read-only view of the canonical events log, pinned to
|
|
356
|
+
`runtime_paths.events_log_path()`; closed-vocabulary chip filter,
|
|
357
|
+
not a filesystem browser); **Policy Check** (one textarea → one
|
|
358
|
+
`PolicyManager.decide()` call gated by `PolicyInput.from_dict()`;
|
|
359
|
+
64 KB body cap, never writes); **Demo** (one button shelling out to
|
|
360
|
+
the canonical `siphrix demo` CLI with a 30 s timeout and a 256 KB
|
|
361
|
+
per-stream cap; not a terminal emulator); **Runtime** (one textarea →
|
|
362
|
+
one `run_pipeline()` call in-process; 16 KB input cap; does **not**
|
|
363
|
+
call `RuntimeConfig.apply()`, so no env vars leak into the dev
|
|
364
|
+
server process)
|
|
365
|
+
- Six read-only GET endpoints (`/api/doctor`, `/api/packs`,
|
|
366
|
+
`/api/release`, `/api/runtime-paths`, `/api/version`, `/api/audit`) +
|
|
367
|
+
three ephemeral POST endpoints (`/api/policy-check`, `/api/demo`,
|
|
368
|
+
`/api/runtime-run`), all documented at `docs/ui/DASHBOARD.md` §5.
|
|
369
|
+
Every POST envelope carries a uniform `{status, error, …}` shape so
|
|
370
|
+
UI code can assume the key set
|
|
371
|
+
- **new `tests/test_dashboard_shell.py`** — ~115 tests across 13
|
|
372
|
+
classes pinning file layout, nav wiring, shared-asset references,
|
|
373
|
+
endpoint shapes + live smoke, no-write-path invariants, scope
|
|
374
|
+
guarantees (no arbitrary command / file-path / profile knobs on any
|
|
375
|
+
POST endpoint), and cross-page consistency invariants
|
|
376
|
+
- **new `tests/test_ui_dashboard_spec.py`** — 29 tests pinning the
|
|
377
|
+
spec structure, data-contract grounding, framework-free stance, and
|
|
378
|
+
showcase-readiness pointers
|
|
379
|
+
|
|
380
|
+
### Showcase + public handoff
|
|
381
|
+
- **new `docs/ui/SHOWCASE.md`** — 5-minute operator tour covering
|
|
382
|
+
version / doctor → demo → dashboard → release gate. Every command,
|
|
383
|
+
file path, and return shape is the one shipping today
|
|
384
|
+
- README Quickstart grows a dashboard-launch step and a direct
|
|
385
|
+
pointer to `docs/ui/SHOWCASE.md`
|
|
386
|
+
- `docs/ui/README.md` rewritten to reflect the shipped 8-page reality;
|
|
387
|
+
historical "v1 shell" / "reserved stubs" framing removed
|
|
388
|
+
- `tools/siphrix_dashboard/README.md` drops per-page "Xth
|
|
389
|
+
implemented v2 page" narrative; all pages read as one grouped set
|
|
390
|
+
- `docs/release/README.md` + `docs/README.md` indexes updated to
|
|
391
|
+
reference the Showcase doc and the CI release-gate workflow
|
|
392
|
+
|
|
393
|
+
## v1.0.0
|
|
394
|
+
|
|
395
|
+
### Core product
|
|
396
|
+
- established the canonical non-versioned `siphrix` product surface
|
|
397
|
+
- absorbed historical feature tracks into the active package tree
|
|
398
|
+
- hardened runtime, trust, governance, resilience, analysis, and testing paths
|
|
399
|
+
- added the canonical kernel syscall interception layer
|
|
400
|
+
- added distribution channel foundation and policy versioning architecture
|
|
401
|
+
- completed Stage 2.1 ultra hardening across all modules
|
|
402
|
+
|
|
403
|
+
### Packaging and release metadata
|
|
404
|
+
- added `MANIFEST.in` and `[project.urls]` for release-grade packaging
|
|
405
|
+
- aligned version string across `README`, `CHANGELOG`, `pyproject.toml`, and `__init__.py`
|
|
406
|
+
- added root-level `.gitignore` protecting `.venv/`, `.claude/`, cache / build artefacts
|
|
407
|
+
- added `SECURITY.md` and `CONTRIBUTING.md`
|
|
408
|
+
- added GitHub Actions CI with smoke (3.11 / 3.12), structural invariants, and coverage jobs
|
|
409
|
+
|
|
410
|
+
### Structural cleanup
|
|
411
|
+
- removed three empty / dead directories (`state/`, `tests_runtime/` scaffold, `siphrix/framework/`)
|
|
412
|
+
- removed root-level `integration_snapshot.py` and `planner_contract.py` compatibility shims
|
|
413
|
+
- removed duplicate root-level `planners/` directory; the canonical location is `siphrix.adapters.planners`
|
|
414
|
+
- merged canonical builder functions from `siphrix/examples/` into the root-level integration scripts
|
|
415
|
+
- migrated 23 imports to canonical paths (`siphrix.contracts.planner`, `siphrix.adapters.planners.*`)
|
|
416
|
+
|
|
417
|
+
### API surface
|
|
418
|
+
- replaced wildcard `__init__.py` re-exports in `siphrix.governance` and
|
|
419
|
+
`siphrix.policy_versioning` with 454 and 1137 explicitly enumerated public symbols
|
|
420
|
+
- added `test_public_api_surface` and `test_repo_structure_invariants` to lock in the
|
|
421
|
+
explicit export contract
|
|
422
|
+
|
|
423
|
+
### Internal hardening
|
|
424
|
+
- replaced the Canon DSL `eval()` call with an AST-whitelisted evaluator that
|
|
425
|
+
rejects function calls, subscripts, arithmetic, lambdas, and comprehensions
|
|
426
|
+
before any value is read
|
|
427
|
+
- added defence-in-depth limits to the shell executor: 512-character command
|
|
428
|
+
length cap, 16-argument cap, 10-second subprocess timeout, null byte and
|
|
429
|
+
newline rejection
|
|
430
|
+
- added a transport scheme allowlist (`http` / `https`) and a 16 MiB response
|
|
431
|
+
body cap to the `http_get` choke point, both enforced before policy
|
|
432
|
+
evaluation runs
|
|
433
|
+
- added hardening test suites for the three boundaries above
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# Contributing to Siphrix
|
|
2
|
+
|
|
3
|
+
Thank you for taking the time to contribute. Siphrix is a small,
|
|
4
|
+
focused codebase; keeping it that way is the point. This document
|
|
5
|
+
describes how to set up your environment, run the tests, and make
|
|
6
|
+
changes that do not regress the guarantees the project already provides.
|
|
7
|
+
|
|
8
|
+
## Development environment
|
|
9
|
+
|
|
10
|
+
Requirements:
|
|
11
|
+
- Python 3.11 or newer (CI covers 3.11 and 3.12)
|
|
12
|
+
- `git`
|
|
13
|
+
|
|
14
|
+
Set up:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
git clone <repo-url>
|
|
18
|
+
cd siphrix # the product root (contains pyproject.toml)
|
|
19
|
+
python -m venv .venv
|
|
20
|
+
# macOS / Linux
|
|
21
|
+
source .venv/bin/activate
|
|
22
|
+
# Windows PowerShell
|
|
23
|
+
.\.venv\Scripts\Activate.ps1
|
|
24
|
+
python -m pip install --upgrade pip
|
|
25
|
+
python -m pip install -e ".[dev]"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Running the tests
|
|
29
|
+
|
|
30
|
+
From the `siphrix/` product root:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Fast path — compile + focused hardening tests (~2 seconds)
|
|
34
|
+
python -m compileall -q siphrix
|
|
35
|
+
python -m unittest tests.test_public_api_surface
|
|
36
|
+
python -m unittest tests.test_canon_runtime_hardening
|
|
37
|
+
python -m unittest tests.test_shell_executor_hardening
|
|
38
|
+
python -m unittest tests.test_intercept_http_hardening
|
|
39
|
+
python -m unittest tests.test_repo_structure_invariants
|
|
40
|
+
|
|
41
|
+
# Full repo-level unit suite
|
|
42
|
+
python -m unittest discover -s tests -q
|
|
43
|
+
|
|
44
|
+
# Package-internal public-API suite (2353 tests, repo-only — not shipped in the wheel)
|
|
45
|
+
python -m unittest discover -s siphrix/tests -t .
|
|
46
|
+
|
|
47
|
+
# Canonical smoke runner
|
|
48
|
+
python -m siphrix.tests_all_global
|
|
49
|
+
|
|
50
|
+
# Interactive demo
|
|
51
|
+
python examples/app.py
|
|
52
|
+
|
|
53
|
+
# Practical integration examples
|
|
54
|
+
python examples/example_agent.py --list-scenarios
|
|
55
|
+
python examples/example_agent.py --scenario blocked_delete
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Coverage (optional):
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
pip install coverage
|
|
62
|
+
coverage run -m unittest discover -s tests -q
|
|
63
|
+
coverage report --skip-covered --precision=1
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Adding a new Canon law
|
|
67
|
+
|
|
68
|
+
Canon laws live in `siphrix/canon/canon_v1_laws.yaml`. Each law has a
|
|
69
|
+
trigger expression written in the Canon DSL.
|
|
70
|
+
|
|
71
|
+
Rules:
|
|
72
|
+
|
|
73
|
+
1. Keep the DSL grammar: boolean operators (`AND`, `OR`), comparison
|
|
74
|
+
operators (`==`, `!=`, `<`, `>`, `<=`, `>=`), membership (`IN`,
|
|
75
|
+
`NOT_IN`), literals (`true`, `false`, `null`, numbers, quoted
|
|
76
|
+
strings, list literals), bare names, dotted references,
|
|
77
|
+
parentheses. **No** function calls, subscripts, arithmetic.
|
|
78
|
+
2. Avoid attribute names that are Python reserved words
|
|
79
|
+
(`class`, `def`, `import`, ...). The AST parser will silently
|
|
80
|
+
treat the law as never triggered — there is no way around that
|
|
81
|
+
without changing the DSL grammar.
|
|
82
|
+
3. Validate the law before committing:
|
|
83
|
+
|
|
84
|
+
```python
|
|
85
|
+
from siphrix.canon.canon_runtime import CanonRuleEngine
|
|
86
|
+
CanonRuleEngine.validate_law_expression(my_expression)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
4. Every new law should get at least one corresponding test in
|
|
90
|
+
`tests/` (or an entry in `siphrix/canon/conformance_tests.yaml`).
|
|
91
|
+
|
|
92
|
+
## Changing the public API
|
|
93
|
+
|
|
94
|
+
Every canonical package (`siphrix.governance`, `siphrix.policy_versioning`,
|
|
95
|
+
etc.) publishes an explicit `__all__`. The public surface is covered by
|
|
96
|
+
`tests/test_public_api_surface.py`.
|
|
97
|
+
|
|
98
|
+
Rules:
|
|
99
|
+
|
|
100
|
+
1. **Do not** remove or rename a symbol without a deprecation path.
|
|
101
|
+
2. **Do not** re-introduce wildcard imports in `__init__.py` files;
|
|
102
|
+
the explicit list is auditable and IDE-friendly.
|
|
103
|
+
3. When adding a new public symbol:
|
|
104
|
+
- add it to the right `_public_api.py` (for `contracts`,
|
|
105
|
+
`console`, `constitution`, `constitution/execution`,
|
|
106
|
+
`constitution/execution/operational`, `governance`,
|
|
107
|
+
`policy_versioning`) or the relevant `__init__.py`
|
|
108
|
+
for packages whose root is the authoritative surface;
|
|
109
|
+
- include it in `__all__`;
|
|
110
|
+
- document any non-obvious contract.
|
|
111
|
+
4. When removing internal helpers, confirm that no other module or
|
|
112
|
+
test imports them: `grep -r "from siphrix.x import y"`.
|
|
113
|
+
|
|
114
|
+
## Adding or modifying an executor / adapter
|
|
115
|
+
|
|
116
|
+
Adapters live under `siphrix/adapters/`. The shell executor, HTTP
|
|
117
|
+
interception choke point, and URL scheme allowlist have dedicated
|
|
118
|
+
hardening suites — any change there must keep those tests green.
|
|
119
|
+
|
|
120
|
+
Hard rules:
|
|
121
|
+
|
|
122
|
+
- `subprocess.run` is called with `shell=False`. Never change that.
|
|
123
|
+
- The shell command allowlist is *intentionally* tiny. Widening it
|
|
124
|
+
needs explicit justification in the PR description.
|
|
125
|
+
- `http_get` enforces the transport allowlist **before** policy
|
|
126
|
+
evaluation. Do not swap the order.
|
|
127
|
+
|
|
128
|
+
## Style and consistency
|
|
129
|
+
|
|
130
|
+
- Python module and directory names use `lowercase_with_underscores`.
|
|
131
|
+
- Test files follow `test_<feature>[_foundation|closure|hardening].py`.
|
|
132
|
+
- Examples / integration scripts at the project root use absolute
|
|
133
|
+
package paths (`from siphrix.X import Y`) unless they are importing
|
|
134
|
+
a local sibling module.
|
|
135
|
+
- Keep functions small, docstrings short, and comments focused on *why*
|
|
136
|
+
(not *what*).
|
|
137
|
+
|
|
138
|
+
## Commit and PR discipline
|
|
139
|
+
|
|
140
|
+
1. One logical change per PR.
|
|
141
|
+
2. Run the fast-path tests before pushing.
|
|
142
|
+
3. Update `CHANGELOG.md` only when you add, remove, or change behaviour
|
|
143
|
+
that matters to downstream users.
|
|
144
|
+
4. If your change touches the security posture (canon DSL, shell
|
|
145
|
+
executor, HTTP interception, crypto, trust), update `SECURITY.md`
|
|
146
|
+
in the same PR and add or update a hardening test.
|
|
147
|
+
|
|
148
|
+
## Filing issues
|
|
149
|
+
|
|
150
|
+
- **Bugs**: include a minimal reproduction and the full traceback.
|
|
151
|
+
- **Feature requests**: explain the use case and the alternative
|
|
152
|
+
workflows you considered.
|
|
153
|
+
- **Security**: follow `SECURITY.md` — do not open public issues.
|
|
154
|
+
|
|
155
|
+
## Release flow
|
|
156
|
+
|
|
157
|
+
When it is time to cut a release, follow
|
|
158
|
+
[`docs/release/RELEASE_RUNBOOK.md`](docs/release/RELEASE_RUNBOOK.md).
|
|
159
|
+
The release model is three named gates — `repo_ready`,
|
|
160
|
+
`package_ready`, `production_posture_ready` — evaluated by the one
|
|
161
|
+
canonical gate:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
python tools/release_check.py
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Do not invent a parallel release path. If a step you need is missing
|
|
168
|
+
from the runbook, add it to the runbook.
|
|
169
|
+
|
|
170
|
+
## Automated release gate (CI)
|
|
171
|
+
|
|
172
|
+
CI runs the same command as local release validation:
|
|
173
|
+
|
|
174
|
+
python tools/release_check.py
|
|
175
|
+
|
|
176
|
+
Behavior:
|
|
177
|
+
- push / PR → default gate
|
|
178
|
+
- tag (v*) → strict gate (--strict) → publish to TestPyPI → publish to PyPI
|
|
179
|
+
|
|
180
|
+
On a `v*` tag push the workflow runs three jobs in order:
|
|
181
|
+
`release-readiness` → `publish-testpypi` → `publish-pypi`. PyPI is
|
|
182
|
+
gated on the `pypi` GitHub Environment, which requires reviewer
|
|
183
|
+
approval (configured in repo Settings → Environments). Publish uses
|
|
184
|
+
**PyPI Trusted Publishing (OIDC)** via `pypa/gh-action-pypi-publish`
|
|
185
|
+
— no long-lived tokens in repository secrets.
|
|
186
|
+
|
|
187
|
+
CI does NOT use `--strict-production`.
|
|
188
|
+
Production posture is a deployment decision.
|
|
189
|
+
|
|
190
|
+
See [`docs/release/RELEASE_RUNBOOK.md`](docs/release/RELEASE_RUNBOOK.md)
|
|
191
|
+
for the first-time publish setup and the end-to-end tag-push flow.
|
siphrix-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Denis Ghengeaua
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|