sova-oss 0.1.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.
- sova_oss-0.1.0/.gitignore +97 -0
- sova_oss-0.1.0/CHANGELOG.md +415 -0
- sova_oss-0.1.0/CITATION.cff +20 -0
- sova_oss-0.1.0/CODE_OF_CONDUCT.md +78 -0
- sova_oss-0.1.0/CONTRIBUTING.md +139 -0
- sova_oss-0.1.0/DUAL_USE_POLICY.md +123 -0
- sova_oss-0.1.0/GOVERNANCE.md +18 -0
- sova_oss-0.1.0/LICENSE +201 -0
- sova_oss-0.1.0/MAINTAINERS.md +27 -0
- sova_oss-0.1.0/NOTICE +20 -0
- sova_oss-0.1.0/PKG-INFO +1266 -0
- sova_oss-0.1.0/README.md +1224 -0
- sova_oss-0.1.0/SECURITY.md +139 -0
- sova_oss-0.1.0/TRADEMARKS.md +153 -0
- sova_oss-0.1.0/deploy/__init__.py +2 -0
- sova_oss-0.1.0/deploy/community/Caddyfile +23 -0
- sova_oss-0.1.0/deploy/community/Dockerfile +34 -0
- sova_oss-0.1.0/deploy/community/Dockerfile.dockerignore +3 -0
- sova_oss-0.1.0/deploy/community/OPERATIONS.md +83 -0
- sova_oss-0.1.0/deploy/community/README.md +134 -0
- sova_oss-0.1.0/deploy/community/__init__.py +2 -0
- sova_oss-0.1.0/deploy/community/beta-policy.example.json +30 -0
- sova_oss-0.1.0/deploy/community/compose.yaml +114 -0
- sova_oss-0.1.0/deploy/community/preflight.py +503 -0
- sova_oss-0.1.0/deploy/monitoring/README.md +12 -0
- sova_oss-0.1.0/deploy/monitoring/com.truscor.sova-monitor.plist +22 -0
- sova_oss-0.1.0/deploy/monitoring/sova-monitor.service +27 -0
- sova_oss-0.1.0/deploy/monitoring/sova-monitor.winsw.xml +12 -0
- sova_oss-0.1.0/deploy/worker/README.md +71 -0
- sova_oss-0.1.0/deploy/worker/network-mediator/.cargo/config.toml +2 -0
- sova_oss-0.1.0/deploy/worker/network-mediator/Cargo.lock +540 -0
- sova_oss-0.1.0/deploy/worker/network-mediator/Cargo.toml +31 -0
- sova_oss-0.1.0/deploy/worker/network-mediator/README.md +50 -0
- sova_oss-0.1.0/deploy/worker/network-mediator/scripts/smoke-wsl.sh +77 -0
- sova_oss-0.1.0/deploy/worker/network-mediator/src/lib.rs +1613 -0
- sova_oss-0.1.0/deploy/worker/network-mediator/src/main.rs +84 -0
- sova_oss-0.1.0/deploy/worker/provision-host.sh +77 -0
- sova_oss-0.1.0/deploy/worker/worker-policy.example.json +59 -0
- sova_oss-0.1.0/docs/contracts/README.md +23 -0
- sova_oss-0.1.0/docs/contracts/coverage-model.md +84 -0
- sova_oss-0.1.0/docs/contracts/domain-model.md +79 -0
- sova_oss-0.1.0/docs/contracts/finding-lifecycle.md +91 -0
- sova_oss-0.1.0/docs/contracts/source-example-reconciliation.md +28 -0
- sova_oss-0.1.0/docs/contracts/version-contracts.md +86 -0
- sova_oss-0.1.0/docs/decisions/0001-canonical-artifact-meanings.md +286 -0
- sova_oss-0.1.0/docs/decisions/0002-versioning-and-lossless-migration.md +488 -0
- sova_oss-0.1.0/docs/decisions/0003-open-source-and-proprietary-boundary.md +280 -0
- sova_oss-0.1.0/docs/decisions/0004-self-assessment-and-truscor-boundary.md +251 -0
- sova_oss-0.1.0/docs/decisions/0005-topic-00-project-constitution.md +228 -0
- sova_oss-0.1.0/docs/decisions/0006-topic-01-evidence-go-no-go.md +241 -0
- sova_oss-0.1.0/docs/decisions/0007-topic-02-engineering-foundation.md +213 -0
- sova_oss-0.1.0/docs/decisions/0008-topic-03-domain-contracts.md +233 -0
- sova_oss-0.1.0/docs/decisions/0009-sova-behavior-capsule-and-trace-model.md +247 -0
- sova_oss-0.1.0/docs/decisions/0010-executor-contract-and-no-atlas-backends.md +75 -0
- sova_oss-0.1.0/docs/decisions/0011-authority-containment-evidence-kernel.md +63 -0
- sova_oss-0.1.0/docs/decisions/0012-claim-conditioned-evidence-closure.md +54 -0
- sova_oss-0.1.0/docs/decisions/0013-provenance-separated-capability-map.md +36 -0
- sova_oss-0.1.0/docs/decisions/0014-evidence-firewalled-runtime.md +43 -0
- sova_oss-0.1.0/docs/decisions/0015-bounded-check-and-no-melra-proof.md +38 -0
- sova_oss-0.1.0/docs/decisions/0016-three-mode-replay.md +38 -0
- sova_oss-0.1.0/docs/decisions/0017-capability-routed-mcp-execution.md +47 -0
- sova_oss-0.1.0/docs/decisions/0018-bounded-trigger-search.md +39 -0
- sova_oss-0.1.0/docs/decisions/0019-evidence-linked-counterfactual-forensics.md +38 -0
- sova_oss-0.1.0/docs/decisions/0020-bounded-evidence-adjudication-disclosure.md +44 -0
- sova_oss-0.1.0/docs/decisions/0021-bounded-composition-only-search.md +39 -0
- sova_oss-0.1.0/docs/decisions/0022-substitute-only-rehearsal-and-selective-promotion.md +53 -0
- sova_oss-0.1.0/docs/decisions/0023-multi-axis-behavior-drift-and-local-regression.md +43 -0
- sova_oss-0.1.0/docs/decisions/0024-offline-content-addressed-community-registry.md +43 -0
- sova_oss-0.1.0/docs/decisions/0025-local-mcp-out-of-band-authorization.md +42 -0
- sova_oss-0.1.0/docs/decisions/0026-fail-closed-extension-and-provider-ecosystem.md +57 -0
- sova_oss-0.1.0/docs/decisions/0027-evidence-first-local-community-surfaces.md +49 -0
- sova_oss-0.1.0/docs/decisions/0028-universal-security-extension-boundary.md +109 -0
- sova_oss-0.1.0/docs/decisions/README.md +41 -0
- sova_oss-0.1.0/docs/documentation-status.md +40 -0
- sova_oss-0.1.0/docs/engineering/LAUNCH-CHECKLIST.md +345 -0
- sova_oss-0.1.0/docs/engineering/aigoat-loopback-acceptance-2026-08-20.md +169 -0
- sova_oss-0.1.0/docs/engineering/arena-chamber-validation-2026-08-09.md +110 -0
- sova_oss-0.1.0/docs/engineering/browser-swarm-validation-2026-08-09.md +35 -0
- sova_oss-0.1.0/docs/engineering/community-monitoring-validation-2026-08-09.md +52 -0
- sova_oss-0.1.0/docs/engineering/development.md +115 -0
- sova_oss-0.1.0/docs/engineering/external-executor-validation-2026-08-09.md +102 -0
- sova_oss-0.1.0/docs/engineering/final-validation-2026-08-04.md +186 -0
- sova_oss-0.1.0/docs/engineering/final-validation-2026-08-08.md +145 -0
- sova_oss-0.1.0/docs/engineering/founder-vision-acceptance-matrix-2026-08-09.md +84 -0
- sova_oss-0.1.0/docs/engineering/language-and-packaging.md +36 -0
- sova_oss-0.1.0/docs/engineering/last-mile-launch-implementation-plan-2026-08-21.md +1322 -0
- sova_oss-0.1.0/docs/engineering/last-mile-validation-2026-08-11.md +66 -0
- sova_oss-0.1.0/docs/engineering/live-browser-campaign-validation-2026-08-07.md +75 -0
- sova_oss-0.1.0/docs/engineering/live-browser-validation-2026-08-07.md +39 -0
- sova_oss-0.1.0/docs/engineering/model-testing.md +47 -0
- sova_oss-0.1.0/docs/engineering/p0-foundation-baseline-2026-08-26.md +99 -0
- sova_oss-0.1.0/docs/engineering/p1-universal-intake-validation-2026-08-26.md +103 -0
- sova_oss-0.1.0/docs/engineering/p2-methodology-compiler-validation-2026-08-26.md +90 -0
- sova_oss-0.1.0/docs/engineering/p3-security-adapter-validation-2026-08-27.md +96 -0
- sova_oss-0.1.0/docs/engineering/p4-oracle-laboratory-validation-2026-08-27.md +72 -0
- sova_oss-0.1.0/docs/engineering/p5-production-isolation-validation-2026-08-27.md +125 -0
- sova_oss-0.1.0/docs/engineering/p6-public-claims-reconciliation-2026-08-31.md +79 -0
- sova_oss-0.1.0/docs/engineering/p6-validation-and-launch-readiness-2026-08-27.md +112 -0
- sova_oss-0.1.0/docs/engineering/release.md +90 -0
- sova_oss-0.1.0/docs/engineering/replay-causal-validation-2026-08-09.md +106 -0
- sova_oss-0.1.0/docs/engineering/session-changes-report-2026-08-24.md +215 -0
- sova_oss-0.1.0/docs/engineering/sova-engine-completion-buildplan-2026-08-21.md +775 -0
- sova_oss-0.1.0/docs/engineering/testing.md +170 -0
- sova_oss-0.1.0/docs/engineering/topics-12-14-validation.md +94 -0
- sova_oss-0.1.0/docs/engineering/topics-15-17-validation.md +53 -0
- sova_oss-0.1.0/docs/engineering/topics-18-20-validation.md +65 -0
- sova_oss-0.1.0/docs/engineering/topics-21-23-validation.md +93 -0
- sova_oss-0.1.0/docs/engineering/topics-24-27-validation.md +40 -0
- sova_oss-0.1.0/docs/engineering/universal-security-launch-checklist-2026-08-26.md +466 -0
- sova_oss-0.1.0/docs/glossary.md +90 -0
- sova_oss-0.1.0/docs/glossary.toml +476 -0
- sova_oss-0.1.0/docs/governance/api-stability.md +74 -0
- sova_oss-0.1.0/docs/governance/dependency-advisory-register.md +58 -0
- sova_oss-0.1.0/docs/governance/dependency-policy.md +74 -0
- sova_oss-0.1.0/docs/governance/ecosystem-archival-and-benchmark-aging.md +17 -0
- sova_oss-0.1.0/docs/governance/fixture-and-dataset-provenance.md +59 -0
- sova_oss-0.1.0/docs/governance/independent-review.md +17 -0
- sova_oss-0.1.0/docs/governance/invention-handling.md +52 -0
- sova_oss-0.1.0/docs/governance/public-repository-boundary.md +161 -0
- sova_oss-0.1.0/docs/governance/publication-and-ip-review.md +261 -0
- sova_oss-0.1.0/docs/governance/release-compatibility-matrix.md +17 -0
- sova_oss-0.1.0/docs/governance/repository-controls.md +88 -0
- sova_oss-0.1.0/docs/governance/schema-and-taxonomy-changes.md +15 -0
- sova_oss-0.1.0/docs/guides/README.md +19 -0
- sova_oss-0.1.0/docs/guides/air-gapped.md +24 -0
- sova_oss-0.1.0/docs/guides/arena.md +245 -0
- sova_oss-0.1.0/docs/guides/audit-and-record.md +208 -0
- sova_oss-0.1.0/docs/guides/authorized-target-testing.md +231 -0
- sova_oss-0.1.0/docs/guides/command-reference.md +300 -0
- sova_oss-0.1.0/docs/guides/data-and-uninstall.md +27 -0
- sova_oss-0.1.0/docs/guides/first-five-minutes.md +34 -0
- sova_oss-0.1.0/docs/guides/independent-implementation-validation.md +39 -0
- sova_oss-0.1.0/docs/guides/installation.md +55 -0
- sova_oss-0.1.0/docs/guides/rerun-and-matrix.md +196 -0
- sova_oss-0.1.0/docs/guides/user-pathways.md +18 -0
- sova_oss-0.1.0/docs/long-horizon-roadmap.md +20 -0
- sova_oss-0.1.0/docs/methodology/README.md +14 -0
- sova_oss-0.1.0/docs/methodology/versions.toml +79 -0
- sova_oss-0.1.0/docs/research/artifacts/README.md +21 -0
- sova_oss-0.1.0/docs/research/artifacts/index.toml +7 -0
- sova_oss-0.1.0/docs/research/claims-register.md +314 -0
- sova_oss-0.1.0/docs/research/oss-architecture-adoption-ledger-2026-08-26.md +227 -0
- sova_oss-0.1.0/docs/research/p3-security-adapter-research-2026-08-27.md +104 -0
- sova_oss-0.1.0/docs/research/p4-oracle-laboratory-research-2026-08-27.md +65 -0
- sova_oss-0.1.0/docs/research/p5-production-isolation-research-2026-08-27.md +159 -0
- sova_oss-0.1.0/docs/research/p6-blinded-validation-and-launch-research-2026-08-27.md +73 -0
- sova_oss-0.1.0/docs/research/predeclared-comparison-protocol.md +422 -0
- sova_oss-0.1.0/docs/research/prior-art-and-interoperability.md +383 -0
- sova_oss-0.1.0/docs/specifications/README.md +83 -0
- sova_oss-0.1.0/docs/specifications/adaptive-browser-campaign-0.1.md +86 -0
- sova_oss-0.1.0/docs/specifications/agent-arena-0.1.md +108 -0
- sova_oss-0.1.0/docs/specifications/arena-chamber-0.1.md +191 -0
- sova_oss-0.1.0/docs/specifications/authorization-safety-0.1.md +105 -0
- sova_oss-0.1.0/docs/specifications/authorized-target-assessment-0.1.md +26 -0
- sova_oss-0.1.0/docs/specifications/behavioral-monitoring-and-ci-0.1.md +57 -0
- sova_oss-0.1.0/docs/specifications/blinded-causal-validation-0.1.md +110 -0
- sova_oss-0.1.0/docs/specifications/blinded-validation-registry-and-launch-0.1.md +175 -0
- sova_oss-0.1.0/docs/specifications/browser-adapters-and-web-matrix-0.1.md +36 -0
- sova_oss-0.1.0/docs/specifications/capability-map-0.1.md +88 -0
- sova_oss-0.1.0/docs/specifications/case-workspace-0.1.md +82 -0
- sova_oss-0.1.0/docs/specifications/check-and-demo-0.1.md +88 -0
- sova_oss-0.1.0/docs/specifications/community-surfaces-0.1.md +112 -0
- sova_oss-0.1.0/docs/specifications/comparability-envelope-0.1.md +120 -0
- sova_oss-0.1.0/docs/specifications/comparative-benchmark-protocol-0.1.md +36 -0
- sova_oss-0.1.0/docs/specifications/composition-testing-0.1.md +50 -0
- sova_oss-0.1.0/docs/specifications/conformance-kit-0.1.md +15 -0
- sova_oss-0.1.0/docs/specifications/consequential-action-lab-0.1.md +66 -0
- sova_oss-0.1.0/docs/specifications/containment-backends-0.1.md +60 -0
- sova_oss-0.1.0/docs/specifications/continuous-monitor-service-0.1.md +75 -0
- sova_oss-0.1.0/docs/specifications/controller-worker-production-isolation-0.1.md +172 -0
- sova_oss-0.1.0/docs/specifications/cross-platform-desktop-execution-0.1.md +31 -0
- sova_oss-0.1.0/docs/specifications/docker-desktop-oci-isolation-0.1.md +123 -0
- sova_oss-0.1.0/docs/specifications/evidence-adjudication-disclosure-0.1.md +62 -0
- sova_oss-0.1.0/docs/specifications/evidence-replay-application-0.1.md +159 -0
- sova_oss-0.1.0/docs/specifications/executor-backed-browser-swarm-0.1.md +146 -0
- sova_oss-0.1.0/docs/specifications/executor-contract-0.1.md +194 -0
- sova_oss-0.1.0/docs/specifications/extensions-providers-interoperability-0.1.md +131 -0
- sova_oss-0.1.0/docs/specifications/external-execution-broker-0.1.md +105 -0
- sova_oss-0.1.0/docs/specifications/final-mile-acceptance-0.1.md +33 -0
- sova_oss-0.1.0/docs/specifications/forensics-0.1.md +94 -0
- sova_oss-0.1.0/docs/specifications/gvisor-runsc-isolation-0.1.md +26 -0
- sova_oss-0.1.0/docs/specifications/interoperability.md +59 -0
- sova_oss-0.1.0/docs/specifications/live-browser-assessment-0.1.md +93 -0
- sova_oss-0.1.0/docs/specifications/live-browser-campaign-0.1.md +88 -0
- sova_oss-0.1.0/docs/specifications/live-software-assessment-0.1.md +154 -0
- sova_oss-0.1.0/docs/specifications/local-mcp-0.1.md +75 -0
- sova_oss-0.1.0/docs/specifications/managed-services-and-hosting-0.1.md +23 -0
- sova_oss-0.1.0/docs/specifications/melra-adapter-boundary-0.1.md +69 -0
- sova_oss-0.1.0/docs/specifications/methodology-compiler-and-playbook-library-0.1.md +155 -0
- sova_oss-0.1.0/docs/specifications/migration-and-compatibility.md +43 -0
- sova_oss-0.1.0/docs/specifications/observable-oracles-0.1.md +99 -0
- sova_oss-0.1.0/docs/specifications/oci-agent-runtime-0.1.md +85 -0
- sova_oss-0.1.0/docs/specifications/oracle-laboratory-reproduction-and-coverage-0.1.md +84 -0
- sova_oss-0.1.0/docs/specifications/persistent-browser-sessions-0.1.md +123 -0
- sova_oss-0.1.0/docs/specifications/privacy-and-disclosure.md +93 -0
- sova_oss-0.1.0/docs/specifications/provider-agent-browser-campaign-0.1.md +79 -0
- sova_oss-0.1.0/docs/specifications/provider-experiment-matrix-0.1.md +21 -0
- sova_oss-0.1.0/docs/specifications/registry-and-contributions-0.1.md +60 -0
- sova_oss-0.1.0/docs/specifications/rehearsal-0.1.md +104 -0
- sova_oss-0.1.0/docs/specifications/replay-and-reproduction-0.1.md +115 -0
- sova_oss-0.1.0/docs/specifications/runtime-orchestration-0.1.md +95 -0
- sova_oss-0.1.0/docs/specifications/security-tool-adapters-and-normalization-0.1.md +170 -0
- sova_oss-0.1.0/docs/specifications/self-hosted-community-service-0.1.md +125 -0
- sova_oss-0.1.0/docs/specifications/semantic-browser-workflow-0.1.md +130 -0
- sova_oss-0.1.0/docs/specifications/sensor-coverage-ledger-0.1.md +24 -0
- sova_oss-0.1.0/docs/specifications/sova-capsule-0.1.md +185 -0
- sova_oss-0.1.0/docs/specifications/sova-trace-0.1.md +135 -0
- sova_oss-0.1.0/docs/specifications/supply-chain-release-0.1.md +22 -0
- sova_oss-0.1.0/docs/specifications/synthetic-detonation-0.1.md +98 -0
- sova_oss-0.1.0/docs/specifications/threat-model.md +128 -0
- sova_oss-0.1.0/docs/specifications/trigger-search-0.1.md +85 -0
- sova_oss-0.1.0/docs/specifications/universal-target-intake-0.1.md +114 -0
- sova_oss-0.1.0/docs/taxonomy/README.md +33 -0
- sova_oss-0.1.0/docs/taxonomy/sova-attack-taxonomy.md +99 -0
- sova_oss-0.1.0/examples/agents/oci/Dockerfile +9 -0
- sova_oss-0.1.0/examples/agents/oci/README.md +15 -0
- sova_oss-0.1.0/examples/agents/oci/agent.py +86 -0
- sova_oss-0.1.0/examples/agents/oci/runtime.json +2 -0
- sova_oss-0.1.0/examples/arena/README.md +19 -0
- sova_oss-0.1.0/examples/arena/browser-swarm.json +59 -0
- sova_oss-0.1.0/examples/arena/chamber.json +135 -0
- sova_oss-0.1.0/examples/community/README.md +33 -0
- sova_oss-0.1.0/examples/community/leaderboard-metadata.json +11 -0
- sova_oss-0.1.0/examples/community/monitor-service.json +15 -0
- sova_oss-0.1.0/examples/community/observations/baseline.snapshot.json +11 -0
- sova_oss-0.1.0/examples/community/observations/current.snapshot.json +11 -0
- sova_oss-0.1.0/examples/community/observations/monitor-policy.json +10 -0
- sova_oss-0.1.0/examples/extensions/README.md +37 -0
- sova_oss-0.1.0/examples/extensions/manifest.json +17 -0
- sova_oss-0.1.0/examples/extensions/safe_oracle.py +25 -0
- sova_oss-0.1.0/examples/forensics/README.md +29 -0
- sova_oss-0.1.0/examples/live/adaptive-browser-policy.json +11 -0
- sova_oss-0.1.0/examples/live/browser-campaign.json +28 -0
- sova_oss-0.1.0/examples/live/provider-runtime.json +45 -0
- sova_oss-0.1.0/examples/live/semantic-browser-mission.json +46 -0
- sova_oss-0.1.0/examples/probe/issuance.json +18 -0
- sova_oss-0.1.0/examples/rehearsal/provider-request.json +14 -0
- sova_oss-0.1.0/examples/scenarios/behavioral-intervention.json +44 -0
- sova_oss-0.1.0/examples/scenarios/compositional-sequence.json +48 -0
- sova_oss-0.1.0/examples/scenarios/conditional-trigger.json +42 -0
- sova_oss-0.1.0/examples/scenarios/portable-artifact-read.json +38 -0
- sova_oss-0.1.0/examples/scenarios/refusal-regression.json +35 -0
- sova_oss-0.1.0/examples/scenarios/tool-approval.json +35 -0
- sova_oss-0.1.0/examples/scenarios/unsafe-egress-blocked.json +35 -0
- sova_oss-0.1.0/examples/scenarios/unsupported-capability.json +35 -0
- sova_oss-0.1.0/examples/topics-15-17/README.md +35 -0
- sova_oss-0.1.0/examples/topics-15-17/adjudication-study.json +10 -0
- sova_oss-0.1.0/examples/topics-15-17/browser-counterfactual-study.json +37 -0
- sova_oss-0.1.0/examples/topics-15-17/composition-graph.json +13 -0
- sova_oss-0.1.0/examples/topics-15-17/counterfactual-study.json +9 -0
- sova_oss-0.1.0/examples/topics-15-17/disclosure-study.json +39 -0
- sova_oss-0.1.0/examples/topics-15-17/evidence.json +24 -0
- sova_oss-0.1.0/examples/topics-15-17/external-events.json +31 -0
- sova_oss-0.1.0/examples/topics-18-20/README.md +18 -0
- sova_oss-0.1.0/examples/topics-18-20/baseline.json +23 -0
- sova_oss-0.1.0/examples/topics-18-20/owned-fixture/app.txt +1 -0
- sova_oss-0.1.0/examples/topics-18-20/regression.json +23 -0
- sova_oss-0.1.0/examples/topics-18-20/rehearsal.json +35 -0
- sova_oss-0.1.0/examples/topics-21-23/README.md +41 -0
- sova_oss-0.1.0/examples/topics-21-23/agent-arena.json +56 -0
- sova_oss-0.1.0/examples/topics-21-23/arena.json +43 -0
- sova_oss-0.1.0/examples/topics-21-23/clip.json +15 -0
- sova_oss-0.1.0/pyproject.toml +214 -0
- sova_oss-0.1.0/src/sova/__init__.py +14 -0
- sova_oss-0.1.0/src/sova/__main__.py +7 -0
- sova_oss-0.1.0/src/sova/acceptance/__init__.py +35 -0
- sova_oss-0.1.0/src/sova/acceptance/io.py +98 -0
- sova_oss-0.1.0/src/sova/acceptance/lab.py +234 -0
- sova_oss-0.1.0/src/sova/acceptance/model.py +321 -0
- sova_oss-0.1.0/src/sova/adapters/__init__.py +45 -0
- sova_oss-0.1.0/src/sova/adapters/codex_exec.py +345 -0
- sova_oss-0.1.0/src/sova/adapters/security_catalog.py +685 -0
- sova_oss-0.1.0/src/sova/adapters/security_contracts.py +711 -0
- sova_oss-0.1.0/src/sova/adapters/security_parsers.py +635 -0
- sova_oss-0.1.0/src/sova/adapters/security_runner.py +683 -0
- sova_oss-0.1.0/src/sova/assessment.py +542 -0
- sova_oss-0.1.0/src/sova/audit/__init__.py +66 -0
- sova_oss-0.1.0/src/sova/audit/agentdojo.py +340 -0
- sova_oss-0.1.0/src/sova/audit/engine.py +695 -0
- sova_oss-0.1.0/src/sova/audit/report.py +168 -0
- sova_oss-0.1.0/src/sova/audit/specs/__init__.py +2 -0
- sova_oss-0.1.0/src/sova/audit/specs/agentdojo-v1.2.2.json +603 -0
- sova_oss-0.1.0/src/sova/benchmarks/__init__.py +14 -0
- sova_oss-0.1.0/src/sova/benchmarks/comparative.py +167 -0
- sova_oss-0.1.0/src/sova/capsule/__init__.py +47 -0
- sova_oss-0.1.0/src/sova/capsule/lifecycle.py +64 -0
- sova_oss-0.1.0/src/sova/capsule/migrate.py +405 -0
- sova_oss-0.1.0/src/sova/capsule/model.py +490 -0
- sova_oss-0.1.0/src/sova/capsule/primitives.py +132 -0
- sova_oss-0.1.0/src/sova/cli.py +6941 -0
- sova_oss-0.1.0/src/sova/command_audit.py +111 -0
- sova_oss-0.1.0/src/sova/community/__init__.py +94 -0
- sova_oss-0.1.0/src/sova/community/agent_arena.py +1094 -0
- sova_oss-0.1.0/src/sova/community/arena.py +256 -0
- sova_oss-0.1.0/src/sova/community/browser_swarm.py +1218 -0
- sova_oss-0.1.0/src/sova/community/browser_swarm_config.py +270 -0
- sova_oss-0.1.0/src/sova/community/chamber.py +1361 -0
- sova_oss-0.1.0/src/sova/community/chamber_config.py +324 -0
- sova_oss-0.1.0/src/sova/community/config.py +569 -0
- sova_oss-0.1.0/src/sova/community/ctf.py +103 -0
- sova_oss-0.1.0/src/sova/community/executor_capsule_reproduction.py +280 -0
- sova_oss-0.1.0/src/sova/community/executor_chamber.py +2782 -0
- sova_oss-0.1.0/src/sova/community/executor_chamber_config.py +731 -0
- sova_oss-0.1.0/src/sova/community/executor_engine.py +886 -0
- sova_oss-0.1.0/src/sova/community/executor_engine_full.py +577 -0
- sova_oss-0.1.0/src/sova/community/executor_engine_runtime_config.py +446 -0
- sova_oss-0.1.0/src/sova/community/executor_surfaces.py +1001 -0
- sova_oss-0.1.0/src/sova/community/leaderboard.py +221 -0
- sova_oss-0.1.0/src/sova/community/live_executor_engine.py +649 -0
- sova_oss-0.1.0/src/sova/community/media.py +170 -0
- sova_oss-0.1.0/src/sova/community/probe.py +244 -0
- sova_oss-0.1.0/src/sova/community/software_executor_engine.py +549 -0
- sova_oss-0.1.0/src/sova/community/swarm/__init__.py +41 -0
- sova_oss-0.1.0/src/sova/community/swarm/blackboard.py +123 -0
- sova_oss-0.1.0/src/sova/community/swarm/budget.py +191 -0
- sova_oss-0.1.0/src/sova/community/swarm/coordinator.py +535 -0
- sova_oss-0.1.0/src/sova/community/swarm/coverage.py +173 -0
- sova_oss-0.1.0/src/sova/community/swarm/message.py +116 -0
- sova_oss-0.1.0/src/sova/community/swarm/runtime.py +178 -0
- sova_oss-0.1.0/src/sova/community/swarm/software.py +215 -0
- sova_oss-0.1.0/src/sova/community/swarm/stress.py +242 -0
- sova_oss-0.1.0/src/sova/community/swarm/worker.py +267 -0
- sova_oss-0.1.0/src/sova/composition/__init__.py +55 -0
- sova_oss-0.1.0/src/sova/composition/fixtures.py +90 -0
- sova_oss-0.1.0/src/sova/composition/graph.py +149 -0
- sova_oss-0.1.0/src/sova/composition/model.py +232 -0
- sova_oss-0.1.0/src/sova/composition/portable.py +41 -0
- sova_oss-0.1.0/src/sova/composition/search.py +349 -0
- sova_oss-0.1.0/src/sova/conformance.py +209 -0
- sova_oss-0.1.0/src/sova/contracts/__init__.py +94 -0
- sova_oss-0.1.0/src/sova/contracts/coverage.py +182 -0
- sova_oss-0.1.0/src/sova/contracts/data/__init__.py +2 -0
- sova_oss-0.1.0/src/sova/contracts/data/attack-taxonomy-0.1.0.toml +366 -0
- sova_oss-0.1.0/src/sova/contracts/errors.py +28 -0
- sova_oss-0.1.0/src/sova/contracts/identifiers.py +160 -0
- sova_oss-0.1.0/src/sova/contracts/lifecycle.py +182 -0
- sova_oss-0.1.0/src/sova/contracts/taxonomy.py +233 -0
- sova_oss-0.1.0/src/sova/contracts/versions.py +209 -0
- sova_oss-0.1.0/src/sova/contracts/vocabulary.py +47 -0
- sova_oss-0.1.0/src/sova/desktop/__init__.py +25 -0
- sova_oss-0.1.0/src/sova/desktop/appium.py +393 -0
- sova_oss-0.1.0/src/sova/desktop/atspi.py +256 -0
- sova_oss-0.1.0/src/sova/desktop/conformance.py +123 -0
- sova_oss-0.1.0/src/sova/detonation/__init__.py +75 -0
- sova_oss-0.1.0/src/sova/detonation/backends.py +87 -0
- sova_oss-0.1.0/src/sova/detonation/coverage.py +240 -0
- sova_oss-0.1.0/src/sova/detonation/demo.py +517 -0
- sova_oss-0.1.0/src/sova/detonation/sensors.py +221 -0
- sova_oss-0.1.0/src/sova/detonation/targets.py +148 -0
- sova_oss-0.1.0/src/sova/detonation/world.py +445 -0
- sova_oss-0.1.0/src/sova/evidence/__init__.py +45 -0
- sova_oss-0.1.0/src/sova/evidence/adjudication.py +120 -0
- sova_oss-0.1.0/src/sova/evidence/bundle.py +253 -0
- sova_oss-0.1.0/src/sova/evidence/disclosure.py +173 -0
- sova_oss-0.1.0/src/sova/evidence/model.py +212 -0
- sova_oss-0.1.0/src/sova/evidence/report.py +70 -0
- sova_oss-0.1.0/src/sova/executors/__init__.py +75 -0
- sova_oss-0.1.0/src/sova/executors/contract.py +233 -0
- sova_oss-0.1.0/src/sova/executors/docker_desktop.py +652 -0
- sova_oss-0.1.0/src/sova/executors/gvisor.py +462 -0
- sova_oss-0.1.0/src/sova/executors/local.py +928 -0
- sova_oss-0.1.0/src/sova/executors/runner.py +555 -0
- sova_oss-0.1.0/src/sova/executors/scripted.py +143 -0
- sova_oss-0.1.0/src/sova/executors/workspace.py +653 -0
- sova_oss-0.1.0/src/sova/experiments/__init__.py +20 -0
- sova_oss-0.1.0/src/sova/experiments/matrix.py +283 -0
- sova_oss-0.1.0/src/sova/extensions/__init__.py +39 -0
- sova_oss-0.1.0/src/sova/extensions/model.py +171 -0
- sova_oss-0.1.0/src/sova/extensions/runner.py +218 -0
- sova_oss-0.1.0/src/sova/extensions/workflow.py +539 -0
- sova_oss-0.1.0/src/sova/forensics/__init__.py +67 -0
- sova_oss-0.1.0/src/sova/forensics/attribution.py +170 -0
- sova_oss-0.1.0/src/sova/forensics/benchmark.py +158 -0
- sova_oss-0.1.0/src/sova/forensics/blinded.py +825 -0
- sova_oss-0.1.0/src/sova/forensics/browser_counterfactual.py +425 -0
- sova_oss-0.1.0/src/sova/forensics/fixtures.py +101 -0
- sova_oss-0.1.0/src/sova/forensics/model.py +193 -0
- sova_oss-0.1.0/src/sova/forensics/reconstruct.py +214 -0
- sova_oss-0.1.0/src/sova/formats/__init__.py +20 -0
- sova_oss-0.1.0/src/sova/formats/canonical.py +267 -0
- sova_oss-0.1.0/src/sova/formats/errors.py +35 -0
- sova_oss-0.1.0/src/sova/formats/package.py +416 -0
- sova_oss-0.1.0/src/sova/formats/schema.py +160 -0
- sova_oss-0.1.0/src/sova/front_door.py +77 -0
- sova_oss-0.1.0/src/sova/intake/__init__.py +49 -0
- sova_oss-0.1.0/src/sova/intake/contracts.py +657 -0
- sova_oss-0.1.0/src/sova/intake/frontends.py +3182 -0
- sova_oss-0.1.0/src/sova/intake/materials.py +373 -0
- sova_oss-0.1.0/src/sova/intake/model.py +484 -0
- sova_oss-0.1.0/src/sova/intake/pipeline.py +455 -0
- sova_oss-0.1.0/src/sova/interoperability/__init__.py +14 -0
- sova_oss-0.1.0/src/sova/interoperability/agentdojo.py +665 -0
- sova_oss-0.1.0/src/sova/interoperability/inspect_ai.py +129 -0
- sova_oss-0.1.0/src/sova/interoperability/inspect_log.py +510 -0
- sova_oss-0.1.0/src/sova/interoperability/record.py +145 -0
- sova_oss-0.1.0/src/sova/interoperability/trace_attestation.py +255 -0
- sova_oss-0.1.0/src/sova/live/__init__.py +158 -0
- sova_oss-0.1.0/src/sova/live/action_lab.py +934 -0
- sova_oss-0.1.0/src/sova/live/adaptive_campaign.py +493 -0
- sova_oss-0.1.0/src/sova/live/adversarial_missions.py +307 -0
- sova_oss-0.1.0/src/sova/live/agent_campaign.py +610 -0
- sova_oss-0.1.0/src/sova/live/browser.py +865 -0
- sova_oss-0.1.0/src/sova/live/campaign.py +1047 -0
- sova_oss-0.1.0/src/sova/live/control.py +331 -0
- sova_oss-0.1.0/src/sova/live/fixture_web.py +132 -0
- sova_oss-0.1.0/src/sova/live/held_out_web.py +365 -0
- sova_oss-0.1.0/src/sova/live/persistent_session.py +563 -0
- sova_oss-0.1.0/src/sova/live/recording.py +280 -0
- sova_oss-0.1.0/src/sova/live/semantic_browser_driver.py +1408 -0
- sova_oss-0.1.0/src/sova/live/semantic_workflow.py +1420 -0
- sova_oss-0.1.0/src/sova/live/software.py +881 -0
- sova_oss-0.1.0/src/sova/live/startup.py +37 -0
- sova_oss-0.1.0/src/sova/local_mcp/__init__.py +39 -0
- sova_oss-0.1.0/src/sova/local_mcp/approval.py +220 -0
- sova_oss-0.1.0/src/sova/local_mcp/model.py +125 -0
- sova_oss-0.1.0/src/sova/local_mcp/server.py +135 -0
- sova_oss-0.1.0/src/sova/local_mcp/tools.py +514 -0
- sova_oss-0.1.0/src/sova/mapping/__init__.py +60 -0
- sova_oss-0.1.0/src/sova/mapping/analysis.py +257 -0
- sova_oss-0.1.0/src/sova/mapping/discovery.py +864 -0
- sova_oss-0.1.0/src/sova/mapping/drift.py +113 -0
- sova_oss-0.1.0/src/sova/mapping/model.py +342 -0
- sova_oss-0.1.0/src/sova/mapping/report.py +122 -0
- sova_oss-0.1.0/src/sova/mcp/__init__.py +73 -0
- sova_oss-0.1.0/src/sova/mcp/adapter.py +1606 -0
- sova_oss-0.1.0/src/sova/mcp/broker.py +136 -0
- sova_oss-0.1.0/src/sova/mcp/cua_driver.py +163 -0
- sova_oss-0.1.0/src/sova/mcp/profile_state.py +213 -0
- sova_oss-0.1.0/src/sova/mcp/protocol.py +410 -0
- sova_oss-0.1.0/src/sova/mcp/receipts.py +146 -0
- sova_oss-0.1.0/src/sova/mcp/specs.py +476 -0
- sova_oss-0.1.0/src/sova/methodology/__init__.py +58 -0
- sova_oss-0.1.0/src/sova/methodology/compiler.py +870 -0
- sova_oss-0.1.0/src/sova/methodology/contracts.py +830 -0
- sova_oss-0.1.0/src/sova/methodology/contribution.py +190 -0
- sova_oss-0.1.0/src/sova/methodology/data/__init__.py +2 -0
- sova_oss-0.1.0/src/sova/methodology/data/playbook-seeds-0.1.0.json +95 -0
- sova_oss-0.1.0/src/sova/methodology/library.py +814 -0
- sova_oss-0.1.0/src/sova/models/__init__.py +10 -0
- sova_oss-0.1.0/src/sova/models/scripted.py +128 -0
- sova_oss-0.1.0/src/sova/monitoring/__init__.py +39 -0
- sova_oss-0.1.0/src/sova/monitoring/alerts.py +175 -0
- sova_oss-0.1.0/src/sova/monitoring/diff.py +113 -0
- sova_oss-0.1.0/src/sova/monitoring/integrity.py +121 -0
- sova_oss-0.1.0/src/sova/monitoring/model.py +93 -0
- sova_oss-0.1.0/src/sova/monitoring/recorder.py +162 -0
- sova_oss-0.1.0/src/sova/monitoring/sentinel.py +175 -0
- sova_oss-0.1.0/src/sova/monitoring/service.py +565 -0
- sova_oss-0.1.0/src/sova/onboarding.py +348 -0
- sova_oss-0.1.0/src/sova/oracle_lab/__init__.py +78 -0
- sova_oss-0.1.0/src/sova/oracle_lab/calibration.py +285 -0
- sova_oss-0.1.0/src/sova/oracle_lab/comparison.py +103 -0
- sova_oss-0.1.0/src/sova/oracle_lab/contracts.py +641 -0
- sova_oss-0.1.0/src/sova/oracle_lab/coverage.py +118 -0
- sova_oss-0.1.0/src/sova/oracle_lab/evidence.py +44 -0
- sova_oss-0.1.0/src/sova/oracle_lab/io.py +136 -0
- sova_oss-0.1.0/src/sova/oracle_lab/proposal.py +76 -0
- sova_oss-0.1.0/src/sova/oracle_lab/reproduction.py +118 -0
- sova_oss-0.1.0/src/sova/oracle_lab/study.py +160 -0
- sova_oss-0.1.0/src/sova/oracles.py +528 -0
- sova_oss-0.1.0/src/sova/providers/__init__.py +56 -0
- sova_oss-0.1.0/src/sova/providers/core.py +633 -0
- sova_oss-0.1.0/src/sova/providers/runtime.py +372 -0
- sova_oss-0.1.0/src/sova/py.typed +1 -0
- sova_oss-0.1.0/src/sova/registry/__init__.py +66 -0
- sova_oss-0.1.0/src/sova/registry/adapters.py +128 -0
- sova_oss-0.1.0/src/sova/registry/auto_contribute.py +112 -0
- sova_oss-0.1.0/src/sova/registry/backup.py +321 -0
- sova_oss-0.1.0/src/sova/registry/client.py +184 -0
- sova_oss-0.1.0/src/sova/registry/contribution.py +172 -0
- sova_oss-0.1.0/src/sova/registry/index.py +298 -0
- sova_oss-0.1.0/src/sova/registry/model.py +189 -0
- sova_oss-0.1.0/src/sova/registry/pr_contribution.py +120 -0
- sova_oss-0.1.0/src/sova/registry/service.py +1390 -0
- sova_oss-0.1.0/src/sova/registry/sync.py +101 -0
- sova_oss-0.1.0/src/sova/rehearsal/__init__.py +61 -0
- sova_oss-0.1.0/src/sova/rehearsal/agent.py +83 -0
- sova_oss-0.1.0/src/sova/rehearsal/backend.py +73 -0
- sova_oss-0.1.0/src/sova/rehearsal/environment.py +176 -0
- sova_oss-0.1.0/src/sova/rehearsal/model.py +299 -0
- sova_oss-0.1.0/src/sova/rehearsal/provider.py +863 -0
- sova_oss-0.1.0/src/sova/rehearsal/runner.py +439 -0
- sova_oss-0.1.0/src/sova/release.py +456 -0
- sova_oss-0.1.0/src/sova/replay/__init__.py +55 -0
- sova_oss-0.1.0/src/sova/replay/capsule.py +363 -0
- sova_oss-0.1.0/src/sova/replay/controlled.py +120 -0
- sova_oss-0.1.0/src/sova/replay/model.py +240 -0
- sova_oss-0.1.0/src/sova/replay/render.py +695 -0
- sova_oss-0.1.0/src/sova/replay/semantic.py +210 -0
- sova_oss-0.1.0/src/sova/replay/service.py +369 -0
- sova_oss-0.1.0/src/sova/replay/verification.py +288 -0
- sova_oss-0.1.0/src/sova/reproduction.py +304 -0
- sova_oss-0.1.0/src/sova/rerun/__init__.py +50 -0
- sova_oss-0.1.0/src/sova/rerun/agentdojo.py +673 -0
- sova_oss-0.1.0/src/sova/rerun/calibrate.py +475 -0
- sova_oss-0.1.0/src/sova/rerun/command.py +538 -0
- sova_oss-0.1.0/src/sova/rerun/decision.py +648 -0
- sova_oss-0.1.0/src/sova/rerun/engine.py +1241 -0
- sova_oss-0.1.0/src/sova/rerun/findings.py +346 -0
- sova_oss-0.1.0/src/sova/rerun/judges.py +86 -0
- sova_oss-0.1.0/src/sova/rerun/matrix.py +340 -0
- sova_oss-0.1.0/src/sova/rerun/providers.py +524 -0
- sova_oss-0.1.0/src/sova/rerun/records.py +293 -0
- sova_oss-0.1.0/src/sova/rerun/tracing.py +258 -0
- sova_oss-0.1.0/src/sova/runtime/__init__.py +105 -0
- sova_oss-0.1.0/src/sova/runtime/action_codecs.py +1179 -0
- sova_oss-0.1.0/src/sova/runtime/bound_environment.py +1128 -0
- sova_oss-0.1.0/src/sova/runtime/browser_surface.py +759 -0
- sova_oss-0.1.0/src/sova/runtime/computer_surface.py +458 -0
- sova_oss-0.1.0/src/sova/runtime/environment_builder.py +271 -0
- sova_oss-0.1.0/src/sova/runtime/evidence.py +426 -0
- sova_oss-0.1.0/src/sova/runtime/experience.py +111 -0
- sova_oss-0.1.0/src/sova/runtime/managed_surfaces.py +588 -0
- sova_oss-0.1.0/src/sova/runtime/melra_computer.py +386 -0
- sova_oss-0.1.0/src/sova/runtime/native_windows_computer.py +599 -0
- sova_oss-0.1.0/src/sova/runtime/oci_agent.py +631 -0
- sova_oss-0.1.0/src/sova/runtime/orchestration.py +613 -0
- sova_oss-0.1.0/src/sova/runtime/profiles.py +65 -0
- sova_oss-0.1.0/src/sova/runtime/reliability.py +260 -0
- sova_oss-0.1.0/src/sova/runtime/sessions.py +555 -0
- sova_oss-0.1.0/src/sova/runtime/software_target.py +421 -0
- sova_oss-0.1.0/src/sova/runtime/target_environment.py +413 -0
- sova_oss-0.1.0/src/sova/runtime/unified_execution.py +1005 -0
- sova_oss-0.1.0/src/sova/runtime/window_recording.py +770 -0
- sova_oss-0.1.0/src/sova/safety/__init__.py +91 -0
- sova_oss-0.1.0/src/sova/safety/authorization.py +1094 -0
- sova_oss-0.1.0/src/sova/safety/containment.py +326 -0
- sova_oss-0.1.0/src/sova/safety/disclosure.py +81 -0
- sova_oss-0.1.0/src/sova/safety/privacy.py +142 -0
- sova_oss-0.1.0/src/sova/safety/profiles.py +162 -0
- sova_oss-0.1.0/src/sova/schemas/README.md +71 -0
- sova_oss-0.1.0/src/sova/schemas/__init__.py +2 -0
- sova_oss-0.1.0/src/sova/schemas/adapter-descriptor-0.1.0.schema.json +95 -0
- sova_oss-0.1.0/src/sova/schemas/adapter-run-report-0.1.0.schema.json +51 -0
- sova_oss-0.1.0/src/sova/schemas/assessment-coverage-0.1.0.schema.json +15 -0
- sova_oss-0.1.0/src/sova/schemas/blinded-causal-answer-key-0.1.0.schema.json +51 -0
- sova_oss-0.1.0/src/sova/schemas/blinded-causal-predictions-0.1.0.schema.json +35 -0
- sova_oss-0.1.0/src/sova/schemas/blinded-causal-score-0.1.0.schema.json +140 -0
- sova_oss-0.1.0/src/sova/schemas/blinded-causal-study-0.1.0.schema.json +62 -0
- sova_oss-0.1.0/src/sova/schemas/blinded-evaluation-protocol-0.1.0.schema.json +74 -0
- sova_oss-0.1.0/src/sova/schemas/blinded-evaluation-report-0.1.0.schema.json +189 -0
- sova_oss-0.1.0/src/sova/schemas/blinded-oracle-answer-key-0.1.0.schema.json +13 -0
- sova_oss-0.1.0/src/sova/schemas/blinded-oracle-predictions-0.1.0.schema.json +13 -0
- sova_oss-0.1.0/src/sova/schemas/blinded-oracle-study-0.1.0.schema.json +18 -0
- sova_oss-0.1.0/src/sova/schemas/capsule-manifest-0.1.0.schema.json +225 -0
- sova_oss-0.1.0/src/sova/schemas/composition-report-0.1.0.schema.json +24 -0
- sova_oss-0.1.0/src/sova/schemas/decisive-evidence-set-0.1.0.schema.json +15 -0
- sova_oss-0.1.0/src/sova/schemas/evaluation-observation-ledger-0.1.0.schema.json +43 -0
- sova_oss-0.1.0/src/sova/schemas/evaluation-work-order-set-0.1.0.schema.json +25 -0
- sova_oss-0.1.0/src/sova/schemas/event-0.1.0.schema.json +128 -0
- sova_oss-0.1.0/src/sova/schemas/evidence-0.1.0.schema.json +39 -0
- sova_oss-0.1.0/src/sova/schemas/external-benchmark-case-0.1.0.schema.json +23 -0
- sova_oss-0.1.0/src/sova/schemas/firecracker-execution-receipt-0.1.0.schema.json +98 -0
- sova_oss-0.1.0/src/sova/schemas/firecracker-launch-plan-0.1.0.schema.json +19 -0
- sova_oss-0.1.0/src/sova/schemas/firecracker-network-plan-0.1.0.schema.json +42 -0
- sova_oss-0.1.0/src/sova/schemas/forensic-reconstruction-0.1.0.schema.json +52 -0
- sova_oss-0.1.0/src/sova/schemas/fresh-reproduction-0.1.0.schema.json +20 -0
- sova_oss-0.1.0/src/sova/schemas/intake-report-0.1.0.schema.json +174 -0
- sova_oss-0.1.0/src/sova/schemas/launch-dossier-0.1.0.schema.json +154 -0
- sova_oss-0.1.0/src/sova/schemas/launch-evidence-bundle-0.1.0.schema.json +25 -0
- sova_oss-0.1.0/src/sova/schemas/launch-gate-receipt-0.1.0.schema.json +24 -0
- sova_oss-0.1.0/src/sova/schemas/launch-trust-policy-0.1.0.schema.json +31 -0
- sova_oss-0.1.0/src/sova/schemas/map-report-0.1.0.schema.json +226 -0
- sova_oss-0.1.0/src/sova/schemas/methodology-observations-0.1.0.schema.json +9 -0
- sova_oss-0.1.0/src/sova/schemas/methodology-plan-0.1.0.schema.json +17 -0
- sova_oss-0.1.0/src/sova/schemas/methodology-policy-0.1.0.schema.json +12 -0
- sova_oss-0.1.0/src/sova/schemas/normalized-observation-0.1.0.schema.json +42 -0
- sova_oss-0.1.0/src/sova/schemas/oracle-calibration-0.1.0.schema.json +39 -0
- sova_oss-0.1.0/src/sova/schemas/oracle-comparison-0.1.0.schema.json +23 -0
- sova_oss-0.1.0/src/sova/schemas/oracle-proposal-0.1.0.schema.json +41 -0
- sova_oss-0.1.0/src/sova/schemas/playbook-0.1.0.schema.json +107 -0
- sova_oss-0.1.0/src/sova/schemas/playbook-library-0.1.0.schema.json +14 -0
- sova_oss-0.1.0/src/sova/schemas/playbook-submission-0.1.0.schema.json +5 -0
- sova_oss-0.1.0/src/sova/schemas/public-claims-snapshot-0.1.0.schema.json +43 -0
- sova_oss-0.1.0/src/sova/schemas/registry-beta-readiness-0.1.0.schema.json +39 -0
- sova_oss-0.1.0/src/sova/schemas/registry-operational-receipt-0.1.0.schema.json +21 -0
- sova_oss-0.1.0/src/sova/schemas/release-candidate-0.1.0.schema.json +22 -0
- sova_oss-0.1.0/src/sova/schemas/release-gate-ledger-0.1.0.schema.json +50 -0
- sova_oss-0.1.0/src/sova/schemas/release-review-receipt-0.1.0.schema.json +22 -0
- sova_oss-0.1.0/src/sova/schemas/scenario-0.1.0.schema.json +105 -0
- sova_oss-0.1.0/src/sova/schemas/target-profile-0.1.0.schema.json +94 -0
- sova_oss-0.1.0/src/sova/schemas/trace-manifest-0.1.0.schema.json +219 -0
- sova_oss-0.1.0/src/sova/schemas/worker-attestation-0.1.0.schema.json +27 -0
- sova_oss-0.1.0/src/sova/schemas/worker-cleanup-receipt-0.1.0.schema.json +13 -0
- sova_oss-0.1.0/src/sova/schemas/worker-evidence-report-0.1.0.schema.json +17 -0
- sova_oss-0.1.0/src/sova/schemas/worker-exact-host-acceptance-receipt-0.1.0.schema.json +31 -0
- sova_oss-0.1.0/src/sova/schemas/worker-host-preflight-receipt-0.1.0.schema.json +26 -0
- sova_oss-0.1.0/src/sova/schemas/worker-job-manifest-0.1.0.schema.json +110 -0
- sova_oss-0.1.0/src/sova/schemas/worker-network-mediator-policy-0.1.0.schema.json +75 -0
- sova_oss-0.1.0/src/sova/schemas/worker-network-plane-receipt-0.1.0.schema.json +28 -0
- sova_oss-0.1.0/src/sova/schemas/worker-network-receipt-0.1.0.schema.json +16 -0
- sova_oss-0.1.0/src/sova/schemas/worker-protocol-message-0.1.0.schema.json +25 -0
- sova_oss-0.1.0/src/sova/schemas/worker-secret-receipt-0.1.0.schema.json +14 -0
- sova_oss-0.1.0/src/sova/search/__init__.py +56 -0
- sova_oss-0.1.0/src/sova/search/demo.py +107 -0
- sova_oss-0.1.0/src/sova/search/engine.py +484 -0
- sova_oss-0.1.0/src/sova/search/experience.py +51 -0
- sova_oss-0.1.0/src/sova/search/model.py +239 -0
- sova_oss-0.1.0/src/sova/search/phantom.py +179 -0
- sova_oss-0.1.0/src/sova/search/portable.py +35 -0
- sova_oss-0.1.0/src/sova/targets/__init__.py +16 -0
- sova_oss-0.1.0/src/sova/targets/contract.py +163 -0
- sova_oss-0.1.0/src/sova/trace/__init__.py +33 -0
- sova_oss-0.1.0/src/sova/trace/integrity.py +329 -0
- sova_oss-0.1.0/src/sova/trace/kinds.py +105 -0
- sova_oss-0.1.0/src/sova/trace/otel.py +487 -0
- sova_oss-0.1.0/src/sova/trace/reader.py +268 -0
- sova_oss-0.1.0/src/sova/trace/redaction.py +442 -0
- sova_oss-0.1.0/src/sova/trace/writer.py +696 -0
- sova_oss-0.1.0/src/sova/validation/__init__.py +99 -0
- sova_oss-0.1.0/src/sova/validation/adapters.py +243 -0
- sova_oss-0.1.0/src/sova/validation/contracts.py +295 -0
- sova_oss-0.1.0/src/sova/validation/gates.py +445 -0
- sova_oss-0.1.0/src/sova/validation/launch.py +1295 -0
- sova_oss-0.1.0/src/sova/validation/ledger.py +348 -0
- sova_oss-0.1.0/src/sova/validation/work_orders.py +88 -0
- sova_oss-0.1.0/src/sova/worker/__init__.py +154 -0
- sova_oss-0.1.0/src/sova/worker/alternative_backends.py +102 -0
- sova_oss-0.1.0/src/sova/worker/attestation.py +152 -0
- sova_oss-0.1.0/src/sova/worker/brokers.py +348 -0
- sova_oss-0.1.0/src/sova/worker/cas.py +97 -0
- sova_oss-0.1.0/src/sova/worker/contracts.py +476 -0
- sova_oss-0.1.0/src/sova/worker/deployment.py +247 -0
- sova_oss-0.1.0/src/sova/worker/evidence.py +277 -0
- sova_oss-0.1.0/src/sova/worker/firecracker.py +409 -0
- sova_oss-0.1.0/src/sova/worker/host_acceptance.py +213 -0
- sova_oss-0.1.0/src/sova/worker/host_preflight.py +407 -0
- sova_oss-0.1.0/src/sova/worker/identity.py +188 -0
- sova_oss-0.1.0/src/sova/worker/io.py +151 -0
- sova_oss-0.1.0/src/sova/worker/lifecycle.py +822 -0
- sova_oss-0.1.0/src/sova/worker/malicious.py +107 -0
- sova_oss-0.1.0/src/sova/worker/network_plane.py +1076 -0
- sova_oss-0.1.0/src/sova/worker/protocol.py +314 -0
- sova_oss-0.1.0/src/sova/worker/service.py +249 -0
- sova_oss-0.1.0/src/sova/workflows/__init__.py +17 -0
- sova_oss-0.1.0/src/sova/workflows/case.py +560 -0
- sova_oss-0.1.0/src/sova/workflows/check.py +287 -0
- sova_oss-0.1.0/src/sova/workflows/demo.py +248 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Private planning, company, IP, and confidential context — never commit
|
|
2
|
+
/TRUSCOR_Bible_v4_0.md
|
|
3
|
+
/SOVA_TRUSCOR_Patent_and_Publication_Strategy_v1_0.md
|
|
4
|
+
/SOVA_OSS_Master_Idea_Doc_v4_7_FINAL.md
|
|
5
|
+
/Atlas_MCP_Confidential_Technical_Report_v1.0 (1).pdf
|
|
6
|
+
/ATLAS_Core_and_ATLAS_OS_Open_Core_PRD_v1.0.pdf
|
|
7
|
+
/SOVA_OSS_PARTS_INDEX.md
|
|
8
|
+
/SOVA_MASTER_IDEA_AND_STRUCTURE_v5.md
|
|
9
|
+
/SOVA_MASTER_IDEA_AND_STRUCTURE_v6.md
|
|
10
|
+
|
|
11
|
+
# Proprietary engine, intelligence, client, and trade-secret material
|
|
12
|
+
/private/
|
|
13
|
+
/confidential/
|
|
14
|
+
/internal-only/
|
|
15
|
+
/truscor-engine/
|
|
16
|
+
/private-corpus/
|
|
17
|
+
/matched-loss/
|
|
18
|
+
/client-data/
|
|
19
|
+
/client-findings/
|
|
20
|
+
/honeypot-internal/
|
|
21
|
+
/atlas-confidential/
|
|
22
|
+
/trade-secrets/
|
|
23
|
+
*.confidential.*
|
|
24
|
+
*.private.*
|
|
25
|
+
*.secret.*
|
|
26
|
+
|
|
27
|
+
# Secrets and local configuration
|
|
28
|
+
.env
|
|
29
|
+
.env.*
|
|
30
|
+
!.env.example
|
|
31
|
+
*.pem
|
|
32
|
+
*.key
|
|
33
|
+
*.p12
|
|
34
|
+
*.pfx
|
|
35
|
+
*.token
|
|
36
|
+
service-signing-key.raw
|
|
37
|
+
|
|
38
|
+
# SOVA local state and potentially sensitive evidence
|
|
39
|
+
/.sova/
|
|
40
|
+
*.sova-trace
|
|
41
|
+
*.sova-trace.*
|
|
42
|
+
/traces/
|
|
43
|
+
/receipts/
|
|
44
|
+
/artifacts/private/
|
|
45
|
+
/browser-profiles/
|
|
46
|
+
/.playwright-mcp/
|
|
47
|
+
/community-state/
|
|
48
|
+
/monitor-state/
|
|
49
|
+
/deploy/community/operator/
|
|
50
|
+
|
|
51
|
+
# Only explicitly synthetic, provenance-recorded trace goldens may be public
|
|
52
|
+
!/tests/fixtures/golden/trace/*.sova-trace
|
|
53
|
+
|
|
54
|
+
# Dependencies and virtual environments
|
|
55
|
+
node_modules/
|
|
56
|
+
.pnpm-store/
|
|
57
|
+
.venv/
|
|
58
|
+
venv/
|
|
59
|
+
__pycache__/
|
|
60
|
+
*.py[cod]
|
|
61
|
+
*.egg-info/
|
|
62
|
+
.mypy_cache/
|
|
63
|
+
.pytest_cache/
|
|
64
|
+
.ruff_cache/
|
|
65
|
+
.hypothesis/
|
|
66
|
+
|
|
67
|
+
# Build, coverage, logs, and temporary output
|
|
68
|
+
dist/
|
|
69
|
+
build/
|
|
70
|
+
coverage/
|
|
71
|
+
.coverage
|
|
72
|
+
/.coverage-*
|
|
73
|
+
coverage.json
|
|
74
|
+
/coverage-*.json
|
|
75
|
+
htmlcov/
|
|
76
|
+
*.log
|
|
77
|
+
audit-requirements.txt
|
|
78
|
+
/.validation/
|
|
79
|
+
/.test-artifacts/
|
|
80
|
+
/.test-tmp-*/
|
|
81
|
+
/.pytest-tmp/
|
|
82
|
+
/.tmp-*/
|
|
83
|
+
tmp/
|
|
84
|
+
temp/
|
|
85
|
+
/.tmp/
|
|
86
|
+
.cache/
|
|
87
|
+
.tmp-npm-cache/
|
|
88
|
+
/deploy/worker/network-mediator/target/
|
|
89
|
+
|
|
90
|
+
# Editors and operating systems
|
|
91
|
+
/CLAUDE.md
|
|
92
|
+
/.claude/
|
|
93
|
+
.idea/
|
|
94
|
+
.vscode/
|
|
95
|
+
.DS_Store
|
|
96
|
+
Thumbs.db
|
|
97
|
+
desktop.ini
|
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable public changes to SOVA OSS are recorded here.
|
|
4
|
+
|
|
5
|
+
This project follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
|
|
6
|
+
and will use [Semantic Versioning](https://semver.org/spec/v2.0.0.html) for the
|
|
7
|
+
CLI package. Artifact specifications, methodologies, adapters, and taxonomies
|
|
8
|
+
have independent version ledgers.
|
|
9
|
+
|
|
10
|
+
## [Unreleased]
|
|
11
|
+
|
|
12
|
+
## [0.1.0] - 2026-11-15
|
|
13
|
+
|
|
14
|
+
First release on PyPI: `pip install sova-oss`, with `pip install "sova-oss[agentdojo]"` for
|
|
15
|
+
re-running findings. The `.sova` and `.sova-trace` 0.1.0 formats and the `sova.calibration`
|
|
16
|
+
0.1.0 report are frozen, and the core commands (`record agentdojo`, `record inspect-log`,
|
|
17
|
+
`verify`, `show`, `compare`, `audit`, `rerun`, `matrix`, `calibrate`) are stable within 0.1.x;
|
|
18
|
+
everything else is experimental, as listed in `docs/governance/api-stability.md`. This release
|
|
19
|
+
accompanies the TRUSCOR research preprint on portable, evidence-bounded reproduction of AI-agent
|
|
20
|
+
security findings, whose results ship as `.sova` files this package verifies.
|
|
21
|
+
|
|
22
|
+
### Release
|
|
23
|
+
|
|
24
|
+
- Added `.github/workflows/publish.yml`, which publishes a tagged release through PyPI Trusted
|
|
25
|
+
Publishing with attestations, only when dispatched by hand, after the tag/version check, the
|
|
26
|
+
test suite, and a clean-environment install of the built wheel.
|
|
27
|
+
- Added `docs/governance/api-stability.md` and a test that fails if a stable command is removed or
|
|
28
|
+
renamed.
|
|
29
|
+
- The local MCP server and the MCP client now report the installed package version instead of a
|
|
30
|
+
fixed string.
|
|
31
|
+
- Fixed spurious "workspace seed file changed while it was admitted" refusals on Windows with
|
|
32
|
+
Python 3.14: `st_ctime` is left out of the seed's file identity there, where its meaning differs
|
|
33
|
+
between Python versions and between a stat by path and by handle.
|
|
34
|
+
|
|
35
|
+
### Security
|
|
36
|
+
|
|
37
|
+
- Hardened community ingestion against secrets hidden in compressed, nested,
|
|
38
|
+
and self-extracting ZIP members; aligned raw-file, base64, HTTP, and reverse-
|
|
39
|
+
proxy limits; and made rejected staging cleanup fail closed.
|
|
40
|
+
- Made OCI-agent admission require an exact digest-pinned image and attested
|
|
41
|
+
`runsc` runtime before and after approval, reject adapter substitution, bind
|
|
42
|
+
native-execution provenance into signed Arena traces, and verify cleanup even
|
|
43
|
+
when the container engine becomes unavailable.
|
|
44
|
+
- Upgraded the runtime dependency to `cryptography 50.x` after the fixed stable
|
|
45
|
+
release became available, retired the temporary PKCS#7 advisory exception,
|
|
46
|
+
and restored a strict no-ignored-advisory dependency audit.
|
|
47
|
+
- Upgraded the worker mediator from vulnerable `time 0.3.41` to fixed `0.3.47`
|
|
48
|
+
for RUSTSEC-2026-0009, moved its pinned build floor to Rust 1.88.0, and kept
|
|
49
|
+
the RustSec gate strict with no advisory ignore.
|
|
50
|
+
|
|
51
|
+
### Added
|
|
52
|
+
|
|
53
|
+
- Added `sova audit`, which checks each AgentDojo episode's security verdict
|
|
54
|
+
against the recorded tool calls using a frozen, digest-identified rule set
|
|
55
|
+
(`agentdojo-v1.2.2`), and `sova record agentdojo`, which converts AgentDojo
|
|
56
|
+
run logs into `.sova-trace` files and `.sova` capsules; `sova record inspect`
|
|
57
|
+
and `sova record trace` route to the existing importers.
|
|
58
|
+
- Added `sova show` (capsule summary or trace timeline) and made `sova --help`
|
|
59
|
+
lead with the core commands.
|
|
60
|
+
- Added `sova rerun` and `sova matrix`: run a recorded AgentDojo finding again on
|
|
61
|
+
a chosen model (OpenAI-compatible Chat Completions or Responses API, or
|
|
62
|
+
Anthropic), report attacks among judged runs with a Wilson 95% interval and the
|
|
63
|
+
runs that could not be judged, and decide reproduction against the recorded run
|
|
64
|
+
with six explicit states. `matrix` runs findings x models x trials, classifies
|
|
65
|
+
findings across a model upgrade, and resumes from earlier runs. Model calls need
|
|
66
|
+
`--authorize`; keys come only from named environment variables. Needs the new
|
|
67
|
+
optional `sova-oss[agentdojo]` extra (`agentdojo==0.1.35`).
|
|
68
|
+
- Bound the exact README, documentation, demo, website, paper, Registry, and
|
|
69
|
+
release-note claim surfaces into the P6 release candidate and launch dossier.
|
|
70
|
+
A canonical snapshot with any held or unreviewed surface now blocks publication.
|
|
71
|
+
|
|
72
|
+
- A signed exact-candidate launch dossier workflow with strict input/output
|
|
73
|
+
schemas, Ed25519/DSSE receipt verification, nine role-scoped trust roots, an
|
|
74
|
+
out-of-band trust-policy pin, recomputed evaluation/Registry/release ledgers,
|
|
75
|
+
exact artifact-manifest and claims-register byte binding, and inert
|
|
76
|
+
`release keygen`, `release sign-evidence`, `release assemble-evidence`, and
|
|
77
|
+
`release dossier` commands. Trust policy admission requires one distinct key
|
|
78
|
+
per role and structural separation between internal principals and both
|
|
79
|
+
independent reviewers. Dossiers expose deterministic evaluation, Registry,
|
|
80
|
+
review, and external-gate summaries plus sorted machine-readable hold reasons.
|
|
81
|
+
Missing, synthetic, untrusted, tampered, or drifted evidence cannot authorize
|
|
82
|
+
tagging or publication.
|
|
83
|
+
- A digest-frozen blinded-evaluation protocol spanning eight target classes and
|
|
84
|
+
four lane kinds, provenance/loss-reporting adapters for five external benchmark
|
|
85
|
+
families, exact expected-run accounting, and explicit coverage, finding,
|
|
86
|
+
reproduction, false-positive, infrastructure, cost, latency, and containment
|
|
87
|
+
measures. The included acceptance is synthetic and establishes no comparative
|
|
88
|
+
field result.
|
|
89
|
+
- A ten-control Registry beta readiness contract, deterministic bounded local
|
|
90
|
+
backup/verification/empty-root restore, and a five-review exact-release ledger
|
|
91
|
+
that refuses synthetic, non-production, wrong-artifact, missing, failed, and
|
|
92
|
+
non-independent receipts. Public deployment and release approval remain open.
|
|
93
|
+
- An immutable controller/worker protocol with mutually authenticated signed
|
|
94
|
+
messages, content-addressed jobs, exact secret capabilities, hostile evidence
|
|
95
|
+
validation, cleanup/attestation receipts, and a Firecracker 1.16.1 jailer
|
|
96
|
+
launch compiler plus root-only Unix-API, pidfd watchdog, exact cleanup, and
|
|
97
|
+
lifecycle receipt path. A separately pinned static Rust mediator now enforces
|
|
98
|
+
canonical per-job policy, exact hostname/port/DNS-pin/SNI authority, address
|
|
99
|
+
floors, budgets, and durable no-replace receipts. It has cross-language tests,
|
|
100
|
+
a real WSL denied-flow smoke, a deterministic Cargo SBOM, and candidate
|
|
101
|
+
checksum/signing/provenance integration. Live dedicated-host isolation and
|
|
102
|
+
independent review are explicitly not claimed.
|
|
103
|
+
- An oracle laboratory with proposal/calibration/promotion separation,
|
|
104
|
+
differential and metamorphic checks, independent reproduction, explicit
|
|
105
|
+
abstention and failure states, and eight-dimensional measured coverage.
|
|
106
|
+
- Adaptive semantic browser exploration for controlled targets, with
|
|
107
|
+
secret-redacted accessibility observations, a closed typed action algebra,
|
|
108
|
+
multi-page UI workflows, per-batch approval, one shared hard deadline,
|
|
109
|
+
prerequisite-failure guards, persisted-oracle reproduction, signed trace
|
|
110
|
+
history, WebM recording, and decisive replay cues.
|
|
111
|
+
- A strict third-party OCI agent protocol plus `agent conform-oci` and Arena
|
|
112
|
+
integration through an attested gVisor `runsc` boundary. Agents can return
|
|
113
|
+
messages or reviewed browser plans but never inherit browser, host,
|
|
114
|
+
credential, target, or approval authority.
|
|
115
|
+
- One-step `sova replay FINDING.sova` and explicit `replay open`, with safe
|
|
116
|
+
local-file launch, automation-friendly `--no-open`, selected cue receipts,
|
|
117
|
+
WebM/MP4 duration validation, comparison-side event selection, and exact
|
|
118
|
+
decisive playback windows.
|
|
119
|
+
- A digest-gated community deployment blueprint and preflight that builds a
|
|
120
|
+
non-root SOVA image, validates immutable resolved Compose images, stages a
|
|
121
|
+
protected operator token through a no-network initializer, aligns proxy and
|
|
122
|
+
service limits, and launches with no implicit image pull. Internet operation
|
|
123
|
+
remains subject to the documented external production gates.
|
|
124
|
+
- Provider-backed `arena web` now supports the same explicit `--headed
|
|
125
|
+
--record-video` path as browser detonation. Passing deterministic oracle
|
|
126
|
+
events create visible exploit-confirmed chapters and canonical,
|
|
127
|
+
media-digest-bound replay cues; capsule replay selects the exact trace event
|
|
128
|
+
and opens a bounded decisive-moment video window with declared timing
|
|
129
|
+
uncertainty.
|
|
130
|
+
- Explicit opt-in Playwright browser recording with headed WebM capture,
|
|
131
|
+
chapter/action overlays, bounded and signature-checked media packaging, typed
|
|
132
|
+
`visual-replay` capsule objects, `--media` timeline playback, and direct
|
|
133
|
+
`sova replay capsule` rendering without manual archive extraction.
|
|
134
|
+
- An evidence-native replay application with play/pause, speed controls,
|
|
135
|
+
sensor-family lanes, search, causal/correlation navigation, synchronized
|
|
136
|
+
comparison, hostile-content-safe rendering, integrity-validated live trace
|
|
137
|
+
prefixes, and a bounded loopback SSE service.
|
|
138
|
+
- A strict three-phase blinded causal-validation protocol with separate
|
|
139
|
+
label-free tasks and committed answer keys, DSSE reviewer-key pinning,
|
|
140
|
+
stochastic CPU-only fixtures, abstention-aware metrics and confidence
|
|
141
|
+
intervals, explicit external-review limits, and four pinned JSON Schemas.
|
|
142
|
+
- A loopback-only self-hosted community reference service with secret-safe token
|
|
143
|
+
initialization, bounded staged uploads, pinned evidence signers, asynchronous
|
|
144
|
+
verification, restart recovery, atomic content-addressed promotion, a
|
|
145
|
+
DSSE-signed live index, service-key and sequence verification, SSE updates,
|
|
146
|
+
standard-profile-only leaderboard rows, duplicate-evidence defenses, and no
|
|
147
|
+
submitted-content execution. The standard-library transport is explicitly
|
|
148
|
+
not presented as an Internet-production server.
|
|
149
|
+
- A durable foreground `sova monitor serve` scheduler with exact non-executable
|
|
150
|
+
job documents, workspace-bound snapshot paths, kernel-backed overlap
|
|
151
|
+
exclusion, interrupted-run recovery, cooperative cancellation, bounded
|
|
152
|
+
retention for reports and history, and signed drift-result traces.
|
|
153
|
+
- An executor-backed `sova arena swarm-web` lane in which bounded scripted or
|
|
154
|
+
provider-capable roles take sequential turns over one exclusively leased,
|
|
155
|
+
target-bound browser profile; select only operator-authored candidate grants;
|
|
156
|
+
share redacted observations rather than credentials; receive fresh human
|
|
157
|
+
approval for browser subruns; and emit signed coordinator and participant
|
|
158
|
+
traces, exact live-channel parity, and an offline-verifiable aggregate
|
|
159
|
+
capsule. An opt-in installed-Chrome two-role fixture test passes across MCP
|
|
160
|
+
restarts.
|
|
161
|
+
- A live-attested Docker Desktop OCI executor for digest-pinned cached images,
|
|
162
|
+
with no network, host mounts, Docker socket, or image pull; read-only rootfs,
|
|
163
|
+
non-root zero-capability execution, no-new-privileges, CPU/memory/PID/output/
|
|
164
|
+
runtime bounds, forced cleanup, a `sova safety attest-docker` command, and an
|
|
165
|
+
opt-in real-runtime conformance test. It is explicitly a container sharing
|
|
166
|
+
the Docker VM kernel, not a per-workload microVM.
|
|
167
|
+
- Target-digest-bound opaque browser profiles with atomic cross-process leases,
|
|
168
|
+
bounded stale-lock recovery, graceful MCP/Chromium shutdown, a manual headful
|
|
169
|
+
login/CAPTCHA handoff, opt-in reuse across browser/agent/Arena campaigns, and
|
|
170
|
+
a signed installed-Chrome two-process persistence proof that excludes profile
|
|
171
|
+
handles, paths, and cookie material from evidence.
|
|
172
|
+
- An inert `sova target browser-kit` authoring workflow that normalizes one
|
|
173
|
+
controlled origin, generates a strict target/campaign/assessment-plan bundle,
|
|
174
|
+
explains external proof-of-control and human approval, and performs no
|
|
175
|
+
network access or authorization inference.
|
|
176
|
+
- Digest-and-size screenshot sensor evidence in owned and bounded browser
|
|
177
|
+
campaigns; raw screenshot pixels remain outside durable SOVA traces.
|
|
178
|
+
- Offline `sova probe issue` and `sova probe verify` round trips with strict
|
|
179
|
+
secret-free issuance requests, ephemeral Ed25519 signatures, nonce/scope/TTL
|
|
180
|
+
binding, and explicit included-key-integrity-only trust semantics.
|
|
181
|
+
- A direct `sova trace command` front door with shell-free exact executable
|
|
182
|
+
resolution, credential-shaped argument refusal, canonical digest-bound TTY
|
|
183
|
+
review, restricted environment inheritance, signed evidence, and an explicit
|
|
184
|
+
ordinary-host-authority limitation.
|
|
185
|
+
- Cross-platform extension launch hardening that rejects inline code flags for
|
|
186
|
+
version-suffixed Python, PyPy, and Node executables plus common POSIX shells.
|
|
187
|
+
- Fully applicable environment, target, code, dependency, registry, and model
|
|
188
|
+
fingerprint states plus pinned methodology/taxonomy in the bundled sleeper
|
|
189
|
+
demo, allowing its installed-wheel output to enter the strict case workspace
|
|
190
|
+
without weakening verification.
|
|
191
|
+
- A provider-assisted `sova rehearse agent-run` path with bounded sanitized
|
|
192
|
+
workspace disclosure, exact pre-call and pre-execution approvals, a tool-free
|
|
193
|
+
strict-JSON planner, fail-closed budgets, signed planning/execution traces,
|
|
194
|
+
and a portable evidence capsule while preserving substitute-only effects.
|
|
195
|
+
- Authorization-gated local-software detonation that executes finite
|
|
196
|
+
process-only capsules against two credential-stripped disposable workspace
|
|
197
|
+
copies, observes bounded process/output/file-delta evidence, signs and
|
|
198
|
+
compares primary/reproduction traces, and packages a verified capsule without
|
|
199
|
+
claiming host isolation or legal-authority verification.
|
|
200
|
+
- An offline `sova case build` workflow that verifies exact capsule-to-trace
|
|
201
|
+
binding and produces forensic reconstruction, inert timeline, payload-free
|
|
202
|
+
replay media, evidence/SARIF reports, behavior snapshot, selective disclosure,
|
|
203
|
+
and a contribution preview whose human gates remain closed.
|
|
204
|
+
- Authorization-gated dynamic `sova check` execution for controlled browser
|
|
205
|
+
targets, with non-offensive campaign enforcement, signed evidence,
|
|
206
|
+
controlled reproduction, and explicit not-observed/inconclusive semantics.
|
|
207
|
+
- Repeated real-browser counterfactual pairs that remove one declared message,
|
|
208
|
+
verify signed baseline/intervention/reproduction evidence, reject fingerprint
|
|
209
|
+
drift, and package uncertainty-aware attribution in a `.sova` capsule.
|
|
210
|
+
- An authorization-gated `sova detonate owned-web-fixture` path that drives a
|
|
211
|
+
real loopback website through pinned Playwright MCP and Chrome, records signed
|
|
212
|
+
primary/reproduction traces, compares observable outcomes, and packages a
|
|
213
|
+
`.sova` evidence capsule.
|
|
214
|
+
- An external browser-target workflow with short-lived HTTPS well-known control
|
|
215
|
+
challenges, certificate and exact-origin binding, redirect refusal,
|
|
216
|
+
pre-dispatch URL checks, and final observed-origin drift detection.
|
|
217
|
+
- Closed exact-batch terminal authorization that lets a person review a bounded
|
|
218
|
+
run once while preserving distinct signed, scope-bound, one-use tokens for
|
|
219
|
+
every individual action.
|
|
220
|
+
- A real-browser `sova hunt` campaign that evaluates an exact reviewed
|
|
221
|
+
candidate set, records snapshot/console/network sensors, detects observable
|
|
222
|
+
near misses, performs fresh controlled reproduction, and emits signed traces
|
|
223
|
+
plus an offline-verifiable discovery capsule.
|
|
224
|
+
- A provider-assisted `sova hunt agent-browser` path with isolated recon,
|
|
225
|
+
explorer, strategist, attacker, and advisory judge roles; strict JSON and
|
|
226
|
+
model budgets; redacted role records; explicit provider-call permission; and
|
|
227
|
+
unchanged proof-of-control plus exact browser-action approval boundaries.
|
|
228
|
+
- A provider-capable `sova arena agent-run` path with separate challenger,
|
|
229
|
+
defender, and advisory-judge contexts; bounded multi-round message exchange;
|
|
230
|
+
capture-time-redacted prompt/model/inter-agent/environment/oracle sensors;
|
|
231
|
+
deterministic scoring; signed per-match traces and capsules; and mandatory
|
|
232
|
+
custom non-comparable profiles without participant tools.
|
|
233
|
+
- Buildable `sova-oss` Python package and typed, tested `sova` command-line interface.
|
|
234
|
+
- A fail-visible dependency-advisory register and source guard for the current
|
|
235
|
+
`cryptography` PKCS#7 advisory, with an automatic removal condition when a
|
|
236
|
+
compatible fixed release becomes available.
|
|
237
|
+
- Reproducible `uv` development lockfile and cross-platform CI.
|
|
238
|
+
- Formatting, linting, strict typing, tests, coverage, security, provenance,
|
|
239
|
+
compatibility, performance-budget, and failure-injection controls.
|
|
240
|
+
- Repository governance, documentation states, glossary generation, research
|
|
241
|
+
artifact indexing, methodology versioning, issue routing, and release rules.
|
|
242
|
+
- Experimental `sova.domain` contract primitives for strict versions,
|
|
243
|
+
SHA-256 fingerprints, UUIDv7 logical identities, and explicit context.
|
|
244
|
+
- Five-axis non-destructive finding lifecycle and stable failure codes.
|
|
245
|
+
- Versioned twelve-class `sova.attack` taxonomy with standard/custom profile
|
|
246
|
+
rules and version-pinned OWASP, MITRE ATLAS, CWE, and CAPEC mappings.
|
|
247
|
+
- Six-dimensional frozen-denominator observed coverage, exploration budgets,
|
|
248
|
+
stopping rules, and source-example reconciliation.
|
|
249
|
+
- Experimental `.sova` capsule/scenario schemas, deterministic packaging,
|
|
250
|
+
content-addressed attachments, authoring, inspection, validation, linting,
|
|
251
|
+
canonical hashing, and explicit chained migrations.
|
|
252
|
+
- Streaming `.sova-trace` capture with four profiles, chunking, recovery,
|
|
253
|
+
indexed inspection, inert playback, capture-time redaction, optional
|
|
254
|
+
DSSE-compatible Ed25519 signatures, and offline verification.
|
|
255
|
+
- Pinned OpenTelemetry/OpenInference import/export mappings with explicit
|
|
256
|
+
fidelity-loss reports.
|
|
257
|
+
- Privacy-minimizing OpenInference `0.1.30` import with explicit content
|
|
258
|
+
opt-in, sensitive-field accounting, bounded hostile-input handling, and a
|
|
259
|
+
corrected span-kind mapping that never emits the nonexistent `MEMORY` kind.
|
|
260
|
+
- Deterministic scripted-model and scripted-executor lanes plus a restricted
|
|
261
|
+
local host-process executor with exact capability negotiation.
|
|
262
|
+
- Observable deterministic oracles, integrity-checked declared-outcome
|
|
263
|
+
comparison, and a complete safe no-Atlas vertical-slice fixture.
|
|
264
|
+
- Explicit observer producer identity for reference oracle conclusions so
|
|
265
|
+
executor output and SOVA-owned judging remain distinguishable in evidence.
|
|
266
|
+
- Optional DSSE/Ed25519 and required-key verification in the independently
|
|
267
|
+
implemented offline verifier, without importing the SOVA package.
|
|
268
|
+
- A dependency-free Node.js verifier and cross-language agreement tests for
|
|
269
|
+
package, canonical manifest, event chain, redaction, and DSSE evidence.
|
|
270
|
+
- Strict opaque `sova-secret:` references, just-in-time child-environment
|
|
271
|
+
resolution, supervised process lifecycle, explicit unsupported resource
|
|
272
|
+
limits, and provider-crash normalization.
|
|
273
|
+
- An experimental authority-containment-evidence kernel with exact per-action
|
|
274
|
+
scope, expiring single-use authority, proof-of-control checks, consequence
|
|
275
|
+
classes, monotone effect budgets, containment binding, and single-use
|
|
276
|
+
out-of-band human approvals.
|
|
277
|
+
- Containment capability descriptors and admission decisions for the
|
|
278
|
+
no-native-code synthetic world, restricted local developer execution, OCI,
|
|
279
|
+
gVisor, Firecracker, and Kata candidates without mislabelling unvalidated
|
|
280
|
+
host or container execution as a security sandbox.
|
|
281
|
+
- A seedable event-sourced synthetic detonation world with inert run-unique
|
|
282
|
+
canaries, sink-only egress, substitute services, explicit reset evidence, a
|
|
283
|
+
normalized sensor mesh, claim-conditioned evidence closure, and nine
|
|
284
|
+
deterministic ground-truth target families.
|
|
285
|
+
- Deterministic file, process, network, canary, tool, authorization, browser,
|
|
286
|
+
database, inter-agent, state, trigger, and composite oracles.
|
|
287
|
+
- A safe `sova demo sleeper` path that emits an offline-verifiable
|
|
288
|
+
`.sova-trace`, `.sova` capsule, and human-readable summary without a model,
|
|
289
|
+
provider key, network, container runtime, or MELRA installation.
|
|
290
|
+
- A pinned MELRA adapter with strict internal task-state normalization,
|
|
291
|
+
status/cancel handling, and a permanent no-MELRA fallback path.
|
|
292
|
+
- Air-gapped `sova map` collection, provenance-separated capability closures,
|
|
293
|
+
schema-validated map reports, and immutable tool-definition drift snapshots.
|
|
294
|
+
- Provider-neutral role orchestration, standard/custom run profiles, an
|
|
295
|
+
evidence-firewalled judging path, model fallback budgets, local minimized
|
|
296
|
+
experience records, opaque session leases, and verified executor fallback.
|
|
297
|
+
- A complete `sova check`/`sova demo` no-MELRA path with named bounded
|
|
298
|
+
baselines, two-dimensional trigger search, signed discovery and reproduction
|
|
299
|
+
traces, independent verification, honest exit states, and performance gates.
|
|
300
|
+
- Three non-interchangeable replay modes, four-state offline verification,
|
|
301
|
+
fresh linked re-execution, uncertainty-aware semantic studies, calibrated
|
|
302
|
+
optional judging, and an inert side-by-side timeline viewer.
|
|
303
|
+
- A bounded MCP 2025-11-25 stdio client, Microsoft Playwright MCP and
|
|
304
|
+
restricted Windows-MCP mappings, pinned launch recipes, capability routing,
|
|
305
|
+
conservative verification/fallback, and cross-adapter conformance tests.
|
|
306
|
+
- A typed 13-dimension trigger-search model with measurable signature, random,
|
|
307
|
+
grid, coverage, human, and adaptive evolutionary baselines; sequence
|
|
308
|
+
minimization; digest-only local experience; and an owned-target Phantom
|
|
309
|
+
Fuzzer contract with secret-free attempt and browser-confirmation trace
|
|
310
|
+
events.
|
|
311
|
+
- Evidence-linked forensic reconstruction with causal partial-ordering,
|
|
312
|
+
uncertain-order and missing-sensor markers, paired-intervention attribution,
|
|
313
|
+
explicit confounding/abstention, Wilson intervals, and a five-case
|
|
314
|
+
deterministic calibration fixture.
|
|
315
|
+
- Watermarked self-assessment evidence bundles, SARIF 2.1.0 projection/import,
|
|
316
|
+
four-state execution-bounded scanner adjudication, local-only disclosure
|
|
317
|
+
preparation, bounded local maintainer-contact discovery, approved default
|
|
318
|
+
disclosure clocks, and technical, executive, reproduction, and methodology
|
|
319
|
+
views.
|
|
320
|
+
- Typed metadata-only composition graphs, pairwise/t-wise/risk/trigger-aware
|
|
321
|
+
bounded search, fresh-observation minimization, element-removal attribution,
|
|
322
|
+
portable `.sova` composition fragments, and a ground-truth composition-only
|
|
323
|
+
failure fixture.
|
|
324
|
+
- Credential-stripped substitute-only rehearsal with pluggable preparation,
|
|
325
|
+
separate user/attacker evidence, signed success/failure traces, clean diffs,
|
|
326
|
+
material-step captures, capability reach, and digest-bound selective export.
|
|
327
|
+
- Shell-free allowlisted process tracing, multi-axis behavior/environment/
|
|
328
|
+
methodology drift, local sentinel history, deterministic CI/SARIF policy, a
|
|
329
|
+
reusable GitHub workflow, and protected-baseline SOVA self-checks.
|
|
330
|
+
- An offline repository-of-files registry with content-addressed objects,
|
|
331
|
+
DSSE-compatible signed indexes, explicit key-pinning trust, pull-only atomic
|
|
332
|
+
mirror caching, verification tiers, consent-firewalled contribution staging,
|
|
333
|
+
and provenance-preserving external adapters.
|
|
334
|
+
- An account-free local MCP `2025-11-25` stdio server with a pinned tool
|
|
335
|
+
manifest, explicit side-effect declarations, separate-terminal exact
|
|
336
|
+
invocation approval, expiry, single-use replay protection, and signed
|
|
337
|
+
authorization evidence.
|
|
338
|
+
- A fail-closed extension protocol, metadata-only PyPA discovery, shell-free
|
|
339
|
+
subprocess conformance runner, provider-neutral OpenAI/Anthropic/OpenRouter/
|
|
340
|
+
Ollama adapters with injected no-network tests, eight target declarations,
|
|
341
|
+
and an inert provenance-preserving Inspect AI bridge.
|
|
342
|
+
- A human-operated extension workflow with strict manifests, absolute paths,
|
|
343
|
+
executable and script digest pins, post-approval drift checks, protocol-bound
|
|
344
|
+
responses, capture-time redaction, signed traces, and explicit non-sandbox
|
|
345
|
+
limitations, plus an executable safe example.
|
|
346
|
+
- Signed nonce-bound probe evidence, a deterministic trace-per-attempt local
|
|
347
|
+
Arena, signature-pinned static leaderboard, inert CTF catalog, and bounded
|
|
348
|
+
redaction-first replay clip renderer with strict public CLI documents.
|
|
349
|
+
- Account-free `sova init`, non-secret `sova doctor`, identity-bound managed
|
|
350
|
+
data deletion, a first-five-minutes path, user-path guides, governance, and
|
|
351
|
+
maintainer documentation.
|
|
352
|
+
- Deterministic CycloneDX 1.6 SBOM generation, exact release checksums, hostile
|
|
353
|
+
bundle verification, and a reproducible neutral conformance ZIP containing
|
|
354
|
+
canonical schema, event, extension, and manifest vectors.
|
|
355
|
+
- Secret-free authorized-target manifests and inert plans plus signed,
|
|
356
|
+
deterministic website and software fixtures that prove target planning,
|
|
357
|
+
observable execution, trace capture, capsule packaging, controlled
|
|
358
|
+
reproduction, comparison, and offline verification without contacting a
|
|
359
|
+
live target.
|
|
360
|
+
- A machine-audited 83-command CLI surface whose registered handlers must all
|
|
361
|
+
execute in mandatory offline CI.
|
|
362
|
+
|
|
363
|
+
### Fixed
|
|
364
|
+
|
|
365
|
+
- Corrected the release claim ledger to the parser-verified 111 CLI leaf
|
|
366
|
+
commands and recorded the bounded provider-backed AI Goat loopback acceptance
|
|
367
|
+
without broadening it into an autonomous-coverage or provider-quality claim.
|
|
368
|
+
- Standardized test invocation on `python -m pytest`, avoiding a Windows
|
|
369
|
+
console-entry-point import-path failure for the public `scripts` package.
|
|
370
|
+
- Current-to-current `.sova` migration now performs an exact, no-overwrite
|
|
371
|
+
byte-preserving copy when the destination differs from the source.
|
|
372
|
+
- Local MCP control-key creation now forces binary mode on Windows so random
|
|
373
|
+
newline bytes cannot be translated to CRLF and alter the generated key.
|
|
374
|
+
- Windows foreground/background cancellation now detects failed or timed-out
|
|
375
|
+
`taskkill /T` attempts, falls back immediately to the owned root process, and
|
|
376
|
+
retries transient temporary-I/O cleanup. Arbitrary descendant-tree
|
|
377
|
+
containment still requires a stronger operating-system backend.
|
|
378
|
+
|
|
379
|
+
### Security
|
|
380
|
+
|
|
381
|
+
- Full-SHA pinning for GitHub Actions.
|
|
382
|
+
- Dedicated public-boundary, secret, dependency, and CodeQL checks.
|
|
383
|
+
- Synthetic-fixture provenance and raw-trace location enforcement.
|
|
384
|
+
- Malformed archive, parser differential, corruption, truncation, reordering,
|
|
385
|
+
substitution, signature-confusion, redaction, and hostile-extension tests.
|
|
386
|
+
- Secret values and provider exception messages are excluded from durable
|
|
387
|
+
capsules and normal trace outcomes by tested boundaries.
|
|
388
|
+
- Keyed redaction commitments reject missing or sub-32-byte key material before
|
|
389
|
+
capture; operators must still supply genuinely high-entropy keys.
|
|
390
|
+
- Encrypted redaction can use authenticated power-of-two length buckets;
|
|
391
|
+
decryption rejects padding metadata that disagrees with the authenticated
|
|
392
|
+
associated data. Bucket, presence, path, and surrounding-structure leakage
|
|
393
|
+
remain explicit limitations.
|
|
394
|
+
- The threat model explicitly records that standalone offline verification
|
|
395
|
+
cannot detect byte-identical replay or valid-signer equivocation without
|
|
396
|
+
trusted external freshness or transparency state.
|
|
397
|
+
- External MCP transport success is never treated as action success when the
|
|
398
|
+
provider's embedded task is blocked, partial, waiting, cancelled, failed,
|
|
399
|
+
nonterminal, unknown, or substituted.
|
|
400
|
+
- Windows-MCP telemetry is disabled by the pinned recipe and dangerous host
|
|
401
|
+
tools are excluded from the SOVA mapping by default.
|
|
402
|
+
- MCP stdio reads, unrelated-response deferral, and request deadlines are
|
|
403
|
+
bounded before allocation or retry; backend environment additions fail
|
|
404
|
+
closed unless allowlisted.
|
|
405
|
+
- Phantom payload/evidence sizes are bounded, and ephemeral token zeroization
|
|
406
|
+
runs on success, validation failure, or harness failure.
|
|
407
|
+
|
|
408
|
+
## [0.1.0a0] - never published
|
|
409
|
+
|
|
410
|
+
Pre-alpha engineering-foundation version, superseded by 0.1.0 before any
|
|
411
|
+
publication.
|
|
412
|
+
|
|
413
|
+
[Unreleased]: https://github.com/TRUSCOR/SOVA-OSS/compare/v0.1.0...HEAD
|
|
414
|
+
[0.1.0]: https://github.com/TRUSCOR/SOVA-OSS/releases/tag/v0.1.0
|
|
415
|
+
[0.1.0a0]: https://github.com/TRUSCOR/SOVA-OSS/commits/main
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
cff-version: "1.2.0"
|
|
2
|
+
message: "If you use SOVA OSS in software, research, a paper, benchmark, dataset, or publication, please cite this repository and the release or commit you used."
|
|
3
|
+
title: "SOVA OSS: Security and Offensive Vulnerability Adversary"
|
|
4
|
+
abstract: "A local-first open-source workbench for mapping, adversarially testing, tracing, reproducing, and analyzing AI-agent security behavior."
|
|
5
|
+
authors:
|
|
6
|
+
- family-names: "Patil"
|
|
7
|
+
given-names: "Gautam R."
|
|
8
|
+
- name: "TRUSCOR"
|
|
9
|
+
repository-code: "https://github.com/TRUSCOR/SOVA-OSS"
|
|
10
|
+
url: "https://truscor.org"
|
|
11
|
+
license: "Apache-2.0"
|
|
12
|
+
version: "0.1.0"
|
|
13
|
+
date-released: "2026-11-15"
|
|
14
|
+
keywords:
|
|
15
|
+
- "AI agent security"
|
|
16
|
+
- "adversarial testing"
|
|
17
|
+
- "MCP security"
|
|
18
|
+
- "security evidence"
|
|
19
|
+
- "reproducibility"
|
|
20
|
+
- "forensics"
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and leaders pledge to make participation in the
|
|
6
|
+
SOVA OSS community a harassment-free experience for everyone, regardless of
|
|
7
|
+
age, body size, visible or invisible disability, ethnicity, sex characteristics,
|
|
8
|
+
gender identity and expression, level of experience, education, socio-economic
|
|
9
|
+
status, nationality, personal appearance, race, caste, color, religion, or
|
|
10
|
+
sexual identity and orientation.
|
|
11
|
+
|
|
12
|
+
We pledge to act and interact in ways that contribute to an open, welcoming,
|
|
13
|
+
diverse, inclusive, and healthy community.
|
|
14
|
+
|
|
15
|
+
## Our standards
|
|
16
|
+
|
|
17
|
+
Examples of behavior that contributes to a positive environment include:
|
|
18
|
+
|
|
19
|
+
- demonstrating empathy and kindness toward other people;
|
|
20
|
+
- respecting differing opinions, viewpoints, and experiences;
|
|
21
|
+
- giving and gracefully accepting constructive feedback;
|
|
22
|
+
- accepting responsibility and apologizing to those affected by our mistakes;
|
|
23
|
+
- focusing on what is best for the overall community.
|
|
24
|
+
|
|
25
|
+
Examples of unacceptable behavior include:
|
|
26
|
+
|
|
27
|
+
- sexualized language or imagery, sexual attention, or advances;
|
|
28
|
+
- trolling, insulting or derogatory comments, and personal or political attacks;
|
|
29
|
+
- public or private harassment;
|
|
30
|
+
- publishing others' private information without explicit permission;
|
|
31
|
+
- pressuring contributors to disclose confidential security, client, research,
|
|
32
|
+
employment, or identity information;
|
|
33
|
+
- other conduct reasonably considered inappropriate in a professional setting.
|
|
34
|
+
|
|
35
|
+
## Enforcement responsibilities
|
|
36
|
+
|
|
37
|
+
Project leaders are responsible for clarifying and enforcing acceptable
|
|
38
|
+
behavior and will take appropriate and fair corrective action in response to
|
|
39
|
+
behavior they deem inappropriate, threatening, offensive, or harmful.
|
|
40
|
+
|
|
41
|
+
Project leaders may remove, edit, or reject comments, commits, code, wiki edits,
|
|
42
|
+
issues, and other contributions that are inconsistent with this Code of
|
|
43
|
+
Conduct, and will communicate reasons for moderation when appropriate.
|
|
44
|
+
|
|
45
|
+
## Scope
|
|
46
|
+
|
|
47
|
+
This Code applies within project spaces and when an individual officially
|
|
48
|
+
represents the project in public spaces.
|
|
49
|
+
|
|
50
|
+
## Enforcement
|
|
51
|
+
|
|
52
|
+
Report abusive, harassing, or otherwise unacceptable behavior privately to
|
|
53
|
+
[gautam@truscor.org](mailto:gautam@truscor.org) with the subject
|
|
54
|
+
`[SOVA CONDUCT]`. Do not include security vulnerabilities in a conduct report;
|
|
55
|
+
use [SECURITY.md](SECURITY.md).
|
|
56
|
+
|
|
57
|
+
All complaints will be reviewed and investigated promptly and fairly.
|
|
58
|
+
Enforcement staff must respect the reporter's privacy and security.
|
|
59
|
+
|
|
60
|
+
## Enforcement guidelines
|
|
61
|
+
|
|
62
|
+
Project leaders will follow these community-impact guidelines:
|
|
63
|
+
|
|
64
|
+
1. **Correction:** A private written warning and explanation for inappropriate
|
|
65
|
+
language or other behavior judged unprofessional or unwelcome.
|
|
66
|
+
2. **Warning:** A warning with consequences for continued behavior, including
|
|
67
|
+
no interaction with specified people for a stated period.
|
|
68
|
+
3. **Temporary ban:** A temporary ban from project interaction for a serious
|
|
69
|
+
violation or sustained inappropriate behavior.
|
|
70
|
+
4. **Permanent ban:** Permanent removal for a pattern of violations,
|
|
71
|
+
harassment, aggression, or disparagement of protected classes.
|
|
72
|
+
|
|
73
|
+
## Attribution
|
|
74
|
+
|
|
75
|
+
This Code of Conduct is adapted from the
|
|
76
|
+
[Contributor Covenant, version 2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html),
|
|
77
|
+
available under the
|
|
78
|
+
[Creative Commons Attribution 4.0 International licence](https://creativecommons.org/licenses/by/4.0/).
|