agentdiscover 2.7.2__tar.gz → 2.7.3__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 (136) hide show
  1. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/PKG-INFO +36 -1
  2. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/README.md +35 -0
  3. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/pyproject.toml +1 -1
  4. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/.claude/commands/grow-scanner.md +0 -0
  5. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/.github/workflows/aibom.yml +0 -0
  6. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/.github/workflows/ci.yml +0 -0
  7. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/.github/workflows/scan.yml +0 -0
  8. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/.gitignore +0 -0
  9. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/.python-version +0 -0
  10. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/CHANGELOG.md +0 -0
  11. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/CLAUDE.md +0 -0
  12. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/COMMIT_NOTES.md +0 -0
  13. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/CONTRIBUTING.md +0 -0
  14. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/Dockerfile +0 -0
  15. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/LICENSE +0 -0
  16. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/README_BADGES.txt +0 -0
  17. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/RELEASE_NOTES.md +0 -0
  18. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/ROADMAP.md +0 -0
  19. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/SECURITY.md +0 -0
  20. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/action.yml +0 -0
  21. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/k8s/agents-configmap.yaml +0 -0
  22. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/k8s/crewai-agent.yaml +0 -0
  23. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/k8s/langchain-agent.yaml +0 -0
  24. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/k8s/shadow-agent.yaml +0 -0
  25. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/mcp-governance/DESIGN.md +0 -0
  26. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/mcp-governance/README.md +0 -0
  27. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/mcp-governance/sample-policy.yaml +0 -0
  28. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/run-demo.sh +0 -0
  29. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/sample-repo/agents/autogen_agent.py +0 -0
  30. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/sample-repo/agents/crewai_agent.py +0 -0
  31. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/sample-repo/agents/direct_client.py +0 -0
  32. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/sample-repo/agents/langchain_agent.py +0 -0
  33. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/sample-repo/requirements.txt +0 -0
  34. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/demo/setup.sh +0 -0
  35. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/deployment/kubernetes/tracing-policy.yaml +0 -0
  36. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/deployment/systemd/README.md +0 -0
  37. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/deployment/systemd/agent-discover-scanner.service +0 -0
  38. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docker-compose.yml +0 -0
  39. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docs/EXAMPLES.md +0 -0
  40. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docs/TETRAGON_SETUP.md +0 -0
  41. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docs/architecture.svg +0 -0
  42. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docs/comparisons/vs-grep.md +0 -0
  43. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docs/comparisons/vs-nudge-security.md +0 -0
  44. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docs/ghost-detection.svg +0 -0
  45. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docs/integrations/elastic.md +0 -0
  46. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docs/integrations/github-actions.md +0 -0
  47. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docs/integrations/kubernetes-daemonset.md +0 -0
  48. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docs/integrations/splunk.md +0 -0
  49. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docs/known-apps-example.txt +0 -0
  50. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docs/layer4-setup.md +0 -0
  51. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/docs/nist-mapping.md +0 -0
  52. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/examples/k8s/test-workload.yaml +0 -0
  53. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/examples/tetragon-sample-events.json +0 -0
  54. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/install.sh +0 -0
  55. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/__init__.py +0 -0
  56. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/aibom.py +0 -0
  57. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/audit_reports.py +0 -0
  58. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/behavioral_patterns.py +0 -0
  59. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/cli.py +0 -0
  60. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/correlator.py +0 -0
  61. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/detectors/__init__.py +0 -0
  62. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/detectors/cloud_audit/__init__.py +0 -0
  63. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/detectors/cloud_audit/aws_cloudtrail.py +0 -0
  64. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/detectors/cloud_audit/azure_monitor.py +0 -0
  65. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/detectors/cloud_audit/base.py +0 -0
  66. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/detectors/cloud_audit/gcp_audit.py +0 -0
  67. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/detectors/cloudtrail.py +0 -0
  68. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/errors.py +0 -0
  69. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/exporters/__init__.py +0 -0
  70. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/exporters/mcpfw_policy.py +0 -0
  71. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/git_scanner.py +0 -0
  72. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/high_risk_agents.py +0 -0
  73. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/interceptors/__init__.py +0 -0
  74. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/interceptors/base.py +0 -0
  75. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/interceptors/sse/__init__.py +0 -0
  76. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/interceptors/sse/netskope.py +0 -0
  77. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/interceptors/sse/prisma_access.py +0 -0
  78. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/interceptors/sse/umbrella.py +0 -0
  79. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/interceptors/sse/zscaler.py +0 -0
  80. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/js_signatures.py +0 -0
  81. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/known_apps.py +0 -0
  82. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/layer4/__init__.py +0 -0
  83. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/layer4/osquery_executor.py +0 -0
  84. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/layer4/osquery_queries.py +0 -0
  85. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/layer4/result_parser.py +0 -0
  86. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/macos_detector.py +0 -0
  87. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/mcp_detector.py +0 -0
  88. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/models/endpoint_discovery.py +0 -0
  89. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/monitors/__init__.py +0 -0
  90. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/monitors/json_output.py +0 -0
  91. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/monitors/k8s_monitor.py +0 -0
  92. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/monitors/tetragon_events.py +0 -0
  93. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/monitors/tetragon_monitor.py +0 -0
  94. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/monitors/vendor_mapping.py +0 -0
  95. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/network_monitor.py +0 -0
  96. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/platform.py +0 -0
  97. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/reports/layer4_report.py +0 -0
  98. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/saas_detector.py +0 -0
  99. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/sarif_output.py +0 -0
  100. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/sbom_analyzer.py +0 -0
  101. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/scan_runner.py +0 -0
  102. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/scanner.py +0 -0
  103. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/signatures.py +0 -0
  104. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/visitor.py +0 -0
  105. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/src/agent_discover_scanner/windows_detector.py +0 -0
  106. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/__init__.py +0 -0
  107. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/autogen_safe.py +0 -0
  108. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/autogen_unsafe.py +0 -0
  109. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/bedrock_safe.py +0 -0
  110. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/bedrock_unsafe.py +0 -0
  111. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/clean_code.py +0 -0
  112. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/crewai_safe.py +0 -0
  113. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/crewai_unsafe.py +0 -0
  114. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/langchain_agents.py +0 -0
  115. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/langchain_js_agent.js +0 -0
  116. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/langgraph_workflow.py +0 -0
  117. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/safe_with_gateway.py +0 -0
  118. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/shadow_anthropic.py +0 -0
  119. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/shadow_openai.py +0 -0
  120. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/fixtures/shadow_openai_js.js +0 -0
  121. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_aibom.py +0 -0
  122. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_audit_bundle.py +0 -0
  123. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_bedrock_signatures.py +0 -0
  124. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_behavioral_patterns.py +0 -0
  125. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_cloud_audit_layer5.py +0 -0
  126. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_cloudtrail.py +0 -0
  127. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_cloudtrail_wiring.py +0 -0
  128. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_correlator.py +0 -0
  129. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_correlator_layer5.py +0 -0
  130. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_git_scanner.py +0 -0
  131. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_install.sh +0 -0
  132. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_interceptors.py +0 -0
  133. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_mcpfw_export.py +0 -0
  134. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_network_monitor.py +0 -0
  135. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/tests/test_scanner.py +0 -0
  136. {agentdiscover-2.7.2 → agentdiscover-2.7.3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentdiscover
3
- Version: 2.7.2
3
+ Version: 2.7.3
4
4
  Summary: Discover every AI agent in your infrastructure. 5-layer detection: static analysis, network monitoring, eBPF/Kubernetes runtime, endpoint, and cloud audit (CloudTrail). Company-level correlation. AIBOM export. MCP server detection.
5
5
  Project-URL: Homepage, https://defendai.ai
6
6
  Project-URL: Documentation, https://github.com/Defend-AI-Tech-Inc/agent-discover-scanner/blob/main/README.md
@@ -138,6 +138,41 @@ crewai-agent (CONFIRMED)
138
138
 
139
139
  ---
140
140
 
141
+ ## What counts as an "agent"
142
+
143
+ DefendAI classifies **AI-capable components**, not just top-level orchestrators. Any component that invokes a model, holds a memory buffer, binds a tool, or queries a vector store is an independently governable unit — it can exfiltrate data, consume budget, or behave unexpectedly on its own.
144
+
145
+ This matters because the gap between "we have one AI agent" (what the team believes) and the actual component count is routinely 5–15×.
146
+
147
+ **Example — a single LangGraph application with 3 workers:**
148
+
149
+ | # | Component | Why it's tracked |
150
+ |---|---|---|
151
+ | 1 | `StateGraph` | Graph entrypoint; controls execution flow |
152
+ | 2–4 | Worker agent nodes ×3 | Each is an independent LangChain agent |
153
+ | 5–7 | LLM bindings ×3 (one per worker) | Direct model invocations; each has its own token budget |
154
+ | 8 | Supervisor node | Routes tasks between workers; has its own LLM call |
155
+ | 9 | LLM binding for supervisor | Additional model invocation with separate prompt |
156
+ | 10 | Tool node | Executes tool calls on behalf of workers |
157
+ | 11 | Vector store retriever | RAG component; queries an external embedding store |
158
+ | 12 | Memory checkpointer | Persists conversation state across turns |
159
+ | 13 | Prompt templates | Carry system-level instructions that can be injected or drifted |
160
+ | 14 | Output parser | Transforms model output; can silently drop or alter content |
161
+ | 15 | Human-in-the-loop interrupt | Pause point that can be bypassed in non-interactive runs |
162
+
163
+ One application. One developer who says "it's just an AI assistant." Fifteen components that each independently touch a model, a store, or a tool — any of which could be ungoverned, GHOST-classified, or carrying a stale permission scope.
164
+
165
+ **Why component-level visibility matters:**
166
+
167
+ - A worker's LLM binding can be swapped (model drift) without changing the agent node that wraps it.
168
+ - A retriever can be pointed at a new vector store index without redeploying the application.
169
+ - A prompt template lives in a config file, not code — static analysis misses it; only runtime observation catches the change.
170
+ - GHOST detection fires at the component level: if worker 2's LLM binding starts calling a different endpoint, the graph-level agent still looks CONFIRMED while that specific binding is GHOST.
171
+
172
+ agentdiscover reports each component as a separate inventory item so your governance controls can target the right granularity.
173
+
174
+ ---
175
+
141
176
  ## Quick start
142
177
 
143
178
  ```bash
@@ -95,6 +95,41 @@ crewai-agent (CONFIRMED)
95
95
 
96
96
  ---
97
97
 
98
+ ## What counts as an "agent"
99
+
100
+ DefendAI classifies **AI-capable components**, not just top-level orchestrators. Any component that invokes a model, holds a memory buffer, binds a tool, or queries a vector store is an independently governable unit — it can exfiltrate data, consume budget, or behave unexpectedly on its own.
101
+
102
+ This matters because the gap between "we have one AI agent" (what the team believes) and the actual component count is routinely 5–15×.
103
+
104
+ **Example — a single LangGraph application with 3 workers:**
105
+
106
+ | # | Component | Why it's tracked |
107
+ |---|---|---|
108
+ | 1 | `StateGraph` | Graph entrypoint; controls execution flow |
109
+ | 2–4 | Worker agent nodes ×3 | Each is an independent LangChain agent |
110
+ | 5–7 | LLM bindings ×3 (one per worker) | Direct model invocations; each has its own token budget |
111
+ | 8 | Supervisor node | Routes tasks between workers; has its own LLM call |
112
+ | 9 | LLM binding for supervisor | Additional model invocation with separate prompt |
113
+ | 10 | Tool node | Executes tool calls on behalf of workers |
114
+ | 11 | Vector store retriever | RAG component; queries an external embedding store |
115
+ | 12 | Memory checkpointer | Persists conversation state across turns |
116
+ | 13 | Prompt templates | Carry system-level instructions that can be injected or drifted |
117
+ | 14 | Output parser | Transforms model output; can silently drop or alter content |
118
+ | 15 | Human-in-the-loop interrupt | Pause point that can be bypassed in non-interactive runs |
119
+
120
+ One application. One developer who says "it's just an AI assistant." Fifteen components that each independently touch a model, a store, or a tool — any of which could be ungoverned, GHOST-classified, or carrying a stale permission scope.
121
+
122
+ **Why component-level visibility matters:**
123
+
124
+ - A worker's LLM binding can be swapped (model drift) without changing the agent node that wraps it.
125
+ - A retriever can be pointed at a new vector store index without redeploying the application.
126
+ - A prompt template lives in a config file, not code — static analysis misses it; only runtime observation catches the change.
127
+ - GHOST detection fires at the component level: if worker 2's LLM binding starts calling a different endpoint, the graph-level agent still looks CONFIRMED while that specific binding is GHOST.
128
+
129
+ agentdiscover reports each component as a separate inventory item so your governance controls can target the right granularity.
130
+
131
+ ---
132
+
98
133
  ## Quick start
99
134
 
100
135
  ```bash
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "agentdiscover"
7
- version = "2.7.2"
7
+ version = "2.7.3"
8
8
  description = "Discover every AI agent in your infrastructure. 5-layer detection: static analysis, network monitoring, eBPF/Kubernetes runtime, endpoint, and cloud audit (CloudTrail). Company-level correlation. AIBOM export. MCP server detection."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes