nat-engine 1__tar.gz → 1.1.6__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.
- {nat_engine-1 → nat_engine-1.1.6}/.github/workflows/docker-publish.yml +27 -11
- {nat_engine-1 → nat_engine-1.1.6}/.github/workflows/release.yml +16 -0
- {nat_engine-1/src/nat_engine.egg-info → nat_engine-1.1.6}/PKG-INFO +1 -1
- {nat_engine-1 → nat_engine-1.1.6}/e2e-results/coverage-matrix.md +20 -20
- {nat_engine-1 → nat_engine-1.1.6}/e2e-results/latest.json +17 -17
- {nat_engine-1 → nat_engine-1.1.6}/e2e-results/trend-report.html +3 -3
- {nat_engine-1 → nat_engine-1.1.6/src/nat_engine.egg-info}/PKG-INFO +1 -1
- {nat_engine-1 → nat_engine-1.1.6}/.dockerignore +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/.env.example +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/.github/CLA.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/.github/workflows/action-release.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/.github/workflows/canary-promote.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/.github/workflows/cla.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/.github/workflows/deploy-azure.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/.github/workflows/deploy-staging.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/.github/workflows/deploy-website.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/.github/workflows/e2e-regression.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/.github/workflows/post-release.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/.github/workflows/pre-release-check.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/.github/workflows/smoke-tests.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/.gitignore +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/CHANGELOG.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/CLA.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/CLA_SIGNATORIES.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/COMMERCIAL_LICENSE.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/CONTRIBUTING.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/Dockerfile +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/Dockerfile.demo +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/InitialResearch.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/LICENSE +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/MANIFEST.in +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/Makefile +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/NOTICE +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/Pre-Release-Notes +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/RELEASE_NOTES.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/SECURITY.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/action/Dockerfile +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/action/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/action/entrypoint.sh +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/action/parse_results.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/action.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/alembic/env.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/alembic/versions/001_initial.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/alembic/versions/002_tenants_billing.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/alembic/versions/003_tenant_scoped_scans.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/alembic/versions/004_billing_events_concurrency.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/alembic/versions/005_tenant_notification_webhooks.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/alembic/versions/006_autonomous_runs.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/alembic/versions/007_dismissed_findings.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/alembic/versions/008_team_collaboration.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/alembic.ini +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/branding/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/branding/nat-logo-animated.svg +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/branding/nat-logo-mono.svg +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/branding/nat-logo.svg +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/branding/nat-logotype.svg +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/branding/og-image.svg +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/ci-templates/azure/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/ci-templates/azure/azure-pipelines-nat.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/ci-templates/gitlab/.gitlab-ci-nat.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/ci-templates/gitlab/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/ci-templates/jenkins/Jenkinsfile.example +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/ci-templates/jenkins/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/ci-templates/jenkins/vars/natScan.groovy +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/cicd/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/cicd/azure-devops/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/cicd/azure-devops/nat-scan.ps1 +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/cicd/azure-devops/task.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/cicd/examples/github-actions-example.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/cicd/github-action/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/cicd/github-action/action.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/cicd/github-action/entrypoint.sh +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/cicd/jenkins/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/cicd/jenkins/vars/natScan.groovy +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/demo.tape +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/azure/OIDC_SETUP.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/azure/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/azure/SECRETS.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/azure/TROUBLESHOOTING.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/azure/container-app.yaml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/azure/custom-domain.sh +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/azure/run-migrations.sh +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/azure/setup-db.sh +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/azure/setup.sh +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/azure/staging/container-app-staging.yaml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/azure/staging/setup-staging.sh +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/azure/verify-domain.sh +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/azure/verify-oidc.sh +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/k8s/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/k8s/configmap.yaml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/k8s/deployment.yaml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/deploy/k8s/service.yaml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docker-compose.demo.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docker-compose.dev.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docker-compose.prod.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docker-compose.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/api-reference/github-action.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/api-reference/python-api.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/api-reference/rest-api.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/.gitkeep +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/cli-scan-output.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/cli-security-output.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/dashboad-overview-00.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/dashboard-agents-02.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/dashboard-agents-03.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/dashboard-agents-dark.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/dashboard-dark-mode-off.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/dashboard-history.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/dashboard-overview-000.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/dashboard-overview-02.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/dashboard-overview-03.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/dashboard-overview-top.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/dashboard-security-detail.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/dashboard-security.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/demo-assets-manifest.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/assets/security-detail.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/changelog.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/concepts/architecture.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/concepts/bdi-agents.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/concepts/ecnp-protocol.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/concepts/neural-networks.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/concepts/security-model.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/contributing.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/demo/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/demo/report-template.html +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/demo/sample-reports/accessibility-report.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/demo/sample-reports/functional-test-report.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/demo/sample-reports/performance-report.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/demo/sample-reports/security-scan-report.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/demo/sample-reports/unified-report.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/demo/sample-reports/visual-regression-report.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/demos/orangehrm.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/faq.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/getting-started/first-scan.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/getting-started/installation.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/getting-started/quickstart.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/getting-started/setup-wizard.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/authentication.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/belief-driven-prioritization.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/billing.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/ci-cd-integration.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/cli-reference.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/confidence-calibration.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/custom-check-plugins.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/dashboard.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/demo-mode.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/docker-deployment.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/e2e-billing-runbook.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/e2e-results-hub.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/exporter-plugins.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/graphql-testing.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/grpc-scanning.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/ingestor-plugins.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/llm-augmented-testing.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/metering.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/notifications.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/releasing.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/rest-api-testing.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/risk-scoring.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/scheduled-scans.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/security-scanning.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/self-healing-test-suites.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/testbed.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/transfer-learning.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/guides/worker-pools.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/how-to/customize-security-checks.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/how-to/deploy-with-docker.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/how-to/integrate-with-github-actions.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/how-to/read-risk-reports.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/how-to/run-security-audit.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/how-to/setup-oauth2.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/how-to/test-graphql-api.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/how-to/test-openapi-spec.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/ip/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/ip/disclosure-001-bounded-belief-revision.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/ip/disclosure-002-extended-contract-net-protocol.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/ip/disclosure-003-adaptive-test-allocation.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/ip/disclosure-004-multi-agent-bdi-architecture.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/legal/licensing.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/marketing/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/marketing/demo-script.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/marketing/feature-matrix.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/marketing/launch-announcement.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/sales/competitor-matrix.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/sales/email-templates.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/sales/ipad-demo-playbook.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/sales/onboarding-faq.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/sales/sales-playbook.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/sales/value-proposition.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/troubleshooting/auth-issues.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/troubleshooting/ci-cd-issues.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/troubleshooting/common-issues.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/troubleshooting/connection-errors.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/troubleshooting/docker-issues.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/vision/functional-testing-saas.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/docs/whitepaper.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/.natrc.example +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/demo.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/exporters/console_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/graphql-schema.graphql +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/ingestors/csv_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/petstore-openapi.yaml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/pipeline.yaml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/plugins/rate_limit_check.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/python/basic_scan.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/python/graphql_scan.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/python/oauth2_scan.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/python/security_audit.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/workflows/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/workflows/nat-example.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/workflows/nat-matrix.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/workflows/nat-pr-comment.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/workflows/nat-scheduled.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/examples/workflows/nat-security-gate.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/nginx/certs/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/nginx/nginx.conf +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/pyproject.toml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/releases/v1.0.0.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/compare_manifests.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/demo.bat +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/demo.sh +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/demo_orangehrm.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/e2e_staging_validation.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/extract_demo_assets.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/generate_coverage_matrix.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/generate_manifest.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/generate_trend_report.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/go_live_checklist.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/pre_launch_check.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/prepare-release.sh +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/seed_demo_data.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/scripts/update_baseline.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/setup.cfg +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/__main__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/_version.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/agents/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/agents/analyzer_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/agents/base.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/agents/bdi_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/agents/belief_state.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/agents/coordinator_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/agents/executor_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/agents/monitor_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/agents/oracle_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/agents/planner_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/agents/test_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/anomaly/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/anomaly/enhanced_detector.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/cli.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/accessibility_scanner_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/analyzer_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/autonomous_loop_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/autonomous_loop_models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/autonomous_run_differ.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/base.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/bdi_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/belief_state.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/browser_coordinator_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/browser_executor_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/coordinator_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/executor_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/monitor_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/oracle_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/performance_testing_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/planner_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/test_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/visual_regression_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/web_crawler_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/agents/worker_pool.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/anomaly/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/anomaly/enhanced_detector.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/browser/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/browser/accessibility_scanner.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/browser/discovery_model.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/browser/dom_snapshot.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/browser/ingestor_bridge.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/browser/performance_metrics.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/browser/reflection_analyzer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/browser/scenario_generator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/browser/security_scenario_generator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/browser/visual_comparer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/diagnostics/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/diagnostics/failure_clusterer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/diagnostics/flake_detector.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/diagnostics/root_cause_analyzer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/distributed/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/distributed/endpoint.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/distributed/system_under_test.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/functional_orchestrator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/messaging/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/messaging/bus.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/messaging/messages.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/nat_orchestrator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/neural/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/orchestrator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/prioritization/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/prioritization/adaptive_controller.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/prioritization/belief_prioritizer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/prioritization/risk_scorer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/reporting/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/reporting/unified_report.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/testing/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/testing/adaptive_controller.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/testing/models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/validation/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/core/validation/self_validation_runner.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/dashboard/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/dashboard/app.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/dashboard/models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/dashboard/static/index.html +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/dashboard/telemetry.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/distributed/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/distributed/endpoint.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/distributed/system_under_test.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/healing/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/healing/graphql_schema_diff.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/healing/healer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/healing/models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/healing/schema_diff.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/integrations/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/integrations/auth.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/integrations/graphql_parser.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/integrations/graphql_sut.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/integrations/http_sut.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/integrations/openapi_parser.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/integrations/postman_parser.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/llm/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/llm/anthropic_provider.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/llm/base.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/llm/config.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/llm/factory.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/llm/openai_provider.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/llm/prompts.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/messaging/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/messaging/bus.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/messaging/messages.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/nat_orchestrator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/neural/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/orchestrator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/prioritization/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/prioritization/adaptive_controller.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/prioritization/belief_prioritizer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/prioritization/risk_scorer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/admin/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/admin/routes.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/auth/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/auth/saml.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/billing/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/billing/audit.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/billing/feature_gates.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/billing/metering.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/billing/notifications.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/billing/plans.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/billing/rate_limits.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/billing/stripe_billing.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/billing/tenant_auth.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/billing/tenant_manager.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/cli.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/cli_admin.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/dashboard/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/dashboard/app.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/dashboard/models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/dashboard/static/index.html +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/dashboard/static/manifest.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/dashboard/static/pwa-icon-192.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/dashboard/static/pwa-icon-512.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/dashboard/static/sw.js +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/dashboard/telemetry.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/database.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/demo.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/doctor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/azuredevops_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/base.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/bugzilla_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/dedup.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/finding_adapter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/github_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/gitlab_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/jira_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/linear_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/loader.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/pagerduty_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/sentry_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/servicenow_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/shortcut_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/exporters/webhook_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/formatters/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/formatters/allure_formatter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/formatters/ctrf_formatter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/healing/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/healing/graphql_schema_diff.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/healing/healer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/healing/models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/healing/schema_diff.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/base.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/bgstm_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/curl_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/cypress_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/gherkin_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/graphql_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/grpc_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/har_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/loader.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/openapi_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/playwright_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/postman_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/traffic_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/ingestors/websocket_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/integrations/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/integrations/auth.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/integrations/graphql_parser.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/integrations/graphql_sut.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/integrations/grpc_sut.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/integrations/http_sut.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/integrations/kafka_adapter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/integrations/openapi_parser.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/integrations/postman_parser.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/integrations/webhook_receiver.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/integrations/websocket_sut.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/llm/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/llm/anthropic_provider.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/llm/base.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/llm/config.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/llm/factory.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/llm/openai_provider.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/llm/prompts.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/llm/root_cause_service.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/llm/test_plan_models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/metrics.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/middleware/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/middleware/audit_middleware.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/middleware/tenant_isolation.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/notifications/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/notifications/dispatcher.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/onboarding.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/orchestration/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/orchestration/ingest_scan_orchestrator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/orchestration/pipeline.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/orchestrator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/orchestrator_models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/regression/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/regression/differ.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/regression/masking.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/regression/models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/regression/recorder.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/regression/replayer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/reports/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/reports/pdf.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/scheduling/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/scheduling/cron_utils.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/scheduling/engine.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/scheduling/models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/scheduling/queue.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/scheduling/store.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/belief_guided.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/checks/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/checks/base.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/checks/bfla.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/checks/bola.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/checks/bopla.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/checks/broken_auth.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/checks/graphql_security.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/checks/inventory.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/checks/misconfig.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/checks/resource_consumption.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/checks/sensitive_flows.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/checks/ssrf.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/checks/unsafe_consumption.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/plugin_loader.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/reporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/security/scanner.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/server.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/setup_wizard.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/status.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/storage/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/storage/artifact_store.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/telemetry.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/uninstall.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/upgrade.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/weights/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/weights/blob_store.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/weights/factory.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/weights/registry.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/product/weights/store.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/regression/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/regression/differ.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/regression/masking.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/regression/models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/regression/recorder.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/regression/replayer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/belief_guided.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/checks/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/checks/base.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/checks/bfla.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/checks/bola.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/checks/bopla.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/checks/broken_auth.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/checks/graphql_security.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/checks/inventory.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/checks/misconfig.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/checks/resource_consumption.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/checks/sensitive_flows.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/checks/ssrf.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/checks/unsafe_consumption.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/reporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/security/scanner.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/server.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/testing/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/testing/adaptive_controller.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/testing/models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/weights/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/weights/registry.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/mannf/weights/store.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/nat_engine.egg-info/SOURCES.txt +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/nat_engine.egg-info/dependency_links.txt +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/nat_engine.egg-info/entry_points.txt +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/nat_engine.egg-info/requires.txt +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/src/nat_engine.egg-info/top_level.txt +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/Dockerfile +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/app.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/conftest.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/docker-compose.yml +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/openapi_override.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/requirements.txt +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/static/style.css +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/templates/accessible.html +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/templates/base.html +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/templates/dashboard.html +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/templates/inaccessible.html +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/templates/login.html +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/templates/settings.html +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/templates/user_form.html +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/templates/users.html +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/tests/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/tests/test_vulnapi.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/testbed/vulnapi.proto +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/conftest.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/conftest.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/conftest.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/billing_panel.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/billing_plan_badge.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/nav_billing.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/nav_functional.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/nav_history.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/nav_overview.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/nav_schedules.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/nav_security.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/nav_settings.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/nav_team.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/nav_test-plans.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/nav_testing_collapsed.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/nav_testing_section.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/nl_description_filled.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/nl_generation_result.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/overview_default.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/overview_scan_count.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/pdf_button_visible.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/pdf_history_panel.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/plans_generate_btn.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/plans_nl_generated.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/plans_panel.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/responsive_breakpoint.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/responsive_desktop.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/responsive_mobile.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/responsive_sidebar_open.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/responsive_toggle.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/rootcause_after_fail.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/rootcause_api_verified.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/rootcause_panel.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/scans_export_buttons.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/scans_json_download.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/scans_panel.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/schedules_panel.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/security_findings_injected.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/security_panel.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/settings_panel.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/screenshots/team_panel.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/test_e2e_dashboard_billing.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/test_e2e_dashboard_nav.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/test_e2e_dashboard_nl.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/test_e2e_dashboard_overview.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/test_e2e_dashboard_pdf.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/test_e2e_dashboard_plans.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/test_e2e_dashboard_responsive.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/test_e2e_dashboard_rootcause.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/test_e2e_dashboard_scans.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/test_e2e_dashboard_schedules.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/test_e2e_dashboard_security.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/test_e2e_dashboard_settings.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/dashboard/test_e2e_dashboard_team.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/test_e2e_api.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/test_e2e_demo.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/test_e2e_exports.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/test_e2e_nl_test.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/test_e2e_plan.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/test_e2e_scan_graphql.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/test_e2e_scan_grpc.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/test_e2e_scan_rest.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/e2e/test_e2e_schedules.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/smoke/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/smoke/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/smoke/conftest.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/smoke/test_billing_increment.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/smoke/test_dashboard.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/smoke/test_functional_scan.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/smoke/test_report_export.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/smoke/test_security_scan.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/smoke/test_signup_billing.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/smoke/test_usage_metering.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_accessibility_scanner.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_action/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_action/test_entrypoint.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_action/test_parse_results.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_admin/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_admin/test_admin_api.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_admin/test_cli_admin.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_admin/test_tenant_manager.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_agents.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_anomaly/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_anomaly/test_enhanced_detector.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_artifact_blob.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_auth_layer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_autonomous_loop.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_autonomous_run_differ.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_belief_state.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_billing_audit.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_billing_bridge.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_billing_models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_billing_notifications.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_billing_status.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_browser_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_calibration.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_canary_health.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_cli_help.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_concurrency_enforcement.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_cypress_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_dashboard/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_dashboard/test_bug_filing.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_dashboard/test_dashboard_models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_dashboard/test_dashboard_routes.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_dashboard/test_diagnostics_endpoints.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_dashboard/test_telemetry.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_dashboard_import.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_dashboard_scenarios.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_dashboard_ui.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_demo/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_demo/test_cli_demo.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_demo_mode.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_demo_orangehrm.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_demo_seeder.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_diagnostics.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_distributed.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_e2e_billing_happy_path.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_e2e_billing_onboarding.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_e2e_onboarding.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_azuredevops_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_bugzilla_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_dedup.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_exporter_loader.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_finding_adapter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_github_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_gitlab_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_jira_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_linear_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_pagerduty_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_sentry_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_servicenow_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_shortcut_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_test_connection.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_exporters/test_webhook_exporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_formatters/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_formatters/test_allure_formatter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_formatters/test_ctrf_formatter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_functional_orchestrator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_go_live_checklist.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_grpc_e2e.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_healing/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_healing/test_cli_healing.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_healing/test_healer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_healing/test_schema_diff.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_healing/test_server_healing.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingest_orchestrator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestor_bridge.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestors/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestors/test_bgstm_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestors/test_curl_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestors/test_gherkin_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestors/test_graphql_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestors/test_grpc_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestors/test_har_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestors/test_ingestor_base.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestors/test_ingestor_loader.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestors/test_openapi_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestors/test_postman_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestors/test_traffic_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_ingestors/test_websocket_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_integrations/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_integrations/test_auth.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_integrations/test_cli.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_integrations/test_cli_graphql.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_integrations/test_graphql_parser.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_integrations/test_graphql_sut.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_integrations/test_grpc_sut.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_integrations/test_http_sut.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_integrations/test_oauth2_auth.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_integrations/test_openapi_parser.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_integrations/test_postman_parser.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_integrations/test_server_graphql.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_integrations/test_websocket_sut.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_llm/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_llm/test_cli_llm.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_llm/test_integration.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_llm/test_nl_test_authoring.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_llm/test_prompts.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_llm/test_providers.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_llm/test_root_cause_service.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_llm/test_server_llm.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_llm/test_test_plan_generator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_messaging.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_nat_agents.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_nat_orchestrator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_neural.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_observability.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_orchestration/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_orchestration/test_ingest_scan_orchestrator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_orchestrator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_pdf_export.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_performance_testing.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_persistence_pause_resume.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_plans_api.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_playwright_ingestor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_prioritization/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_prioritization/test_adaptive_controller.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_prioritization/test_belief_prioritizer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_prioritization/test_risk_scorer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_product_notifications.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_quota_enforcement.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_regression/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_regression/test_cli_regression.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_regression/test_differ.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_regression/test_masking.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_regression/test_recorder.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_regression/test_replayer.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_regression/test_server_regression.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_scenario_generator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_scheduling/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_scheduling/test_api.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_scheduling/test_cron_utils.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_scheduling/test_engine.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_scheduling/test_models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_scheduling/test_schedule_dashboard.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_scheduling/test_scheduler_integration.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_scheduling/test_store.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/test_adaptive_cli.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/test_belief_guided.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/test_checks/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/test_checks/test_bola.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/test_checks/test_broken_auth.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/test_checks/test_graphql_security.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/test_checks/test_misconfig.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/test_cli_security.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/test_models.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/test_plugin_loader.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/test_reporter.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/test_scanner.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security/test_server_security.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_security_scenario_generator.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_server.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_server_risk.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_setup_wizard.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_staging_status.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_status.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_stripe_billing.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_team_collaboration.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_telemetry.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_tenant_isolation.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_tenant_scoped_scans.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_testing.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_unified_report.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_usage_metering.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_visual_regression.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_web_crawler_agent.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_weights/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_weights/test_blob_store.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_weights/test_cli_weights.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_weights/test_registry.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_weights/test_server_weights.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_weights/test_store.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_worker_pool/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_worker_pool/test_cli_worker.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_worker_pool/test_job_queue.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/test_worker_pool/test_worker_pool.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/unit/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/unit/product/__init__.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/unit/product/test_database_url_warning.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/unit/product/test_doctor.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/unit/product/test_uninstall.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/unit/product/test_upgrade.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/tests/unit/test_plans.py +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/.eslintrc.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/.gitignore +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/README.md +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/next.config.js +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/package-lock.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/package.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/postcss.config.js +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/public/assets/dashboard-agents-dark.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/public/assets/dashboard-overview-top.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/public/assets/dashboard-security-detail.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/public/assets/dashboard-security.png +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/public/favicon-16x16.svg +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/public/favicon-32x32.svg +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/public/favicon.svg +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/public/og-image.svg +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/app/commercial-license/page.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/app/demo/DemoPageClient.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/app/demo/page.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/app/globals.css +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/app/layout.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/app/license/page.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/app/page.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/app/privacy/page.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/app/terms/page.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/ComparisonTable.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/CtaBanner.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/FAQ.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/Features.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/Footer.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/FunctionalFeatures.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/FunctionalPricing.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/Hero.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/HowItWorks.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/NatLogo.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/Navbar.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/PricingGrid.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/SaasOnboarding.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/ScanModules.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/Screenshots.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/components/StatsBar.tsx +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/src/data/products.ts +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/tailwind.config.ts +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/tsconfig.json +0 -0
- {nat_engine-1 → nat_engine-1.1.6}/website/vercel.json +0 -0
|
@@ -4,13 +4,18 @@
|
|
|
4
4
|
# For commercial licensing: licensing@nat-testing.io
|
|
5
5
|
#
|
|
6
6
|
# docker-publish.yml — Build and push the NAT Docker image to GitHub Container
|
|
7
|
-
# Registry (ghcr.io) on every release tag (v*.*.*) and on
|
|
7
|
+
# Registry (ghcr.io) and Docker Hub on every release tag (v*.*.*) and on
|
|
8
|
+
# pushes to main.
|
|
8
9
|
#
|
|
9
10
|
# Tag strategy:
|
|
10
|
-
# ghcr.io/bg-playground/nat-engine:latest — most recent push to main
|
|
11
|
-
# ghcr.io/bg-playground/nat-engine:1.2.3 — semver release (
|
|
12
|
-
# ghcr.io/bg-playground/nat-engine:1.2 — major.minor shorthand
|
|
13
|
-
# ghcr.io/bg-playground/nat-engine:sha-<commit> — immutable commit-pinned tag
|
|
11
|
+
# ghcr.io/bg-playground/nat-engine:latest — most recent push to main (GHCR, private)
|
|
12
|
+
# ghcr.io/bg-playground/nat-engine:1.2.3 — semver release (GHCR, private)
|
|
13
|
+
# ghcr.io/bg-playground/nat-engine:1.2 — major.minor shorthand (GHCR, private)
|
|
14
|
+
# ghcr.io/bg-playground/nat-engine:sha-<commit> — immutable commit-pinned tag (GHCR, private)
|
|
15
|
+
# natengine/nat:latest — most recent push to main (Docker Hub, public)
|
|
16
|
+
# natengine/nat:1.2.3 — semver release (Docker Hub, public)
|
|
17
|
+
# natengine/nat:1.2 — major.minor shorthand (Docker Hub, public)
|
|
18
|
+
# natengine/nat:sha-<commit> — immutable commit-pinned tag (Docker Hub, public)
|
|
14
19
|
|
|
15
20
|
name: Docker Publish
|
|
16
21
|
|
|
@@ -55,11 +60,19 @@ jobs:
|
|
|
55
60
|
username: ${{ github.actor }}
|
|
56
61
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
57
62
|
|
|
63
|
+
- name: Log in to Docker Hub
|
|
64
|
+
uses: docker/login-action@v3
|
|
65
|
+
with:
|
|
66
|
+
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
67
|
+
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
68
|
+
|
|
58
69
|
- name: Extract Docker metadata
|
|
59
70
|
id: meta
|
|
60
71
|
uses: docker/metadata-action@v5
|
|
61
72
|
with:
|
|
62
|
-
images:
|
|
73
|
+
images: |
|
|
74
|
+
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
|
75
|
+
natengine/nat
|
|
63
76
|
tags: |
|
|
64
77
|
# Push "latest" on every main-branch push
|
|
65
78
|
type=raw,value=latest,enable={{is_default_branch}}
|
|
@@ -79,12 +92,15 @@ jobs:
|
|
|
79
92
|
id: scm-version
|
|
80
93
|
run: |
|
|
81
94
|
RAW="${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}"
|
|
82
|
-
if echo "$RAW" | grep -qE '^[0-9]+\.[0-9]+'; then
|
|
83
|
-
|
|
95
|
+
if echo "$RAW" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+'; then
|
|
96
|
+
# Strip any leading 'v' just in case
|
|
97
|
+
VERSION=$(echo "$RAW" | sed 's/^v//')
|
|
84
98
|
else
|
|
85
|
-
|
|
86
|
-
|
|
99
|
+
# For non-release builds (main branch pushes), use a safe dev version
|
|
100
|
+
VERSION="0.0.0.dev1"
|
|
87
101
|
fi
|
|
102
|
+
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
|
|
103
|
+
echo "Resolved SETUPTOOLS_SCM_PRETEND_VERSION=$VERSION"
|
|
88
104
|
|
|
89
105
|
- name: Build and push Docker image
|
|
90
106
|
uses: docker/build-push-action@v6
|
|
@@ -97,7 +113,7 @@ jobs:
|
|
|
97
113
|
build-args: |
|
|
98
114
|
BUILD_DATE=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }}
|
|
99
115
|
VCS_REF=${{ github.sha }}
|
|
100
|
-
VERSION=${{
|
|
116
|
+
VERSION=${{ steps.scm-version.outputs.version }}
|
|
101
117
|
SETUPTOOLS_SCM_PRETEND_VERSION=${{ steps.scm-version.outputs.version }}
|
|
102
118
|
cache-from: type=gha
|
|
103
119
|
cache-to: type=gha,mode=max
|
|
@@ -102,12 +102,28 @@ jobs:
|
|
|
102
102
|
- name: Install build tooling
|
|
103
103
|
run: pip install --quiet build twine
|
|
104
104
|
|
|
105
|
+
- name: Derive version from tag
|
|
106
|
+
id: version
|
|
107
|
+
run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
|
|
108
|
+
|
|
105
109
|
- name: Build sdist and wheel
|
|
106
110
|
run: python -m build
|
|
111
|
+
env:
|
|
112
|
+
SETUPTOOLS_SCM_PRETEND_VERSION: ${{ steps.version.outputs.version }}
|
|
107
113
|
|
|
108
114
|
- name: Validate distributions
|
|
109
115
|
run: twine check dist/*
|
|
110
116
|
|
|
117
|
+
- name: Verify package version matches tag
|
|
118
|
+
run: |
|
|
119
|
+
EXPECTED="${GITHUB_REF_NAME#v}"
|
|
120
|
+
WHEEL=$(ls dist/*.whl)
|
|
121
|
+
if [[ "$WHEEL" != *"nat_engine-${EXPECTED}-"* ]]; then
|
|
122
|
+
echo "::error::Version mismatch! Expected ${EXPECTED} but wheel is: ${WHEEL}"
|
|
123
|
+
exit 1
|
|
124
|
+
fi
|
|
125
|
+
echo "✅ Version verified: ${EXPECTED}"
|
|
126
|
+
|
|
111
127
|
- name: Upload build artifacts
|
|
112
128
|
uses: actions/upload-artifact@v4
|
|
113
129
|
with:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nat-engine
|
|
3
|
-
Version: 1
|
|
3
|
+
Version: 1.1.6
|
|
4
4
|
Summary: NeuroAgentTest (NAT) — AI-powered API testing with multi-agent neural networks, OWASP security scanning, and adaptive test allocation
|
|
5
5
|
Author-email: NAT Contributors <licensing@nat-testing.io>
|
|
6
6
|
License: AGPL-3.0-or-later
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
# NAT Feature Coverage Matrix
|
|
2
2
|
|
|
3
3
|
<!-- AUTO-GENERATED by scripts/generate_coverage_matrix.py — do not edit manually -->
|
|
4
|
-
<!-- Last updated: 2026-04-
|
|
4
|
+
<!-- Last updated: 2026-04-13T00:21:40Z -->
|
|
5
5
|
|
|
6
6
|
Maps every NAT capability to its E2E tests and last-known CI status.
|
|
7
7
|
|
|
8
|
-
**Last run:** `
|
|
8
|
+
**Last run:** `24319967891` · **SHA:** `dd5c317` · **Pass rate:** 100.0% (13/13 features)
|
|
9
9
|
|
|
10
10
|
| NAT Capability | E2E Tests | Last Status | Last Run |
|
|
11
11
|
|---|---|---|---|
|
|
12
|
-
| REST API Scan | `test_e2e_scan_rest::test_finds_sqli`, `test_e2e_scan_rest::test_finds_xss`, `test_e2e_scan_rest::test_finds_idor` | ✅ Pass | 2026-04-
|
|
13
|
-
| GraphQL Scan | `test_e2e_scan_graphql::test_introspection`, `test_e2e_scan_graphql::test_auth_bypass` | ✅ Pass | 2026-04-
|
|
14
|
-
| gRPC Scan | `test_e2e_scan_grpc::test_unary`, `test_e2e_scan_grpc::test_streaming` | ✅ Pass | 2026-04-
|
|
15
|
-
| LLM Test Plans | `test_e2e_plan::test_generate`, `test_e2e_plan::test_approve`, `test_e2e_plan::test_execute` | ✅ Pass | 2026-04-
|
|
16
|
-
| NL Test Authoring | `test_e2e_nl::test_generate`, `test_e2e_nl::test_execute` | ✅ Pass | 2026-04-
|
|
17
|
-
| Root Cause Analysis | `test_e2e_root_cause::test_analyze`, `test_e2e_root_cause::test_retrieve` | ⚪ Not Run | 2026-04-
|
|
18
|
-
| Export JSON | `test_e2e_export_json::test_json` | ⚪ Not Run | 2026-04-
|
|
19
|
-
| Export HTML | `test_e2e_export_html::test_html` | ⚪ Not Run | 2026-04-
|
|
20
|
-
| Export PDF | `test_e2e_export_pdf::test_pdf` | ⚪ Not Run | 2026-04-
|
|
21
|
-
| Export JUnit | `test_e2e_export_junit::test_junit` | ⚪ Not Run | 2026-04-
|
|
22
|
-
| Export Allure | `test_e2e_export_allure::test_allure` | ⚪ Not Run | 2026-04-
|
|
23
|
-
| Export CTRF | `test_e2e_export_ctrf::test_ctrf` | ⚪ Not Run | 2026-04-
|
|
24
|
-
| API Endpoints | `test_e2e_api::test_health`, `test_e2e_api::test_scan_lifecycle` | ✅ Pass | 2026-04-
|
|
25
|
-
| Dashboard Navigation | `test_e2e_dashboard_nav::test_sidebar`, `test_e2e_dashboard_nav::test_tabs` | ✅ Pass | 2026-04-
|
|
26
|
-
| Dashboard Scans | `test_e2e_dashboard_scans::test_scan_table`, `test_e2e_dashboard_scans::test_scan_detail` | ✅ Pass | 2026-04-
|
|
27
|
-
| Dashboard Test Plans | `test_e2e_dashboard_plans::test_plan_list`, `test_e2e_dashboard_plans::test_plan_detail` | ✅ Pass | 2026-04-
|
|
28
|
-
| Dashboard Schedules | `test_e2e_dashboard_schedule::test_create_schedule`, `test_e2e_dashboard_schedule::test_trigger_schedule` | ✅ Pass | 2026-04-
|
|
29
|
-
| Team Collaboration | `test_e2e_dashboard_team::test_invite_member`, `test_e2e_dashboard_team::test_role_assignment` | ✅ Pass | 2026-04-
|
|
12
|
+
| REST API Scan | `test_e2e_scan_rest::test_finds_sqli`, `test_e2e_scan_rest::test_finds_xss`, `test_e2e_scan_rest::test_finds_idor` | ✅ Pass | 2026-04-13 |
|
|
13
|
+
| GraphQL Scan | `test_e2e_scan_graphql::test_introspection`, `test_e2e_scan_graphql::test_auth_bypass` | ✅ Pass | 2026-04-13 |
|
|
14
|
+
| gRPC Scan | `test_e2e_scan_grpc::test_unary`, `test_e2e_scan_grpc::test_streaming` | ✅ Pass | 2026-04-13 |
|
|
15
|
+
| LLM Test Plans | `test_e2e_plan::test_generate`, `test_e2e_plan::test_approve`, `test_e2e_plan::test_execute` | ✅ Pass | 2026-04-13 |
|
|
16
|
+
| NL Test Authoring | `test_e2e_nl::test_generate`, `test_e2e_nl::test_execute` | ✅ Pass | 2026-04-13 |
|
|
17
|
+
| Root Cause Analysis | `test_e2e_root_cause::test_analyze`, `test_e2e_root_cause::test_retrieve` | ⚪ Not Run | 2026-04-13 |
|
|
18
|
+
| Export JSON | `test_e2e_export_json::test_json` | ⚪ Not Run | 2026-04-13 |
|
|
19
|
+
| Export HTML | `test_e2e_export_html::test_html` | ⚪ Not Run | 2026-04-13 |
|
|
20
|
+
| Export PDF | `test_e2e_export_pdf::test_pdf` | ⚪ Not Run | 2026-04-13 |
|
|
21
|
+
| Export JUnit | `test_e2e_export_junit::test_junit` | ⚪ Not Run | 2026-04-13 |
|
|
22
|
+
| Export Allure | `test_e2e_export_allure::test_allure` | ⚪ Not Run | 2026-04-13 |
|
|
23
|
+
| Export CTRF | `test_e2e_export_ctrf::test_ctrf` | ⚪ Not Run | 2026-04-13 |
|
|
24
|
+
| API Endpoints | `test_e2e_api::test_health`, `test_e2e_api::test_scan_lifecycle` | ✅ Pass | 2026-04-13 |
|
|
25
|
+
| Dashboard Navigation | `test_e2e_dashboard_nav::test_sidebar`, `test_e2e_dashboard_nav::test_tabs` | ✅ Pass | 2026-04-13 |
|
|
26
|
+
| Dashboard Scans | `test_e2e_dashboard_scans::test_scan_table`, `test_e2e_dashboard_scans::test_scan_detail` | ✅ Pass | 2026-04-13 |
|
|
27
|
+
| Dashboard Test Plans | `test_e2e_dashboard_plans::test_plan_list`, `test_e2e_dashboard_plans::test_plan_detail` | ✅ Pass | 2026-04-13 |
|
|
28
|
+
| Dashboard Schedules | `test_e2e_dashboard_schedule::test_create_schedule`, `test_e2e_dashboard_schedule::test_trigger_schedule` | ✅ Pass | 2026-04-13 |
|
|
29
|
+
| Team Collaboration | `test_e2e_dashboard_team::test_invite_member`, `test_e2e_dashboard_team::test_role_assignment` | ✅ Pass | 2026-04-13 |
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"run_id": "
|
|
3
|
-
"timestamp": "2026-04-
|
|
4
|
-
"git_sha": "
|
|
2
|
+
"run_id": "24319967891",
|
|
3
|
+
"timestamp": "2026-04-13T00:21:40Z",
|
|
4
|
+
"git_sha": "dd5c317",
|
|
5
5
|
"git_ref": "refs/heads/main",
|
|
6
|
-
"duration_seconds":
|
|
6
|
+
"duration_seconds": 84.8,
|
|
7
7
|
"features": {
|
|
8
8
|
"api": {
|
|
9
9
|
"status": "pass",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"passed": 19,
|
|
12
12
|
"failed": 0,
|
|
13
13
|
"skipped": 0,
|
|
14
|
-
"duration_ms":
|
|
14
|
+
"duration_ms": 217.7
|
|
15
15
|
},
|
|
16
16
|
"dashboard_nav": {
|
|
17
17
|
"status": "pass",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"passed": 18,
|
|
20
20
|
"failed": 0,
|
|
21
21
|
"skipped": 0,
|
|
22
|
-
"duration_ms":
|
|
22
|
+
"duration_ms": 3446.7
|
|
23
23
|
},
|
|
24
24
|
"dashboard_other": {
|
|
25
25
|
"status": "pass",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"passed": 54,
|
|
28
28
|
"failed": 0,
|
|
29
29
|
"skipped": 0,
|
|
30
|
-
"duration_ms":
|
|
30
|
+
"duration_ms": 13379.0
|
|
31
31
|
},
|
|
32
32
|
"dashboard_plans": {
|
|
33
33
|
"status": "pass",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"passed": 6,
|
|
36
36
|
"failed": 0,
|
|
37
37
|
"skipped": 0,
|
|
38
|
-
"duration_ms":
|
|
38
|
+
"duration_ms": 9160.2
|
|
39
39
|
},
|
|
40
40
|
"dashboard_scans": {
|
|
41
41
|
"status": "pass",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"passed": 7,
|
|
44
44
|
"failed": 0,
|
|
45
45
|
"skipped": 0,
|
|
46
|
-
"duration_ms":
|
|
46
|
+
"duration_ms": 1968.0
|
|
47
47
|
},
|
|
48
48
|
"e2e_other": {
|
|
49
49
|
"status": "pass",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"passed": 47,
|
|
52
52
|
"failed": 0,
|
|
53
53
|
"skipped": 0,
|
|
54
|
-
"duration_ms":
|
|
54
|
+
"duration_ms": 17213.9
|
|
55
55
|
},
|
|
56
56
|
"graphql_scan": {
|
|
57
57
|
"status": "pass",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"passed": 7,
|
|
60
60
|
"failed": 0,
|
|
61
61
|
"skipped": 0,
|
|
62
|
-
"duration_ms":
|
|
62
|
+
"duration_ms": 994.5
|
|
63
63
|
},
|
|
64
64
|
"grpc_scan": {
|
|
65
65
|
"status": "pass",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"passed": 4,
|
|
68
68
|
"failed": 0,
|
|
69
69
|
"skipped": 2,
|
|
70
|
-
"duration_ms":
|
|
70
|
+
"duration_ms": 2046.2
|
|
71
71
|
},
|
|
72
72
|
"llm_plan": {
|
|
73
73
|
"status": "pass",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"passed": 10,
|
|
76
76
|
"failed": 0,
|
|
77
77
|
"skipped": 0,
|
|
78
|
-
"duration_ms":
|
|
78
|
+
"duration_ms": 31.7
|
|
79
79
|
},
|
|
80
80
|
"nl_authoring": {
|
|
81
81
|
"status": "pass",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"passed": 8,
|
|
84
84
|
"failed": 0,
|
|
85
85
|
"skipped": 0,
|
|
86
|
-
"duration_ms":
|
|
86
|
+
"duration_ms": 41.8
|
|
87
87
|
},
|
|
88
88
|
"rest_scan": {
|
|
89
89
|
"status": "pass",
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"passed": 13,
|
|
92
92
|
"failed": 0,
|
|
93
93
|
"skipped": 0,
|
|
94
|
-
"duration_ms":
|
|
94
|
+
"duration_ms": 5219.2
|
|
95
95
|
},
|
|
96
96
|
"schedules": {
|
|
97
97
|
"status": "pass",
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"passed": 5,
|
|
100
100
|
"failed": 0,
|
|
101
101
|
"skipped": 6,
|
|
102
|
-
"duration_ms":
|
|
102
|
+
"duration_ms": 11538.9
|
|
103
103
|
},
|
|
104
104
|
"team_collab": {
|
|
105
105
|
"status": "pass",
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
"passed": 6,
|
|
108
108
|
"failed": 0,
|
|
109
109
|
"skipped": 0,
|
|
110
|
-
"duration_ms":
|
|
110
|
+
"duration_ms": 774.6
|
|
111
111
|
}
|
|
112
112
|
},
|
|
113
113
|
"summary": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
</head>
|
|
47
47
|
<body>
|
|
48
48
|
<h1>🧪 NAT E2E Trend Dashboard</h1>
|
|
49
|
-
<p class="subtitle">Generated: 2026-04-
|
|
49
|
+
<p class="subtitle">Generated: 2026-04-13T00:21:40Z · 1 run(s) tracked</p>
|
|
50
50
|
|
|
51
51
|
<div class="kpi-grid">
|
|
52
52
|
<div class="kpi">
|
|
@@ -91,9 +91,9 @@
|
|
|
91
91
|
</div>
|
|
92
92
|
|
|
93
93
|
<script>
|
|
94
|
-
const labels = ["04-
|
|
94
|
+
const labels = ["04-13 00:21"];
|
|
95
95
|
const passRates = [100.0];
|
|
96
|
-
const durations = [
|
|
96
|
+
const durations = [84.8];
|
|
97
97
|
const heatmapDatasets = [{"label": "api", "data": [1]}, {"label": "dashboard_nav", "data": [1]}, {"label": "dashboard_other", "data": [1]}, {"label": "dashboard_plans", "data": [1]}, {"label": "dashboard_scans", "data": [1]}, {"label": "e2e_other", "data": [1]}, {"label": "graphql_scan", "data": [1]}, {"label": "grpc_scan", "data": [1]}, {"label": "llm_plan", "data": [1]}, {"label": "nl_authoring", "data": [1]}, {"label": "rest_scan", "data": [1]}, {"label": "schedules", "data": [1]}, {"label": "team_collab", "data": [1]}];
|
|
98
98
|
const features = ["api", "dashboard_nav", "dashboard_other", "dashboard_plans", "dashboard_scans", "e2e_other", "graphql_scan", "grpc_scan", "llm_plan", "nl_authoring", "rest_scan", "schedules", "team_collab"];
|
|
99
99
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nat-engine
|
|
3
|
-
Version: 1
|
|
3
|
+
Version: 1.1.6
|
|
4
4
|
Summary: NeuroAgentTest (NAT) — AI-powered API testing with multi-agent neural networks, OWASP security scanning, and adaptive test allocation
|
|
5
5
|
Author-email: NAT Contributors <licensing@nat-testing.io>
|
|
6
6
|
License: AGPL-3.0-or-later
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|