secgraphai 1.0.0rc1__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 (123) hide show
  1. secgraphai-1.0.0rc1/.github/workflows/ci.yml +51 -0
  2. secgraphai-1.0.0rc1/.github/workflows/deep-security.yml +44 -0
  3. secgraphai-1.0.0rc1/.github/workflows/release.yml +35 -0
  4. secgraphai-1.0.0rc1/.github/workflows/security.yml +40 -0
  5. secgraphai-1.0.0rc1/.gitignore +12 -0
  6. secgraphai-1.0.0rc1/.hypothesis/.gitignore +9 -0
  7. secgraphai-1.0.0rc1/.hypothesis/constants/00c79b23b3a4731d +4 -0
  8. secgraphai-1.0.0rc1/.hypothesis/constants/03903408e6ec0fcd +4 -0
  9. secgraphai-1.0.0rc1/.hypothesis/constants/03c7900637dec143 +4 -0
  10. secgraphai-1.0.0rc1/.hypothesis/constants/0550354c9828334d +4 -0
  11. secgraphai-1.0.0rc1/.hypothesis/constants/0ad7a417881b5e2f +4 -0
  12. secgraphai-1.0.0rc1/.hypothesis/constants/0e1404082b00bf3e +4 -0
  13. secgraphai-1.0.0rc1/.hypothesis/constants/0e730d4a35917c80 +4 -0
  14. secgraphai-1.0.0rc1/.hypothesis/constants/1256bf512abf999b +4 -0
  15. secgraphai-1.0.0rc1/.hypothesis/constants/13ddb56c93054742 +4 -0
  16. secgraphai-1.0.0rc1/.hypothesis/constants/17bb152ddb6eda64 +4 -0
  17. secgraphai-1.0.0rc1/.hypothesis/constants/1863497317d95972 +4 -0
  18. secgraphai-1.0.0rc1/.hypothesis/constants/2ae4e5ca09dd1472 +4 -0
  19. secgraphai-1.0.0rc1/.hypothesis/constants/35b8474cfb611e04 +4 -0
  20. secgraphai-1.0.0rc1/.hypothesis/constants/373954cfba184222 +4 -0
  21. secgraphai-1.0.0rc1/.hypothesis/constants/457ccc1355f72abe +4 -0
  22. secgraphai-1.0.0rc1/.hypothesis/constants/4e0113644b40370f +4 -0
  23. secgraphai-1.0.0rc1/.hypothesis/constants/4f65fc5ceb965987 +4 -0
  24. secgraphai-1.0.0rc1/.hypothesis/constants/53594f3abb8d0bb1 +4 -0
  25. secgraphai-1.0.0rc1/.hypothesis/constants/594d49c6a361d903 +4 -0
  26. secgraphai-1.0.0rc1/.hypothesis/constants/5bd1ff3f86003943 +4 -0
  27. secgraphai-1.0.0rc1/.hypothesis/constants/63365995458d761c +4 -0
  28. secgraphai-1.0.0rc1/.hypothesis/constants/68cdaef8b5af732e +4 -0
  29. secgraphai-1.0.0rc1/.hypothesis/constants/6b42f66b3560a7e2 +4 -0
  30. secgraphai-1.0.0rc1/.hypothesis/constants/6c8d8b43a35f89cb +4 -0
  31. secgraphai-1.0.0rc1/.hypothesis/constants/7a1631ce034da8b3 +4 -0
  32. secgraphai-1.0.0rc1/.hypothesis/constants/8d1347f4554e562f +4 -0
  33. secgraphai-1.0.0rc1/.hypothesis/constants/96dd42550b2ebc7e +4 -0
  34. secgraphai-1.0.0rc1/.hypothesis/constants/9ffc2aa542b5d099 +4 -0
  35. secgraphai-1.0.0rc1/.hypothesis/constants/a2eabf9a65f9e727 +4 -0
  36. secgraphai-1.0.0rc1/.hypothesis/constants/aa2d985d0efcca81 +4 -0
  37. secgraphai-1.0.0rc1/.hypothesis/constants/b5befa58771c59d5 +4 -0
  38. secgraphai-1.0.0rc1/.hypothesis/constants/b62ab6adfcfd8e16 +4 -0
  39. secgraphai-1.0.0rc1/.hypothesis/constants/bad1bf67bf75338c +4 -0
  40. secgraphai-1.0.0rc1/.hypothesis/constants/cf7dc441e460f488 +4 -0
  41. secgraphai-1.0.0rc1/.hypothesis/constants/d19dd4c0425a4b1b +4 -0
  42. secgraphai-1.0.0rc1/.hypothesis/constants/e79554e1cb15be15 +4 -0
  43. secgraphai-1.0.0rc1/.hypothesis/constants/f15e97de0390a51d +4 -0
  44. secgraphai-1.0.0rc1/.hypothesis/constants/f6018d68f0966e42 +4 -0
  45. secgraphai-1.0.0rc1/.hypothesis/unicode_data/15.1.0/charmap.json.gz +0 -0
  46. secgraphai-1.0.0rc1/.hypothesis/unicode_data/15.1.0/codec-v2-utf-8.json.gz +0 -0
  47. secgraphai-1.0.0rc1/CHANGELOG.md +47 -0
  48. secgraphai-1.0.0rc1/LICENSE +18 -0
  49. secgraphai-1.0.0rc1/PKG-INFO +208 -0
  50. secgraphai-1.0.0rc1/README.md +118 -0
  51. secgraphai-1.0.0rc1/SECURITY.md +21 -0
  52. secgraphai-1.0.0rc1/SECURITY_REVIEW.md +43 -0
  53. secgraphai-1.0.0rc1/SecGraphAI_PRD_v3.1_CVE_OWASP.md +4421 -0
  54. secgraphai-1.0.0rc1/THREAT_MODEL.md +31 -0
  55. secgraphai-1.0.0rc1/demo/__init__.py +1 -0
  56. secgraphai-1.0.0rc1/demo/app.py +79 -0
  57. secgraphai-1.0.0rc1/demo/assessment.py +114 -0
  58. secgraphai-1.0.0rc1/docs/RELEASING.md +50 -0
  59. secgraphai-1.0.0rc1/docs/USER_GUIDE.md +815 -0
  60. secgraphai-1.0.0rc1/fuzz/fuzz_parsers.py +32 -0
  61. secgraphai-1.0.0rc1/pyproject.toml +110 -0
  62. secgraphai-1.0.0rc1/secgraphai.cdx.json +454 -0
  63. secgraphai-1.0.0rc1/src/secgraphai/__init__.py +102 -0
  64. secgraphai-1.0.0rc1/src/secgraphai/adapters.py +289 -0
  65. secgraphai-1.0.0rc1/src/secgraphai/attacks.py +375 -0
  66. secgraphai-1.0.0rc1/src/secgraphai/canary.py +41 -0
  67. secgraphai-1.0.0rc1/src/secgraphai/cli.py +778 -0
  68. secgraphai-1.0.0rc1/src/secgraphai/config.py +102 -0
  69. secgraphai-1.0.0rc1/src/secgraphai/core.py +151 -0
  70. secgraphai-1.0.0rc1/src/secgraphai/dashboard.py +475 -0
  71. secgraphai-1.0.0rc1/src/secgraphai/discovery.py +465 -0
  72. secgraphai-1.0.0rc1/src/secgraphai/evaluation.py +117 -0
  73. secgraphai-1.0.0rc1/src/secgraphai/graph.py +191 -0
  74. secgraphai-1.0.0rc1/src/secgraphai/instrumentation.py +178 -0
  75. secgraphai-1.0.0rc1/src/secgraphai/intelligence.py +786 -0
  76. secgraphai-1.0.0rc1/src/secgraphai/invariants.py +180 -0
  77. secgraphai-1.0.0rc1/src/secgraphai/lifecycle.py +414 -0
  78. secgraphai-1.0.0rc1/src/secgraphai/model.py +76 -0
  79. secgraphai-1.0.0rc1/src/secgraphai/multimodal.py +38 -0
  80. secgraphai-1.0.0rc1/src/secgraphai/packs/__init__.py +1 -0
  81. secgraphai-1.0.0rc1/src/secgraphai/packs/official_ed25519.pub +1 -0
  82. secgraphai-1.0.0rc1/src/secgraphai/packs/prompt_injection_core.yaml +47 -0
  83. secgraphai-1.0.0rc1/src/secgraphai/plugins.py +201 -0
  84. secgraphai-1.0.0rc1/src/secgraphai/policy.py +144 -0
  85. secgraphai-1.0.0rc1/src/secgraphai/provenance.py +73 -0
  86. secgraphai-1.0.0rc1/src/secgraphai/reporting.py +184 -0
  87. secgraphai-1.0.0rc1/src/secgraphai/research.py +61 -0
  88. secgraphai-1.0.0rc1/src/secgraphai/roles.py +130 -0
  89. secgraphai-1.0.0rc1/src/secgraphai/runtime.py +304 -0
  90. secgraphai-1.0.0rc1/src/secgraphai/scanner.py +593 -0
  91. secgraphai-1.0.0rc1/src/secgraphai/schemas.py +140 -0
  92. secgraphai-1.0.0rc1/src/secgraphai/security.py +211 -0
  93. secgraphai-1.0.0rc1/src/secgraphai/security_modules.py +897 -0
  94. secgraphai-1.0.0rc1/src/secgraphai/self_security.py +212 -0
  95. secgraphai-1.0.0rc1/src/secgraphai/static/app.js +11 -0
  96. secgraphai-1.0.0rc1/src/secgraphai/static/index.html +43 -0
  97. secgraphai-1.0.0rc1/src/secgraphai/static/styles.css +9 -0
  98. secgraphai-1.0.0rc1/src/secgraphai/storage.py +260 -0
  99. secgraphai-1.0.0rc1/src/secgraphai/supply_chain.py +64 -0
  100. secgraphai-1.0.0rc1/src/secgraphai/targets.py +368 -0
  101. secgraphai-1.0.0rc1/src/secgraphai/validators.py +284 -0
  102. secgraphai-1.0.0rc1/tests/test_cli.py +18 -0
  103. secgraphai-1.0.0rc1/tests/test_core.py +25 -0
  104. secgraphai-1.0.0rc1/tests/test_graph_invariants.py +104 -0
  105. secgraphai-1.0.0rc1/tests/test_model_roles.py +87 -0
  106. secgraphai-1.0.0rc1/tests/test_modes_replay.py +185 -0
  107. secgraphai-1.0.0rc1/tests/test_prd_attacks_policy.py +158 -0
  108. secgraphai-1.0.0rc1/tests/test_prd_benchmark.py +76 -0
  109. secgraphai-1.0.0rc1/tests/test_prd_cli_commands.py +194 -0
  110. secgraphai-1.0.0rc1/tests/test_prd_coverage_security.py +270 -0
  111. secgraphai-1.0.0rc1/tests/test_prd_future_modules.py +94 -0
  112. secgraphai-1.0.0rc1/tests/test_prd_gap_branches.py +409 -0
  113. secgraphai-1.0.0rc1/tests/test_prd_gap_closure.py +642 -0
  114. secgraphai-1.0.0rc1/tests/test_prd_lifecycle_intelligence.py +158 -0
  115. secgraphai-1.0.0rc1/tests/test_prd_model_plugins_selfaudit.py +123 -0
  116. secgraphai-1.0.0rc1/tests/test_prd_properties.py +68 -0
  117. secgraphai-1.0.0rc1/tests/test_prd_scanner_dashboard.py +236 -0
  118. secgraphai-1.0.0rc1/tests/test_prd_schemas.py +17 -0
  119. secgraphai-1.0.0rc1/tests/test_prd_security_branches.py +113 -0
  120. secgraphai-1.0.0rc1/tests/test_prd_targets_modules.py +168 -0
  121. secgraphai-1.0.0rc1/tests/test_product_capabilities.py +178 -0
  122. secgraphai-1.0.0rc1/tests/test_runtime_scanner_reporting.py +43 -0
  123. secgraphai-1.0.0rc1/tests/test_security.py +39 -0
