chati-dev 1.4.0 → 2.0.1
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.
- package/README.md +3 -3
- package/framework/agents/build/dev.md +343 -0
- package/framework/agents/clarity/architect.md +112 -0
- package/framework/agents/clarity/brief.md +182 -0
- package/framework/agents/clarity/brownfield-wu.md +181 -0
- package/framework/agents/clarity/detail.md +110 -0
- package/framework/agents/clarity/greenfield-wu.md +153 -0
- package/framework/agents/clarity/ux.md +112 -0
- package/framework/config.yaml +3 -3
- package/framework/constitution.md +31 -1
- package/framework/context/governance.md +37 -0
- package/framework/context/protocols.md +34 -0
- package/framework/context/quality.md +27 -0
- package/framework/context/root.md +24 -0
- package/framework/domains/agents/architect.yaml +51 -0
- package/framework/domains/agents/brief.yaml +47 -0
- package/framework/domains/agents/brownfield-wu.yaml +49 -0
- package/framework/domains/agents/detail.yaml +47 -0
- package/framework/domains/agents/dev.yaml +49 -0
- package/framework/domains/agents/devops.yaml +43 -0
- package/framework/domains/agents/greenfield-wu.yaml +47 -0
- package/framework/domains/agents/orchestrator.yaml +49 -0
- package/framework/domains/agents/phases.yaml +47 -0
- package/framework/domains/agents/qa-implementation.yaml +43 -0
- package/framework/domains/agents/qa-planning.yaml +44 -0
- package/framework/domains/agents/tasks.yaml +48 -0
- package/framework/domains/agents/ux.yaml +50 -0
- package/framework/domains/constitution.yaml +77 -0
- package/framework/domains/global.yaml +64 -0
- package/framework/domains/workflows/brownfield-discovery.yaml +16 -0
- package/framework/domains/workflows/brownfield-fullstack.yaml +26 -0
- package/framework/domains/workflows/brownfield-service.yaml +22 -0
- package/framework/domains/workflows/brownfield-ui.yaml +22 -0
- package/framework/domains/workflows/greenfield-fullstack.yaml +26 -0
- package/framework/hooks/constitution-guard.js +101 -0
- package/framework/hooks/mode-governance.js +92 -0
- package/framework/hooks/model-governance.js +76 -0
- package/framework/hooks/prism-engine.js +89 -0
- package/framework/hooks/session-digest.js +60 -0
- package/framework/hooks/settings.json +44 -0
- package/framework/migrations/v1.4-to-v2.0.yaml +167 -0
- package/framework/migrations/v2.0-to-v2.0.1.yaml +132 -0
- package/framework/orchestrator/chati.md +284 -6
- package/framework/tasks/architect-api-design.md +63 -0
- package/framework/tasks/architect-consolidate.md +47 -0
- package/framework/tasks/architect-db-design.md +73 -0
- package/framework/tasks/architect-design.md +95 -0
- package/framework/tasks/architect-security-review.md +62 -0
- package/framework/tasks/architect-stack-selection.md +53 -0
- package/framework/tasks/brief-consolidate.md +249 -0
- package/framework/tasks/brief-constraint-identify.md +277 -0
- package/framework/tasks/brief-extract-requirements.md +339 -0
- package/framework/tasks/brief-stakeholder-map.md +176 -0
- package/framework/tasks/brief-validate-completeness.md +121 -0
- package/framework/tasks/brownfield-wu-architecture-map.md +394 -0
- package/framework/tasks/brownfield-wu-deep-discovery.md +312 -0
- package/framework/tasks/brownfield-wu-dependency-scan.md +359 -0
- package/framework/tasks/brownfield-wu-migration-plan.md +483 -0
- package/framework/tasks/brownfield-wu-report.md +325 -0
- package/framework/tasks/brownfield-wu-risk-assess.md +424 -0
- package/framework/tasks/detail-acceptance-criteria.md +372 -0
- package/framework/tasks/detail-consolidate.md +138 -0
- package/framework/tasks/detail-edge-case-analysis.md +300 -0
- package/framework/tasks/detail-expand-prd.md +389 -0
- package/framework/tasks/detail-nfr-extraction.md +223 -0
- package/framework/tasks/dev-code-review.md +404 -0
- package/framework/tasks/dev-consolidate.md +543 -0
- package/framework/tasks/dev-debug.md +322 -0
- package/framework/tasks/dev-implement.md +252 -0
- package/framework/tasks/dev-iterate.md +411 -0
- package/framework/tasks/dev-pr-prepare.md +497 -0
- package/framework/tasks/dev-refactor.md +342 -0
- package/framework/tasks/dev-test-write.md +306 -0
- package/framework/tasks/devops-ci-setup.md +412 -0
- package/framework/tasks/devops-consolidate.md +712 -0
- package/framework/tasks/devops-deploy-config.md +598 -0
- package/framework/tasks/devops-monitoring-setup.md +658 -0
- package/framework/tasks/devops-release-prepare.md +673 -0
- package/framework/tasks/greenfield-wu-analyze-empty.md +169 -0
- package/framework/tasks/greenfield-wu-report.md +266 -0
- package/framework/tasks/greenfield-wu-scaffold-detection.md +203 -0
- package/framework/tasks/greenfield-wu-tech-stack-assess.md +255 -0
- package/framework/tasks/orchestrator-deviation.md +260 -0
- package/framework/tasks/orchestrator-escalate.md +276 -0
- package/framework/tasks/orchestrator-handoff.md +243 -0
- package/framework/tasks/orchestrator-health.md +372 -0
- package/framework/tasks/orchestrator-mode-switch.md +262 -0
- package/framework/tasks/orchestrator-resume.md +189 -0
- package/framework/tasks/orchestrator-route.md +169 -0
- package/framework/tasks/orchestrator-spawn-terminal.md +358 -0
- package/framework/tasks/orchestrator-status.md +260 -0
- package/framework/tasks/orchestrator-suggest-mode.md +372 -0
- package/framework/tasks/phases-breakdown.md +91 -0
- package/framework/tasks/phases-dependency-mapping.md +67 -0
- package/framework/tasks/phases-mvp-scoping.md +94 -0
- package/framework/tasks/qa-impl-consolidate.md +522 -0
- package/framework/tasks/qa-impl-performance-test.md +487 -0
- package/framework/tasks/qa-impl-regression-check.md +413 -0
- package/framework/tasks/qa-impl-sast-scan.md +402 -0
- package/framework/tasks/qa-impl-test-execute.md +344 -0
- package/framework/tasks/qa-impl-verdict.md +339 -0
- package/framework/tasks/qa-planning-consolidate.md +309 -0
- package/framework/tasks/qa-planning-coverage-plan.md +338 -0
- package/framework/tasks/qa-planning-gate-define.md +339 -0
- package/framework/tasks/qa-planning-risk-matrix.md +631 -0
- package/framework/tasks/qa-planning-test-strategy.md +217 -0
- package/framework/tasks/tasks-acceptance-write.md +75 -0
- package/framework/tasks/tasks-consolidate.md +57 -0
- package/framework/tasks/tasks-decompose.md +80 -0
- package/framework/tasks/tasks-estimate.md +66 -0
- package/framework/tasks/ux-a11y-check.md +49 -0
- package/framework/tasks/ux-component-map.md +55 -0
- package/framework/tasks/ux-consolidate.md +46 -0
- package/framework/tasks/ux-user-flow.md +46 -0
- package/framework/tasks/ux-wireframe.md +76 -0
- package/package.json +1 -1
- package/scripts/bundle-framework.js +2 -0
- package/scripts/changelog-generator.js +222 -0
- package/scripts/codebase-mapper.js +728 -0
- package/scripts/commit-message-generator.js +167 -0
- package/scripts/coverage-analyzer.js +260 -0
- package/scripts/dependency-analyzer.js +280 -0
- package/scripts/framework-analyzer.js +308 -0
- package/scripts/generate-constitution-domain.js +253 -0
- package/scripts/health-check.js +481 -0
- package/scripts/ide-sync.js +327 -0
- package/scripts/performance-analyzer.js +325 -0
- package/scripts/plan-tracker.js +278 -0
- package/scripts/populate-entity-registry.js +481 -0
- package/scripts/pr-review.js +317 -0
- package/scripts/rollback-manager.js +310 -0
- package/scripts/stuck-detector.js +343 -0
- package/scripts/test-quality-assessment.js +257 -0
- package/scripts/validate-agents.js +367 -0
- package/scripts/validate-tasks.js +465 -0
- package/src/autonomy/autonomous-gate.js +293 -0
- package/src/autonomy/index.js +51 -0
- package/src/autonomy/mode-manager.js +225 -0
- package/src/autonomy/mode-suggester.js +283 -0
- package/src/autonomy/progress-reporter.js +268 -0
- package/src/autonomy/safety-net.js +320 -0
- package/src/context/bracket-tracker.js +79 -0
- package/src/context/domain-loader.js +107 -0
- package/src/context/engine.js +144 -0
- package/src/context/formatter.js +184 -0
- package/src/context/index.js +4 -0
- package/src/context/layers/l0-constitution.js +28 -0
- package/src/context/layers/l1-global.js +37 -0
- package/src/context/layers/l2-agent.js +39 -0
- package/src/context/layers/l3-workflow.js +42 -0
- package/src/context/layers/l4-task.js +24 -0
- package/src/decision/analyzer.js +167 -0
- package/src/decision/engine.js +270 -0
- package/src/decision/index.js +38 -0
- package/src/decision/registry-healer.js +450 -0
- package/src/decision/registry-updater.js +330 -0
- package/src/gates/circuit-breaker.js +119 -0
- package/src/gates/g1-planning-complete.js +153 -0
- package/src/gates/g2-qa-planning.js +153 -0
- package/src/gates/g3-implementation.js +188 -0
- package/src/gates/g4-qa-implementation.js +207 -0
- package/src/gates/g5-deploy-ready.js +180 -0
- package/src/gates/gate-base.js +144 -0
- package/src/gates/index.js +46 -0
- package/src/installer/brownfield-upgrader.js +249 -0
- package/src/installer/core.js +55 -3
- package/src/installer/file-hasher.js +51 -0
- package/src/installer/manifest.js +117 -0
- package/src/installer/templates.js +17 -15
- package/src/installer/transaction.js +229 -0
- package/src/installer/validator.js +18 -1
- package/src/memory/agent-memory.js +255 -0
- package/src/memory/gotchas-injector.js +72 -0
- package/src/memory/gotchas.js +361 -0
- package/src/memory/index.js +35 -0
- package/src/memory/search.js +233 -0
- package/src/memory/session-digest.js +239 -0
- package/src/merger/env-merger.js +112 -0
- package/src/merger/index.js +56 -0
- package/src/merger/replace-merger.js +51 -0
- package/src/merger/yaml-merger.js +127 -0
- package/src/orchestrator/agent-selector.js +285 -0
- package/src/orchestrator/deviation-handler.js +350 -0
- package/src/orchestrator/handoff-engine.js +271 -0
- package/src/orchestrator/index.js +67 -0
- package/src/orchestrator/intent-classifier.js +264 -0
- package/src/orchestrator/pipeline-manager.js +492 -0
- package/src/orchestrator/pipeline-state.js +223 -0
- package/src/orchestrator/session-manager.js +409 -0
- package/src/tasks/executor.js +195 -0
- package/src/tasks/handoff.js +226 -0
- package/src/tasks/index.js +4 -0
- package/src/tasks/loader.js +210 -0
- package/src/tasks/router.js +182 -0
- package/src/terminal/collector.js +216 -0
- package/src/terminal/index.js +30 -0
- package/src/terminal/isolation.js +129 -0
- package/src/terminal/monitor.js +277 -0
- package/src/terminal/spawner.js +269 -0
- package/src/upgrade/checker.js +1 -1
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: brownfield-wu-dependency-scan
|
|
3
|
+
agent: brownfield-wu
|
|
4
|
+
trigger: brownfield-wu-deep-discovery
|
|
5
|
+
phase: clarity
|
|
6
|
+
requires_input: false
|
|
7
|
+
parallelizable: true
|
|
8
|
+
outputs: [dependencies.yaml]
|
|
9
|
+
handoff_to: brownfield-wu-architecture-map
|
|
10
|
+
autonomous_gate: true
|
|
11
|
+
criteria:
|
|
12
|
+
- All dependency manifests parsed
|
|
13
|
+
- Security vulnerabilities identified
|
|
14
|
+
- Update status assessed for all dependencies
|
|
15
|
+
---
|
|
16
|
+
# Scan Project Dependencies
|
|
17
|
+
|
|
18
|
+
## Purpose
|
|
19
|
+
Analyze all project dependencies for versions, vulnerabilities, update status, license compliance, and bundle size impact.
|
|
20
|
+
|
|
21
|
+
## Prerequisites
|
|
22
|
+
- `discovery.yaml` exists with detected frameworks
|
|
23
|
+
- Dependency manifest files exist (package.json, requirements.txt, Gemfile, etc.)
|
|
24
|
+
- Internet connectivity for vulnerability databases (optional but recommended)
|
|
25
|
+
|
|
26
|
+
## Steps
|
|
27
|
+
|
|
28
|
+
### 1. Identify Dependency Manifests
|
|
29
|
+
Based on detected runtime from `discovery.yaml`:
|
|
30
|
+
- **Node.js**: `package.json`, `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`
|
|
31
|
+
- **Python**: `requirements.txt`, `Pipfile`, `poetry.lock`, `pyproject.toml`
|
|
32
|
+
- **Ruby**: `Gemfile`, `Gemfile.lock`
|
|
33
|
+
- **PHP**: `composer.json`, `composer.lock`
|
|
34
|
+
- **Go**: `go.mod`, `go.sum`
|
|
35
|
+
- **Rust**: `Cargo.toml`, `Cargo.lock`
|
|
36
|
+
- **Java**: `pom.xml`, `build.gradle`
|
|
37
|
+
|
|
38
|
+
### 2. Parse Direct Dependencies
|
|
39
|
+
For each manifest file:
|
|
40
|
+
- Extract all direct dependencies (not dev dependencies separately)
|
|
41
|
+
- Record current versions
|
|
42
|
+
- Identify version constraints (^, ~, >=, exact)
|
|
43
|
+
- Count total dependencies
|
|
44
|
+
- Categorize:
|
|
45
|
+
- **Production**: Required at runtime
|
|
46
|
+
- **Development**: Build, test, lint tools
|
|
47
|
+
- **Peer**: Expected to be provided by consumer
|
|
48
|
+
|
|
49
|
+
### 3. Analyze Dependency Tree
|
|
50
|
+
- Build complete dependency tree including transitive dependencies
|
|
51
|
+
- Calculate tree statistics:
|
|
52
|
+
- Total unique packages (including transitives)
|
|
53
|
+
- Maximum depth
|
|
54
|
+
- Most depended-upon packages
|
|
55
|
+
- Duplicate dependencies (same package, different versions)
|
|
56
|
+
- Identify potential issues:
|
|
57
|
+
- Circular dependencies
|
|
58
|
+
- Version conflicts
|
|
59
|
+
- Missing peer dependencies
|
|
60
|
+
|
|
61
|
+
### 4. Check for Vulnerabilities
|
|
62
|
+
- **Node.js**: Run `npm audit` or `yarn audit` or `pnpm audit`
|
|
63
|
+
- **Python**: Run `pip-audit` or check against PyPI advisory database
|
|
64
|
+
- **Ruby**: Run `bundle audit`
|
|
65
|
+
- **Other languages**: Use appropriate security scanners
|
|
66
|
+
- For each vulnerability:
|
|
67
|
+
- CVE ID or advisory ID
|
|
68
|
+
- Severity (critical, high, moderate, low)
|
|
69
|
+
- Affected package and version range
|
|
70
|
+
- Fixed version (if available)
|
|
71
|
+
- Exploitability (proof of concept exists?)
|
|
72
|
+
- CVSS score
|
|
73
|
+
- Aggregate by severity:
|
|
74
|
+
- Critical: Immediate attention required
|
|
75
|
+
- High: Should fix soon
|
|
76
|
+
- Moderate: Fix when convenient
|
|
77
|
+
- Low: Monitor but not urgent
|
|
78
|
+
|
|
79
|
+
### 5. Assess Update Status
|
|
80
|
+
For each direct dependency:
|
|
81
|
+
- Current version: e.g., "4.18.0"
|
|
82
|
+
- Latest version: Query package registry (npm, PyPI, RubyGems, etc.)
|
|
83
|
+
- Latest compatible version: Respecting semver constraints
|
|
84
|
+
- Version lag:
|
|
85
|
+
- Current: 0-3 months behind
|
|
86
|
+
- Stale: 3-12 months behind
|
|
87
|
+
- Outdated: >12 months behind
|
|
88
|
+
- Abandoned: No updates in >24 months
|
|
89
|
+
- Breaking changes: Major version behind
|
|
90
|
+
- Check deprecation status:
|
|
91
|
+
- Deprecated: Package marked as deprecated
|
|
92
|
+
- Unmaintained: No commits in >18 months
|
|
93
|
+
- Archived: Repository archived
|
|
94
|
+
|
|
95
|
+
### 6. Analyze License Compliance
|
|
96
|
+
For each dependency:
|
|
97
|
+
- Extract license type (MIT, Apache-2.0, GPL, proprietary, etc.)
|
|
98
|
+
- Check license compatibility with project license
|
|
99
|
+
- Flag concerning licenses:
|
|
100
|
+
- Copyleft (GPL, AGPL) if project is proprietary
|
|
101
|
+
- Proprietary/commercial licenses
|
|
102
|
+
- Unknown or missing licenses
|
|
103
|
+
- Generate license summary:
|
|
104
|
+
- Count by license type
|
|
105
|
+
- Identify incompatibilities
|
|
106
|
+
- List packages requiring attribution
|
|
107
|
+
|
|
108
|
+
### 7. Estimate Bundle Size Impact (Frontend)
|
|
109
|
+
For frontend dependencies:
|
|
110
|
+
- Check package size on npm (unpacked size)
|
|
111
|
+
- Identify heaviest dependencies (top 10)
|
|
112
|
+
- Estimate total bundle size contribution
|
|
113
|
+
- Flag unnecessarily large dependencies:
|
|
114
|
+
- Full libraries when only small part used (e.g., lodash vs. lodash-es)
|
|
115
|
+
- Multiple similar libraries (moment + date-fns)
|
|
116
|
+
- Unused dependencies (imported but never used)
|
|
117
|
+
|
|
118
|
+
### 8. Identify Duplicate and Redundant Packages
|
|
119
|
+
- **Duplicates**: Same functionality, different packages
|
|
120
|
+
- Example: axios + node-fetch + got (all HTTP clients)
|
|
121
|
+
- Example: moment + date-fns + dayjs (all date libraries)
|
|
122
|
+
- **Overlapping**: Packages with overlapping functionality
|
|
123
|
+
- Example: lodash + underscore
|
|
124
|
+
- Example: Express + Koa (both loaded)
|
|
125
|
+
- **Unused**: Packages in manifest but not imported in code
|
|
126
|
+
- Scan for import statements
|
|
127
|
+
- Cross-reference with installed packages
|
|
128
|
+
- Flag as removal candidates
|
|
129
|
+
|
|
130
|
+
### 9. Check for Malicious Packages
|
|
131
|
+
- Check package names against known typosquatting patterns
|
|
132
|
+
- Verify package publishers (established vs. new accounts)
|
|
133
|
+
- Check for sudden maintainer changes
|
|
134
|
+
- Flag suspicious patterns:
|
|
135
|
+
- Obfuscated code in dependencies
|
|
136
|
+
- Unexpected network requests
|
|
137
|
+
- Unusual postinstall scripts
|
|
138
|
+
|
|
139
|
+
### 10. Generate Update Recommendations
|
|
140
|
+
Prioritize updates:
|
|
141
|
+
- **Priority 1 (Urgent)**: Critical vulnerabilities, deprecated packages
|
|
142
|
+
- **Priority 2 (High)**: High-severity vulnerabilities, major versions behind
|
|
143
|
+
- **Priority 3 (Medium)**: Moderate vulnerabilities, stale packages
|
|
144
|
+
- **Priority 4 (Low)**: Minor updates, no security impact
|
|
145
|
+
For each recommendation:
|
|
146
|
+
- Package name and current version
|
|
147
|
+
- Target version
|
|
148
|
+
- Migration complexity (easy, moderate, hard)
|
|
149
|
+
- Breaking changes summary (if major version)
|
|
150
|
+
- Estimated effort (hours)
|
|
151
|
+
|
|
152
|
+
## Decision Points
|
|
153
|
+
- **Critical Vulnerabilities Found**: Ask user if they want to pause analysis and fix vulnerabilities immediately
|
|
154
|
+
- **Major Version Behind**: If many dependencies are multiple major versions behind, ask if user wants to plan migration before continuing
|
|
155
|
+
- **License Incompatibilities**: If GPL dependencies found in proprietary project, flag immediately and ask for review
|
|
156
|
+
|
|
157
|
+
## Error Handling
|
|
158
|
+
- **Network Unavailable**: Skip vulnerability and update checks, document as limitation
|
|
159
|
+
- **Registry Rate Limit**: Back off and retry, or continue with cached data if available
|
|
160
|
+
- **Corrupt Lock File**: Attempt to regenerate from manifest, or flag for manual fix
|
|
161
|
+
- **Parsing Errors**: Log specific manifest parsing errors, attempt to continue with partial data
|
|
162
|
+
|
|
163
|
+
## Output Format
|
|
164
|
+
```yaml
|
|
165
|
+
# dependencies.yaml
|
|
166
|
+
timestamp: 2026-02-13T11:15:00Z
|
|
167
|
+
project_path: /Users/user/projects/legacy-app
|
|
168
|
+
runtime: node
|
|
169
|
+
|
|
170
|
+
manifests:
|
|
171
|
+
- file: package.json
|
|
172
|
+
type: npm
|
|
173
|
+
valid: true
|
|
174
|
+
- file: package-lock.json
|
|
175
|
+
type: npm_lock
|
|
176
|
+
valid: true
|
|
177
|
+
|
|
178
|
+
summary:
|
|
179
|
+
total_direct: 87
|
|
180
|
+
total_transitive: 1243
|
|
181
|
+
production: 62
|
|
182
|
+
development: 25
|
|
183
|
+
total_unique: 1330
|
|
184
|
+
tree_depth: 8
|
|
185
|
+
|
|
186
|
+
direct_dependencies:
|
|
187
|
+
production:
|
|
188
|
+
- name: react
|
|
189
|
+
current_version: "17.0.2"
|
|
190
|
+
latest_version: "18.2.0"
|
|
191
|
+
latest_compatible: "17.0.2"
|
|
192
|
+
status: outdated
|
|
193
|
+
months_behind: 24
|
|
194
|
+
breaking_changes: true
|
|
195
|
+
vulnerabilities: 0
|
|
196
|
+
license: MIT
|
|
197
|
+
- name: express
|
|
198
|
+
current_version: "4.18.0"
|
|
199
|
+
latest_version: "4.18.2"
|
|
200
|
+
latest_compatible: "4.18.2"
|
|
201
|
+
status: stale
|
|
202
|
+
months_behind: 8
|
|
203
|
+
breaking_changes: false
|
|
204
|
+
vulnerabilities: 1
|
|
205
|
+
license: MIT
|
|
206
|
+
- name: lodash
|
|
207
|
+
current_version: "4.17.20"
|
|
208
|
+
latest_version: "4.17.21"
|
|
209
|
+
latest_compatible: "4.17.21"
|
|
210
|
+
status: outdated
|
|
211
|
+
months_behind: 18
|
|
212
|
+
breaking_changes: false
|
|
213
|
+
vulnerabilities: 3
|
|
214
|
+
license: MIT
|
|
215
|
+
development:
|
|
216
|
+
- name: webpack
|
|
217
|
+
current_version: "5.75.0"
|
|
218
|
+
latest_version: "5.90.0"
|
|
219
|
+
latest_compatible: "5.90.0"
|
|
220
|
+
status: stale
|
|
221
|
+
months_behind: 6
|
|
222
|
+
breaking_changes: false
|
|
223
|
+
vulnerabilities: 0
|
|
224
|
+
license: MIT
|
|
225
|
+
|
|
226
|
+
vulnerabilities:
|
|
227
|
+
critical: 1
|
|
228
|
+
high: 4
|
|
229
|
+
moderate: 12
|
|
230
|
+
low: 8
|
|
231
|
+
total: 25
|
|
232
|
+
details:
|
|
233
|
+
- id: CVE-2023-45857
|
|
234
|
+
package: lodash
|
|
235
|
+
severity: critical
|
|
236
|
+
cvss_score: 9.8
|
|
237
|
+
affected_versions: "<=4.17.20"
|
|
238
|
+
fixed_version: "4.17.21"
|
|
239
|
+
description: Prototype pollution vulnerability
|
|
240
|
+
exploitable: true
|
|
241
|
+
patch_available: true
|
|
242
|
+
- id: GHSA-xxx-yyy-zzz
|
|
243
|
+
package: express
|
|
244
|
+
severity: moderate
|
|
245
|
+
cvss_score: 5.3
|
|
246
|
+
affected_versions: "4.0.0 - 4.18.1"
|
|
247
|
+
fixed_version: "4.18.2"
|
|
248
|
+
description: Open redirect vulnerability
|
|
249
|
+
exploitable: false
|
|
250
|
+
patch_available: true
|
|
251
|
+
|
|
252
|
+
update_status:
|
|
253
|
+
current: 23
|
|
254
|
+
stale: 31
|
|
255
|
+
outdated: 28
|
|
256
|
+
abandoned: 5
|
|
257
|
+
|
|
258
|
+
deprecated_packages:
|
|
259
|
+
- name: request
|
|
260
|
+
current_version: "2.88.2"
|
|
261
|
+
deprecated_since: 2020-02-11
|
|
262
|
+
replacement: axios, node-fetch, or got
|
|
263
|
+
usage_count: 3
|
|
264
|
+
|
|
265
|
+
licenses:
|
|
266
|
+
summary:
|
|
267
|
+
MIT: 1156
|
|
268
|
+
Apache-2.0: 87
|
|
269
|
+
BSD-3-Clause: 45
|
|
270
|
+
ISC: 32
|
|
271
|
+
GPL-3.0: 2
|
|
272
|
+
Unknown: 8
|
|
273
|
+
incompatibilities:
|
|
274
|
+
- package: some-gpl-package
|
|
275
|
+
license: GPL-3.0
|
|
276
|
+
issue: Copyleft license incompatible with proprietary project
|
|
277
|
+
recommendation: Find MIT/Apache alternative or obtain commercial license
|
|
278
|
+
|
|
279
|
+
bundle_size:
|
|
280
|
+
total_estimated_kb: 2847
|
|
281
|
+
heaviest_packages:
|
|
282
|
+
- name: moment
|
|
283
|
+
size_kb: 523
|
|
284
|
+
recommendation: Replace with date-fns (tree-shakeable) or dayjs (smaller)
|
|
285
|
+
- name: lodash
|
|
286
|
+
size_kb: 456
|
|
287
|
+
recommendation: Use lodash-es for tree-shaking or individual imports
|
|
288
|
+
- name: material-ui
|
|
289
|
+
size_kb: 1234
|
|
290
|
+
recommendation: Already optimized, ensure tree-shaking configured
|
|
291
|
+
|
|
292
|
+
duplicates_and_redundancy:
|
|
293
|
+
duplicate_functionality:
|
|
294
|
+
- packages: [axios, node-fetch]
|
|
295
|
+
type: http_client
|
|
296
|
+
recommendation: Standardize on axios (already primary)
|
|
297
|
+
potential_savings_kb: 89
|
|
298
|
+
- packages: [moment, date-fns]
|
|
299
|
+
type: date_library
|
|
300
|
+
recommendation: Migrate to date-fns (smaller, tree-shakeable)
|
|
301
|
+
potential_savings_kb: 523
|
|
302
|
+
unused_packages:
|
|
303
|
+
- name: uuid
|
|
304
|
+
last_used: never
|
|
305
|
+
recommendation: Remove
|
|
306
|
+
- name: color
|
|
307
|
+
last_used: never
|
|
308
|
+
recommendation: Remove
|
|
309
|
+
|
|
310
|
+
update_recommendations:
|
|
311
|
+
priority_1_urgent:
|
|
312
|
+
- package: lodash
|
|
313
|
+
action: update 4.17.20 → 4.17.21
|
|
314
|
+
reason: Critical vulnerability CVE-2023-45857
|
|
315
|
+
complexity: easy
|
|
316
|
+
breaking_changes: false
|
|
317
|
+
estimated_hours: 0.5
|
|
318
|
+
priority_2_high:
|
|
319
|
+
- package: react
|
|
320
|
+
action: update 17.0.2 → 18.2.0
|
|
321
|
+
reason: 2 major versions behind, new features, better performance
|
|
322
|
+
complexity: hard
|
|
323
|
+
breaking_changes: true
|
|
324
|
+
breaking_changes_summary: |
|
|
325
|
+
- ReactDOM.render → ReactDOM.createRoot
|
|
326
|
+
- Automatic batching of state updates
|
|
327
|
+
- Concurrent features require opt-in
|
|
328
|
+
- Some legacy APIs deprecated
|
|
329
|
+
estimated_hours: 16
|
|
330
|
+
priority_3_medium:
|
|
331
|
+
- package: express
|
|
332
|
+
action: update 4.18.0 → 4.18.2
|
|
333
|
+
reason: Moderate vulnerability, minor version behind
|
|
334
|
+
complexity: easy
|
|
335
|
+
breaking_changes: false
|
|
336
|
+
estimated_hours: 1
|
|
337
|
+
priority_4_low:
|
|
338
|
+
- package: webpack
|
|
339
|
+
action: update 5.75.0 → 5.90.0
|
|
340
|
+
reason: 6 months behind, performance improvements
|
|
341
|
+
complexity: moderate
|
|
342
|
+
breaking_changes: false
|
|
343
|
+
estimated_hours: 2
|
|
344
|
+
|
|
345
|
+
estimated_total_update_effort:
|
|
346
|
+
priority_1: 0.5 hours
|
|
347
|
+
priority_2: 16 hours
|
|
348
|
+
priority_3: 3 hours
|
|
349
|
+
priority_4: 4 hours
|
|
350
|
+
total: 23.5 hours
|
|
351
|
+
|
|
352
|
+
recommendations:
|
|
353
|
+
- Fix critical lodash vulnerability immediately
|
|
354
|
+
- Plan React 17→18 migration as dedicated sprint (16 hours)
|
|
355
|
+
- Remove unused packages (uuid, color) to reduce bloat
|
|
356
|
+
- Replace moment with date-fns for bundle size reduction (523 KB savings)
|
|
357
|
+
- Standardize on single HTTP client (axios)
|
|
358
|
+
- Address GPL-licensed package incompatibility
|
|
359
|
+
```
|