ai-testpilot-x 1.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 (89) hide show
  1. ai_testpilot_x-1.0.0/PKG-INFO +400 -0
  2. ai_testpilot_x-1.0.0/README.md +336 -0
  3. ai_testpilot_x-1.0.0/agents/__init__.py +22 -0
  4. ai_testpilot_x-1.0.0/agents/api_agent.py +62 -0
  5. ai_testpilot_x-1.0.0/agents/base_agent.py +94 -0
  6. ai_testpilot_x-1.0.0/agents/bug_agent.py +175 -0
  7. ai_testpilot_x-1.0.0/agents/execution_agent.py +175 -0
  8. ai_testpilot_x-1.0.0/agents/healing_agent.py +93 -0
  9. ai_testpilot_x-1.0.0/agents/registry.py +28 -0
  10. ai_testpilot_x-1.0.0/agents/report_agent.py +143 -0
  11. ai_testpilot_x-1.0.0/agents/requirement_agent.py +33 -0
  12. ai_testpilot_x-1.0.0/agents/selenium_agent.py +44 -0
  13. ai_testpilot_x-1.0.0/agents/testcase_agent.py +76 -0
  14. ai_testpilot_x-1.0.0/agents/verification_agent.py +91 -0
  15. ai_testpilot_x-1.0.0/ai_testpilot_x.egg-info/PKG-INFO +400 -0
  16. ai_testpilot_x-1.0.0/ai_testpilot_x.egg-info/SOURCES.txt +87 -0
  17. ai_testpilot_x-1.0.0/ai_testpilot_x.egg-info/dependency_links.txt +1 -0
  18. ai_testpilot_x-1.0.0/ai_testpilot_x.egg-info/entry_points.txt +2 -0
  19. ai_testpilot_x-1.0.0/ai_testpilot_x.egg-info/requires.txt +47 -0
  20. ai_testpilot_x-1.0.0/ai_testpilot_x.egg-info/top_level.txt +10 -0
  21. ai_testpilot_x-1.0.0/cli/__init__.py +1 -0
  22. ai_testpilot_x-1.0.0/cli/cmd_analyze.py +158 -0
  23. ai_testpilot_x-1.0.0/cli/cmd_bugs.py +138 -0
  24. ai_testpilot_x-1.0.0/cli/cmd_dashboard.py +73 -0
  25. ai_testpilot_x-1.0.0/cli/cmd_init.py +145 -0
  26. ai_testpilot_x-1.0.0/cli/cmd_report.py +141 -0
  27. ai_testpilot_x-1.0.0/cli/cmd_run.py +263 -0
  28. ai_testpilot_x-1.0.0/cli/main.py +76 -0
  29. ai_testpilot_x-1.0.0/core/__init__.py +0 -0
  30. ai_testpilot_x-1.0.0/core/event_bus.py +57 -0
  31. ai_testpilot_x-1.0.0/core/explain_engine.py +30 -0
  32. ai_testpilot_x-1.0.0/core/llm_client.py +58 -0
  33. ai_testpilot_x-1.0.0/core/rag_engine.py +126 -0
  34. ai_testpilot_x-1.0.0/core/screenshot_utils.py +32 -0
  35. ai_testpilot_x-1.0.0/execution/__init__.py +0 -0
  36. ai_testpilot_x-1.0.0/execution/grids/__init__.py +0 -0
  37. ai_testpilot_x-1.0.0/execution/grids/selenium_grid.py +31 -0
  38. ai_testpilot_x-1.0.0/execution/runners/__init__.py +0 -0
  39. ai_testpilot_x-1.0.0/execution/runners/api_runner.py +41 -0
  40. ai_testpilot_x-1.0.0/execution/runners/selenium_runner.py +89 -0
  41. ai_testpilot_x-1.0.0/memory/__init__.py +0 -0
  42. ai_testpilot_x-1.0.0/memory/bug_memory.py +39 -0
  43. ai_testpilot_x-1.0.0/memory/conversation_memory.py +24 -0
  44. ai_testpilot_x-1.0.0/memory/execution_memory.py +25 -0
  45. ai_testpilot_x-1.0.0/models/__init__.py +0 -0
  46. ai_testpilot_x-1.0.0/models/base_model.py +9 -0
  47. ai_testpilot_x-1.0.0/models/claude.py +9 -0
  48. ai_testpilot_x-1.0.0/models/gemini.py +30 -0
  49. ai_testpilot_x-1.0.0/models/openai.py +9 -0
  50. ai_testpilot_x-1.0.0/monitoring/__init__.py +0 -0
  51. ai_testpilot_x-1.0.0/monitoring/logger.py +68 -0
  52. ai_testpilot_x-1.0.0/monitoring/metrics.py +68 -0
  53. ai_testpilot_x-1.0.0/monitoring/tracing.py +17 -0
  54. ai_testpilot_x-1.0.0/prompts/api_prompt.txt +15 -0
  55. ai_testpilot_x-1.0.0/prompts/bug_prompt.txt +20 -0
  56. ai_testpilot_x-1.0.0/prompts/healing_prompt.txt +14 -0
  57. ai_testpilot_x-1.0.0/prompts/report_prompt.txt +23 -0
  58. ai_testpilot_x-1.0.0/prompts/requirement_prompt.txt +10 -0
  59. ai_testpilot_x-1.0.0/prompts/selenium_prompt.txt +20 -0
  60. ai_testpilot_x-1.0.0/prompts/testcase_prompt.txt +19 -0
  61. ai_testpilot_x-1.0.0/prompts/verification_prompt.txt +17 -0
  62. ai_testpilot_x-1.0.0/pyproject.toml +114 -0
  63. ai_testpilot_x-1.0.0/schemas/__init__.py +0 -0
  64. ai_testpilot_x-1.0.0/schemas/api_test_schema.py +16 -0
  65. ai_testpilot_x-1.0.0/schemas/bug_schema.py +25 -0
  66. ai_testpilot_x-1.0.0/schemas/error_schema.py +9 -0
  67. ai_testpilot_x-1.0.0/schemas/execution_schema.py +14 -0
  68. ai_testpilot_x-1.0.0/schemas/global_state.py +27 -0
  69. ai_testpilot_x-1.0.0/schemas/report_schema.py +19 -0
  70. ai_testpilot_x-1.0.0/schemas/requirement_schema.py +11 -0
  71. ai_testpilot_x-1.0.0/schemas/test_result_schema.py +11 -0
  72. ai_testpilot_x-1.0.0/schemas/testcase_schema.py +16 -0
  73. ai_testpilot_x-1.0.0/schemas/verification_schema.py +11 -0
  74. ai_testpilot_x-1.0.0/setup.cfg +4 -0
  75. ai_testpilot_x-1.0.0/storage/__init__.py +0 -0
  76. ai_testpilot_x-1.0.0/storage/db.py +43 -0
  77. ai_testpilot_x-1.0.0/storage/models/__init__.py +0 -0
  78. ai_testpilot_x-1.0.0/storage/models/bugs.py +24 -0
  79. ai_testpilot_x-1.0.0/storage/models/executions.py +21 -0
  80. ai_testpilot_x-1.0.0/storage/models/reports.py +17 -0
  81. ai_testpilot_x-1.0.0/storage/models/requirements.py +19 -0
  82. ai_testpilot_x-1.0.0/storage/models/testcases.py +22 -0
  83. ai_testpilot_x-1.0.0/storage/models/trust_domains.py +14 -0
  84. ai_testpilot_x-1.0.0/tests/test_agents.py +775 -0
  85. ai_testpilot_x-1.0.0/tests/test_config.py +26 -0
  86. ai_testpilot_x-1.0.0/tests/test_execution.py +85 -0
  87. ai_testpilot_x-1.0.0/tests/test_llm_client.py +42 -0
  88. ai_testpilot_x-1.0.0/tests/test_schemas.py +126 -0
  89. ai_testpilot_x-1.0.0/tests/test_storage.py +90 -0
