siphrix 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (816) hide show
  1. siphrix/__init__.py +94 -0
  2. siphrix/__main__.py +13 -0
  3. siphrix/adapters/__init__.py +98 -0
  4. siphrix/adapters/context/__init__.py +15 -0
  5. siphrix/adapters/context/base.py +81 -0
  6. siphrix/adapters/context/composite_context.py +80 -0
  7. siphrix/adapters/context/environment_context.py +37 -0
  8. siphrix/adapters/context/normalizer.py +339 -0
  9. siphrix/adapters/context/role_context.py +37 -0
  10. siphrix/adapters/context/session_context.py +37 -0
  11. siphrix/adapters/context/tenant_context.py +37 -0
  12. siphrix/adapters/executors/__init__.py +10 -0
  13. siphrix/adapters/executors/base.py +241 -0
  14. siphrix/adapters/executors/email_executor.py +384 -0
  15. siphrix/adapters/executors/filesystem_executor.py +271 -0
  16. siphrix/adapters/executors/network_executor.py +309 -0
  17. siphrix/adapters/executors/os_enforcement_bridge.py +32716 -0
  18. siphrix/adapters/executors/pre_execution_gate.py +934 -0
  19. siphrix/adapters/executors/sandbox_executor.py +351 -0
  20. siphrix/adapters/executors/shell_executor.py +240 -0
  21. siphrix/adapters/executors/stub_executor.py +47 -0
  22. siphrix/adapters/frameworks/__init__.py +7 -0
  23. siphrix/adapters/frameworks/agent_runtime_adapter.py +85 -0
  24. siphrix/adapters/frameworks/base.py +158 -0
  25. siphrix/adapters/frameworks/orchestration_adapter.py +65 -0
  26. siphrix/adapters/frameworks/workflow_adapter.py +57 -0
  27. siphrix/adapters/planners/__init__.py +19 -0
  28. siphrix/adapters/planners/anthropic_planner.py +57 -0
  29. siphrix/adapters/planners/base.py +93 -0
  30. siphrix/adapters/planners/custom_planner.py +24 -0
  31. siphrix/adapters/planners/gemini_planner.py +173 -0
  32. siphrix/adapters/planners/local_planner.py +29 -0
  33. siphrix/adapters/planners/mock_planner.py +84 -0
  34. siphrix/adapters/planners/normalizer.py +408 -0
  35. siphrix/adapters/planners/ollama_planner.py +46 -0
  36. siphrix/adapters/planners/openai_planner.py +58 -0
  37. siphrix/adapters/registry.py +1004 -0
  38. siphrix/agent.py +556 -0
  39. siphrix/analysis/__init__.py +144 -0
  40. siphrix/analysis/bounded_explorer.py +53 -0
  41. siphrix/analysis/collusion.py +41 -0
  42. siphrix/analysis/containment_plan.py +121 -0
  43. siphrix/analysis/cross_agent_correlation.py +159 -0
  44. siphrix/analysis/cross_analyzer.py +21 -0
  45. siphrix/analysis/cross_coverage.py +29 -0
  46. siphrix/analysis/cross_diff.py +15 -0
  47. siphrix/analysis/cross_engine.py +15 -0
  48. siphrix/analysis/cross_policy.py +23 -0
  49. siphrix/analysis/cross_rules.py +27 -0
  50. siphrix/analysis/cross_state.py +46 -0
  51. siphrix/analysis/decomposition.py +178 -0
  52. siphrix/analysis/determinism.py +77 -0
  53. siphrix/analysis/escalation.py +151 -0
  54. siphrix/analysis/exfiltration.py +56 -0
  55. siphrix/analysis/formal.py +14 -0
  56. siphrix/analysis/formal_properties.py +38 -0
  57. siphrix/analysis/observation_bus.py +41 -0
  58. siphrix/analysis/policies.py +24 -0
  59. siphrix/analysis/proof_artifacts.py +18 -0
  60. siphrix/analysis/simulation.py +153 -0
  61. siphrix/analysis/state_machine.py +218 -0
  62. siphrix/analysis/temporal_risk.py +155 -0
  63. siphrix/analysis/threat_graph.py +120 -0
  64. siphrix/analysis/trajectory.py +102 -0
  65. siphrix/analysis/zero_trust.py +120 -0
  66. siphrix/audit.py +564 -0
  67. siphrix/canon/canon_runtime.py +401 -0
  68. siphrix/canon/canon_v1.md +118 -0
  69. siphrix/canon/canon_v1_laws.yaml +419 -0
  70. siphrix/canon/conformance_tests.yaml +107 -0
  71. siphrix/cli/__init__.py +60 -0
  72. siphrix/cli/app.py +19328 -0
  73. siphrix/cli/demo.py +845 -0
  74. siphrix/cli/enterprise.py +28 -0
  75. siphrix/cli/governance.py +26 -0
  76. siphrix/cli/predictive.py +28 -0
  77. siphrix/cli/style.py +325 -0
  78. siphrix/coherence/__init__.py +3 -0
  79. siphrix/coherence/enforcer.py +87 -0
  80. siphrix/config.py +265 -0
  81. siphrix/console/__init__.py +54 -0
  82. siphrix/console/_public_api.py +1561 -0
  83. siphrix/console/ai_tool_bridge.py +1896 -0
  84. siphrix/console/analytics_risk_intelligence.py +8394 -0
  85. siphrix/console/app.py +26 -0
  86. siphrix/console/approval_workflow.py +4556 -0
  87. siphrix/console/audit_explorer.py +2079 -0
  88. siphrix/console/audit_workspace.py +493 -0
  89. siphrix/console/browser_ai_monitor.py +9242 -0
  90. siphrix/console/constitutional_projection.py +1743 -0
  91. siphrix/console/contracts.py +2096 -0
  92. siphrix/console/dashboard_overview.py +2577 -0
  93. siphrix/console/decision_workspace.py +250 -0
  94. siphrix/console/distributed_infrastructure.py +7744 -0
  95. siphrix/console/enterprise_features.py +7970 -0
  96. siphrix/console/high_assurance_enforcement.py +5910 -0
  97. siphrix/console/hosted_foundation.py +4561 -0
  98. siphrix/console/hosted_policy_control_plane.py +8316 -0
  99. siphrix/console/local_agent.py +991 -0
  100. siphrix/console/multi_agent_governance.py +9179 -0
  101. siphrix/console/notifications_alerting.py +9051 -0
  102. siphrix/console/operator_actions.py +475 -0
  103. siphrix/console/operator_api.py +2658 -0
  104. siphrix/console/operator_api_auth.py +206 -0
  105. siphrix/console/operator_command_execution.py +519 -0
  106. siphrix/console/operator_commands.py +1143 -0
  107. siphrix/console/operator_control.py +582 -0
  108. siphrix/console/org_rbac.py +7651 -0
  109. siphrix/console/policy_builder.py +1538 -0
  110. siphrix/console/policy_workspace.py +395 -0
  111. siphrix/console/replay_lab.py +3370 -0
  112. siphrix/console/replay_workspace.py +356 -0
  113. siphrix/console/risk_feed_workspace.py +462 -0
  114. siphrix/console/routes/__init__.py +5 -0
  115. siphrix/console/routes/console_routes.py +46 -0
  116. siphrix/console/runtime_workspace.py +592 -0
  117. siphrix/console/simulation_projection.py +237 -0
  118. siphrix/console/ui/__init__.py +93 -0
  119. siphrix/console/ui/console_app.py +584 -0
  120. siphrix/console/ui/console_rendering.py +103 -0
  121. siphrix/console/ui/console_ui_models.py +383 -0
  122. siphrix/console/ui/workspace_viewers.py +394 -0
  123. siphrix/console/workspace_links.py +333 -0
  124. siphrix/constitution/__init__.py +43 -0
  125. siphrix/constitution/_public_api.py +652 -0
  126. siphrix/constitution/agent_exchange_record.py +306 -0
  127. siphrix/constitution/agent_exchange_record_validation.py +46 -0
  128. siphrix/constitution/agent_handshake_record.py +295 -0
  129. siphrix/constitution/agent_handshake_record_validation.py +46 -0
  130. siphrix/constitution/agent_identity_record.py +442 -0
  131. siphrix/constitution/agent_identity_record_validation.py +127 -0
  132. siphrix/constitution/approval_envelope_record.py +222 -0
  133. siphrix/constitution/approval_envelope_record_validation.py +46 -0
  134. siphrix/constitution/audit_trace_record.py +459 -0
  135. siphrix/constitution/audit_trace_record_validation.py +128 -0
  136. siphrix/constitution/audit_trace_validation_pack.py +51 -0
  137. siphrix/constitution/audit_trace_validation_pack_validation.py +91 -0
  138. siphrix/constitution/context_window_record.py +466 -0
  139. siphrix/constitution/context_window_record_validation.py +128 -0
  140. siphrix/constitution/context_window_validation_pack.py +51 -0
  141. siphrix/constitution/context_window_validation_pack_validation.py +91 -0
  142. siphrix/constitution/delegation_authority_record.py +420 -0
  143. siphrix/constitution/delegation_authority_record_validation.py +77 -0
  144. siphrix/constitution/distribution_channel_record.py +238 -0
  145. siphrix/constitution/distribution_channel_record_validation.py +46 -0
  146. siphrix/constitution/distribution_lineage_record.py +249 -0
  147. siphrix/constitution/distribution_lineage_record_validation.py +45 -0
  148. siphrix/constitution/distribution_manifest_record.py +240 -0
  149. siphrix/constitution/distribution_manifest_record_validation.py +46 -0
  150. siphrix/constitution/distribution_receipt_record.py +261 -0
  151. siphrix/constitution/distribution_receipt_record_validation.py +45 -0
  152. siphrix/constitution/enclave_attestation_record.py +285 -0
  153. siphrix/constitution/enclave_attestation_record_validation.py +46 -0
  154. siphrix/constitution/enclave_boundary_record.py +275 -0
  155. siphrix/constitution/enclave_boundary_record_validation.py +46 -0
  156. siphrix/constitution/execution/__init__.py +44 -0
  157. siphrix/constitution/execution/_public_api.py +213 -0
  158. siphrix/constitution/execution/decision_executor_binding_validation.py +194 -0
  159. siphrix/constitution/execution/decision_executor_bindings.py +490 -0
  160. siphrix/constitution/execution/execution_attestation.py +587 -0
  161. siphrix/constitution/execution/execution_attestation_validation.py +230 -0
  162. siphrix/constitution/execution/execution_boundaries.py +490 -0
  163. siphrix/constitution/execution/execution_boundary_validation.py +252 -0
  164. siphrix/constitution/execution/execution_bridge.py +348 -0
  165. siphrix/constitution/execution/execution_bridge_resolution.py +104 -0
  166. siphrix/constitution/execution/execution_bridge_validation.py +114 -0
  167. siphrix/constitution/execution/execution_conformance.py +562 -0
  168. siphrix/constitution/execution/execution_conformance_validation.py +230 -0
  169. siphrix/constitution/execution/execution_handoff.py +603 -0
  170. siphrix/constitution/execution/execution_handoff_validation.py +227 -0
  171. siphrix/constitution/execution/execution_refusal.py +541 -0
  172. siphrix/constitution/execution/execution_refusal_validation.py +208 -0
  173. siphrix/constitution/execution/executor_capabilities.py +593 -0
  174. siphrix/constitution/execution/executor_capability_validation.py +299 -0
  175. siphrix/constitution/execution/executor_contract.py +669 -0
  176. siphrix/constitution/execution/executor_validation.py +282 -0
  177. siphrix/constitution/execution/operational/__init__.py +49 -0
  178. siphrix/constitution/execution/operational/_public_api.py +239 -0
  179. siphrix/constitution/execution/operational/boundary.py +406 -0
  180. siphrix/constitution/execution/operational/capability.py +291 -0
  181. siphrix/constitution/execution/operational/completion.py +340 -0
  182. siphrix/constitution/execution/operational/completion_validation.py +142 -0
  183. siphrix/constitution/execution/operational/dispatch_binding.py +319 -0
  184. siphrix/constitution/execution/operational/dispatch_binding_resolution.py +133 -0
  185. siphrix/constitution/execution/operational/dispatch_binding_validation.py +123 -0
  186. siphrix/constitution/execution/operational/handoff.py +335 -0
  187. siphrix/constitution/execution/operational/handoff_consumption.py +121 -0
  188. siphrix/constitution/execution/operational/handoff_validation.py +107 -0
  189. siphrix/constitution/execution/operational/identity.py +322 -0
  190. siphrix/constitution/execution/operational/outcome_production.py +287 -0
  191. siphrix/constitution/execution/operational/outcome_production_resolution.py +128 -0
  192. siphrix/constitution/execution/operational/outcome_production_validation.py +88 -0
  193. siphrix/constitution/execution/operational/production_completion.py +279 -0
  194. siphrix/constitution/execution/operational/production_completion_resolution.py +121 -0
  195. siphrix/constitution/execution/operational/production_completion_validation.py +89 -0
  196. siphrix/constitution/execution/operational/record.py +258 -0
  197. siphrix/constitution/execution/operational/refusal.py +306 -0
  198. siphrix/constitution/execution/operational/refusal_validation.py +126 -0
  199. siphrix/constitution/execution/operational/registry.py +318 -0
  200. siphrix/constitution/execution/operational/registry_validation.py +222 -0
  201. siphrix/constitution/execution/operational/request.py +287 -0
  202. siphrix/constitution/execution/operational/request_validation.py +126 -0
  203. siphrix/constitution/execution/operational/result.py +302 -0
  204. siphrix/constitution/execution/operational/result_validation.py +126 -0
  205. siphrix/constitution/execution/operational/validation.py +349 -0
  206. siphrix/constitution/inter_agent_policy_record.py +315 -0
  207. siphrix/constitution/inter_agent_policy_record_validation.py +66 -0
  208. siphrix/constitution/mesh_route_record.py +288 -0
  209. siphrix/constitution/mesh_route_record_validation.py +46 -0
  210. siphrix/constitution/mesh_topology_record.py +285 -0
  211. siphrix/constitution/mesh_topology_record_validation.py +46 -0
  212. siphrix/constitution/organization_entry_gate.py +367 -0
  213. siphrix/constitution/organization_entry_gate_validation.py +112 -0
  214. siphrix/constitution/organization_execution_scope_binding.py +360 -0
  215. siphrix/constitution/organization_execution_scope_binding_validation.py +112 -0
  216. siphrix/constitution/organization_identity.py +310 -0
  217. siphrix/constitution/organization_identity_validation.py +100 -0
  218. siphrix/constitution/organization_membership.py +345 -0
  219. siphrix/constitution/organization_membership_validation.py +111 -0
  220. siphrix/constitution/organization_policy_attachment.py +381 -0
  221. siphrix/constitution/organization_policy_attachment_validation.py +114 -0
  222. siphrix/constitution/organization_role.py +352 -0
  223. siphrix/constitution/organization_role_assignment.py +368 -0
  224. siphrix/constitution/organization_role_assignment_validation.py +113 -0
  225. siphrix/constitution/organization_role_validation.py +110 -0
  226. siphrix/constitution/organization_scope.py +333 -0
  227. siphrix/constitution/organization_scope_bridge.py +365 -0
  228. siphrix/constitution/organization_scope_bridge_validation.py +112 -0
  229. siphrix/constitution/organization_scope_validation.py +108 -0
  230. siphrix/constitution/organization_validation_pack.py +128 -0
  231. siphrix/constitution/organization_validation_pack_validation.py +133 -0
  232. siphrix/constitution/quorum_requirement_record.py +220 -0
  233. siphrix/constitution/quorum_requirement_record_validation.py +46 -0
  234. siphrix/constitution/replay_record.py +431 -0
  235. siphrix/constitution/replay_record_validation.py +128 -0
  236. siphrix/constitution/replay_validation_pack.py +51 -0
  237. siphrix/constitution/replay_validation_pack_validation.py +90 -0
  238. siphrix/constitution/trust_attestation_record.py +244 -0
  239. siphrix/constitution/trust_attestation_record_validation.py +46 -0
  240. siphrix/constitution/trust_boundary_record.py +253 -0
  241. siphrix/constitution/trust_boundary_record_validation.py +46 -0
  242. siphrix/constitution/trust_relation_record.py +228 -0
  243. siphrix/constitution/trust_relation_record_validation.py +46 -0
  244. siphrix/contracts/__init__.py +52 -0
  245. siphrix/contracts/_public_api.py +672 -0
  246. siphrix/contracts/_validation_base.py +116 -0
  247. siphrix/contracts/_validation_constitutional.py +2074 -0
  248. siphrix/contracts/_validation_core.py +2273 -0
  249. siphrix/contracts/_validation_integration.py +292 -0
  250. siphrix/contracts/_validation_projected.py +1216 -0
  251. siphrix/contracts/_validation_risk.py +1772 -0
  252. siphrix/contracts/_validation_simulation.py +1406 -0
  253. siphrix/contracts/_validation_workspace.py +4702 -0
  254. siphrix/contracts/action.py +218 -0
  255. siphrix/contracts/adapter_capability.py +107 -0
  256. siphrix/contracts/agent_identity.py +221 -0
  257. siphrix/contracts/approval_runtime.py +803 -0
  258. siphrix/contracts/audit.py +18 -0
  259. siphrix/contracts/audit_event.py +132 -0
  260. siphrix/contracts/constitutional_audit.py +661 -0
  261. siphrix/contracts/constitutional_diff.py +1100 -0
  262. siphrix/contracts/context.py +101 -0
  263. siphrix/contracts/decision.py +116 -0
  264. siphrix/contracts/delegation_graph.py +571 -0
  265. siphrix/contracts/escalation_paths.py +760 -0
  266. siphrix/contracts/execution.py +183 -0
  267. siphrix/contracts/flow.py +253 -0
  268. siphrix/contracts/inter_agent_policy.py +581 -0
  269. siphrix/contracts/multi_agent.py +12 -0
  270. siphrix/contracts/planner.py +251 -0
  271. siphrix/contracts/quorum_resolver.py +753 -0
  272. siphrix/contracts/risk.py +11 -0
  273. siphrix/contracts/simulation.py +861 -0
  274. siphrix/contracts/trust_relations.py +726 -0
  275. siphrix/contracts/validation.py +229 -0
  276. siphrix/devtools/__init__.py +1 -0
  277. siphrix/doctor.py +302 -0
  278. siphrix/engine/__init__.py +65 -0
  279. siphrix/engine/canonical_manifest.py +18 -0
  280. siphrix/engine/gap_audit.py +38 -0
  281. siphrix/engine/runner_profiles.py +259 -0
  282. siphrix/engine/stack_declaration.py +30 -0
  283. siphrix/engine/unified_runner.py +420 -0
  284. siphrix/examples/__init__.py +47 -0
  285. siphrix/examples/integration_audit.py +7 -0
  286. siphrix/examples/integration_layer_utils.py +38 -0
  287. siphrix/examples/integration_snapshot.py +7 -0
  288. siphrix/examples/role_policy_resolver.py +18 -0
  289. siphrix/exec_intercept/__init__.py +4 -0
  290. siphrix/exec_intercept/evaluator.py +188 -0
  291. siphrix/exec_intercept/intercept.py +83 -0
  292. siphrix/exec_intercept/policy.py +25 -0
  293. siphrix/exec_intercept/types.py +48 -0
  294. siphrix/explanation.py +114 -0
  295. siphrix/foundation/__init__.py +111 -0
  296. siphrix/foundation/analyzer.py +37 -0
  297. siphrix/foundation/aspl.py +68 -0
  298. siphrix/foundation/aspl_lexer.py +97 -0
  299. siphrix/foundation/aspl_types.py +64 -0
  300. siphrix/foundation/audit_chain.py +99 -0
  301. siphrix/foundation/canon.py +30 -0
  302. siphrix/foundation/poe.py +44 -0
  303. siphrix/foundation/policy_signing.py +139 -0
  304. siphrix/foundation/policy_sources.py +30 -0
  305. siphrix/foundation/preflight.py +20 -0
  306. siphrix/foundation/proof_bundle.py +95 -0
  307. siphrix/foundation/state.py +30 -0
  308. siphrix/governance/__init__.py +39 -0
  309. siphrix/governance/_public_api.py +1012 -0
  310. siphrix/governance/audit/__init__.py +1 -0
  311. siphrix/governance/audit/certification.py +114 -0
  312. siphrix/governance/audit/chain_integrity.py +186 -0
  313. siphrix/governance/audit/chain_retrieval_truth.py +144 -0
  314. siphrix/governance/audit/chain_truth.py +175 -0
  315. siphrix/governance/audit/closure_manifest.py +103 -0
  316. siphrix/governance/audit/correlation_readiness.py +155 -0
  317. siphrix/governance/audit/cross_layer_consistency.py +97 -0
  318. siphrix/governance/audit/evidence_assurance.py +207 -0
  319. siphrix/governance/audit/export.py +98 -0
  320. siphrix/governance/audit/exporter.py +173 -0
  321. siphrix/governance/audit/forensic_readiness.py +245 -0
  322. siphrix/governance/audit/global_determinism.py +81 -0
  323. siphrix/governance/audit/global_truth.py +86 -0
  324. siphrix/governance/audit/handoff.py +84 -0
  325. siphrix/governance/audit/incident_readiness.py +148 -0
  326. siphrix/governance/audit/incident_reconstruction.py +137 -0
  327. siphrix/governance/audit/incident_reproducibility.py +75 -0
  328. siphrix/governance/audit/index.py +175 -0
  329. siphrix/governance/audit/index_query_consistency.py +142 -0
  330. siphrix/governance/audit/integrity.py +166 -0
  331. siphrix/governance/audit/lineage_confidence.py +201 -0
  332. siphrix/governance/audit/match_safety.py +114 -0
  333. siphrix/governance/audit/no_overclaim.py +88 -0
  334. siphrix/governance/audit/package_safety.py +100 -0
  335. siphrix/governance/audit/packaging_readiness.py +130 -0
  336. siphrix/governance/audit/packaging_truth.py +107 -0
  337. siphrix/governance/audit/query_engine.py +461 -0
  338. siphrix/governance/audit/query_honesty.py +188 -0
  339. siphrix/governance/audit/query_integrity.py +346 -0
  340. siphrix/governance/audit/query_projection.py +90 -0
  341. siphrix/governance/audit/query_projection_faithfulness.py +154 -0
  342. siphrix/governance/audit/query_readiness.py +173 -0
  343. siphrix/governance/audit/query_reproducibility.py +138 -0
  344. siphrix/governance/audit/query_truth.py +164 -0
  345. siphrix/governance/audit/reconstruction_chain_truth.py +137 -0
  346. siphrix/governance/audit/record.py +127 -0
  347. siphrix/governance/audit/record_admissibility.py +254 -0
  348. siphrix/governance/audit/reproducibility.py +141 -0
  349. siphrix/governance/audit/retention_redaction_foundation.py +266 -0
  350. siphrix/governance/audit/retrieval_readiness.py +156 -0
  351. siphrix/governance/audit/schema.py +226 -0
  352. siphrix/governance/audit/tamper_detection.py +136 -0
  353. siphrix/governance/audit/timeline.py +161 -0
  354. siphrix/governance/audit/timeline_hardening.py +209 -0
  355. siphrix/governance/audit/workspace_projection.py +111 -0
  356. siphrix/governance/compliance/__init__.py +1 -0
  357. siphrix/governance/compliance/export.py +58 -0
  358. siphrix/governance/compliance/mapping.py +115 -0
  359. siphrix/governance/compliance/replay.py +45 -0
  360. siphrix/governance/correlation_graph.py +391 -0
  361. siphrix/governance/correlation_graph_integrity.py +120 -0
  362. siphrix/governance/decision_ledger.py +79 -0
  363. siphrix/governance/delegated_authority.py +109 -0
  364. siphrix/governance/evidence/__init__.py +1 -0
  365. siphrix/governance/evidence/bundle.py +127 -0
  366. siphrix/governance/evidence/bundle_faithfulness.py +170 -0
  367. siphrix/governance/evidence/export.py +99 -0
  368. siphrix/governance/evidence/provenance.py +137 -0
  369. siphrix/governance/evidence/retention.py +54 -0
  370. siphrix/governance/exception_governance.py +112 -0
  371. siphrix/governance/explainability.py +31 -0
  372. siphrix/governance/governance_record.py +55 -0
  373. siphrix/governance/incident/__init__.py +1 -0
  374. siphrix/governance/incident/grouping_honesty.py +105 -0
  375. siphrix/governance/incident/reconstruction.py +176 -0
  376. siphrix/governance/incident/review_package.py +156 -0
  377. siphrix/governance/incident/truth.py +122 -0
  378. siphrix/governance/operator_investigation_view.py +113 -0
  379. siphrix/governance/policy_framework.py +45 -0
  380. siphrix/governance/quorum_approval.py +147 -0
  381. siphrix/governance/quorum_store.py +348 -0
  382. siphrix/governance/regulatory_profiles.py +83 -0
  383. siphrix/governance/retention_workflow.py +41 -0
  384. siphrix/hosted/__init__.py +36 -0
  385. siphrix/hosted/admin_dashboard.py +930 -0
  386. siphrix/hosted/scaffold.py +958 -0
  387. siphrix/hosted/store.py +1031 -0
  388. siphrix/identity/__init__.py +3 -0
  389. siphrix/identity/loader.py +14 -0
  390. siphrix/identity/schema.py +64 -0
  391. siphrix/identity/temp_builder.py +29 -0
  392. siphrix/identity/validator.py +17 -0
  393. siphrix/integration_flow/__init__.py +5 -0
  394. siphrix/integration_flow/orchestrator.py +423 -0
  395. siphrix/integrations/__init__.py +70 -0
  396. siphrix/integrations/audit.py +100 -0
  397. siphrix/integrations/layer_utils.py +419 -0
  398. siphrix/integrations/snapshot.py +245 -0
  399. siphrix/intention/__init__.py +3 -0
  400. siphrix/intention/interpreter.py +116 -0
  401. siphrix/intention/types.py +18 -0
  402. siphrix/local_agent.py +375 -0
  403. siphrix/local_daemon.py +1365 -0
  404. siphrix/local_diagnostics.py +273 -0
  405. siphrix/local_hosted_import/__init__.py +32 -0
  406. siphrix/local_hosted_import/cli.py +276 -0
  407. siphrix/local_hosted_import/daemon_api.py +234 -0
  408. siphrix/local_hosted_import/store.py +430 -0
  409. siphrix/local_hosted_import/verifier.py +560 -0
  410. siphrix/local_state.py +1081 -0
  411. siphrix/logs/__init__.py +3 -0
  412. siphrix/logs/logger.py +43 -0
  413. siphrix/memory/__init__.py +3 -0
  414. siphrix/memory/api.py +207 -0
  415. siphrix/memory/schema.py +33 -0
  416. siphrix/memory/store.py +32 -0
  417. siphrix/orchestrator/__init__.py +14 -0
  418. siphrix/orchestrator/llm_stub.py +43 -0
  419. siphrix/orchestrator/pipeline.py +251 -0
  420. siphrix/policies/agent_default_v1.yaml +22 -0
  421. siphrix/policies/global_baseline_v1.yaml +40 -0
  422. siphrix/policies/index.yaml +5 -0
  423. siphrix/policies/org_default_v1.yaml +17 -0
  424. siphrix/policies/team_default_v1.yaml +22 -0
  425. siphrix/policy_packs/__init__.py +153 -0
  426. siphrix/policy_packs/bridge.py +223 -0
  427. siphrix/policy_packs/dev_agent_defaults.yaml +53 -0
  428. siphrix/policy_packs/enterprise_defaults.yaml +57 -0
  429. siphrix/policy_packs/resolver.py +83 -0
  430. siphrix/policy_packs/roles/admin.yaml +33 -0
  431. siphrix/policy_packs/roles/developer.yaml +36 -0
  432. siphrix/policy_packs/roles/finance.yaml +26 -0
  433. siphrix/policy_packs/roles/support.yaml +24 -0
  434. siphrix/policy_packs/safe_defaults.yaml +279 -0
  435. siphrix/policy_packs/signing.py +279 -0
  436. siphrix/policy_remote.py +136 -0
  437. siphrix/policy_runtime/__init__.py +20 -0
  438. siphrix/policy_runtime/input.py +178 -0
  439. siphrix/policy_runtime/loader.py +569 -0
  440. siphrix/policy_runtime/manager.py +1066 -0
  441. siphrix/policy_runtime/registry.py +73 -0
  442. siphrix/policy_runtime/rule_eval.py +91 -0
  443. siphrix/policy_runtime/types.py +87 -0
  444. siphrix/policy_sources/source.py +129 -0
  445. siphrix/policy_versioning/__init__.py +39 -0
  446. siphrix/policy_versioning/_public_api.py +3994 -0
  447. siphrix/policy_versioning/activation/__init__.py +1 -0
  448. siphrix/policy_versioning/activation/activation.py +100 -0
  449. siphrix/policy_versioning/activation/atomicity.py +96 -0
  450. siphrix/policy_versioning/activation/atomicity_truth.py +98 -0
  451. siphrix/policy_versioning/activation/chain_truth.py +113 -0
  452. siphrix/policy_versioning/activation/eligibility.py +117 -0
  453. siphrix/policy_versioning/activation/emergency_control.py +125 -0
  454. siphrix/policy_versioning/activation/emergency_safety.py +94 -0
  455. siphrix/policy_versioning/activation/foundation_readiness.py +160 -0
  456. siphrix/policy_versioning/activation/honesty.py +124 -0
  457. siphrix/policy_versioning/activation/integrity.py +205 -0
  458. siphrix/policy_versioning/activation/projection.py +121 -0
  459. siphrix/policy_versioning/activation/projection_faithfulness.py +109 -0
  460. siphrix/policy_versioning/activation/readiness.py +184 -0
  461. siphrix/policy_versioning/activation/reproducibility.py +64 -0
  462. siphrix/policy_versioning/activation/rollback_orchestration.py +190 -0
  463. siphrix/policy_versioning/activation/rollback_preparation.py +156 -0
  464. siphrix/policy_versioning/activation/rollback_safety.py +75 -0
  465. siphrix/policy_versioning/activation/rollback_truth.py +105 -0
  466. siphrix/policy_versioning/activation/rollout.py +174 -0
  467. siphrix/policy_versioning/activation/rollout_eligibility.py +169 -0
  468. siphrix/policy_versioning/activation/staging.py +115 -0
  469. siphrix/policy_versioning/attestation_view.py +491 -0
  470. siphrix/policy_versioning/batch_replay_reports.py +626 -0
  471. siphrix/policy_versioning/compilation/__init__.py +1 -0
  472. siphrix/policy_versioning/compilation/compiler.py +816 -0
  473. siphrix/policy_versioning/compilation/compiler_coverage.py +521 -0
  474. siphrix/policy_versioning/compilation/compiler_diff.py +441 -0
  475. siphrix/policy_versioning/compilation/compiler_export.py +2350 -0
  476. siphrix/policy_versioning/compilation/compiler_honesty.py +783 -0
  477. siphrix/policy_versioning/compilation/compiler_integrity.py +1071 -0
  478. siphrix/policy_versioning/compilation/compiler_readiness.py +819 -0
  479. siphrix/policy_versioning/compilation/compiler_reproducibility.py +452 -0
  480. siphrix/policy_versioning/compilation/compiler_safety.py +636 -0
  481. siphrix/policy_versioning/compilation/compiler_summary.py +325 -0
  482. siphrix/policy_versioning/compilation/compiler_trace.py +275 -0
  483. siphrix/policy_versioning/compilation/consistency.py +117 -0
  484. siphrix/policy_versioning/compilation/cross_run_analysis.py +154 -0
  485. siphrix/policy_versioning/compilation/derivation.py +110 -0
  486. siphrix/policy_versioning/compilation/expected_overlays.py +135 -0
  487. siphrix/policy_versioning/compilation/fingerprint_registry.py +167 -0
  488. siphrix/policy_versioning/compilation/gap_enforcement.py +59 -0
  489. siphrix/policy_versioning/compilation/graph.py +201 -0
  490. siphrix/policy_versioning/compilation/graph_integrity.py +187 -0
  491. siphrix/policy_versioning/compilation/graph_projection.py +68 -0
  492. siphrix/policy_versioning/compilation/lineage.py +73 -0
  493. siphrix/policy_versioning/compilation/lineage_honesty.py +92 -0
  494. siphrix/policy_versioning/compilation/models.py +991 -0
  495. siphrix/policy_versioning/compilation/regression.py +108 -0
  496. siphrix/policy_versioning/compilation/resolution.py +453 -0
  497. siphrix/policy_versioning/compilation/semantic_dependency.py +104 -0
  498. siphrix/policy_versioning/compilation/stage33_export.py +161 -0
  499. siphrix/policy_versioning/compilation/stage33_reproducibility.py +68 -0
  500. siphrix/policy_versioning/compilation/stage34_readiness.py +96 -0
  501. siphrix/policy_versioning/compilation/trace.py +70 -0
  502. siphrix/policy_versioning/compilation/trace_integrity.py +106 -0
  503. siphrix/policy_versioning/context/__init__.py +1 -0
  504. siphrix/policy_versioning/context/compat.py +611 -0
  505. siphrix/policy_versioning/context/consistency.py +725 -0
  506. siphrix/policy_versioning/context/fingerprint.py +272 -0
  507. siphrix/policy_versioning/context/foundation_readiness.py +668 -0
  508. siphrix/policy_versioning/context/invariants.py +940 -0
  509. siphrix/policy_versioning/context/migration.py +477 -0
  510. siphrix/policy_versioning/context/models.py +1908 -0
  511. siphrix/policy_versioning/context/normalization_hardening.py +444 -0
  512. siphrix/policy_versioning/context/provenance.py +502 -0
  513. siphrix/policy_versioning/context/resolver.py +2397 -0
  514. siphrix/policy_versioning/context/resolver_arbitration.py +783 -0
  515. siphrix/policy_versioning/context/resolver_export.py +552 -0
  516. siphrix/policy_versioning/context/resolver_honesty.py +509 -0
  517. siphrix/policy_versioning/context/resolver_integrity.py +741 -0
  518. siphrix/policy_versioning/context/resolver_readiness.py +591 -0
  519. siphrix/policy_versioning/context/resolver_reproducibility.py +347 -0
  520. siphrix/policy_versioning/counterfactual_models.py +417 -0
  521. siphrix/policy_versioning/distribution/__init__.py +1 -0
  522. siphrix/policy_versioning/distribution/foundation_readiness.py +193 -0
  523. siphrix/policy_versioning/distribution/honesty.py +107 -0
  524. siphrix/policy_versioning/distribution/integrity.py +182 -0
  525. siphrix/policy_versioning/distribution/protocol.py +197 -0
  526. siphrix/policy_versioning/distribution/protocol_readiness.py +173 -0
  527. siphrix/policy_versioning/distribution/readiness.py +105 -0
  528. siphrix/policy_versioning/distribution/reproducibility.py +114 -0
  529. siphrix/policy_versioning/environment_view.py +392 -0
  530. siphrix/policy_versioning/evaluation/__init__.py +1 -0
  531. siphrix/policy_versioning/evaluation/contradictions.py +135 -0
  532. siphrix/policy_versioning/evaluation/engine.py +353 -0
  533. siphrix/policy_versioning/evaluation/honesty.py +145 -0
  534. siphrix/policy_versioning/evaluation/integrity.py +226 -0
  535. siphrix/policy_versioning/evaluation/matching.py +520 -0
  536. siphrix/policy_versioning/evaluation/models.py +344 -0
  537. siphrix/policy_versioning/evaluation/projection.py +133 -0
  538. siphrix/policy_versioning/evaluation/readiness.py +164 -0
  539. siphrix/policy_versioning/evaluation/reproducibility.py +104 -0
  540. siphrix/policy_versioning/evaluation/result.py +359 -0
  541. siphrix/policy_versioning/evaluation/safety.py +103 -0
  542. siphrix/policy_versioning/explanation/__init__.py +1 -0
  543. siphrix/policy_versioning/explanation/closure.py +71 -0
  544. siphrix/policy_versioning/explanation/consistency.py +101 -0
  545. siphrix/policy_versioning/explanation/contracts.py +120 -0
  546. siphrix/policy_versioning/explanation/diff.py +231 -0
  547. siphrix/policy_versioning/explanation/drift.py +73 -0
  548. siphrix/policy_versioning/explanation/projection.py +143 -0
  549. siphrix/policy_versioning/explanation/readiness.py +164 -0
  550. siphrix/policy_versioning/explanation/registry.py +176 -0
  551. siphrix/policy_versioning/explanation/reproducibility.py +117 -0
  552. siphrix/policy_versioning/explanation/safety.py +109 -0
  553. siphrix/policy_versioning/explanation/stability.py +49 -0
  554. siphrix/policy_versioning/intake_governance.py +378 -0
  555. siphrix/policy_versioning/integration.py +424 -0
  556. siphrix/policy_versioning/investigation.py +2222 -0
  557. siphrix/policy_versioning/investigation_hardening.py +2307 -0
  558. siphrix/policy_versioning/lifecycle/__init__.py +1 -0
  559. siphrix/policy_versioning/lifecycle/final_stage3_honesty.py +116 -0
  560. siphrix/policy_versioning/lifecycle/final_stage3_integrity.py +173 -0
  561. siphrix/policy_versioning/lifecycle/final_stage3_readiness.py +98 -0
  562. siphrix/policy_versioning/lifecycle/point2_certification.py +135 -0
  563. siphrix/policy_versioning/lifecycle/point2_closure_assurance.py +182 -0
  564. siphrix/policy_versioning/lifecycle/point2_closure_manifest.py +107 -0
  565. siphrix/policy_versioning/lifecycle/point2_closure_readiness.py +96 -0
  566. siphrix/policy_versioning/lifecycle/point2_contracts.py +153 -0
  567. siphrix/policy_versioning/lifecycle/point2_handoff.py +98 -0
  568. siphrix/policy_versioning/lifecycle/point2_honesty.py +120 -0
  569. siphrix/policy_versioning/lifecycle/point2_integrity.py +166 -0
  570. siphrix/policy_versioning/lifecycle/point2_operational_profile.py +97 -0
  571. siphrix/policy_versioning/lifecycle/point2_postclosure_drift.py +94 -0
  572. siphrix/policy_versioning/lifecycle/point2_seal_enforcement.py +197 -0
  573. siphrix/policy_versioning/lifecycle/point2_transition_governance.py +187 -0
  574. siphrix/policy_versioning/lifecycle/point3_certification.py +194 -0
  575. siphrix/policy_versioning/lifecycle/point3_certification_stability.py +89 -0
  576. siphrix/policy_versioning/lifecycle/point3_closure_manifest.py +170 -0
  577. siphrix/policy_versioning/lifecycle/point3_closure_readiness.py +128 -0
  578. siphrix/policy_versioning/lifecycle/point3_contract_postclosure.py +85 -0
  579. siphrix/policy_versioning/lifecycle/point3_contracts.py +139 -0
  580. siphrix/policy_versioning/lifecycle/point3_drift_detection.py +139 -0
  581. siphrix/policy_versioning/lifecycle/point3_drift_impact.py +82 -0
  582. siphrix/policy_versioning/lifecycle/point3_handoff.py +154 -0
  583. siphrix/policy_versioning/lifecycle/point3_honesty.py +120 -0
  584. siphrix/policy_versioning/lifecycle/point3_integrity.py +170 -0
  585. siphrix/policy_versioning/lifecycle/point3_operational_profile.py +158 -0
  586. siphrix/policy_versioning/lifecycle/point3_postclosure_assurance.py +80 -0
  587. siphrix/policy_versioning/lifecycle/point3_postclosure_audit.py +78 -0
  588. siphrix/policy_versioning/lifecycle/point3_recertification.py +98 -0
  589. siphrix/policy_versioning/lifecycle/point3_seal_enforcement.py +167 -0
  590. siphrix/policy_versioning/lifecycle/policy_final_point3_readiness.py +135 -0
  591. siphrix/policy_versioning/lifecycle/stage3_certification.py +114 -0
  592. siphrix/policy_versioning/lifecycle/stage3_chain_truth.py +94 -0
  593. siphrix/policy_versioning/lifecycle/stage3_closure_manifest.py +113 -0
  594. siphrix/policy_versioning/lifecycle/stage3_contracts.py +132 -0
  595. siphrix/policy_versioning/lifecycle/stage3_drift_preparation.py +97 -0
  596. siphrix/policy_versioning/lifecycle/stage3_export_integration.py +124 -0
  597. siphrix/policy_versioning/lifecycle/stage3_handoff.py +92 -0
  598. siphrix/policy_versioning/lifecycle/stage3_operational_profile.py +83 -0
  599. siphrix/policy_versioning/lifecycle/stage3_operator_investigation_views.py +95 -0
  600. siphrix/policy_versioning/lifecycle/stage3_replay_integration.py +150 -0
  601. siphrix/policy_versioning/lifecycle/stage3_scope_assurance.py +104 -0
  602. siphrix/policy_versioning/local_policy_intake.py +161 -0
  603. siphrix/policy_versioning/local_policy_intake_hardening.py +100 -0
  604. siphrix/policy_versioning/local_policy_trust.py +142 -0
  605. siphrix/policy_versioning/local_policy_trust_safety.py +66 -0
  606. siphrix/policy_versioning/manifest/__init__.py +1 -0
  607. siphrix/policy_versioning/manifest/authority_contracts.py +169 -0
  608. siphrix/policy_versioning/manifest/authority_lineage.py +215 -0
  609. siphrix/policy_versioning/manifest/authority_overlap.py +250 -0
  610. siphrix/policy_versioning/manifest/channel_resolver.py +151 -0
  611. siphrix/policy_versioning/manifest/compatibility.py +144 -0
  612. siphrix/policy_versioning/manifest/compatibility_hardening.py +154 -0
  613. siphrix/policy_versioning/manifest/integrity.py +137 -0
  614. siphrix/policy_versioning/manifest/manifest.py +310 -0
  615. siphrix/policy_versioning/manifest/projection.py +143 -0
  616. siphrix/policy_versioning/manifest/projection_faithfulness.py +108 -0
  617. siphrix/policy_versioning/manifest/registry.py +156 -0
  618. siphrix/policy_versioning/manifest/registry_provenance.py +98 -0
  619. siphrix/policy_versioning/manifest/registry_provenance_truth.py +105 -0
  620. siphrix/policy_versioning/manifest/remote_channel_resolution.py +104 -0
  621. siphrix/policy_versioning/manifest/remote_channel_truth.py +100 -0
  622. siphrix/policy_versioning/manifest/remote_local_consistency.py +106 -0
  623. siphrix/policy_versioning/manifest/reproducibility.py +103 -0
  624. siphrix/policy_versioning/operator_hardening.py +2384 -0
  625. siphrix/policy_versioning/operator_views.py +1762 -0
  626. siphrix/policy_versioning/orchestration/__init__.py +1 -0
  627. siphrix/policy_versioning/orchestration/audit.py +60 -0
  628. siphrix/policy_versioning/orchestration/chain_truth.py +135 -0
  629. siphrix/policy_versioning/orchestration/fetch.py +158 -0
  630. siphrix/policy_versioning/orchestration/fetch_selection_safety.py +76 -0
  631. siphrix/policy_versioning/orchestration/honesty.py +132 -0
  632. siphrix/policy_versioning/orchestration/integrity.py +235 -0
  633. siphrix/policy_versioning/orchestration/projection.py +132 -0
  634. siphrix/policy_versioning/orchestration/projection_faithfulness.py +125 -0
  635. siphrix/policy_versioning/orchestration/readiness.py +112 -0
  636. siphrix/policy_versioning/orchestration/reproducibility.py +63 -0
  637. siphrix/policy_versioning/orchestration/resolution_trace.py +420 -0
  638. siphrix/policy_versioning/orchestration/revocation.py +160 -0
  639. siphrix/policy_versioning/orchestration/revocation_truth.py +95 -0
  640. siphrix/policy_versioning/orchestration/semantic_diff.py +920 -0
  641. siphrix/policy_versioning/orchestration/state.py +89 -0
  642. siphrix/policy_versioning/orchestration/target_truth.py +100 -0
  643. siphrix/policy_versioning/overlays/__init__.py +1 -0
  644. siphrix/policy_versioning/overlays/applicability.py +482 -0
  645. siphrix/policy_versioning/overlays/conflicts.py +435 -0
  646. siphrix/policy_versioning/overlays/explanations.py +519 -0
  647. siphrix/policy_versioning/overlays/field_merge.py +740 -0
  648. siphrix/policy_versioning/overlays/merge.py +622 -0
  649. siphrix/policy_versioning/overlays/models.py +811 -0
  650. siphrix/policy_versioning/overlays/readiness.py +639 -0
  651. siphrix/policy_versioning/overlays/scope.py +471 -0
  652. siphrix/policy_versioning/overlays/selector.py +888 -0
  653. siphrix/policy_versioning/overlays/semantics.py +353 -0
  654. siphrix/policy_versioning/overlays/soundness.py +345 -0
  655. siphrix/policy_versioning/policy_lineage.py +295 -0
  656. siphrix/policy_versioning/promotion_execution.py +355 -0
  657. siphrix/policy_versioning/registry_config.py +165 -0
  658. siphrix/policy_versioning/registry_intake.py +388 -0
  659. siphrix/policy_versioning/registry_view.py +397 -0
  660. siphrix/policy_versioning/replay/__init__.py +1 -0
  661. siphrix/policy_versioning/replay/compat.py +539 -0
  662. siphrix/policy_versioning/replay/engine.py +1657 -0
  663. siphrix/policy_versioning/replay/export_integration.py +602 -0
  664. siphrix/policy_versioning/replay/models.py +1528 -0
  665. siphrix/policy_versioning/replay/queries.py +549 -0
  666. siphrix/policy_versioning/replay/view_models.py +708 -0
  667. siphrix/policy_versioning/replay/workspace.py +366 -0
  668. siphrix/policy_versioning/resource_classifier.py +270 -0
  669. siphrix/policy_versioning/rollback_execution.py +471 -0
  670. siphrix/policy_versioning/runtime_integration/__init__.py +1 -0
  671. siphrix/policy_versioning/runtime_integration/bundle_assessment.py +85 -0
  672. siphrix/policy_versioning/runtime_integration/causal_attribution.py +122 -0
  673. siphrix/policy_versioning/runtime_integration/export_integration.py +162 -0
  674. siphrix/policy_versioning/runtime_integration/integration_chain_truth.py +113 -0
  675. siphrix/policy_versioning/runtime_integration/integration_closure_readiness.py +340 -0
  676. siphrix/policy_versioning/runtime_integration/integration_honesty.py +151 -0
  677. siphrix/policy_versioning/runtime_integration/integration_integrity.py +257 -0
  678. siphrix/policy_versioning/runtime_integration/integration_readiness.py +102 -0
  679. siphrix/policy_versioning/runtime_integration/integration_reproducibility.py +161 -0
  680. siphrix/policy_versioning/runtime_integration/investigation_views.py +89 -0
  681. siphrix/policy_versioning/runtime_integration/justification.py +140 -0
  682. siphrix/policy_versioning/runtime_integration/justification_honesty.py +130 -0
  683. siphrix/policy_versioning/runtime_integration/operator_views.py +97 -0
  684. siphrix/policy_versioning/runtime_integration/projection_contracts.py +95 -0
  685. siphrix/policy_versioning/runtime_integration/projection_faithfulness.py +120 -0
  686. siphrix/policy_versioning/runtime_integration/provenance_integrity.py +135 -0
  687. siphrix/policy_versioning/runtime_integration/replay_integration.py +202 -0
  688. siphrix/policy_versioning/runtime_integration/timeline_truth.py +334 -0
  689. siphrix/policy_versioning/runtime_integration/timeline_workspace.py +104 -0
  690. siphrix/policy_versioning/runtime_integration/trace_builder.py +152 -0
  691. siphrix/policy_versioning/runtime_integration/trace_integrity.py +193 -0
  692. siphrix/policy_versioning/runtime_integration/trace_linkage.py +58 -0
  693. siphrix/policy_versioning/runtime_integration/trace_models.py +490 -0
  694. siphrix/policy_versioning/runtime_integration/view_safety.py +197 -0
  695. siphrix/policy_versioning/session_resolver.py +303 -0
  696. siphrix/policy_versioning/snapshots/__init__.py +1 -0
  697. siphrix/policy_versioning/snapshots/approval_state_resolver.py +229 -0
  698. siphrix/policy_versioning/snapshots/decision_diff.py +2124 -0
  699. siphrix/policy_versioning/snapshots/decision_ready_policy.py +215 -0
  700. siphrix/policy_versioning/snapshots/decision_ready_policy_safety.py +95 -0
  701. siphrix/policy_versioning/snapshots/decision_snapshot_store.py +861 -0
  702. siphrix/policy_versioning/snapshots/lineage_engine.py +447 -0
  703. siphrix/policy_versioning/snapshots/lineage_integrity.py +383 -0
  704. siphrix/policy_versioning/snapshots/lineage_store.py +145 -0
  705. siphrix/policy_versioning/snapshots/snapshot_integrity.py +872 -0
  706. siphrix/policy_versioning/temporal_policy_resolver.py +326 -0
  707. siphrix/policy_versioning/tenant_view.py +262 -0
  708. siphrix/policy_versioning/transition_governance.py +356 -0
  709. siphrix/policy_versioning/transition_ledger.py +278 -0
  710. siphrix/policy_versioning/trust/__init__.py +1 -0
  711. siphrix/policy_versioning/trust/chain_consistency.py +173 -0
  712. siphrix/policy_versioning/trust/chain_risk.py +124 -0
  713. siphrix/policy_versioning/trust/epoch_drift.py +214 -0
  714. siphrix/policy_versioning/trust/foundation_readiness.py +127 -0
  715. siphrix/policy_versioning/trust/governance_readiness.py +154 -0
  716. siphrix/policy_versioning/trust/history.py +131 -0
  717. siphrix/policy_versioning/trust/honesty.py +96 -0
  718. siphrix/policy_versioning/trust/trust.py +373 -0
  719. siphrix/policy_versioning/versioned_policy_codec.py +312 -0
  720. siphrix/readiness/__init__.py +32 -0
  721. siphrix/readiness/assessor.py +260 -0
  722. siphrix/readiness/checks.py +1325 -0
  723. siphrix/readiness/models.py +102 -0
  724. siphrix/release.py +288 -0
  725. siphrix/resilience/__init__.py +123 -0
  726. siphrix/resilience/adaptive_guardrail.py +169 -0
  727. siphrix/resilience/audit_log_model.py +42 -0
  728. siphrix/resilience/blast_radius_control.py +115 -0
  729. siphrix/resilience/damage_containment.py +31 -0
  730. siphrix/resilience/distributed_control.py +150 -0
  731. siphrix/resilience/distributed_lock.py +34 -0
  732. siphrix/resilience/enforcement_cluster.py +66 -0
  733. siphrix/resilience/evidence_adaptation.py +85 -0
  734. siphrix/resilience/fragmented_kill_switch.py +98 -0
  735. siphrix/resilience/healing.py +69 -0
  736. siphrix/resilience/health_monitor.py +71 -0
  737. siphrix/resilience/human_recovery.py +79 -0
  738. siphrix/resilience/org_control_plane.py +109 -0
  739. siphrix/resilience/regional_control.py +122 -0
  740. siphrix/resilience/split_brain.py +40 -0
  741. siphrix/resilience/state_engine.py +55 -0
  742. siphrix/resilience/temporal_dsl.py +104 -0
  743. siphrix/resilience/temporal_policy.py +58 -0
  744. siphrix/resilience/temporal_state.py +33 -0
  745. siphrix/resilience/tenant_isolation.py +79 -0
  746. siphrix/risk/__init__.py +149 -0
  747. siphrix/risk/risk_execution.py +277 -0
  748. siphrix/risk/risk_explainer.py +496 -0
  749. siphrix/risk/risk_factor_engine.py +578 -0
  750. siphrix/risk/risk_orchestration.py +424 -0
  751. siphrix/risk/risk_policy_mapping.py +174 -0
  752. siphrix/risk/risk_score.py +562 -0
  753. siphrix/risk/risk_thresholds.py +160 -0
  754. siphrix/runtime/__init__.py +192 -0
  755. siphrix/runtime/audit_hardening.py +33 -0
  756. siphrix/runtime/bridge_analyzer.py +41 -0
  757. siphrix/runtime/broker_plane.py +146 -0
  758. siphrix/runtime/broker_protocol.py +40 -0
  759. siphrix/runtime/broker_socket.py +74 -0
  760. siphrix/runtime/capabilities.py +30 -0
  761. siphrix/runtime/capability_coupling.py +48 -0
  762. siphrix/runtime/contracts.py +93 -0
  763. siphrix/runtime/decision_snapshot.py +15 -0
  764. siphrix/runtime/enforcement.py +136 -0
  765. siphrix/runtime/enforcement_points.py +46 -0
  766. siphrix/runtime/evidence_ledger.py +148 -0
  767. siphrix/runtime/exec_intercept.py +6 -0
  768. siphrix/runtime/execution_guard.py +26 -0
  769. siphrix/runtime/failure_semantics.py +43 -0
  770. siphrix/runtime/hooks.py +99 -0
  771. siphrix/runtime/intervention.py +106 -0
  772. siphrix/runtime/kernel_syscall_interception.py +351 -0
  773. siphrix/runtime/linux_kernel_backend.py +131 -0
  774. siphrix/runtime/mediation.py +155 -0
  775. siphrix/runtime/policy_remote.py +21 -0
  776. siphrix/runtime/policy_runtime.py +17 -0
  777. siphrix/runtime/session_wrappers.py +35 -0
  778. siphrix/runtime/sessions.py +92 -0
  779. siphrix/runtime/syscall_intents.py +54 -0
  780. siphrix/runtime_paths.py +225 -0
  781. siphrix/simulation/__init__.py +27 -0
  782. siphrix/simulation/audit.py +397 -0
  783. siphrix/simulation/engine.py +945 -0
  784. siphrix/state/__init__.py +3 -0
  785. siphrix/state/state_manager.py +83 -0
  786. siphrix/tests_all_global.py +1089 -0
  787. siphrix/trust/__init__.py +146 -0
  788. siphrix/trust/attestation.py +105 -0
  789. siphrix/trust/broker_attestation.py +29 -0
  790. siphrix/trust/distributed_attestation.py +93 -0
  791. siphrix/trust/identity.py +13 -0
  792. siphrix/trust/integrity_chain.py +101 -0
  793. siphrix/trust/policy_anchor.py +42 -0
  794. siphrix/trust/policy_remote_guard.py +757 -0
  795. siphrix/trust/policy_store.py +45 -0
  796. siphrix/trust/push_updates.py +55 -0
  797. siphrix/trust/recheck.py +34 -0
  798. siphrix/trust/remote_policy_server.py +198 -0
  799. siphrix/trust/remote_sync.py +307 -0
  800. siphrix/trust/signed_heartbeat.py +145 -0
  801. siphrix/trust/trust_cascade.py +89 -0
  802. siphrix/trust/trust_epoch.py +115 -0
  803. siphrix/trust/trust_mode.py +366 -0
  804. siphrix/trust/trust_seal.py +190 -0
  805. siphrix/utils/__init__.py +5 -0
  806. siphrix/utils/io.py +16 -0
  807. siphrix/web_console/__init__.py +73 -0
  808. siphrix/web_console/static/console.css +606 -0
  809. siphrix/web_console/static/console.js +886 -0
  810. siphrix/web_console/static/index.html +344 -0
  811. siphrix-1.0.0.dist-info/METADATA +1543 -0
  812. siphrix-1.0.0.dist-info/RECORD +816 -0
  813. siphrix-1.0.0.dist-info/WHEEL +5 -0
  814. siphrix-1.0.0.dist-info/entry_points.txt +2 -0
  815. siphrix-1.0.0.dist-info/licenses/LICENSE +21 -0
  816. siphrix-1.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,3 @@