@@ -0,0 +1,51 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [main]
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ test:
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ python-version: ['3.11', '3.12', '3.13', '3.14']
18
+ steps:
19
+ - uses: actions/checkout@v7
20
+ - uses: actions/setup-python@v7
21
+ with:
22
+ python-version: ${{ matrix.python-version }}
23
+ cache: pip
24
+ - run: python -m pip install --upgrade pip 'setuptools>=83'
25
+ - run: python -m pip install -e '.[test,api,security]'
26
+ - run: python -m ruff check src tests demo
27
+ - run: python -m mypy src
28
+ - run: python -m bandit -q -r src
29
+ - run: python -m coverage run --branch -m pytest -q
30
+ - run: python -m coverage report --include='src/secgraphai/*' --fail-under=90
31
+ - run: python -m pip_audit
32
+ - run: python -m build
33
+ - run: python -m pip install --force-reinstall --no-deps dist/*.whl
34
+ - run: secgraph --help
35
+
36
+ secrets:
37
+ runs-on: ubuntu-latest
38
+ steps:
39
+ - uses: actions/checkout@v7
40
+ with:
41
+ fetch-depth: 0
42
+ - uses: actions/setup-python@v7
43
+ with:
44
+ python-version: '3.13'
45
+ - run: python -m pip install detect-secrets
46
+ - run: detect-secrets scan --all-files --exclude-files '(^|/)(tests|\.git)/|SecGraphAI_PRD' > secrets-report.json
47
+ - uses: actions/upload-artifact@v7
48
+ if: always()
49
+ with:
50
+ name: secrets-report
51
+ path: secrets-report.json
@@ -0,0 +1,44 @@
1
+ name: Deep security
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '29 4 * * 6'
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ mutation:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v7
16
+ - uses: actions/setup-python@v7
17
+ with:
18
+ python-version: '3.13'
19
+ - run: python -m pip install -e '.[test,api,security]' 'mutmut>=3,<4'
20
+ - run: mutmut run
21
+ - if: always()
22
+ run: mutmut results
23
+
24
+ fuzz-and-dynamic:
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - uses: actions/checkout@v7
28
+ - uses: actions/setup-python@v7
29
+ with:
30
+ python-version: '3.13'
31
+ - run: python -m pip install -e '.[test,api,fuzz]'
32
+ - run: python -m pytest -q tests/test_prd_properties.py tests/test_prd_scanner_dashboard.py tests/test_prd_benchmark.py
33
+ - run: python fuzz/fuzz_parsers.py -runs=10000 -max_len=65536
34
+
35
+ self-dogfood:
36
+ runs-on: ubuntu-latest
37
+ steps:
38
+ - uses: actions/checkout@v7
39
+ - uses: actions/setup-python@v7
40
+ with:
41
+ python-version: '3.13'
42
+ - run: python -m pip install -e '.[test,api,security]'
43
+ - run: python -m secgraphai.cli self-audit --deep
44
+ - run: pytest -q tests/test_prd_scanner_dashboard.py tests/test_prd_security_branches.py
@@ -0,0 +1,35 @@
1
+ name: Release
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ permissions:
8
+ contents: read
9
+ id-token: write
10
+ attestations: write
11
+
12
+ jobs:
13
+ publish:
14
+ environment: pypi
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v7
18
+ - uses: actions/setup-python@v7
19
+ with:
20
+ python-version: '3.13'
21
+ - run: python -m pip install --upgrade pip 'setuptools>=83'
22
+ - run: python -m pip install -e '.[test,api,security]'
23
+ - run: python -m coverage run --branch -m pytest -q
24
+ - run: python -m coverage report --include='src/secgraphai/*' --fail-under=90
25
+ - run: python -m pip_audit
26
+ - run: python -m secgraphai.cli sbom generate --output secgraphai.cdx.json
27
+ - run: python -m build
28
+ - uses: actions/attest-build-provenance@v4
29
+ with:
30
+ subject-path: 'dist/*'
31
+ - uses: pypa/gh-action-pypi-publish@release/v1
32
+ - uses: actions/upload-artifact@v7
33
+ with:
34
+ name: release-sbom
35
+ path: secgraphai.cdx.json
@@ -0,0 +1,40 @@
1
+ name: Security
2
+
3
+ on:
4
+ pull_request:
5
+ schedule:
6
+ - cron: '17 3 * * 1'
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+ security-events: write
12
+
13
+ jobs:
14
+ codeql:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v7
18
+ - uses: github/codeql-action/init@v4
19
+ with:
20
+ languages: python
21
+ - uses: github/codeql-action/analyze@v4
22
+
23
+ semgrep:
24
+ runs-on: ubuntu-latest
25
+ container: semgrep/semgrep
26
+ steps:
27
+ - uses: actions/checkout@v7
28
+ - run: semgrep scan --config p/python --config p/security-audit --error src
29
+
30
+ adversarial:
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - uses: actions/checkout@v7
34
+ - uses: actions/setup-python@v7
35
+ with:
36
+ python-version: '3.13'
37
+ - run: python -m pip install --upgrade pip 'setuptools>=83'
38
+ - run: python -m pip install -e '.[test,api,security]'
39
+ - run: pytest -q tests/test_prd_properties.py tests/test_prd_benchmark.py tests/test_prd_security_branches.py
40
+ - run: python -m secgraphai.cli self-audit --deep
@@ -0,0 +1,12 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+ *.egg-info/
4
+ .pytest_cache/
5
+ .ruff_cache/
6
+ .coverage
7
+ build/
8
+ dist/
9
+ mutants/
10
+ .venv/
11
+ secgraph.db*
12
+
@@ -0,0 +1,9 @@
1
+ # This .gitignore file was automatically created by Hypothesis. Hypothesis gitignores
2
+ # .hypothesis by default, because we generally recommend that .hypothesis not be checked
3
+ # into version control.
4
+ #
5
+ # If you *would* like to check .hypothesis into version control, you should delete this
6
+ # file. Hypothesis will not re-create this .gitignore unless .hypothesis is deleted (and
7
+ # if it does, that's a bug - please report it!)
8
+
9
+ *
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/storage.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [100, 200, 448, 1000, ' WHERE scan_id = ?', 'attack_paths', 'baselines', 'bundles', 'document', 'documents', 'edges', 'enc:v1:', 'events', 'findings', 'graph_edges', 'graph_nodes', 'invalid pagination', 'jobs', 'json', 'links', 'nodes', 'plugin_registry', 'policies', 'reports', 'risk_paths', 'scans', 'secgraph.db', 'secgraphai', 'targets']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/demo/app.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [100, 403, 404, 500, 10000, 100000, '/agent', '/email', '/rag', '/records/{record_id}', '/refund', '@example.test', 'A', 'B', 'a-1', 'a-safe', 'alice@example.test', 'amount', 'answer', 'api_key', 'approval required', 'b-1', 'b-poison', 'bob@example.test', 'email', 'false', 'forbidden', 'id', 'ignore previous', 'loop', 'not found', 'processed', 'refund', 'refunded', 'request rejected', 'secret', 'sent', 'ssn', 'status', 'tenant', 'text', 'tool_calls', 'tools', 'true']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/intelligence.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [0.25, 0.7, 1.0, 10.0, 30.0, 100, 304, 429, 512, 2000, 2048, 8192, 10000, 20000000, '*', ',', '-', '.cve-', '.json', '1.6', '2.3', ':', '<', '<=', '>', '>=', 'AFFECTED', 'CC0-1.0', 'CVE-\\d{4}-\\d{4,}', 'CWE-', 'CycloneDX', 'DISCOVERED', 'GET', 'If-Modified-Since', 'If-None-Match', 'MITIGATED', 'NOASSERTION', 'NOT_AFFECTED', 'NOT_APPLICABLE', 'NVD', 'NVD_API_KEY', 'Name', 'PACKAGE-MANAGER', 'PARTIAL', 'PRESENT', 'REACHABLE', 'SECURITY', 'SPDX-2.3', 'SPDXID', 'SPDXRef-DOCUMENT', 'SecGraphAI', 'SecGraphAI SBOM', 'TESTED', 'TEST_ERROR', 'Tool: SecGraphAI', 'VERIFIED_CONTROL', 'VERIFIED_FINDING', 'VERIFIED_IN_LAB', '\\', 'a', 'affected_ranges', 'affected_versions', 'agentic-2026', 'aliases', 'api-2023', 'apiKey', 'baseScore', 'bomFormat', 'complete', 'component', 'components', 'conditional', 'configurations', 'covered', 'cpe', 'cpe23Type', 'cpeMatch', 'created', 'creationInfo', 'creators', 'criteria', 'cve', 'cveID', 'cve_ids', 'cvss', 'cvssData', 'cwe_ids', 'dataLicense', 'delta', 'description', 'descriptions', 'documentNamespace', 'downloadLocation', 'en', 'environmentalScore', 'etag', 'externalRefs', 'filesAnalyzed', 'full', 'http', 'https', 'id', 'keywordSearch', 'known_exploited', 'lang', 'last-modified', 'lastModEndDate', 'lastModStartDate', 'lastModified', 'last_modified', 'library', 'llm-2026', 'metadata', 'metrics', 'missing', 'mode', 'name', 'next_start_index', 'nodes', 'not_modified', 'packages', 'percent', 'profile', 'properties', 'published', 'purl', 'pypi', 'query', 'reachable', 'records', 'referenceCategory', 'referenceLocator', 'referenceType', 'references', 'resultsPerPage', 'results_per_page', 'retry-after', 'retry_after', 'schema_version', 'secgraphai', 'severity', 'source', 'sourceIdentifier', 'spdxVersion', 'specVersion', 'ssvc', 'startIndex', 'start_index', 'states', 'status', 'synchronized_at', 'test_errors', 'threatScore', 'timestamp', 'tools', 'totalResults', 'total_results', 'type', 'unknown', 'url', 'utf-8', 'value', 'vectorString', 'vendor', 'version', 'versionEndExcluding', 'versionEndIncluding', 'versionInfo', 'vulnerabilities', 'vulnerable', 'w', 'weaknesses', 'web-2025']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/core.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ ['1.0', '1.0.0rc1', 'BLOCKED_BY_CONTROL', 'CRITICAL', 'DERIVED', 'DETERMINISTIC', 'HIGH', 'INCONCLUSIVE', 'INFO', 'LIKELY_VIOLATION', 'LOW', 'MEDIUM', 'OUT_OF_SCOPE', 'PASS', 'PROBABILISTIC', 'TEST_ERROR', 'VERIFIED_VIOLATION', 'cost_usd', 'external_calls', 'forbid', 'input_tokens', 'model_calls', 'output_tokens', 'retries', 'retrieval_calls', 'tool_calls', 'wall_time_ms']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/evaluation.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [1.0, 'cost_usd', 'external_calls', 'inf', 'input_tokens', 'model_calls', 'output_tokens', 'retries', 'retrieval_calls', 'tool_calls', 'wall_time_seconds']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/security_modules.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [0.8, 429, 500, '*', '127.0.0.1', 'A02', 'A04', 'A10', 'AGENT-APPROVAL', 'AGENT-AUTHZ', 'AGENT-COST', 'AGENT-DELEGATION', 'AGENT-GOAL', 'AGENT-INTENT', 'AGENT-MEMORY', 'AGENT-MESSAGE', 'AGENT-PRIVILEGE', 'AGENT-RECURSION', 'AGENT-SCHEMA', 'AGENT-STATE', 'API-AI-COST', 'API-AUTHN', 'API-AUTHZ', 'API-DEBUG', 'API-ERROR', 'API-EXPECTATION', 'API-PAGINATION', 'API-PAYLOAD', 'API-PROPERTY-AUTHZ', 'API-RATE', 'API-SCHEMA', 'API-SSRF', 'API1', 'API2', 'API3', 'API4', 'API5', 'API7', 'API8', 'ASI01', 'ASI02', 'ASI03', 'ASI04', 'ASI06', 'ASI07', 'ASI08', 'ASI09', 'ASI10', 'BEHAVIOR_CHANGED', 'GET', 'INVARIANT_VIOLATED', 'LLM01', 'LLM02', 'LLM05', 'LLM06', 'LLM07', 'LLM08', 'LLM09', 'MCP-APPROVAL', 'MCP-AUTHZ', 'MCP-CHAIN', 'MCP-CREDENTIAL', 'MCP-DESTINATION', 'MCP-DRIFT', 'MCP-EXPOSURE', 'MCP-INJECTION', 'MCP-METADATA', 'MCP-ORIGIN', 'MCP-OUTPUT-INJECTION', 'MCP-TOKEN-SCOPE', 'MCP-TRANSPORT', 'OWASP', 'POLICY_DEVIATION', 'RAG-AUTHZ', 'RAG-CANARY', 'RAG-CITATION', 'RAG-CLEANUP', 'RAG-CONFIG', 'RAG-CROSS-TENANT', 'RAG-FLOOD', 'RAG-INJECTION', 'RAG-METADATA', 'RAG-POISON', 'RAG-PROVENANCE', 'RAG-SENSITIVE', 'REACHED_MODEL', 'TOOL_EXECUTED', 'TOOL_REQUESTED', '[::1]', 'access_token', 'actual_state', 'admin', 'agent', 'agent_message', 'all', 'allowed', 'allowedOrigins', 'allowed_origins', 'annotations', 'api_key', 'approved', 'authorization', 'authorized', 'baseline', 'bearer ', 'callback', 'callsTools', 'calls_tools', 'chain', 'citation', 'confidential', 'content', 'credit_card', 'cross-agent', 'delegation', 'delete', 'description', 'destinations', 'direct', 'document', 'downstream', 'error', 'events', 'exception', 'expected', 'expected_state', 'external', 'external-action', 'externalDestinations', 'function', 'get', 'goal', 'goal_change', 'hierarchy', 'high', 'http://', 'identity', 'ignore previous', 'in_intent', 'indirect', 'instruction', 'inventory', 'keys', 'kind', 'limit', 'localhost', 'maxProperties', 'max_results', 'maximum', 'mcp', 'mcp-resource', 'memory', 'memory_write', 'metadata', 'metadata_filtering', 'method', 'multi-agent', 'multi-turn', 'multimodal', 'name', 'namespace_isolation', 'obfuscated', 'object', 'observed', 'operation', 'origins', 'outputSchema', 'override', 'override policy', 'owner', 'page_size', 'pagesize', 'parameters', 'password', 'patch', 'path', 'paths', 'permissions', 'pii', 'post', 'privilege_change', 'privileged', 'problem', 'provenance', 'put', 'rag', 'rag-injection', 'requestBody', 'requesting', 'requests', 'requiresApproval', 'responses', 'reveal secret', 'risk', 'root', 'schema', 'scopes', 'secgraphai', 'secret', 'security', 'send secret', 'sensitivity', 'sequence', 'server', 'setting', 'source', 'sqlalchemy', 'ssn', 'stack trace', 'state', 'state_transition', 'status', 'statuses', 'synthetic', 'system override', 'system-extraction', 'system_prompt', 'tenant', 'token', 'tokenScopes', 'token_scopes', 'tool', 'tool-calls', 'tool-output', 'tool-schema', 'tool_schema_change', 'tools', 'traceback', 'trusted-test', 'trusted_as_control', 'type', 'unknown', 'untrusted', 'upload', 'uploaded-document', 'uri', 'url', 'user', 'web', 'web-content', 'webhook', 'x-ai-endpoint', 'x-cost-limit', 'x-debug', 'x-rate-limit']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/cli.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [100, 120, 443, 1000, 8000, 8777, '--against', '--allow-private', '--allow-unverified', '--api-key-env', '--baseline', '--budget-usd', '--cache', '--config', '--dashboard', '--database', '--deep', '--encryption-key-env', '--event', '--fail-on-regression', '--fail-on-violation', '--force', '--format', '--host', '--mask-pii', '--max-duration', '--max-requests', '--minimum-percent', '--mode', '--model', '--output', '--port', '--profile', '--public-key', '--query', '--retention-days', '--root', '--target', '--token-env', '-c', '-o', '.', '.secgraph/baselines', '127.0.0.1', ':', '::1', 'Component', 'Count', 'NO_SECRET_EXFIL', 'Python', 'SAFE', '__main__', 'adaptive', 'affected', 'age_seconds', 'agent', 'allowed_hosts', 'allowed_ports', 'api', 'api_key_env', 'attacks', 'audit', 'base_url', 'baseline', 'blocked_networks', 'bom.json', 'bundle', 'cached', 'cloud_upload', 'compare', 'components', 'counts', 'coverage', 'create', 'cve', 'cve-cache.json', 'cyclonedx', 'deny', 'description', 'destination', 'dev', 'diff', 'draft-pack.json', 'engines', 'etag', 'expected', 'external', 'fetched', 'gate', 'generate', 'generate-test', 'graph', 'http://', 'https', 'https://', 'id', 'identity', 'import', 'init', 'inputs', 'inspect', 'invariants', 'json', 'last-(\\d+)-days', 'last_modified', 'llm', 'llm-2026', 'localhost', 'mask_pii', 'max_duration_seconds', 'max_total_requests', 'mcp', 'media', 'metadata', 'mode', 'model', 'new', 'next_start_index', 'official', 'openapi', 'owasp', 'owasp-agentic-2026', 'owasp-api-2023', 'owasp-full', 'owasp-llm-2026', 'owasp-web-2025', 'packs', 'passed', 'plugins', 'policy', 'privacy', 'prompt-injection', 'pytest', 'query', 'rag', 'reachable', 'reasons', 'regressions', 'render', 'replay', 'report', 'require_stable_dns', 'research', 'resumed_from', 'review', 'safe', 'sbom', 'scan', 'scan_id', 'schemas', 'scope', 'search', 'secgraph.db', 'secgraph.yaml', 'secret', 'self-audit', 'sensitivity', 'serve', 'show', 'simulate', 'source', 'spdx', 'spdxVersion', 'status', 'summary', 'sync', 'synchronized_at', 'target', 'telemetry', 'terminal', 'test', 'trust', 'utf-8', 'verify', 'version', '{}']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/scanner.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [0.2, 0.35, 0.4, 0.6, 0.65, 0.75, 0.8, 1.0, 100, 120, 401, 403, 443, 1000, 8000, 'BEHAVIOR_CHANGED', 'CALLBACK_OBSERVED', 'INVARIANT_VIOLATED', 'LLM02', 'NO_SECRET_EXFIL', 'OWASP_LLM_2026', 'POLICY_DEVIATION', 'REACHED_MODEL', 'TOOL_EXECUTED', 'TOOL_REQUESTED', 'VERIFIED_EFFECT', 'adaptive', 'allowed_hosts', 'allowed_ports', 'api_key_env', 'attacker', 'base_url', 'blocked_networks', 'boundary_progress', 'callbacks', 'canary', 'content', 'context', 'controls', 'destination', 'error', 'features', 'flow', 'genetic', 'graph', 'http', 'https', 'invariants', 'json', 'max_duration_seconds', 'max_total_requests', 'metadata', 'model', 'model_parameters', 'output', 'principal', 'prompt', 'prompt_hash', 'remediation', 'reproduction', 'require_stable_dns', 'resisted', 'retrieval_settings', 'role', 'roles', 'scope', 'source', 'stages', 'static', 'status_code', 'strategy', 'target', 'tenant', 'test_id', 'tool', 'tool_schemas', 'tools', 'user', 'verified']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/policy.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ ['.', '__', 'allow', 'contains', 'default', 'deny', 'effect', 'enforce', 'eq', 'gt', 'gte', 'id', 'in', 'log', 'lt', 'lte', 'match', 'matched policy rule', 'mode', 'ne', 'options', 'priority', 'rate_limit', 'reason', 'redact', 'require_approval', 'rules', 'sandbox', 'shadow', 'transform', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/security.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [120, 443, 1000, '*', '-', '.', '0', '0.0.0.0/8', '10.0.0.0/8', '100.64.0.0/10', '127.0.0.0/8', '127.0.0.1', '169.254.0.0/16', '172.16.0.0/12', '192.168.0.0/16', '198.18.0.0/15', '224.0.0.0/4', ':', '::1/128', '[PII]', '[REDACTED]', '_', 'account_deletion', 'allowed_hosts', 'api_key', 'apikey', 'auth', 'authorization', 'blocked_networks', 'cloud_upload', 'cookie', 'cors', 'dashboard', 'debug', 'destructive_write', 'evidence', 'fc00::/7', 'fe80::/10', 'host', 'http', 'https', 'in_process', 'localhost', 'max_total_requests', 'mode', 'password', 'plugins', 'privacy', 'proxy_authorization', 'redact', 'scope', 'secret', 'session', 'session_id', 'set_cookie', 'telemetry', 'token', 'trusted', 'x_api_key']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/config.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [100, 120, 8000, 10000, 86400, 1000000, '0.0.0.0/8', '10.0.0.0/8', '100.64.0.0/10', '127.0.0.0/8', '169.254.0.0/16', '172.16.0.0/12', '192.168.0.0/16', '198.18.0.0/15', '224.0.0.0/4', '::1/128', 'CUSTOM', 'LAB', 'PASSIVE', 'SAFE', '_', 'account_deletion', 'destructive_write', 'encryption_key_env', 'fc00::/7', 'fe80::/10', 'forbid', 'localhost', 'token_env', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/graph.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ ['AFFECTED_BY', 'APIEndpoint', 'AUTHENTICATES_AS', 'Agent', 'BELONGS_TO_TENANT', 'Browser', 'CAN_CALL', 'CAN_INFLUENCE', 'CAN_READ', 'CAN_WRITE', 'CONTAINS', 'CROSSES_BOUNDARY', 'CROSS_TENANT', 'Component', 'DataAsset', 'Database', 'Document', 'EXECUTES', 'EXECUTION_CYCLE', 'Embedding', 'ExternalService', 'File', 'GUARDED_BY', 'Identity', 'MCPResource', 'MCPServer', 'Memory', 'Model', 'NetworkBoundary', 'Policy', 'Principal', 'Prompt', 'RECEIVES_FROM', 'REQUIRES_PERMISSION', 'RETRIEVES_FROM', 'Retriever', 'SENDS_TO', 'Secret', 'Session', 'Tool', 'User', 'VectorStore', 'Vulnerability', 'anonymous', 'authentication', 'category', 'confidential', 'control_plane', 'destination_tenant', 'edges', 'external', 'high', 'kind', 'length', 'low', 'multiple-tenants', 'path', 'pii', 'privilege', 'privileged', 'produces_output', 'protected', 'risk-path', 'score', 'secret', 'sensitivity', 'source_tenant', 'tenant', 'trust', 'untrusted']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/demo/assessment.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [403, 1000, '/email', '/records/b-1', '/refund', '127.0.0.1', 'A', 'GET', 'POST', 'X-Tenant', 'a-1', 'allowed', 'amount', 'approval', 'content', 'customer_id', 'demo', 'destination', 'external', 'external_data_flow', 'external_side_effect', 'function', 'high', 'http://127.0.0.1', 'id', 'ignore previous', 'in_intent', 'kind', 'loop', 'low', 'object_authorization', 'prompt_injection', 'recursion_budget', 'risk', 'source', 'tenant', 'text', 'tool', 'tool_calls', 'tools']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/invariants.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ ['$resource.', '_eq', '_gt', '_gte', '_lt', '_lte', 'context', 'controls', 'deny', 'destination', 'equal', 'flow', 'invariants', 'missing_controls', 'principal', 'source', 'tool', 'unequal', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/schemas.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ ['$id', '$schema', '1.0', 'LOCAL', 'TRUSTED_OFFICIAL', 'TRUSTED_ORGANIZATION', 'UNVERIFIED_COMMUNITY', 'additionalProperties', 'allow', 'array', 'attack-pack-1.0.json', 'attacks', 'category', 'conversation_depth', 'cost', 'default', 'deny', 'effect', 'enforce', 'enum', 'family', 'framework', 'id', 'integer', 'items', 'log', 'mappings', 'match', 'minLength', 'minimum', 'minimum_engine', 'mode', 'moderate', 'null', 'object', 'options', 'policy-1.0.json', 'priority', 'prompt', 'properties', 'publisher', 'rate_limit', 'rationale', 'reason', 'redact', 'report-1.0.json', 'require_approval', 'required', 'rules', 'sandbox', 'shadow', 'signature', 'source', 'strength', 'string', 'strong', 'tags', 'target_invariant', 'transform', 'trust', 'type', 'utf-8', 'version', 'weak']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/validators.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [1.0, '$.', ',', '.', 'Marker search', 'Observed tenant', 'Policy effect', 'Response is not JSON', 'Secret pattern scan', 'authorization', 'callbacks', 'database-state', 'description', 'effect', 'file-state', 'http-callback', 'json-schema', 'kind', 'marker', 'metadata', 'observed', 'policy', 'required', 'secret', 'state', 'tenant', 'tool', 'tools']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/plugins.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [1024, 2000000, ',', '--cap-drop', '--cpus', '--env', '--interactive', '--memory', '--network', '--pids-limit', '--read-only', '--rm', '--security-opt', '--tmpfs', '/', '0', '1', '256m', '64', ':', 'ALL', 'PATH', 'PYTHONIOENCODING', 'SECGRAPH_PLUGIN', 'artifact_sha256', 'command', 'community', 'container', 'credentials.raw', 'docker', 'in_process', 'local', 'max_output_bytes', 'mode', 'name', 'no-new-privileges', 'none', 'organization', 'output_schema', 'permissions', 'podman', 'rb', 'required', 'run', 'secgraph-plugin-', 'subprocess', 'trust', 'trusted', 'utf-8', 'version']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/adapters.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [0.5, 0.8, 1.0, 200, 4000, '1', '2', '3', 'CRITICAL', 'CWE', 'HIGH', 'INFO', 'LIKELY_VIOLATION', 'LOW', 'MEDIUM', 'Nuclei finding', 'OSV vulnerability', 'PASS', 'Potential secret', 'SARIF finding', 'Semgrep finding', 'ZAP finding', 'alert', 'alerts', 'aliases', 'api-property-testing', 'check_id', 'codeql', 'confidence', 'content-filtering', 'critical', 'cwe', 'deepteam', 'dependencies', 'description', 'details', 'detect-secrets', 'dynamic-api-testing', 'engine', 'error', 'extra', 'failures', 'findings', 'garak', 'high', 'id', 'info', 'is_valid', 'issues', 'level', 'llmguard', 'low', 'mappings', 'medium', 'message', 'metadata', 'model-probes', 'model-supply-chain', 'modelscan', 'name', 'note', 'nuclei', 'osv', 'packages', 'pass', 'passed', 'pii-detection', 'pip-audit', 'pluginid', 'presidio', 'probes', 'prompt-evaluation', 'prompt-injection', 'promptfoo', 'pyrit', 'raw_id', 'reason', 'red-team', 'results', 'risk', 'risk_score', 'riskcode', 'ruleId', 'runs', 'safe', 'scanner', 'schemathesis', 'score', 'secret-detection', 'semgrep', 'severity', 'site', 'static-analysis', 'status', 'summary', 'target', 'template-id', 'template-scanning', 'templates', 'test', 'test_id', 'tests', 'text', 'title', 'type', 'verdict', 'vulnerabilities', 'vulns', 'warning', 'zap']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/supply_chain.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [1024, 2000000, 10000000000, '*', '.', '.bin', '.dill', '.gguf', '.joblib', '.json', '.onnx', '.pickle', '.pkl', '.pt', '.pth', '.safetensors', 'rb', 'unknown', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/self_security.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [180, 1024, ', ', '--format', '-m', '127.0.0.1', '::1', '; ', '=', 'Config permissions', 'Configuration safety', 'Dashboard bind', 'Database permissions', 'FAIL', 'N/A', 'PASS', 'Package integrity', 'Plugin signatures', 'RECORD', 'SG-SECRET', 'Secret exposure', 'TLS configuration', 'Unexpected plugins', 'Version freshness', 'WARN', '[REDACTED]', '_KEY', '_SECRET', '_TOKEN', 'api_key', 'audit_sha256', 'checks', 'dashboard', 'host', 'json', 'localhost', 'metadata', 'nt', 'organization', 'passed', 'pip_audit', 'rb', 'secgraphai', 'sha256=', 'tls', 'trusted']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/provenance.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ ['CONFIDENTIAL', 'EXTERNAL', 'MEMORY', 'MODEL_GENERATED', 'PII', 'RAG', 'SECRET', 'SYSTEM', 'T', 'TOOL_DATA', 'UNTRUSTED', 'USER', 'derived', 'exact', 'mixed', 'probabilistic', 'trusted', 'unknown', 'untrusted']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/attacks.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [2000000, ',', '-', '0', '1.0.0rc1', '2026', ':', 'ASI02', 'Encode the answer:', 'In a simulation,', 'LLM01', 'LLM08', 'LLM09', 'LOCAL', 'OWASP Agentic', 'OWASP LLM', 'Step by step,', 'TENANT_ISOLATION', 'TOOL_AUTHORIZATION', 'TRUSTED_OFFICIAL', 'TRUSTED_ORGANIZATION', 'UNVERIFIED_COMMUNITY', '_', 'agent', 'ascii', 'attacks', 'category', 'conversation_depth', 'cost', 'family', 'framework', 'id', 'identity', 'indirect-injection', 'llm', 'mappings', 'mcp', 'minimum_engine', 'moderate', 'official_ed25519.pub', 'pi-direct', 'pi-indirect', 'prompt', 'prompt-injection', 'publisher', 'rag', 'rag-exfil', 'rag-exfiltration', 'rationale', 'secgraphai', 'secgraphai.packs', 'signature', 'source', 'strength', 'strong', 'system-leak', 'tags', 'target_invariant', 'tool', 'tool-abuse', 'tool-escalate', 'trust', 'user', 'utf-8', 'version', 'weak']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/research.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [1000, 20000000, '(?<=[.!?])\\s+', '.pdf', '0.0.0-draft', '1.0.0rc1', 'activated', 'attack', 'bypass', 'exploit', 'inject', 'limitations', 'local-import', 'replace', 'research-draft', 'source_sha256', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/runtime.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ ['F', 'after_sync', 'agent', 'allowed', 'approval', 'before_sync', 'drop_fields', 'effect', 'enforced', 'explanation', 'fields', 'function', 'kind', 'labels', 'maximum', 'normal', 'permission', 'permissions', 'policy', 'reason', 'redact', 'retriever', 'risk', 'rule_id', 'sandboxed', 'sensitive', 'tenant', 'tool', 'transform', 'user', 'when', 'window_seconds']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/model.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [200, 2000000, '/', 'Accept', 'Authorization', 'POST', 'application/json', 'choices', 'content', 'message', 'messages', 'model', 'revalidate']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/demo/__init__.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ []
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/reporting.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ ['## Audit manifest', '## Limitations', '## Resource usage', '%s', '.', '</tr>', '<tr>', '\\|', '```', '```json', 'csv', 'fingerprint', 'html', 'id', 'json', 'jsonl', 'junit', 'markdown', 'md', 'pdf', 'sarif', 'severity', 'title', 'utf-8', 'verdict', 'xml', '|', '|---|---|---|---|']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/dashboard.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [100, 120, 202, 401, 404, 413, 422, 429, 1000, 4401, 2000000, ',', '/', '/api/v1/attack-paths', '/api/v1/events', '/api/v1/findings', '/api/v1/graph', '/api/v1/health', '/api/v1/policies', '/api/v1/reports', '/api/v1/scan-jobs', '/api/v1/scans', '/api/v1/self-audit', '/api/v1/targets', '/api/v1/views/{view}', '/health', '/static', '127.0.0.1', ':', '::1', 'AGENT-', 'API-', 'API-AUTHZ-', 'Bearer ', 'COMPLETED', 'Cache-Control', 'DENY', 'FAILED', 'IDENTITY-', 'MCP-', 'Model', 'PI-', 'QUEUED', 'RAG-', 'RUNNING', 'Referrer-Policy', 'SG-AGENT-', 'SG-API-', 'SG-API-AUTHZ-', 'SG-IDENTITY-', 'SG-MCP-', 'SG-PI-', 'SG-PROMPT-', 'SG-RAG-', 'SecGraphAI', 'X-Frame-Options', 'adaptive', 'agent', 'agents', 'allowed', 'api-security', 'architecture', 'artifacts', 'attack-graph', 'attack-paths', 'attack_budget', 'audit', 'authentication', 'authorization', 'bearer', 'bind_host', 'by_severity', 'by_verdict', 'configuration', 'content-length', 'coverage', 'decisions', 'detail', 'edges', 'effect', 'error', 'events', 'finding_id', 'finding_ids', 'findings', 'graph', 'heartbeat', 'http', 'id', 'identities', 'index.html', 'items', 'job_id', 'jobs', 'json', 'kind', 'known_exploited', 'llm-2026', 'local', 'localhost', 'match', 'max_body_bytes', 'mcp', 'mode', 'models', 'modules', 'no-referrer', 'no-store', 'nodes', 'nosniff', 'not found', 'ok', 'options', 'overview', 'owasp', 'owasp-coverage', 'policies', 'priority', 'prompt-injection', 'rag', 'rate limit exceeded', 'reason', 'regression-tests', 'reports', 'request too large', 'resources', 'risk_paths', 'rules', 'runtime', 'scan.completed', 'scan.failed', 'scan.queued', 'scan.running', 'scan_id', 'scans', 'secgraphai', 'self-audit', 'self-security', 'settings', 'state', 'static', 'status', 'summary', 'target not found', 'target_id', 'targets', 'telemetry', 'test_errors', 'time', 'total', 'type', 'unauthorized', 'verified', 'view', 'vulnerabilities', 'would_block']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/multimodal.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [50000000, '.json', '.md', '.xml', 'application/pdf', 'replace', 'text/', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/discovery.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [200, 443, 2000000, '*', '.json', '.py', '.yaml', '.yml', '/openapi.json', ':', 'GET', 'agent', 'agents', 'annotated', 'api', 'attributes', 'calls', 'chroma', 'configuration', 'delete', 'dynamic', 'environment', 'external', 'external_service', 'external_services', 'faiss', 'fastapi', 'field', 'function', 'gen_ai.model', 'gen_ai.request.model', 'gen_ai.tool.name', 'get', 'graphql', 'head', 'host', 'http', 'http.method', 'http.request.method', 'http.route', 'http_traces', 'https', 'id', 'identities', 'identity', 'kind', 'mcp', 'mcp_resource', 'mcp_server', 'mcp_server_id', 'mcp_servers', 'mcpclient', 'metadata_discovery', 'method', 'methods', 'model', 'models', 'mutation', 'name', 'operation', 'operation_id', 'options', 'otel', 'otel_spans', 'parameter', 'patch', 'path', 'paths', 'permissions', 'post', 'principal', 'prompt', 'protected', 'protocol', 'put', 'ragtarget', 'reads', 'requires_approval', 'retriever', 'retrievers', 'retrieves_from', 'risk', 'routes', 'schema', 'security', 'sends_to', 'server', 'serverInfo', 'source', 'span', 'subscription', 'tool', 'tool.name', 'tools', 'trust', 'trust_boundaries', 'trust_boundary', 'uri', 'url', 'utf-8', 'value', 'value_redacted', 'vector_store', 'vector_stores', 'writes']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/canary.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ ['document', 'id', 'memory', 'record', 'replace', 'secret', 'tool', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/roles.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [4000, 'asset', 'attack', 'base_url', 'confidence', 'content', 'evidence', 'invariant', 'json', 'judge', 'judges', 'mappings', 'model', 'output', 'prompt', 'remediation', 'role', 'system', 'target', 'title', 'user', 'violation']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/__init__.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ ['Attack', 'AttackMapping', 'AttackMemory', 'AttackPack', 'AttackPlanner', 'Confidence', 'Config', 'DifferentialResult', 'DiscoveredComponent', 'DiscoveryInventory', 'EdgeType', 'Evidence', 'Finding', 'Interaction', 'Invariant', 'InvariantEngine', 'Label', 'Mode', 'Model', 'ModelRole', 'ModelRoles', 'NodeType', 'PackTrust', 'PolicyEngine', 'Provenance', 'Report', 'ResourceUsage', 'Rule', 'ScanManifest', 'SecGraph', 'SecurityGraph', 'Sensitive', 'Severity', 'Tainted', 'UtilityResult', 'Verdict', 'Verification', 'canary', 'compare_utility', 'detect_amplification', 'discover_fastapi', 'discover_mcp', 'discover_path', 'discover_url', 'invariant', 'load_official_pack', 'measure', 'secgraph']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/lifecycle.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [100, 10000000, '\x00', '$schema', ',', '..', '1', '2.1.0', ':', 'CRITICAL', 'HIGH', 'LIKELY_VIOLATION', 'PASS', 'SecGraphAI', 'TEST_ERROR', 'VERIFIED_VIOLATION', '[^A-Za-z0-9_]', '_', 'artifact_hashes', 'cases', 'ci', 'confidence', 'config_hash', 'configuration', 'configuration.json', 'driver', 'environment', 'error', 'evidence', 'executable', 'expected', 'fail_on_new', 'fail_on_test_error', 'failure', 'finding_id', 'findings', 'fingerprint', 'forbid', 'forbidden marker', 'forbidden_markers', 'forbidden_verdicts', 'graph', 'hashes', 'id', 'implementation', 'inputs.json', 'interactions', 'invalid replay case', 'invariant', 'json', 'junit', 'level', 'limitations', 'manifest', 'manifest.json', 'mappings', 'message', 'name', 'new', 'note', 'partialFingerprints', 'platform', 'policies', 'policies.json', 'policy', 'policy_hash', 'prompt', 'properties', 'pytest', 'python', 'regression_tests', 'replayable', 'report.json', 'reports', 'resolved', 'results', 'ruleId', 'runs', 'schema', 'secgraph-regression', 'secgraphFingerprint', 'secgraphai', 'secgraphai.generated', 'sha256', 'test_id', 'testcase', 'tests', 'tests.json', 'testsuite', 'text', 'tool', 'unchanged', 'unicode', 'utf-8', 'verdict', 'version', 'w', 'warning', 'yaml']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/instrumentation.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [500, 1000, 'F', 'X-SecGraph-Trace', '__name__', 'callable', 'chat', 'completions', 'fastapi', 'http', 'httpx', 'langchain', 'langgraph', 'mcp', 'method', 'openai', 'request', 'response', 'secgraph.duration_ms', 'secgraph.name', 'secgraph.success', 'secgraph_started', 'status', 'x-request-id']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/packs/__init__.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ []
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/targets.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ [200, 201, 204, 401, 403, 1000, 1000000, 2000000, ',', '/', ':', 'Authorization', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'account_deletion', 'active_write', 'additionalProperties', 'delete', 'description', 'destructive_write', 'external_side_effect', 'get', 'head', 'initialize', 'inputSchema', 'metadata_discovery', 'method', 'name', 'operationId', 'options', 'patch', 'path', 'paths', 'post', 'prompts', 'prompts/list', 'put', 'read', 'replace', 'resources', 'resources/list', 'revalidate', 'security', 'server', 'tools', 'tools/list', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /tmp/pytest-of-runner/pytest-0/test_replay_cli_reruns_and_fai0/replay_callback.py
2
+ # hypothesis_version: 6.167.1
3
+
4
+ ['LEAK-MARKER']
@@ -0,0 +1,47 @@
1
+ # Changelog
2
+
3
+ All notable changes to SecGraphAI are documented here. The project follows Semantic
4
+ Versioning and the format is based on Keep a Changelog.
5
+
6
+ ## [Unreleased]
7
+
8
+ - Enforced PASSIVE, SAFE, LAB, and CUSTOM request modes and recorded finding reproduction inputs.
9
+ - Added executable replay verification, persisted dashboard scan jobs, and authenticated live events.
10
+ - Added four independent model roles, boundary-progress adaptive search, and a package-driven
11
+ six-behavior vulnerable/hardened benchmark.
12
+ - Added incremental CVE cache metadata/freshness and digest-pinned container plugin isolation.
13
+ - Added resumable, rate-aware NVD paging and all PRD-documented installation extras.
14
+ - Added MCP and OpenTelemetry architecture discovery with graph relationships and public APIs.
15
+ - Added a detailed user guide with callback, model, API, RAG, MCP, agent, CI, and dashboard scenarios.
16
+ - Expanded security and integration coverage to more than 450 tests.
17
+ - Completed principal/tool/condition/control invariant evaluation and full resource accounting.
18
+ - Expanded RAG, MCP, API, and agent checks and normalized every declared external-engine format.
19
+ - Added live FastAPI route discovery, declared graph relationships, and environment-name-only metadata.
20
+ - Added conditional/delta NVD synchronization, encrypted/retained storage, optional PII masking,
21
+ broader credential redaction, DNS rebinding detection, and replay compression-ratio limits.
22
+ - Added baseline-aware `secgraph test`, historical policy simulation, and dedicated dashboard views.
23
+
24
+ ## [1.0.0rc1] - 2026-09-07
25
+
26
+ - Connected attack planning, validators, target execution, policy enforcement, and evidence.
27
+ - Added complete CLI workflow groups, dashboard API/frontend, CVE/CycloneDX/SPDX intelligence,
28
+ instrumentation, security modules, adapters, signed packs, and benchmark applications.
29
+ - Added release-candidate security, property, integration, and packaging verification.
30
+
31
+ ## [0.9.0] - 2026-09-07
32
+
33
+ - Added validators, judge ensembles, API/identity, RAG, MCP, provenance, and policy primitives.
34
+ - Added adaptive planning, memory, novelty/evolution, and signed attack packs.
35
+ - Added baselines, replay bundles, pytest generation, SARIF, and JUnit.
36
+ - Added OWASP coverage, SBOM/CVE intelligence, security gates, plugin isolation, and dashboard API.
37
+ - Expanded the suite with over 300 parameterized unit and security cases.
38
+
39
+ ## [0.1.0] - 2026-09-07
40
+
41
+ ### Added
42
+
43
+ - Initial package, CLI, OpenAI-compatible model adapter, and callback scanner.
44
+ - Typed security graph, invariants, findings, evidence, and verdicts.
45
+ - Runtime authorization and approval interception.
46
+ - Deterministic canaries, scope controls, secret redaction, configuration doctor,
47
+ secure HTML/JSON reporting, and SQLite report storage.
@@ -0,0 +1,18 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ Copyright 2026 SecGraphAI contributors
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+