novafabric 0.57.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.
- novafabric-0.57.0/.github/ISSUE_TEMPLATE/bug_report.md +34 -0
- novafabric-0.57.0/.github/ISSUE_TEMPLATE/feature_request.md +21 -0
- novafabric-0.57.0/.github/PULL_REQUEST_TEMPLATE.md +12 -0
- novafabric-0.57.0/.github/workflows/ci.yml +236 -0
- novafabric-0.57.0/.github/workflows/collector-ci.yml +152 -0
- novafabric-0.57.0/.github/workflows/metadata_store_security_gate.yml +99 -0
- novafabric-0.57.0/.github/workflows/publish-pypi.yml +77 -0
- novafabric-0.57.0/.github/workflows/release.yml +55 -0
- novafabric-0.57.0/.github/workflows/scorecard.yml +50 -0
- novafabric-0.57.0/.gitignore +39 -0
- novafabric-0.57.0/CHANGELOG.md +3892 -0
- novafabric-0.57.0/CODE_OF_CONDUCT.md +40 -0
- novafabric-0.57.0/CONTRIBUTING.md +128 -0
- novafabric-0.57.0/GOVERNANCE.md +222 -0
- novafabric-0.57.0/LICENSE +201 -0
- novafabric-0.57.0/MAINTAINERS.md +96 -0
- novafabric-0.57.0/Makefile +300 -0
- novafabric-0.57.0/PKG-INFO +90 -0
- novafabric-0.57.0/README.md +322 -0
- novafabric-0.57.0/ROADMAP.md +459 -0
- novafabric-0.57.0/SECURITY.md +23 -0
- novafabric-0.57.0/alembic/env.py +77 -0
- novafabric-0.57.0/alembic/postgres/versions/0001_initial.py +93 -0
- novafabric-0.57.0/alembic/postgres/versions/0002_pending_approval.py +34 -0
- novafabric-0.57.0/alembic/postgres/versions/0003_add_site_id_to_lineage_edges.py +45 -0
- novafabric-0.57.0/alembic/script.py.mako +27 -0
- novafabric-0.57.0/alembic/sqlite/versions/0001_initial.py +115 -0
- novafabric-0.57.0/alembic/sqlite/versions/0002_pending_approval.py +35 -0
- novafabric-0.57.0/alembic-postgres.ini +42 -0
- novafabric-0.57.0/alembic.ini +43 -0
- novafabric-0.57.0/api/openapi.yaml +1205 -0
- novafabric-0.57.0/benchmarks/README.md +125 -0
- novafabric-0.57.0/benchmarks/capture_overhead.py +185 -0
- novafabric-0.57.0/benchmarks/orchestrator_microbench.py +90 -0
- novafabric-0.57.0/benchmarks/spk_col1_offset_replay.py +195 -0
- novafabric-0.57.0/benchmarks/spk_col2_hotpath.py +150 -0
- novafabric-0.57.0/benchmarks/spk_col3/byte_proxy.py +81 -0
- novafabric-0.57.0/benchmarks/spk_col3/configs.md +11 -0
- novafabric-0.57.0/benchmarks/spk_col3/run_ab.sh +137 -0
- novafabric-0.57.0/collector/Makefile +73 -0
- novafabric-0.57.0/collector/cmd/novafabric-collector/main.go +59 -0
- novafabric-0.57.0/collector/cmd/novafabric-hpc-hub/main.go +86 -0
- novafabric-0.57.0/collector/cmd/novafabric-spool-forwarder/main.go +75 -0
- novafabric-0.57.0/collector/cmd/novafabric-verifier/main.go +104 -0
- novafabric-0.57.0/collector/go.mod +107 -0
- novafabric-0.57.0/collector/go.sum +366 -0
- novafabric-0.57.0/collector/internal/forwarder/forwarder.go +90 -0
- novafabric-0.57.0/collector/internal/forwarder/forwarder_test.go +125 -0
- novafabric-0.57.0/collector/internal/forwarder/nats_publisher.go +63 -0
- novafabric-0.57.0/collector/internal/forwarder/nats_publisher_integration_test.go +71 -0
- novafabric-0.57.0/collector/internal/hpc/autonomy_test.go +144 -0
- novafabric-0.57.0/collector/internal/hpc/leaf.go +225 -0
- novafabric-0.57.0/collector/internal/hpc/leaf_spool_dlq_test.go +100 -0
- novafabric-0.57.0/collector/internal/hpc/leaf_spool_store.go +140 -0
- novafabric-0.57.0/collector/internal/hpc/leaf_test.go +150 -0
- novafabric-0.57.0/collector/internal/processor/novasealbatchsigner/bench_norace_test.go +5 -0
- novafabric-0.57.0/collector/internal/processor/novasealbatchsigner/bench_race_test.go +5 -0
- novafabric-0.57.0/collector/internal/processor/novasealbatchsigner/bench_test.go +152 -0
- novafabric-0.57.0/collector/internal/processor/novasealbatchsigner/config.go +57 -0
- novafabric-0.57.0/collector/internal/processor/novasealbatchsigner/factory.go +57 -0
- novafabric-0.57.0/collector/internal/processor/novasealbatchsigner/processor.go +242 -0
- novafabric-0.57.0/collector/internal/processor/novasealbatchsigner/processor_test.go +270 -0
- novafabric-0.57.0/collector/internal/spool/checkpoint.go +155 -0
- novafabric-0.57.0/collector/internal/spool/checkpoint_sync_linux.go +16 -0
- novafabric-0.57.0/collector/internal/spool/checkpoint_sync_notlinux.go +11 -0
- novafabric-0.57.0/collector/internal/spool/dlq.go +174 -0
- novafabric-0.57.0/collector/internal/spool/dlq_test.go +224 -0
- novafabric-0.57.0/collector/internal/spool/eviction.go +85 -0
- novafabric-0.57.0/collector/internal/spool/recovery_test.go +153 -0
- novafabric-0.57.0/collector/internal/spool/segment.go +149 -0
- novafabric-0.57.0/collector/internal/spool/segment_test.go +118 -0
- novafabric-0.57.0/collector/internal/spool/spool.go +388 -0
- novafabric-0.57.0/collector/internal/spool/spool_test.go +131 -0
- novafabric-0.57.0/collector/internal/verifier/verifier.go +118 -0
- novafabric-0.57.0/collector/ocb/builder-config.yaml +39 -0
- novafabric-0.57.0/collector/pkg/canonical/canonical.go +80 -0
- novafabric-0.57.0/collector/pkg/canonical/corpus_roundtrip_test.go +180 -0
- novafabric-0.57.0/collector/pkg/canonical/doc.go +39 -0
- novafabric-0.57.0/collector/pkg/canonical/encode_test.go +164 -0
- novafabric-0.57.0/collector/pkg/cffi/exports.go +175 -0
- novafabric-0.57.0/collector/pkg/envelope/cloudevents_mapping.go +182 -0
- novafabric-0.57.0/collector/pkg/envelope/envelope.go +134 -0
- novafabric-0.57.0/collector/pkg/envelope/envelope_test.go +225 -0
- novafabric-0.57.0/collector/pkg/envelope/otlp_mapping.go +186 -0
- novafabric-0.57.0/collector/pkg/metrics/metrics.go +173 -0
- novafabric-0.57.0/collector/pkg/novaseal/keystore.go +267 -0
- novafabric-0.57.0/collector/pkg/novaseal/keystore_local_wal.go +240 -0
- novafabric-0.57.0/collector/pkg/novaseal/keystore_test.go +140 -0
- novafabric-0.57.0/collector/pkg/novaseal/novaseal.go +23 -0
- novafabric-0.57.0/collector/pkg/novaseal/signer.go +251 -0
- novafabric-0.57.0/collector/pkg/novaseal/signer_test.go +372 -0
- novafabric-0.57.0/collector/scripts/verify_canonical_roundtrip.py +77 -0
- novafabric-0.57.0/collector/tests/integration/test_crash_recovery_test.go +106 -0
- novafabric-0.57.0/collector/tests/integration/test_kms_outage_test.go +42 -0
- novafabric-0.57.0/collector/tests/integration/test_nats_vs_otel_signing_test.go +70 -0
- novafabric-0.57.0/deploy/collector-arrow/README.md +30 -0
- novafabric-0.57.0/deploy/collector-arrow/receiver.yaml +16 -0
- novafabric-0.57.0/deploy/collector-arrow/sender.yaml +28 -0
- novafabric-0.57.0/deploy/docker/Dockerfile +58 -0
- novafabric-0.57.0/deploy/docker/README-pgbouncer.md +108 -0
- novafabric-0.57.0/deploy/docker/docker-compose.yml +246 -0
- novafabric-0.57.0/deploy/docker/entrypoint.sh +29 -0
- novafabric-0.57.0/deploy/docker/pgbouncer-userlist.txt +40 -0
- novafabric-0.57.0/deploy/docker/pgbouncer.ini +60 -0
- novafabric-0.57.0/deploy/helm/janusgraph/Chart.yaml +16 -0
- novafabric-0.57.0/deploy/helm/janusgraph/README.md +56 -0
- novafabric-0.57.0/deploy/helm/janusgraph/templates/configmap.yaml +43 -0
- novafabric-0.57.0/deploy/helm/janusgraph/templates/deployment.yaml +113 -0
- novafabric-0.57.0/deploy/helm/janusgraph/templates/service.yaml +15 -0
- novafabric-0.57.0/deploy/helm/janusgraph/values.yaml +66 -0
- novafabric-0.57.0/deploy/hpc/README.md +138 -0
- novafabric-0.57.0/deploy/hpc/ansible/install.yml +129 -0
- novafabric-0.57.0/deploy/hpc/ansible/inventory.example.ini +12 -0
- novafabric-0.57.0/deploy/hpc/cluster-hub.conf.tmpl +40 -0
- novafabric-0.57.0/deploy/hpc/epilog.sh +56 -0
- novafabric-0.57.0/deploy/hpc/forwarder.yaml +47 -0
- novafabric-0.57.0/deploy/hpc/leaf-node.conf.tmpl +33 -0
- novafabric-0.57.0/deploy/hpc/prolog.sh +58 -0
- novafabric-0.57.0/deploy/hpc/test-cluster/docker-compose.yml +248 -0
- novafabric-0.57.0/deploy/k8s/README.md +108 -0
- novafabric-0.57.0/deploy/k8s/configmap-collector.yaml +55 -0
- novafabric-0.57.0/deploy/k8s/daemonset-fluent-bit.yaml +107 -0
- novafabric-0.57.0/deploy/k8s/deployment-gateway-collector.yaml +79 -0
- novafabric-0.57.0/deploy/k8s/namespace.yaml +7 -0
- novafabric-0.57.0/deploy/k8s/secret-novaseal-mtls.yaml.example +27 -0
- novafabric-0.57.0/deploy/k8s/service.yaml +25 -0
- novafabric-0.57.0/deploy/pgbouncer/README.md +82 -0
- novafabric-0.57.0/deploy/pgbouncer/pgbouncer.ini +93 -0
- novafabric-0.57.0/deploy/pgbouncer/userlist.txt.template +14 -0
- novafabric-0.57.0/docs/README.md +98 -0
- novafabric-0.57.0/docs/api-reference.md +265 -0
- novafabric-0.57.0/docs/cli-reference.md +3803 -0
- novafabric-0.57.0/docs/concepts.md +544 -0
- novafabric-0.57.0/docs/dashboard.md +506 -0
- novafabric-0.57.0/docs/developer-guide.md +952 -0
- novafabric-0.57.0/docs/getting-started.md +412 -0
- novafabric-0.57.0/docs/integrations/writing-a-hook-plugin.md +182 -0
- novafabric-0.57.0/docs/lineage/migration-guide.md +143 -0
- novafabric-0.57.0/docs/novaseal-configuration.md +278 -0
- novafabric-0.57.0/docs/novaseal-key-management.md +216 -0
- novafabric-0.57.0/docs/novaseal-stability.md +122 -0
- novafabric-0.57.0/docs/operator-guide.md +953 -0
- novafabric-0.57.0/docs/ops/cluster-scale-migration.md +292 -0
- novafabric-0.57.0/docs/ops/server-deployment.md +402 -0
- novafabric-0.57.0/docs/python-api.md +520 -0
- novafabric-0.57.0/docs/release-process.md +77 -0
- novafabric-0.57.0/docs/releases/v0.1.0.md +51 -0
- novafabric-0.57.0/docs/releases/v0.10.0.md +119 -0
- novafabric-0.57.0/docs/releases/v0.12.1.md +87 -0
- novafabric-0.57.0/docs/releases/v0.12.10.md +75 -0
- novafabric-0.57.0/docs/releases/v0.12.11.md +113 -0
- novafabric-0.57.0/docs/releases/v0.12.12.md +93 -0
- novafabric-0.57.0/docs/releases/v0.12.13.md +75 -0
- novafabric-0.57.0/docs/releases/v0.12.14.md +71 -0
- novafabric-0.57.0/docs/releases/v0.12.15.md +116 -0
- novafabric-0.57.0/docs/releases/v0.12.16.md +101 -0
- novafabric-0.57.0/docs/releases/v0.12.2.md +70 -0
- novafabric-0.57.0/docs/releases/v0.12.3.md +85 -0
- novafabric-0.57.0/docs/releases/v0.12.6.md +49 -0
- novafabric-0.57.0/docs/releases/v0.12.7.md +159 -0
- novafabric-0.57.0/docs/releases/v0.12.8.md +87 -0
- novafabric-0.57.0/docs/releases/v0.12.9.md +166 -0
- novafabric-0.57.0/docs/releases/v0.13.0.md +130 -0
- novafabric-0.57.0/docs/releases/v0.13.1.md +64 -0
- novafabric-0.57.0/docs/releases/v0.13.2.md +74 -0
- novafabric-0.57.0/docs/releases/v0.13.3.md +117 -0
- novafabric-0.57.0/docs/releases/v0.13.4.md +84 -0
- novafabric-0.57.0/docs/releases/v0.13.5.md +176 -0
- novafabric-0.57.0/docs/releases/v0.14.0.md +140 -0
- novafabric-0.57.0/docs/releases/v0.14.1.md +75 -0
- novafabric-0.57.0/docs/releases/v0.14.2.md +23 -0
- novafabric-0.57.0/docs/releases/v0.14.3.md +98 -0
- novafabric-0.57.0/docs/releases/v0.14.4.md +158 -0
- novafabric-0.57.0/docs/releases/v0.16.0.md +148 -0
- novafabric-0.57.0/docs/releases/v0.16.1.md +89 -0
- novafabric-0.57.0/docs/releases/v0.16.2.md +22 -0
- novafabric-0.57.0/docs/releases/v0.17.0.md +297 -0
- novafabric-0.57.0/docs/releases/v0.18.0.md +107 -0
- novafabric-0.57.0/docs/releases/v0.19.0.md +103 -0
- novafabric-0.57.0/docs/releases/v0.19.1.md +30 -0
- novafabric-0.57.0/docs/releases/v0.19.2.md +46 -0
- novafabric-0.57.0/docs/releases/v0.2.0.md +158 -0
- novafabric-0.57.0/docs/releases/v0.20.0.md +75 -0
- novafabric-0.57.0/docs/releases/v0.20.1.md +50 -0
- novafabric-0.57.0/docs/releases/v0.20.2.md +99 -0
- novafabric-0.57.0/docs/releases/v0.20.5.md +15 -0
- novafabric-0.57.0/docs/releases/v0.20.6.md +16 -0
- novafabric-0.57.0/docs/releases/v0.20.7.md +15 -0
- novafabric-0.57.0/docs/releases/v0.20.8.md +15 -0
- novafabric-0.57.0/docs/releases/v0.20.9.md +18 -0
- novafabric-0.57.0/docs/releases/v0.21.0.md +19 -0
- novafabric-0.57.0/docs/releases/v0.21.1.md +18 -0
- novafabric-0.57.0/docs/releases/v0.21.2.md +15 -0
- novafabric-0.57.0/docs/releases/v0.21.3.md +17 -0
- novafabric-0.57.0/docs/releases/v0.21.4.md +18 -0
- novafabric-0.57.0/docs/releases/v0.22.0.md +87 -0
- novafabric-0.57.0/docs/releases/v0.23.0.md +88 -0
- novafabric-0.57.0/docs/releases/v0.24.0.md +164 -0
- novafabric-0.57.0/docs/releases/v0.25.0.md +125 -0
- novafabric-0.57.0/docs/releases/v0.25.1.md +104 -0
- novafabric-0.57.0/docs/releases/v0.26.0.md +67 -0
- novafabric-0.57.0/docs/releases/v0.26.1.md +112 -0
- novafabric-0.57.0/docs/releases/v0.26.5.md +66 -0
- novafabric-0.57.0/docs/releases/v0.27.0.md +99 -0
- novafabric-0.57.0/docs/releases/v0.28.0.md +86 -0
- novafabric-0.57.0/docs/releases/v0.29.0.md +129 -0
- novafabric-0.57.0/docs/releases/v0.29.3.md +76 -0
- novafabric-0.57.0/docs/releases/v0.29.4.md +60 -0
- novafabric-0.57.0/docs/releases/v0.3.0.md +126 -0
- novafabric-0.57.0/docs/releases/v0.30.0.md +121 -0
- novafabric-0.57.0/docs/releases/v0.30.3.md +78 -0
- novafabric-0.57.0/docs/releases/v0.31.0.md +118 -0
- novafabric-0.57.0/docs/releases/v0.31.1.md +30 -0
- novafabric-0.57.0/docs/releases/v0.32.0.md +33 -0
- novafabric-0.57.0/docs/releases/v0.33.0.md +31 -0
- novafabric-0.57.0/docs/releases/v0.34.0.md +30 -0
- novafabric-0.57.0/docs/releases/v0.35.0.md +30 -0
- novafabric-0.57.0/docs/releases/v0.36.0.md +61 -0
- novafabric-0.57.0/docs/releases/v0.37.0.md +85 -0
- novafabric-0.57.0/docs/releases/v0.38.0.md +102 -0
- novafabric-0.57.0/docs/releases/v0.38.1.md +66 -0
- novafabric-0.57.0/docs/releases/v0.39.0.md +51 -0
- novafabric-0.57.0/docs/releases/v0.4.0.md +60 -0
- novafabric-0.57.0/docs/releases/v0.4.1.md +31 -0
- novafabric-0.57.0/docs/releases/v0.4.2.md +63 -0
- novafabric-0.57.0/docs/releases/v0.40.0.md +92 -0
- novafabric-0.57.0/docs/releases/v0.41.0.md +75 -0
- novafabric-0.57.0/docs/releases/v0.43.0.md +113 -0
- novafabric-0.57.0/docs/releases/v0.46.0.md +72 -0
- novafabric-0.57.0/docs/releases/v0.46.1.md +64 -0
- novafabric-0.57.0/docs/releases/v0.47.0.md +89 -0
- novafabric-0.57.0/docs/releases/v0.47.1.md +37 -0
- novafabric-0.57.0/docs/releases/v0.48.0.md +63 -0
- novafabric-0.57.0/docs/releases/v0.49.0.md +68 -0
- novafabric-0.57.0/docs/releases/v0.5.0.md +123 -0
- novafabric-0.57.0/docs/releases/v0.50.0.md +117 -0
- novafabric-0.57.0/docs/releases/v0.51.0.md +52 -0
- novafabric-0.57.0/docs/releases/v0.52.0.md +77 -0
- novafabric-0.57.0/docs/releases/v0.53.0.md +72 -0
- novafabric-0.57.0/docs/releases/v0.54.0.md +99 -0
- novafabric-0.57.0/docs/releases/v0.55.0.md +143 -0
- novafabric-0.57.0/docs/releases/v0.56.0.md +93 -0
- novafabric-0.57.0/docs/releases/v0.6.0.md +184 -0
- novafabric-0.57.0/docs/releases/v0.6.1.md +112 -0
- novafabric-0.57.0/docs/releases/v0.6.10.md +178 -0
- novafabric-0.57.0/docs/releases/v0.6.11.md +123 -0
- novafabric-0.57.0/docs/releases/v0.6.12.md +134 -0
- novafabric-0.57.0/docs/releases/v0.6.2.md +121 -0
- novafabric-0.57.0/docs/releases/v0.6.3.md +175 -0
- novafabric-0.57.0/docs/releases/v0.6.4.md +175 -0
- novafabric-0.57.0/docs/releases/v0.6.5.md +148 -0
- novafabric-0.57.0/docs/releases/v0.6.6.md +142 -0
- novafabric-0.57.0/docs/releases/v0.6.7.md +112 -0
- novafabric-0.57.0/docs/releases/v0.6.8.md +111 -0
- novafabric-0.57.0/docs/releases/v0.6.9.md +131 -0
- novafabric-0.57.0/docs/releases/v0.7.0.md +151 -0
- novafabric-0.57.0/docs/releases/v0.8.0.md +153 -0
- novafabric-0.57.0/docs/releases/v0.9.0.md +122 -0
- novafabric-0.57.0/docs/tutorials/README.md +42 -0
- novafabric-0.57.0/docs/tutorials/cluster-scale.md +317 -0
- novafabric-0.57.0/docs/tutorials/feature-tour.md +544 -0
- novafabric-0.57.0/docs/tutorials/how-capture-works.md +213 -0
- novafabric-0.57.0/docs/tutorials/multi-agent-capture.md +172 -0
- novafabric-0.57.0/docs/tutorials/novafabric-vs-langfuse.md +217 -0
- novafabric-0.57.0/docs/tutorials/why-novafabric.md +219 -0
- novafabric-0.57.0/docs/user-guide.md +1238 -0
- novafabric-0.57.0/docs/warm-capture-daemon.md +199 -0
- novafabric-0.57.0/examples/README.md +79 -0
- novafabric-0.57.0/examples/assets/agent-basic.yaml +22 -0
- novafabric-0.57.0/examples/assets/agent-with-eval-gate.yaml +25 -0
- novafabric-0.57.0/examples/assets/dataset-basic.yaml +11 -0
- novafabric-0.57.0/examples/assets/model-basic.yaml +15 -0
- novafabric-0.57.0/examples/azure-openai/README.md +42 -0
- novafabric-0.57.0/examples/azure-openai/agent.py +71 -0
- novafabric-0.57.0/examples/blackbox_demo/README.md +161 -0
- novafabric-0.57.0/examples/blackbox_demo/agent.py +68 -0
- novafabric-0.57.0/examples/blackbox_demo/expected/bad_decision.json +6 -0
- novafabric-0.57.0/examples/blackbox_demo/expected/fixed_decision.json +6 -0
- novafabric-0.57.0/examples/blackbox_demo/fixtures/fake_api_key.txt +1 -0
- novafabric-0.57.0/examples/blackbox_demo/fixtures/prompt.txt +6 -0
- novafabric-0.57.0/examples/blackbox_demo/fixtures/service.yaml +14 -0
- novafabric-0.57.0/examples/blackbox_demo/mock_llm_server.py +101 -0
- novafabric-0.57.0/examples/blackbox_demo/run_demo.sh +95 -0
- novafabric-0.57.0/examples/capsules/README.md +29 -0
- novafabric-0.57.0/examples/capsules/minimal-run/assets.jsonl +0 -0
- novafabric-0.57.0/examples/capsules/minimal-run/capsule.yaml +34 -0
- novafabric-0.57.0/examples/capsules/minimal-run/env.lock +202 -0
- novafabric-0.57.0/examples/capsules/minimal-run/model-calls.jsonl +0 -0
- novafabric-0.57.0/examples/capsules/minimal-run/outputs/stdout.txt +3 -0
- novafabric-0.57.0/examples/capsules/minimal-run/redaction-proof.json +66 -0
- novafabric-0.57.0/examples/capsules/minimal-run/replay.yaml +1 -0
- novafabric-0.57.0/examples/capsules/minimal-run/tool-calls.jsonl +0 -0
- novafabric-0.57.0/examples/capsules/minimal-run/trace.jsonl +1 -0
- novafabric-0.57.0/examples/langchain-agent/README.md +84 -0
- novafabric-0.57.0/examples/langchain-agent/agent.py +119 -0
- novafabric-0.57.0/examples/lineage-chain/README.md +59 -0
- novafabric-0.57.0/examples/lineage-chain/step.py +44 -0
- novafabric-0.57.0/examples/minimal-agent-run/README.md +34 -0
- novafabric-0.57.0/examples/minimal-agent-run/agent.py +75 -0
- novafabric-0.57.0/examples/plugin-hook-reference/README.md +99 -0
- novafabric-0.57.0/examples/plugin-hook-reference/pyproject.toml +56 -0
- novafabric-0.57.0/examples/plugin-hook-reference/src/novafabric_example_plugin/__init__.py +11 -0
- novafabric-0.57.0/examples/plugin-hook-reference/src/novafabric_example_plugin/demo.py +29 -0
- novafabric-0.57.0/examples/plugin-hook-reference/src/novafabric_example_plugin/hook.py +216 -0
- novafabric-0.57.0/examples/plugin-hook-reference/tests/test_hook.py +126 -0
- novafabric-0.57.0/examples/plugin-hook-reference/uv.lock +1270 -0
- novafabric-0.57.0/examples/replay-and-diff/README.md +62 -0
- novafabric-0.57.0/examples/replay-and-diff/agent.py +32 -0
- novafabric-0.57.0/examples/reports/sample-report.json +26 -0
- novafabric-0.57.0/examples/reports/sample-report.md +20 -0
- novafabric-0.57.0/packages/nova-dashboard/.npmignore +3 -0
- novafabric-0.57.0/packages/nova-dashboard/index.html +16 -0
- novafabric-0.57.0/packages/nova-dashboard/package-lock.json +2492 -0
- novafabric-0.57.0/packages/nova-dashboard/package.json +43 -0
- novafabric-0.57.0/packages/nova-dashboard/src/App.tsx +273 -0
- novafabric-0.57.0/packages/nova-dashboard/src/__tests__/TV5Panel.test.ts +105 -0
- novafabric-0.57.0/packages/nova-dashboard/src/__tests__/ads_validator.test.ts +222 -0
- novafabric-0.57.0/packages/nova-dashboard/src/__tests__/fa2_worker.test.ts +198 -0
- novafabric-0.57.0/packages/nova-dashboard/src/__tests__/renderer.test.ts +177 -0
- novafabric-0.57.0/packages/nova-dashboard/src/__tests__/tc_integration.test.ts +264 -0
- novafabric-0.57.0/packages/nova-dashboard/src/__tests__/tdp_client.test.ts +233 -0
- novafabric-0.57.0/packages/nova-dashboard/src/__tests__/views.test.ts +91 -0
- novafabric-0.57.0/packages/nova-dashboard/src/ads/schema.ts +99 -0
- novafabric-0.57.0/packages/nova-dashboard/src/components/topology/LODController.tsx +142 -0
- novafabric-0.57.0/packages/nova-dashboard/src/components/topology/TV5Panel.tsx +403 -0
- novafabric-0.57.0/packages/nova-dashboard/src/components/topology/TableView.tsx +112 -0
- novafabric-0.57.0/packages/nova-dashboard/src/components/topology/TimeSlider.tsx +298 -0
- novafabric-0.57.0/packages/nova-dashboard/src/components/topology/TreemapView.tsx +106 -0
- novafabric-0.57.0/packages/nova-dashboard/src/components/topology/tv5Store.ts +48 -0
- novafabric-0.57.0/packages/nova-dashboard/src/graph/fa2-worker.ts +79 -0
- novafabric-0.57.0/packages/nova-dashboard/src/graph/layoutDagre.ts +67 -0
- novafabric-0.57.0/packages/nova-dashboard/src/graph/model.ts +282 -0
- novafabric-0.57.0/packages/nova-dashboard/src/main.tsx +11 -0
- novafabric-0.57.0/packages/nova-dashboard/src/renderer/renderer.ts +165 -0
- novafabric-0.57.0/packages/nova-dashboard/src/tdp/client.ts +300 -0
- novafabric-0.57.0/packages/nova-dashboard/src/tdp/types.ts +81 -0
- novafabric-0.57.0/packages/nova-dashboard/src/views/clusterTable.ts +37 -0
- novafabric-0.57.0/packages/nova-dashboard/src/views/treemap.ts +63 -0
- novafabric-0.57.0/packages/nova-dashboard/test/ads/schema.test.ts +15 -0
- novafabric-0.57.0/packages/nova-dashboard/test/graph/model.test.ts +114 -0
- novafabric-0.57.0/packages/nova-dashboard/test/tdp/client.test.ts +136 -0
- novafabric-0.57.0/packages/nova-dashboard/test/tdp/types.test.ts +34 -0
- novafabric-0.57.0/packages/nova-dashboard/test/topology/TimeSlider.test.ts +192 -0
- novafabric-0.57.0/packages/nova-dashboard/test/topology/tv5Store.test.ts +109 -0
- novafabric-0.57.0/packages/nova-dashboard/tsconfig.json +15 -0
- novafabric-0.57.0/packages/nova-dashboard/vite.config.ts +18 -0
- novafabric-0.57.0/packages/nova_worm_conformance/COMPATIBILITY.md +66 -0
- novafabric-0.57.0/packages/nova_worm_conformance/LICENSE +99 -0
- novafabric-0.57.0/packages/nova_worm_conformance/README.md +68 -0
- novafabric-0.57.0/packages/nova_worm_conformance/pyproject.toml +41 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/__init__.py +16 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/cli.py +147 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/frameworks.py +64 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/report.py +119 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/suite.py +109 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/tests/__init__.py +0 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/tests/test_compliance_mode_cannot_be_disabled_after_bucket_creation.py +70 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/tests/test_conditional_put_returns_412_on_existing_key.py +66 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/tests/test_governance_bypass_does_not_apply_in_compliance_mode.py +78 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/tests/test_legal_hold_blocks_deletion_after_retention_expiry.py +88 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/tests/test_legal_hold_release_required_before_deletion.py +89 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/tests/test_lifecycle_expiration_silently_skipped_on_locked_object.py +90 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/tests/test_overwrite_in_place_rejected_for_locked_object.py +76 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/tests/test_retention_can_be_extended.py +76 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/tests/test_retention_cannot_be_shortened.py +84 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/tests/test_root_cannot_delete_locked_object.py +78 -0
- novafabric-0.57.0/packages/nova_worm_conformance/src/nova_worm_conformance/tests/test_sha256_checksum_enforced_by_backend.py +158 -0
- novafabric-0.57.0/packages/nova_worm_conformance/tests/__init__.py +0 -0
- novafabric-0.57.0/packages/nova_worm_conformance/tests/test_suite_smoke.py +187 -0
- novafabric-0.57.0/pyproject.toml +346 -0
- novafabric-0.57.0/schemas/capsule-event-v1.schema.json +97 -0
- novafabric-0.57.0/schemas/cross_site_edge.schema.json +53 -0
- novafabric-0.57.0/schemas/diff-report.schema.json +91 -0
- novafabric-0.57.0/schemas/energy-receipt.schema.json +262 -0
- novafabric-0.57.0/schemas/environment.schema.json +558 -0
- novafabric-0.57.0/schemas/eval-result.schema.json +128 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0001.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0002.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0003.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0004.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0005.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0006.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0007.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0008.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0009.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0010.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0011.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0012.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0013.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0014.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0015.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0016.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0017.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0018.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0019.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0020.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0021.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0022.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0023.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0024.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0025.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0026.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0027.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0028.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0029.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0030.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0031.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0032.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0033.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0034.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0035.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0036.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0037.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0038.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0039.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0040.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0041.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0042.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0043.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0044.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0045.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0046.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0047.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0048.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0049.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0050.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0051.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0052.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0053.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0054.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0055.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0056.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0057.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0058.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0059.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0060.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0061.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0062.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0063.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0064.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0065.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0066.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0067.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0068.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0069.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0070.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0071.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0072.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0073.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0074.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0075.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0076.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0077.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0078.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0079.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0080.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0081.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0082.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0083.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0084.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0085.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0086.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0087.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0088.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0089.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0090.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0091.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0092.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0093.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0094.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0095.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0096.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0097.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0098.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0099.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0100.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0101.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0102.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0103.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0104.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0105.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0106.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0107.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0108.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0109.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0110.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0111.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0112.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0113.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0114.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0115.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0116.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0117.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0118.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0119.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0120.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0121.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0122.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0123.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0124.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0125.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0126.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0127.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0128.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0129.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0130.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0131.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0132.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0133.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0134.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0135.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0136.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0137.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0138.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0139.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0140.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0141.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0142.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0143.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0144.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0145.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0146.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0147.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0148.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0149.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0150.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0151.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0152.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0153.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0154.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0155.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0156.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0157.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0158.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0159.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0160.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0161.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0162.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0163.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0164.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0165.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0166.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0167.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0168.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0169.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0170.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0171.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0172.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0173.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0174.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0175.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0176.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0177.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0178.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0179.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0180.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0181.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0182.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0183.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0184.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0185.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0186.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0187.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0188.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0189.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0190.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0191.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0192.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0193.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0194.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0195.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0196.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0197.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0198.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0199.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0200.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0201.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0202.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0203.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0204.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0205.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0206.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0207.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0208.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0209.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0210.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0211.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0212.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0213.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0214.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0215.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0216.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0217.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0218.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0219.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0220.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0221.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0222.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0223.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0224.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0225.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0226.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0227.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0228.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0229.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0230.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0231.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0232.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0233.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0234.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0235.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0236.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0237.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0238.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0239.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0240.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0241.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0242.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0243.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0244.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0245.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0246.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0247.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0248.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0249.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0250.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0251.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0252.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0253.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0254.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0255.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0256.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0257.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0258.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0259.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0260.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0261.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0262.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0263.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0264.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0265.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0266.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0267.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0268.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0269.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0270.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0271.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0272.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0273.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0274.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0275.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0276.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0277.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0278.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0279.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0280.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0281.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0282.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0283.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0284.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0285.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0286.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0287.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0288.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0289.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0290.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0291.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0292.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0293.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0294.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0295.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0296.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0297.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0298.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0299.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0300.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0301.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0302.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0303.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0304.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0305.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0306.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0307.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0308.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0309.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0310.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0311.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0312.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0313.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0314.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0315.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0316.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0317.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0318.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0319.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0320.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0321.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0322.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0323.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0324.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0325.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0326.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0327.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0328.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0329.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0330.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0331.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0332.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0333.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0334.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0335.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0336.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0337.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0338.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0339.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0340.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0341.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0342.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0343.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0344.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0345.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0346.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0347.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0348.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0349.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0350.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0351.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0352.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0353.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0354.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0355.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0356.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0357.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0358.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0359.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0360.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0361.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0362.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0363.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0364.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0365.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0366.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0367.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0368.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0369.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0370.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0371.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0372.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0373.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0374.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0375.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0376.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0377.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0378.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0379.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0380.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0381.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0382.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0383.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0384.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0385.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0386.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0387.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0388.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0389.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0390.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0391.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0392.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0393.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0394.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0395.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0396.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0397.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0398.json +19 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0399.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0400.json +26 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0401.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0402.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0403.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0404.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0405.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0406.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0407.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0408.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0409.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0410.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0411.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0412.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0413.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0414.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0415.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0416.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0417.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0418.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0419.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0420.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0421.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0422.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0423.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0424.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0425.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0426.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0427.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0428.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0429.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0430.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0431.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0432.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0433.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0434.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0435.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0436.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0437.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0438.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0439.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0440.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0441.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0442.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0443.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0444.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0445.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0446.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0447.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0448.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0449.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0450.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0451.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0452.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0453.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0454.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0455.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0456.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0457.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0458.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0459.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0460.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0461.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0462.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0463.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0464.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0465.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0466.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0467.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0468.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0469.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0470.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0471.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0472.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0473.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0474.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0475.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0476.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0477.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0478.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0479.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0480.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0481.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0482.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0483.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0484.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0485.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0486.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0487.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0488.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0489.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0490.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0491.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0492.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0493.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0494.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0495.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0496.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0497.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0498.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0499.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0500.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0501.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0502.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0503.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0504.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0505.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0506.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0507.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0508.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0509.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0510.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0511.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0512.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0513.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0514.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0515.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0516.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0517.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0518.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0519.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0520.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0521.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0522.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0523.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0524.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0525.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0526.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0527.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0528.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0529.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0530.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0531.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0532.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0533.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0534.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0535.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0536.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0537.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0538.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0539.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0540.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0541.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0542.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0543.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0544.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0545.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0546.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0547.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0548.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0549.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0550.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0551.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0552.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0553.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0554.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0555.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0556.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0557.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0558.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0559.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0560.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0561.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0562.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0563.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0564.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0565.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0566.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0567.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0568.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0569.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0570.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0571.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0572.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0573.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0574.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0575.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0576.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0577.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0578.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0579.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0580.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0581.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0582.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0583.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0584.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0585.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0586.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0587.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0588.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0589.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0590.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0591.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0592.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0593.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0594.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0595.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0596.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0597.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0598.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0599.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0600.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0601.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0602.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0603.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0604.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0605.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0606.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0607.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0608.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0609.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0610.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0611.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0612.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0613.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0614.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0615.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0616.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0617.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0618.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0619.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0620.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0621.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0622.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0623.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0624.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0625.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0626.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0627.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0628.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0629.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0630.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0631.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0632.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0633.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0634.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0635.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0636.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0637.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0638.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0639.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0640.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0641.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0642.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0643.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0644.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0645.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0646.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0647.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0648.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0649.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0650.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0651.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0652.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0653.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0654.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0655.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0656.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0657.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0658.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0659.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0660.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0661.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0662.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0663.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0664.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0665.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0666.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0667.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0668.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0669.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0670.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0671.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0672.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0673.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0674.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0675.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0676.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0677.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0678.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0679.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0680.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0681.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0682.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0683.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0684.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0685.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0686.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0687.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0688.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0689.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0690.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0691.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0692.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0693.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0694.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0695.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0696.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0697.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0698.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0699.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0700.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0701.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0702.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0703.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0704.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0705.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0706.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0707.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0708.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0709.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0710.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0711.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0712.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0713.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0714.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0715.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0716.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0717.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0718.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0719.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0720.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0721.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0722.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0723.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0724.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0725.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0726.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0727.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0728.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0729.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0730.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0731.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0732.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0733.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0734.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0735.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0736.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0737.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0738.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0739.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0740.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0741.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0742.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0743.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0744.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0745.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0746.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0747.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0748.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0749.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0750.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0751.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0752.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0753.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0754.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0755.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0756.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0757.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0758.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0759.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0760.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0761.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0762.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0763.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0764.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0765.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0766.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0767.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0768.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0769.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0770.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0771.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0772.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0773.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0774.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0775.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0776.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0777.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0778.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0779.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0780.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0781.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0782.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0783.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0784.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0785.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0786.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0787.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0788.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0789.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0790.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0791.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0792.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0793.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0794.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0795.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0796.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0797.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0798.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0799.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0800.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0801.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0802.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0803.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0804.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0805.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0806.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0807.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0808.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0809.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0810.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0811.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0812.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0813.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0814.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0815.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0816.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0817.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0818.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0819.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0820.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0821.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0822.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0823.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0824.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0825.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0826.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0827.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0828.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0829.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0830.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0831.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0832.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0833.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0834.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0835.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0836.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0837.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0838.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0839.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0840.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0841.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0842.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0843.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0844.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0845.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0846.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0847.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0848.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0849.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0850.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0851.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0852.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0853.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0854.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0855.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0856.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0857.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0858.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0859.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0860.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0861.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0862.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0863.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0864.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0865.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0866.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0867.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0868.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0869.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0870.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0871.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0872.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0873.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0874.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0875.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0876.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0877.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0878.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0879.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0880.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0881.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0882.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0883.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0884.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0885.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0886.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0887.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0888.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0889.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0890.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0891.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0892.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0893.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0894.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0895.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0896.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0897.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0898.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0899.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0900.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0901.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0902.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0903.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0904.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0905.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0906.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0907.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0908.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0909.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0910.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0911.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0912.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0913.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0914.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0915.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0916.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0917.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0918.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0919.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0920.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0921.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0922.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0923.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0924.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0925.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0926.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0927.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0928.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0929.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0930.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0931.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0932.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0933.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0934.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0935.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0936.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0937.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0938.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0939.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0940.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0941.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0942.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0943.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0944.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0945.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0946.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0947.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0948.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0949.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0950.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0951.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0952.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0953.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0954.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0955.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0956.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0957.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0958.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0959.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0960.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0961.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0962.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0963.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0964.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0965.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0966.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0967.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0968.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0969.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0970.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0971.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0972.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0973.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0974.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0975.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0976.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0977.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0978.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0979.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0980.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0981.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0982.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0983.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0984.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0985.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0986.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0987.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0988.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0989.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0990.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0991.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0992.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0993.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0994.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0995.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0996.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0997.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0998.json +20 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/0999.json +28 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/1000.json +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/README.md +72 -0
- novafabric-0.57.0/schemas/event-envelope-v1/corpus/generate_corpus.py +283 -0
- novafabric-0.57.0/schemas/event-envelope-v1/envelope-v1.json +158 -0
- novafabric-0.57.0/schemas/event-envelope-v1/envelope-v1.md +121 -0
- novafabric-0.57.0/schemas/event-envelope-v1/envelope-v1.proto +27 -0
- novafabric-0.57.0/schemas/event-envelope-v1/envelope-v1.sha256 +1 -0
- novafabric-0.57.0/schemas/evidence-bundle.schema.json +399 -0
- novafabric-0.57.0/schemas/ledger-checkpoint-v1.schema.json +233 -0
- novafabric-0.57.0/schemas/lineage-edge.schema.json +104 -0
- novafabric-0.57.0/schemas/model-call.schema.json +427 -0
- novafabric-0.57.0/schemas/parent_child_capsule_v1.schema.json +171 -0
- novafabric-0.57.0/schemas/replay-attestation.schema.json +254 -0
- novafabric-0.57.0/schemas/replay-policy.schema.json +288 -0
- novafabric-0.57.0/schemas/replay-result.schema.json +104 -0
- novafabric-0.57.0/schemas/run-capsule.schema.json +433 -0
- novafabric-0.57.0/schemas/safety-case.schema.json +366 -0
- novafabric-0.57.0/schemas/secret-redaction.schema.json +374 -0
- novafabric-0.57.0/schemas/tool-call.schema.json +334 -0
- novafabric-0.57.0/scripts/live_slurm_capture_e2e.py +109 -0
- novafabric-0.57.0/scripts/live_slurm_smoke.py +87 -0
- novafabric-0.57.0/scripts/verify_differentiation_table.py +277 -0
- novafabric-0.57.0/src/novafabric/__init__.py +3 -0
- novafabric-0.57.0/src/novafabric/_paths.py +101 -0
- novafabric-0.57.0/src/novafabric/adapters/__init__.py +74 -0
- novafabric-0.57.0/src/novafabric/adapters/a2a.py +204 -0
- novafabric-0.57.0/src/novafabric/adapters/autogen.py +216 -0
- novafabric-0.57.0/src/novafabric/adapters/bedrock_agentcore.py +197 -0
- novafabric-0.57.0/src/novafabric/adapters/crewai.py +215 -0
- novafabric-0.57.0/src/novafabric/adapters/dspy.py +218 -0
- novafabric-0.57.0/src/novafabric/adapters/git.py +18 -0
- novafabric-0.57.0/src/novafabric/adapters/google_adk.py +172 -0
- novafabric-0.57.0/src/novafabric/adapters/langfuse.py +9 -0
- novafabric-0.57.0/src/novafabric/adapters/langgraph.py +284 -0
- novafabric-0.57.0/src/novafabric/adapters/mlflow.py +9 -0
- novafabric-0.57.0/src/novafabric/adapters/openai_agents.py +184 -0
- novafabric-0.57.0/src/novafabric/assure/__init__.py +2 -0
- novafabric-0.57.0/src/novafabric/assure/checker.py +27 -0
- novafabric-0.57.0/src/novafabric/assure/checks.py +354 -0
- novafabric-0.57.0/src/novafabric/assure/models.py +56 -0
- novafabric-0.57.0/src/novafabric/audit/__init__.py +5 -0
- novafabric-0.57.0/src/novafabric/audit/_log.py +166 -0
- novafabric-0.57.0/src/novafabric/audit/_models.py +34 -0
- novafabric-0.57.0/src/novafabric/audit/_paths.py +5 -0
- novafabric-0.57.0/src/novafabric/capsule/__init__.py +41 -0
- novafabric-0.57.0/src/novafabric/capsule/cli.py +332 -0
- novafabric-0.57.0/src/novafabric/capsule/edge_typer.py +107 -0
- novafabric-0.57.0/src/novafabric/capsule/env_contract.py +200 -0
- novafabric-0.57.0/src/novafabric/capsule/orphan.py +278 -0
- novafabric-0.57.0/src/novafabric/capsule/prov_mapping.py +139 -0
- novafabric-0.57.0/src/novafabric/capsule/schema.py +328 -0
- novafabric-0.57.0/src/novafabric/capsule/tree_assembler.py +206 -0
- novafabric-0.57.0/src/novafabric/capsule/ulid_util.py +103 -0
- novafabric-0.57.0/src/novafabric/capsule/validator.py +170 -0
- novafabric-0.57.0/src/novafabric/capsule/writer.py +387 -0
- novafabric-0.57.0/src/novafabric/capsule_migration/__init__.py +9 -0
- novafabric-0.57.0/src/novafabric/capsule_migration/_converter.py +249 -0
- novafabric-0.57.0/src/novafabric/capture/__init__.py +5 -0
- novafabric-0.57.0/src/novafabric/capture/_ulid.py +13 -0
- novafabric-0.57.0/src/novafabric/capture/body_adapters/__init__.py +285 -0
- novafabric-0.57.0/src/novafabric/capture/capsule.py +60 -0
- novafabric-0.57.0/src/novafabric/capture/env.py +239 -0
- novafabric-0.57.0/src/novafabric/capture/event_recorder.py +409 -0
- novafabric-0.57.0/src/novafabric/capture/events.py +202 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/__init__.py +213 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/_aiohttp.py +155 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/_anthropic.py +124 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/_deferred.py +150 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/_httpx.py +200 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/_layering.py +55 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/_mcp.py +282 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/_openai.py +137 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/_otel_genai.py +184 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/_plugin.py +196 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/_requests.py +168 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/_url_registry.py +143 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/_urllib3.py +179 -0
- novafabric-0.57.0/src/novafabric/capture/hooks/url_registry.yaml +64 -0
- novafabric-0.57.0/src/novafabric/capture/orchestrator.py +597 -0
- novafabric-0.57.0/src/novafabric/capture/replay.py +11 -0
- novafabric-0.57.0/src/novafabric/capture/secrets.py +213 -0
- novafabric-0.57.0/src/novafabric/capture/spool_sink.py +86 -0
- novafabric-0.57.0/src/novafabric/cli/__init__.py +0 -0
- novafabric-0.57.0/src/novafabric/cli/aibom.py +210 -0
- novafabric-0.57.0/src/novafabric/cli/api_proxy.py +176 -0
- novafabric-0.57.0/src/novafabric/cli/approve.py +54 -0
- novafabric-0.57.0/src/novafabric/cli/asset.py +171 -0
- novafabric-0.57.0/src/novafabric/cli/assure.py +94 -0
- novafabric-0.57.0/src/novafabric/cli/audit.py +414 -0
- novafabric-0.57.0/src/novafabric/cli/capsule.py +80 -0
- novafabric-0.57.0/src/novafabric/cli/capture.py +309 -0
- novafabric-0.57.0/src/novafabric/cli/capture_level.py +57 -0
- novafabric-0.57.0/src/novafabric/cli/classify.py +296 -0
- novafabric-0.57.0/src/novafabric/cli/collector.py +101 -0
- novafabric-0.57.0/src/novafabric/cli/cost.py +110 -0
- novafabric-0.57.0/src/novafabric/cli/daemon.py +91 -0
- novafabric-0.57.0/src/novafabric/cli/diagnose.py +114 -0
- novafabric-0.57.0/src/novafabric/cli/diff.py +131 -0
- novafabric-0.57.0/src/novafabric/cli/doctor.py +134 -0
- novafabric-0.57.0/src/novafabric/cli/energy.py +121 -0
- novafabric-0.57.0/src/novafabric/cli/erasure.py +54 -0
- novafabric-0.57.0/src/novafabric/cli/euaiact.py +170 -0
- novafabric-0.57.0/src/novafabric/cli/eval_compare.py +123 -0
- novafabric-0.57.0/src/novafabric/cli/eval_run.py +213 -0
- novafabric-0.57.0/src/novafabric/cli/evidence.py +333 -0
- novafabric-0.57.0/src/novafabric/cli/export_c2pa.py +62 -0
- novafabric-0.57.0/src/novafabric/cli/export_evidence.py +767 -0
- novafabric-0.57.0/src/novafabric/cli/export_examiner.py +265 -0
- novafabric-0.57.0/src/novafabric/cli/export_rocrate.py +49 -0
- novafabric-0.57.0/src/novafabric/cli/export_system_card.py +99 -0
- novafabric-0.57.0/src/novafabric/cli/hold.py +163 -0
- novafabric-0.57.0/src/novafabric/cli/incident.py +233 -0
- novafabric-0.57.0/src/novafabric/cli/ingest_capsule.py +157 -0
- novafabric-0.57.0/src/novafabric/cli/init_.py +89 -0
- novafabric-0.57.0/src/novafabric/cli/inspect_.py +49 -0
- novafabric-0.57.0/src/novafabric/cli/kg.py +873 -0
- novafabric-0.57.0/src/novafabric/cli/ledger.py +235 -0
- novafabric-0.57.0/src/novafabric/cli/lineage.py +451 -0
- novafabric-0.57.0/src/novafabric/cli/lineage_migrate.py +256 -0
- novafabric-0.57.0/src/novafabric/cli/list_.py +106 -0
- novafabric-0.57.0/src/novafabric/cli/login.py +274 -0
- novafabric-0.57.0/src/novafabric/cli/main.py +325 -0
- novafabric-0.57.0/src/novafabric/cli/mcp_.py +143 -0
- novafabric-0.57.0/src/novafabric/cli/mcp_proxy.py +199 -0
- novafabric-0.57.0/src/novafabric/cli/migrate.py +190 -0
- novafabric-0.57.0/src/novafabric/cli/migrate_capsule.py +79 -0
- novafabric-0.57.0/src/novafabric/cli/migrate_schema.py +346 -0
- novafabric-0.57.0/src/novafabric/cli/pii_erase.py +184 -0
- novafabric-0.57.0/src/novafabric/cli/policy.py +272 -0
- novafabric-0.57.0/src/novafabric/cli/promote.py +186 -0
- novafabric-0.57.0/src/novafabric/cli/rebuild.py +105 -0
- novafabric-0.57.0/src/novafabric/cli/redact.py +378 -0
- novafabric-0.57.0/src/novafabric/cli/register.py +51 -0
- novafabric-0.57.0/src/novafabric/cli/replay.py +142 -0
- novafabric-0.57.0/src/novafabric/cli/report.py +47 -0
- novafabric-0.57.0/src/novafabric/cli/rollback.py +109 -0
- novafabric-0.57.0/src/novafabric/cli/safety_case.py +177 -0
- novafabric-0.57.0/src/novafabric/cli/scan_secrets.py +125 -0
- novafabric-0.57.0/src/novafabric/cli/schema.py +26 -0
- novafabric-0.57.0/src/novafabric/cli/seal_propose.py +775 -0
- novafabric-0.57.0/src/novafabric/cli/serve.py +274 -0
- novafabric-0.57.0/src/novafabric/cli/server.py +402 -0
- novafabric-0.57.0/src/novafabric/cli/storage_scale.py +72 -0
- novafabric-0.57.0/src/novafabric/cli/suggest_register.py +235 -0
- novafabric-0.57.0/src/novafabric/cli/unregister.py +93 -0
- novafabric-0.57.0/src/novafabric/cli/validate.py +166 -0
- novafabric-0.57.0/src/novafabric/cli/verify.py +314 -0
- novafabric-0.57.0/src/novafabric/collector_app/__init__.py +15 -0
- novafabric-0.57.0/src/novafabric/collector_app/app.py +160 -0
- novafabric-0.57.0/src/novafabric/collector_cffi/__init__.py +1 -0
- novafabric-0.57.0/src/novafabric/collector_cffi/spool.py +423 -0
- novafabric-0.57.0/src/novafabric/compliance/__init__.py +29 -0
- novafabric-0.57.0/src/novafabric/compliance/audit/__init__.py +30 -0
- novafabric-0.57.0/src/novafabric/compliance/audit/engine.py +302 -0
- novafabric-0.57.0/src/novafabric/compliance/audit/loader.py +110 -0
- novafabric-0.57.0/src/novafabric/compliance/audit/models.py +128 -0
- novafabric-0.57.0/src/novafabric/compliance/audit/profiles/eu-ai-act-high-risk.yaml +111 -0
- novafabric-0.57.0/src/novafabric/compliance/audit/profiles/gdpr.yaml +88 -0
- novafabric-0.57.0/src/novafabric/compliance/audit/profiles/iso42001.yaml +106 -0
- novafabric-0.57.0/src/novafabric/compliance/audit/profiles/nist-ai-rmf.yaml +136 -0
- novafabric-0.57.0/src/novafabric/compliance/audit/profiles/scientific-reproducibility.yaml +97 -0
- novafabric-0.57.0/src/novafabric/compliance/audit/profiles/soc2-type2.yaml +95 -0
- novafabric-0.57.0/src/novafabric/compliance/euaiact.py +222 -0
- novafabric-0.57.0/src/novafabric/compliance/export/__init__.py +49 -0
- novafabric-0.57.0/src/novafabric/compliance/export/aibom.py +278 -0
- novafabric-0.57.0/src/novafabric/compliance/export/annex_iv.py +211 -0
- novafabric-0.57.0/src/novafabric/compliance/export/annex_iv_mapping.yaml +193 -0
- novafabric-0.57.0/src/novafabric/compliance/export/examiner.py +621 -0
- novafabric-0.57.0/src/novafabric/compliance/export/gdpr_ropa.py +266 -0
- novafabric-0.57.0/src/novafabric/compliance/export/hipaa_safe_harbor.py +482 -0
- novafabric-0.57.0/src/novafabric/compliance/export/models.py +237 -0
- novafabric-0.57.0/src/novafabric/compliance/export/nis2.py +284 -0
- novafabric-0.57.0/src/novafabric/compliance/export/nist_rmf.py +428 -0
- novafabric-0.57.0/src/novafabric/compliance/export/prov_json.py +216 -0
- novafabric-0.57.0/src/novafabric/compliance/export/renderer.py +209 -0
- novafabric-0.57.0/src/novafabric/compliance/export/ro_crate.py +177 -0
- novafabric-0.57.0/src/novafabric/compliance/export/safety_case.py +264 -0
- novafabric-0.57.0/src/novafabric/compliance/incident/__init__.py +45 -0
- novafabric-0.57.0/src/novafabric/compliance/incident/aim_export.py +117 -0
- novafabric-0.57.0/src/novafabric/compliance/incident/clock.py +130 -0
- novafabric-0.57.0/src/novafabric/compliance/incident/models.py +178 -0
- novafabric-0.57.0/src/novafabric/compliance/incident/store.py +178 -0
- novafabric-0.57.0/src/novafabric/compliance/pii/__init__.py +46 -0
- novafabric-0.57.0/src/novafabric/compliance/pii/detector.py +207 -0
- novafabric-0.57.0/src/novafabric/compliance/pii/gate.py +305 -0
- novafabric-0.57.0/src/novafabric/compliance/pii/index.py +152 -0
- novafabric-0.57.0/src/novafabric/compliance/pii/manifest.py +88 -0
- novafabric-0.57.0/src/novafabric/compliance/system_card.py +130 -0
- novafabric-0.57.0/src/novafabric/compliance/tool_permission/__init__.py +24 -0
- novafabric-0.57.0/src/novafabric/compliance/tool_permission/index.py +160 -0
- novafabric-0.57.0/src/novafabric/compliance/tool_permission/models.py +143 -0
- novafabric-0.57.0/src/novafabric/cost/__init__.py +0 -0
- novafabric-0.57.0/src/novafabric/cost/clickhouse_store.py +367 -0
- novafabric-0.57.0/src/novafabric/cost/interceptor.py +133 -0
- novafabric-0.57.0/src/novafabric/daemon/__init__.py +9 -0
- novafabric-0.57.0/src/novafabric/daemon/client.py +126 -0
- novafabric-0.57.0/src/novafabric/daemon/protocol.py +63 -0
- novafabric-0.57.0/src/novafabric/daemon/server.py +141 -0
- novafabric-0.57.0/src/novafabric/daemon/worker.py +112 -0
- novafabric-0.57.0/src/novafabric/diagnose/__init__.py +25 -0
- novafabric-0.57.0/src/novafabric/diagnose/attribution.py +416 -0
- novafabric-0.57.0/src/novafabric/diff/__init__.py +6 -0
- novafabric-0.57.0/src/novafabric/diff/_align.py +77 -0
- novafabric-0.57.0/src/novafabric/diff/_engine.py +174 -0
- novafabric-0.57.0/src/novafabric/diff/_format.py +100 -0
- novafabric-0.57.0/src/novafabric/diff/_report.py +74 -0
- novafabric-0.57.0/src/novafabric/energy/__init__.py +49 -0
- novafabric-0.57.0/src/novafabric/energy/_attribution.py +323 -0
- novafabric-0.57.0/src/novafabric/energy/_conservation.py +119 -0
- novafabric-0.57.0/src/novafabric/energy/_readers.py +167 -0
- novafabric-0.57.0/src/novafabric/energy/_receipt.py +359 -0
- novafabric-0.57.0/src/novafabric/energy/_sacct.py +86 -0
- novafabric-0.57.0/src/novafabric/energy/_sampler.py +165 -0
- novafabric-0.57.0/src/novafabric/energy/_seal.py +53 -0
- novafabric-0.57.0/src/novafabric/envelope/__init__.py +26 -0
- novafabric-0.57.0/src/novafabric/envelope/cloudevents.py +186 -0
- novafabric-0.57.0/src/novafabric/envelope/models.py +181 -0
- novafabric-0.57.0/src/novafabric/envelope/validator.py +65 -0
- novafabric-0.57.0/src/novafabric/eval/__init__.py +0 -0
- novafabric-0.57.0/src/novafabric/eval/runner.py +119 -0
- novafabric-0.57.0/src/novafabric/eval/significance.py +112 -0
- novafabric-0.57.0/src/novafabric/evals/__init__.py +19 -0
- novafabric-0.57.0/src/novafabric/evals/_loader.py +38 -0
- novafabric-0.57.0/src/novafabric/evals/_stats.py +180 -0
- novafabric-0.57.0/src/novafabric/evals/adapter.py +45 -0
- novafabric-0.57.0/src/novafabric/evals/exceptions.py +10 -0
- novafabric-0.57.0/src/novafabric/evals/result.py +60 -0
- novafabric-0.57.0/src/novafabric/evals/suites/__init__.py +0 -0
- novafabric-0.57.0/src/novafabric/evals/suites/agent_bench.py +115 -0
- novafabric-0.57.0/src/novafabric/evals/suites/gaia.py +114 -0
- novafabric-0.57.0/src/novafabric/evals/suites/mmlu.py +109 -0
- novafabric-0.57.0/src/novafabric/evals/suites/smoke.py +86 -0
- novafabric-0.57.0/src/novafabric/evals/suites/swe_bench.py +115 -0
- novafabric-0.57.0/src/novafabric/evals/suites/truthful_qa.py +109 -0
- novafabric-0.57.0/src/novafabric/evidence/__init__.py +28 -0
- novafabric-0.57.0/src/novafabric/evidence/admissibility.py +243 -0
- novafabric-0.57.0/src/novafabric/evidence/binding.py +135 -0
- novafabric-0.57.0/src/novafabric/evidence/bundle.py +447 -0
- novafabric-0.57.0/src/novafabric/evidence/c2pa_exporter.py +233 -0
- novafabric-0.57.0/src/novafabric/evidence/completeness.py +176 -0
- novafabric-0.57.0/src/novafabric/evidence/intoto.py +80 -0
- novafabric-0.57.0/src/novafabric/evidence/merkle.py +46 -0
- novafabric-0.57.0/src/novafabric/evidence/reperformance.py +110 -0
- novafabric-0.57.0/src/novafabric/evidence/replay_attestation.py +206 -0
- novafabric-0.57.0/src/novafabric/evidence/signing.py +73 -0
- novafabric-0.57.0/src/novafabric/evidence_fabric/__init__.py +38 -0
- novafabric-0.57.0/src/novafabric/evidence_fabric/avro_serializer.py +129 -0
- novafabric-0.57.0/src/novafabric/evidence_fabric/clickhouse_accumulator.py +267 -0
- novafabric-0.57.0/src/novafabric/evidence_fabric/duckdb_accumulator.py +358 -0
- novafabric-0.57.0/src/novafabric/evidence_fabric/nats_consumer.py +325 -0
- novafabric-0.57.0/src/novafabric/evidence_fabric/pii_table.py +288 -0
- novafabric-0.57.0/src/novafabric/evidence_fabric/queue_consumer.py +205 -0
- novafabric-0.57.0/src/novafabric/evidence_fabric/rebuild.py +203 -0
- novafabric-0.57.0/src/novafabric/evidence_fabric/schemas/evidence_event.avsc +42 -0
- novafabric-0.57.0/src/novafabric/governance/__init__.py +19 -0
- novafabric-0.57.0/src/novafabric/governance/classifier.py +330 -0
- novafabric-0.57.0/src/novafabric/governance/models.py +60 -0
- novafabric-0.57.0/src/novafabric/governance/vocabularies/eu-ai-act/2024.1.0.yaml +131 -0
- novafabric-0.57.0/src/novafabric/governance/vocabularies/nist-ai-rmf/1.0.0.yaml +42 -0
- novafabric-0.57.0/src/novafabric/governance/vocabularies/omb-m24-10/1.0.0.yaml +43 -0
- novafabric-0.57.0/src/novafabric/judge/__init__.py +21 -0
- novafabric-0.57.0/src/novafabric/judge/_embedding_judge.py +126 -0
- novafabric-0.57.0/src/novafabric/judge/_kappa.py +91 -0
- novafabric-0.57.0/src/novafabric/judge/_llm_judge.py +200 -0
- novafabric-0.57.0/src/novafabric/judge/_numerical_judge.py +113 -0
- novafabric-0.57.0/src/novafabric/judge/framework.py +129 -0
- novafabric-0.57.0/src/novafabric/judge/models.py +30 -0
- novafabric-0.57.0/src/novafabric/judge/opa_adapter.py +31 -0
- novafabric-0.57.0/src/novafabric/judge/policies/judge_gate.rego +22 -0
- novafabric-0.57.0/src/novafabric/kg/__init__.py +10 -0
- novafabric-0.57.0/src/novafabric/kg/alias_resolver.py +295 -0
- novafabric-0.57.0/src/novafabric/kg/consumer.py +172 -0
- novafabric-0.57.0/src/novafabric/kg/crdt.py +247 -0
- novafabric-0.57.0/src/novafabric/kg/entity_normaliser.py +126 -0
- novafabric-0.57.0/src/novafabric/kg/ingest_tracker.py +84 -0
- novafabric-0.57.0/src/novafabric/kg/pipeline.py +410 -0
- novafabric-0.57.0/src/novafabric/kg/review_queue.py +222 -0
- novafabric-0.57.0/src/novafabric/kg/store.py +672 -0
- novafabric-0.57.0/src/novafabric/lineage/__init__.py +25 -0
- novafabric-0.57.0/src/novafabric/lineage/_facets.py +216 -0
- novafabric-0.57.0/src/novafabric/lineage/_importer.py +186 -0
- novafabric-0.57.0/src/novafabric/lineage/_index.py +251 -0
- novafabric-0.57.0/src/novafabric/lineage/_ol_transport.py +69 -0
- novafabric-0.57.0/src/novafabric/lineage/_openlineage.py +176 -0
- novafabric-0.57.0/src/novafabric/lineage/_store.py +337 -0
- novafabric-0.57.0/src/novafabric/lineage/_types.py +74 -0
- novafabric-0.57.0/src/novafabric/lineage/_writer.py +161 -0
- novafabric-0.57.0/src/novafabric/lineage/backends/__init__.py +24 -0
- novafabric-0.57.0/src/novafabric/lineage/backends/age.py +44 -0
- novafabric-0.57.0/src/novafabric/lineage/backends/janusgraph.py +202 -0
- novafabric-0.57.0/src/novafabric/lineage/backends/janusgraph_snb.py +243 -0
- novafabric-0.57.0/src/novafabric/lineage/backends/kuzu.py +138 -0
- novafabric-0.57.0/src/novafabric/lineage/backends/postgres.py +31 -0
- novafabric-0.57.0/src/novafabric/lineage/backends/sqlite.py +67 -0
- novafabric-0.57.0/src/novafabric/lineage/consumer.py +266 -0
- novafabric-0.57.0/src/novafabric/lineage/federation/__init__.py +3 -0
- novafabric-0.57.0/src/novafabric/lineage/federation/coordinator.py +144 -0
- novafabric-0.57.0/src/novafabric/lineage/federation/shard_query.py +68 -0
- novafabric-0.57.0/src/novafabric/lineage/federation/summary.py +87 -0
- novafabric-0.57.0/src/novafabric/lineage/federation/tokens.py +39 -0
- novafabric-0.57.0/src/novafabric/lineage/migration/__init__.py +1 -0
- novafabric-0.57.0/src/novafabric/lineage/migration/kit.py +344 -0
- novafabric-0.57.0/src/novafabric/lineage/migration/parquet_replay.py +67 -0
- novafabric-0.57.0/src/novafabric/lineage/migration/validate.py +57 -0
- novafabric-0.57.0/src/novafabric/lineage/profiles/__init__.py +1 -0
- novafabric-0.57.0/src/novafabric/lineage/profiles/janusgraph_minimal.py +71 -0
- novafabric-0.57.0/src/novafabric/lineage/profiles/kuzudb_vertical.py +37 -0
- novafabric-0.57.0/src/novafabric/lineage/store.py +31 -0
- novafabric-0.57.0/src/novafabric/mcp_scanner/__init__.py +2 -0
- novafabric-0.57.0/src/novafabric/mcp_scanner/models.py +82 -0
- novafabric-0.57.0/src/novafabric/mcp_scanner/risk_rules.py +164 -0
- novafabric-0.57.0/src/novafabric/mcp_scanner/scanner.py +47 -0
- novafabric-0.57.0/src/novafabric/metadata_store/__init__.py +28 -0
- novafabric-0.57.0/src/novafabric/metadata_store/cli.py +486 -0
- novafabric-0.57.0/src/novafabric/metadata_store/factory.py +42 -0
- novafabric-0.57.0/src/novafabric/metadata_store/interface.py +85 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/__init__.py +9 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/postgres/__init__.py +1 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/postgres/alembic.ini +38 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/postgres/env.py +46 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/postgres/script.py.mako +22 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/postgres/versions/__init__.py +1 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/postgres/versions/v001_init.py +158 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/postgres/versions/v002_partition_ddl.py +293 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/postgres/versions/v003_kg_tables.py +76 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/sqlite/__init__.py +1 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/sqlite/alembic.ini +37 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/sqlite/env.py +32 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/sqlite/script.py.mako +22 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/sqlite/versions/__init__.py +1 -0
- novafabric-0.57.0/src/novafabric/metadata_store/migrations/sqlite/versions/v001_init.py +72 -0
- novafabric-0.57.0/src/novafabric/metadata_store/postgres.py +304 -0
- novafabric-0.57.0/src/novafabric/metadata_store/rls.py +64 -0
- novafabric-0.57.0/src/novafabric/metadata_store/sqlite.py +249 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/__init__.py +60 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/backend_router.py +155 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/cas.py +118 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/checkpoint.py +184 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/client.py +492 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/exceptions.py +135 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/local_wal.py +159 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/manifest_chain.py +309 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/models.py +161 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/novaseal_client.py +125 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/rebuild.py +271 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/schemas/checkpoint_v1.schema.json +55 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/schemas/manifest_commit_v1.schema.json +83 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/worm/__init__.py +18 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/worm/azure.py +181 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/worm/base.py +149 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/worm/ceph.py +48 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/worm/gcs.py +235 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/worm/minio.py +51 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/worm/s3.py +162 -0
- novafabric-0.57.0/src/novafabric/object_capsule_store/zstd_dict.py +194 -0
- novafabric-0.57.0/src/novafabric/pii/__init__.py +17 -0
- novafabric-0.57.0/src/novafabric/pii/dek/__init__.py +34 -0
- novafabric-0.57.0/src/novafabric/pii/dek/store.py +369 -0
- novafabric-0.57.0/src/novafabric/policies/__init__.py +0 -0
- novafabric-0.57.0/src/novafabric/policies/capture_level.py +101 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/__init__.py +0 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/__init__.py +0 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/dataset_license.rego +10 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/dataset_license_test.rego +17 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/evidence_export.rego +8 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/evidence_export_test.rego +15 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/maker_checker_gate.rego +18 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/promote_gate.rego +32 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/promote_gate_test.rego +80 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/regression_gate.rego +16 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/regression_gate_test.rego +52 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/replay_attestation.rego +58 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/replay_attestation_test.rego +85 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/replay_mutating.rego +7 -0
- novafabric-0.57.0/src/novafabric/policies/novafabric/defaults/replay_mutating_test.rego +11 -0
- novafabric-0.57.0/src/novafabric/policy/__init__.py +40 -0
- novafabric-0.57.0/src/novafabric/policy/_engine.py +129 -0
- novafabric-0.57.0/src/novafabric/policy/_models.py +50 -0
- novafabric-0.57.0/src/novafabric/policy/_noop_engine.py +14 -0
- novafabric-0.57.0/src/novafabric/policy/_opa_engine.py +264 -0
- novafabric-0.57.0/src/novafabric/promote/__init__.py +5 -0
- novafabric-0.57.0/src/novafabric/promote/bundle_store.py +156 -0
- novafabric-0.57.0/src/novafabric/promote/bypass_notify.py +163 -0
- novafabric-0.57.0/src/novafabric/promote/exceptions.py +19 -0
- novafabric-0.57.0/src/novafabric/promote/policy_store.py +125 -0
- novafabric-0.57.0/src/novafabric/promote/predicates.py +344 -0
- novafabric-0.57.0/src/novafabric/promote/rekor_client.py +78 -0
- novafabric-0.57.0/src/novafabric/promote/verifier.py +196 -0
- novafabric-0.57.0/src/novafabric/proxy/__init__.py +10 -0
- novafabric-0.57.0/src/novafabric/proxy/api_proxy.py +670 -0
- novafabric-0.57.0/src/novafabric/proxy/mcp_proxy.py +674 -0
- novafabric-0.57.0/src/novafabric/registry/__init__.py +0 -0
- novafabric-0.57.0/src/novafabric/registry/runs_cache.py +191 -0
- novafabric-0.57.0/src/novafabric/registry/service.py +1229 -0
- novafabric-0.57.0/src/novafabric/registry/store.py +90 -0
- novafabric-0.57.0/src/novafabric/registry/suggestion_engine.py +396 -0
- novafabric-0.57.0/src/novafabric/replay/__init__.py +6 -0
- novafabric-0.57.0/src/novafabric/replay/_dispatcher.py +163 -0
- novafabric-0.57.0/src/novafabric/replay/_engine.py +514 -0
- novafabric-0.57.0/src/novafabric/replay/_env_check.py +79 -0
- novafabric-0.57.0/src/novafabric/replay/_flags.py +59 -0
- novafabric-0.57.0/src/novafabric/replay/_intervention.py +285 -0
- novafabric-0.57.0/src/novafabric/replay/_policy.py +102 -0
- novafabric-0.57.0/src/novafabric/replay/_result.py +73 -0
- novafabric-0.57.0/src/novafabric/report/__init__.py +0 -0
- novafabric-0.57.0/src/novafabric/report/generator.py +36 -0
- novafabric-0.57.0/src/novafabric/runners/__init__.py +50 -0
- novafabric-0.57.0/src/novafabric/runners/_docker.py +303 -0
- novafabric-0.57.0/src/novafabric/runners/_kubernetes.py +344 -0
- novafabric-0.57.0/src/novafabric/runners/_local.py +92 -0
- novafabric-0.57.0/src/novafabric/runners/_lsf.py +414 -0
- novafabric-0.57.0/src/novafabric/runners/_pbs.py +399 -0
- novafabric-0.57.0/src/novafabric/runners/_registry.py +50 -0
- novafabric-0.57.0/src/novafabric/runners/_sitecustomize.py +43 -0
- novafabric-0.57.0/src/novafabric/runners/_slurm.py +450 -0
- novafabric-0.57.0/src/novafabric/runners/_slurm_energy.py +98 -0
- novafabric-0.57.0/src/novafabric/runners/_types.py +114 -0
- novafabric-0.57.0/src/novafabric/safetycase/__init__.py +55 -0
- novafabric-0.57.0/src/novafabric/safetycase/compiler.py +531 -0
- novafabric-0.57.0/src/novafabric/safetycase/models.py +337 -0
- novafabric-0.57.0/src/novafabric/safetycase/templates/clymer-generic-v0.yaml +75 -0
- novafabric-0.57.0/src/novafabric/safetycase/templates/eu-ai-act-annex-iv-v0.yaml +148 -0
- novafabric-0.57.0/src/novafabric/safetycase/templates/nist-ai-rmf-v0.yaml +78 -0
- novafabric-0.57.0/src/novafabric/safetycase/templates.py +153 -0
- novafabric-0.57.0/src/novafabric/safetycase/verifier.py +121 -0
- novafabric-0.57.0/src/novafabric/schemas/__init__.py +0 -0
- novafabric-0.57.0/src/novafabric/schemas/annex-iv-document.schema.json +82 -0
- novafabric-0.57.0/src/novafabric/schemas/diff-report.schema.json +91 -0
- novafabric-0.57.0/src/novafabric/schemas/energy-receipt.schema.json +262 -0
- novafabric-0.57.0/src/novafabric/schemas/environment.schema.json +558 -0
- novafabric-0.57.0/src/novafabric/schemas/event_schema.py +95 -0
- novafabric-0.57.0/src/novafabric/schemas/evidence-bundle.schema.json +381 -0
- novafabric-0.57.0/src/novafabric/schemas/ledger-checkpoint-v1.schema.json +233 -0
- novafabric-0.57.0/src/novafabric/schemas/lineage-edge.schema.json +97 -0
- novafabric-0.57.0/src/novafabric/schemas/model-call.schema.json +427 -0
- novafabric-0.57.0/src/novafabric/schemas/promote_approval_v1.json +46 -0
- novafabric-0.57.0/src/novafabric/schemas/promote_bypass_review_v1.json +41 -0
- novafabric-0.57.0/src/novafabric/schemas/promote_bypass_v1.json +55 -0
- novafabric-0.57.0/src/novafabric/schemas/promote_policy_v1.json +41 -0
- novafabric-0.57.0/src/novafabric/schemas/promote_proposal_v1.json +55 -0
- novafabric-0.57.0/src/novafabric/schemas/redaction-manifest.schema.json +61 -0
- novafabric-0.57.0/src/novafabric/schemas/replay-attestation.schema.json +254 -0
- novafabric-0.57.0/src/novafabric/schemas/replay-policy.schema.json +288 -0
- novafabric-0.57.0/src/novafabric/schemas/replay-result.schema.json +104 -0
- novafabric-0.57.0/src/novafabric/schemas/run-capsule.schema.json +433 -0
- novafabric-0.57.0/src/novafabric/schemas/safety-case.schema.json +366 -0
- novafabric-0.57.0/src/novafabric/schemas/secret-redaction.schema.json +374 -0
- novafabric-0.57.0/src/novafabric/schemas/tool-call.schema.json +334 -0
- novafabric-0.57.0/src/novafabric/schemas/tool-permission-event.schema.json +85 -0
- novafabric-0.57.0/src/novafabric/sdk/__init__.py +3 -0
- novafabric-0.57.0/src/novafabric/sdk/agent.py +164 -0
- novafabric-0.57.0/src/novafabric/serve/__init__.py +38 -0
- novafabric-0.57.0/src/novafabric/serve/app.py +7548 -0
- novafabric-0.57.0/src/novafabric/serve/audit.py +92 -0
- novafabric-0.57.0/src/novafabric/serve/auth.py +69 -0
- novafabric-0.57.0/src/novafabric/serve/capsule_loader.py +125 -0
- novafabric-0.57.0/src/novafabric/serve/capsule_watcher.py +261 -0
- novafabric-0.57.0/src/novafabric/serve/reports.py +478 -0
- novafabric-0.57.0/src/novafabric/serve/static/404.html +17 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/AdminTab.Cwlzwu2C.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/AuditTab.DgVv00wY.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/CapsuleInspector.CUub1Ctt.js +44 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/CapsuleInspector.C_iZJuaq.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/CaptureTab.C0XoOYTz.js +4 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/CommandsTab.gfCpXLyB.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/ComplianceTab.DIP14-4t.js +3 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/ConfirmDialog.DzAZENZA.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/CopyButton.DLhDSURe.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/CostTab.xHZeXV1o.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/DashboardApp.CJJA-kE8.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/DashboardApp.DyGMj2Zb.js +2 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/DataTable.Dn-cBjRw.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/DiffTab.qVXSEKuj.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/EmptyState.FanN6ruG.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/EvalTab.BNoOx2CZ.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/EvidenceTab.B6JOzMLi.js +3 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/EvidenceViewer.BFZddjUw.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/GovernanceTab.BZf0PLdP.js +7 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/HoldsTab.CwGpsYjT.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/HomeTab.DBFMS_kF.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/IncidentsTab.-rNLHINl.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/InfraTab.KX5WD01f.js +9 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/KGTab.BLIDPwsg.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/LineageGraph.BZV40eAE.css +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/LineageGraph.Chj_H_1J.js +7 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/LineageTab.C6KogqAh.js +2 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/OpsTab.CqFP7VM7.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/PolicyTab.ByhHT6g-.js +7 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/RegistryBrowser.2vlu_iDt.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/RegistryTab.CIrEoMJQ.js +8 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/ReplayViewer.pxZ4a8ed.js +6 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/ReportsTab.CqRKfKdW.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/RiskTab.BzzyCvXF.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/RunsTab.CpZNYbJy.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/SchemaTab.CauSlDGr.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/SealTab.3FeEUd1Z.js +5 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/Skeleton.CvthKQGp.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/SpineTab.0huHUCN3.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/StorageTab.Doz0aw_l.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/SuggestInput.Nd-6A0un.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/TabShell.DvdwPANj.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/TerminalReplay.CI4-gjwq.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/ThemeToggle.CRcKU7z7.js +3 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/api.BD50f89_.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/client.C03mjnE_.js +9 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/clsx.B-dksMZM.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/fixtures.q_89pNCY.js +86 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/global.BFt9I_02.css +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/index.0hVYzVNy.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/index.Bcm1Uarj.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/index.CUO2cybH.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/index.RamnY9-G.js +4 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2 +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2 +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2 +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/inter-greek-wght-normal.CkhJZR-_.woff2 +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2 +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2 +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2 +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/jetbrains-mono-cyrillic-400-normal.BEIGL1Tu.woff2 +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/jetbrains-mono-cyrillic-400-normal.ugxPyKxw.woff +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/jetbrains-mono-greek-400-normal.B9oWc5Lo.woff +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/jetbrains-mono-greek-400-normal.C190GLew.woff2 +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2 +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/jetbrains-mono-latin-ext-400-normal.Bc8Ftmh3.woff2 +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/jetbrains-mono-latin-ext-400-normal.fXTG6kC5.woff +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/jetbrains-mono-vietnamese-400-normal.CqNFfHCs.woff +0 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/jsx-runtime.u17CrQMm.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/runUtils.BhaFw2bI.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/useMutation.DqEsHly8.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/_astro/useUrlState.CYEQhzrM.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/concepts/index.html +55 -0
- novafabric-0.57.0/src/novafabric/serve/static/dashboard/index.html +15 -0
- novafabric-0.57.0/src/novafabric/serve/static/favicon.svg +7 -0
- novafabric-0.57.0/src/novafabric/serve/static/index.html +88 -0
- novafabric-0.57.0/src/novafabric/serve/static/install/index.html +31 -0
- novafabric-0.57.0/src/novafabric/serve/static/robots.txt +4 -0
- novafabric-0.57.0/src/novafabric/serve/static/showcase/capsule/index.html +87 -0
- novafabric-0.57.0/src/novafabric/serve/static/showcase/evidence/index.html +32 -0
- novafabric-0.57.0/src/novafabric/serve/static/showcase/lineage/index.html +37 -0
- novafabric-0.57.0/src/novafabric/serve/static/showcase/registry/index.html +35 -0
- novafabric-0.57.0/src/novafabric/serve/static/showcase/replay/index.html +32 -0
- novafabric-0.57.0/src/novafabric/serve/static/spec/index.html +21 -0
- novafabric-0.57.0/src/novafabric/serve/static/topology/assets/dist.esm-D-3Sw0kp.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/topology/assets/fa2-worker-CaYi_Inx.js +1 -0
- novafabric-0.57.0/src/novafabric/serve/static/topology/assets/index-3bK9xHDo.js +4634 -0
- novafabric-0.57.0/src/novafabric/serve/static/topology/index.html +16 -0
- novafabric-0.57.0/src/novafabric/serve/static/why/index.html +36 -0
- novafabric-0.57.0/src/novafabric/serve/topology/__init__.py +1 -0
- novafabric-0.57.0/src/novafabric/serve/topology/ads_encoder.py +181 -0
- novafabric-0.57.0/src/novafabric/serve/topology/cluster_store.py +228 -0
- novafabric-0.57.0/src/novafabric/serve/topology/delta_buffer.py +137 -0
- novafabric-0.57.0/src/novafabric/serve/topology/layout_pipeline_3d.py +144 -0
- novafabric-0.57.0/src/novafabric/serve/topology/router_tv5.py +116 -0
- novafabric-0.57.0/src/novafabric/serve/topology/snapshot_store_3d.py +167 -0
- novafabric-0.57.0/src/novafabric/serve/topology/topology_extractor.py +251 -0
- novafabric-0.57.0/src/novafabric/serve/topology/visualization/__init__.py +1 -0
- novafabric-0.57.0/src/novafabric/serve/topology/visualization/models.py +109 -0
- novafabric-0.57.0/src/novafabric/server/__init__.py +1 -0
- novafabric-0.57.0/src/novafabric/server/app.py +112 -0
- novafabric-0.57.0/src/novafabric/server/auth.py +228 -0
- novafabric-0.57.0/src/novafabric/server/config.py +73 -0
- novafabric-0.57.0/src/novafabric/server/deps.py +50 -0
- novafabric-0.57.0/src/novafabric/server/errors.py +108 -0
- novafabric-0.57.0/src/novafabric/server/offline_tokens.py +275 -0
- novafabric-0.57.0/src/novafabric/server/pagination.py +62 -0
- novafabric-0.57.0/src/novafabric/server/rbac.py +125 -0
- novafabric-0.57.0/src/novafabric/server/rbac_store.py +148 -0
- novafabric-0.57.0/src/novafabric/server/routes/__init__.py +1 -0
- novafabric-0.57.0/src/novafabric/server/routes/admin.py +30 -0
- novafabric-0.57.0/src/novafabric/server/routes/assets.py +208 -0
- novafabric-0.57.0/src/novafabric/server/routes/auth.py +203 -0
- novafabric-0.57.0/src/novafabric/server/routes/capsules.py +238 -0
- novafabric-0.57.0/src/novafabric/server/routes/evidence.py +189 -0
- novafabric-0.57.0/src/novafabric/server/routes/lineage.py +174 -0
- novafabric-0.57.0/src/novafabric/server/routes/replays.py +244 -0
- novafabric-0.57.0/src/novafabric/server/routes/roles.py +144 -0
- novafabric-0.57.0/src/novafabric/server/routes/seal.py +271 -0
- novafabric-0.57.0/src/novafabric/server/routes/suggestions.py +52 -0
- novafabric-0.57.0/src/novafabric/spec/__init__.py +29 -0
- novafabric-0.57.0/src/novafabric/spec/models.py +145 -0
- novafabric-0.57.0/src/novafabric/spec/validator.py +112 -0
- novafabric-0.57.0/src/novafabric/storage/__init__.py +62 -0
- novafabric-0.57.0/src/novafabric/storage/_azure_worm.py +58 -0
- novafabric-0.57.0/src/novafabric/storage/_base.py +18 -0
- novafabric-0.57.0/src/novafabric/storage/_gcs_worm.py +60 -0
- novafabric-0.57.0/src/novafabric/storage/_local_worm.py +109 -0
- novafabric-0.57.0/src/novafabric/storage/_migration.py +365 -0
- novafabric-0.57.0/src/novafabric/storage/_postgres.py +66 -0
- novafabric-0.57.0/src/novafabric/storage/_retention.py +69 -0
- novafabric-0.57.0/src/novafabric/storage/_s3_worm.py +77 -0
- novafabric-0.57.0/src/novafabric/storage/_sqlite.py +81 -0
- novafabric-0.57.0/src/novafabric/storage/dual_object_store.py +239 -0
- novafabric-0.57.0/src/novafabric/storage/nova_object_store.py +127 -0
- novafabric-0.57.0/src/novafabric/storage/worm.py +33 -0
- novafabric-0.57.0/src/novafabric/trust/_rfc3161.py +781 -0
- novafabric-0.57.0/src/novafabric/trust/keyring.py +73 -0
- novafabric-0.57.0/src/novafabric/trust/ledger/__init__.py +56 -0
- novafabric-0.57.0/src/novafabric/trust/ledger/_chain.py +242 -0
- novafabric-0.57.0/src/novafabric/trust/ledger/_checkpoint.py +243 -0
- novafabric-0.57.0/src/novafabric/trust/ledger/_verify.py +263 -0
- novafabric-0.57.0/src/novafabric/trust/novaseal/__init__.py +374 -0
- novafabric-0.57.0/src/novafabric/trust/novaseal/config.py +302 -0
- novafabric-0.57.0/src/novafabric/trust/novaseal/envelope.py +383 -0
- novafabric-0.57.0/src/novafabric/trust/novaseal/merkle.py +855 -0
- novafabric-0.57.0/src/novafabric/trust/novaseal/nonce_store.py +164 -0
- novafabric-0.57.0/src/novafabric/trust/novaseal/ratchet.py +281 -0
- novafabric-0.57.0/src/novafabric/trust/novaseal/signing_backend.py +238 -0
- novafabric-0.57.0/src/novafabric/trust/novaseal/sigstore_signer.py +339 -0
- novafabric-0.57.0/src/novafabric/trust/novaseal/timestamp.py +589 -0
- novafabric-0.57.0/src/novafabric/trust/novaseal/trust_chain.py +263 -0
- novafabric-0.57.0/tests/adapters/__init__.py +0 -0
- novafabric-0.57.0/tests/adapters/test_adapters.py +750 -0
- novafabric-0.57.0/tests/assure/__init__.py +0 -0
- novafabric-0.57.0/tests/assure/test_nova_assure.py +299 -0
- novafabric-0.57.0/tests/capsule/__init__.py +1 -0
- novafabric-0.57.0/tests/capsule/conftest.py +83 -0
- novafabric-0.57.0/tests/capsule/fixtures/__init__.py +1 -0
- novafabric-0.57.0/tests/capsule/fixtures/agent_sdk_four_edges.py +61 -0
- novafabric-0.57.0/tests/capsule/fixtures/pre_v020_lineage.jsonl +2 -0
- novafabric-0.57.0/tests/capsule/helpers.py +79 -0
- novafabric-0.57.0/tests/capsule/test_blast_radius.py +169 -0
- novafabric-0.57.0/tests/capsule/test_bq012_acceptance.py +656 -0
- novafabric-0.57.0/tests/capsule/test_cli.py +216 -0
- novafabric-0.57.0/tests/capsule/test_edge_typer.py +107 -0
- novafabric-0.57.0/tests/capsule/test_orphan.py +147 -0
- novafabric-0.57.0/tests/capsule/test_prov_roundtrip.py +91 -0
- novafabric-0.57.0/tests/capsule/test_schema.py +270 -0
- novafabric-0.57.0/tests/capsule/test_tree_assembler.py +151 -0
- novafabric-0.57.0/tests/capsule/test_ulid.py +109 -0
- novafabric-0.57.0/tests/capsule/test_validator.py +237 -0
- novafabric-0.57.0/tests/capsule/test_world_size.py +179 -0
- novafabric-0.57.0/tests/capsule/test_writer.py +199 -0
- novafabric-0.57.0/tests/capsule/test_writer_offline.py +109 -0
- novafabric-0.57.0/tests/capture/__init__.py +0 -0
- novafabric-0.57.0/tests/capture/test_c2pa_live_marking.py +128 -0
- novafabric-0.57.0/tests/capture/test_event_recorder.py +553 -0
- novafabric-0.57.0/tests/capture/test_fast_emit.py +381 -0
- novafabric-0.57.0/tests/capture/test_orchestrator_emit_spool.py +83 -0
- novafabric-0.57.0/tests/capture/test_spool_sink.py +91 -0
- novafabric-0.57.0/tests/cli/__init__.py +0 -0
- novafabric-0.57.0/tests/cli/test_approve_cmd.py +57 -0
- novafabric-0.57.0/tests/cli/test_capture_asset_status.py +329 -0
- novafabric-0.57.0/tests/cli/test_diagnose_cmd.py +86 -0
- novafabric-0.57.0/tests/cli/test_eval_cmd.py +95 -0
- novafabric-0.57.0/tests/cli/test_eval_compare_cmd.py +174 -0
- novafabric-0.57.0/tests/cli/test_eval_list_cmd.py +54 -0
- novafabric-0.57.0/tests/cli/test_export_hipaa_proof_cmd.py +153 -0
- novafabric-0.57.0/tests/cli/test_export_system_card_cmd.py +66 -0
- novafabric-0.57.0/tests/cli/test_init_cmd.py +137 -0
- novafabric-0.57.0/tests/cli/test_list_stale.py +387 -0
- novafabric-0.57.0/tests/cli/test_migrate_schema.py +270 -0
- novafabric-0.57.0/tests/cli/test_policy_list_cmd.py +119 -0
- novafabric-0.57.0/tests/cli/test_rebuild_cmd.py +97 -0
- novafabric-0.57.0/tests/cli/test_rollback.py +288 -0
- novafabric-0.57.0/tests/cli/test_storage_scale_cmd.py +76 -0
- novafabric-0.57.0/tests/cli/test_unregister.py +289 -0
- novafabric-0.57.0/tests/collector/__init__.py +1 -0
- novafabric-0.57.0/tests/collector/test_python_spool.py +169 -0
- novafabric-0.57.0/tests/collector_app/__init__.py +0 -0
- novafabric-0.57.0/tests/collector_app/test_collector_app.py +220 -0
- novafabric-0.57.0/tests/compliance/__init__.py +0 -0
- novafabric-0.57.0/tests/compliance/audit/__init__.py +0 -0
- novafabric-0.57.0/tests/compliance/audit/test_audit_engine.py +436 -0
- novafabric-0.57.0/tests/compliance/export/__init__.py +0 -0
- novafabric-0.57.0/tests/compliance/export/conftest.py +58 -0
- novafabric-0.57.0/tests/compliance/export/test_aibom.py +442 -0
- novafabric-0.57.0/tests/compliance/export/test_annex_iv.py +202 -0
- novafabric-0.57.0/tests/compliance/export/test_examiner.py +587 -0
- novafabric-0.57.0/tests/compliance/export/test_gdpr_ropa.py +159 -0
- novafabric-0.57.0/tests/compliance/export/test_hipaa_safe_harbor.py +356 -0
- novafabric-0.57.0/tests/compliance/export/test_nis2.py +205 -0
- novafabric-0.57.0/tests/compliance/export/test_nist_rmf.py +160 -0
- novafabric-0.57.0/tests/compliance/export/test_prov_json.py +102 -0
- novafabric-0.57.0/tests/compliance/export/test_renderer.py +103 -0
- novafabric-0.57.0/tests/compliance/export/test_ro_crate.py +89 -0
- novafabric-0.57.0/tests/compliance/incident/__init__.py +0 -0
- novafabric-0.57.0/tests/compliance/incident/test_deadline_clock.py +111 -0
- novafabric-0.57.0/tests/compliance/incident/test_incident_cli.py +121 -0
- novafabric-0.57.0/tests/compliance/incident/test_incident_models.py +97 -0
- novafabric-0.57.0/tests/compliance/incident/test_store_and_export.py +134 -0
- novafabric-0.57.0/tests/compliance/integration/__init__.py +0 -0
- novafabric-0.57.0/tests/compliance/integration/test_novaseal_tamper.py +194 -0
- novafabric-0.57.0/tests/compliance/pii/__init__.py +0 -0
- novafabric-0.57.0/tests/compliance/pii/conftest.py +30 -0
- novafabric-0.57.0/tests/compliance/pii/test_detector.py +96 -0
- novafabric-0.57.0/tests/compliance/pii/test_pii_gate.py +138 -0
- novafabric-0.57.0/tests/compliance/pii/test_pii_index.py +97 -0
- novafabric-0.57.0/tests/compliance/pii/test_pii_manifest.py +75 -0
- novafabric-0.57.0/tests/compliance/test_euaiact.py +208 -0
- novafabric-0.57.0/tests/compliance/tool_permission/__init__.py +0 -0
- novafabric-0.57.0/tests/compliance/tool_permission/conftest.py +64 -0
- novafabric-0.57.0/tests/compliance/tool_permission/test_tool_permission_capture.py +179 -0
- novafabric-0.57.0/tests/compliance/tool_permission/test_tool_permission_model.py +112 -0
- novafabric-0.57.0/tests/conftest.py +69 -0
- novafabric-0.57.0/tests/daemon/__init__.py +0 -0
- novafabric-0.57.0/tests/daemon/test_capture_daemon_flag.py +25 -0
- novafabric-0.57.0/tests/daemon/test_cli_daemon.py +27 -0
- novafabric-0.57.0/tests/daemon/test_client_fallback.py +17 -0
- novafabric-0.57.0/tests/daemon/test_client_protocol.py +166 -0
- novafabric-0.57.0/tests/daemon/test_fidelity_e2e.py +86 -0
- novafabric-0.57.0/tests/daemon/test_fork_safety_preflight.py +18 -0
- novafabric-0.57.0/tests/daemon/test_paths.py +13 -0
- novafabric-0.57.0/tests/daemon/test_protocol_fds.py +19 -0
- novafabric-0.57.0/tests/daemon/test_protocol_frames.py +21 -0
- novafabric-0.57.0/tests/daemon/test_server_handle.py +94 -0
- novafabric-0.57.0/tests/daemon/test_server_unit.py +44 -0
- novafabric-0.57.0/tests/daemon/test_worker_integration.py +55 -0
- novafabric-0.57.0/tests/daemon/test_worker_unit.py +61 -0
- novafabric-0.57.0/tests/energy/__init__.py +0 -0
- novafabric-0.57.0/tests/energy/test_attribution.py +79 -0
- novafabric-0.57.0/tests/energy/test_attribution_samples.py +261 -0
- novafabric-0.57.0/tests/energy/test_cli.py +93 -0
- novafabric-0.57.0/tests/energy/test_conservation.py +119 -0
- novafabric-0.57.0/tests/energy/test_readers.py +106 -0
- novafabric-0.57.0/tests/energy/test_receipt.py +203 -0
- novafabric-0.57.0/tests/energy/test_sacct.py +61 -0
- novafabric-0.57.0/tests/energy/test_sampler.py +163 -0
- novafabric-0.57.0/tests/energy/test_seal.py +57 -0
- novafabric-0.57.0/tests/energy/test_slurm_energy.py +179 -0
- novafabric-0.57.0/tests/envelope/__init__.py +0 -0
- novafabric-0.57.0/tests/envelope/test_backwards_compat.py +99 -0
- novafabric-0.57.0/tests/evals/__init__.py +0 -0
- novafabric-0.57.0/tests/evals/test_agent_bench_adapter.py +177 -0
- novafabric-0.57.0/tests/evals/test_gaia_adapter.py +177 -0
- novafabric-0.57.0/tests/evals/test_loader.py +115 -0
- novafabric-0.57.0/tests/evals/test_mmlu_adapter.py +178 -0
- novafabric-0.57.0/tests/evals/test_result_models.py +71 -0
- novafabric-0.57.0/tests/evals/test_smoke_adapter.py +100 -0
- novafabric-0.57.0/tests/evals/test_stats.py +243 -0
- novafabric-0.57.0/tests/evals/test_swe_bench_adapter.py +177 -0
- novafabric-0.57.0/tests/evals/test_truthful_qa_adapter.py +182 -0
- novafabric-0.57.0/tests/evidence/__init__.py +0 -0
- novafabric-0.57.0/tests/evidence/test_admissibility.py +238 -0
- novafabric-0.57.0/tests/evidence/test_bundle_energy_custody.py +110 -0
- novafabric-0.57.0/tests/evidence/test_c2pa_exporter.py +150 -0
- novafabric-0.57.0/tests/evidence/test_completeness_binding_reperformance.py +266 -0
- novafabric-0.57.0/tests/evidence/test_replay_attestation.py +261 -0
- novafabric-0.57.0/tests/evidence_fabric/__init__.py +0 -0
- novafabric-0.57.0/tests/evidence_fabric/test_avro_serializer.py +137 -0
- novafabric-0.57.0/tests/evidence_fabric/test_rebuild.py +155 -0
- novafabric-0.57.0/tests/fixtures/__init__.py +0 -0
- novafabric-0.57.0/tests/fixtures/broken_session_set.py +84 -0
- novafabric-0.57.0/tests/fixtures/duplicate_test.yaml +8 -0
- novafabric-0.57.0/tests/fixtures/eval_result_invalid.json +17 -0
- novafabric-0.57.0/tests/fixtures/eval_result_valid.json +29 -0
- novafabric-0.57.0/tests/fixtures/long_name_model.yaml +8 -0
- novafabric-0.57.0/tests/fixtures/missing_asset_type.yaml +6 -0
- novafabric-0.57.0/tests/fixtures/promote/generate_keys.py +69 -0
- novafabric-0.57.0/tests/fixtures/valid_agent.yaml +22 -0
- novafabric-0.57.0/tests/fixtures/valid_model.yaml +12 -0
- novafabric-0.57.0/tests/fixtures/valid_prompt.yaml +10 -0
- novafabric-0.57.0/tests/governance/__init__.py +0 -0
- novafabric-0.57.0/tests/governance/test_classifier.py +517 -0
- novafabric-0.57.0/tests/integration/__init__.py +0 -0
- novafabric-0.57.0/tests/integration/docker-compose.eval.yaml +34 -0
- novafabric-0.57.0/tests/integration/test_auth_integration.py +224 -0
- novafabric-0.57.0/tests/integration/test_migration_integration.py +190 -0
- novafabric-0.57.0/tests/integration/test_rbac_integration.py +382 -0
- novafabric-0.57.0/tests/integration/test_server_integration.py +370 -0
- novafabric-0.57.0/tests/integration/test_storage_integration.py +148 -0
- novafabric-0.57.0/tests/judge/__init__.py +0 -0
- novafabric-0.57.0/tests/judge/test_embedding_judge.py +116 -0
- novafabric-0.57.0/tests/judge/test_framework.py +177 -0
- novafabric-0.57.0/tests/judge/test_kappa.py +115 -0
- novafabric-0.57.0/tests/judge/test_llm_judge.py +167 -0
- novafabric-0.57.0/tests/judge/test_numerical_judge.py +108 -0
- novafabric-0.57.0/tests/judge/test_opa_adapter.py +128 -0
- novafabric-0.57.0/tests/kg/__init__.py +1 -0
- novafabric-0.57.0/tests/kg/test_alias_resolver.py +281 -0
- novafabric-0.57.0/tests/kg/test_consumer.py +190 -0
- novafabric-0.57.0/tests/kg/test_crdt_wal.py +163 -0
- novafabric-0.57.0/tests/kg/test_kg.py +1014 -0
- novafabric-0.57.0/tests/kg/test_kg_cli.py +305 -0
- novafabric-0.57.0/tests/kg/test_review_queue.py +261 -0
- novafabric-0.57.0/tests/ledger/__init__.py +0 -0
- novafabric-0.57.0/tests/ledger/test_chain.py +168 -0
- novafabric-0.57.0/tests/ledger/test_checkpoint.py +174 -0
- novafabric-0.57.0/tests/ledger/test_cli.py +170 -0
- novafabric-0.57.0/tests/ledger/test_verify.py +241 -0
- novafabric-0.57.0/tests/lineage/__init__.py +0 -0
- novafabric-0.57.0/tests/lineage/conftest.py +111 -0
- novafabric-0.57.0/tests/lineage/test_backends_age.py +27 -0
- novafabric-0.57.0/tests/lineage/test_backends_janusgraph.py +34 -0
- novafabric-0.57.0/tests/lineage/test_backends_kuzu.py +181 -0
- novafabric-0.57.0/tests/lineage/test_backends_postgres.py +35 -0
- novafabric-0.57.0/tests/lineage/test_backends_sqlite.py +134 -0
- novafabric-0.57.0/tests/lineage/test_federation_coordinator.py +264 -0
- novafabric-0.57.0/tests/lineage/test_federation_shard_local.py +248 -0
- novafabric-0.57.0/tests/lineage/test_federation_sovereignty.py +158 -0
- novafabric-0.57.0/tests/lineage/test_janusgraph.py +487 -0
- novafabric-0.57.0/tests/lineage/test_kuzu_scale_bench.py +88 -0
- novafabric-0.57.0/tests/lineage/test_migration_kit.py +436 -0
- novafabric-0.57.0/tests/lineage/test_migration_parquet.py +186 -0
- novafabric-0.57.0/tests/lineage/test_migration_validate.py +123 -0
- novafabric-0.57.0/tests/lineage/test_profiles.py +153 -0
- novafabric-0.57.0/tests/lineage/test_schemas.py +138 -0
- novafabric-0.57.0/tests/lineage/test_store_interface.py +152 -0
- novafabric-0.57.0/tests/mcp_scanner/__init__.py +0 -0
- novafabric-0.57.0/tests/mcp_scanner/test_mcp_scanner.py +273 -0
- novafabric-0.57.0/tests/metadata_store/__init__.py +0 -0
- novafabric-0.57.0/tests/metadata_store/conftest.py +35 -0
- novafabric-0.57.0/tests/metadata_store/test_alembic_dual_track.py +131 -0
- novafabric-0.57.0/tests/metadata_store/test_automigrate_modes.py +188 -0
- novafabric-0.57.0/tests/metadata_store/test_bl1_indexes.py +135 -0
- novafabric-0.57.0/tests/metadata_store/test_cross_tenant_isolation_pgbouncer.py +333 -0
- novafabric-0.57.0/tests/metadata_store/test_grep_constraints.py +39 -0
- novafabric-0.57.0/tests/metadata_store/test_interface_abc.py +133 -0
- novafabric-0.57.0/tests/metadata_store/test_migration_tool.py +197 -0
- novafabric-0.57.0/tests/metadata_store/test_partition_ddl.py +591 -0
- novafabric-0.57.0/tests/metadata_store/test_postgres_basic.py +118 -0
- novafabric-0.57.0/tests/metadata_store/test_rls_force.py +27 -0
- novafabric-0.57.0/tests/metadata_store/test_role_split.py +20 -0
- novafabric-0.57.0/tests/metadata_store/test_scale_migration.py +278 -0
- novafabric-0.57.0/tests/metadata_store/test_set_local_invariant.py +68 -0
- novafabric-0.57.0/tests/metadata_store/test_sqlite_dev_only.py +116 -0
- novafabric-0.57.0/tests/object_capsule_store/__init__.py +0 -0
- novafabric-0.57.0/tests/object_capsule_store/conftest.py +142 -0
- novafabric-0.57.0/tests/object_capsule_store/integration/__init__.py +0 -0
- novafabric-0.57.0/tests/object_capsule_store/integration/test_chain_concurrent_writers.py +76 -0
- novafabric-0.57.0/tests/object_capsule_store/integration/test_minio_end_to_end.py +35 -0
- novafabric-0.57.0/tests/object_capsule_store/integration/test_occ_backends.py +133 -0
- novafabric-0.57.0/tests/object_capsule_store/integration/test_rebuild_1m_replay_bench.py +52 -0
- novafabric-0.57.0/tests/object_capsule_store/test_backend_router.py +122 -0
- novafabric-0.57.0/tests/object_capsule_store/test_cas.py +140 -0
- novafabric-0.57.0/tests/object_capsule_store/test_chain_integrity.py +179 -0
- novafabric-0.57.0/tests/object_capsule_store/test_chain_verification.py +249 -0
- novafabric-0.57.0/tests/object_capsule_store/test_checkpoint.py +133 -0
- novafabric-0.57.0/tests/object_capsule_store/test_client_protocol.py +182 -0
- novafabric-0.57.0/tests/object_capsule_store/test_exceptions_and_novaseal.py +103 -0
- novafabric-0.57.0/tests/object_capsule_store/test_gcs_worm.py +348 -0
- novafabric-0.57.0/tests/object_capsule_store/test_manifest_chain.py +252 -0
- novafabric-0.57.0/tests/object_capsule_store/test_novaseal_wal.py +207 -0
- novafabric-0.57.0/tests/object_capsule_store/test_rebuild.py +83 -0
- novafabric-0.57.0/tests/object_capsule_store/test_reconcile_orphans.py +88 -0
- novafabric-0.57.0/tests/object_capsule_store/test_verify_capsule.py +67 -0
- novafabric-0.57.0/tests/object_capsule_store/test_worm_adapter.py +35 -0
- novafabric-0.57.0/tests/ocs/__init__.py +0 -0
- novafabric-0.57.0/tests/ocs/test_zstd_dict.py +343 -0
- novafabric-0.57.0/tests/pii/__init__.py +0 -0
- novafabric-0.57.0/tests/pii/test_dek_store.py +208 -0
- novafabric-0.57.0/tests/pii/test_pii_erase_cli.py +147 -0
- novafabric-0.57.0/tests/policy/__init__.py +0 -0
- novafabric-0.57.0/tests/policy/test_record_tool_permission.py +229 -0
- novafabric-0.57.0/tests/promote/__init__.py +0 -0
- novafabric-0.57.0/tests/promote/conftest.py +61 -0
- novafabric-0.57.0/tests/promote/test_bundle_store.py +55 -0
- novafabric-0.57.0/tests/promote/test_bypass_dispatch.py +290 -0
- novafabric-0.57.0/tests/promote/test_commands.py +410 -0
- novafabric-0.57.0/tests/promote/test_policy_store.py +97 -0
- novafabric-0.57.0/tests/promote/test_predicates.py +394 -0
- novafabric-0.57.0/tests/promote/test_verifier.py +463 -0
- novafabric-0.57.0/tests/replay/test_intervention.py +339 -0
- novafabric-0.57.0/tests/safetycase/__init__.py +0 -0
- novafabric-0.57.0/tests/safetycase/test_cli.py +188 -0
- novafabric-0.57.0/tests/safetycase/test_compiler.py +278 -0
- novafabric-0.57.0/tests/safetycase/test_compiler_resolvers.py +215 -0
- novafabric-0.57.0/tests/safetycase/test_models.py +321 -0
- novafabric-0.57.0/tests/safetycase/test_regulatory_templates.py +107 -0
- novafabric-0.57.0/tests/safetycase/test_renderers.py +344 -0
- novafabric-0.57.0/tests/safetycase/test_templates.py +66 -0
- novafabric-0.57.0/tests/safetycase/test_verifier.py +143 -0
- novafabric-0.57.0/tests/scale_architecture/__init__.py +0 -0
- novafabric-0.57.0/tests/scale_architecture/test_capture_level.py +132 -0
- novafabric-0.57.0/tests/scale_architecture/test_clickhouse_mv.py +134 -0
- novafabric-0.57.0/tests/scale_architecture/test_cost_interceptor.py +125 -0
- novafabric-0.57.0/tests/scale_architecture/test_cost_report_cli.py +212 -0
- novafabric-0.57.0/tests/scale_architecture/test_dual_object.py +146 -0
- novafabric-0.57.0/tests/scale_architecture/test_dual_object_store_s3.py +204 -0
- novafabric-0.57.0/tests/scale_architecture/test_evidence_fabric.py +802 -0
- novafabric-0.57.0/tests/scale_architecture/test_extended_span_taxonomy.py +230 -0
- novafabric-0.57.0/tests/scale_architecture/test_lineage_consumer.py +117 -0
- novafabric-0.57.0/tests/scale_architecture/test_lineage_consumer_bulk_copy.py +185 -0
- novafabric-0.57.0/tests/scale_architecture/test_lineage_consumer_nats.py +245 -0
- novafabric-0.57.0/tests/scale_architecture/test_nova_object_store.py +229 -0
- novafabric-0.57.0/tests/scale_architecture/test_schema.py +134 -0
- novafabric-0.57.0/tests/seal/__init__.py +0 -0
- novafabric-0.57.0/tests/seal/test_benchmark.py +127 -0
- novafabric-0.57.0/tests/seal/test_bypass.py +376 -0
- novafabric-0.57.0/tests/seal/test_cli_verify.py +147 -0
- novafabric-0.57.0/tests/seal/test_cloud_kms_backends.py +462 -0
- novafabric-0.57.0/tests/seal/test_config.py +175 -0
- novafabric-0.57.0/tests/seal/test_ed25519_verify.py +234 -0
- novafabric-0.57.0/tests/seal/test_envelope.py +326 -0
- novafabric-0.57.0/tests/seal/test_log_verify.py +124 -0
- novafabric-0.57.0/tests/seal/test_merkle.py +241 -0
- novafabric-0.57.0/tests/seal/test_novaseal.py +395 -0
- novafabric-0.57.0/tests/seal/test_postgres_merkle.py +307 -0
- novafabric-0.57.0/tests/seal/test_ratchet_and_consistency_proof.py +240 -0
- novafabric-0.57.0/tests/seal/test_rekor_client.py +126 -0
- novafabric-0.57.0/tests/seal/test_rfc3161_hardening.py +282 -0
- novafabric-0.57.0/tests/seal/test_signing_intent.py +286 -0
- novafabric-0.57.0/tests/seal/test_sigstore_signer.py +357 -0
- novafabric-0.57.0/tests/seal/test_subject_proof_seal.py +220 -0
- novafabric-0.57.0/tests/seal/test_timestamp.py +622 -0
- novafabric-0.57.0/tests/seal/test_timestamp_chain.py +433 -0
- novafabric-0.57.0/tests/serve/__init__.py +0 -0
- novafabric-0.57.0/tests/serve/test_coverage_campaign_v0501.py +496 -0
- novafabric-0.57.0/tests/serve/test_dashboard_cli_coverage.py +150 -0
- novafabric-0.57.0/tests/serve/test_dd2_collector.py +129 -0
- novafabric-0.57.0/tests/serve/test_dd7_storage.py +158 -0
- novafabric-0.57.0/tests/serve/test_endpoint_smoke.py +137 -0
- novafabric-0.57.0/tests/serve/test_health_extended.py +95 -0
- novafabric-0.57.0/tests/serve/test_kg_auto_ingest.py +319 -0
- novafabric-0.57.0/tests/serve/test_kg_entity_queue_api.py +216 -0
- novafabric-0.57.0/tests/serve/test_lineage_time_travel.py +124 -0
- novafabric-0.57.0/tests/serve/test_parent_child_capsule.py +108 -0
- novafabric-0.57.0/tests/serve/test_reports.py +124 -0
- novafabric-0.57.0/tests/serve/test_reports_populated.py +273 -0
- novafabric-0.57.0/tests/serve/test_spine_endpoints.py +87 -0
- novafabric-0.57.0/tests/serve/test_topology_auto_seed.py +194 -0
- novafabric-0.57.0/tests/serve/test_v018_dashboard_parity.py +307 -0
- novafabric-0.57.0/tests/serve/test_v019_cost_schema.py +186 -0
- novafabric-0.57.0/tests/serve/test_v019_run_utilities.py +293 -0
- novafabric-0.57.0/tests/serve/test_v026_ecosystem_parity.py +241 -0
- novafabric-0.57.0/tests/serve/test_v027_admin_completions.py +256 -0
- novafabric-0.57.0/tests/serve/test_v027_capsule_delete.py +240 -0
- novafabric-0.57.0/tests/serve/test_v027_lineage_eval.py +240 -0
- novafabric-0.57.0/tests/serve/test_v027_mcp_risk_report.py +128 -0
- novafabric-0.57.0/tests/serve/test_v027_registry_additions.py +184 -0
- novafabric-0.57.0/tests/serve/test_v027_seal_bypass.py +183 -0
- novafabric-0.57.0/tests/serve/test_v034_regulatory_exports.py +386 -0
- novafabric-0.57.0/tests/serve/test_v044_compliance_dashboard.py +186 -0
- novafabric-0.57.0/tests/serve/test_v044_seal_sigstore_dashboard.py +113 -0
- novafabric-0.57.0/tests/serve/test_v046_dashboard_parity.py +599 -0
- novafabric-0.57.0/tests/test_api_proxy.py +907 -0
- novafabric-0.57.0/tests/test_approve.py +265 -0
- novafabric-0.57.0/tests/test_asset_lifecycle.py +377 -0
- novafabric-0.57.0/tests/test_attribution.py +261 -0
- novafabric-0.57.0/tests/test_audit_fixes_2026_06.py +75 -0
- novafabric-0.57.0/tests/test_audit_log.py +73 -0
- novafabric-0.57.0/tests/test_benchmark_smoke.py +46 -0
- novafabric-0.57.0/tests/test_bl6_sse_stream.py +111 -0
- novafabric-0.57.0/tests/test_capsule_watcher.py +558 -0
- novafabric-0.57.0/tests/test_capture_body_adapters.py +401 -0
- novafabric-0.57.0/tests/test_capture_capsule.py +89 -0
- novafabric-0.57.0/tests/test_capture_env.py +119 -0
- novafabric-0.57.0/tests/test_capture_hooks.py +1547 -0
- novafabric-0.57.0/tests/test_capture_mcp_hook.py +230 -0
- novafabric-0.57.0/tests/test_capture_orchestrator.py +106 -0
- novafabric-0.57.0/tests/test_capture_otel_genai.py +224 -0
- novafabric-0.57.0/tests/test_capture_plugin_contract.py +274 -0
- novafabric-0.57.0/tests/test_capture_secrets.py +95 -0
- novafabric-0.57.0/tests/test_capture_ulid.py +42 -0
- novafabric-0.57.0/tests/test_capture_url_registry.py +140 -0
- novafabric-0.57.0/tests/test_cli.py +169 -0
- novafabric-0.57.0/tests/test_cli_api_proxy.py +123 -0
- novafabric-0.57.0/tests/test_cli_capture.py +55 -0
- novafabric-0.57.0/tests/test_cli_capture_runner_flags.py +104 -0
- novafabric-0.57.0/tests/test_cli_diff_capsule.py +96 -0
- novafabric-0.57.0/tests/test_cli_export_evidence.py +502 -0
- novafabric-0.57.0/tests/test_cli_lineage.py +99 -0
- novafabric-0.57.0/tests/test_cli_lineage_openlineage.py +93 -0
- novafabric-0.57.0/tests/test_cli_login.py +361 -0
- novafabric-0.57.0/tests/test_cli_mcp_proxy.py +153 -0
- novafabric-0.57.0/tests/test_cli_mcp_proxy_http.py +186 -0
- novafabric-0.57.0/tests/test_cli_redact.py +113 -0
- novafabric-0.57.0/tests/test_cli_replay.py +88 -0
- novafabric-0.57.0/tests/test_cli_run_validate.py +115 -0
- novafabric-0.57.0/tests/test_cli_scan_secrets.py +88 -0
- novafabric-0.57.0/tests/test_cli_version.py +35 -0
- novafabric-0.57.0/tests/test_cloud_worm.py +235 -0
- novafabric-0.57.0/tests/test_diff_align.py +80 -0
- novafabric-0.57.0/tests/test_diff_engine.py +269 -0
- novafabric-0.57.0/tests/test_differentiation_table.py +57 -0
- novafabric-0.57.0/tests/test_doctor_cmd.py +224 -0
- novafabric-0.57.0/tests/test_envelope_cloudevents.py +251 -0
- novafabric-0.57.0/tests/test_eval_result_schema.py +53 -0
- novafabric-0.57.0/tests/test_eval_runner.py +89 -0
- novafabric-0.57.0/tests/test_eval_significance.py +73 -0
- novafabric-0.57.0/tests/test_eval_version_pinning.py +102 -0
- novafabric-0.57.0/tests/test_event_envelope.py +511 -0
- novafabric-0.57.0/tests/test_example_azure_openai.py +34 -0
- novafabric-0.57.0/tests/test_example_langchain_agent.py +35 -0
- novafabric-0.57.0/tests/test_example_lineage_chain.py +78 -0
- novafabric-0.57.0/tests/test_example_minimal_agent.py +43 -0
- novafabric-0.57.0/tests/test_example_replay_and_diff.py +85 -0
- novafabric-0.57.0/tests/test_hold_cli.py +109 -0
- novafabric-0.57.0/tests/test_lineage_capture_integration.py +67 -0
- novafabric-0.57.0/tests/test_lineage_facets.py +260 -0
- novafabric-0.57.0/tests/test_lineage_importer.py +143 -0
- novafabric-0.57.0/tests/test_lineage_index.py +181 -0
- novafabric-0.57.0/tests/test_lineage_store.py +278 -0
- novafabric-0.57.0/tests/test_lineage_types.py +102 -0
- novafabric-0.57.0/tests/test_lineage_writer.py +190 -0
- novafabric-0.57.0/tests/test_local_worm.py +92 -0
- novafabric-0.57.0/tests/test_mcp_proxy.py +258 -0
- novafabric-0.57.0/tests/test_mcp_proxy_http.py +485 -0
- novafabric-0.57.0/tests/test_migrate_capsule.py +250 -0
- novafabric-0.57.0/tests/test_migration.py +728 -0
- novafabric-0.57.0/tests/test_oas_schema_v1.py +110 -0
- novafabric-0.57.0/tests/test_opa_engine.py +249 -0
- novafabric-0.57.0/tests/test_openlineage_emitter.py +170 -0
- novafabric-0.57.0/tests/test_openlineage_transport.py +136 -0
- novafabric-0.57.0/tests/test_policy_models.py +61 -0
- novafabric-0.57.0/tests/test_promote_policy_gate.py +366 -0
- novafabric-0.57.0/tests/test_promote_significance_gate.py +202 -0
- novafabric-0.57.0/tests/test_registry.py +246 -0
- novafabric-0.57.0/tests/test_regression_policy_gate.py +75 -0
- novafabric-0.57.0/tests/test_replay_dispatcher.py +121 -0
- novafabric-0.57.0/tests/test_replay_engine.py +142 -0
- novafabric-0.57.0/tests/test_replay_flags.py +85 -0
- novafabric-0.57.0/tests/test_replay_policy.py +72 -0
- novafabric-0.57.0/tests/test_report.py +212 -0
- novafabric-0.57.0/tests/test_reports_cache_path.py +124 -0
- novafabric-0.57.0/tests/test_retention_engine.py +94 -0
- novafabric-0.57.0/tests/test_runners_docker.py +504 -0
- novafabric-0.57.0/tests/test_runners_kubernetes.py +247 -0
- novafabric-0.57.0/tests/test_runners_local.py +139 -0
- novafabric-0.57.0/tests/test_runners_lsf.py +453 -0
- novafabric-0.57.0/tests/test_runners_pbs.py +353 -0
- novafabric-0.57.0/tests/test_runners_registry.py +67 -0
- novafabric-0.57.0/tests/test_runners_slurm.py +510 -0
- novafabric-0.57.0/tests/test_runs_cache.py +224 -0
- novafabric-0.57.0/tests/test_sdk.py +83 -0
- novafabric-0.57.0/tests/test_sdk_agent_capsule.py +86 -0
- novafabric-0.57.0/tests/test_serve_admin.py +218 -0
- novafabric-0.57.0/tests/test_serve_admin_roles.py +318 -0
- novafabric-0.57.0/tests/test_serve_app.py +1146 -0
- novafabric-0.57.0/tests/test_serve_asset_diff.py +216 -0
- novafabric-0.57.0/tests/test_serve_cli.py +37 -0
- novafabric-0.57.0/tests/test_serve_compliance.py +441 -0
- novafabric-0.57.0/tests/test_serve_eval_history.py +131 -0
- novafabric-0.57.0/tests/test_serve_evidence.py +405 -0
- novafabric-0.57.0/tests/test_serve_holds.py +138 -0
- novafabric-0.57.0/tests/test_serve_layer_b.py +338 -0
- novafabric-0.57.0/tests/test_serve_layer_b_more.py +498 -0
- novafabric-0.57.0/tests/test_serve_replay_semantic_exact.py +353 -0
- novafabric-0.57.0/tests/test_serve_rollback_approve.py +283 -0
- novafabric-0.57.0/tests/test_serve_seal.py +280 -0
- novafabric-0.57.0/tests/test_serve_smoke.py +81 -0
- novafabric-0.57.0/tests/test_serve_stats_cache.py +98 -0
- novafabric-0.57.0/tests/test_serve_thread_lifecycle.py +61 -0
- novafabric-0.57.0/tests/test_serve_units.py +247 -0
- novafabric-0.57.0/tests/test_serve_validate.py +200 -0
- novafabric-0.57.0/tests/test_server_auth.py +357 -0
- novafabric-0.57.0/tests/test_server_auth_routes.py +107 -0
- novafabric-0.57.0/tests/test_server_cli_commands.py +257 -0
- novafabric-0.57.0/tests/test_server_offline_tokens.py +228 -0
- novafabric-0.57.0/tests/test_server_rbac.py +447 -0
- novafabric-0.57.0/tests/test_server_rbac_store.py +183 -0
- novafabric-0.57.0/tests/test_server_routes.py +816 -0
- novafabric-0.57.0/tests/test_server_seal_routes.py +284 -0
- novafabric-0.57.0/tests/test_smoke_capture_validate.py +106 -0
- novafabric-0.57.0/tests/test_smoke_semconv_pipeline.py +160 -0
- novafabric-0.57.0/tests/test_sod_promote.py +323 -0
- novafabric-0.57.0/tests/test_spec_validator.py +243 -0
- novafabric-0.57.0/tests/test_storage_backend.py +342 -0
- novafabric-0.57.0/tests/test_suggestion_engine.py +892 -0
- novafabric-0.57.0/tests/test_system_card.py +151 -0
- novafabric-0.57.0/tests/test_topology_ads_encoder.py +198 -0
- novafabric-0.57.0/tests/test_topology_cluster_store.py +113 -0
- novafabric-0.57.0/tests/test_topology_delta_buffer.py +183 -0
- novafabric-0.57.0/tests/test_topology_extractor.py +195 -0
- novafabric-0.57.0/tests/test_topology_serve.py +290 -0
- novafabric-0.57.0/tests/trust/__init__.py +0 -0
- novafabric-0.57.0/tests/trust/test_rfc3161.py +504 -0
- novafabric-0.57.0/tests/tv5/__init__.py +1 -0
- novafabric-0.57.0/tests/tv5/test_layout_pipeline.py +116 -0
- novafabric-0.57.0/tests/tv5/test_router_tv5.py +119 -0
- novafabric-0.57.0/tests/tv5/test_snapshot_store.py +113 -0
- novafabric-0.57.0/tests/tv5/test_snapshot_store_3d_ttl.py +196 -0
- novafabric-0.57.0/tests/tv5/test_visualization_models.py +220 -0
- novafabric-0.57.0/uv.lock +5435 -0
- novafabric-0.57.0/web/.lighthouserc.json +38 -0
- novafabric-0.57.0/web/.nvmrc +1 -0
- novafabric-0.57.0/web/README.md +103 -0
- novafabric-0.57.0/web/astro.config.mjs +18 -0
- novafabric-0.57.0/web/package-lock.json +10536 -0
- novafabric-0.57.0/web/package.json +65 -0
- novafabric-0.57.0/web/playwright.config.ts +29 -0
- novafabric-0.57.0/web/public/favicon.svg +7 -0
- novafabric-0.57.0/web/public/llms.txt +43 -0
- novafabric-0.57.0/web/public/robots.txt +65 -0
- novafabric-0.57.0/web/scripts/build_showcase_fixture.py +582 -0
- novafabric-0.57.0/web/scripts/check-licenses.mjs +191 -0
- novafabric-0.57.0/web/scripts/copy-dashboard.mjs +49 -0
- novafabric-0.57.0/web/scripts/sign-evidence.mjs +90 -0
- novafabric-0.57.0/web/src/components/capsule/AgentSwimlane.tsx +329 -0
- novafabric-0.57.0/web/src/components/capsule/CapsuleInspector.tsx +732 -0
- novafabric-0.57.0/web/src/components/capsule/ConversationThread.tsx +415 -0
- novafabric-0.57.0/web/src/components/capsule/TraceView.tsx +107 -0
- novafabric-0.57.0/web/src/components/capsule/TraceWaterfall.tsx +414 -0
- novafabric-0.57.0/web/src/components/dashboard/AppearancePanel.tsx +185 -0
- novafabric-0.57.0/web/src/components/dashboard/ConfirmDialog.tsx +124 -0
- novafabric-0.57.0/web/src/components/dashboard/ConnectPanel.tsx +88 -0
- novafabric-0.57.0/web/src/components/dashboard/DashboardApp.tsx +427 -0
- novafabric-0.57.0/web/src/components/dashboard/EvalSparkline.tsx +58 -0
- novafabric-0.57.0/web/src/components/dashboard/Sidebar.tsx +346 -0
- novafabric-0.57.0/web/src/components/dashboard/commands/CommandBuilder.tsx +177 -0
- novafabric-0.57.0/web/src/components/dashboard/commands/CommandList.tsx +69 -0
- novafabric-0.57.0/web/src/components/dashboard/commands/commandRegistry.ts +955 -0
- novafabric-0.57.0/web/src/components/dashboard/helpers.tsx +56 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/AdminTab.tsx +1045 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/AuditTab.tsx +208 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/CaptureTab.tsx +259 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/CommandsTab.tsx +16 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/ComplianceTab.tsx +2523 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/CostTab.tsx +225 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/DiffTab.tsx +436 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/EvalTab.tsx +201 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/EvidenceTab.tsx +123 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/GovernanceTab.tsx +1009 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/HoldsTab.tsx +255 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/HomeTab.tsx +453 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/IncidentsTab.tsx +192 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/InfraTab.tsx +1089 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/KGTab.tsx +1086 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/LineageTab.tsx +750 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/OpsTab.tsx +80 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/PolicyTab.tsx +858 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/RegistryTab.tsx +1561 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/ReportsTab.tsx +330 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/RiskTab.tsx +149 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/RunsTab.tsx +2038 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/SchemaTab.tsx +146 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/SealTab.tsx +1251 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/SpineTab.tsx +230 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/StorageTab.tsx +176 -0
- novafabric-0.57.0/web/src/components/dashboard/tabs/TabShell.tsx +69 -0
- novafabric-0.57.0/web/src/components/diff/TraceDiffGraph.tsx +215 -0
- novafabric-0.57.0/web/src/components/evidence/EvidenceDetail.tsx +304 -0
- novafabric-0.57.0/web/src/components/evidence/EvidenceList.tsx +230 -0
- novafabric-0.57.0/web/src/components/evidence/EvidenceViewer.tsx +176 -0
- novafabric-0.57.0/web/src/components/hero/InstallBlock.astro +26 -0
- novafabric-0.57.0/web/src/components/hero/TerminalReplay.tsx +59 -0
- novafabric-0.57.0/web/src/components/layout/DashboardLayout.astro +45 -0
- novafabric-0.57.0/web/src/components/layout/Footer.astro +52 -0
- novafabric-0.57.0/web/src/components/layout/Header.astro +87 -0
- novafabric-0.57.0/web/src/components/layout/Layout.astro +91 -0
- novafabric-0.57.0/web/src/components/layout/ShowcaseBadge.astro +21 -0
- novafabric-0.57.0/web/src/components/layout/ThemeToggle.tsx +100 -0
- novafabric-0.57.0/web/src/components/lineage/LineageGraph.tsx +410 -0
- novafabric-0.57.0/web/src/components/lineage/LineageNode.tsx +71 -0
- novafabric-0.57.0/web/src/components/primitives/PrimitiveCard.astro +27 -0
- novafabric-0.57.0/web/src/components/primitives/PrimitiveStrip.astro +50 -0
- novafabric-0.57.0/web/src/components/registry/RegistryBrowser.tsx +283 -0
- novafabric-0.57.0/web/src/components/replay/ReplayViewer.tsx +476 -0
- novafabric-0.57.0/web/src/components/ui/ActionButton.tsx +102 -0
- novafabric-0.57.0/web/src/components/ui/CodeBlock.astro +44 -0
- novafabric-0.57.0/web/src/components/ui/ComingSoon.astro +49 -0
- novafabric-0.57.0/web/src/components/ui/CommandPalette.tsx +149 -0
- novafabric-0.57.0/web/src/components/ui/ConfirmDialog.tsx +88 -0
- novafabric-0.57.0/web/src/components/ui/CopyButton.tsx +54 -0
- novafabric-0.57.0/web/src/components/ui/DataTable.tsx +171 -0
- novafabric-0.57.0/web/src/components/ui/EmptyState.tsx +67 -0
- novafabric-0.57.0/web/src/components/ui/ErrorBoundary.tsx +63 -0
- novafabric-0.57.0/web/src/components/ui/KeyboardHelp.tsx +67 -0
- novafabric-0.57.0/web/src/components/ui/Pill.astro +18 -0
- novafabric-0.57.0/web/src/components/ui/Skeleton.tsx +42 -0
- novafabric-0.57.0/web/src/components/ui/Sparkline.tsx +61 -0
- novafabric-0.57.0/web/src/components/ui/SuggestInput.tsx +65 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_A/capsule.json +61 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_A/capsule.yaml +52 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_A/model-calls.jsonl +2 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_A/tool-calls.jsonl +2 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_A/trace.jsonl +5 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_B/capsule.json +61 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_B/capsule.yaml +52 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_B/model-calls.jsonl +2 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_B/tool-calls.jsonl +2 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_B/trace.jsonl +5 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_C/capsule.json +61 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_C/capsule.yaml +52 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_C/model-calls.jsonl +2 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_C/tool-calls.jsonl +2 -0
- novafabric-0.57.0/web/src/data/fixtures/capsules/RUN_C/trace.jsonl +5 -0
- novafabric-0.57.0/web/src/data/fixtures/diff-A-vs-B.json +56 -0
- novafabric-0.57.0/web/src/data/fixtures/evidence-bundle/dsse-statement.json +27 -0
- novafabric-0.57.0/web/src/data/fixtures/evidence-bundle/manifest.json +56 -0
- novafabric-0.57.0/web/src/data/fixtures/evidence-bundle/predicate.json +18 -0
- novafabric-0.57.0/web/src/data/fixtures/evidence-bundle/public-key.json +6 -0
- novafabric-0.57.0/web/src/data/fixtures/lineage.jsonl +15 -0
- novafabric-0.57.0/web/src/data/fixtures/registry.json +145 -0
- novafabric-0.57.0/web/src/data/schemas/diff-report.schema.json +91 -0
- novafabric-0.57.0/web/src/data/schemas/environment.schema.json +525 -0
- novafabric-0.57.0/web/src/data/schemas/evidence-bundle.schema.json +296 -0
- novafabric-0.57.0/web/src/data/schemas/lineage-edge.schema.json +96 -0
- novafabric-0.57.0/web/src/data/schemas/model-call.schema.json +427 -0
- novafabric-0.57.0/web/src/data/schemas/replay-policy.schema.json +288 -0
- novafabric-0.57.0/web/src/data/schemas/replay-result.schema.json +104 -0
- novafabric-0.57.0/web/src/data/schemas/run-capsule.schema.json +433 -0
- novafabric-0.57.0/web/src/data/schemas/secret-redaction.schema.json +374 -0
- novafabric-0.57.0/web/src/data/schemas/tool-call.schema.json +334 -0
- novafabric-0.57.0/web/src/lib/ToastContext.tsx +91 -0
- novafabric-0.57.0/web/src/lib/api.ts +1580 -0
- novafabric-0.57.0/web/src/lib/ed25519verify.ts +120 -0
- novafabric-0.57.0/web/src/lib/fixtures.ts +111 -0
- novafabric-0.57.0/web/src/lib/lineage.ts +211 -0
- novafabric-0.57.0/web/src/lib/links.ts +15 -0
- novafabric-0.57.0/web/src/lib/runUtils.ts +16 -0
- novafabric-0.57.0/web/src/lib/shiki.ts +38 -0
- novafabric-0.57.0/web/src/lib/time.ts +9 -0
- novafabric-0.57.0/web/src/lib/traceUtils.ts +302 -0
- novafabric-0.57.0/web/src/lib/useMutation.ts +105 -0
- novafabric-0.57.0/web/src/lib/usePolling.ts +60 -0
- novafabric-0.57.0/web/src/lib/useUrlState.ts +47 -0
- novafabric-0.57.0/web/src/lib/validate.ts +74 -0
- novafabric-0.57.0/web/src/pages/404.astro +20 -0
- novafabric-0.57.0/web/src/pages/concepts.astro +99 -0
- novafabric-0.57.0/web/src/pages/dashboard.astro +11 -0
- novafabric-0.57.0/web/src/pages/index.astro +198 -0
- novafabric-0.57.0/web/src/pages/install.astro +52 -0
- novafabric-0.57.0/web/src/pages/showcase/capsule.astro +48 -0
- novafabric-0.57.0/web/src/pages/showcase/evidence.astro +45 -0
- novafabric-0.57.0/web/src/pages/showcase/lineage.astro +50 -0
- novafabric-0.57.0/web/src/pages/showcase/registry.astro +44 -0
- novafabric-0.57.0/web/src/pages/showcase/replay.astro +45 -0
- novafabric-0.57.0/web/src/pages/spec.astro +50 -0
- novafabric-0.57.0/web/src/pages/why.astro +51 -0
- novafabric-0.57.0/web/src/styles/global.css +75 -0
- novafabric-0.57.0/web/src/styles/reports-print.css +20 -0
- novafabric-0.57.0/web/src/styles/tokens.css +177 -0
- novafabric-0.57.0/web/test-results/.last-run.json +4 -0
- novafabric-0.57.0/web/tests/e2e/a11y.spec.ts +43 -0
- novafabric-0.57.0/web/tests/e2e/dashboard-v08.spec.ts +60 -0
- novafabric-0.57.0/web/tests/e2e/error-boundary.spec.ts +72 -0
- novafabric-0.57.0/web/tests/e2e/run-stream-backoff.spec.ts +100 -0
- novafabric-0.57.0/web/tests/e2e/showcase.spec.ts +111 -0
- novafabric-0.57.0/web/tsconfig.json +13 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Report a bug in NovaFabric
|
|
4
|
+
labels: bug
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Description
|
|
8
|
+
|
|
9
|
+
A clear description of what the bug is.
|
|
10
|
+
|
|
11
|
+
## Steps to reproduce
|
|
12
|
+
|
|
13
|
+
1. Run `novafabric ...`
|
|
14
|
+
2. See error
|
|
15
|
+
|
|
16
|
+
## Expected behavior
|
|
17
|
+
|
|
18
|
+
What you expected to happen.
|
|
19
|
+
|
|
20
|
+
## Actual behavior
|
|
21
|
+
|
|
22
|
+
What actually happened. Include full output or error message.
|
|
23
|
+
|
|
24
|
+
## Environment
|
|
25
|
+
|
|
26
|
+
- OS:
|
|
27
|
+
- Python version (`python --version`):
|
|
28
|
+
- NovaFabric version (`pip show novafabric`):
|
|
29
|
+
|
|
30
|
+
## Asset spec (if relevant)
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
# Paste your spec YAML here (remove any sensitive values)
|
|
34
|
+
```
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest a new feature or improvement
|
|
4
|
+
labels: enhancement
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Motivation
|
|
8
|
+
|
|
9
|
+
What problem does this solve? Why is this useful?
|
|
10
|
+
|
|
11
|
+
## Proposed solution
|
|
12
|
+
|
|
13
|
+
Describe what you'd like. Be specific about CLI commands, YAML fields, or behavior changes.
|
|
14
|
+
|
|
15
|
+
## Alternatives considered
|
|
16
|
+
|
|
17
|
+
Other approaches you thought about.
|
|
18
|
+
|
|
19
|
+
## Additional context
|
|
20
|
+
|
|
21
|
+
Links, examples, or prior art that might help.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
## Summary
|
|
2
|
+
|
|
3
|
+
What does this PR do?
|
|
4
|
+
|
|
5
|
+
## Checklist
|
|
6
|
+
|
|
7
|
+
- [ ] Tests added or updated
|
|
8
|
+
- [ ] `uv run pytest` passes (coverage ≥ 90%)
|
|
9
|
+
- [ ] `uv run ruff check src tests` passes
|
|
10
|
+
- [ ] `uv run mypy src` passes
|
|
11
|
+
- [ ] `CHANGELOG.md` updated for user-facing changes
|
|
12
|
+
- [ ] Docs updated if behavior changed
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
# Runs the same quality gates the project's PR template asks contributors
|
|
4
|
+
# to run locally: pytest with coverage, ruff lint, mypy strict. Mirrors
|
|
5
|
+
# CONTRIBUTING.md and the v0.6.1-baseline gates (558 tests, 90% coverage,
|
|
6
|
+
# 87 source files clean under mypy strict).
|
|
7
|
+
#
|
|
8
|
+
# Jobs:
|
|
9
|
+
# unit — runs on every PR/push; no external services required.
|
|
10
|
+
# integration — runs on every PR/push; spins up a Postgres 16 service.
|
|
11
|
+
on:
|
|
12
|
+
push:
|
|
13
|
+
branches: [main]
|
|
14
|
+
pull_request:
|
|
15
|
+
branches: [main]
|
|
16
|
+
|
|
17
|
+
# Cancel in-flight runs of the same ref when new commits land. Saves CI
|
|
18
|
+
# minutes on rapid-fire pushes.
|
|
19
|
+
concurrency:
|
|
20
|
+
group: ci-${{ github.workflow }}-${{ github.ref }}
|
|
21
|
+
cancel-in-progress: true
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
# --------------------------------------------------------------------------
|
|
25
|
+
# Unit tests + quality gates
|
|
26
|
+
# No external services. Must pass without Postgres or any network access.
|
|
27
|
+
# --------------------------------------------------------------------------
|
|
28
|
+
unit:
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
timeout-minutes: 15
|
|
31
|
+
|
|
32
|
+
steps:
|
|
33
|
+
- name: Checkout
|
|
34
|
+
uses: actions/checkout@v4
|
|
35
|
+
with:
|
|
36
|
+
fetch-depth: 1
|
|
37
|
+
|
|
38
|
+
- name: Install uv
|
|
39
|
+
uses: astral-sh/setup-uv@v6
|
|
40
|
+
with:
|
|
41
|
+
# Keep the uv binary cached across runs.
|
|
42
|
+
enable-cache: true
|
|
43
|
+
|
|
44
|
+
- name: Set up Python (matches requires-python in pyproject.toml)
|
|
45
|
+
uses: actions/setup-python@v6
|
|
46
|
+
with:
|
|
47
|
+
python-version: "3.12"
|
|
48
|
+
|
|
49
|
+
- name: Install project + dev deps
|
|
50
|
+
run: uv sync --frozen
|
|
51
|
+
|
|
52
|
+
- name: Lint (ruff)
|
|
53
|
+
run: uv run ruff check src tests
|
|
54
|
+
|
|
55
|
+
- name: Run unit tests with coverage
|
|
56
|
+
# Excludes tests/integration/ which requires optional external services.
|
|
57
|
+
# --cov-fail-under=90 enforces the project's coverage floor at the
|
|
58
|
+
# CI gate so a regression cannot land silently.
|
|
59
|
+
# --benchmark-disable skips the 100-round latency benchmark; that gate
|
|
60
|
+
# runs in the dedicated seal-latency-gate job below.
|
|
61
|
+
run: uv run pytest tests/ --ignore=tests/integration --benchmark-disable --cov=novafabric --cov-report=term-missing --cov-fail-under=90
|
|
62
|
+
|
|
63
|
+
- name: Smoke-test the CLI
|
|
64
|
+
# Confirms the `nova` entry point installs cleanly and reports
|
|
65
|
+
# the version. Catches packaging regressions that pure unit
|
|
66
|
+
# tests miss.
|
|
67
|
+
run: |
|
|
68
|
+
uv run nova --version
|
|
69
|
+
uv run nova --help > /dev/null
|
|
70
|
+
|
|
71
|
+
# --------------------------------------------------------------------------
|
|
72
|
+
# Type check (mypy strict) against the FULL dependency surface
|
|
73
|
+
# Separate job with --all-extras so optional-extra integrations (sigstore,
|
|
74
|
+
# kuzu, clickhouse, adapters, …) are type-checked against their real APIs
|
|
75
|
+
# instead of being silenced as missing imports. The unit job stays lean so
|
|
76
|
+
# its coverage denominator (and the 90% gate) is unaffected.
|
|
77
|
+
# --------------------------------------------------------------------------
|
|
78
|
+
typecheck:
|
|
79
|
+
runs-on: ubuntu-latest
|
|
80
|
+
timeout-minutes: 15
|
|
81
|
+
|
|
82
|
+
steps:
|
|
83
|
+
- name: Checkout
|
|
84
|
+
uses: actions/checkout@v4
|
|
85
|
+
with:
|
|
86
|
+
fetch-depth: 1
|
|
87
|
+
|
|
88
|
+
- name: Install uv
|
|
89
|
+
uses: astral-sh/setup-uv@v6
|
|
90
|
+
with:
|
|
91
|
+
enable-cache: true
|
|
92
|
+
|
|
93
|
+
- name: Set up Python (matches requires-python in pyproject.toml)
|
|
94
|
+
uses: actions/setup-python@v6
|
|
95
|
+
with:
|
|
96
|
+
python-version: "3.12"
|
|
97
|
+
|
|
98
|
+
- name: Install project + dev deps + all extras
|
|
99
|
+
run: uv sync --frozen --all-extras
|
|
100
|
+
|
|
101
|
+
- name: Type check (mypy strict)
|
|
102
|
+
run: uv run mypy src
|
|
103
|
+
|
|
104
|
+
# --------------------------------------------------------------------------
|
|
105
|
+
# NovaSeal p99 latency gate
|
|
106
|
+
# Runs 100 seal() rounds and asserts p99 < 200 ms (ADR-0041).
|
|
107
|
+
# Separate from the unit job so benchmark overhead does not inflate
|
|
108
|
+
# the coverage-measurement run.
|
|
109
|
+
# --------------------------------------------------------------------------
|
|
110
|
+
seal-latency-gate:
|
|
111
|
+
runs-on: ubuntu-latest
|
|
112
|
+
timeout-minutes: 5
|
|
113
|
+
|
|
114
|
+
steps:
|
|
115
|
+
- name: Checkout
|
|
116
|
+
uses: actions/checkout@v4
|
|
117
|
+
with:
|
|
118
|
+
fetch-depth: 1
|
|
119
|
+
|
|
120
|
+
- name: Install uv
|
|
121
|
+
uses: astral-sh/setup-uv@v6
|
|
122
|
+
with:
|
|
123
|
+
enable-cache: true
|
|
124
|
+
|
|
125
|
+
- name: Set up Python
|
|
126
|
+
uses: actions/setup-python@v6
|
|
127
|
+
with:
|
|
128
|
+
python-version: "3.12"
|
|
129
|
+
|
|
130
|
+
- name: Install project + dev deps
|
|
131
|
+
run: uv sync --frozen
|
|
132
|
+
|
|
133
|
+
- name: Run NovaSeal p99 latency gate
|
|
134
|
+
# --benchmark-json saves results as a JSON artifact for trend tracking.
|
|
135
|
+
# The p99 < 200 ms assertion is inside the test itself; a failing
|
|
136
|
+
# assertion fails this step and blocks the PR merge.
|
|
137
|
+
run: |
|
|
138
|
+
mkdir -p bench-results
|
|
139
|
+
uv run pytest tests/seal/test_benchmark.py -v \
|
|
140
|
+
--benchmark-json=bench-results/seal_latency.json
|
|
141
|
+
|
|
142
|
+
- name: Upload benchmark results
|
|
143
|
+
if: always()
|
|
144
|
+
uses: actions/upload-artifact@v4
|
|
145
|
+
with:
|
|
146
|
+
name: seal-latency-${{ github.sha }}
|
|
147
|
+
path: bench-results/seal_latency.json
|
|
148
|
+
retention-days: 90
|
|
149
|
+
|
|
150
|
+
# --------------------------------------------------------------------------
|
|
151
|
+
# Showcase site build
|
|
152
|
+
# Confirms the Astro site (web/) builds cleanly and TypeScript types check.
|
|
153
|
+
# e2e tests require a running server so are not run here.
|
|
154
|
+
# --------------------------------------------------------------------------
|
|
155
|
+
web:
|
|
156
|
+
runs-on: ubuntu-latest
|
|
157
|
+
timeout-minutes: 10
|
|
158
|
+
|
|
159
|
+
steps:
|
|
160
|
+
- name: Checkout
|
|
161
|
+
uses: actions/checkout@v4
|
|
162
|
+
with:
|
|
163
|
+
fetch-depth: 1
|
|
164
|
+
|
|
165
|
+
- name: Set up Node
|
|
166
|
+
uses: actions/setup-node@v4
|
|
167
|
+
with:
|
|
168
|
+
node-version: "20"
|
|
169
|
+
cache: "npm"
|
|
170
|
+
cache-dependency-path: web/package-lock.json
|
|
171
|
+
|
|
172
|
+
- name: Install web dependencies
|
|
173
|
+
working-directory: web
|
|
174
|
+
run: npm ci
|
|
175
|
+
|
|
176
|
+
- name: Type check (tsc)
|
|
177
|
+
working-directory: web
|
|
178
|
+
run: npm run lint
|
|
179
|
+
|
|
180
|
+
- name: Build showcase site
|
|
181
|
+
working-directory: web
|
|
182
|
+
run: npm run build
|
|
183
|
+
|
|
184
|
+
# --------------------------------------------------------------------------
|
|
185
|
+
# Integration tests
|
|
186
|
+
# Spins up a Postgres 16 service container and runs tests/integration/.
|
|
187
|
+
# Tests that don't need Postgres (server, auth, rbac, storage SQLite) still
|
|
188
|
+
# run here; Postgres-requiring tests (migration, storage Postgres) are
|
|
189
|
+
# automatically enabled via the env var.
|
|
190
|
+
# --------------------------------------------------------------------------
|
|
191
|
+
integration:
|
|
192
|
+
runs-on: ubuntu-latest
|
|
193
|
+
timeout-minutes: 20
|
|
194
|
+
|
|
195
|
+
services:
|
|
196
|
+
postgres:
|
|
197
|
+
image: postgres:16
|
|
198
|
+
env:
|
|
199
|
+
POSTGRES_PASSWORD: test
|
|
200
|
+
POSTGRES_DB: novafabric_test
|
|
201
|
+
options: >-
|
|
202
|
+
--health-cmd pg_isready
|
|
203
|
+
--health-interval 10s
|
|
204
|
+
--health-timeout 5s
|
|
205
|
+
--health-retries 5
|
|
206
|
+
ports:
|
|
207
|
+
- 5432:5432
|
|
208
|
+
|
|
209
|
+
steps:
|
|
210
|
+
- name: Checkout
|
|
211
|
+
uses: actions/checkout@v4
|
|
212
|
+
with:
|
|
213
|
+
fetch-depth: 1
|
|
214
|
+
|
|
215
|
+
- name: Install uv
|
|
216
|
+
uses: astral-sh/setup-uv@v6
|
|
217
|
+
with:
|
|
218
|
+
enable-cache: true
|
|
219
|
+
|
|
220
|
+
- name: Set up Python (matches requires-python in pyproject.toml)
|
|
221
|
+
uses: actions/setup-python@v6
|
|
222
|
+
with:
|
|
223
|
+
python-version: "3.12"
|
|
224
|
+
|
|
225
|
+
- name: Install project + dev deps
|
|
226
|
+
run: uv sync --frozen
|
|
227
|
+
|
|
228
|
+
- name: Run Postgres schema migrations
|
|
229
|
+
env:
|
|
230
|
+
NOVAFABRIC_POSTGRES_DSN: postgresql://postgres:test@localhost:5432/novafabric_test
|
|
231
|
+
run: uv run alembic -c alembic-postgres.ini upgrade head
|
|
232
|
+
|
|
233
|
+
- name: Run integration tests
|
|
234
|
+
env:
|
|
235
|
+
NOVAFABRIC_TEST_POSTGRES_DSN: postgresql://postgres:test@localhost:5432/novafabric_test
|
|
236
|
+
run: uv run pytest tests/integration/ -v
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
name: Collector CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
paths:
|
|
6
|
+
- "collector/**"
|
|
7
|
+
- "schemas/event-envelope-v1/**"
|
|
8
|
+
- "deploy/**"
|
|
9
|
+
- ".github/workflows/collector-ci.yml"
|
|
10
|
+
pull_request:
|
|
11
|
+
paths:
|
|
12
|
+
- "collector/**"
|
|
13
|
+
- "schemas/event-envelope-v1/**"
|
|
14
|
+
- "deploy/**"
|
|
15
|
+
|
|
16
|
+
env:
|
|
17
|
+
# go.mod requires Go ≥ 1.25 since the OTel 1.43.0 bump (Dependabot Phase C).
|
|
18
|
+
GO_VERSION: "1.25"
|
|
19
|
+
GOPATH: ${{ github.workspace }}/.gopath
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
lint:
|
|
23
|
+
name: Lint
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
defaults:
|
|
26
|
+
run:
|
|
27
|
+
working-directory: collector
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@v4
|
|
30
|
+
- uses: actions/setup-go@v5
|
|
31
|
+
with:
|
|
32
|
+
go-version: ${{ env.GO_VERSION }}
|
|
33
|
+
cache-dependency-path: collector/go.sum
|
|
34
|
+
- name: go vet
|
|
35
|
+
run: GOPATH=${{ env.GOPATH }} go vet ./...
|
|
36
|
+
- name: Prohibit flock/mmap/fcntl in spool
|
|
37
|
+
run: |
|
|
38
|
+
# Match the forbidden tokens in non-test Go files, then drop lines that
|
|
39
|
+
# are pure leading-comment lines (//... or *...) so the spool's
|
|
40
|
+
# explanatory comments ("no flock/mmap/fcntl is used here") do not
|
|
41
|
+
# trip the check. Real uses would appear in code without a leading
|
|
42
|
+
# comment marker.
|
|
43
|
+
if grep -rn --include="*.go" \
|
|
44
|
+
-E 'flock|mmap|fcntl|F_SETLK|syscall\.Flock|LOCK_EX' \
|
|
45
|
+
internal/spool/ \
|
|
46
|
+
| grep -v "_test.go" \
|
|
47
|
+
| grep -Ev ':[[:space:]]*(//|\*)'; then
|
|
48
|
+
echo "ERROR: flock/mmap/fcntl found in spool non-test code"
|
|
49
|
+
exit 1
|
|
50
|
+
fi
|
|
51
|
+
echo "OK: no flock/mmap/fcntl in internal/spool"
|
|
52
|
+
|
|
53
|
+
unit:
|
|
54
|
+
name: Unit Tests
|
|
55
|
+
runs-on: ubuntu-latest
|
|
56
|
+
defaults:
|
|
57
|
+
run:
|
|
58
|
+
working-directory: collector
|
|
59
|
+
steps:
|
|
60
|
+
- uses: actions/checkout@v4
|
|
61
|
+
- uses: actions/setup-go@v5
|
|
62
|
+
with:
|
|
63
|
+
go-version: ${{ env.GO_VERSION }}
|
|
64
|
+
cache-dependency-path: collector/go.sum
|
|
65
|
+
- name: go test -race
|
|
66
|
+
run: GOPATH=${{ env.GOPATH }} go test -race -count=1 -timeout 120s ./...
|
|
67
|
+
- name: Coverage check
|
|
68
|
+
run: |
|
|
69
|
+
GOPATH=${{ env.GOPATH }} go test -coverprofile=coverage.out ./pkg/... ./internal/...
|
|
70
|
+
GOPATH=${{ env.GOPATH }} go tool cover -func=coverage.out | tail -1
|
|
71
|
+
COVERAGE=$(GOPATH=${{ env.GOPATH }} go tool cover -func=coverage.out | tail -1 | awk '{print $3}' | tr -d '%')
|
|
72
|
+
echo "Coverage: ${COVERAGE}%"
|
|
73
|
+
# Warn (not fail) if below 75%
|
|
74
|
+
awk "BEGIN {exit (${COVERAGE} < 75)}" || echo "WARNING: coverage below 75%"
|
|
75
|
+
|
|
76
|
+
spec:
|
|
77
|
+
name: Spec Corpus Validation
|
|
78
|
+
runs-on: ubuntu-latest
|
|
79
|
+
steps:
|
|
80
|
+
- uses: actions/checkout@v4
|
|
81
|
+
- uses: actions/setup-python@v5
|
|
82
|
+
with:
|
|
83
|
+
python-version: "3.12"
|
|
84
|
+
- name: Validate corpus
|
|
85
|
+
run: |
|
|
86
|
+
python3 -c "
|
|
87
|
+
import json, pathlib, sys
|
|
88
|
+
schema = json.load(open('schemas/event-envelope-v1/envelope-v1.json'))
|
|
89
|
+
files = sorted(pathlib.Path('schemas/event-envelope-v1/corpus').glob('[0-9]*.json'))
|
|
90
|
+
errors = []
|
|
91
|
+
for f in files:
|
|
92
|
+
data = json.load(open(f))
|
|
93
|
+
for req in schema.get('required', []):
|
|
94
|
+
if req not in data:
|
|
95
|
+
errors.append(f'{f}: missing required field {req}')
|
|
96
|
+
if errors:
|
|
97
|
+
for e in errors[:10]: print(e, file=sys.stderr)
|
|
98
|
+
sys.exit(1)
|
|
99
|
+
print(f'{len(files)}/{len(files)} corpus events valid')
|
|
100
|
+
"
|
|
101
|
+
|
|
102
|
+
build:
|
|
103
|
+
name: Build Artifacts
|
|
104
|
+
runs-on: ubuntu-latest
|
|
105
|
+
defaults:
|
|
106
|
+
run:
|
|
107
|
+
working-directory: collector
|
|
108
|
+
steps:
|
|
109
|
+
- uses: actions/checkout@v4
|
|
110
|
+
- uses: actions/setup-go@v5
|
|
111
|
+
with:
|
|
112
|
+
go-version: ${{ env.GO_VERSION }}
|
|
113
|
+
cache-dependency-path: collector/go.sum
|
|
114
|
+
- name: Build binaries
|
|
115
|
+
run: |
|
|
116
|
+
GOPATH=${{ env.GOPATH }} go build -o bin/novafabric-collector ./cmd/novafabric-collector
|
|
117
|
+
GOPATH=${{ env.GOPATH }} go build -o bin/novafabric-verifier ./cmd/novafabric-verifier
|
|
118
|
+
GOPATH=${{ env.GOPATH }} go build -o bin/novafabric-hpc-hub ./cmd/novafabric-hpc-hub
|
|
119
|
+
- name: Smoke-test verifier --help
|
|
120
|
+
run: ./bin/novafabric-verifier --help 2>&1 | head -3 || true
|
|
121
|
+
- name: Smoke-test hpc-hub --help
|
|
122
|
+
run: ./bin/novafabric-hpc-hub --help 2>&1 | head -3 || true
|
|
123
|
+
|
|
124
|
+
security:
|
|
125
|
+
name: Security Scan
|
|
126
|
+
runs-on: ubuntu-latest
|
|
127
|
+
defaults:
|
|
128
|
+
run:
|
|
129
|
+
working-directory: collector
|
|
130
|
+
steps:
|
|
131
|
+
- uses: actions/checkout@v4
|
|
132
|
+
- uses: actions/setup-go@v5
|
|
133
|
+
with:
|
|
134
|
+
go-version: ${{ env.GO_VERSION }}
|
|
135
|
+
cache-dependency-path: collector/go.sum
|
|
136
|
+
- name: govulncheck
|
|
137
|
+
run: |
|
|
138
|
+
GOPATH=${{ env.GOPATH }} go install golang.org/x/vuln/cmd/govulncheck@latest
|
|
139
|
+
${{ env.GOPATH }}/bin/govulncheck ./... || echo "Vulnerabilities found — review required"
|
|
140
|
+
- name: License check (no AGPL/GPL/BSL)
|
|
141
|
+
run: |
|
|
142
|
+
GOPATH=${{ env.GOPATH }} go install github.com/google/go-licenses@latest
|
|
143
|
+
${{ env.GOPATH }}/bin/go-licenses report ./... 2>/dev/null > /tmp/licenses.txt || true
|
|
144
|
+
# Allowlisted MPL-2.0 transitive deps (see ADR-0024 amendment for
|
|
145
|
+
# hashicorp/go-version — file-level copyleft, unmodified, pulled in
|
|
146
|
+
# transitively via go.opentelemetry.io/collector/featuregate).
|
|
147
|
+
grep -v '^github\.com/hashicorp/go-version,' /tmp/licenses.txt > /tmp/licenses.filtered.txt
|
|
148
|
+
if grep -E '(AGPL|GPL-3|BSL-1\.1|MPL-2\.0|Elastic)' /tmp/licenses.filtered.txt; then
|
|
149
|
+
echo "ERROR: Prohibited license found"
|
|
150
|
+
exit 1
|
|
151
|
+
fi
|
|
152
|
+
echo "License check passed"
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
name: MetadataStore Security Gate
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
paths:
|
|
6
|
+
- "src/novafabric/metadata_store/**"
|
|
7
|
+
- "tests/metadata_store/**"
|
|
8
|
+
- "tests/fixtures/broken_session_set.py"
|
|
9
|
+
pull_request:
|
|
10
|
+
paths:
|
|
11
|
+
- "src/novafabric/metadata_store/**"
|
|
12
|
+
- "tests/metadata_store/**"
|
|
13
|
+
- "tests/fixtures/broken_session_set.py"
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
security-gate:
|
|
17
|
+
name: MetadataStore Security Gate
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
services:
|
|
20
|
+
postgres:
|
|
21
|
+
image: postgres:16-alpine
|
|
22
|
+
env:
|
|
23
|
+
POSTGRES_PASSWORD: testpass
|
|
24
|
+
POSTGRES_USER: postgres
|
|
25
|
+
POSTGRES_DB: novafabric_test
|
|
26
|
+
ports:
|
|
27
|
+
- 5432:5432
|
|
28
|
+
options: >-
|
|
29
|
+
--health-cmd pg_isready
|
|
30
|
+
--health-interval 2s
|
|
31
|
+
--health-timeout 5s
|
|
32
|
+
--health-retries 10
|
|
33
|
+
|
|
34
|
+
steps:
|
|
35
|
+
- uses: actions/checkout@v4
|
|
36
|
+
|
|
37
|
+
- uses: astral-sh/setup-uv@v5
|
|
38
|
+
with:
|
|
39
|
+
python-version: "3.12"
|
|
40
|
+
|
|
41
|
+
- name: Install dependencies
|
|
42
|
+
run: uv sync
|
|
43
|
+
|
|
44
|
+
- name: Ruff lint
|
|
45
|
+
run: uv run ruff check src/ tests/
|
|
46
|
+
|
|
47
|
+
- name: Mypy type check
|
|
48
|
+
run: uv run mypy src/novafabric/metadata_store/ --exclude migrations
|
|
49
|
+
|
|
50
|
+
- name: FR-07 grep — no session-scoped SET app. in metadata_store
|
|
51
|
+
run: |
|
|
52
|
+
violations=$(grep -rn "SET " src/novafabric/metadata_store/ | grep -v "SET LOCAL" | grep "app\." || true)
|
|
53
|
+
if [ -n "$violations" ]; then
|
|
54
|
+
echo "FAIL: Session-scoped SET app. found — use SET LOCAL"
|
|
55
|
+
echo "$violations"
|
|
56
|
+
exit 1
|
|
57
|
+
fi
|
|
58
|
+
echo "PASS: No session-scoped SET app. found"
|
|
59
|
+
|
|
60
|
+
- name: FR-13 grep — RLS primitives confined to metadata_store
|
|
61
|
+
run: |
|
|
62
|
+
violations=$(grep -rnE 'current_setting\(.*app\.|FORCE\s+ROW\s+LEVEL' \
|
|
63
|
+
--include='*.py' src/ tests/ \
|
|
64
|
+
| grep -v 'src/novafabric/metadata_store/' \
|
|
65
|
+
| grep -v 'tests/metadata_store/' \
|
|
66
|
+
| grep -v 'tests/fixtures/broken_session_set.py' || true)
|
|
67
|
+
if [ -n "$violations" ]; then
|
|
68
|
+
echo "FAIL: RLS primitives found outside allowed paths:"
|
|
69
|
+
echo "$violations"
|
|
70
|
+
exit 1
|
|
71
|
+
fi
|
|
72
|
+
echo "PASS: RLS primitives confined to allowed paths"
|
|
73
|
+
|
|
74
|
+
- name: Run MetadataStore tests with coverage
|
|
75
|
+
run: |
|
|
76
|
+
uv run pytest tests/metadata_store/ -v --tb=short \
|
|
77
|
+
--cov=src/novafabric/metadata_store \
|
|
78
|
+
--cov-report=term-missing \
|
|
79
|
+
--cov-fail-under=85
|
|
80
|
+
env:
|
|
81
|
+
NOVAFABRIC_METADATA_BACKEND: sqlite
|
|
82
|
+
|
|
83
|
+
- name: FR-08 mutmut — SET LOCAL invariant kill-rate gate
|
|
84
|
+
run: |
|
|
85
|
+
# Curated mutation target: postgres.py SET LOCAL line only.
|
|
86
|
+
# Runner uses testcontainers (Docker required on CI host).
|
|
87
|
+
uv run mutmut run \
|
|
88
|
+
--paths-to-mutate src/novafabric/metadata_store/postgres.py \
|
|
89
|
+
--runner "uv run pytest tests/metadata_store/test_cross_tenant_isolation_pgbouncer.py tests/metadata_store/test_set_local_invariant.py -x --tb=short -q"
|
|
90
|
+
survived=$(uv run mutmut results 2>/dev/null | grep -c "survived" || true)
|
|
91
|
+
if [ "${survived:-0}" -gt 0 ]; then
|
|
92
|
+
echo "FAIL: mutant(s) survived — FR-08 SET LOCAL kill rate < 100%"
|
|
93
|
+
uv run mutmut results
|
|
94
|
+
exit 1
|
|
95
|
+
fi
|
|
96
|
+
echo "PASS: All SET LOCAL mutants killed — GDPR Article 32 invariant confirmed"
|
|
97
|
+
|
|
98
|
+
- name: Benchmark smoke
|
|
99
|
+
run: bash bench/rls_partition_pruning/ci_smoke.sh
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
# Builds the novafabric distribution and publishes it to PyPI using
|
|
4
|
+
# Trusted Publishing (OIDC) — no API token or stored secret is required.
|
|
5
|
+
# PyPI is configured to trust this exact tuple via a Trusted Publisher entry:
|
|
6
|
+
#
|
|
7
|
+
# PyPI project : novafabric
|
|
8
|
+
# Owner : novafabric
|
|
9
|
+
# Repository : novafabric
|
|
10
|
+
# Workflow name : publish-pypi.yml <-- the value to enter on pypi.org
|
|
11
|
+
# Environment : pypi
|
|
12
|
+
#
|
|
13
|
+
# Fires when a v* tag is pushed (same trigger as release.yml, which creates
|
|
14
|
+
# the GitHub Release). The two workflows run independently.
|
|
15
|
+
on:
|
|
16
|
+
push:
|
|
17
|
+
tags:
|
|
18
|
+
- "v*"
|
|
19
|
+
# Allow a manual re-publish from the Actions tab if a tag run needs a retry.
|
|
20
|
+
workflow_dispatch:
|
|
21
|
+
|
|
22
|
+
permissions:
|
|
23
|
+
contents: read
|
|
24
|
+
|
|
25
|
+
jobs:
|
|
26
|
+
build:
|
|
27
|
+
name: Build distribution
|
|
28
|
+
runs-on: ubuntu-latest
|
|
29
|
+
timeout-minutes: 10
|
|
30
|
+
steps:
|
|
31
|
+
- name: Checkout
|
|
32
|
+
uses: actions/checkout@v4
|
|
33
|
+
with:
|
|
34
|
+
fetch-depth: 1
|
|
35
|
+
|
|
36
|
+
- name: Install uv
|
|
37
|
+
uses: astral-sh/setup-uv@v6
|
|
38
|
+
|
|
39
|
+
- name: Set up Python
|
|
40
|
+
uses: actions/setup-python@v6
|
|
41
|
+
with:
|
|
42
|
+
python-version: "3.12"
|
|
43
|
+
|
|
44
|
+
- name: Build sdist and wheel
|
|
45
|
+
run: uv build
|
|
46
|
+
|
|
47
|
+
- name: Check distribution metadata
|
|
48
|
+
run: uvx twine check dist/*
|
|
49
|
+
|
|
50
|
+
- name: Upload distribution artifacts
|
|
51
|
+
uses: actions/upload-artifact@v4
|
|
52
|
+
with:
|
|
53
|
+
name: dist
|
|
54
|
+
path: dist/
|
|
55
|
+
|
|
56
|
+
publish:
|
|
57
|
+
name: Publish to PyPI
|
|
58
|
+
needs: build
|
|
59
|
+
runs-on: ubuntu-latest
|
|
60
|
+
timeout-minutes: 10
|
|
61
|
+
# Must match the "Environment name" configured in the PyPI Trusted Publisher.
|
|
62
|
+
environment:
|
|
63
|
+
name: pypi
|
|
64
|
+
url: https://pypi.org/p/novafabric
|
|
65
|
+
permissions:
|
|
66
|
+
# Required for Trusted Publishing: mints the OIDC token PyPI exchanges
|
|
67
|
+
# for a short-lived upload credential. No long-lived secret is stored.
|
|
68
|
+
id-token: write
|
|
69
|
+
steps:
|
|
70
|
+
- name: Download distribution artifacts
|
|
71
|
+
uses: actions/download-artifact@v4
|
|
72
|
+
with:
|
|
73
|
+
name: dist
|
|
74
|
+
path: dist/
|
|
75
|
+
|
|
76
|
+
- name: Publish to PyPI
|
|
77
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
# Triggered when a v* tag is pushed. Creates a GitHub Release with notes
|
|
4
|
+
# extracted from docs/releases/<tag>.md (the source of truth for release
|
|
5
|
+
# notes — also linked from CHANGELOG.md and discoverable in-repo).
|
|
6
|
+
#
|
|
7
|
+
# Does NOT publish to PyPI — that requires repository secrets and is a
|
|
8
|
+
# user-driven decision per release.
|
|
9
|
+
on:
|
|
10
|
+
push:
|
|
11
|
+
tags:
|
|
12
|
+
- "v*"
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
# Required to create the release. No write access to code.
|
|
16
|
+
contents: write
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
github-release:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
timeout-minutes: 5
|
|
22
|
+
|
|
23
|
+
steps:
|
|
24
|
+
- name: Checkout
|
|
25
|
+
uses: actions/checkout@v4
|
|
26
|
+
with:
|
|
27
|
+
fetch-depth: 1
|
|
28
|
+
|
|
29
|
+
- name: Locate release notes
|
|
30
|
+
id: notes
|
|
31
|
+
run: |
|
|
32
|
+
tag="${GITHUB_REF_NAME}"
|
|
33
|
+
notes_file="docs/releases/${tag}.md"
|
|
34
|
+
if [ ! -f "$notes_file" ]; then
|
|
35
|
+
echo "::error file=docs/releases::Missing release notes file: $notes_file"
|
|
36
|
+
echo "Tag $tag was pushed but $notes_file does not exist." >&2
|
|
37
|
+
exit 1
|
|
38
|
+
fi
|
|
39
|
+
# First H1 in the notes is the release title (drop the leading '# ').
|
|
40
|
+
title=$(head -1 "$notes_file" | sed 's/^# //')
|
|
41
|
+
if [ -z "$title" ]; then
|
|
42
|
+
echo "::error file=$notes_file::First line is not an H1; cannot derive title"
|
|
43
|
+
exit 1
|
|
44
|
+
fi
|
|
45
|
+
echo "notes_file=$notes_file" >> "$GITHUB_OUTPUT"
|
|
46
|
+
echo "title=$title" >> "$GITHUB_OUTPUT"
|
|
47
|
+
|
|
48
|
+
- name: Create GitHub Release
|
|
49
|
+
env:
|
|
50
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
51
|
+
run: |
|
|
52
|
+
gh release create "${GITHUB_REF_NAME}" \
|
|
53
|
+
--title "${{ steps.notes.outputs.title }}" \
|
|
54
|
+
--notes-file "${{ steps.notes.outputs.notes_file }}" \
|
|
55
|
+
--latest=true
|