1
+
2
+
3
+
siphrix/logs/logger.py ADDED
@@ -0,0 +1,43 @@
1
+ import json
2
+ from datetime import datetime, timezone
3
+ from pathlib import Path
4
+ from typing import Any, Dict, Optional
5
+
6
+ from siphrix.runtime_paths import siphrix_home, events_log_path
7
+
8
+ # ``BASE_DIR`` and ``DEFAULT_LOG_PATH`` are kept as module-level
9
+ # attributes for backwards compatibility with callers that import them
10
+ # directly (tools, integrations, tests). Resolution is delegated to
11
+ # :mod:`siphrix.runtime_paths` so ``SIPHRIX_HOME`` / ``SIPHRIX_LOG_PATH``
12
+ # overrides are honoured from the single canonical source.
13
+ #
14
+ # Importing this module is side-effect free: no directory is created on
15
+ # import. Parent directories are created lazily on first write inside
16
+ # :func:`log_event`.
17
+ BASE_DIR: Path = siphrix_home()
18
+ DEFAULT_LOG_PATH: Path = events_log_path()
19
+
20
+
21
+ def log_event(
22
+ event_type: str,
23
+ payload: Dict[str, Any],
24
+ log_path: Optional[Path] = None,
25
+ ) -> None:
26
+ # The path is resolved lazily on every call so that callers which
27
+ # scope ``SIPHRIX_HOME`` / ``SIPHRIX_LOG_PATH`` (e.g. an in-process
28
+ # test harness) actually see the override take effect. Binding the
29
+ # default at module-import time would freeze the path at the value
30
+ # it had when this module was first loaded.
31
+ if log_path is None:
32
+ log_path = events_log_path()
33
+ log_path = Path(log_path)
34
+ log_path.parent.mkdir(parents=True, exist_ok=True)
35
+
36
+ record = {
37
+ "ts": datetime.now(timezone.utc).isoformat(),
38
+ "event_type": event_type,
39
+ "payload": payload,
40
+ }
41
+
42
+ with log_path.open("a", encoding="utf-8") as f:
43
+ f.write(json.dumps(record, ensure_ascii=False) + "\n")
@@ -0,0 +1,3 @@
1
+
2
+
3
+
siphrix/memory/api.py ADDED
@@ -0,0 +1,207 @@
1
+ # siphrix/memory/api.py
2
+ """Public memory API.
3
+
4
+ By default the memory store lives under the Siphrix runtime home —
5
+ ``$SIPHRIX_HOME/memory/memory_store.json`` (defaulting to
6
+ ``~/.siphrix/memory/memory_store.json``). Callers may still pass an
7
+ explicit ``store_path`` to target a different file; the runtime-home
8
+ resolution only applies when ``store_path`` is omitted.
9
+
10
+ On first default-path use:
11
+
12
+ * the parent directory is created if missing,
13
+ * if an old repository-local seed file exists at
14
+ ``<siphrix package>/memory/memory_store.json`` and the canonical
15
+ runtime file does not yet exist, the legacy file is copied across
16
+ verbatim (data is preserved, never overwritten),
17
+ * otherwise the store is seeded with an empty ``{"version": "1.0",
18
+ "items": []}`` document.
19
+
20
+ Package code never writes into the installed ``siphrix`` package
21
+ tree; a writable runtime home is the only destination for mutating
22
+ memory operations.
23
+ """
24
+
25
+ from __future__ import annotations
26
+
27
+ import shutil
28
+ import uuid
29
+ from datetime import datetime, timezone
30
+ from pathlib import Path
31
+ from typing import Any, Dict, List, Optional, Union
32
+
33
+ from siphrix.runtime_paths import (
34
+ ensure_memory_store_parent,
35
+ memory_store_path,
36
+ )
37
+
38
+ from .store import (
39
+ MemoryStoreError,
40
+ load_store,
41
+ save_store,
42
+ )
43
+
44
+
45
+ StorePath = Union[str, Path]
46
+
47
+
48
+ MEMORY_STORE_VERSION: str = "1.0"
49
+
50
+
51
+ def _empty_store() -> Dict[str, Any]:
52
+ """Return a fresh, valid, empty memory store document."""
53
+ return {"version": MEMORY_STORE_VERSION, "items": []}
54
+
55
+
56
+ def _legacy_package_store_path() -> Path:
57
+ """Return the historical repo/package-local memory store path.
58
+
59
+ Kept only so the one-time migration in :func:`_resolve_default_store`
60
+ can detect pre-v1 data. The path is deliberately computed relative
61
+ to this module so that both editable installs and wheel installs
62
+ point at the same historical location.
63
+ """
64
+ return Path(__file__).resolve().parent / "memory_store.json"
65
+
66
+
67
+ def default_store_path() -> Path:
68
+ """Return the canonical default memory store path.
69
+
70
+ Resolved lazily per call via :func:`siphrix.runtime_paths.memory_store_path`,
71
+ so ``SIPHRIX_HOME`` changes are honoured immediately (e.g. in tests).
72
+ """
73
+ return memory_store_path()
74
+
75
+
76
+ def _resolve_default_store() -> Path:
77
+ """Return the default store path, creating / migrating as needed.
78
+
79
+ The behaviour is strictly conservative:
80
+
81
+ 1. Ensure the parent directory exists (idempotent).
82
+ 2. If the canonical runtime file already exists → do nothing.
83
+ 3. Else, if a legacy repo-local seed exists → copy it to the
84
+ runtime location (preserves any data a user might have written
85
+ into the historical path).
86
+ 4. Else, create a fresh empty store document in the runtime
87
+ location so that :func:`add_memory` / :func:`search_memory` can
88
+ operate on their first call.
89
+
90
+ Never overwrites an existing runtime file. Never mutates the legacy
91
+ file.
92
+ """
93
+ store_path = ensure_memory_store_parent()
94
+
95
+ if store_path.exists():
96
+ return store_path
97
+
98
+ legacy = _legacy_package_store_path()
99
+ if legacy.is_file():
100
+ try:
101
+ shutil.copy2(legacy, store_path)
102
+ return store_path
103
+ except OSError:
104
+ # Fall through to a clean seed if the copy fails for any
105
+ # reason (permission, cross-device, …). We never want the
106
+ # migration to block first-time use.
107
+ pass
108
+
109
+ save_store(store_path, _empty_store())
110
+ return store_path
111
+
112
+
113
+ def _coerce_store_path(store_path: Optional[StorePath]) -> Path:
114
+ """Resolve an explicit caller path, or bootstrap the default location.
115
+
116
+ * ``None`` → run the default-path bootstrap / migration logic.
117
+ * explicit path → return as-is without any filesystem side effects;
118
+ callers who supply their own path own its lifecycle.
119
+ """
120
+ if store_path is None:
121
+ return _resolve_default_store()
122
+ return Path(store_path)
123
+
124
+
125
+ def add_memory(
126
+ text: str,
127
+ mem_type: str,
128
+ tags: Optional[List[str]] = None,
129
+ confidence: float = 0.9,
130
+ source: str = "user",
131
+ store_path: Optional[StorePath] = None,
132
+ ) -> Dict[str, Any]:
133
+ """Add a memory item to the store.
134
+
135
+ ``mem_type`` must be one of: ``fact | preference | decision | rule | summary``.
136
+
137
+ When ``store_path`` is omitted, the canonical runtime store path
138
+ is used (see :func:`default_store_path`) and is bootstrapped /
139
+ migrated on first use.
140
+ """
141
+ if tags is None:
142
+ tags = []
143
+
144
+ item = {
145
+ "id": str(uuid.uuid4()),
146
+ "type": mem_type,
147
+ "text": text.strip(),
148
+ "confidence": float(confidence),
149
+ "created_at": datetime.now(timezone.utc).isoformat(),
150
+ "tags": tags,
151
+ "source": source,
152
+ }
153
+
154
+ resolved = _coerce_store_path(store_path)
155
+ store = load_store(resolved)
156
+ store["items"].append(item)
157
+ save_store(resolved, store)
158
+ return item
159
+
160
+
161
+ def search_memory(
162
+ query: str,
163
+ types: Optional[List[str]] = None,
164
+ tags: Optional[List[str]] = None,
165
+ min_confidence: float = 0.0,
166
+ limit: int = 20,
167
+ store_path: Optional[StorePath] = None,
168
+ ) -> List[Dict[str, Any]]:
169
+ """Simple keyword search (case-insensitive) across memory text.
170
+
171
+ When ``store_path`` is omitted, the canonical runtime store path
172
+ is used (see :func:`default_store_path`) and is bootstrapped /
173
+ migrated on first use, so a search against a fresh install returns
174
+ an empty list instead of raising ``FileNotFoundError``.
175
+ """
176
+ q = (query or "").strip().lower()
177
+ resolved = _coerce_store_path(store_path)
178
+ store = load_store(resolved)
179
+ items = store["items"]
180
+
181
+ def ok(item: Dict[str, Any]) -> bool:
182
+ if types and item["type"] not in types:
183
+ return False
184
+ if tags:
185
+ itags = {t.lower() for t in item["tags"]}
186
+ for t in tags:
187
+ if t.lower() not in itags:
188
+ return False
189
+ if item["confidence"] < min_confidence:
190
+ return False
191
+ if q and q not in item["text"].lower():
192
+ return False
193
+ return True
194
+
195
+ results = [it for it in items if ok(it)]
196
+ # newest first
197
+ results.sort(key=lambda x: x["created_at"], reverse=True)
198
+ return results[:limit]
199
+
200
+
201
+ __all__ = [
202
+ "MEMORY_STORE_VERSION",
203
+ "MemoryStoreError",
204
+ "add_memory",
205
+ "default_store_path",
206
+ "search_memory",
207
+ ]
@@ -0,0 +1,33 @@
1
+ # siphrix/memory/schema.py
2
+
3
+ MEMORY_STORE_SCHEMA = {
4
+ "type": "object",
5
+ "required": ["version", "items"],
6
+ "properties": {
7
+ "version": {"type": "string"},
8
+ "items": {
9
+ "type": "array",
10
+ "items": {
11
+ "type": "object",
12
+ "required": ["id", "type", "text", "confidence", "created_at", "tags", "source"],
13
+ "properties": {
14
+ "id": {"type": "string"},
15
+ "type": {
16
+ "type": "string",
17
+ "enum": ["fact", "preference", "decision", "rule", "summary"]
18
+ },
19
+ "text": {"type": "string"},
20
+ "confidence": {"type": "number", "minimum": 0.0, "maximum": 1.0},
21
+ "created_at": {"type": "string"}, # ISO-ish string
22
+ "tags": {"type": "array", "items": {"type": "string"}},
23
+ "source": {"type": "string"} # e.g. "user", "system", "inferred"
24
+ },
25
+ "additionalProperties": False
26
+ }
27
+ }
28
+ },
29
+ "additionalProperties": False
30
+ }
31
+
32
+
33
+
@@ -0,0 +1,32 @@
1
+ # siphrix/memory/store.py
2
+ import json
3
+ from pathlib import Path
4
+ from typing import Any, Dict
5
+ from jsonschema import validate
6
+ from jsonschema.exceptions import ValidationError
7
+ from .schema import MEMORY_STORE_SCHEMA
8
+
9
+ class MemoryStoreError(Exception):
10
+ pass
11
+
12
+ def load_store(path: str | Path) -> Dict[str, Any]:
13
+ p = Path(path)
14
+ if not p.exists():
15
+ raise FileNotFoundError(f"Memory store not found: {p}")
16
+ data = json.loads(p.read_text(encoding="utf-8"))
17
+ _validate_store(data)
18
+ return data
19
+
20
+ def save_store(path: str | Path, data: Dict[str, Any]) -> None:
21
+ _validate_store(data)
22
+ p = Path(path)
23
+ p.write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
24
+
25
+ def _validate_store(data: Dict[str, Any]) -> None:
26
+ try:
27
+ validate(instance=data, schema=MEMORY_STORE_SCHEMA)
28
+ except ValidationError as e:
29
+ raise MemoryStoreError(f"Memory store validation failed: {e.message}") from e
30
+
31
+
32
+
@@ -0,0 +1,14 @@
1
+
2
+
3
+
4
+ """Canonical orchestrator package for the supported Siphrix pipeline surface.
5
+
6
+ Import `run_pipeline` and `PipelineResult` from here for stable orchestration.
7
+ `generate_reply` remains available as the lightweight local generator used by
8
+ the demo and smoke flows.
9
+ """
10
+
11
+ from siphrix.orchestrator.llm_stub import generate_reply
12
+ from siphrix.orchestrator.pipeline import PipelineResult, run_pipeline
13
+
14
+ __all__ = ["PipelineResult", "generate_reply", "run_pipeline"]
@@ -0,0 +1,43 @@
1
+ from typing import Optional
2
+
3
+ def generate_reply(user_text: str, system_context: Optional[str] = None) -> str:
4
+ """
5
+ Simulare LLM pentru MVP (fără API).
6
+ Dacă system_context există, răspunde orientat pe NOUL scop.
7
+ """
8
+ t = (user_text or "").strip()
9
+ low = t.lower()
10
+
11
+ # ✅ Dacă avem scope nou, răspundem pe el
12
+ if system_context:
13
+ # răspuns foarte simplu, dar clar orientat pe noul scop
14
+ if "structura proiectului" in low or "structure" in low:
15
+ return (
16
+ "Structura proiectului (agent customer support ecommerce):\n"
17
+ "- app/\n"
18
+ " - main.py (entry)\n"
19
+ " - router.py (routing requests)\n"
20
+ " - intents.py (clasificare intenții)\n"
21
+ " - kb/\n"
22
+ " - faqs.json (knowledge base)\n"
23
+ " - policies.py (refund/return/shipping rules)\n"
24
+ " - llm.py (model adapter)\n"
25
+ " - logs/\n"
26
+ " - events.jsonl\n"
27
+ "- tests/\n"
28
+ "- requirements.txt\n"
29
+ "\nSpune ce vrei: FAQ bot, ticketing, sau integrare shop?"
30
+ )
31
+ return f"[NEW SCOPE ACTIVE] ({system_context})\nAm înțeles: {t}\nSpune următorul pas concret."
32
+
33
+ # ✅ Fallback: Siphrix MVP behavior
34
+ if "orchestrator" in low:
35
+ return "OK. Construim Orchestrator: pipeline input→validate→LLM→validate→output + logs."
36
+ if "coherence" in low:
37
+ return "OK. Implementăm Coherence Enforcer: detect drift, block/ask_confirm, log reasons."
38
+ if "siphrix" in low:
39
+ return "OK. Rămânem pe MVP Siphrix (identity + intention + coherence). Spune următorul pas."
40
+ return f"Am înțeles: {t}. Spune-mi ce vrei să construim în MVP."
41
+
42
+
43
+
@@ -0,0 +1,251 @@
1
+ """
2
+ pipeline.py — Siphrix Orchestrator (CANON-ENFORCED)
3
+
4
+ CE ESTE ACEST FIȘIER
5
+ --------------------
6
+ Acesta este orchestratorul principal al Siphrix.
7
+ El leagă toate componentele într-un pipeline coerent și aplică
8
+ Canon v1.0 ca strat de control (identity + intention + coherence).
9
+
10
+ NU ESTE:
11
+ - un chatbot
12
+ - un LLM
13
+ - un truth engine
14
+
15
+ ESTE:
16
+ - un pipeline determinist cu enforcement Canon
17
+
18
+ PIPELINE CANONICAL
19
+ ------------------
20
+ Input
21
+ → Intention Interpreter
22
+ → Coherence Check (input)
23
+ → LLM (stub)
24
+ → Coherence Check (output)
25
+ → Response
26
+
27
+ Canonul poate opri pipeline-ul în orice punct prin:
28
+ - block
29
+ - ask_confirm
30
+ - clarify
31
+ """
32
+
33
+ from __future__ import annotations
34
+
35
+ from pathlib import Path
36
+ from typing import Any, Dict, Optional
37
+ from dataclasses import dataclass
38
+
39
+ # -------------------------------------------------
40
+ # Canon Runtime Engine
41
+ # -------------------------------------------------
42
+ # Canonul este încărcat o singură dată și folosit ca
43
+ # strat de enforcement (nu decide adevăr).
44
+ from siphrix.canon.canon_runtime import CanonRuleEngine
45
+
46
+
47
+ # -------------------------------------------------
48
+ # LLM STUB (generator simplu, fără enforcement)
49
+ # -------------------------------------------------
50
+ # În MVP, LLM-ul NU are voie să decidă nimic critic.
51
+ from siphrix.orchestrator.llm_stub import generate_reply
52
+
53
+
54
+ # -------------------------------------------------
55
+ # Rezultat standard al pipeline-ului
56
+ # -------------------------------------------------
57
+ @dataclass
58
+ class PipelineResult:
59
+ """
60
+ Rezultatul standard al pipeline-ului.
61
+
62
+ outcome:
63
+ - proceed
64
+ - block
65
+ - ask_confirm
66
+ - clarify
67
+
68
+ final_text:
69
+ - textul generat (dacă există)
70
+ """
71
+ outcome: str
72
+ final_text: str = ""
73
+ law_id: Optional[str] = None
74
+ reason_code: Optional[str] = None
75
+
76
+
77
+ # -------------------------------------------------
78
+ # Canon Engine (singleton)
79
+ # -------------------------------------------------
80
+ _CANON: Optional[CanonRuleEngine] = None
81
+
82
+ def _get_canon() -> CanonRuleEngine:
83
+ """
84
+ Încarcă Canonul o singură dată.
85
+ """
86
+ global _CANON
87
+ if _CANON is None:
88
+ base = Path(__file__).resolve().parents[1] # .../siphrix
89
+ canon_path = base / "canon" / "canon_v1_laws.yaml"
90
+ _CANON = CanonRuleEngine.load_from_file(canon_path)
91
+ return _CANON
92
+
93
+
94
+ # -------------------------------------------------
95
+ # Canon Gate Helper
96
+ # -------------------------------------------------
97
+ def _canon_gate(stage: str, ctx: Dict[str, Any]) -> Optional[PipelineResult]:
98
+ """
99
+ Rulează Canonul pe un anumit stage.
100
+
101
+ Dacă Canonul spune:
102
+ - block
103
+ - ask_confirm
104
+ - clarify
105
+
106
+ pipeline-ul se oprește IMEDIAT.
107
+ """
108
+ hit = _get_canon().evaluate(stage=stage, ctx=ctx)
109
+ if hit and hit["action"] in ("block", "ask_confirm", "clarify"):
110
+ return PipelineResult(
111
+ outcome=hit["action"],
112
+ law_id=hit["law_id"],
113
+ reason_code=hit["reason_code"],
114
+ )
115
+ return None
116
+
117
+
118
+ # -------------------------------------------------
119
+ # Context Builder (suprafața evaluabilă de Canon)
120
+ # -------------------------------------------------
121
+ def _build_ctx(
122
+ *,
123
+ identity_core: Optional[dict] = None,
124
+ intention_result: Optional[dict] = None,
125
+ coherence_result: Optional[dict] = None,
126
+ llm_invoked: bool = False,
127
+ response_returned: bool = False,
128
+ output_checked: bool = False,
129
+ ) -> Dict[str, Any]:
130
+ """
131
+ Construiește contextul pe care Canonul îl poate evalua.
132
+
133
+ IMPORTANT:
134
+ - ctx NU conține adevăr
135
+ - doar stări, flag-uri și rezultate structurale
136
+ """
137
+ return {
138
+ "identity_core": identity_core,
139
+ "intention_result": intention_result,
140
+ "coherence_result": coherence_result,
141
+ "llm_invoked": llm_invoked,
142
+ "response_returned": response_returned,
143
+ "output_checked": output_checked,
144
+ "coherence_check": {
145
+ "input_performed": intention_result is not None,
146
+ "output_performed": output_checked,
147
+ "reference": identity_core,
148
+ },
149
+ "log_event": {
150
+ "enforcement_enabled_flag": True
151
+ },
152
+ }
153
+
154
+
155
+ # -------------------------------------------------
156
+ # PIPELINE PRINCIPAL
157
+ # -------------------------------------------------
158
+ def run_pipeline(user_input: str) -> PipelineResult:
159
+ """
160
+ Orchestratorul principal Siphrix.
161
+
162
+ Rulează pipeline-ul complet și aplică Canonul
163
+ înainte și după generare.
164
+ """
165
+
166
+ # -------------------------
167
+ # 1) Identity Core (MVP)
168
+ # -------------------------
169
+ identity_core = {
170
+ "validated": True,
171
+ "goal": "maintain Siphrix coherence",
172
+ "missing_fields": False,
173
+ }
174
+
175
+ # Canon: startup gate
176
+ hit = _canon_gate(
177
+ "startup",
178
+ _build_ctx(identity_core=identity_core)
179
+ )
180
+ if hit:
181
+ return hit
182
+
183
+ # -------------------------
184
+ # 2) Intention Interpreter (MVP simplu)
185
+ # -------------------------
186
+ if "poate" in user_input.lower():
187
+ intention_result = {
188
+ "class": "unknown",
189
+ "confidence": 0.3,
190
+ "recommended_action": "clarify",
191
+ }
192
+ else:
193
+ intention_result = {
194
+ "class": "request",
195
+ "confidence": 0.9,
196
+ "recommended_action": "proceed",
197
+ }
198
+
199
+ # Canon: input gate
200
+ hit = _canon_gate(
201
+ "input",
202
+ _build_ctx(
203
+ identity_core=identity_core,
204
+ intention_result=intention_result,
205
+ )
206
+ )
207
+ if hit:
208
+ return hit
209
+
210
+ # Dacă intenția cere clarify, ne oprim
211
+ if intention_result["recommended_action"] == "clarify":
212
+ return PipelineResult(outcome="clarify")
213
+
214
+ # -------------------------
215
+ # 3) LLM Invocation (stub)
216
+ # -------------------------
217
+ llm_output = generate_reply(user_input)
218
+
219
+ # -------------------------
220
+ # 4) Coherence Check (output) — MVP
221
+ # -------------------------
222
+ coherence_result = {
223
+ "conflict": False,
224
+ "conflict_severity": None,
225
+ "goal_drift_detected": False,
226
+ }
227
+
228
+ # Canon: output gate
229
+ hit = _canon_gate(
230
+ "output",
231
+ _build_ctx(
232
+ identity_core=identity_core,
233
+ intention_result=intention_result,
234
+ coherence_result=coherence_result,
235
+ llm_invoked=True,
236
+ output_checked=True,
237
+ )
238
+ )
239
+ if hit:
240
+ return hit
241
+
242
+ # -------------------------
243
+ # 5) Response
244
+ # -------------------------
245
+ return PipelineResult(
246
+ outcome="proceed",
247
+ final_text=llm_output,
248
+ )
249
+
250
+
251
+
@@ -0,0 +1,22 @@
1
+ schema_version: 4
2
+ version: 4
3
+ meta:
4
+ policy_id: "agent.default"
5
+ policy_version: "v1"
6
+ policy_ref: "policy:agent:default:v1"
7
+ created_at: "2026-02-09T00:00:00+00:00"
8
+ author: "siphrix"
9
+ scope: ["network"]
10
+ delegate_to: "policy:team:default:v1"
11
+ default_action: ALLOW
12
+ global:
13
+ rules:
14
+ - id: block_high_risk
15
+ when:
16
+ risk_level: "HIGH"
17
+ then: BLOCK
18
+ reason: "agent_blocks_high_risk"
19
+ boundaries:
20
+ api.external:
21
+ default_action: ALLOW
22
+ rules: []
@@ -0,0 +1,40 @@
1
+ schema_version: 4
2
+ version: 4
3
+ meta:
4
+ policy_id: "global.baseline"
5
+ policy_version: "v1"
6
+ policy_ref: "policy:global:baseline:v1"
7
+ created_at: "2026-02-09T00:00:00+00:00"
8
+ author: "siphrix"
9
+ scope: ["network","api","browser","fs"]
10
+ locked_fields: ["no_side_effects","block_sensitive","filesystem_escape","max_risk"]
11
+ enforcements:
12
+ no_side_effects: true
13
+ block_sensitive: true
14
+ filesystem_escape: true
15
+ max_risk: "MEDIUM"
16
+ default_action: BLOCK
17
+ global:
18
+ rules:
19
+ - id: allow_example_readonly
20
+ when:
21
+ action_name: "http_get"
22
+ resource.domain: "example.com"
23
+ then: ALLOW
24
+ reason: "allow_example_readonly"
25
+ boundaries:
26
+ api.external:
27
+ default_action: BLOCK
28
+ rules:
29
+ - id: allow_example_api
30
+ when:
31
+ action_name: "http_get"
32
+ resource.domain: "example.com"
33
+ then: ALLOW
34
+ reason: "allow_example_api"
35
+ browser.public:
36
+ default_action: BLOCK
37
+ rules: []
38
+ fs.sandbox:
39
+ default_action: BLOCK
40
+ rules: []