ref-agents 1.0.0__py3-none-any.whl
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.
- ref_agents/__init__.py +9 -0
- ref_agents/api_keys.json.example +8 -0
- ref_agents/auth.py +129 -0
- ref_agents/codemap/..md +62 -0
- ref_agents/codemap/CODE_MAP.md +37 -0
- ref_agents/codemap/core.md +43 -0
- ref_agents/codemap/models.md +43 -0
- ref_agents/codemap/prompts.md +40 -0
- ref_agents/codemap/security.md +45 -0
- ref_agents/codemap/tools.md +94 -0
- ref_agents/codemap/tools_browser.md +44 -0
- ref_agents/codemap/utils.md +42 -0
- ref_agents/codemap/workflow.md +42 -0
- ref_agents/config/ai_patterns.yaml +101 -0
- ref_agents/config/frameworks/angular.yaml +104 -0
- ref_agents/config/frameworks/aspnet.yaml +84 -0
- ref_agents/config/frameworks/ef_core.yaml +81 -0
- ref_agents/config/frameworks/react.yaml +111 -0
- ref_agents/config/frameworks/spring_boot.yaml +117 -0
- ref_agents/config/languages/csharp.yaml +153 -0
- ref_agents/config/languages/java.yaml +188 -0
- ref_agents/config/languages/javascript.yaml +172 -0
- ref_agents/config/languages/python.yaml +153 -0
- ref_agents/config/languages/typescript.yaml +193 -0
- ref_agents/constants.py +553 -0
- ref_agents/core/__init__.py +15 -0
- ref_agents/core/config_loader.py +160 -0
- ref_agents/core/config_models.py +167 -0
- ref_agents/core/config_parsing.py +84 -0
- ref_agents/core/language_detector.py +388 -0
- ref_agents/core/validation_models.py +66 -0
- ref_agents/core/validation_primitives.py +176 -0
- ref_agents/errors.py +34 -0
- ref_agents/license_client.py +247 -0
- ref_agents/models/__init__.py +22 -0
- ref_agents/models/gherkin.py +45 -0
- ref_agents/models/hierarchy.py +80 -0
- ref_agents/models/invest.py +59 -0
- ref_agents/models/version.py +49 -0
- ref_agents/prompts/__init__.py +9 -0
- ref_agents/prompts/start_agent.py +772 -0
- ref_agents/rules/architecture/backend_patterns.md +43 -0
- ref_agents/rules/architecture/diagramming.md +100 -0
- ref_agents/rules/architecture/frontend_patterns.md +40 -0
- ref_agents/rules/architecture/impact_analysis.md +129 -0
- ref_agents/rules/architecture/migration_strategy.md +208 -0
- ref_agents/rules/architecture/regression_protocol.md +77 -0
- ref_agents/rules/architecture/system_design.md +97 -0
- ref_agents/rules/common/codemap_standard.md +97 -0
- ref_agents/rules/common/core_protocol.md +59 -0
- ref_agents/rules/common/prompt_engineering.md +294 -0
- ref_agents/rules/development/debugging.md +32 -0
- ref_agents/rules/development/implementation.md +205 -0
- ref_agents/rules/operations/completion.md +119 -0
- ref_agents/rules/operations/cutover_protocol.md +218 -0
- ref_agents/rules/operations/discovery.md +179 -0
- ref_agents/rules/operations/fix_workflow.md +87 -0
- ref_agents/rules/operations/forensics.md +278 -0
- ref_agents/rules/operations/platform.md +263 -0
- ref_agents/rules/operations/synchronous_flow.md +25 -0
- ref_agents/rules/product/ac_validation.md +25 -0
- ref_agents/rules/product/brainstorming.md +27 -0
- ref_agents/rules/product/ref_flow.md +101 -0
- ref_agents/rules/product/requirements_std.md +114 -0
- ref_agents/rules/product/spec_writing.md +235 -0
- ref_agents/rules/product/strategy.md +96 -0
- ref_agents/rules/quality/documentation_standards.md +46 -0
- ref_agents/rules/quality/parity_testing.md +234 -0
- ref_agents/rules/quality/project_documentation.md +56 -0
- ref_agents/rules/quality/qa_lead.md +111 -0
- ref_agents/rules/quality/test_design.md +146 -0
- ref_agents/rules/quality/testing_standards.md +293 -0
- ref_agents/rules/review/pr_review.md +116 -0
- ref_agents/rules/security/security_audit.md +83 -0
- ref_agents/security/__init__.py +22 -0
- ref_agents/security/dependency_audit.py +188 -0
- ref_agents/security/file_audit.py +208 -0
- ref_agents/security/network_scan.py +179 -0
- ref_agents/security/report_generator.py +313 -0
- ref_agents/security/secret_scan.py +252 -0
- ref_agents/security/url_scan.py +240 -0
- ref_agents/security_scan.py +236 -0
- ref_agents/server.py +1586 -0
- ref_agents/session.py +100 -0
- ref_agents/tool_names.py +55 -0
- ref_agents/tools/__init__.py +8 -0
- ref_agents/tools/agents_generator.py +315 -0
- ref_agents/tools/ai_pattern_detector.py +815 -0
- ref_agents/tools/brownfield_populator.py +529 -0
- ref_agents/tools/browser/__init__.py +50 -0
- ref_agents/tools/browser/evidence_verifier.py +302 -0
- ref_agents/tools/browser/execution_logger.py +249 -0
- ref_agents/tools/browser/playwright_mcp_client.py +259 -0
- ref_agents/tools/browser/screenshot_utils.py +184 -0
- ref_agents/tools/browser/test_executor.py +537 -0
- ref_agents/tools/code_quality_scanner.py +629 -0
- ref_agents/tools/codemap/..md +93 -0
- ref_agents/tools/codemap/CODE_MAP.md +30 -0
- ref_agents/tools/codemap/browser.md +44 -0
- ref_agents/tools/codemap.py +403 -0
- ref_agents/tools/codemap_freshness.py +234 -0
- ref_agents/tools/comment_smell_scanner.py +346 -0
- ref_agents/tools/complexity.py +436 -0
- ref_agents/tools/complexity_ast.py +333 -0
- ref_agents/tools/compliance.py +246 -0
- ref_agents/tools/compliance_remediation.py +846 -0
- ref_agents/tools/context_graph.py +839 -0
- ref_agents/tools/context_manager.py +550 -0
- ref_agents/tools/context_tools.py +121 -0
- ref_agents/tools/cross_repo_linker.py +393 -0
- ref_agents/tools/dead_code_scanner.py +637 -0
- ref_agents/tools/debt_scanner.py +1092 -0
- ref_agents/tools/dependency_graph.py +272 -0
- ref_agents/tools/discovery_audit.py +372 -0
- ref_agents/tools/docs_scanner.py +600 -0
- ref_agents/tools/evaluate_gate.py +119 -0
- ref_agents/tools/external_detector.py +524 -0
- ref_agents/tools/features_generator.py +282 -0
- ref_agents/tools/flow_gap_detector.py +373 -0
- ref_agents/tools/flow_mapper.py +327 -0
- ref_agents/tools/full_suite_runner.py +740 -0
- ref_agents/tools/gherkin_parser.py +227 -0
- ref_agents/tools/guard_tools.py +139 -0
- ref_agents/tools/handoff_tools.py +282 -0
- ref_agents/tools/health_scanner.py +1211 -0
- ref_agents/tools/hierarchy_manager.py +289 -0
- ref_agents/tools/invest_scorer.py +249 -0
- ref_agents/tools/jira_confluence_export.py +306 -0
- ref_agents/tools/json_output.py +76 -0
- ref_agents/tools/migration_mapper.py +946 -0
- ref_agents/tools/migration_readiness_scanner.py +209 -0
- ref_agents/tools/pattern_learner.py +522 -0
- ref_agents/tools/report_utils.py +155 -0
- ref_agents/tools/requirements_serializer.py +225 -0
- ref_agents/tools/security_audit_tool.py +106 -0
- ref_agents/tools/sequencing_engine.py +288 -0
- ref_agents/tools/summary_generator.py +275 -0
- ref_agents/tools/symbol_resolver.py +306 -0
- ref_agents/tools/symbol_smoke_runner.py +336 -0
- ref_agents/tools/test_plan_validator.py +189 -0
- ref_agents/tools/test_smell_walker.py +902 -0
- ref_agents/tools/tier1_fixer.py +502 -0
- ref_agents/tools/validators/__init__.py +419 -0
- ref_agents/tools/validators/architect.py +268 -0
- ref_agents/tools/validators/cutover_engineer.py +167 -0
- ref_agents/tools/validators/developer.py +180 -0
- ref_agents/tools/validators/discovery.py +150 -0
- ref_agents/tools/validators/forensic_engineer.py +191 -0
- ref_agents/tools/validators/impact_architect.py +181 -0
- ref_agents/tools/validators/migration_planner.py +166 -0
- ref_agents/tools/validators/parity_tester.py +155 -0
- ref_agents/tools/validators/platform_engineer.py +134 -0
- ref_agents/tools/validators/pr_reviewer.py +129 -0
- ref_agents/tools/validators/product_manager.py +291 -0
- ref_agents/tools/validators/qa_lead.py +172 -0
- ref_agents/tools/validators/scrum_master.py +212 -0
- ref_agents/tools/validators/security_owner.py +162 -0
- ref_agents/tools/validators/specifier.py +134 -0
- ref_agents/tools/validators/strategist.py +149 -0
- ref_agents/tools/validators/tester.py +121 -0
- ref_agents/tools/version_manager.py +202 -0
- ref_agents/tools/workflow_tools.py +1549 -0
- ref_agents/utils/__init__.py +21 -0
- ref_agents/utils/git_utils.py +351 -0
- ref_agents/utils/handoff_logger.py +368 -0
- ref_agents/utils/ignore_matcher.py +270 -0
- ref_agents/workflow/__init__.py +19 -0
- ref_agents/workflow/capabilities.py +328 -0
- ref_agents/workflow/state_machine.py +708 -0
- ref_agents/workflow/transitions.py +658 -0
- ref_agents-1.0.0.dist-info/METADATA +365 -0
- ref_agents-1.0.0.dist-info/RECORD +175 -0
- ref_agents-1.0.0.dist-info/WHEEL +4 -0
- ref_agents-1.0.0.dist-info/entry_points.txt +2 -0
- ref_agents-1.0.0.dist-info/licenses/LICENSE +115 -0
ref_agents/__init__.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"""REF Agents - AI-Powered SDLC Guidance Layer.
|
|
2
|
+
|
|
3
|
+
Built on Anthropic's Model Context Protocol (MCP) for seamless AI assistant
|
|
4
|
+
integration. Provides agent-based prompts, workflow management, and quality tools.
|
|
5
|
+
|
|
6
|
+
Usage:
|
|
7
|
+
from ref_agents.server import mcp
|
|
8
|
+
mcp.run()
|
|
9
|
+
"""
|
ref_agents/auth.py
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"""Authentication module for REF-Agents MCP server.
|
|
2
|
+
|
|
3
|
+
Provides API key validation using FastMCP's DebugTokenVerifier.
|
|
4
|
+
Keys loaded from environment variable (cloud) or JSON file (local).
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
import json
|
|
10
|
+
import os
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
from typing import TYPE_CHECKING
|
|
13
|
+
|
|
14
|
+
import structlog
|
|
15
|
+
|
|
16
|
+
if TYPE_CHECKING:
|
|
17
|
+
from fastmcp.server.auth.providers.debug import DebugTokenVerifier
|
|
18
|
+
|
|
19
|
+
logger = structlog.get_logger(__name__)
|
|
20
|
+
|
|
21
|
+
# Environment variable for cloud deployment
|
|
22
|
+
ENV_VAR_NAME = "REF_API_KEYS"
|
|
23
|
+
# Default path for local API keys file
|
|
24
|
+
DEFAULT_KEYS_PATH = Path(__file__).parent / "api_keys.json"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def load_api_keys(keys_path: Path | None = None) -> set[str]:
|
|
28
|
+
"""Load API keys from environment variable or JSON file.
|
|
29
|
+
|
|
30
|
+
Priority:
|
|
31
|
+
1. REF_API_KEYS env var (comma-separated keys for cloud)
|
|
32
|
+
2. JSON file (for local development) - ONLY if REF_ENABLE_AUTH is set.
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
keys_path: Path to JSON file. Defaults to api_keys.json in module dir.
|
|
36
|
+
|
|
37
|
+
Returns:
|
|
38
|
+
Set of valid API key strings.
|
|
39
|
+
Empty set if no keys configured (Open Mode).
|
|
40
|
+
"""
|
|
41
|
+
# Priority 1: Environment variable (cloud deployment)
|
|
42
|
+
env_keys = os.environ.get(ENV_VAR_NAME)
|
|
43
|
+
if env_keys and env_keys.strip():
|
|
44
|
+
# Support comma-separated keys: "key1,key2,key3"
|
|
45
|
+
keys = {k.strip() for k in env_keys.split(",") if k.strip()}
|
|
46
|
+
if keys:
|
|
47
|
+
logger.info("api_keys_loaded_from_env", count=len(keys))
|
|
48
|
+
return keys
|
|
49
|
+
# Empty env var or no valid keys → Open Mode
|
|
50
|
+
logger.info("auth_open_mode", reason="REF_API_KEYS_empty_or_invalid")
|
|
51
|
+
|
|
52
|
+
# Priority 2: JSON file (local development)
|
|
53
|
+
# Only load from file if explicitly enabled via environment variable
|
|
54
|
+
enable_auth = os.environ.get("REF_ENABLE_AUTH", "").lower() in ("true", "1", "yes")
|
|
55
|
+
|
|
56
|
+
# If not cloud (Priority 1) and not explicitly enabled, return empty (Open Mode)
|
|
57
|
+
if not enable_auth:
|
|
58
|
+
logger.info("auth_open_mode", reason="REF_ENABLE_AUTH_not_set")
|
|
59
|
+
return set()
|
|
60
|
+
|
|
61
|
+
path = keys_path or DEFAULT_KEYS_PATH
|
|
62
|
+
if not path.exists():
|
|
63
|
+
logger.debug("api_keys_file_missing", path=str(path))
|
|
64
|
+
return set()
|
|
65
|
+
|
|
66
|
+
try:
|
|
67
|
+
content = path.read_text(encoding="utf-8")
|
|
68
|
+
data = json.loads(content)
|
|
69
|
+
# Support both formats:
|
|
70
|
+
# Simple list: ["key1", "key2"]
|
|
71
|
+
# Dict with metadata: {"key1": {...}, "key2": {...}}
|
|
72
|
+
if isinstance(data, list):
|
|
73
|
+
keys = set(data)
|
|
74
|
+
else:
|
|
75
|
+
keys = set(data.keys())
|
|
76
|
+
# Filter out comment keys
|
|
77
|
+
keys = {k for k in keys if not k.startswith("_")}
|
|
78
|
+
logger.info("api_keys_loaded_from_file", count=len(keys))
|
|
79
|
+
return keys
|
|
80
|
+
except (json.JSONDecodeError, OSError) as e:
|
|
81
|
+
logger.warning("api_keys_load_failed", error=str(e))
|
|
82
|
+
return set()
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def create_api_key_verifier(
|
|
86
|
+
keys_path: Path | None = None,
|
|
87
|
+
) -> "DebugTokenVerifier | None":
|
|
88
|
+
"""Create verifier that validates tokens against configured keys.
|
|
89
|
+
|
|
90
|
+
Args:
|
|
91
|
+
keys_path: Path to JSON file with API keys (optional).
|
|
92
|
+
|
|
93
|
+
Returns:
|
|
94
|
+
DebugTokenVerifier configured for API key validation.
|
|
95
|
+
Passthrough verifier (accepts all tokens) if no keys configured.
|
|
96
|
+
This satisfies FastMCP Cloud's OAuth requirement while maintaining open access.
|
|
97
|
+
"""
|
|
98
|
+
from fastmcp.server.auth.providers.debug import DebugTokenVerifier
|
|
99
|
+
|
|
100
|
+
keys = load_api_keys(keys_path)
|
|
101
|
+
|
|
102
|
+
if not keys:
|
|
103
|
+
# No keys configured → Open Mode
|
|
104
|
+
# For FastMCP Cloud compatibility, use passthrough verifier
|
|
105
|
+
# that accepts all tokens (effectively no auth) but exposes OAuth endpoints
|
|
106
|
+
logger.info("auth_open_mode_passthrough", reason="no_api_keys_configured")
|
|
107
|
+
|
|
108
|
+
def passthrough_validate(token: str) -> bool:
|
|
109
|
+
"""Accept all tokens (effectively no authentication)."""
|
|
110
|
+
return True
|
|
111
|
+
|
|
112
|
+
return DebugTokenVerifier(
|
|
113
|
+
validate=passthrough_validate,
|
|
114
|
+
client_id="ref-agents-client",
|
|
115
|
+
scopes=["mcp:access"],
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
def validate(token: str) -> bool:
|
|
119
|
+
"""Check if token exists in configured keys."""
|
|
120
|
+
is_valid = token in keys
|
|
121
|
+
if not is_valid:
|
|
122
|
+
logger.warning("token_rejected", token_prefix=token[:8] + "...")
|
|
123
|
+
return is_valid
|
|
124
|
+
|
|
125
|
+
return DebugTokenVerifier(
|
|
126
|
+
validate=validate,
|
|
127
|
+
client_id="ref-agents-client",
|
|
128
|
+
scopes=["mcp:access"],
|
|
129
|
+
)
|
ref_agents/codemap/..md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# CODE_MAP: `.`
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Purpose
|
|
5
|
+
<!-- REF:MANUAL -->
|
|
6
|
+
[Describe the purpose of this module]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Directory Structure
|
|
11
|
+
<!-- REF:AUTO -->
|
|
12
|
+
| Item | Type | Purpose | Dependencies |
|
|
13
|
+
|------|------|---------|--------------|
|
|
14
|
+
| `tools/` | Dir | [Desc] | - |
|
|
15
|
+
| `core/` | Dir | [Desc] | - |
|
|
16
|
+
| `config/` | Dir | [Desc] | - |
|
|
17
|
+
| `security/` | Dir | [Desc] | - |
|
|
18
|
+
| `utils/` | Dir | [Desc] | - |
|
|
19
|
+
| `models/` | Dir | [Desc] | - |
|
|
20
|
+
| `codemap/` | Dir | [Desc] | - |
|
|
21
|
+
| `workflow/` | Dir | [Desc] | - |
|
|
22
|
+
| `rules/` | Dir | [Desc] | - |
|
|
23
|
+
| `prompts/` | Dir | [Desc] | - |
|
|
24
|
+
| `ref-reports/` | Dir | [Desc] | - |
|
|
25
|
+
| `auth.py` | File | [Desc] | - |
|
|
26
|
+
| `api_keys.json` | File | [Desc] | - |
|
|
27
|
+
| `server.py` | File | [Desc] | - |
|
|
28
|
+
| `api_keys.json.example` | File | [Desc] | - |
|
|
29
|
+
| `constants.py` | File | [Desc] | - |
|
|
30
|
+
| `session.py` | File | [Desc] | - |
|
|
31
|
+
| `__init__.py` | File | [Desc] | - |
|
|
32
|
+
| `tool_names.py` | File | [Desc] | - |
|
|
33
|
+
| `security_scan.py` | File | [Desc] | - |
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## Key Classes / Functions
|
|
37
|
+
<!-- REF:MANUAL -->
|
|
38
|
+
| Name | File | Purpose | Dependencies |
|
|
39
|
+
|------|------|---------|--------------|
|
|
40
|
+
| ... | ... | ... | ... |
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## External Dependencies
|
|
45
|
+
<!-- REF:AUTO -->
|
|
46
|
+
*Auto-detected by external_detector.py*
|
|
47
|
+
|
|
48
|
+
### Hardcoded External URLs
|
|
49
|
+
|
|
50
|
+
| Domain | File | Line | Notes |
|
|
51
|
+
|--------|------|------|-------|
|
|
52
|
+
| `cdn.jsdelivr.net` | `context_graph.py` | 713 | ⚠️ Consider env var |
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
## Integration Boundaries
|
|
57
|
+
<!-- REF:MANUAL -->
|
|
58
|
+
*Where this module connects to external systems*
|
|
59
|
+
|
|
60
|
+
| Boundary Type | Local Code | External System | Data Flow | Risk Level |
|
|
61
|
+
|---------------|------------|-----------------|-----------|------------|
|
|
62
|
+
| API Call | [file.py] | [External API] | Outbound | Medium |
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# CODE_MAP: Project Overview
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Purpose
|
|
5
|
+
<!-- REF:MANUAL -->
|
|
6
|
+
[Describe the overall project purpose]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Package Index
|
|
11
|
+
<!-- REF:AUTO -->
|
|
12
|
+
| Package | Path | Purpose |
|
|
13
|
+
|---------|------|---------|
|
|
14
|
+
| [ref_agents](./..md) | `.` | [Desc] |
|
|
15
|
+
| [core](./core.md) | `core` | [Desc] |
|
|
16
|
+
| [models](./models.md) | `models` | [Desc] |
|
|
17
|
+
| [prompts](./prompts.md) | `prompts` | [Desc] |
|
|
18
|
+
| [security](./security.md) | `security` | [Desc] |
|
|
19
|
+
| [tools](./tools.md) | `tools` | [Desc] |
|
|
20
|
+
| [utils](./utils.md) | `utils` | [Desc] |
|
|
21
|
+
| [workflow](./workflow.md) | `workflow` | [Desc] |
|
|
22
|
+
| [browser](./tools_browser.md) | `tools/browser` | [Desc] |
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## Project Statistics
|
|
26
|
+
<!-- REF:AUTO -->
|
|
27
|
+
- **Total Packages:** 9
|
|
28
|
+
- **Generated:** Auto-updated by discovery
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## Quick Navigation
|
|
32
|
+
<!-- REF:MANUAL -->
|
|
33
|
+
*Add frequently accessed modules here*
|
|
34
|
+
|
|
35
|
+
| Module | Description |
|
|
36
|
+
|--------|-------------|
|
|
37
|
+
| ... | ... |
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# CODE_MAP: `core`
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Purpose
|
|
5
|
+
<!-- REF:MANUAL -->
|
|
6
|
+
[Describe the purpose of this module]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Directory Structure
|
|
11
|
+
<!-- REF:AUTO -->
|
|
12
|
+
| Item | Type | Purpose | Dependencies |
|
|
13
|
+
|------|------|---------|--------------|
|
|
14
|
+
| `config_loader.py` | File | [Desc] | - |
|
|
15
|
+
| `__init__.py` | File | [Desc] | - |
|
|
16
|
+
| `config_models.py` | File | [Desc] | - |
|
|
17
|
+
| `language_detector.py` | File | [Desc] | - |
|
|
18
|
+
| `config_parsing.py` | File | [Desc] | - |
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## Key Classes / Functions
|
|
22
|
+
<!-- REF:MANUAL -->
|
|
23
|
+
| Name | File | Purpose | Dependencies |
|
|
24
|
+
|------|------|---------|--------------|
|
|
25
|
+
| ... | ... | ... | ... |
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
## External Dependencies
|
|
30
|
+
<!-- REF:AUTO -->
|
|
31
|
+
*Auto-detected by external_detector.py*
|
|
32
|
+
|
|
33
|
+
No external dependencies detected.
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## Integration Boundaries
|
|
38
|
+
<!-- REF:MANUAL -->
|
|
39
|
+
*Where this module connects to external systems*
|
|
40
|
+
|
|
41
|
+
| Boundary Type | Local Code | External System | Data Flow | Risk Level |
|
|
42
|
+
|---------------|------------|-----------------|-----------|------------|
|
|
43
|
+
| API Call | [file.py] | [External API] | Outbound | Medium |
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# CODE_MAP: `models`
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Purpose
|
|
5
|
+
<!-- REF:MANUAL -->
|
|
6
|
+
[Describe the purpose of this module]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Directory Structure
|
|
11
|
+
<!-- REF:AUTO -->
|
|
12
|
+
| Item | Type | Purpose | Dependencies |
|
|
13
|
+
|------|------|---------|--------------|
|
|
14
|
+
| `gherkin.py` | File | [Desc] | - |
|
|
15
|
+
| `version.py` | File | [Desc] | - |
|
|
16
|
+
| `__init__.py` | File | [Desc] | - |
|
|
17
|
+
| `hierarchy.py` | File | [Desc] | - |
|
|
18
|
+
| `invest.py` | File | [Desc] | - |
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## Key Classes / Functions
|
|
22
|
+
<!-- REF:MANUAL -->
|
|
23
|
+
| Name | File | Purpose | Dependencies |
|
|
24
|
+
|------|------|---------|--------------|
|
|
25
|
+
| ... | ... | ... | ... |
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
## External Dependencies
|
|
30
|
+
<!-- REF:AUTO -->
|
|
31
|
+
*Auto-detected by external_detector.py*
|
|
32
|
+
|
|
33
|
+
No external dependencies detected.
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## Integration Boundaries
|
|
38
|
+
<!-- REF:MANUAL -->
|
|
39
|
+
*Where this module connects to external systems*
|
|
40
|
+
|
|
41
|
+
| Boundary Type | Local Code | External System | Data Flow | Risk Level |
|
|
42
|
+
|---------------|------------|-----------------|-----------|------------|
|
|
43
|
+
| API Call | [file.py] | [External API] | Outbound | Medium |
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# CODE_MAP: `prompts`
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Purpose
|
|
5
|
+
<!-- REF:MANUAL -->
|
|
6
|
+
[Describe the purpose of this module]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Directory Structure
|
|
11
|
+
<!-- REF:AUTO -->
|
|
12
|
+
| Item | Type | Purpose | Dependencies |
|
|
13
|
+
|------|------|---------|--------------|
|
|
14
|
+
| `start_agent.py` | File | [Desc] | - |
|
|
15
|
+
| `__init__.py` | File | [Desc] | - |
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## Key Classes / Functions
|
|
19
|
+
<!-- REF:MANUAL -->
|
|
20
|
+
| Name | File | Purpose | Dependencies |
|
|
21
|
+
|------|------|---------|--------------|
|
|
22
|
+
| ... | ... | ... | ... |
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## External Dependencies
|
|
27
|
+
<!-- REF:AUTO -->
|
|
28
|
+
*Auto-detected by external_detector.py*
|
|
29
|
+
|
|
30
|
+
No external dependencies detected.
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## Integration Boundaries
|
|
35
|
+
<!-- REF:MANUAL -->
|
|
36
|
+
*Where this module connects to external systems*
|
|
37
|
+
|
|
38
|
+
| Boundary Type | Local Code | External System | Data Flow | Risk Level |
|
|
39
|
+
|---------------|------------|-----------------|-----------|------------|
|
|
40
|
+
| API Call | [file.py] | [External API] | Outbound | Medium |
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# CODE_MAP: `security`
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Purpose
|
|
5
|
+
<!-- REF:MANUAL -->
|
|
6
|
+
[Describe the purpose of this module]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Directory Structure
|
|
11
|
+
<!-- REF:AUTO -->
|
|
12
|
+
| Item | Type | Purpose | Dependencies |
|
|
13
|
+
|------|------|---------|--------------|
|
|
14
|
+
| `file_audit.py` | File | [Desc] | - |
|
|
15
|
+
| `url_scan.py` | File | [Desc] | - |
|
|
16
|
+
| `dependency_audit.py` | File | [Desc] | - |
|
|
17
|
+
| `secret_scan.py` | File | [Desc] | - |
|
|
18
|
+
| `__init__.py` | File | [Desc] | - |
|
|
19
|
+
| `report_generator.py` | File | [Desc] | - |
|
|
20
|
+
| `network_scan.py` | File | [Desc] | - |
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## Key Classes / Functions
|
|
24
|
+
<!-- REF:MANUAL -->
|
|
25
|
+
| Name | File | Purpose | Dependencies |
|
|
26
|
+
|------|------|---------|--------------|
|
|
27
|
+
| ... | ... | ... | ... |
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## External Dependencies
|
|
32
|
+
<!-- REF:AUTO -->
|
|
33
|
+
*Auto-detected by external_detector.py*
|
|
34
|
+
|
|
35
|
+
No external dependencies detected.
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Integration Boundaries
|
|
40
|
+
<!-- REF:MANUAL -->
|
|
41
|
+
*Where this module connects to external systems*
|
|
42
|
+
|
|
43
|
+
| Boundary Type | Local Code | External System | Data Flow | Risk Level |
|
|
44
|
+
|---------------|------------|-----------------|-----------|------------|
|
|
45
|
+
| API Call | [file.py] | [External API] | Outbound | Medium |
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# CODE_MAP: `tools`
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Purpose
|
|
5
|
+
<!-- REF:MANUAL -->
|
|
6
|
+
[Describe the purpose of this module]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Directory Structure
|
|
11
|
+
<!-- REF:AUTO -->
|
|
12
|
+
| Item | Type | Purpose | Dependencies |
|
|
13
|
+
|------|------|---------|--------------|
|
|
14
|
+
| `browser/` | Dir | [Desc] | - |
|
|
15
|
+
| `codemap/` | Dir | [Desc] | - |
|
|
16
|
+
| `ref-reports/` | Dir | [Desc] | - |
|
|
17
|
+
| `invest_scorer.py` | File | [Desc] | - |
|
|
18
|
+
| `workflow_tools.py` | File | [Desc] | - |
|
|
19
|
+
| `test_plan_validator.py` | File | [Desc] | - |
|
|
20
|
+
| `compliance_remediation.py` | File | [Desc] | - |
|
|
21
|
+
| `jira_confluence_export.py` | File | [Desc] | - |
|
|
22
|
+
| `symbol_smoke_runner.py` | File | [Desc] | - |
|
|
23
|
+
| `context_manager.py` | File | [Desc] | - |
|
|
24
|
+
| `agents_generator.py` | File | [Desc] | - |
|
|
25
|
+
| `requirements_serializer.py` | File | [Desc] | - |
|
|
26
|
+
| `debt_scanner.py` | File | [Desc] | - |
|
|
27
|
+
| `version_manager.py` | File | [Desc] | - |
|
|
28
|
+
| `report_utils.py` | File | [Desc] | - |
|
|
29
|
+
| `compliance.py` | File | [Desc] | - |
|
|
30
|
+
| `flow_mapper.py` | File | [Desc] | - |
|
|
31
|
+
| `ai_pattern_detector.py` | File | [Desc] | - |
|
|
32
|
+
| `dependency_graph.py` | File | [Desc] | - |
|
|
33
|
+
| `migration_readiness_scanner.py` | File | [Desc] | - |
|
|
34
|
+
| `complexity.py` | File | [Desc] | - |
|
|
35
|
+
| `health_scanner.py` | File | [Desc] | - |
|
|
36
|
+
| `summary_generator.py` | File | [Desc] | - |
|
|
37
|
+
| `external_detector.py` | File | [Desc] | - |
|
|
38
|
+
| `__init__.py` | File | [Desc] | - |
|
|
39
|
+
| `dead_code_scanner.py` | File | [Desc] | - |
|
|
40
|
+
| `codemap.py` | File | [Desc] | - |
|
|
41
|
+
| `tier1_fixer.py` | File | [Desc] | - |
|
|
42
|
+
| `brownfield_populator.py` | File | [Desc] | - |
|
|
43
|
+
| `pattern_learner.py` | File | [Desc] | - |
|
|
44
|
+
| `context_tools.py` | File | [Desc] | - |
|
|
45
|
+
| `context_graph.py` | File | [Desc] | - |
|
|
46
|
+
| `json_output.py` | File | [Desc] | - |
|
|
47
|
+
| `evaluate_gate.py` | File | [Desc] | - |
|
|
48
|
+
| `docs_scanner.py` | File | [Desc] | - |
|
|
49
|
+
| `guard_tools.py` | File | [Desc] | - |
|
|
50
|
+
| `gherkin_parser.py` | File | [Desc] | - |
|
|
51
|
+
| `sequencing_engine.py` | File | [Desc] | - |
|
|
52
|
+
| `symbol_resolver.py` | File | [Desc] | - |
|
|
53
|
+
| `test_smell_walker.py` | File | [Desc] | - |
|
|
54
|
+
| `code_quality_scanner.py` | File | [Desc] | - |
|
|
55
|
+
| `flow_gap_detector.py` | File | [Desc] | - |
|
|
56
|
+
| `features_generator.py` | File | [Desc] | - |
|
|
57
|
+
| `complexity_ast.py` | File | [Desc] | - |
|
|
58
|
+
| `codemap_freshness.py` | File | [Desc] | - |
|
|
59
|
+
| `discovery_audit.py` | File | [Desc] | - |
|
|
60
|
+
| `migration_mapper.py` | File | [Desc] | - |
|
|
61
|
+
| `handoff_tools.py` | File | [Desc] | - |
|
|
62
|
+
| `full_suite_runner.py` | File | [Desc] | - |
|
|
63
|
+
| `security_audit_tool.py` | File | [Desc] | - |
|
|
64
|
+
| `cross_repo_linker.py` | File | [Desc] | - |
|
|
65
|
+
| `hierarchy_manager.py` | File | [Desc] | - |
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
## Key Classes / Functions
|
|
69
|
+
<!-- REF:MANUAL -->
|
|
70
|
+
| Name | File | Purpose | Dependencies |
|
|
71
|
+
|------|------|---------|--------------|
|
|
72
|
+
| ... | ... | ... | ... |
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
## External Dependencies
|
|
77
|
+
<!-- REF:AUTO -->
|
|
78
|
+
*Auto-detected by external_detector.py*
|
|
79
|
+
|
|
80
|
+
### Hardcoded External URLs
|
|
81
|
+
|
|
82
|
+
| Domain | File | Line | Notes |
|
|
83
|
+
|--------|------|------|-------|
|
|
84
|
+
| `cdn.jsdelivr.net` | `context_graph.py` | 713 | ⚠️ Consider env var |
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
## Integration Boundaries
|
|
89
|
+
<!-- REF:MANUAL -->
|
|
90
|
+
*Where this module connects to external systems*
|
|
91
|
+
|
|
92
|
+
| Boundary Type | Local Code | External System | Data Flow | Risk Level |
|
|
93
|
+
|---------------|------------|-----------------|-----------|------------|
|
|
94
|
+
| API Call | [file.py] | [External API] | Outbound | Medium |
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# CODE_MAP: `tools/browser`
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Purpose
|
|
5
|
+
<!-- REF:MANUAL -->
|
|
6
|
+
[Describe the purpose of this module]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Directory Structure
|
|
11
|
+
<!-- REF:AUTO -->
|
|
12
|
+
| Item | Type | Purpose | Dependencies |
|
|
13
|
+
|------|------|---------|--------------|
|
|
14
|
+
| `screenshot_utils.py` | File | [Desc] | - |
|
|
15
|
+
| `__init__.py` | File | [Desc] | - |
|
|
16
|
+
| `evidence_verifier.py` | File | [Desc] | - |
|
|
17
|
+
| `test_executor.py` | File | [Desc] | - |
|
|
18
|
+
| `execution_logger.py` | File | [Desc] | - |
|
|
19
|
+
| `playwright_mcp_client.py` | File | [Desc] | - |
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## Key Classes / Functions
|
|
23
|
+
<!-- REF:MANUAL -->
|
|
24
|
+
| Name | File | Purpose | Dependencies |
|
|
25
|
+
|------|------|---------|--------------|
|
|
26
|
+
| ... | ... | ... | ... |
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## External Dependencies
|
|
31
|
+
<!-- REF:AUTO -->
|
|
32
|
+
*Auto-detected by external_detector.py*
|
|
33
|
+
|
|
34
|
+
No external dependencies detected.
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## Integration Boundaries
|
|
39
|
+
<!-- REF:MANUAL -->
|
|
40
|
+
*Where this module connects to external systems*
|
|
41
|
+
|
|
42
|
+
| Boundary Type | Local Code | External System | Data Flow | Risk Level |
|
|
43
|
+
|---------------|------------|-----------------|-----------|------------|
|
|
44
|
+
| API Call | [file.py] | [External API] | Outbound | Medium |
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# CODE_MAP: `utils`
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Purpose
|
|
5
|
+
<!-- REF:MANUAL -->
|
|
6
|
+
[Describe the purpose of this module]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Directory Structure
|
|
11
|
+
<!-- REF:AUTO -->
|
|
12
|
+
| Item | Type | Purpose | Dependencies |
|
|
13
|
+
|------|------|---------|--------------|
|
|
14
|
+
| `__init__.py` | File | [Desc] | - |
|
|
15
|
+
| `handoff_logger.py` | File | [Desc] | - |
|
|
16
|
+
| `ignore_matcher.py` | File | [Desc] | - |
|
|
17
|
+
| `git_utils.py` | File | [Desc] | - |
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## Key Classes / Functions
|
|
21
|
+
<!-- REF:MANUAL -->
|
|
22
|
+
| Name | File | Purpose | Dependencies |
|
|
23
|
+
|------|------|---------|--------------|
|
|
24
|
+
| ... | ... | ... | ... |
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## External Dependencies
|
|
29
|
+
<!-- REF:AUTO -->
|
|
30
|
+
*Auto-detected by external_detector.py*
|
|
31
|
+
|
|
32
|
+
No external dependencies detected.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## Integration Boundaries
|
|
37
|
+
<!-- REF:MANUAL -->
|
|
38
|
+
*Where this module connects to external systems*
|
|
39
|
+
|
|
40
|
+
| Boundary Type | Local Code | External System | Data Flow | Risk Level |
|
|
41
|
+
|---------------|------------|-----------------|-----------|------------|
|
|
42
|
+
| API Call | [file.py] | [External API] | Outbound | Medium |
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# CODE_MAP: `workflow`
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Purpose
|
|
5
|
+
<!-- REF:MANUAL -->
|
|
6
|
+
[Describe the purpose of this module]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Directory Structure
|
|
11
|
+
<!-- REF:AUTO -->
|
|
12
|
+
| Item | Type | Purpose | Dependencies |
|
|
13
|
+
|------|------|---------|--------------|
|
|
14
|
+
| `__init__.py` | File | [Desc] | - |
|
|
15
|
+
| `state_machine.py` | File | [Desc] | - |
|
|
16
|
+
| `transitions.py` | File | [Desc] | - |
|
|
17
|
+
| `capabilities.py` | File | [Desc] | - |
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## Key Classes / Functions
|
|
21
|
+
<!-- REF:MANUAL -->
|
|
22
|
+
| Name | File | Purpose | Dependencies |
|
|
23
|
+
|------|------|---------|--------------|
|
|
24
|
+
| ... | ... | ... | ... |
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## External Dependencies
|
|
29
|
+
<!-- REF:AUTO -->
|
|
30
|
+
*Auto-detected by external_detector.py*
|
|
31
|
+
|
|
32
|
+
No external dependencies detected.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## Integration Boundaries
|
|
37
|
+
<!-- REF:MANUAL -->
|
|
38
|
+
*Where this module connects to external systems*
|
|
39
|
+
|
|
40
|
+
| Boundary Type | Local Code | External System | Data Flow | Risk Level |
|
|
41
|
+
|---------------|------------|-----------------|-----------|------------|
|
|
42
|
+
| API Call | [file.py] | [External API] | Outbound | Medium |
|