@rigour-labs/core 3.0.5 → 3.0.6

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 (47) hide show
  1. package/dist/gates/deprecated-apis-rules-lang.d.ts +21 -0
  2. package/dist/gates/deprecated-apis-rules-lang.js +311 -0
  3. package/dist/gates/deprecated-apis-rules-node.d.ts +19 -0
  4. package/dist/gates/deprecated-apis-rules-node.js +199 -0
  5. package/dist/gates/deprecated-apis-rules.d.ts +6 -0
  6. package/dist/gates/deprecated-apis-rules.js +6 -0
  7. package/dist/gates/deprecated-apis.js +1 -502
  8. package/dist/gates/hallucinated-imports-lang.d.ts +16 -0
  9. package/dist/gates/hallucinated-imports-lang.js +374 -0
  10. package/dist/gates/hallucinated-imports-stdlib.d.ts +12 -0
  11. package/dist/gates/hallucinated-imports-stdlib.js +228 -0
  12. package/dist/gates/hallucinated-imports.d.ts +0 -98
  13. package/dist/gates/hallucinated-imports.js +10 -678
  14. package/dist/gates/phantom-apis-data.d.ts +33 -0
  15. package/dist/gates/phantom-apis-data.js +398 -0
  16. package/dist/gates/phantom-apis.js +1 -393
  17. package/dist/gates/phantom-apis.test.js +52 -0
  18. package/dist/gates/promise-safety-helpers.d.ts +19 -0
  19. package/dist/gates/promise-safety-helpers.js +101 -0
  20. package/dist/gates/promise-safety-rules.d.ts +7 -0
  21. package/dist/gates/promise-safety-rules.js +19 -0
  22. package/dist/gates/promise-safety.d.ts +1 -21
  23. package/dist/gates/promise-safety.js +51 -257
  24. package/dist/gates/test-quality-lang.d.ts +30 -0
  25. package/dist/gates/test-quality-lang.js +188 -0
  26. package/dist/gates/test-quality.d.ts +0 -14
  27. package/dist/gates/test-quality.js +13 -186
  28. package/dist/pattern-index/indexer-helpers.d.ts +38 -0
  29. package/dist/pattern-index/indexer-helpers.js +111 -0
  30. package/dist/pattern-index/indexer-lang.d.ts +13 -0
  31. package/dist/pattern-index/indexer-lang.js +244 -0
  32. package/dist/pattern-index/indexer-ts.d.ts +22 -0
  33. package/dist/pattern-index/indexer-ts.js +258 -0
  34. package/dist/pattern-index/indexer.d.ts +4 -106
  35. package/dist/pattern-index/indexer.js +58 -707
  36. package/dist/pattern-index/staleness-data.d.ts +6 -0
  37. package/dist/pattern-index/staleness-data.js +262 -0
  38. package/dist/pattern-index/staleness.js +1 -258
  39. package/dist/templates/index.d.ts +12 -16
  40. package/dist/templates/index.js +11 -527
  41. package/dist/templates/paradigms.d.ts +2 -0
  42. package/dist/templates/paradigms.js +46 -0
  43. package/dist/templates/presets.d.ts +14 -0
  44. package/dist/templates/presets.js +227 -0
  45. package/dist/templates/universal-config.d.ts +2 -0
  46. package/dist/templates/universal-config.js +171 -0
  47. package/package.json +1 -1
