nat-engine 1.0.5__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.
Files changed (420) hide show
  1. nat_engine-1.0.5/.dockerignore +44 -0
  2. nat_engine-1.0.5/CHANGELOG.md +179 -0
  3. nat_engine-1.0.5/CLA.md +114 -0
  4. nat_engine-1.0.5/COMMERCIAL_LICENSE.md +76 -0
  5. nat_engine-1.0.5/CONTRIBUTING.md +60 -0
  6. nat_engine-1.0.5/Dockerfile +77 -0
  7. nat_engine-1.0.5/LICENSE +651 -0
  8. nat_engine-1.0.5/MANIFEST.in +42 -0
  9. nat_engine-1.0.5/NOTICE +178 -0
  10. nat_engine-1.0.5/PKG-INFO +441 -0
  11. nat_engine-1.0.5/README.md +381 -0
  12. nat_engine-1.0.5/action/Dockerfile +36 -0
  13. nat_engine-1.0.5/action/README.md +246 -0
  14. nat_engine-1.0.5/action/entrypoint.sh +90 -0
  15. nat_engine-1.0.5/action/parse_results.py +430 -0
  16. nat_engine-1.0.5/action.yml +227 -0
  17. nat_engine-1.0.5/ci-templates/azure/README.md +179 -0
  18. nat_engine-1.0.5/ci-templates/azure/azure-pipelines-nat.yml +226 -0
  19. nat_engine-1.0.5/ci-templates/gitlab/.gitlab-ci-nat.yml +152 -0
  20. nat_engine-1.0.5/ci-templates/gitlab/README.md +143 -0
  21. nat_engine-1.0.5/ci-templates/jenkins/Jenkinsfile.example +61 -0
  22. nat_engine-1.0.5/ci-templates/jenkins/README.md +201 -0
  23. nat_engine-1.0.5/ci-templates/jenkins/vars/natScan.groovy +183 -0
  24. nat_engine-1.0.5/deploy/azure/container-app.yaml +135 -0
  25. nat_engine-1.0.5/deploy/k8s/configmap.yaml +17 -0
  26. nat_engine-1.0.5/deploy/k8s/deployment.yaml +84 -0
  27. nat_engine-1.0.5/deploy/k8s/service.yaml +22 -0
  28. nat_engine-1.0.5/docker-compose.dev.yml +45 -0
  29. nat_engine-1.0.5/docker-compose.prod.yml +58 -0
  30. nat_engine-1.0.5/docker-compose.yml +72 -0
  31. nat_engine-1.0.5/docs/README.md +123 -0
  32. nat_engine-1.0.5/docs/api-reference/github-action.md +284 -0
  33. nat_engine-1.0.5/docs/api-reference/python-api.md +638 -0
  34. nat_engine-1.0.5/docs/api-reference/rest-api.md +980 -0
  35. nat_engine-1.0.5/docs/assets/cli-scan-output.png +0 -0
  36. nat_engine-1.0.5/docs/assets/cli-security-output.png +0 -0
  37. nat_engine-1.0.5/docs/assets/dashboad-overview-00.png +0 -0
  38. nat_engine-1.0.5/docs/assets/dashboard-agents-02.png +0 -0
  39. nat_engine-1.0.5/docs/assets/dashboard-agents-03.png +0 -0
  40. nat_engine-1.0.5/docs/assets/dashboard-agents-dark.png +0 -0
  41. nat_engine-1.0.5/docs/assets/dashboard-dark-mode-off.png +0 -0
  42. nat_engine-1.0.5/docs/assets/dashboard-history.png +0 -0
  43. nat_engine-1.0.5/docs/assets/dashboard-overview-000.png +0 -0
  44. nat_engine-1.0.5/docs/assets/dashboard-overview-02.png +0 -0
  45. nat_engine-1.0.5/docs/assets/dashboard-overview-03.png +0 -0
  46. nat_engine-1.0.5/docs/assets/dashboard-overview-top.png +0 -0
  47. nat_engine-1.0.5/docs/assets/dashboard-security-detail.png +0 -0
  48. nat_engine-1.0.5/docs/assets/dashboard-security.png +0 -0
  49. nat_engine-1.0.5/docs/assets/security-detail.png +0 -0
  50. nat_engine-1.0.5/docs/changelog.md +223 -0
  51. nat_engine-1.0.5/docs/concepts/architecture.md +314 -0
  52. nat_engine-1.0.5/docs/concepts/bdi-agents.md +204 -0
  53. nat_engine-1.0.5/docs/concepts/ecnp-protocol.md +180 -0
  54. nat_engine-1.0.5/docs/concepts/neural-networks.md +317 -0
  55. nat_engine-1.0.5/docs/concepts/security-model.md +327 -0
  56. nat_engine-1.0.5/docs/contributing.md +448 -0
  57. nat_engine-1.0.5/docs/demo/README.md +200 -0
  58. nat_engine-1.0.5/docs/faq.md +310 -0
  59. nat_engine-1.0.5/docs/getting-started/first-scan.md +246 -0
  60. nat_engine-1.0.5/docs/getting-started/installation.md +234 -0
  61. nat_engine-1.0.5/docs/getting-started/quickstart.md +166 -0
  62. nat_engine-1.0.5/docs/guides/authentication.md +953 -0
  63. nat_engine-1.0.5/docs/guides/belief-driven-prioritization.md +235 -0
  64. nat_engine-1.0.5/docs/guides/billing.md +775 -0
  65. nat_engine-1.0.5/docs/guides/ci-cd-integration.md +725 -0
  66. nat_engine-1.0.5/docs/guides/cli-reference.md +509 -0
  67. nat_engine-1.0.5/docs/guides/custom-check-plugins.md +347 -0
  68. nat_engine-1.0.5/docs/guides/dashboard.md +232 -0
  69. nat_engine-1.0.5/docs/guides/demo-mode.md +449 -0
  70. nat_engine-1.0.5/docs/guides/docker-deployment.md +485 -0
  71. nat_engine-1.0.5/docs/guides/e2e-billing-runbook.md +350 -0
  72. nat_engine-1.0.5/docs/guides/exporter-plugins.md +543 -0
  73. nat_engine-1.0.5/docs/guides/graphql-testing.md +308 -0
  74. nat_engine-1.0.5/docs/guides/ingestor-plugins.md +970 -0
  75. nat_engine-1.0.5/docs/guides/llm-augmented-testing.md +238 -0
  76. nat_engine-1.0.5/docs/guides/metering.md +222 -0
  77. nat_engine-1.0.5/docs/guides/notifications.md +288 -0
  78. nat_engine-1.0.5/docs/guides/releasing.md +183 -0
  79. nat_engine-1.0.5/docs/guides/rest-api-testing.md +872 -0
  80. nat_engine-1.0.5/docs/guides/risk-scoring.md +374 -0
  81. nat_engine-1.0.5/docs/guides/scheduled-scans.md +437 -0
  82. nat_engine-1.0.5/docs/guides/security-scanning.md +400 -0
  83. nat_engine-1.0.5/docs/guides/self-healing-test-suites.md +257 -0
  84. nat_engine-1.0.5/docs/guides/transfer-learning.md +216 -0
  85. nat_engine-1.0.5/docs/how-to/customize-security-checks.md +277 -0
  86. nat_engine-1.0.5/docs/how-to/deploy-with-docker.md +402 -0
  87. nat_engine-1.0.5/docs/how-to/integrate-with-github-actions.md +447 -0
  88. nat_engine-1.0.5/docs/how-to/read-risk-reports.md +274 -0
  89. nat_engine-1.0.5/docs/how-to/run-security-audit.md +276 -0
  90. nat_engine-1.0.5/docs/how-to/setup-oauth2.md +282 -0
  91. nat_engine-1.0.5/docs/how-to/test-graphql-api.md +266 -0
  92. nat_engine-1.0.5/docs/how-to/test-openapi-spec.md +235 -0
  93. nat_engine-1.0.5/docs/ip/README.md +115 -0
  94. nat_engine-1.0.5/docs/ip/disclosure-001-bounded-belief-revision.md +344 -0
  95. nat_engine-1.0.5/docs/ip/disclosure-002-extended-contract-net-protocol.md +322 -0
  96. nat_engine-1.0.5/docs/ip/disclosure-003-adaptive-test-allocation.md +350 -0
  97. nat_engine-1.0.5/docs/ip/disclosure-004-multi-agent-bdi-architecture.md +404 -0
  98. nat_engine-1.0.5/docs/legal/licensing.md +187 -0
  99. nat_engine-1.0.5/docs/sales/competitor-matrix.md +108 -0
  100. nat_engine-1.0.5/docs/sales/email-templates.md +264 -0
  101. nat_engine-1.0.5/docs/sales/onboarding-faq.md +197 -0
  102. nat_engine-1.0.5/docs/sales/sales-playbook.md +187 -0
  103. nat_engine-1.0.5/docs/sales/value-proposition.md +95 -0
  104. nat_engine-1.0.5/docs/troubleshooting/auth-issues.md +252 -0
  105. nat_engine-1.0.5/docs/troubleshooting/ci-cd-issues.md +421 -0
  106. nat_engine-1.0.5/docs/troubleshooting/common-issues.md +274 -0
  107. nat_engine-1.0.5/docs/troubleshooting/connection-errors.md +265 -0
  108. nat_engine-1.0.5/docs/troubleshooting/docker-issues.md +416 -0
  109. nat_engine-1.0.5/docs/vision/functional-testing-saas.md +607 -0
  110. nat_engine-1.0.5/docs/whitepaper.md +699 -0
  111. nat_engine-1.0.5/examples/demo.py +172 -0
  112. nat_engine-1.0.5/examples/exporters/console_exporter.py +65 -0
  113. nat_engine-1.0.5/examples/ingestors/csv_ingestor.py +298 -0
  114. nat_engine-1.0.5/examples/petstore-openapi.yaml +567 -0
  115. nat_engine-1.0.5/examples/pipeline.yaml +75 -0
  116. nat_engine-1.0.5/examples/plugins/rate_limit_check.py +55 -0
  117. nat_engine-1.0.5/examples/python/basic_scan.py +206 -0
  118. nat_engine-1.0.5/examples/python/graphql_scan.py +215 -0
  119. nat_engine-1.0.5/examples/python/oauth2_scan.py +267 -0
  120. nat_engine-1.0.5/examples/python/security_audit.py +294 -0
  121. nat_engine-1.0.5/examples/workflows/README.md +79 -0
  122. nat_engine-1.0.5/pyproject.toml +111 -0
  123. nat_engine-1.0.5/setup.cfg +4 -0
  124. nat_engine-1.0.5/src/mannf/__init__.py +33 -0
  125. nat_engine-1.0.5/src/mannf/__main__.py +10 -0
  126. nat_engine-1.0.5/src/mannf/_version.py +8 -0
  127. nat_engine-1.0.5/src/mannf/agents/__init__.py +7 -0
  128. nat_engine-1.0.5/src/mannf/agents/analyzer_agent.py +9 -0
  129. nat_engine-1.0.5/src/mannf/agents/base.py +9 -0
  130. nat_engine-1.0.5/src/mannf/agents/bdi_agent.py +9 -0
  131. nat_engine-1.0.5/src/mannf/agents/belief_state.py +9 -0
  132. nat_engine-1.0.5/src/mannf/agents/coordinator_agent.py +9 -0
  133. nat_engine-1.0.5/src/mannf/agents/executor_agent.py +9 -0
  134. nat_engine-1.0.5/src/mannf/agents/monitor_agent.py +9 -0
  135. nat_engine-1.0.5/src/mannf/agents/oracle_agent.py +9 -0
  136. nat_engine-1.0.5/src/mannf/agents/planner_agent.py +9 -0
  137. nat_engine-1.0.5/src/mannf/agents/test_agent.py +9 -0
  138. nat_engine-1.0.5/src/mannf/anomaly/__init__.py +7 -0
  139. nat_engine-1.0.5/src/mannf/anomaly/enhanced_detector.py +9 -0
  140. nat_engine-1.0.5/src/mannf/cli.py +9 -0
  141. nat_engine-1.0.5/src/mannf/core/__init__.py +26 -0
  142. nat_engine-1.0.5/src/mannf/core/agents/__init__.py +46 -0
  143. nat_engine-1.0.5/src/mannf/core/agents/accessibility_scanner_agent.py +245 -0
  144. nat_engine-1.0.5/src/mannf/core/agents/analyzer_agent.py +224 -0
  145. nat_engine-1.0.5/src/mannf/core/agents/base.py +128 -0
  146. nat_engine-1.0.5/src/mannf/core/agents/bdi_agent.py +315 -0
  147. nat_engine-1.0.5/src/mannf/core/agents/belief_state.py +167 -0
  148. nat_engine-1.0.5/src/mannf/core/agents/browser_coordinator_agent.py +224 -0
  149. nat_engine-1.0.5/src/mannf/core/agents/browser_executor_agent.py +410 -0
  150. nat_engine-1.0.5/src/mannf/core/agents/coordinator_agent.py +262 -0
  151. nat_engine-1.0.5/src/mannf/core/agents/executor_agent.py +222 -0
  152. nat_engine-1.0.5/src/mannf/core/agents/monitor_agent.py +188 -0
  153. nat_engine-1.0.5/src/mannf/core/agents/oracle_agent.py +150 -0
  154. nat_engine-1.0.5/src/mannf/core/agents/performance_testing_agent.py +279 -0
  155. nat_engine-1.0.5/src/mannf/core/agents/planner_agent.py +128 -0
  156. nat_engine-1.0.5/src/mannf/core/agents/test_agent.py +249 -0
  157. nat_engine-1.0.5/src/mannf/core/agents/visual_regression_agent.py +311 -0
  158. nat_engine-1.0.5/src/mannf/core/anomaly/__init__.py +14 -0
  159. nat_engine-1.0.5/src/mannf/core/anomaly/enhanced_detector.py +541 -0
  160. nat_engine-1.0.5/src/mannf/core/browser/__init__.py +50 -0
  161. nat_engine-1.0.5/src/mannf/core/browser/accessibility_scanner.py +424 -0
  162. nat_engine-1.0.5/src/mannf/core/browser/dom_snapshot.py +265 -0
  163. nat_engine-1.0.5/src/mannf/core/browser/performance_metrics.py +217 -0
  164. nat_engine-1.0.5/src/mannf/core/browser/visual_comparer.py +159 -0
  165. nat_engine-1.0.5/src/mannf/core/distributed/__init__.py +16 -0
  166. nat_engine-1.0.5/src/mannf/core/distributed/endpoint.py +76 -0
  167. nat_engine-1.0.5/src/mannf/core/distributed/system_under_test.py +207 -0
  168. nat_engine-1.0.5/src/mannf/core/functional_orchestrator.py +375 -0
  169. nat_engine-1.0.5/src/mannf/core/messaging/__init__.py +11 -0
  170. nat_engine-1.0.5/src/mannf/core/messaging/bus.py +113 -0
  171. nat_engine-1.0.5/src/mannf/core/messaging/messages.py +81 -0
  172. nat_engine-1.0.5/src/mannf/core/nat_orchestrator.py +342 -0
  173. nat_engine-1.0.5/src/mannf/core/neural/__init__.py +183 -0
  174. nat_engine-1.0.5/src/mannf/core/orchestrator.py +272 -0
  175. nat_engine-1.0.5/src/mannf/core/prioritization/__init__.py +17 -0
  176. nat_engine-1.0.5/src/mannf/core/prioritization/adaptive_controller.py +509 -0
  177. nat_engine-1.0.5/src/mannf/core/prioritization/belief_prioritizer.py +231 -0
  178. nat_engine-1.0.5/src/mannf/core/prioritization/risk_scorer.py +305 -0
  179. nat_engine-1.0.5/src/mannf/core/reporting/__init__.py +12 -0
  180. nat_engine-1.0.5/src/mannf/core/reporting/unified_report.py +577 -0
  181. nat_engine-1.0.5/src/mannf/core/testing/__init__.py +17 -0
  182. nat_engine-1.0.5/src/mannf/core/testing/adaptive_controller.py +149 -0
  183. nat_engine-1.0.5/src/mannf/core/testing/models.py +179 -0
  184. nat_engine-1.0.5/src/mannf/dashboard/__init__.py +7 -0
  185. nat_engine-1.0.5/src/mannf/dashboard/app.py +9 -0
  186. nat_engine-1.0.5/src/mannf/dashboard/models.py +9 -0
  187. nat_engine-1.0.5/src/mannf/dashboard/static/index.html +2538 -0
  188. nat_engine-1.0.5/src/mannf/dashboard/telemetry.py +9 -0
  189. nat_engine-1.0.5/src/mannf/distributed/__init__.py +7 -0
  190. nat_engine-1.0.5/src/mannf/distributed/endpoint.py +9 -0
  191. nat_engine-1.0.5/src/mannf/distributed/system_under_test.py +9 -0
  192. nat_engine-1.0.5/src/mannf/healing/__init__.py +7 -0
  193. nat_engine-1.0.5/src/mannf/healing/graphql_schema_diff.py +9 -0
  194. nat_engine-1.0.5/src/mannf/healing/healer.py +9 -0
  195. nat_engine-1.0.5/src/mannf/healing/models.py +9 -0
  196. nat_engine-1.0.5/src/mannf/healing/schema_diff.py +9 -0
  197. nat_engine-1.0.5/src/mannf/integrations/__init__.py +7 -0
  198. nat_engine-1.0.5/src/mannf/integrations/auth.py +9 -0
  199. nat_engine-1.0.5/src/mannf/integrations/graphql_parser.py +9 -0
  200. nat_engine-1.0.5/src/mannf/integrations/graphql_sut.py +9 -0
  201. nat_engine-1.0.5/src/mannf/integrations/http_sut.py +9 -0
  202. nat_engine-1.0.5/src/mannf/integrations/openapi_parser.py +9 -0
  203. nat_engine-1.0.5/src/mannf/integrations/postman_parser.py +9 -0
  204. nat_engine-1.0.5/src/mannf/llm/__init__.py +7 -0
  205. nat_engine-1.0.5/src/mannf/llm/anthropic_provider.py +9 -0
  206. nat_engine-1.0.5/src/mannf/llm/base.py +9 -0
  207. nat_engine-1.0.5/src/mannf/llm/config.py +9 -0
  208. nat_engine-1.0.5/src/mannf/llm/factory.py +9 -0
  209. nat_engine-1.0.5/src/mannf/llm/openai_provider.py +9 -0
  210. nat_engine-1.0.5/src/mannf/llm/prompts.py +9 -0
  211. nat_engine-1.0.5/src/mannf/messaging/__init__.py +7 -0
  212. nat_engine-1.0.5/src/mannf/messaging/bus.py +9 -0
  213. nat_engine-1.0.5/src/mannf/messaging/messages.py +9 -0
  214. nat_engine-1.0.5/src/mannf/nat_orchestrator.py +9 -0
  215. nat_engine-1.0.5/src/mannf/neural/__init__.py +7 -0
  216. nat_engine-1.0.5/src/mannf/orchestrator.py +9 -0
  217. nat_engine-1.0.5/src/mannf/prioritization/__init__.py +7 -0
  218. nat_engine-1.0.5/src/mannf/prioritization/adaptive_controller.py +9 -0
  219. nat_engine-1.0.5/src/mannf/prioritization/belief_prioritizer.py +9 -0
  220. nat_engine-1.0.5/src/mannf/prioritization/risk_scorer.py +9 -0
  221. nat_engine-1.0.5/src/mannf/product/__init__.py +29 -0
  222. nat_engine-1.0.5/src/mannf/product/admin/__init__.py +3 -0
  223. nat_engine-1.0.5/src/mannf/product/admin/routes.py +234 -0
  224. nat_engine-1.0.5/src/mannf/product/billing/__init__.py +5 -0
  225. nat_engine-1.0.5/src/mannf/product/billing/audit.py +160 -0
  226. nat_engine-1.0.5/src/mannf/product/billing/feature_gates.py +155 -0
  227. nat_engine-1.0.5/src/mannf/product/billing/metering.py +179 -0
  228. nat_engine-1.0.5/src/mannf/product/billing/notifications.py +181 -0
  229. nat_engine-1.0.5/src/mannf/product/billing/plans.py +127 -0
  230. nat_engine-1.0.5/src/mannf/product/billing/rate_limits.py +35 -0
  231. nat_engine-1.0.5/src/mannf/product/billing/stripe_billing.py +906 -0
  232. nat_engine-1.0.5/src/mannf/product/billing/tenant_auth.py +233 -0
  233. nat_engine-1.0.5/src/mannf/product/billing/tenant_manager.py +422 -0
  234. nat_engine-1.0.5/src/mannf/product/cli.py +2113 -0
  235. nat_engine-1.0.5/src/mannf/product/cli_admin.py +408 -0
  236. nat_engine-1.0.5/src/mannf/product/dashboard/__init__.py +44 -0
  237. nat_engine-1.0.5/src/mannf/product/dashboard/app.py +870 -0
  238. nat_engine-1.0.5/src/mannf/product/dashboard/models.py +195 -0
  239. nat_engine-1.0.5/src/mannf/product/dashboard/static/index.html +4453 -0
  240. nat_engine-1.0.5/src/mannf/product/dashboard/static/manifest.json +25 -0
  241. nat_engine-1.0.5/src/mannf/product/dashboard/static/pwa-icon-192.png +0 -0
  242. nat_engine-1.0.5/src/mannf/product/dashboard/static/pwa-icon-512.png +0 -0
  243. nat_engine-1.0.5/src/mannf/product/dashboard/static/sw.js +64 -0
  244. nat_engine-1.0.5/src/mannf/product/dashboard/telemetry.py +259 -0
  245. nat_engine-1.0.5/src/mannf/product/database.py +145 -0
  246. nat_engine-1.0.5/src/mannf/product/demo.py +737 -0
  247. nat_engine-1.0.5/src/mannf/product/doctor.py +509 -0
  248. nat_engine-1.0.5/src/mannf/product/exporters/__init__.py +59 -0
  249. nat_engine-1.0.5/src/mannf/product/exporters/azuredevops_exporter.py +257 -0
  250. nat_engine-1.0.5/src/mannf/product/exporters/base.py +307 -0
  251. nat_engine-1.0.5/src/mannf/product/exporters/github_exporter.py +185 -0
  252. nat_engine-1.0.5/src/mannf/product/exporters/gitlab_exporter.py +215 -0
  253. nat_engine-1.0.5/src/mannf/product/exporters/jira_exporter.py +180 -0
  254. nat_engine-1.0.5/src/mannf/product/exporters/linear_exporter.py +195 -0
  255. nat_engine-1.0.5/src/mannf/product/exporters/loader.py +233 -0
  256. nat_engine-1.0.5/src/mannf/product/exporters/pagerduty_exporter.py +363 -0
  257. nat_engine-1.0.5/src/mannf/product/exporters/servicenow_exporter.py +240 -0
  258. nat_engine-1.0.5/src/mannf/product/exporters/shortcut_exporter.py +231 -0
  259. nat_engine-1.0.5/src/mannf/product/exporters/webhook_exporter.py +383 -0
  260. nat_engine-1.0.5/src/mannf/product/healing/__init__.py +30 -0
  261. nat_engine-1.0.5/src/mannf/product/healing/graphql_schema_diff.py +152 -0
  262. nat_engine-1.0.5/src/mannf/product/healing/healer.py +141 -0
  263. nat_engine-1.0.5/src/mannf/product/healing/models.py +175 -0
  264. nat_engine-1.0.5/src/mannf/product/healing/schema_diff.py +251 -0
  265. nat_engine-1.0.5/src/mannf/product/ingestors/__init__.py +62 -0
  266. nat_engine-1.0.5/src/mannf/product/ingestors/base.py +249 -0
  267. nat_engine-1.0.5/src/mannf/product/ingestors/bgstm_ingestor.py +764 -0
  268. nat_engine-1.0.5/src/mannf/product/ingestors/curl_ingestor.py +1019 -0
  269. nat_engine-1.0.5/src/mannf/product/ingestors/gherkin_ingestor.py +967 -0
  270. nat_engine-1.0.5/src/mannf/product/ingestors/graphql_ingestor.py +845 -0
  271. nat_engine-1.0.5/src/mannf/product/ingestors/har_ingestor.py +883 -0
  272. nat_engine-1.0.5/src/mannf/product/ingestors/loader.py +284 -0
  273. nat_engine-1.0.5/src/mannf/product/ingestors/models.py +146 -0
  274. nat_engine-1.0.5/src/mannf/product/ingestors/openapi_ingestor.py +606 -0
  275. nat_engine-1.0.5/src/mannf/product/ingestors/postman_ingestor.py +631 -0
  276. nat_engine-1.0.5/src/mannf/product/integrations/__init__.py +21 -0
  277. nat_engine-1.0.5/src/mannf/product/integrations/auth.py +190 -0
  278. nat_engine-1.0.5/src/mannf/product/integrations/graphql_parser.py +436 -0
  279. nat_engine-1.0.5/src/mannf/product/integrations/graphql_sut.py +247 -0
  280. nat_engine-1.0.5/src/mannf/product/integrations/http_sut.py +237 -0
  281. nat_engine-1.0.5/src/mannf/product/integrations/openapi_parser.py +513 -0
  282. nat_engine-1.0.5/src/mannf/product/integrations/postman_parser.py +467 -0
  283. nat_engine-1.0.5/src/mannf/product/llm/__init__.py +25 -0
  284. nat_engine-1.0.5/src/mannf/product/llm/anthropic_provider.py +94 -0
  285. nat_engine-1.0.5/src/mannf/product/llm/base.py +120 -0
  286. nat_engine-1.0.5/src/mannf/product/llm/config.py +48 -0
  287. nat_engine-1.0.5/src/mannf/product/llm/factory.py +42 -0
  288. nat_engine-1.0.5/src/mannf/product/llm/openai_provider.py +93 -0
  289. nat_engine-1.0.5/src/mannf/product/llm/prompts.py +88 -0
  290. nat_engine-1.0.5/src/mannf/product/metrics.py +149 -0
  291. nat_engine-1.0.5/src/mannf/product/middleware/__init__.py +3 -0
  292. nat_engine-1.0.5/src/mannf/product/middleware/tenant_isolation.py +62 -0
  293. nat_engine-1.0.5/src/mannf/product/models.py +238 -0
  294. nat_engine-1.0.5/src/mannf/product/notifications/__init__.py +24 -0
  295. nat_engine-1.0.5/src/mannf/product/notifications/dispatcher.py +387 -0
  296. nat_engine-1.0.5/src/mannf/product/onboarding.py +190 -0
  297. nat_engine-1.0.5/src/mannf/product/orchestration/__init__.py +39 -0
  298. nat_engine-1.0.5/src/mannf/product/orchestration/ingest_scan_orchestrator.py +339 -0
  299. nat_engine-1.0.5/src/mannf/product/orchestration/pipeline.py +401 -0
  300. nat_engine-1.0.5/src/mannf/product/orchestrator.py +913 -0
  301. nat_engine-1.0.5/src/mannf/product/orchestrator_models.py +266 -0
  302. nat_engine-1.0.5/src/mannf/product/regression/__init__.py +36 -0
  303. nat_engine-1.0.5/src/mannf/product/regression/differ.py +172 -0
  304. nat_engine-1.0.5/src/mannf/product/regression/masking.py +100 -0
  305. nat_engine-1.0.5/src/mannf/product/regression/models.py +232 -0
  306. nat_engine-1.0.5/src/mannf/product/regression/recorder.py +124 -0
  307. nat_engine-1.0.5/src/mannf/product/regression/replayer.py +168 -0
  308. nat_engine-1.0.5/src/mannf/product/scheduling/__init__.py +36 -0
  309. nat_engine-1.0.5/src/mannf/product/scheduling/cron_utils.py +251 -0
  310. nat_engine-1.0.5/src/mannf/product/scheduling/engine.py +418 -0
  311. nat_engine-1.0.5/src/mannf/product/scheduling/models.py +86 -0
  312. nat_engine-1.0.5/src/mannf/product/scheduling/store.py +215 -0
  313. nat_engine-1.0.5/src/mannf/product/security/__init__.py +21 -0
  314. nat_engine-1.0.5/src/mannf/product/security/belief_guided.py +130 -0
  315. nat_engine-1.0.5/src/mannf/product/security/checks/__init__.py +55 -0
  316. nat_engine-1.0.5/src/mannf/product/security/checks/base.py +69 -0
  317. nat_engine-1.0.5/src/mannf/product/security/checks/bfla.py +77 -0
  318. nat_engine-1.0.5/src/mannf/product/security/checks/bola.py +77 -0
  319. nat_engine-1.0.5/src/mannf/product/security/checks/bopla.py +80 -0
  320. nat_engine-1.0.5/src/mannf/product/security/checks/broken_auth.py +86 -0
  321. nat_engine-1.0.5/src/mannf/product/security/checks/graphql_security.py +299 -0
  322. nat_engine-1.0.5/src/mannf/product/security/checks/inventory.py +70 -0
  323. nat_engine-1.0.5/src/mannf/product/security/checks/misconfig.py +158 -0
  324. nat_engine-1.0.5/src/mannf/product/security/checks/resource_consumption.py +70 -0
  325. nat_engine-1.0.5/src/mannf/product/security/checks/sensitive_flows.py +80 -0
  326. nat_engine-1.0.5/src/mannf/product/security/checks/ssrf.py +101 -0
  327. nat_engine-1.0.5/src/mannf/product/security/checks/unsafe_consumption.py +120 -0
  328. nat_engine-1.0.5/src/mannf/product/security/models.py +92 -0
  329. nat_engine-1.0.5/src/mannf/product/security/plugin_loader.py +182 -0
  330. nat_engine-1.0.5/src/mannf/product/security/reporter.py +92 -0
  331. nat_engine-1.0.5/src/mannf/product/security/scanner.py +183 -0
  332. nat_engine-1.0.5/src/mannf/product/server.py +5071 -0
  333. nat_engine-1.0.5/src/mannf/product/setup_wizard.py +873 -0
  334. nat_engine-1.0.5/src/mannf/product/status.py +292 -0
  335. nat_engine-1.0.5/src/mannf/product/storage/__init__.py +10 -0
  336. nat_engine-1.0.5/src/mannf/product/storage/artifact_store.py +343 -0
  337. nat_engine-1.0.5/src/mannf/product/telemetry.py +300 -0
  338. nat_engine-1.0.5/src/mannf/product/uninstall.py +169 -0
  339. nat_engine-1.0.5/src/mannf/product/upgrade.py +139 -0
  340. nat_engine-1.0.5/src/mannf/product/weights/__init__.py +13 -0
  341. nat_engine-1.0.5/src/mannf/product/weights/blob_store.py +299 -0
  342. nat_engine-1.0.5/src/mannf/product/weights/factory.py +42 -0
  343. nat_engine-1.0.5/src/mannf/product/weights/registry.py +159 -0
  344. nat_engine-1.0.5/src/mannf/product/weights/store.py +210 -0
  345. nat_engine-1.0.5/src/mannf/regression/__init__.py +7 -0
  346. nat_engine-1.0.5/src/mannf/regression/differ.py +9 -0
  347. nat_engine-1.0.5/src/mannf/regression/masking.py +9 -0
  348. nat_engine-1.0.5/src/mannf/regression/models.py +9 -0
  349. nat_engine-1.0.5/src/mannf/regression/recorder.py +9 -0
  350. nat_engine-1.0.5/src/mannf/regression/replayer.py +9 -0
  351. nat_engine-1.0.5/src/mannf/security/__init__.py +7 -0
  352. nat_engine-1.0.5/src/mannf/security/belief_guided.py +9 -0
  353. nat_engine-1.0.5/src/mannf/security/checks/__init__.py +7 -0
  354. nat_engine-1.0.5/src/mannf/security/checks/base.py +9 -0
  355. nat_engine-1.0.5/src/mannf/security/checks/bfla.py +9 -0
  356. nat_engine-1.0.5/src/mannf/security/checks/bola.py +9 -0
  357. nat_engine-1.0.5/src/mannf/security/checks/bopla.py +9 -0
  358. nat_engine-1.0.5/src/mannf/security/checks/broken_auth.py +9 -0
  359. nat_engine-1.0.5/src/mannf/security/checks/graphql_security.py +9 -0
  360. nat_engine-1.0.5/src/mannf/security/checks/inventory.py +9 -0
  361. nat_engine-1.0.5/src/mannf/security/checks/misconfig.py +9 -0
  362. nat_engine-1.0.5/src/mannf/security/checks/resource_consumption.py +9 -0
  363. nat_engine-1.0.5/src/mannf/security/checks/sensitive_flows.py +9 -0
  364. nat_engine-1.0.5/src/mannf/security/checks/ssrf.py +9 -0
  365. nat_engine-1.0.5/src/mannf/security/checks/unsafe_consumption.py +9 -0
  366. nat_engine-1.0.5/src/mannf/security/models.py +9 -0
  367. nat_engine-1.0.5/src/mannf/security/reporter.py +9 -0
  368. nat_engine-1.0.5/src/mannf/security/scanner.py +9 -0
  369. nat_engine-1.0.5/src/mannf/server.py +9 -0
  370. nat_engine-1.0.5/src/mannf/testing/__init__.py +7 -0
  371. nat_engine-1.0.5/src/mannf/testing/adaptive_controller.py +9 -0
  372. nat_engine-1.0.5/src/mannf/testing/models.py +9 -0
  373. nat_engine-1.0.5/src/mannf/weights/__init__.py +7 -0
  374. nat_engine-1.0.5/src/mannf/weights/registry.py +9 -0
  375. nat_engine-1.0.5/src/mannf/weights/store.py +9 -0
  376. nat_engine-1.0.5/src/nat_engine.egg-info/PKG-INFO +441 -0
  377. nat_engine-1.0.5/src/nat_engine.egg-info/SOURCES.txt +418 -0
  378. nat_engine-1.0.5/src/nat_engine.egg-info/dependency_links.txt +1 -0
  379. nat_engine-1.0.5/src/nat_engine.egg-info/entry_points.txt +4 -0
  380. nat_engine-1.0.5/src/nat_engine.egg-info/requires.txt +33 -0
  381. nat_engine-1.0.5/src/nat_engine.egg-info/top_level.txt +1 -0
  382. nat_engine-1.0.5/tests/test_accessibility_scanner.py +921 -0
  383. nat_engine-1.0.5/tests/test_agents.py +160 -0
  384. nat_engine-1.0.5/tests/test_artifact_blob.py +449 -0
  385. nat_engine-1.0.5/tests/test_auth_layer.py +509 -0
  386. nat_engine-1.0.5/tests/test_belief_state.py +151 -0
  387. nat_engine-1.0.5/tests/test_billing_audit.py +426 -0
  388. nat_engine-1.0.5/tests/test_billing_bridge.py +1151 -0
  389. nat_engine-1.0.5/tests/test_billing_models.py +195 -0
  390. nat_engine-1.0.5/tests/test_billing_notifications.py +275 -0
  391. nat_engine-1.0.5/tests/test_browser_agent.py +536 -0
  392. nat_engine-1.0.5/tests/test_concurrency_enforcement.py +384 -0
  393. nat_engine-1.0.5/tests/test_dashboard_ui.py +933 -0
  394. nat_engine-1.0.5/tests/test_distributed.py +121 -0
  395. nat_engine-1.0.5/tests/test_e2e_billing_happy_path.py +1015 -0
  396. nat_engine-1.0.5/tests/test_e2e_billing_onboarding.py +980 -0
  397. nat_engine-1.0.5/tests/test_e2e_onboarding.py +612 -0
  398. nat_engine-1.0.5/tests/test_functional_orchestrator.py +528 -0
  399. nat_engine-1.0.5/tests/test_ingest_orchestrator.py +1361 -0
  400. nat_engine-1.0.5/tests/test_messaging.py +100 -0
  401. nat_engine-1.0.5/tests/test_nat_agents.py +292 -0
  402. nat_engine-1.0.5/tests/test_nat_orchestrator.py +99 -0
  403. nat_engine-1.0.5/tests/test_neural.py +134 -0
  404. nat_engine-1.0.5/tests/test_observability.py +344 -0
  405. nat_engine-1.0.5/tests/test_orchestrator.py +85 -0
  406. nat_engine-1.0.5/tests/test_performance_testing.py +904 -0
  407. nat_engine-1.0.5/tests/test_product_notifications.py +693 -0
  408. nat_engine-1.0.5/tests/test_quota_enforcement.py +1271 -0
  409. nat_engine-1.0.5/tests/test_server.py +989 -0
  410. nat_engine-1.0.5/tests/test_server_risk.py +284 -0
  411. nat_engine-1.0.5/tests/test_setup_wizard.py +345 -0
  412. nat_engine-1.0.5/tests/test_status.py +475 -0
  413. nat_engine-1.0.5/tests/test_stripe_billing.py +1083 -0
  414. nat_engine-1.0.5/tests/test_telemetry.py +319 -0
  415. nat_engine-1.0.5/tests/test_tenant_isolation.py +444 -0
  416. nat_engine-1.0.5/tests/test_tenant_scoped_scans.py +505 -0
  417. nat_engine-1.0.5/tests/test_testing.py +163 -0
  418. nat_engine-1.0.5/tests/test_unified_report.py +571 -0
  419. nat_engine-1.0.5/tests/test_usage_metering.py +786 -0
  420. nat_engine-1.0.5/tests/test_visual_regression.py +487 -0
@@ -0,0 +1,44 @@
1
+ # .dockerignore — exclude files not needed in the Docker build context
2
+
3
+ # Python cache and build artefacts
4
+ __pycache__/
5
+ *.py[cod]
6
+ *.pyo
7
+ *.pyd
8
+ .Python
9
+ *.egg-info/
10
+ dist/
11
+ build/
12
+ *.egg
13
+
14
+ # Development / test files
15
+ .pytest_cache/
16
+ .ruff_cache/
17
+ .mypy_cache/
18
+ htmlcov/
19
+ .coverage
20
+ *.log
21
+
22
+ # Version control
23
+ .git/
24
+ .gitignore
25
+
26
+ # Editor/IDE
27
+ .vscode/
28
+ .idea/
29
+ *.swp
30
+ *.swo
31
+ .DS_Store
32
+
33
+ # Documentation and non-essential assets
34
+ 1999_Doctoral_Thesis_Brad_Guider_DRAFT.docx
35
+ InitialResearch.md
36
+
37
+ # Docker files (avoid recursive context)
38
+ Dockerfile
39
+ docker-compose.yml
40
+ .dockerignore
41
+
42
+ # Test files (not needed at runtime)
43
+ tests/
44
+ examples/
@@ -0,0 +1,179 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ---
9
+
10
+ ## [Unreleased]
11
+
12
+ _Nothing yet._
13
+
14
+ ---
15
+
16
+ ## [1.0.0] — 2026-03-22
17
+
18
+ ### Added
19
+
20
+ #### Multi-Agent BDI Architecture
21
+ - `PlannerAgent` — generates and reorders test plans based on belief state; produces ECNP call-for-proposals.
22
+ - `ExecutorAgent` — executes individual test tasks; submits ECNP bids; records results back to the `BeliefState`.
23
+ - `AnalyzerAgent` — consumes raw results; runs anomaly detection; updates belief scores.
24
+ - `CoordinatorAgent` — orchestrates the full scan lifecycle; manages agent pool and task dispatch.
25
+ - `NATOrchestrator` — top-level orchestrator that wires together all agents and coordinates the scan lifecycle.
26
+ - `BeliefState` — thread-safe key-value store for per-endpoint agent beliefs (error rates, latency profiles, anomaly flags).
27
+ - `BeliefPrioritizer` — scores pending operations using belief state; returns an ordered list for the `PlannerAgent`.
28
+
29
+ #### ECNP Protocol
30
+ - `ECNPMessage`, `ECNPCallForProposal`, `ECNPBid`, `ECNPAward` message types.
31
+ - `ECNPBroker` — routes messages between agents with priority queuing.
32
+ - Enables concurrent multi-worker test execution with minimal coordination overhead.
33
+
34
+ #### Neural Network Oracles
35
+ - `NeuralNetwork` — NumPy-based feedforward neural network with Xavier weight initialization, sigmoid/ReLU activations, mini-batch gradient descent, and backpropagation.
36
+ - `RiskScorer` — combines security-finding penalties, anomaly signals, and pass-rate into a composite score in `[0.0, 1.0]`.
37
+ - Neural oracle per endpoint that predicts risk level and guides adaptive test allocation.
38
+
39
+ #### Adaptive Test Allocation
40
+ - `TestCaseGenerator` — produces boundary-value, null-field, type-mismatch, and happy-path test cases from operation schemas.
41
+ - Adaptive budget allocation: high-belief-risk endpoints receive more test cases; low-risk endpoints are sampled.
42
+ - Belief-driven prioritization integrates security findings, anomaly counts, and historical pass rates.
43
+
44
+ #### Security Scanning (OWASP API Top 10)
45
+ - All 10 OWASP API Security Top 10 (2023) checks:
46
+ - `API1` — Broken Object Level Authorization (BOLA/IDOR)
47
+ - `API2` — Broken Authentication
48
+ - `API3` — Broken Object Property Level Authorization (mass assignment)
49
+ - `API4` — Unrestricted Resource Consumption (rate limiting)
50
+ - `API5` — Broken Function Level Authorization
51
+ - `API6` — Unrestricted Access to Sensitive Business Flows
52
+ - `API7` — Server Side Request Forgery (SSRF)
53
+ - `API8` — Security Misconfiguration
54
+ - `API9` — Improper Inventory Management
55
+ - `API10` — Unsafe Consumption of APIs
56
+ - 5 GraphQL-specific security checks (GRAPHQL-1 through GRAPHQL-5): introspection, depth limits, batch attacks, field suggestion leakage, alias-based rate-limit bypass.
57
+ - `SecurityCheck` base class for custom check plugins.
58
+ - Adaptive security prioritization: `prioritize_for_security()` scores endpoints by risk and belief state.
59
+
60
+ #### LLM-Powered Test Generation
61
+ - `LLMProvider` ABC with `OpenAIProvider` and `AnthropicProvider` implementations.
62
+ - `LLMConfig` and `get_provider()` factory for easy initialization.
63
+ - Prompt templates for test scenario generation, edge-case discovery, and security probe crafting.
64
+ - CLI: `--use-llm`, `--llm-provider`, `--llm-model`, `--llm-api-key` flags; `nat test-gen` subcommand.
65
+ - Server: `POST /api/v1/llm/generate` endpoint.
66
+
67
+ #### CLI — All Subcommands
68
+ - `nat scan` — run adaptive functional tests against an OpenAPI/Swagger or GraphQL spec.
69
+ - `nat security-scan` — run OWASP and GraphQL security checks.
70
+ - `nat heal` — generate a healing report from spec diff (`--old-spec`, `--new-spec`).
71
+ - `nat weights` — list, save, and inspect named weight snapshots.
72
+ - `nat test-gen` — LLM-powered test generation from a spec.
73
+ - `nat serve` — start the NAT REST API server.
74
+ - `nat completions bash|zsh|fish` — generate shell completion scripts.
75
+ - `.natrc` YAML config file for persistent defaults (`base_url`, `spec`, `output`, etc.).
76
+ - `--output text|json|html|junit` and `--output-file` for flexible reporting.
77
+ - Exit codes: `0` = all tests passed, `1` = test failures, `2` = scan error, `3` = config error.
78
+
79
+ #### REST API Server
80
+ - FastAPI-based server with all NAT capabilities exposed as HTTP endpoints.
81
+ - `X-API-Key` authentication (configured via `NAT_API_KEY` environment variable).
82
+ - Webhooks with HMAC-SHA256 signatures (`webhook_url`, `webhook_secret`, `webhook_headers`).
83
+ - Queue management: `NAT_MAX_CONCURRENT_SCANS`, `NAT_MAX_QUEUE_DEPTH`, `GET /api/v1/queue`.
84
+ - Rate limiting (`NAT_RATE_LIMIT`, e.g. `100/minute`).
85
+ - Scan timeout (`NAT_SCAN_TIMEOUT`).
86
+ - `DELETE /api/v1/scan/{id}` for scan cancellation.
87
+ - Structured error responses: `{"error": {"code", "message", "details"}}`.
88
+ - OpenAPI schema at `/api/v1/openapi.json`, Swagger UI at `/api/v1/docs`, ReDoc at `/api/v1/redoc`.
89
+ - `ScanStatus` values: `QUEUED`, `RUNNING`, `COMPLETED`, `FAILED`, `CANCELLED`, `TIMED_OUT`.
90
+
91
+ #### Web Dashboard
92
+ - Single-page dashboard with 5 tabs: Overview, Agents, Security, History, Settings.
93
+ - Summary cards: total scans, pass rate, active agents, open findings.
94
+ - Live scan queue with real-time WebSocket updates.
95
+ - Export: HTML, JSON, and CSV report formats.
96
+ - Settings tab: view server/auth/queue/webhook configuration.
97
+ - Scan history with comparison across runs.
98
+ - Dark mode and fully responsive layout.
99
+ - `GET /api/v1/dashboard/settings` — server configuration introspection endpoint.
100
+ - `GET /api/v1/scan/{id}/export?format=html|json|csv` — on-demand report export.
101
+
102
+ #### Docker / Compose / Kubernetes
103
+ - Multi-stage `Dockerfile`: builder stage installs deps and builds wheel; final stage uses `python:3.11-slim`.
104
+ - Multi-platform builds: `linux/amd64` and `linux/arm64`.
105
+ - `docker-compose.yml` — single-service deployment; `docker-compose.prod.yml` — engine + dashboard + Redis.
106
+ - Kubernetes manifests in `deploy/k8s/`: Deployment, Service, ConfigMap, HPA.
107
+ - GHCR publish workflow (`.github/workflows/docker-publish.yml`).
108
+ - Non-root runtime user `nat` (UID 1000); `HEALTHCHECK` against `GET /health`.
109
+
110
+ #### GitHub Action + CI/CD Templates
111
+ - `action.yml` — composite GitHub Action, marketplace-ready with 22 inputs and 9 outputs.
112
+ - Docker-based Action variant for faster startup in self-hosted runners.
113
+ - `.github/workflows/action-release.yml` — automated GitHub Marketplace release with major version tag tracking.
114
+ - Jenkins shared library (`ci-templates/jenkins/`): `natScan()` pipeline step, Jenkinsfile examples.
115
+ - GitLab CI template (`ci-templates/gitlab/.gitlab-ci-nat.yml`) with MR pipeline support and JUnit artifact upload.
116
+ - Azure Pipelines template (`ci-templates/azure/azure-pipelines-nat.yml`) with `PublishTestResults@2`.
117
+ - Example workflows for security gates, scheduled nightly scans, and matrix strategies.
118
+
119
+ #### AGPL-3.0 Dual-License
120
+ - `LICENSE` — GNU Affero General Public License v3.0.
121
+ - `COMMERCIAL_LICENSE.md` — enterprise commercial license terms with AGPL vs. commercial comparison.
122
+ - `CLA.md` — Individual and Corporate Contributor License Agreements.
123
+ - `CLA_SIGNATORIES.md` — signed CLA tracking file.
124
+ - `.github/workflows/cla.yml` — automated CLA check on pull requests.
125
+ - AGPL-3.0 license headers on all Python source files.
126
+ - `NOTICE` — third-party dependency license notices.
127
+
128
+ #### Self-Healing Test Suites
129
+ - `SchemaDiffer` and `GraphQLSchemaDiffer` — compute structural diffs between spec versions.
130
+ - `TestHealer` — automatically updates broken test cases to match new schema.
131
+ - `HealingReport` with per-endpoint patch summaries.
132
+ - CLI: `nat heal --old-spec`/`--new-spec`; server: `POST/GET /api/v1/heal`.
133
+
134
+ #### Regression Recording & Replay
135
+ - `RegressionRecorder` — captures request/response pairs during a scan.
136
+ - `RegressionReplayer` — replays a baseline recording against the live API.
137
+ - `RegressionDiffer` — diffs current vs. baseline recordings with configurable masking.
138
+ - CLI: `--record-regression FILE`, `--replay FILE`, `--regression-diff-only`, `--mask-sensitive`.
139
+ - Server: `POST/GET /api/v1/regression/{record,replay,diff,baselines}`.
140
+
141
+ #### Weight Persistence
142
+ - `WeightStore` — JSON-based save/load for neural network weights.
143
+ - `WeightRegistry` — named snapshot management with metadata.
144
+ - CLI: `nat scan --save-weights`, `--load-weights`, `--weights-dir`; `nat weights list/save/info`.
145
+ - Server: `POST/GET/DELETE /api/v1/weights/`.
146
+
147
+ #### Authentication Strategies
148
+ - `NoAuth`, `ApiKeyAuth`, `BearerTokenAuth`, `OAuth2Auth` (client_credentials + password grant).
149
+ - All strategies implement the `AuthStrategy` interface for pluggable composition.
150
+
151
+ #### Testing Infrastructure
152
+ - 993 automated tests covering all modules.
153
+ - Test matrix: Python 3.10, 3.11, 3.12, 3.13.
154
+ - `pytest-asyncio` for async test support; `respx` for HTTP mocking.
155
+
156
+ ---
157
+
158
+ ## [0.1.0] — Initial Release
159
+
160
+ ### Added
161
+
162
+ - Initial multi-agent BDI framework with `PlannerAgent`, `ExecutorAgent`, `AnalyzerAgent`, `CoordinatorAgent`.
163
+ - `NeuralNetwork` — NumPy-based feedforward network with backpropagation.
164
+ - ECNP protocol for agent coordination.
165
+ - `BeliefState` and `BeliefPrioritizer`.
166
+ - `OpenAPIParser` and `TestCaseGenerator` for REST API testing.
167
+ - `GraphQLParser` and `GraphQLSUT` for GraphQL testing.
168
+ - OWASP API Top 10 and GraphQL security checks.
169
+ - `nat scan` and `nat security-scan` CLI subcommands.
170
+ - FastAPI REST server (`nat-server`).
171
+ - Basic web dashboard.
172
+ - `Dockerfile` and `docker-compose.yml`.
173
+ - `action.yml` — composite GitHub Action.
174
+
175
+ ---
176
+
177
+ [Unreleased]: https://github.com/bg-playground/MultiAgent-Neural-Network-Framework/compare/v1.0.0...HEAD
178
+ [1.0.0]: https://github.com/bg-playground/MultiAgent-Neural-Network-Framework/compare/v0.1.0...v1.0.0
179
+ [0.1.0]: https://github.com/bg-playground/MultiAgent-Neural-Network-Framework/releases/tag/v0.1.0
@@ -0,0 +1,114 @@
1
+ # Contributor License Agreement (CLA)
2
+
3
+ **NeuroAgentTest (NAT) — Multi-Agent Neural Network Framework**
4
+
5
+ Thank you for your interest in contributing to NeuroAgentTest (NAT). This
6
+ Contributor License Agreement ("Agreement") clarifies the intellectual
7
+ property rights granted with contributions to this project.
8
+
9
+ By submitting a contribution (a pull request, patch, or any other material)
10
+ to this repository, you agree to the following terms:
11
+
12
+ ---
13
+
14
+ ## 1. Definitions
15
+
16
+ - **"You"** means the individual or legal entity submitting a contribution.
17
+ - **"Contribution"** means any original work of authorship, including any
18
+ modifications or additions to existing work, submitted to this project.
19
+ - **"Project"** means the NeuroAgentTest (NAT) software and associated
20
+ documentation hosted at
21
+ [https://github.com/bg-playground/MultiAgent-Neural-Network-Framework](https://github.com/bg-playground/MultiAgent-Neural-Network-Framework).
22
+ - **"Maintainers"** means the current maintainers and copyright holders of
23
+ the Project.
24
+
25
+ ---
26
+
27
+ ## 2. Grant of Copyright License
28
+
29
+ You hereby grant to the Maintainers and to all recipients of software
30
+ distributed by the Project a **perpetual, worldwide, non-exclusive,
31
+ no-charge, royalty-free, irrevocable** copyright license to reproduce,
32
+ prepare derivative works of, publicly display, publicly perform,
33
+ sublicense, and distribute your Contributions and such derivative works.
34
+
35
+ ---
36
+
37
+ ## 3. Grant of Patent License
38
+
39
+ You hereby grant to the Maintainers and to all recipients of software
40
+ distributed by the Project a **perpetual, worldwide, non-exclusive,
41
+ no-charge, royalty-free, irrevocable** (except as stated in this section)
42
+ patent license to make, have made, use, offer to sell, sell, import, and
43
+ otherwise transfer the Project, where such license applies only to those
44
+ patent claims licensable by you that are necessarily infringed by your
45
+ Contribution(s) alone or by combination of your Contribution(s) with the
46
+ Project.
47
+
48
+ ---
49
+
50
+ ## 4. Right to Re-License
51
+
52
+ You grant the Maintainers the right to re-license your Contributions,
53
+ including under a proprietary or commercial license, as part of the
54
+ Project's dual-licensing model (AGPL-3.0 and Commercial License). This
55
+ allows the Maintainers to offer commercial licenses to third parties
56
+ without violating your rights or the open-source license.
57
+
58
+ ---
59
+
60
+ ## 5. Copyright Assignment
61
+
62
+ To the extent permitted by applicable law and as necessary to support the
63
+ dual-licensing model, you assign to the Maintainers all right, title, and
64
+ interest in your Contributions, including all copyright and related rights.
65
+ Where assignment is not permitted by law, you grant the broadest possible
66
+ license as described in Sections 2 and 3.
67
+
68
+ ---
69
+
70
+ ## 6. Representations
71
+
72
+ You represent that:
73
+
74
+ 1. **Original work**: Each Contribution is your original creation, or you
75
+ have sufficient rights to submit it under this Agreement.
76
+ 2. **No third-party restrictions**: Your Contribution does not include any
77
+ material that is subject to third-party intellectual property rights
78
+ (patents, copyrights, trade secrets) that would restrict the Maintainers'
79
+ ability to use, distribute, or re-license the Contribution.
80
+ 3. **Employment**: If your employer has rights to intellectual property you
81
+ create, you have received permission to make the Contribution on behalf
82
+ of your employer, or your employer has waived such rights.
83
+ 4. **Accuracy**: You agree to notify the Maintainers if any of these
84
+ representations become inaccurate.
85
+
86
+ ---
87
+
88
+ ## 7. No Obligation
89
+
90
+ Nothing in this Agreement obligates the Maintainers to accept, include, or
91
+ use your Contribution. Acceptance of this Agreement does not guarantee that
92
+ your Contribution will be merged.
93
+
94
+ ---
95
+
96
+ ## 8. How to Indicate Acceptance
97
+
98
+ By opening a pull request or submitting a patch to this repository, you
99
+ indicate that you have read, understood, and agree to the terms of this
100
+ Contributor License Agreement.
101
+
102
+ If you are contributing on behalf of an organization, the individual
103
+ submitting the contribution represents that they have authority to bind
104
+ the organization to this Agreement.
105
+
106
+ ---
107
+
108
+ ## Contact
109
+
110
+ For questions about this CLA, contact [licensing@nat-testing.io](mailto:licensing@nat-testing.io).
111
+
112
+ ---
113
+
114
+ See also: [README.md — License](README.md#license) · [CONTRIBUTING.md — License and CLA](docs/contributing.md#license-and-cla)
@@ -0,0 +1,76 @@
1
+ # Commercial License — NeuroAgentTest (NAT)
2
+
3
+ ## Dual-License Model
4
+
5
+ NeuroAgentTest (NAT) is dual-licensed:
6
+
7
+ | Use Case | License |
8
+ |---|---|
9
+ | Open-source projects, academic research, personal use | [AGPL-3.0-or-later](LICENSE) |
10
+ | Proprietary products, SaaS deployments, enterprise use | Commercial License (this document) |
11
+
12
+ ---
13
+
14
+ ## When Do You Need a Commercial License?
15
+
16
+ You need a commercial license if **any** of the following apply:
17
+
18
+ - You want to incorporate NAT into a **proprietary product** or service without open-sourcing your modifications.
19
+ - You are deploying NAT as part of a **SaaS or hosted offering** and do not wish to comply with the AGPL-3.0 network-service copyleft requirement (which requires you to make your modified source available to users of your service).
20
+ - You want to distribute NAT as part of a **closed-source application**.
21
+ - You require **enterprise support, SLAs, or priority patches** not available under the open-source license.
22
+ - You want **custom neural network tuning** or professional services from the NAT team.
23
+
24
+ ---
25
+
26
+ ## What the Commercial License Grants
27
+
28
+ A NAT Commercial License provides:
29
+
30
+ 1. **Proprietary Use** — You may incorporate NAT into closed-source, proprietary products without the copyleft obligations of the AGPL-3.0.
31
+ 2. **No Copyleft Obligation** — You are not required to open-source modifications to NAT, even when deployed as a network service.
32
+ 3. **Priority Support & SLAs** — Access to dedicated support channels with defined response-time SLAs.
33
+ 4. **Custom Neural Network Tuning** — Professional services for tuning NAT's neural network parameters to your specific system under test.
34
+ 5. **Indemnification** — Additional IP indemnification clauses available at the enterprise tier.
35
+
36
+ ---
37
+
38
+ ## Licensing Tiers
39
+
40
+ | Tier | Scope | Pricing |
41
+ |---|---|---|
42
+ | **Per-Seat** | Individual developer license | Contact us |
43
+ | **Team** | Up to 25 developers | Contact us |
44
+ | **Enterprise-Wide** | Unlimited developers within a single legal entity | Contact us |
45
+ | **OEM / Reseller** | Embedding NAT in a product sold to third parties | Contact us |
46
+
47
+ ---
48
+
49
+ ## How to Obtain a Commercial License
50
+
51
+ To inquire about a commercial license, please contact:
52
+
53
+ **Email:** [licensing@nat-testing.io](mailto:licensing@nat-testing.io)
54
+
55
+ Please include:
56
+ - Your organization name
57
+ - A brief description of your intended use case
58
+ - Approximate team size or deployment scope
59
+
60
+ We will respond within 2 business days.
61
+
62
+ ---
63
+
64
+ ## Contributor License Agreement
65
+
66
+ All contributors to NAT must sign the [Contributor License Agreement (CLA)](CLA.md) before their contributions can be accepted. The CLA grants NAT maintainers the rights necessary to offer NAT under both the AGPL-3.0 and this Commercial License.
67
+
68
+ ---
69
+
70
+ ## Questions
71
+
72
+ For any licensing questions not answered here, contact [licensing@nat-testing.io](mailto:licensing@nat-testing.io).
73
+
74
+ ---
75
+
76
+ See also: [README.md — License](README.md#license) · [LICENSE](LICENSE) · [CLA.md](CLA.md)
@@ -0,0 +1,60 @@
1
+ # Contributing to NAT
2
+
3
+ Thank you for your interest in contributing to **NeuroAgentTest (NAT)**!
4
+
5
+ > **⚠️ CLA Required** — Before your first pull request is merged, you must agree
6
+ > to the [Contributor License Agreement](.github/CLA.md). The CLA bot will
7
+ > prompt you automatically when you open your first PR. See
8
+ > [Signing the CLA](#signing-the-cla) below.
9
+
10
+ For full contribution guidelines — development environment setup, code style,
11
+ testing, and pull request process — see
12
+ **[docs/contributing.md](docs/contributing.md)**.
13
+
14
+ ---
15
+
16
+ ## Quick Start
17
+
18
+ ```bash
19
+ # Clone and install in editable mode with dev extras
20
+ git clone https://github.com/bg-playground/MultiAgent-Neural-Network-Framework.git
21
+ cd MultiAgent-Neural-Network-Framework
22
+ python -m venv .venv && source .venv/bin/activate
23
+ pip install -e ".[dev]"
24
+
25
+ # Run the test suite
26
+ pytest tests/ -q
27
+ ```
28
+
29
+ ---
30
+
31
+ ## Signing the CLA
32
+
33
+ NAT uses the [CLA Assistant](.github/workflows/cla.yml) GitHub Action to
34
+ manage CLA signatures. When you open your first pull request:
35
+
36
+ 1. The bot will post a comment explaining the CLA.
37
+ 2. Read the full [Contributor License Agreement](.github/CLA.md).
38
+ 3. Reply to the bot's comment with:
39
+ > I have read the CLA Document and I hereby sign the CLA.
40
+ 4. Your GitHub username is added to [CLA_SIGNATORIES.md](CLA_SIGNATORIES.md)
41
+ and the check turns green for all future PRs.
42
+
43
+ **Why a CLA?**
44
+
45
+ NAT is dual-licensed (AGPL-3.0 for open source, Commercial License for
46
+ enterprise). The CLA grants the project maintainers the rights needed to offer
47
+ both licenses while protecting your rights as a contributor. See
48
+ [docs/legal/licensing.md](docs/legal/licensing.md) for details.
49
+
50
+ ---
51
+
52
+ ## Licensing
53
+
54
+ - NAT is licensed under **[AGPL-3.0-or-later](LICENSE)** for open-source use.
55
+ - A **[Commercial License](COMMERCIAL_LICENSE.md)** is available for proprietary
56
+ and SaaS deployments where AGPL copyleft obligations are not acceptable.
57
+ - All contributions are made under the CLA terms described above.
58
+
59
+ For commercial licensing inquiries, contact
60
+ [licensing@nat-testing.io](mailto:licensing@nat-testing.io).
@@ -0,0 +1,77 @@
1
+ # NeuroAgentTest (NAT) — Multi-Agent Neural Network Framework
2
+ # Copyright (C) 2026 NAT Contributors
3
+ # AGPL-3.0-or-later — see LICENSE for details
4
+ # For commercial licensing: licensing@nat-testing.io
5
+
6
+ # ---------------------------------------------------------------------------
7
+ # Stage 1: Build — install dependencies and build the wheel
8
+ # ---------------------------------------------------------------------------
9
+ FROM python:3.11-slim-bookworm AS builder
10
+
11
+ WORKDIR /build
12
+
13
+ # Install build tooling
14
+ RUN pip install --no-cache-dir build==1.2.2
15
+
16
+ # Copy only the files needed to build the package
17
+ COPY pyproject.toml README.md LICENSE ./
18
+ COPY src/ ./src/
19
+
20
+ # Build the wheel
21
+ RUN python -m build --wheel --no-isolation
22
+
23
+ # ---------------------------------------------------------------------------
24
+ # Stage 2: Runtime — minimal production image
25
+ # ---------------------------------------------------------------------------
26
+ FROM python:3.11-slim-bookworm
27
+
28
+ ARG BUILD_DATE
29
+ ARG VCS_REF
30
+ ARG VERSION=1.0.0
31
+
32
+ LABEL org.opencontainers.image.title="NeuroAgentTest (NAT) API Server" \
33
+ org.opencontainers.image.description="REST API server for the NAT adaptive testing engine" \
34
+ org.opencontainers.image.licenses="AGPL-3.0-or-later" \
35
+ org.opencontainers.image.source="https://github.com/bg-playground/MultiAgent-Neural-Network-Framework" \
36
+ org.opencontainers.image.url="https://github.com/bg-playground/MultiAgent-Neural-Network-Framework" \
37
+ org.opencontainers.image.version="${VERSION}" \
38
+ org.opencontainers.image.revision="${VCS_REF}" \
39
+ org.opencontainers.image.created="${BUILD_DATE}" \
40
+ org.opencontainers.image.vendor="NAT Contributors"
41
+
42
+ # Create a non-root user for security
43
+ RUN addgroup --system nat && adduser --system --ingroup nat nat
44
+
45
+ WORKDIR /app
46
+
47
+ # Copy built wheel from builder stage and install it
48
+ COPY --from=builder /build/dist/*.whl /tmp/
49
+
50
+ RUN pip install --no-cache-dir /tmp/*.whl && rm /tmp/*.whl
51
+
52
+ # Create data directories owned by the nat user
53
+ RUN mkdir -p /app/data/scans /app/data/weights /app/data/regression && \
54
+ chown -R nat:nat /app/data
55
+
56
+ # Switch to non-root user
57
+ USER nat
58
+
59
+ # Expose the default port
60
+ EXPOSE 8080
61
+
62
+ # Environment variables with sensible defaults
63
+ ENV NAT_HOST=0.0.0.0 \
64
+ NAT_PORT=8080 \
65
+ NAT_LOG_LEVEL=info \
66
+ NAT_WORKERS=1
67
+
68
+ # Built-in health check (uses the default port 8080; override via NAT_PORT env var)
69
+ HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
70
+ CMD python -c "import os,urllib.request; urllib.request.urlopen('http://localhost:'+os.environ.get('NAT_PORT','8080')+'/api/v1/health')" || exit 1
71
+
72
+ # Default command: run the FastAPI server with uvicorn
73
+ CMD uvicorn mannf.product.server:app \
74
+ --host "${NAT_HOST}" \
75
+ --port "${NAT_PORT}" \
76
+ --log-level "${NAT_LOG_LEVEL}" \
77
+ --workers "${NAT_WORKERS}"