zen-ai-pentest 2.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. zen_ai_pentest-2.0.0/CONTRIBUTING.md +284 -0
  2. zen_ai_pentest-2.0.0/CONTRIBUTORS.md +94 -0
  3. zen_ai_pentest-2.0.0/LICENSE +21 -0
  4. zen_ai_pentest-2.0.0/MANIFEST.in +17 -0
  5. zen_ai_pentest-2.0.0/PKG-INFO +795 -0
  6. zen_ai_pentest-2.0.0/README.md +740 -0
  7. zen_ai_pentest-2.0.0/agents/__init__.py +28 -0
  8. zen_ai_pentest-2.0.0/agents/agent_base.py +239 -0
  9. zen_ai_pentest-2.0.0/agents/agent_orchestrator.py +346 -0
  10. zen_ai_pentest-2.0.0/agents/analysis_agent.py +225 -0
  11. zen_ai_pentest-2.0.0/agents/cli.py +258 -0
  12. zen_ai_pentest-2.0.0/agents/exploit_agent.py +224 -0
  13. zen_ai_pentest-2.0.0/agents/integration.py +211 -0
  14. zen_ai_pentest-2.0.0/agents/post_scan_agent.py +937 -0
  15. zen_ai_pentest-2.0.0/agents/react_agent.py +384 -0
  16. zen_ai_pentest-2.0.0/agents/react_agent_enhanced.py +616 -0
  17. zen_ai_pentest-2.0.0/agents/react_agent_vm.py +298 -0
  18. zen_ai_pentest-2.0.0/agents/research_agent.py +176 -0
  19. zen_ai_pentest-2.0.0/api/__init__.py +11 -0
  20. zen_ai_pentest-2.0.0/api/auth.py +123 -0
  21. zen_ai_pentest-2.0.0/api/main.py +1027 -0
  22. zen_ai_pentest-2.0.0/api/schemas.py +357 -0
  23. zen_ai_pentest-2.0.0/api/websocket.py +97 -0
  24. zen_ai_pentest-2.0.0/autonomous/__init__.py +122 -0
  25. zen_ai_pentest-2.0.0/autonomous/agent.py +253 -0
  26. zen_ai_pentest-2.0.0/autonomous/agent_loop.py +1370 -0
  27. zen_ai_pentest-2.0.0/autonomous/exploit_validator.py +1537 -0
  28. zen_ai_pentest-2.0.0/autonomous/memory.py +448 -0
  29. zen_ai_pentest-2.0.0/autonomous/react.py +339 -0
  30. zen_ai_pentest-2.0.0/autonomous/tool_executor.py +488 -0
  31. zen_ai_pentest-2.0.0/backends/__init__.py +16 -0
  32. zen_ai_pentest-2.0.0/backends/chatgpt_direct.py +133 -0
  33. zen_ai_pentest-2.0.0/backends/claude_direct.py +130 -0
  34. zen_ai_pentest-2.0.0/backends/duckduckgo.py +138 -0
  35. zen_ai_pentest-2.0.0/backends/openrouter.py +120 -0
  36. zen_ai_pentest-2.0.0/benchmarks/__init__.py +149 -0
  37. zen_ai_pentest-2.0.0/benchmarks/benchmark_engine.py +904 -0
  38. zen_ai_pentest-2.0.0/benchmarks/ci_benchmark.py +785 -0
  39. zen_ai_pentest-2.0.0/benchmarks/comparison.py +729 -0
  40. zen_ai_pentest-2.0.0/benchmarks/metrics.py +553 -0
  41. zen_ai_pentest-2.0.0/benchmarks/run_benchmarks.py +809 -0
  42. zen_ai_pentest-2.0.0/ci_cd/__init__.py +2 -0
  43. zen_ai_pentest-2.0.0/core/__init__.py +17 -0
  44. zen_ai_pentest-2.0.0/core/async_pool.py +282 -0
  45. zen_ai_pentest-2.0.0/core/asyncio_fix.py +222 -0
  46. zen_ai_pentest-2.0.0/core/cache.py +472 -0
  47. zen_ai_pentest-2.0.0/core/container.py +277 -0
  48. zen_ai_pentest-2.0.0/core/database.py +114 -0
  49. zen_ai_pentest-2.0.0/core/input_validator.py +353 -0
  50. zen_ai_pentest-2.0.0/core/models.py +288 -0
  51. zen_ai_pentest-2.0.0/core/orchestrator.py +611 -0
  52. zen_ai_pentest-2.0.0/core/plugin_manager.py +571 -0
  53. zen_ai_pentest-2.0.0/core/rate_limiter.py +405 -0
  54. zen_ai_pentest-2.0.0/core/secure_config.py +328 -0
  55. zen_ai_pentest-2.0.0/core/shield_integration.py +296 -0
  56. zen_ai_pentest-2.0.0/docs/.gitkeep +0 -0
  57. zen_ai_pentest-2.0.0/docs/API.md +464 -0
  58. zen_ai_pentest-2.0.0/docs/API_DOCUMENTATION.md +446 -0
  59. zen_ai_pentest-2.0.0/docs/ATTACKERS_MINDSET_TTPs.md +232 -0
  60. zen_ai_pentest-2.0.0/docs/BRANCH_PROTECTION.md +221 -0
  61. zen_ai_pentest-2.0.0/docs/CI_CD_MONITORING.md +204 -0
  62. zen_ai_pentest-2.0.0/docs/CONTAINER_INTEGRATION.md +368 -0
  63. zen_ai_pentest-2.0.0/docs/DEPENDABOT.md +190 -0
  64. zen_ai_pentest-2.0.0/docs/DOCKER_SETUP.md +580 -0
  65. zen_ai_pentest-2.0.0/docs/GITHUB_SETUP.md +306 -0
  66. zen_ai_pentest-2.0.0/docs/NOTIFICATIONS.md +159 -0
  67. zen_ai_pentest-2.0.0/docs/OSINT_MODULE.md +275 -0
  68. zen_ai_pentest-2.0.0/docs/PENTESTER_VS_ATTACKER_MINDSET.md +545 -0
  69. zen_ai_pentest-2.0.0/docs/PLUGIN_SYSTEM.md +311 -0
  70. zen_ai_pentest-2.0.0/docs/POSTMAN.md +363 -0
  71. zen_ai_pentest-2.0.0/docs/POST_SCAN_AGENT.md +93 -0
  72. zen_ai_pentest-2.0.0/docs/PROTONVPN_INTEGRATION.md +383 -0
  73. zen_ai_pentest-2.0.0/docs/REACT_AGENT.md +202 -0
  74. zen_ai_pentest-2.0.0/docs/README.md +29 -0
  75. zen_ai_pentest-2.0.0/docs/REAL_LIFE_SCENARIOS.md +661 -0
  76. zen_ai_pentest-2.0.0/docs/ROADMAP-2026.md +190 -0
  77. zen_ai_pentest-2.0.0/docs/TOOLS_SUMMARY.md +222 -0
  78. zen_ai_pentest-2.0.0/docs/VIRTUALIZATION_SUMMARY.md +263 -0
  79. zen_ai_pentest-2.0.0/docs/WEBHOOK_SETUP.md +180 -0
  80. zen_ai_pentest-2.0.0/docs/ZEN_SHIELD.md +322 -0
  81. zen_ai_pentest-2.0.0/docs/_config.yml +33 -0
  82. zen_ai_pentest-2.0.0/docs/adr/0001-record-architecture-decisions.md +17 -0
  83. zen_ai_pentest-2.0.0/docs/adr/0002-multi-agent-architecture.md +55 -0
  84. zen_ai_pentest-2.0.0/docs/adr/0003-llm-backend-routing.md +58 -0
  85. zen_ai_pentest-2.0.0/docs/adr/0004-autonomous-agent-architecture.md +80 -0
  86. zen_ai_pentest-2.0.0/docs/adr/0005-tool-execution-framework.md +123 -0
  87. zen_ai_pentest-2.0.0/docs/adr/0006-risk-scoring-methodology.md +115 -0
  88. zen_ai_pentest-2.0.0/docs/adr/README.md +74 -0
  89. zen_ai_pentest-2.0.0/docs/api/autonomous.md +85 -0
  90. zen_ai_pentest-2.0.0/docs/api/risk_engine.md +133 -0
  91. zen_ai_pentest-2.0.0/docs/index.html +343 -0
  92. zen_ai_pentest-2.0.0/docs/index.md +163 -0
  93. zen_ai_pentest-2.0.0/docs/research/FUNDAMENTAL_PENTEST_TOOLS.md +198 -0
  94. zen_ai_pentest-2.0.0/docs/roadmap/2026/Q1_Q2_Q3_Q4_SUMMARY.md +71 -0
  95. zen_ai_pentest-2.0.0/docs/setup/VIRTUALBOX_SETUP.md +533 -0
  96. zen_ai_pentest-2.0.0/docs/tutorials/getting-started.md +56 -0
  97. zen_ai_pentest-2.0.0/modules/__init__.py +46 -0
  98. zen_ai_pentest-2.0.0/modules/cve_database.py +362 -0
  99. zen_ai_pentest-2.0.0/modules/exploit_assist.py +330 -0
  100. zen_ai_pentest-2.0.0/modules/nuclei_integration.py +480 -0
  101. zen_ai_pentest-2.0.0/modules/osint.py +604 -0
  102. zen_ai_pentest-2.0.0/modules/protonvpn.py +554 -0
  103. zen_ai_pentest-2.0.0/modules/recon.py +165 -0
  104. zen_ai_pentest-2.0.0/modules/sql_injection_db.py +826 -0
  105. zen_ai_pentest-2.0.0/modules/tool_orchestrator.py +498 -0
  106. zen_ai_pentest-2.0.0/modules/vuln_scanner.py +292 -0
  107. zen_ai_pentest-2.0.0/modules/wordlist_generator.py +566 -0
  108. zen_ai_pentest-2.0.0/pyproject.toml +141 -0
  109. zen_ai_pentest-2.0.0/requirements.txt +57 -0
  110. zen_ai_pentest-2.0.0/risk_engine/__init__.py +99 -0
  111. zen_ai_pentest-2.0.0/risk_engine/business_impact.py +267 -0
  112. zen_ai_pentest-2.0.0/risk_engine/business_impact_calculator.py +563 -0
  113. zen_ai_pentest-2.0.0/risk_engine/cvss.py +156 -0
  114. zen_ai_pentest-2.0.0/risk_engine/epss.py +190 -0
  115. zen_ai_pentest-2.0.0/risk_engine/example_usage.py +294 -0
  116. zen_ai_pentest-2.0.0/risk_engine/false_positive_engine.py +1073 -0
  117. zen_ai_pentest-2.0.0/risk_engine/scorer.py +304 -0
  118. zen_ai_pentest-2.0.0/setup.cfg +4 -0
  119. zen_ai_pentest-2.0.0/setup.py +135 -0
  120. zen_ai_pentest-2.0.0/templates/reports/executive_summary.md +45 -0
  121. zen_ai_pentest-2.0.0/templates/reports/technical_report.md +81 -0
  122. zen_ai_pentest-2.0.0/web_ui/backend/main.py +471 -0
  123. zen_ai_pentest-2.0.0/zen_ai_pentest.egg-info/PKG-INFO +795 -0
  124. zen_ai_pentest-2.0.0/zen_ai_pentest.egg-info/SOURCES.txt +127 -0
  125. zen_ai_pentest-2.0.0/zen_ai_pentest.egg-info/dependency_links.txt +1 -0
  126. zen_ai_pentest-2.0.0/zen_ai_pentest.egg-info/entry_points.txt +2 -0
  127. zen_ai_pentest-2.0.0/zen_ai_pentest.egg-info/not-zip-safe +1 -0
  128. zen_ai_pentest-2.0.0/zen_ai_pentest.egg-info/requires.txt +23 -0
  129. zen_ai_pentest-2.0.0/zen_ai_pentest.egg-info/top_level.txt +10 -0
