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
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# TypeScript Language Configuration for REF Agents
|
|
2
|
+
|
|
3
|
+
language: typescript
|
|
4
|
+
extensions: [".ts", ".tsx", ".mts", ".cts"]
|
|
5
|
+
parser: ast # Production-grade: AST parsing for accurate per-function complexity
|
|
6
|
+
|
|
7
|
+
# Debt detection patterns
|
|
8
|
+
debt_patterns:
|
|
9
|
+
todo_fixme:
|
|
10
|
+
description: "TODO/FIXME comments indicate incomplete work"
|
|
11
|
+
severity: medium
|
|
12
|
+
pattern: "//\\s*(TODO|FIXME|XXX|HACK|BUG)[\\s:]+(.+)"
|
|
13
|
+
suggestion: "Address the TODO or create a tracked issue"
|
|
14
|
+
|
|
15
|
+
any_type:
|
|
16
|
+
description: "Using 'any' defeats TypeScript's type safety"
|
|
17
|
+
severity: high
|
|
18
|
+
pattern: ":\\s*any\\b"
|
|
19
|
+
suggestion: "Use specific types, unknown, or generics"
|
|
20
|
+
|
|
21
|
+
ts_ignore:
|
|
22
|
+
description: "@ts-ignore suppresses type errors"
|
|
23
|
+
severity: high
|
|
24
|
+
pattern: "@ts-ignore|@ts-nocheck"
|
|
25
|
+
suggestion: "Fix the type error instead of ignoring"
|
|
26
|
+
|
|
27
|
+
console_log:
|
|
28
|
+
description: "console.log leaks to production, use structured logging"
|
|
29
|
+
severity: high
|
|
30
|
+
pattern: "console\\.(log|debug|info|warn|error)\\("
|
|
31
|
+
suggestion: "Use structured logging library (e.g., pino, winston)"
|
|
32
|
+
|
|
33
|
+
empty_catch:
|
|
34
|
+
description: "Empty catch blocks swallow errors"
|
|
35
|
+
severity: high
|
|
36
|
+
pattern: "catch\\s*\\([^)]*\\)\\s*\\{\\s*\\}"
|
|
37
|
+
suggestion: "Handle or log the error"
|
|
38
|
+
|
|
39
|
+
magic_numbers:
|
|
40
|
+
description: "Magic numbers violate DRY and hurt maintainability"
|
|
41
|
+
severity: medium
|
|
42
|
+
pattern: "(?<!\\d)[0-9]{2,}(?!\\d)"
|
|
43
|
+
suggestion: "Extract to named constants (e.g., const MAX_RETRIES = 3)"
|
|
44
|
+
|
|
45
|
+
long_function:
|
|
46
|
+
description: "Function exceeds line limit"
|
|
47
|
+
severity: medium
|
|
48
|
+
pattern: "function|=>|async"
|
|
49
|
+
suggestion: "Break into smaller focused functions"
|
|
50
|
+
|
|
51
|
+
missing_return_type:
|
|
52
|
+
description: "Functions should have explicit return types"
|
|
53
|
+
severity: medium
|
|
54
|
+
pattern: "function\\s+\\w+\\s*\\([^)]*\\)\\s*\\{"
|
|
55
|
+
suggestion: "Add return type annotation"
|
|
56
|
+
|
|
57
|
+
# Code Quality Patterns
|
|
58
|
+
unused_import:
|
|
59
|
+
description: "Unused imports increase bundle size and reduce clarity"
|
|
60
|
+
severity: low
|
|
61
|
+
pattern: "^import\\s+.*from"
|
|
62
|
+
suggestion: "Remove unused imports (use ESLint rule: @typescript-eslint/no-unused-vars)"
|
|
63
|
+
|
|
64
|
+
implicit_any:
|
|
65
|
+
description: "Implicit any defeats TypeScript's type safety"
|
|
66
|
+
severity: high
|
|
67
|
+
pattern: "function\\s+\\w+\\s*\\([^)]*\\)\\s*:\\s*any|const\\s+\\w+\\s*:\\s*any"
|
|
68
|
+
suggestion: "Add explicit types or use unknown"
|
|
69
|
+
|
|
70
|
+
non_null_assertion:
|
|
71
|
+
description: "Non-null assertion (!) bypasses type safety"
|
|
72
|
+
severity: medium
|
|
73
|
+
pattern: "!\\s*[a-zA-Z_$]|\\w+\\s*!"
|
|
74
|
+
suggestion: "Use optional chaining or proper null checks"
|
|
75
|
+
|
|
76
|
+
any_in_generic:
|
|
77
|
+
description: "Generic with 'any' loses type safety"
|
|
78
|
+
severity: high
|
|
79
|
+
pattern: "<\\s*any\\s*>|Array\\s*<\\s*any\\s*>"
|
|
80
|
+
suggestion: "Use specific types or unknown"
|
|
81
|
+
|
|
82
|
+
missing_async_await:
|
|
83
|
+
description: "Promise not awaited"
|
|
84
|
+
severity: high
|
|
85
|
+
pattern: "Promise\\s*\\.(then|catch)\\s*\\("
|
|
86
|
+
suggestion: "Use async/await for better error handling"
|
|
87
|
+
|
|
88
|
+
direct_mutation:
|
|
89
|
+
description: "Direct state mutation in React/Redux"
|
|
90
|
+
severity: critical
|
|
91
|
+
pattern: "\\.(push|pop|shift|unshift|splice|sort|reverse)\\s*\\(|\\w+\\s*=\\s*\\w+\\["
|
|
92
|
+
suggestion: "Use immutable patterns (spread, map, filter)"
|
|
93
|
+
|
|
94
|
+
# Deprecated patterns
|
|
95
|
+
deprecated_imports:
|
|
96
|
+
"tslint": "Use ESLint instead"
|
|
97
|
+
"mocha": "Consider using Jest or Vitest"
|
|
98
|
+
"jasmine": "Consider using Jest or Vitest"
|
|
99
|
+
|
|
100
|
+
# Naming conventions
|
|
101
|
+
naming:
|
|
102
|
+
generic_names:
|
|
103
|
+
- data
|
|
104
|
+
- result
|
|
105
|
+
- temp
|
|
106
|
+
- handler
|
|
107
|
+
- manager
|
|
108
|
+
- helper
|
|
109
|
+
- utils
|
|
110
|
+
- item
|
|
111
|
+
- elem
|
|
112
|
+
- val
|
|
113
|
+
- obj
|
|
114
|
+
- x
|
|
115
|
+
- y
|
|
116
|
+
- z
|
|
117
|
+
|
|
118
|
+
conventions:
|
|
119
|
+
functions: camelCase
|
|
120
|
+
classes: PascalCase
|
|
121
|
+
interfaces: PascalCase (I-prefix optional)
|
|
122
|
+
constants: UPPER_SNAKE_CASE
|
|
123
|
+
variables: camelCase
|
|
124
|
+
types: PascalCase
|
|
125
|
+
|
|
126
|
+
# Quality thresholds (production-grade, industry-standard)
|
|
127
|
+
thresholds:
|
|
128
|
+
# Dual-threshold system: Function-level (algorithm complexity) + File-level (module size)
|
|
129
|
+
function_complexity_warn: 15 # Per-function cognitive complexity (warning)
|
|
130
|
+
function_complexity_block: 25 # Per-function cognitive complexity (blocker)
|
|
131
|
+
file_complexity_warn: 80 # Aggregate file complexity (warning)
|
|
132
|
+
file_complexity_block: 150 # Aggregate file complexity (blocker)
|
|
133
|
+
# Legacy single threshold (deprecated, use function_complexity_block)
|
|
134
|
+
complexity: 25 # Fallback for backward compatibility
|
|
135
|
+
function_length: 50 # Testable functions
|
|
136
|
+
nesting_depth: 3 # Readable code
|
|
137
|
+
file_length: 300 # Single responsibility
|
|
138
|
+
comment_ratio: 0.3
|
|
139
|
+
class_ratio: 0.5
|
|
140
|
+
|
|
141
|
+
# File exclusions
|
|
142
|
+
exclusions:
|
|
143
|
+
# Skip entire analysis (autogenerated, vendor, coverage, hidden dirs)
|
|
144
|
+
skip_analysis:
|
|
145
|
+
- "**/node_modules/**"
|
|
146
|
+
- "**/.next/**"
|
|
147
|
+
- "**/.nuxt/**"
|
|
148
|
+
- "**/.cache/**"
|
|
149
|
+
- "**/.git/**"
|
|
150
|
+
- "**/coverage/**"
|
|
151
|
+
- "**/dist/**"
|
|
152
|
+
- "**/build/**"
|
|
153
|
+
- "**/.dist/**"
|
|
154
|
+
- "**/.build/**"
|
|
155
|
+
- "**/.*/**" # Hidden directories (e.g., .vscode, .idea)
|
|
156
|
+
- "**/*.generated.ts"
|
|
157
|
+
- "**/*.generated.tsx"
|
|
158
|
+
- "**/*.auto.ts"
|
|
159
|
+
- "**/*.auto.tsx"
|
|
160
|
+
- "**/*.json" # JSON files excluded from complexity checks
|
|
161
|
+
- "**/vendor/**"
|
|
162
|
+
- "**/vendors/**"
|
|
163
|
+
- "**/third-party/**"
|
|
164
|
+
- "**/third_party/**"
|
|
165
|
+
|
|
166
|
+
# Skip file-level complexity check only (still analyze per-function)
|
|
167
|
+
file_complexity:
|
|
168
|
+
- "*.test.ts"
|
|
169
|
+
- "*.test.tsx"
|
|
170
|
+
- "*.spec.ts"
|
|
171
|
+
- "*.spec.tsx"
|
|
172
|
+
- "*dto.ts"
|
|
173
|
+
- "*dto.tsx"
|
|
174
|
+
- "*model.ts"
|
|
175
|
+
- "*model.tsx"
|
|
176
|
+
- "*types.ts"
|
|
177
|
+
- "*types.tsx"
|
|
178
|
+
- "*interface.ts"
|
|
179
|
+
- "*interface.tsx"
|
|
180
|
+
|
|
181
|
+
# AI anti-patterns
|
|
182
|
+
anti_patterns:
|
|
183
|
+
over_abstraction:
|
|
184
|
+
description: "Too many classes/interfaces"
|
|
185
|
+
threshold: 0.5
|
|
186
|
+
|
|
187
|
+
copy_paste:
|
|
188
|
+
description: "Duplicated code blocks"
|
|
189
|
+
min_block_size: 5
|
|
190
|
+
|
|
191
|
+
prop_drilling:
|
|
192
|
+
description: "Props passed through many levels"
|
|
193
|
+
max_levels: 2
|