@@ -0,0 +1,400 @@
1
+ Metadata-Version: 2.4
2
+ Name: ai-testpilot-x
3
+ Version: 1.0.0
4
+ Summary: Autonomous AI-powered QA CLI - generate tests, run Selenium, analyze bugs, get GO/NO GO release decisions
5
+ Author: sagar-grv
6
+ License: MIT
7
+ Project-URL: Homepage, https://sagar-grv.github.io/ai-testpilot-x/
8
+ Project-URL: Documentation, https://sagar-grv.github.io/ai-testpilot-x/
9
+ Project-URL: Repository, https://github.com/sagar-grv/ai-testpilot-x
10
+ Project-URL: Bug Tracker, https://github.com/sagar-grv/ai-testpilot-x/issues
11
+ Project-URL: Changelog, https://sagar-grv.github.io/ai-testpilot-x/changelog/
12
+ Keywords: testing,qa,automation,ai,selenium,llm,langchain
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Topic :: Software Development :: Testing
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: License :: OSI Approved :: MIT License
20
+ Classifier: Operating System :: OS Independent
21
+ Requires-Python: >=3.11
22
+ Description-Content-Type: text/markdown
23
+ Requires-Dist: google-generativeai>=0.8
24
+ Requires-Dist: langchain==0.3.*
25
+ Requires-Dist: langgraph==0.3.*
26
+ Requires-Dist: langchain-google-genai>=2.0
27
+ Requires-Dist: sentence-transformers>=3.0
28
+ Requires-Dist: chromadb>=0.5
29
+ Requires-Dist: typer>=0.12
30
+ Requires-Dist: rich>=13.7
31
+ Requires-Dist: pyyaml>=6.0
32
+ Requires-Dist: httpx>=0.27
33
+ Requires-Dist: sqlalchemy>=2.0
34
+ Requires-Dist: alembic>=1.13
35
+ Requires-Dist: pydantic>=2.0
36
+ Requires-Dist: pydantic-settings>=2.0
37
+ Requires-Dist: python-dotenv>=1.0
38
+ Requires-Dist: typing-extensions>=4.9
39
+ Requires-Dist: langsmith>=0.1
40
+ Requires-Dist: loguru>=0.7
41
+ Provides-Extra: ui
42
+ Requires-Dist: streamlit>=1.40; extra == "ui"
43
+ Requires-Dist: plotly>=5.0; extra == "ui"
44
+ Requires-Dist: streamlit-agraph>=0.0.45; extra == "ui"
45
+ Requires-Dist: streamlit-ace>=0.1.1; extra == "ui"
46
+ Requires-Dist: pandas>=2.0; extra == "ui"
47
+ Requires-Dist: pillow>=10.0; extra == "ui"
48
+ Provides-Extra: selenium
49
+ Requires-Dist: selenium>=4.0; extra == "selenium"
50
+ Requires-Dist: webdriver-manager>=4.0; extra == "selenium"
51
+ Provides-Extra: playwright
52
+ Requires-Dist: playwright>=1.40; extra == "playwright"
53
+ Provides-Extra: docs
54
+ Requires-Dist: pypdf>=4.0; extra == "docs"
55
+ Requires-Dist: python-docx>=1.0; extra == "docs"
56
+ Provides-Extra: all
57
+ Requires-Dist: ai-testpilot-x[docs,playwright,selenium,ui]; extra == "all"
58
+ Provides-Extra: dev
59
+ Requires-Dist: pytest>=8.0; extra == "dev"
60
+ Requires-Dist: pytest-html>=4.0; extra == "dev"
61
+ Requires-Dist: black>=24.0; extra == "dev"
62
+ Requires-Dist: ruff>=0.4; extra == "dev"
63
+ Requires-Dist: pre-commit>=3.0; extra == "dev"
64
+
65
+ # AI TestPilot X
66
+
67
+ > Autonomous AI-Powered Quality Engineering Platform & CLI
68
+
69
+ [![Live App](https://img.shields.io/badge/Live%20App-ai--testpilot--x.streamlit.app-FF4B4B?logo=streamlit&logoColor=white)](https://ai-testpilot-x.streamlit.app/)
70
+ [![Docs](https://img.shields.io/badge/Docs-sagar--grv.github.io-00D9FF?logo=materialformkdocs&logoColor=white)](https://sagar-grv.github.io/ai-testpilot-x/)
71
+ [![skills.sh](https://skills.sh/b/sagar-grv/ai-testpilot-x)](https://skills.sh/sagar-grv/ai-testpilot-x)
72
+ [![PyPI](https://img.shields.io/badge/PyPI-ai--testpilot--x-blue?logo=pypi)](https://pypi.org/project/ai-testpilot-x/)
73
+ [![Python](https://img.shields.io/badge/Python-3.11+-blue)](https://python.org)
74
+ [![Streamlit](https://img.shields.io/badge/Streamlit-1.40+-red)](https://streamlit.io)
75
+ [![LangGraph](https://img.shields.io/badge/LangGraph-0.3.x-green)](https://langchain-ai.github.io/langgraph/)
76
+ [![Gemini](https://img.shields.io/badge/Gemini-2.5--Flash-yellow)](https://aistudio.google.com)
77
+ [![Tests](https://img.shields.io/badge/Tests-72%20Passing-brightgreen)](https://github.com/sagar-grv/ai-testpilot-x)
78
+
79
+ **Live Demo:** https://ai-testpilot-x.streamlit.app/
80
+
81
+ ---
82
+
83
+ ## What Is It?
84
+
85
+ AI TestPilot X turns a plain-English user story into a complete QA pipeline — automatically.
86
+
87
+ ```bash
88
+ pip install ai-testpilot-x
89
+
90
+ testpilot run --story "User can login and checkout a product"
91
+ ```
92
+
93
+ ```
94
+ Analyzing requirements... ✓ 3 modules · High priority
95
+ Generating test cases... ✓ 12 test cases
96
+ Verifying coverage... ✓ 87% coverage
97
+ Executing tests (MOCK)... ✓ 10 passed · 2 failed
98
+ Analyzing bugs... ✓ 2 bugs found
99
+ Generating report... ✓
100
+
101
+ ┌─────────────────────────────────────────────┐
102
+ │ Release Decision: ⚠ GO WITH RISK │
103
+ │ Risk Score: 45 / 100 │
104
+ │ Tests: 10 / 12 passed │
105
+ │ Bugs: 0 Critical · 2 High │
106
+ └─────────────────────────────────────────────┘
107
+ ```
108
+
109
+ ---
110
+
111
+ ## Installation
112
+
113
+ ```bash
114
+ # Core CLI (test generation, bug analysis, reports)
115
+ pip install ai-testpilot-x
116
+
117
+ # With visual Streamlit dashboard
118
+ pip install ai-testpilot-x[ui]
119
+
120
+ # With real Selenium browser execution
121
+ pip install ai-testpilot-x[selenium]
122
+
123
+ # Everything
124
+ pip install ai-testpilot-x[all]
125
+ ```
126
+
127
+ ---
128
+
129
+ ## Install the AI Agent Skill
130
+
131
+ Any AI coding agent (Claude Code, Cursor, OpenCode, Copilot, Windsurf) can learn to
132
+ use AI TestPilot X with a single command:
133
+
134
+ ```bash
135
+ npx skills add sagar-grv/ai-testpilot-x
136
+ ```
137
+
138
+ After installing, your agent understands all CLI commands, the 10-agent pipeline,
139
+ exit code semantics, HITL gate usage, and self-healing locator patterns.
140
+
141
+ Listed on [skills.sh](https://skills.sh/sagar-grv/ai-testpilot-x) — the open agent skills ecosystem.
142
+
143
+ ---
144
+
145
+ ## Documentation
146
+
147
+ Full docs at **[sagar-grv.github.io/ai-testpilot-x](https://sagar-grv.github.io/ai-testpilot-x/)**:
148
+
149
+ - [Getting Started](https://sagar-grv.github.io/ai-testpilot-x/getting-started/)
150
+ - [CLI Reference](https://sagar-grv.github.io/ai-testpilot-x/cli-reference/)
151
+ - [Architecture](https://sagar-grv.github.io/ai-testpilot-x/architecture/)
152
+ - [CI/CD Integration](https://sagar-grv.github.io/ai-testpilot-x/ci-cd/)
153
+ - [10-Agent Pipeline](https://sagar-grv.github.io/ai-testpilot-x/agents/)
154
+
155
+ ---
156
+
157
+ ## CLI Commands
158
+
159
+ ### `testpilot init` — Setup wizard
160
+
161
+ Creates `testpilot.yaml` in your project with your API key, target URL, and execution mode.
162
+
163
+ ```bash
164
+ testpilot init
165
+ ```
166
+
167
+ ### `testpilot run` — Full pipeline
168
+
169
+ Runs the complete 10-agent pipeline: analyze → generate → execute → report.
170
+
171
+ ```bash
172
+ testpilot run --story "User can login and checkout"
173
+ testpilot run --story "User can reset password" --url https://myapp.com --mode MOCK
174
+ testpilot run --story "Admin manages users" --output report.json
175
+ ```
176
+
177
+ **Exit codes:**
178
+ - `0` = GO — all tests pass
179
+ - `1` = GO WITH RISK — high severity bugs
180
+ - `2` = NO GO — critical bugs, release blocked
181
+
182
+ ### `testpilot analyze` — Test cases only
183
+
184
+ Generate test cases from a user story without executing them.
185
+
186
+ ```bash
187
+ testpilot analyze --story "User can filter search results"
188
+ testpilot analyze --story "Payment flow" --output test_cases.json
189
+ ```
190
+
191
+ ### `testpilot bugs` — Bug analysis
192
+
193
+ Analyze any stack trace or error log with AI + RAG correlation.
194
+
195
+ ```bash
196
+ testpilot bugs --log "NoSuchElementException: Unable to locate element: #login-btn"
197
+ testpilot bugs --log ./test-output.log
198
+ cat error.log | testpilot bugs --log -
199
+ ```
200
+
201
+ ### `testpilot report` — Release decision
202
+
203
+ Generate a GO/NO GO decision from existing execution results.
204
+
205
+ ```bash
206
+ testpilot report results.json
207
+ testpilot report results.json --output release_report.json
208
+ ```
209
+
210
+ ### `testpilot dashboard` — Visual UI
211
+
212
+ Launch the full Streamlit dashboard (requires `pip install ai-testpilot-x[ui]`).
213
+
214
+ ```bash
215
+ testpilot dashboard
216
+ testpilot dashboard --port 8080
217
+ ```
218
+
219
+ ---
220
+
221
+ ## CI/CD Integration
222
+
223
+ Add AI TestPilot X as a quality gate to any CI pipeline. It exits with code `0` (pass) or `1`/`2` (fail), just like pytest or eslint.
224
+
225
+ ### GitHub Actions
226
+
227
+ ```yaml
228
+ # .github/workflows/ai-quality-gate.yml
229
+ name: AI Quality Gate
230
+ on: [push, pull_request]
231
+
232
+ jobs:
233
+ quality-gate:
234
+ runs-on: ubuntu-latest
235
+ steps:
236
+ - uses: actions/checkout@v4
237
+ - uses: actions/setup-python@v5
238
+ with: {python-version: '3.11'}
239
+ - run: pip install ai-testpilot-x
240
+ - run: testpilot run --story "User can login and checkout"
241
+ env:
242
+ GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
243
+ ```
244
+
245
+ ### GitLab CI
246
+
247
+ ```yaml
248
+ ai-quality-gate:
249
+ stage: test
250
+ script:
251
+ - pip install ai-testpilot-x
252
+ - testpilot run --story "User can login" --mode MOCK
253
+ variables:
254
+ GEMINI_API_KEY: $GEMINI_API_KEY
255
+ ```
256
+
257
+ ---
258
+
259
+ ## Configuration (`testpilot.yaml`)
260
+
261
+ Place in your project root. Run `testpilot init` to generate automatically.
262
+
263
+ ```yaml
264
+ gemini_api_key: ${GEMINI_API_KEY} # reads from env var
265
+ execution_mode: MOCK # MOCK | LOCAL | GRID
266
+ target_url: https://your-app.com
267
+
268
+ db_url: sqlite:///.testpilot/testpilot.db
269
+ chroma_path: .testpilot/chroma_db
270
+ output_dir: .testpilot/reports
271
+ log_level: WARNING
272
+ ```
273
+
274
+ ---
275
+
276
+ ## Python API
277
+
278
+ ```python
279
+ from config import configure
280
+ configure(gemini_api_key="AIzaSy...", execution_mode="MOCK")
281
+
282
+ from api import run_pipeline, analyze, analyze_bug
283
+
284
+ # Full pipeline
285
+ result = run_pipeline("User can login and checkout", target_url="https://myapp.com")
286
+ print(result["report"]["decision"]) # "GO" | "GO_WITH_RISK" | "NO_GO"
287
+
288
+ # Test cases only
289
+ test_cases = analyze("User can reset their password")
290
+ for tc in test_cases:
291
+ print(tc.id, tc.title, tc.type, tc.priority)
292
+
293
+ # Bug analysis
294
+ bug = analyze_bug("NoSuchElementException: #login-btn at LoginPage.py:42")
295
+ print(bug.severity, bug.root_cause, bug.fix_suggestion)
296
+ ```
297
+
298
+ ---
299
+
300
+ ## Architecture
301
+
302
+ ```
303
+ testpilot run --story "..."
304
+
305
+ LangGraph Orchestrator
306
+ GlobalState + Checkpointing
307
+
308
+ ┌──────────────┬──────────────┐
309
+ │ │ │
310
+ ▼ ▼ ▼
311
+ Requirements Selenium API Tests
312
+ Agent Agent Agent
313
+ │ │ │
314
+ ▼ ▼ ▼
315
+ Test Cases Execution Bug Agent
316
+ + Coverage (HITL Gate) + Healing
317
+
318
+
319
+ Report Agent
320
+ GO / GO_WITH_RISK / NO_GO
321
+ ```
322
+
323
+ ### 10 AI Agents
324
+
325
+ | Agent | What it does |
326
+ |---|---|
327
+ | RequirementAgent | Parses user story → modules, risk areas, priority |
328
+ | TestCaseAgent | Generates structured test cases with RAG context |
329
+ | VerificationAgent | Coverage check, duplicate detection, edge case gaps |
330
+ | SeleniumAgent | Generates Python Selenium code per test case |
331
+ | APIAgent | Generates HTTP test suites with assertions |
332
+ | ExecutionAgent | HITL gate, trust domains, LOCAL/MOCK/GRID modes |
333
+ | BugAgent | Root cause analysis, RAG correlation, clustering |
334
+ | HealingAgent | Self-healing locators (ID → Name → data-* → CSS → XPath → AI) |
335
+ | ReportAgent | GO / GO_WITH_RISK / NO_GO decision engine |
336
+
337
+ ---
338
+
339
+ ## Features
340
+
341
+ | Feature | Status |
342
+ |---|---|
343
+ | AI Test Case Generation + Coverage Radar | ✅ |
344
+ | Selenium Script Generation | ✅ |
345
+ | API Test Generation + Live Execution | ✅ |
346
+ | Human-in-the-Loop Execution Gate | ✅ |
347
+ | Bug Analysis with RAG Correlation | ✅ |
348
+ | Self-Healing Locator Recovery | ✅ |
349
+ | GO / GO_WITH_RISK / NO_GO Release Decision | ✅ |
350
+ | CLI with Rich terminal output | ✅ |
351
+ | CI/CD exit code integration | ✅ |
352
+ | Streamlit visual dashboard | ✅ |
353
+ | Python API | ✅ |
354
+ | LangGraph stateful orchestration | ✅ |
355
+
356
+ ---
357
+
358
+ ## Tech Stack
359
+
360
+ | Layer | Technologies |
361
+ |---|---|
362
+ | CLI | Typer + Rich |
363
+ | AI Orchestration | LangGraph 0.3, LangChain 0.3 |
364
+ | LLM | Google Gemini 2.5 Flash |
365
+ | RAG | ChromaDB, sentence-transformers (all-MiniLM-L6-v2) |
366
+ | UI | Streamlit 1.40+, Plotly, streamlit-agraph |
367
+ | Execution | Selenium 4, webdriver-manager, httpx |
368
+ | Storage | SQLAlchemy + SQLite |
369
+ | Validation | Pydantic v2 |
370
+ | Observability | LangSmith, loguru |
371
+
372
+ ---
373
+
374
+ ## Quick Start (Local Development)
375
+
376
+ ```bash
377
+ git clone https://github.com/sagar-grv/ai-testpilot-x
378
+ cd ai-testpilot-x
379
+
380
+ python -m venv .venv
381
+ .venv\Scripts\activate # Windows
382
+ source .venv/bin/activate # macOS/Linux
383
+
384
+ pip install -r requirements.txt
385
+
386
+ # Initialize config
387
+ python -m cli.main init
388
+
389
+ # Run pipeline
390
+ python -m cli.main run --story "User can login and checkout"
391
+
392
+ # Or launch the dashboard
393
+ streamlit run app.py
394
+ ```
395
+
396
+ ---
397
+
398
+ ## License
399
+
400
+ MIT