pytest-agents 0.8.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.
- pytest_agents-0.8.3/.claude/settings.local.json +59 -0
- pytest_agents-0.8.3/.dockerignore +86 -0
- pytest_agents-0.8.3/.github/ISSUE_TEMPLATE/bug_report.md +53 -0
- pytest_agents-0.8.3/.github/ISSUE_TEMPLATE/feature_request.md +53 -0
- pytest_agents-0.8.3/.github/dependabot.yml +84 -0
- pytest_agents-0.8.3/.github/pull_request_template.md +64 -0
- pytest_agents-0.8.3/.github/workflows/ci.yml +166 -0
- pytest_agents-0.8.3/.github/workflows/codeql.yml +65 -0
- pytest_agents-0.8.3/.github/workflows/codeql.yml.old +65 -0
- pytest_agents-0.8.3/.github/workflows/performance.yml +229 -0
- pytest_agents-0.8.3/.github/workflows/release.yml +291 -0
- pytest_agents-0.8.3/.github/workflows/snyk.yml +120 -0
- pytest_agents-0.8.3/.gitignore +76 -0
- pytest_agents-0.8.3/.python-version +1 -0
- pytest_agents-0.8.3/AGENTS.md +47 -0
- pytest_agents-0.8.3/CLAUDE.md +1 -0
- pytest_agents-0.8.3/Dockerfile +69 -0
- pytest_agents-0.8.3/Makefile +109 -0
- pytest_agents-0.8.3/PKG-INFO +269 -0
- pytest_agents-0.8.3/README.md +243 -0
- pytest_agents-0.8.3/SECURITY.md +172 -0
- pytest_agents-0.8.3/docker-compose.yml +78 -0
- pytest_agents-0.8.3/docs/BENCHMARKS.md +172 -0
- pytest_agents-0.8.3/docs/DOCKER.md +281 -0
- pytest_agents-0.8.3/docs/METRICS.md +318 -0
- pytest_agents-0.8.3/docs/PYPI_SETUP.md +375 -0
- pytest_agents-0.8.3/docs/RELEASE.md +459 -0
- pytest_agents-0.8.3/docs/SECURITY_SETUP.md +364 -0
- pytest_agents-0.8.3/docs/SECURITY_VERIFICATION.md +263 -0
- pytest_agents-0.8.3/docs/api/python-api.md +611 -0
- pytest_agents-0.8.3/docs/api/typescript-api.md +851 -0
- pytest_agents-0.8.3/docs/developer-guide/README.md +366 -0
- pytest_agents-0.8.3/docs/developer-guide/architecture.md +430 -0
- pytest_agents-0.8.3/index/.eslintrc.json +22 -0
- pytest_agents-0.8.3/index/.prettierrc +8 -0
- pytest_agents-0.8.3/index/__tests__/agent.test.ts +238 -0
- pytest_agents-0.8.3/index/__tests__/integration.test.ts +268 -0
- pytest_agents-0.8.3/index/__tests__/metrics.test.ts +138 -0
- pytest_agents-0.8.3/index/__tests__/search.test.ts +204 -0
- pytest_agents-0.8.3/index/eslint.config.js +28 -0
- pytest_agents-0.8.3/index/package-lock.json +5822 -0
- pytest_agents-0.8.3/index/package.json +60 -0
- pytest_agents-0.8.3/index/src/agent.ts +325 -0
- pytest_agents-0.8.3/index/src/capabilities/code-indexer.ts +149 -0
- pytest_agents-0.8.3/index/src/capabilities/symbol-mapper.ts +86 -0
- pytest_agents-0.8.3/index/src/di/container.ts +82 -0
- pytest_agents-0.8.3/index/src/di/tokens.ts +21 -0
- pytest_agents-0.8.3/index/src/index.ts +57 -0
- pytest_agents-0.8.3/index/src/infrastructure/console-logger.ts +25 -0
- pytest_agents-0.8.3/index/src/infrastructure/fs-file-reader.ts +32 -0
- pytest_agents-0.8.3/index/src/infrastructure/fs-file-writer.ts +18 -0
- pytest_agents-0.8.3/index/src/infrastructure/path-resolver.ts +30 -0
- pytest_agents-0.8.3/index/src/infrastructure/prometheus-metrics.ts +124 -0
- pytest_agents-0.8.3/index/src/interfaces/capabilities.ts +31 -0
- pytest_agents-0.8.3/index/src/interfaces/core.ts +70 -0
- pytest_agents-0.8.3/index/src/memory/index-storage.ts +93 -0
- pytest_agents-0.8.3/index/src/tools/ast-parser.ts +106 -0
- pytest_agents-0.8.3/index/src/tools/search-builder.ts +133 -0
- pytest_agents-0.8.3/index/src/types.ts +81 -0
- pytest_agents-0.8.3/index/src/utils/logger.ts +48 -0
- pytest_agents-0.8.3/index/tsconfig.json +26 -0
- pytest_agents-0.8.3/pm/.eslintrc.json +22 -0
- pytest_agents-0.8.3/pm/.prettierrc +8 -0
- pytest_agents-0.8.3/pm/__tests__/agent.test.ts +98 -0
- pytest_agents-0.8.3/pm/__tests__/integration.test.ts +113 -0
- pytest_agents-0.8.3/pm/__tests__/metrics.test.ts +77 -0
- pytest_agents-0.8.3/pm/__tests__/task-tracking.test.ts +225 -0
- pytest_agents-0.8.3/pm/eslint.config.js +28 -0
- pytest_agents-0.8.3/pm/package-lock.json +5822 -0
- pytest_agents-0.8.3/pm/package.json +59 -0
- pytest_agents-0.8.3/pm/src/agent.ts +244 -0
- pytest_agents-0.8.3/pm/src/capabilities/dependency-analysis.ts +158 -0
- pytest_agents-0.8.3/pm/src/capabilities/milestone-planning.ts +107 -0
- pytest_agents-0.8.3/pm/src/capabilities/task-tracking.ts +68 -0
- pytest_agents-0.8.3/pm/src/di/container.ts +62 -0
- pytest_agents-0.8.3/pm/src/di/tokens.ts +19 -0
- pytest_agents-0.8.3/pm/src/index.ts +59 -0
- pytest_agents-0.8.3/pm/src/infrastructure/console-logger.ts +25 -0
- pytest_agents-0.8.3/pm/src/infrastructure/fs-file-reader.ts +32 -0
- pytest_agents-0.8.3/pm/src/infrastructure/fs-file-writer.ts +18 -0
- pytest_agents-0.8.3/pm/src/infrastructure/path-resolver.ts +30 -0
- pytest_agents-0.8.3/pm/src/infrastructure/prometheus-metrics.ts +120 -0
- pytest_agents-0.8.3/pm/src/interfaces/capabilities.ts +63 -0
- pytest_agents-0.8.3/pm/src/interfaces/core.ts +89 -0
- pytest_agents-0.8.3/pm/src/memory/project-state.ts +82 -0
- pytest_agents-0.8.3/pm/src/tools/task-parser.ts +94 -0
- pytest_agents-0.8.3/pm/src/types.ts +52 -0
- pytest_agents-0.8.3/pm/src/utils/logger.ts +48 -0
- pytest_agents-0.8.3/pm/tsconfig.json +26 -0
- pytest_agents-0.8.3/pyproject.toml +99 -0
- pytest_agents-0.8.3/research/.eslintrc.json +22 -0
- pytest_agents-0.8.3/research/.prettierrc +8 -0
- pytest_agents-0.8.3/research/__tests__/agent.test.ts +115 -0
- pytest_agents-0.8.3/research/__tests__/integration.test.ts +86 -0
- pytest_agents-0.8.3/research/__tests__/metrics.test.ts +154 -0
- pytest_agents-0.8.3/research/__tests__/summarizer.test.ts +63 -0
- pytest_agents-0.8.3/research/eslint.config.js +28 -0
- pytest_agents-0.8.3/research/package-lock.json +5195 -0
- pytest_agents-0.8.3/research/package.json +59 -0
- pytest_agents-0.8.3/research/src/agent.ts +309 -0
- pytest_agents-0.8.3/research/src/capabilities/citation-tracker.ts +141 -0
- pytest_agents-0.8.3/research/src/capabilities/document-analysis.ts +94 -0
- pytest_agents-0.8.3/research/src/di/container.ts +50 -0
- pytest_agents-0.8.3/research/src/di/tokens.ts +19 -0
- pytest_agents-0.8.3/research/src/index.ts +59 -0
- pytest_agents-0.8.3/research/src/infrastructure/console-logger.ts +25 -0
- pytest_agents-0.8.3/research/src/infrastructure/fs-file-reader.ts +32 -0
- pytest_agents-0.8.3/research/src/infrastructure/fs-file-writer.ts +18 -0
- pytest_agents-0.8.3/research/src/infrastructure/path-resolver.ts +30 -0
- pytest_agents-0.8.3/research/src/infrastructure/prometheus-metrics.ts +124 -0
- pytest_agents-0.8.3/research/src/interfaces/capabilities.ts +41 -0
- pytest_agents-0.8.3/research/src/interfaces/core.ts +70 -0
- pytest_agents-0.8.3/research/src/memory/knowledge-graph.ts +144 -0
- pytest_agents-0.8.3/research/src/memory/research-cache.ts +58 -0
- pytest_agents-0.8.3/research/src/tools/source-evaluator.ts +66 -0
- pytest_agents-0.8.3/research/src/tools/summarizer.ts +118 -0
- pytest_agents-0.8.3/research/src/types.ts +63 -0
- pytest_agents-0.8.3/research/src/utils/logger.ts +48 -0
- pytest_agents-0.8.3/research/tsconfig.json +26 -0
- pytest_agents-0.8.3/scripts/verify-security.sh +105 -0
- pytest_agents-0.8.3/src/pytest_agents/__init__.py +7 -0
- pytest_agents-0.8.3/src/pytest_agents/agent_bridge.py +309 -0
- pytest_agents-0.8.3/src/pytest_agents/cli.py +235 -0
- pytest_agents-0.8.3/src/pytest_agents/config.py +147 -0
- pytest_agents-0.8.3/src/pytest_agents/di/__init__.py +1 -0
- pytest_agents-0.8.3/src/pytest_agents/di/container.py +36 -0
- pytest_agents-0.8.3/src/pytest_agents/fixtures.py +173 -0
- pytest_agents-0.8.3/src/pytest_agents/hooks.py +138 -0
- pytest_agents-0.8.3/src/pytest_agents/infrastructure/__init__.py +1 -0
- pytest_agents-0.8.3/src/pytest_agents/infrastructure/env_config_factory.py +14 -0
- pytest_agents-0.8.3/src/pytest_agents/infrastructure/prometheus_metrics.py +160 -0
- pytest_agents-0.8.3/src/pytest_agents/infrastructure/subprocess_runner.py +24 -0
- pytest_agents-0.8.3/src/pytest_agents/interfaces/__init__.py +15 -0
- pytest_agents-0.8.3/src/pytest_agents/interfaces/core.py +136 -0
- pytest_agents-0.8.3/src/pytest_agents/markers.py +62 -0
- pytest_agents-0.8.3/src/pytest_agents/metrics_server.py +158 -0
- pytest_agents-0.8.3/src/pytest_agents/plugin.py +62 -0
- pytest_agents-0.8.3/src/pytest_agents/py.typed +0 -0
- pytest_agents-0.8.3/src/pytest_agents/utils/__init__.py +6 -0
- pytest_agents-0.8.3/src/pytest_agents/utils/logging.py +51 -0
- pytest_agents-0.8.3/src/pytest_agents/utils/validation.py +46 -0
- pytest_agents-0.8.3/tests/__init__.py +1 -0
- pytest_agents-0.8.3/tests/conftest.py +55 -0
- pytest_agents-0.8.3/tests/integration/__init__.py +1 -0
- pytest_agents-0.8.3/tests/integration/test_pytest_plugin.py +49 -0
- pytest_agents-0.8.3/tests/performance/test_agent_performance.py +122 -0
- pytest_agents-0.8.3/tests/unit/__init__.py +1 -0
- pytest_agents-0.8.3/tests/unit/test_agent_bridge.py +248 -0
- pytest_agents-0.8.3/tests/unit/test_agent_bridge_metrics.py +176 -0
- pytest_agents-0.8.3/tests/unit/test_agent_coordinator.py +195 -0
- pytest_agents-0.8.3/tests/unit/test_cli.py +315 -0
- pytest_agents-0.8.3/tests/unit/test_config.py +237 -0
- pytest_agents-0.8.3/tests/unit/test_hooks.py +218 -0
- pytest_agents-0.8.3/tests/unit/test_markers.py +153 -0
- pytest_agents-0.8.3/tests/unit/test_metrics.py +159 -0
- pytest_agents-0.8.3/tests/unit/test_metrics_server.py +134 -0
- pytest_agents-0.8.3/tests/unit/test_plugin.py +31 -0
- pytest_agents-0.8.3/tests/unit/test_validation.py +154 -0
- pytest_agents-0.8.3/uv.lock +459 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(npm test)",
|
|
5
|
+
"Bash(npm run build:*)",
|
|
6
|
+
"Bash(uv run:*)",
|
|
7
|
+
"Bash(make verify:*)",
|
|
8
|
+
"Bash(npm install)",
|
|
9
|
+
"Bash(make test:*)",
|
|
10
|
+
"Bash(docker build:*)",
|
|
11
|
+
"Bash(docker --version:*)",
|
|
12
|
+
"Bash(git add:*)",
|
|
13
|
+
"Bash(git commit:*)",
|
|
14
|
+
"Bash(git push:*)",
|
|
15
|
+
"Bash(gh --version:*)",
|
|
16
|
+
"Bash(gh repo edit:*)",
|
|
17
|
+
"Bash(gh repo view:*)",
|
|
18
|
+
"Bash(git pull:*)",
|
|
19
|
+
"Bash(gh run list:*)",
|
|
20
|
+
"Bash(gh run view:*)",
|
|
21
|
+
"Bash(gh run watch:*)",
|
|
22
|
+
"Bash(gh release list:*)",
|
|
23
|
+
"Bash(gh release view:*)",
|
|
24
|
+
"Bash(uv pip install:*)",
|
|
25
|
+
"Bash(pytest:*)",
|
|
26
|
+
"Bash(git stash:*)",
|
|
27
|
+
"Bash(git stash pop:*)",
|
|
28
|
+
"Bash(ruff format:*)",
|
|
29
|
+
"Bash(xargs:*)",
|
|
30
|
+
"Bash(./scripts/verify-security.sh:*)",
|
|
31
|
+
"Bash(gh pr list:*)",
|
|
32
|
+
"Bash(gh pr view:*)",
|
|
33
|
+
"Bash(gh pr comment:*)",
|
|
34
|
+
"Bash(for pr in 1 2 3 4)",
|
|
35
|
+
"Bash(do echo \"PR #$pr:\")",
|
|
36
|
+
"Bash(done)",
|
|
37
|
+
"Bash(gh pr checks:*)",
|
|
38
|
+
"Bash(gh pr merge:*)",
|
|
39
|
+
"Bash(for pr in 5 6 8 10 11)",
|
|
40
|
+
"Bash(do echo \"Checking PR #$pr\")",
|
|
41
|
+
"Bash(gh pr close:*)",
|
|
42
|
+
"Bash(git checkout:*)",
|
|
43
|
+
"Bash(npm run lint)",
|
|
44
|
+
"Bash(gh pr create:*)",
|
|
45
|
+
"Bash(make lint:*)",
|
|
46
|
+
"Bash(find:*)",
|
|
47
|
+
"Bash(npm install:*)",
|
|
48
|
+
"Bash(python:*)",
|
|
49
|
+
"Bash(ls:*)",
|
|
50
|
+
"Bash(make test-ts:*)",
|
|
51
|
+
"Bash(make test-python:*)",
|
|
52
|
+
"Bash(npm test:*)",
|
|
53
|
+
"Bash(git clean:*)",
|
|
54
|
+
"Bash(uv lock:*)",
|
|
55
|
+
"Bash(ruff check:*)",
|
|
56
|
+
"Bash(grep:*)"
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
.Python
|
|
7
|
+
build/
|
|
8
|
+
develop-eggs/
|
|
9
|
+
dist/
|
|
10
|
+
downloads/
|
|
11
|
+
eggs/
|
|
12
|
+
.eggs/
|
|
13
|
+
lib/
|
|
14
|
+
lib64/
|
|
15
|
+
parts/
|
|
16
|
+
sdist/
|
|
17
|
+
var/
|
|
18
|
+
wheels/
|
|
19
|
+
*.egg-info/
|
|
20
|
+
.installed.cfg
|
|
21
|
+
*.egg
|
|
22
|
+
|
|
23
|
+
# Virtual environments
|
|
24
|
+
venv/
|
|
25
|
+
ENV/
|
|
26
|
+
env/
|
|
27
|
+
.venv
|
|
28
|
+
|
|
29
|
+
# Testing
|
|
30
|
+
.pytest_cache/
|
|
31
|
+
.coverage
|
|
32
|
+
htmlcov/
|
|
33
|
+
.tox/
|
|
34
|
+
.hypothesis/
|
|
35
|
+
|
|
36
|
+
# Type checking
|
|
37
|
+
.mypy_cache/
|
|
38
|
+
.dmypy.json
|
|
39
|
+
dmypy.json
|
|
40
|
+
|
|
41
|
+
# IDEs
|
|
42
|
+
.vscode/
|
|
43
|
+
.idea/
|
|
44
|
+
*.swp
|
|
45
|
+
*.swo
|
|
46
|
+
*~
|
|
47
|
+
.DS_Store
|
|
48
|
+
|
|
49
|
+
# Git
|
|
50
|
+
.git/
|
|
51
|
+
.gitignore
|
|
52
|
+
|
|
53
|
+
# Docker
|
|
54
|
+
Dockerfile
|
|
55
|
+
docker-compose.yml
|
|
56
|
+
.dockerignore
|
|
57
|
+
|
|
58
|
+
# Documentation
|
|
59
|
+
*.md
|
|
60
|
+
!README.md
|
|
61
|
+
|
|
62
|
+
# CI/CD
|
|
63
|
+
.github/
|
|
64
|
+
.gitlab-ci.yml
|
|
65
|
+
|
|
66
|
+
# Logs
|
|
67
|
+
*.log
|
|
68
|
+
|
|
69
|
+
# Environment
|
|
70
|
+
.env
|
|
71
|
+
.env.local
|
|
72
|
+
|
|
73
|
+
# Agent memory/state (will be mounted as volume)
|
|
74
|
+
.agent-memory/
|
|
75
|
+
|
|
76
|
+
# Coverage
|
|
77
|
+
coverage/
|
|
78
|
+
.nyc_output/
|
|
79
|
+
|
|
80
|
+
# Node (source files only, will rebuild in container)
|
|
81
|
+
node_modules/
|
|
82
|
+
|
|
83
|
+
# Build artifacts (will be rebuilt)
|
|
84
|
+
pm/dist/
|
|
85
|
+
research/dist/
|
|
86
|
+
index/dist/
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug Report
|
|
3
|
+
about: Create a report to help us improve
|
|
4
|
+
title: '[BUG] '
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: ''
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Bug Description
|
|
10
|
+
|
|
11
|
+
<!-- A clear and concise description of the bug -->
|
|
12
|
+
|
|
13
|
+
## To Reproduce
|
|
14
|
+
|
|
15
|
+
Steps to reproduce the behavior:
|
|
16
|
+
1.
|
|
17
|
+
2.
|
|
18
|
+
3.
|
|
19
|
+
4.
|
|
20
|
+
|
|
21
|
+
## Expected Behavior
|
|
22
|
+
|
|
23
|
+
<!-- What you expected to happen -->
|
|
24
|
+
|
|
25
|
+
## Actual Behavior
|
|
26
|
+
|
|
27
|
+
<!-- What actually happened -->
|
|
28
|
+
|
|
29
|
+
## Environment
|
|
30
|
+
|
|
31
|
+
- OS: <!-- e.g., Ubuntu 22.04, macOS 14.0, Windows 11 -->
|
|
32
|
+
- Python Version: <!-- e.g., 3.11.5 -->
|
|
33
|
+
- Node.js Version: <!-- e.g., 20.10.0 -->
|
|
34
|
+
- pytest-agents Version: <!-- e.g., 0.1.0 -->
|
|
35
|
+
- Installation Method: <!-- e.g., pip, Docker -->
|
|
36
|
+
|
|
37
|
+
## Additional Context
|
|
38
|
+
|
|
39
|
+
<!-- Add any other context about the problem -->
|
|
40
|
+
|
|
41
|
+
## Logs/Error Messages
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
<!-- Paste relevant logs or error messages here -->
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Screenshots
|
|
48
|
+
|
|
49
|
+
<!-- If applicable, add screenshots to help explain the problem -->
|
|
50
|
+
|
|
51
|
+
## Possible Solution
|
|
52
|
+
|
|
53
|
+
<!-- Optional: Suggest a fix or reason for the bug -->
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature Request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
title: '[FEATURE] '
|
|
5
|
+
labels: enhancement
|
|
6
|
+
assignees: ''
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Feature Description
|
|
10
|
+
|
|
11
|
+
<!-- A clear and concise description of the feature you'd like -->
|
|
12
|
+
|
|
13
|
+
## Problem Statement
|
|
14
|
+
|
|
15
|
+
<!-- Describe the problem this feature would solve -->
|
|
16
|
+
<!-- Example: I'm frustrated when... -->
|
|
17
|
+
|
|
18
|
+
## Proposed Solution
|
|
19
|
+
|
|
20
|
+
<!-- Describe the solution you'd like -->
|
|
21
|
+
|
|
22
|
+
## Alternatives Considered
|
|
23
|
+
|
|
24
|
+
<!-- Describe alternative solutions or features you've considered -->
|
|
25
|
+
|
|
26
|
+
## Use Case
|
|
27
|
+
|
|
28
|
+
<!-- Describe how this feature would be used -->
|
|
29
|
+
<!-- Example: As a developer, I want to... so that... -->
|
|
30
|
+
|
|
31
|
+
## Benefits
|
|
32
|
+
|
|
33
|
+
<!-- What are the benefits of implementing this feature? -->
|
|
34
|
+
|
|
35
|
+
-
|
|
36
|
+
-
|
|
37
|
+
-
|
|
38
|
+
|
|
39
|
+
## Implementation Ideas
|
|
40
|
+
|
|
41
|
+
<!-- Optional: Technical suggestions for implementation -->
|
|
42
|
+
|
|
43
|
+
## Additional Context
|
|
44
|
+
|
|
45
|
+
<!-- Add any other context, mockups, or examples -->
|
|
46
|
+
|
|
47
|
+
## Acceptance Criteria
|
|
48
|
+
|
|
49
|
+
<!-- Optional: How would we know this feature is complete? -->
|
|
50
|
+
|
|
51
|
+
- [ ]
|
|
52
|
+
- [ ]
|
|
53
|
+
- [ ]
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
# Python dependencies
|
|
4
|
+
- package-ecosystem: "pip"
|
|
5
|
+
directory: "/"
|
|
6
|
+
schedule:
|
|
7
|
+
interval: "weekly"
|
|
8
|
+
labels:
|
|
9
|
+
- "dependencies"
|
|
10
|
+
- "python"
|
|
11
|
+
open-pull-requests-limit: 5
|
|
12
|
+
groups:
|
|
13
|
+
security-updates:
|
|
14
|
+
patterns:
|
|
15
|
+
- "*"
|
|
16
|
+
update-types:
|
|
17
|
+
- "security"
|
|
18
|
+
|
|
19
|
+
# PM Agent dependencies
|
|
20
|
+
- package-ecosystem: "npm"
|
|
21
|
+
directory: "/pm"
|
|
22
|
+
schedule:
|
|
23
|
+
interval: "weekly"
|
|
24
|
+
labels:
|
|
25
|
+
- "dependencies"
|
|
26
|
+
- "typescript"
|
|
27
|
+
- "pm-agent"
|
|
28
|
+
open-pull-requests-limit: 5
|
|
29
|
+
groups:
|
|
30
|
+
security-updates:
|
|
31
|
+
patterns:
|
|
32
|
+
- "*"
|
|
33
|
+
update-types:
|
|
34
|
+
- "security"
|
|
35
|
+
|
|
36
|
+
# Research Agent dependencies
|
|
37
|
+
- package-ecosystem: "npm"
|
|
38
|
+
directory: "/research"
|
|
39
|
+
schedule:
|
|
40
|
+
interval: "weekly"
|
|
41
|
+
labels:
|
|
42
|
+
- "dependencies"
|
|
43
|
+
- "typescript"
|
|
44
|
+
- "research-agent"
|
|
45
|
+
open-pull-requests-limit: 5
|
|
46
|
+
groups:
|
|
47
|
+
security-updates:
|
|
48
|
+
patterns:
|
|
49
|
+
- "*"
|
|
50
|
+
update-types:
|
|
51
|
+
- "security"
|
|
52
|
+
|
|
53
|
+
# Index Agent dependencies
|
|
54
|
+
- package-ecosystem: "npm"
|
|
55
|
+
directory: "/index"
|
|
56
|
+
schedule:
|
|
57
|
+
interval: "weekly"
|
|
58
|
+
labels:
|
|
59
|
+
- "dependencies"
|
|
60
|
+
- "typescript"
|
|
61
|
+
- "index-agent"
|
|
62
|
+
open-pull-requests-limit: 5
|
|
63
|
+
groups:
|
|
64
|
+
security-updates:
|
|
65
|
+
patterns:
|
|
66
|
+
- "*"
|
|
67
|
+
update-types:
|
|
68
|
+
- "security"
|
|
69
|
+
|
|
70
|
+
# GitHub Actions
|
|
71
|
+
- package-ecosystem: "github-actions"
|
|
72
|
+
directory: "/"
|
|
73
|
+
schedule:
|
|
74
|
+
interval: "weekly"
|
|
75
|
+
labels:
|
|
76
|
+
- "dependencies"
|
|
77
|
+
- "github-actions"
|
|
78
|
+
open-pull-requests-limit: 5
|
|
79
|
+
groups:
|
|
80
|
+
security-updates:
|
|
81
|
+
patterns:
|
|
82
|
+
- "*"
|
|
83
|
+
update-types:
|
|
84
|
+
- "security"
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
## Description
|
|
2
|
+
|
|
3
|
+
<!-- Provide a brief description of the changes in this PR -->
|
|
4
|
+
|
|
5
|
+
## Type of Change
|
|
6
|
+
|
|
7
|
+
<!-- Mark the relevant option with an "x" -->
|
|
8
|
+
|
|
9
|
+
- [ ] Bug fix (non-breaking change which fixes an issue)
|
|
10
|
+
- [ ] New feature (non-breaking change which adds functionality)
|
|
11
|
+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
|
|
12
|
+
- [ ] Documentation update
|
|
13
|
+
- [ ] Code refactoring
|
|
14
|
+
- [ ] Performance improvement
|
|
15
|
+
- [ ] Test addition/modification
|
|
16
|
+
|
|
17
|
+
## Related Issues
|
|
18
|
+
|
|
19
|
+
<!-- Link to related issues using #issue_number -->
|
|
20
|
+
|
|
21
|
+
Fixes #
|
|
22
|
+
Related to #
|
|
23
|
+
|
|
24
|
+
## Changes Made
|
|
25
|
+
|
|
26
|
+
<!-- List the key changes made in this PR -->
|
|
27
|
+
|
|
28
|
+
-
|
|
29
|
+
-
|
|
30
|
+
-
|
|
31
|
+
|
|
32
|
+
## Testing
|
|
33
|
+
|
|
34
|
+
<!-- Describe the tests you ran and how to reproduce them -->
|
|
35
|
+
|
|
36
|
+
- [ ] All existing tests pass (`make test`)
|
|
37
|
+
- [ ] New tests added for new functionality
|
|
38
|
+
- [ ] Manual testing performed
|
|
39
|
+
- [ ] Docker build successful (`docker-compose build`)
|
|
40
|
+
|
|
41
|
+
### Test Coverage
|
|
42
|
+
|
|
43
|
+
- [ ] Coverage maintained or improved
|
|
44
|
+
- [ ] All critical paths tested
|
|
45
|
+
|
|
46
|
+
## Checklist
|
|
47
|
+
|
|
48
|
+
<!-- Ensure all items are completed before requesting review -->
|
|
49
|
+
|
|
50
|
+
- [ ] Code follows the project's style guidelines (`make lint format`)
|
|
51
|
+
- [ ] Self-review of code performed
|
|
52
|
+
- [ ] Comments added for complex logic
|
|
53
|
+
- [ ] Documentation updated (if applicable)
|
|
54
|
+
- [ ] No new warnings generated
|
|
55
|
+
- [ ] Conventional commit messages used
|
|
56
|
+
- [ ] AGENTS.md guidelines followed
|
|
57
|
+
|
|
58
|
+
## Screenshots (if applicable)
|
|
59
|
+
|
|
60
|
+
<!-- Add screenshots to help explain your changes -->
|
|
61
|
+
|
|
62
|
+
## Additional Notes
|
|
63
|
+
|
|
64
|
+
<!-- Any additional information that reviewers should know -->
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
contents: read
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches: [ main ]
|
|
9
|
+
pull_request:
|
|
10
|
+
branches: [ main ]
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
python-tests:
|
|
14
|
+
name: Python Tests
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
strategy:
|
|
17
|
+
matrix:
|
|
18
|
+
python-version: ['3.11', '3.12']
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v6
|
|
22
|
+
|
|
23
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
24
|
+
uses: actions/setup-python@v5
|
|
25
|
+
with:
|
|
26
|
+
python-version: ${{ matrix.python-version }}
|
|
27
|
+
|
|
28
|
+
- name: Install uv
|
|
29
|
+
run: |
|
|
30
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
31
|
+
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
|
32
|
+
|
|
33
|
+
- name: Install dependencies
|
|
34
|
+
run: |
|
|
35
|
+
uv pip install --system -e ".[dev]"
|
|
36
|
+
|
|
37
|
+
- name: Run Python tests with coverage
|
|
38
|
+
run: |
|
|
39
|
+
pytest --cov-report=xml
|
|
40
|
+
|
|
41
|
+
- name: Upload coverage to Codecov
|
|
42
|
+
uses: codecov/codecov-action@v5
|
|
43
|
+
with:
|
|
44
|
+
file: ./coverage.xml
|
|
45
|
+
flags: python
|
|
46
|
+
name: python-${{ matrix.python-version }}
|
|
47
|
+
if: matrix.python-version == '3.11'
|
|
48
|
+
|
|
49
|
+
typescript-tests:
|
|
50
|
+
name: TypeScript Tests
|
|
51
|
+
runs-on: ubuntu-latest
|
|
52
|
+
strategy:
|
|
53
|
+
matrix:
|
|
54
|
+
node-version: ['20.x']
|
|
55
|
+
agent: ['pm', 'research', 'index']
|
|
56
|
+
|
|
57
|
+
steps:
|
|
58
|
+
- uses: actions/checkout@v6
|
|
59
|
+
|
|
60
|
+
- name: Set up Node.js ${{ matrix.node-version }}
|
|
61
|
+
uses: actions/setup-node@v6
|
|
62
|
+
with:
|
|
63
|
+
node-version: ${{ matrix.node-version }}
|
|
64
|
+
cache: 'npm'
|
|
65
|
+
cache-dependency-path: '${{ matrix.agent }}/package-lock.json'
|
|
66
|
+
|
|
67
|
+
- name: Install dependencies
|
|
68
|
+
working-directory: ./${{ matrix.agent }}
|
|
69
|
+
run: npm ci
|
|
70
|
+
|
|
71
|
+
- name: Run TypeScript tests
|
|
72
|
+
working-directory: ./${{ matrix.agent }}
|
|
73
|
+
run: npm test
|
|
74
|
+
|
|
75
|
+
- name: Build TypeScript
|
|
76
|
+
working-directory: ./${{ matrix.agent }}
|
|
77
|
+
run: npm run build
|
|
78
|
+
|
|
79
|
+
code-quality:
|
|
80
|
+
name: Code Quality
|
|
81
|
+
runs-on: ubuntu-latest
|
|
82
|
+
|
|
83
|
+
steps:
|
|
84
|
+
- uses: actions/checkout@v6
|
|
85
|
+
|
|
86
|
+
- name: Set up Python
|
|
87
|
+
uses: actions/setup-python@v5
|
|
88
|
+
with:
|
|
89
|
+
python-version: '3.11'
|
|
90
|
+
|
|
91
|
+
- name: Install uv
|
|
92
|
+
run: |
|
|
93
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
94
|
+
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
|
95
|
+
|
|
96
|
+
- name: Install dependencies
|
|
97
|
+
run: |
|
|
98
|
+
uv pip install --system -e ".[dev]"
|
|
99
|
+
|
|
100
|
+
- name: Run Ruff linter
|
|
101
|
+
run: |
|
|
102
|
+
ruff check src/ tests/
|
|
103
|
+
|
|
104
|
+
- name: Check code formatting with Ruff
|
|
105
|
+
run: |
|
|
106
|
+
ruff format --check src/ tests/
|
|
107
|
+
|
|
108
|
+
docker-build:
|
|
109
|
+
name: Docker Build
|
|
110
|
+
runs-on: ubuntu-latest
|
|
111
|
+
|
|
112
|
+
steps:
|
|
113
|
+
- uses: actions/checkout@v6
|
|
114
|
+
|
|
115
|
+
- name: Set up Docker Buildx
|
|
116
|
+
uses: docker/setup-buildx-action@v3
|
|
117
|
+
|
|
118
|
+
- name: Build Docker image
|
|
119
|
+
uses: docker/build-push-action@v6
|
|
120
|
+
with:
|
|
121
|
+
context: .
|
|
122
|
+
push: false
|
|
123
|
+
tags: superclaude:ci
|
|
124
|
+
cache-from: type=gha
|
|
125
|
+
cache-to: type=gha,mode=max
|
|
126
|
+
|
|
127
|
+
integration:
|
|
128
|
+
name: Integration Tests
|
|
129
|
+
runs-on: ubuntu-latest
|
|
130
|
+
needs: [python-tests, typescript-tests]
|
|
131
|
+
|
|
132
|
+
steps:
|
|
133
|
+
- uses: actions/checkout@v6
|
|
134
|
+
|
|
135
|
+
- name: Set up Python
|
|
136
|
+
uses: actions/setup-python@v5
|
|
137
|
+
with:
|
|
138
|
+
python-version: '3.11'
|
|
139
|
+
|
|
140
|
+
- name: Set up Node.js
|
|
141
|
+
uses: actions/setup-node@v6
|
|
142
|
+
with:
|
|
143
|
+
node-version: '20.x'
|
|
144
|
+
|
|
145
|
+
- name: Install uv
|
|
146
|
+
run: |
|
|
147
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
148
|
+
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
|
149
|
+
|
|
150
|
+
- name: Install Python dependencies
|
|
151
|
+
run: |
|
|
152
|
+
uv pip install --system -e ".[dev]"
|
|
153
|
+
|
|
154
|
+
- name: Build TypeScript agents
|
|
155
|
+
run: |
|
|
156
|
+
cd pm && npm ci && npm run build && cd ..
|
|
157
|
+
cd research && npm ci && npm run build && cd ..
|
|
158
|
+
cd index && npm ci && npm run build
|
|
159
|
+
|
|
160
|
+
- name: Run integration tests
|
|
161
|
+
run: |
|
|
162
|
+
pytest tests/integration/ -v
|
|
163
|
+
|
|
164
|
+
- name: Verify installation
|
|
165
|
+
run: |
|
|
166
|
+
superclaude verify || true
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
name: "CodeQL Security Scanning"
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ "main" ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ "main" ]
|
|
8
|
+
schedule:
|
|
9
|
+
# Run CodeQL analysis every Monday at 6:00 AM UTC
|
|
10
|
+
- cron: '0 6 * * 1'
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
analyze:
|
|
15
|
+
name: Analyze (${{ matrix.language }})
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
timeout-minutes: 360
|
|
18
|
+
permissions:
|
|
19
|
+
# Required for all workflows
|
|
20
|
+
security-events: write
|
|
21
|
+
# Required to fetch internal or private CodeQL packs
|
|
22
|
+
packages: read
|
|
23
|
+
# Only required for workflows in private repositories
|
|
24
|
+
actions: read
|
|
25
|
+
contents: read
|
|
26
|
+
|
|
27
|
+
strategy:
|
|
28
|
+
fail-fast: false
|
|
29
|
+
matrix:
|
|
30
|
+
language:
|
|
31
|
+
- python
|
|
32
|
+
- javascript-typescript
|
|
33
|
+
include:
|
|
34
|
+
- language: python
|
|
35
|
+
build-mode: none
|
|
36
|
+
- language: javascript-typescript
|
|
37
|
+
build-mode: none
|
|
38
|
+
|
|
39
|
+
steps:
|
|
40
|
+
- name: Checkout repository
|
|
41
|
+
uses: actions/checkout@v4
|
|
42
|
+
|
|
43
|
+
# Initialize CodeQL tools for scanning
|
|
44
|
+
- name: Initialize CodeQL
|
|
45
|
+
uses: github/codeql-action/init@v4
|
|
46
|
+
with:
|
|
47
|
+
languages: ${{ matrix.language }}
|
|
48
|
+
# CodeQL supports:
|
|
49
|
+
# c-cpp, csharp, go, java-kotlin, javascript-typescript, python, ruby, swift
|
|
50
|
+
|
|
51
|
+
# Queries to run (default, security-extended, security-and-quality)
|
|
52
|
+
queries: security-and-quality
|
|
53
|
+
|
|
54
|
+
# Build mode for compiled languages (none, autobuild, manual)
|
|
55
|
+
build-mode: ${{ matrix.build-mode }}
|
|
56
|
+
|
|
57
|
+
# For Python and TypeScript, we don't need to build
|
|
58
|
+
# CodeQL will analyze the source code directly
|
|
59
|
+
|
|
60
|
+
- name: Perform CodeQL Analysis
|
|
61
|
+
uses: github/codeql-action/analyze@v4
|
|
62
|
+
with:
|
|
63
|
+
category: "/language:${{ matrix.language }}"
|
|
64
|
+
# Upload SARIF results to GitHub Security tab
|
|
65
|
+
upload: true
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
name: "CodeQL Security Scanning"
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ "main" ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ "main" ]
|
|
8
|
+
schedule:
|
|
9
|
+
# Run CodeQL analysis every Monday at 6:00 AM UTC
|
|
10
|
+
- cron: '0 6 * * 1'
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
analyze:
|
|
15
|
+
name: Analyze (${{ matrix.language }})
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
timeout-minutes: 360
|
|
18
|
+
permissions:
|
|
19
|
+
# Required for all workflows
|
|
20
|
+
security-events: write
|
|
21
|
+
# Required to fetch internal or private CodeQL packs
|
|
22
|
+
packages: read
|
|
23
|
+
# Only required for workflows in private repositories
|
|
24
|
+
actions: read
|
|
25
|
+
contents: read
|
|
26
|
+
|
|
27
|
+
strategy:
|
|
28
|
+
fail-fast: false
|
|
29
|
+
matrix:
|
|
30
|
+
language:
|
|
31
|
+
- python
|
|
32
|
+
- javascript-typescript
|
|
33
|
+
include:
|
|
34
|
+
- language: python
|
|
35
|
+
build-mode: none
|
|
36
|
+
- language: javascript-typescript
|
|
37
|
+
build-mode: none
|
|
38
|
+
|
|
39
|
+
steps:
|
|
40
|
+
- name: Checkout repository
|
|
41
|
+
uses: actions/checkout@v4
|
|
42
|
+
|
|
43
|
+
# Initialize CodeQL tools for scanning
|
|
44
|
+
- name: Initialize CodeQL
|
|
45
|
+
uses: github/codeql-action/init@v4
|
|
46
|
+
with:
|
|
47
|
+
languages: ${{ matrix.language }}
|
|
48
|
+
# CodeQL supports:
|
|
49
|
+
# c-cpp, csharp, go, java-kotlin, javascript-typescript, python, ruby, swift
|
|
50
|
+
|
|
51
|
+
# Queries to run (default, security-extended, security-and-quality)
|
|
52
|
+
queries: security-and-quality
|
|
53
|
+
|
|
54
|
+
# Build mode for compiled languages (none, autobuild, manual)
|
|
55
|
+
build-mode: ${{ matrix.build-mode }}
|
|
56
|
+
|
|
57
|
+
# For Python and TypeScript, we don't need to build
|
|
58
|
+
# CodeQL will analyze the source code directly
|
|
59
|
+
|
|
60
|
+
- name: Perform CodeQL Analysis
|
|
61
|
+
uses: github/codeql-action/analyze@v4
|
|
62
|
+
with:
|
|
63
|
+
category: "/language:${{ matrix.language }}"
|
|
64
|
+
# Upload SARIF results to GitHub Security tab
|
|
65
|
+
upload: true
|