@@ -0,0 +1,227 @@
1
+ export const TEMPLATES = [
2
+ {
3
+ name: 'ui',
4
+ markers: [
5
+ 'react', 'next', 'vue', 'svelte',
6
+ 'next.config.js', 'vite.config.ts', 'tailwind.config.js',
7
+ 'base.css', 'index.html',
8
+ ],
9
+ config: {
10
+ preset: 'ui',
11
+ ignore: [
12
+ '.git/**', 'node_modules/**', 'dist/**', 'build/**',
13
+ '.next/**', '.nuxt/**', '.svelte-kit/**', 'coverage/**', '.turbo/**',
14
+ ],
15
+ gates: {
16
+ max_file_lines: 300,
17
+ required_files: ['docs/SPEC.md', 'docs/ARCH.md', 'README.md'],
18
+ },
19
+ planned: [
20
+ 'Layer Boundary: Components cannot import from DB',
21
+ 'Prop-Drilling Detection: Max depth 5',
22
+ ],
23
+ },
24
+ },
25
+ {
26
+ name: 'api',
27
+ markers: [
28
+ 'express', 'fastify', 'nestjs', 'go.mod',
29
+ 'requirements.txt', 'pyproject.toml', 'app.py', 'main.go', 'index.js',
30
+ ],
31
+ config: {
32
+ preset: 'api',
33
+ ignore: [
34
+ '.git/**',
35
+ 'node_modules/**', 'dist/**',
36
+ 'venv/**', '.venv/**', '__pycache__/**', '*.pyc',
37
+ '.tox/**', '.pytest_cache/**', '.mypy_cache/**', '*.egg-info/**',
38
+ 'vendor/**',
39
+ ],
40
+ gates: {
41
+ max_file_lines: 400,
42
+ required_files: ['docs/SPEC.md', 'docs/ARCH.md', 'README.md'],
43
+ },
44
+ planned: [
45
+ 'Service Layer Enforcement: Controllers -> Services only',
46
+ 'Repo Pattern: Databases access isolated to repositories/',
47
+ ],
48
+ },
49
+ },
50
+ {
51
+ name: 'infra',
52
+ markers: ['Dockerfile', 'docker-compose.yml', 'main.tf', 'k8s/', 'helm/', 'ansible/'],
53
+ config: {
54
+ preset: 'infra',
55
+ ignore: [
56
+ '.git/**', '.terraform/**', '*.tfstate', '*.tfstate.backup',
57
+ '.terragrunt-cache/**', 'charts/**/*.tgz',
58
+ ],
59
+ gates: {
60
+ max_file_lines: 300,
61
+ required_files: ['docs/RUNBOOK.md', 'docs/ARCH.md', 'README.md'],
62
+ },
63
+ },
64
+ },
65
+ {
66
+ name: 'data',
67
+ markers: ['ipynb', 'spark', 'pandas', 'data/', 'dbt_project.yml'],
68
+ config: {
69
+ preset: 'data',
70
+ ignore: [
71
+ '.git/**', '.ipynb_checkpoints/**', '__pycache__/**', '*.pyc',
72
+ 'dbt_packages/**', 'target/**', 'logs/**', '*.parquet', '*.csv',
73
+ ],
74
+ gates: {
75
+ max_file_lines: 500,
76
+ required_files: ['docs/DATA_DICTIONARY.md', 'docs/PIPELINE.md', 'README.md'],
77
+ },
78
+ planned: [
79
+ 'Stochastic Determinism: Seed setting enforcement',
80
+ 'Data Leaks: Detecting PII in notebook outputs',
81
+ ],
82
+ },
83
+ },
84
+ // --- Regulated Industry Presets ---
85
+ {
86
+ name: 'healthcare',
87
+ markers: ['hl7', 'fhir', 'hipaa', 'medical', 'patient', 'health', 'ehr', 'phi', 'dicom', 'icd-10', 'snomed'],
88
+ config: {
89
+ preset: 'healthcare',
90
+ ignore: [
91
+ '.git/**', 'node_modules/**', 'dist/**', 'build/**',
92
+ 'venv/**', '.venv/**', '__pycache__/**',
93
+ ],
94
+ gates: {
95
+ max_file_lines: 300,
96
+ required_files: ['docs/COMPLIANCE.md', 'docs/SPEC.md', 'docs/ARCH.md', 'README.md'],
97
+ security: {
98
+ enabled: true,
99
+ sql_injection: true,
100
+ xss: true,
101
+ path_traversal: true,
102
+ hardcoded_secrets: true,
103
+ insecure_randomness: true,
104
+ command_injection: true,
105
+ block_on_severity: 'critical',
106
+ },
107
+ },
108
+ },
109
+ },
110
+ {
111
+ name: 'fintech',
112
+ markers: ['trading', 'payment', 'kyc', 'aml', 'pci', 'transaction', 'ledger', 'banking', 'stripe', 'plaid', 'sox'],
113
+ config: {
114
+ preset: 'fintech',
115
+ ignore: [
116
+ '.git/**', 'node_modules/**', 'dist/**', 'build/**',
117
+ 'venv/**', '.venv/**', '__pycache__/**', 'vendor/**',
118
+ ],
119
+ gates: {
120
+ max_file_lines: 350,
121
+ required_files: ['docs/AUDIT_LOG.md', 'docs/SPEC.md', 'docs/ARCH.md', 'README.md'],
122
+ security: {
123
+ enabled: true,
124
+ sql_injection: true,
125
+ xss: true,
126
+ path_traversal: true,
127
+ hardcoded_secrets: true,
128
+ insecure_randomness: true,
129
+ command_injection: true,
130
+ block_on_severity: 'high',
131
+ },
132
+ agent_team: {
133
+ enabled: true,
134
+ max_concurrent_agents: 3,
135
+ cross_agent_pattern_check: true,
136
+ handoff_verification: true,
137
+ task_ownership: 'strict',
138
+ },
139
+ },
140
+ },
141
+ },
142
+ {
143
+ name: 'government',
144
+ markers: ['fedramp', 'nist', 'cmmc', 'federal', 'govcloud', 'il4', 'il5', 'fisma', 'itar', 'cui'],
145
+ config: {
146
+ preset: 'government',
147
+ ignore: [
148
+ '.git/**', 'node_modules/**', 'dist/**', 'build/**',
149
+ 'venv/**', '.venv/**', '__pycache__/**', 'vendor/**',
150
+ ],
151
+ gates: {
152
+ max_file_lines: 250,
153
+ required_files: ['docs/SECURITY.md', 'docs/SPEC.md', 'docs/ARCH.md', 'README.md'],
154
+ ast: {
155
+ complexity: 8, max_methods: 10, max_params: 4,
156
+ max_nesting: 3, max_inheritance_depth: 3,
157
+ max_class_dependencies: 5, max_function_lines: 40,
158
+ },
159
+ security: {
160
+ enabled: true,
161
+ sql_injection: true,
162
+ xss: true,
163
+ path_traversal: true,
164
+ hardcoded_secrets: true,
165
+ insecure_randomness: true,
166
+ command_injection: true,
167
+ block_on_severity: 'medium',
168
+ },
169
+ agent_team: {
170
+ enabled: true,
171
+ max_concurrent_agents: 3,
172
+ cross_agent_pattern_check: true,
173
+ handoff_verification: true,
174
+ task_ownership: 'strict',
175
+ },
176
+ checkpoint: {
177
+ enabled: true,
178
+ interval_minutes: 10,
179
+ quality_threshold: 85,
180
+ drift_detection: true,
181
+ auto_save_on_failure: true,
182
+ },
183
+ },
184
+ },
185
+ },
186
+ {
187
+ name: 'devsecops',
188
+ markers: [
189
+ 'trivy', 'snyk', 'semgrep', 'sonarqube', 'owasp',
190
+ 'sast', 'dast', 'pentest', 'vulnerability', 'cve',
191
+ 'security-scan', 'falco', 'wazuh', 'ossec',
192
+ ],
193
+ config: {
194
+ preset: 'devsecops',
195
+ ignore: [
196
+ '.git/**', 'node_modules/**', 'dist/**', 'build/**',
197
+ 'venv/**', '.venv/**', '__pycache__/**', 'vendor/**',
198
+ ],
199
+ gates: {
200
+ max_file_lines: 300,
201
+ required_files: ['docs/SECURITY.md', 'docs/RUNBOOK.md', 'README.md'],
202
+ ast: {
203
+ complexity: 10, max_methods: 10, max_params: 5,
204
+ max_nesting: 3, max_inheritance_depth: 3,
205
+ max_class_dependencies: 5, max_function_lines: 50,
206
+ },
207
+ security: {
208
+ enabled: true,
209
+ sql_injection: true,
210
+ xss: true,
211
+ path_traversal: true,
212
+ hardcoded_secrets: true,
213
+ insecure_randomness: true,
214
+ command_injection: true,
215
+ block_on_severity: 'high',
216
+ },
217
+ agent_team: {
218
+ enabled: true,
219
+ max_concurrent_agents: 3,
220
+ cross_agent_pattern_check: true,
221
+ handoff_verification: true,
222
+ task_ownership: 'strict',
223
+ },
224
+ },
225
+ },
226
+ },
227
+ ];
@@ -0,0 +1,2 @@
1
+ import type { Config } from '../types/index.js';
2
+ export declare const UNIVERSAL_CONFIG: Config;
@@ -0,0 +1,171 @@
1
+ export const UNIVERSAL_CONFIG = {
2
+ version: 1,
3
+ commands: {},
4
+ gates: {
5
+ max_file_lines: 500,
6
+ forbid_todos: true,
7
+ forbid_fixme: true,
8
+ forbid_paths: [],
9
+ required_files: ['docs/SPEC.md', 'docs/ARCH.md', 'docs/DECISIONS.md', 'docs/TASKS.md'],
10
+ ast: {
11
+ complexity: 10,
12
+ max_methods: 10,
13
+ max_params: 5,
14
+ max_nesting: 4,
15
+ max_inheritance_depth: 3,
16
+ max_class_dependencies: 5,
17
+ max_function_lines: 50,
18
+ },
19
+ dependencies: {
20
+ forbid: [],
21
+ },
22
+ architecture: {
23
+ boundaries: [],
24
+ },
25
+ safety: {
26
+ max_files_changed_per_cycle: 10,
27
+ protected_paths: ['.github/**', 'docs/**', 'rigour.yml'],
28
+ },
29
+ context: {
30
+ enabled: true,
31
+ sensitivity: 0.8,
32
+ mining_depth: 100,
33
+ ignored_patterns: [],
34
+ cross_file_patterns: true,
35
+ naming_consistency: true,
36
+ import_relationships: true,
37
+ max_cross_file_depth: 50,
38
+ },
39
+ environment: {
40
+ enabled: true,
41
+ enforce_contracts: true,
42
+ tools: {},
43
+ required_env: [],
44
+ },
45
+ retry_loop_breaker: {
46
+ enabled: true,
47
+ max_retries: 3,
48
+ auto_classify: true,
49
+ doc_sources: {},
50
+ },
51
+ agent_team: {
52
+ enabled: false,
53
+ max_concurrent_agents: 3,
54
+ cross_agent_pattern_check: true,
55
+ handoff_verification: true,
56
+ task_ownership: 'strict',
57
+ },
58
+ checkpoint: {
59
+ enabled: false,
60
+ interval_minutes: 15,
61
+ quality_threshold: 80,
62
+ drift_detection: true,
63
+ auto_save_on_failure: true,
64
+ },
65
+ security: {
66
+ enabled: true,
67
+ sql_injection: true,
68
+ xss: true,
69
+ path_traversal: true,
70
+ hardcoded_secrets: true,
71
+ insecure_randomness: true,
72
+ command_injection: true,
73
+ block_on_severity: 'high',
74
+ },
75
+ adaptive: {
76
+ enabled: false,
77
+ base_coverage_threshold: 80,
78
+ base_quality_threshold: 80,
79
+ auto_detect_tier: true,
80
+ },
81
+ staleness: {
82
+ enabled: false,
83
+ rules: {
84
+ 'no-var': true,
85
+ 'no-commonjs': false,
86
+ 'no-arguments': false,
87
+ 'prefer-arrow': false,
88
+ 'prefer-template': false,
89
+ 'prefer-spread': false,
90
+ 'prefer-rest': false,
91
+ 'prefer-const': false,
92
+ },
93
+ },
94
+ duplication_drift: {
95
+ enabled: true,
96
+ similarity_threshold: 0.8,
97
+ min_body_lines: 5,
98
+ },
99
+ hallucinated_imports: {
100
+ enabled: true,
101
+ check_relative: true,
102
+ check_packages: true,
103
+ ignore_patterns: [
104
+ '\\.css$', '\\.scss$', '\\.less$', '\\.svg$', '\\.png$', '\\.jpg$',
105
+ '\\.json$', '\\.wasm$', '\\.graphql$', '\\.gql$',
106
+ ],
107
+ },
108
+ inconsistent_error_handling: {
109
+ enabled: true,
110
+ max_strategies_per_type: 2,
111
+ min_occurrences: 3,
112
+ ignore_empty_catches: false,
113
+ },
114
+ context_window_artifacts: {
115
+ enabled: true,
116
+ min_file_lines: 100,
117
+ degradation_threshold: 0.4,
118
+ signals_required: 2,
119
+ },
120
+ promise_safety: {
121
+ enabled: true,
122
+ check_unhandled_then: true,
123
+ check_unsafe_parse: true,
124
+ check_async_without_await: true,
125
+ check_unsafe_fetch: true,
126
+ ignore_patterns: [],
127
+ },
128
+ phantom_apis: {
129
+ enabled: true,
130
+ check_node: true,
131
+ check_python: true,
132
+ check_go: true,
133
+ check_csharp: true,
134
+ check_java: true,
135
+ ignore_patterns: [],
136
+ },
137
+ deprecated_apis: {
138
+ enabled: true,
139
+ check_node: true,
140
+ check_python: true,
141
+ check_web: true,
142
+ check_go: true,
143
+ check_csharp: true,
144
+ check_java: true,
145
+ block_security_deprecated: true,
146
+ ignore_patterns: [],
147
+ },
148
+ test_quality: {
149
+ enabled: true,
150
+ check_empty_tests: true,
151
+ check_tautological: true,
152
+ check_mock_heavy: true,
153
+ check_snapshot_abuse: true,
154
+ check_assertion_free_async: true,
155
+ max_mocks_per_test: 5,
156
+ ignore_patterns: [],
157
+ },
158
+ },
159
+ hooks: {
160
+ enabled: false,
161
+ tools: [],
162
+ fast_gates: ['hallucinated-imports', 'phantom-apis', 'deprecated-apis', 'promise-safety', 'security-patterns', 'file-size'],
163
+ timeout_ms: 5000,
164
+ block_on_failure: false,
165
+ },
166
+ output: {
167
+ report_path: 'rigour-report.json',
168
+ },
169
+ planned: [],
170
+ ignore: [],
171
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rigour-labs/core",
3
- "version": "3.0.5",
3
+ "version": "3.0.6",
4
4
  "description": "Deterministic quality gate engine for AI-generated code. AST analysis, drift detection, and Fix Packet generation across TypeScript, JavaScript, Python, Go, Ruby, and C#.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://rigour.run",