@@ -0,0 +1,284 @@
1
+ # Contributing to Zen-AI-Pentest
2
+
3
+ First off, thank you for considering contributing to Zen-AI-Pentest! It's people like you that make this tool better for the security community.
4
+
5
+ ## ๐Ÿš€ Getting Started
6
+
7
+ ### Development Setup
8
+
9
+ ```bash
10
+ # Fork and clone
11
+ git clone https://github.com/YOUR_USERNAME/zen-ai-pentest.git
12
+ cd zen-ai-pentest
13
+
14
+ # Create virtual environment
15
+ python -m venv venv
16
+ source venv/bin/activate # On Windows: venv\Scripts\activate
17
+
18
+ # Install development dependencies
19
+ pip install -r requirements.txt
20
+ pip install -r requirements-dev.txt
21
+
22
+ # Setup pre-commit hooks
23
+ pre-commit install
24
+ ```
25
+
26
+ ### Running Tests
27
+
28
+ ```bash
29
+ # Run all tests
30
+ pytest
31
+
32
+ # With coverage
33
+ pytest --cov=. --cov-report=html
34
+
35
+ # Run specific test file
36
+ pytest tests/test_react_agent.py -v
37
+
38
+ # Run with markers
39
+ pytest -m "not slow" # Skip slow tests
40
+ ```
41
+
42
+ ## ๐Ÿ“‹ Contribution Guidelines
43
+
44
+ ### Code Style
45
+
46
+ - Follow PEP 8
47
+ - Use type hints
48
+ - Write docstrings (Google style)
49
+ - Maximum line length: 100 characters
50
+
51
+ ```python
52
+ def scan_target(target: str, ports: List[int] = None) -> ScanResult:
53
+ """
54
+ Scan a target for open ports.
55
+
56
+ Args:
57
+ target: IP address or hostname
58
+ ports: List of ports to scan (default: top 1000)
59
+
60
+ Returns:
61
+ ScanResult object with findings
62
+
63
+ Raises:
64
+ ValueError: If target is invalid
65
+ """
66
+ pass
67
+ ```
68
+
69
+ ### Commit Messages
70
+
71
+ Use conventional commits:
72
+
73
+ - `feat:` New feature
74
+ - `fix:` Bug fix
75
+ - `docs:` Documentation changes
76
+ - `style:` Code style (formatting, no logic change)
77
+ - `refactor:` Code refactoring
78
+ - `test:` Adding tests
79
+ - `chore:` Maintenance tasks
80
+
81
+ Example:
82
+ ```
83
+ feat(tools): add Nessus vulnerability scanner integration
84
+
85
+ - Add NessusAPI class for REST API communication
86
+ - Support scan initiation and report download
87
+ - Add tests for Nessus integration
88
+ ```
89
+
90
+ ### Pull Request Process
91
+
92
+ 1. **Create a branch**
93
+ ```bash
94
+ git checkout -b feature/your-feature-name
95
+ ```
96
+
97
+ 2. **Make your changes**
98
+ - Write code
99
+ - Add tests
100
+ - Update documentation
101
+
102
+ 3. **Ensure tests pass**
103
+ ```bash
104
+ pytest
105
+ flake8
106
+ black --check .
107
+ ```
108
+
109
+ 4. **Commit and push**
110
+ ```bash
111
+ git add .
112
+ git commit -m "feat: your feature description"
113
+ git push origin feature/your-feature-name
114
+ ```
115
+
116
+ 5. **Create Pull Request**
117
+ - Fill out the PR template
118
+ - Link related issues
119
+ - Request review from maintainers
120
+
121
+ ## ๐Ÿ—๏ธ Project Structure
122
+
123
+ ```
124
+ zen-ai-pentest/
125
+ โ”œโ”€โ”€ api/ # FastAPI endpoints
126
+ โ”œโ”€โ”€ agents/ # AI agent implementations
127
+ โ”œโ”€โ”€ database/ # Database models
128
+ โ”œโ”€โ”€ tools/ # Pentesting tool integrations
129
+ โ”œโ”€โ”€ virtualization/ # VM management
130
+ โ”œโ”€โ”€ gui/ # Web interface
131
+ โ”œโ”€โ”€ reports/ # Report generation
132
+ โ”œโ”€โ”€ notifications/ # Slack/email alerts
133
+ โ”œโ”€โ”€ tests/ # Test suite
134
+ โ””โ”€โ”€ docs/ # Documentation
135
+ ```
136
+
137
+ ## ๐Ÿ› ๏ธ Adding New Tools
138
+
139
+ To add a new pentesting tool:
140
+
141
+ 1. Create file in `tools/`:
142
+ ```python
143
+ # tools/my_tool_integration.py
144
+ from langchain_core.tools import tool
145
+
146
+ @tool
147
+ def my_tool_scan(target: str) -> str:
148
+ """Description of what this tool does"""
149
+ # Implementation
150
+ return "Result"
151
+ ```
152
+
153
+ 2. Register in `tools/__init__.py`:
154
+ ```python
155
+ from .my_tool_integration import my_tool_scan
156
+
157
+ TOOL_REGISTRY = {
158
+ # ... existing tools
159
+ 'my_tool_scan': my_tool_scan,
160
+ }
161
+ ```
162
+
163
+ 3. Add tests in `tests/tools/test_my_tool.py`
164
+
165
+ 4. Update documentation
166
+
167
+ ## ๐Ÿงช Testing Guidelines
168
+
169
+ ### Unit Tests
170
+
171
+ ```python
172
+ # tests/tools/test_nmap.py
173
+ def test_nmap_scan_localhost():
174
+ """Test nmap scan against localhost"""
175
+ from tools.nmap_integration import NmapTool
176
+
177
+ nmap = NmapTool()
178
+ result = nmap.scan("127.0.0.1", "22,80")
179
+
180
+ assert isinstance(result, dict)
181
+ assert "scan" in result
182
+ ```
183
+
184
+ ### Integration Tests
185
+
186
+ ```python
187
+ # tests/integration/test_api.py
188
+ @pytest.mark.integration
189
+ def test_create_scan_api(client):
190
+ """Test creating scan via API"""
191
+ response = client.post("/scans", json={
192
+ "name": "Test Scan",
193
+ "target": "scanme.nmap.org",
194
+ "scan_type": "network"
195
+ })
196
+ assert response.status_code == 201
197
+ ```
198
+
199
+ ## ๐Ÿ“ Documentation
200
+
201
+ - Update README.md if adding major features
202
+ - Add docstrings to all public functions
203
+ - Update API docs in `docs/API.md`
204
+ - Add examples to `examples/`
205
+
206
+ ## ๐Ÿ› Reporting Bugs
207
+
208
+ Use GitHub Issues with template:
209
+
210
+ ```markdown
211
+ **Description**
212
+ Clear description of the bug
213
+
214
+ **To Reproduce**
215
+ Steps to reproduce:
216
+ 1. Go to '...'
217
+ 2. Click on '...'
218
+ 3. See error
219
+
220
+ **Expected Behavior**
221
+ What you expected to happen
222
+
223
+ **Environment**
224
+ - OS: [e.g., Ubuntu 22.04]
225
+ - Python: [e.g., 3.11]
226
+ - Version: [e.g., 2.0.0]
227
+
228
+ **Screenshots**
229
+ If applicable
230
+
231
+ **Additional Context**
232
+ Any other information
233
+ ```
234
+
235
+ ## ๐Ÿ’ก Feature Requests
236
+
237
+ Create GitHub Issue with label `enhancement`:
238
+
239
+ - Describe the feature
240
+ - Explain use case
241
+ - Propose implementation (optional)
242
+
243
+ ## ๐Ÿ”’ Security Issues
244
+
245
+ **DO NOT** create public issues for security vulnerabilities.
246
+
247
+ Instead, email: security@zen-pentest.local
248
+
249
+ Include:
250
+ - Description of vulnerability
251
+ - Steps to reproduce
252
+ - Possible impact
253
+ - Suggested fix (if any)
254
+
255
+ ## ๐Ÿ… Recognition
256
+
257
+ Contributors will be:
258
+ - Listed in CONTRIBUTORS.md
259
+ - Mentioned in release notes
260
+ - Credited in documentation
261
+
262
+ ## ๐Ÿ“œ Code of Conduct
263
+
264
+ ### Our Standards
265
+
266
+ - Be respectful and inclusive
267
+ - Accept constructive criticism
268
+ - Focus on what's best for the community
269
+ - Show empathy towards others
270
+
271
+ ### Unacceptable Behavior
272
+
273
+ - Harassment or discrimination
274
+ - Trolling or insulting comments
275
+ - Personal or political attacks
276
+ - Publishing others' private information
277
+
278
+ ## โ“ Questions?
279
+
280
+ - Join our [Discord](https://discord.gg/zen-pentest)
281
+ - Start a [Discussion](https://github.com/SHAdd0WTAka/zen-ai-pentest/discussions)
282
+ - Email: support@zen-pentest.local
283
+
284
+ Thank you for contributing! ๐Ÿ™
@@ -0,0 +1,94 @@
1
+ # Contributors
2
+
3
+ Thank you to all the amazing people who have contributed to Zen AI Pentest!
4
+
5
+ ## Core Team
6
+
7
+ - **[@SHAdd0WTAka](https://github.com/SHAdd0WTAka)** - Project Founder & Lead Developer
8
+ - Role: Project Lead, Lead Developer, Security Architect
9
+ - Contributions: Core framework, Multi-LLM routing, CI/CD pipelines
10
+
11
+ ## AI Contributors
12
+
13
+ - **Kimi AI (Moonshot AI)** - AI Assistant & Co-Developer
14
+ - Role: AI-Powered Development Partner
15
+ - Contributions: Architecture design, Autonomous agent loop, Risk engine, Benchmarking framework, Documentation
16
+ - Note: Assisted in development of major components including ReAct pattern implementation, False-Positive Reduction Engine, and CI/CD templates
17
+
18
+ ## Acknowledgments
19
+
20
+ Special thanks to the AI assistants who contributed to this project:
21
+ - **Kimi AI** (Moonshot AI) - Primary AI development partner
22
+ - Grok (xAI) - Strategic analysis and roadmap planning
23
+ - GitHub Copilot - Code assistance
24
+
25
+ ## Contributors
26
+
27
+ <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
28
+ <!-- prettier-ignore-start -->
29
+ <!-- markdownlint-disable -->
30
+
31
+ <!-- markdownlint-restore -->
32
+ <!-- prettier-ignore-end -->
33
+ <!-- ALL-CONTRIBUTORS-LIST:END -->
34
+
35
+ ## How to Contribute
36
+
37
+ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
38
+
39
+ ## Sponsors
40
+
41
+ Zen AI Pentest is made possible by the generous support of our sponsors:
42
+
43
+ ### Platinum Sponsors
44
+
45
+ *Your logo here - [Become a sponsor](.github/FUNDING.yml)*
46
+
47
+ ### Gold Sponsors
48
+
49
+ *Your logo here - [Become a sponsor](.github/FUNDING.yml)*
50
+
51
+ ### Silver Sponsors
52
+
53
+ *Your logo here - [Become a sponsor](.github/FUNDING.yml)*
54
+
55
+ ### Bronze Sponsors
56
+
57
+ *Your logo here - [Become a sponsor](.github/FUNDING.yml)*
58
+
59
+ ## Individual Supporters
60
+
61
+ A special thank you to our individual supporters:
62
+
63
+ - *Your name here - [Support us](.github/FUNDING.yml)*
64
+
65
+ ## Recognition
66
+
67
+ Contributors will be recognized in this file. Types of contributions include:
68
+
69
+ - ๐Ÿ’ป Code
70
+ - ๐Ÿ“– Documentation
71
+ - ๐ŸŽจ Design
72
+ - ๐Ÿ’ก Ideas & Planning
73
+ - ๐Ÿ› Bug Reports
74
+ - ๐Ÿ“Š Data (CVEs, Payloads)
75
+ - ๐Ÿงช Testing
76
+ - ๐Ÿ“ฃ Promotion
77
+
78
+ ## Hall of Fame
79
+
80
+ ### Security Researchers
81
+
82
+ Security researchers who have responsibly disclosed vulnerabilities:
83
+
84
+ - *No entries yet - be the first!*
85
+
86
+ ### Top Contributors
87
+
88
+ Contributors with the most impactful contributions:
89
+
90
+ - *No entries yet - be the first!*
91
+
92
+ ---
93
+
94
+ **Want to see your name here?** [Contribute to Zen AI Pentest!](CONTRIBUTING.md)
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 SHAdd0WTAka
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,17 @@
1
+ include README.md
2
+ include LICENSE
3
+ include requirements.txt
4
+ include CONTRIBUTING.md
5
+ include CONTRIBUTORS.md
6
+
7
+ recursive-include templates *.md *.html *.json
8
+ recursive-include core *.json *.yaml *.sql
9
+ recursive-include modules *.json *.yaml
10
+
11
+ graft docs
12
+ prune docs/_site
13
+ prune tests
14
+
15
+ global-exclude *.pyc
16
+ global-exclude __pycache__
17
+ global-exclude .DS_Store