@triedotdev/mcp 1.0.38 → 1.0.39
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 +171 -15
- package/dist/{chunk-HRNBSXN2.js → chunk-B3MBKB2U.js} +915 -64
- package/dist/chunk-B3MBKB2U.js.map +1 -0
- package/dist/{chunk-TGEI55FP.js → chunk-HG5AWUH7.js} +2 -2
- package/dist/cli/yolo-daemon.js +2 -2
- package/dist/index.js +2 -2
- package/dist/workers/agent-worker.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-HRNBSXN2.js.map +0 -1
- /package/dist/{chunk-TGEI55FP.js.map → chunk-HG5AWUH7.js.map} +0 -0
package/README.md
CHANGED
|
@@ -12,6 +12,8 @@ The last mile of shipping is where things break—not because your code doesn't
|
|
|
12
12
|
|
|
13
13
|
## What's New (latest updates)
|
|
14
14
|
|
|
15
|
+
- **Accessibility Agent (v2.0)**: Comprehensive WCAG 2.1 AA compliance. Detects icon-only buttons, touch targets, skipped headings, positive tabIndex, ARIA validation, color-only indicators, and 20+ more checks with WCAG criterion references.
|
|
16
|
+
|
|
15
17
|
- **Health Score Triaging**: Your health score (0-100) now actively controls what agents run. Below 50%? All agents run automatically. Agents that found issues before get boosted priority in future scans.
|
|
16
18
|
|
|
17
19
|
- **Moneybags Agent**: Estimates dollar cost of bugs using IBM/NIST research. Costs scale with your user count—use `--users 10000` to match your scale (default: 250 users).
|
|
@@ -28,6 +30,7 @@ The last mile of shipping is where things break—not because your code doesn't
|
|
|
28
30
|
- [MCP Tools](#mcp-tools)
|
|
29
31
|
- [CLI](#cli)
|
|
30
32
|
- [Built-in Agents](#built-in-agents)
|
|
33
|
+
- [Accessibility Agent (v2.0)](#accessibility-agent-v20)
|
|
31
34
|
- [Moneybags Agent (v1.1)](#moneybags-agent-v11)
|
|
32
35
|
- [Legal Agent (v2.0)](#legal-agent-v20)
|
|
33
36
|
- [Design Engineer (v2.0)](#design-engineer-v20)
|
|
@@ -37,7 +40,7 @@ The last mile of shipping is where things break—not because your code doesn't
|
|
|
37
40
|
- [CI/CD Integration](#cicd-integration)
|
|
38
41
|
- [VS Code Extension](#vs-code-extension)
|
|
39
42
|
- [Agent Context System](#agent-context-system)
|
|
40
|
-
- [Production Shipping](#production-shipping)
|
|
43
|
+
- [Production Shipping](#production-shipping) (Production Ready Agent)
|
|
41
44
|
- [Configuration](#configuration)
|
|
42
45
|
- [License](#license)
|
|
43
46
|
|
|
@@ -402,7 +405,7 @@ Run a specific agent directly:
|
|
|
402
405
|
| `trie_privacy` | GDPR/CCPA/PCI-DSS compliance, PII exposure, logging sensitive data |
|
|
403
406
|
| `trie_soc2` | Access control gaps, missing audit logs, encryption issues |
|
|
404
407
|
| `trie_legal` | Licensing, ToS, accessibility, IP, GDPR/CCPA, e-commerce, marketing, COPPA |
|
|
405
|
-
| `trie_accessibility` | WCAG 2.1
|
|
408
|
+
| `trie_accessibility` | WCAG 2.1 AA: icon-only buttons, touch targets, heading levels, ARIA validation, focus management, 20+ checks |
|
|
406
409
|
| `trie_architecture` | Code organization, SOLID principles, N+1 queries, scalability |
|
|
407
410
|
| `trie_bugs` | Null safety, edge cases, async issues, common bugs |
|
|
408
411
|
| `trie_types` | Type errors, missing annotations, null checks |
|
|
@@ -483,7 +486,7 @@ trie-agent agents
|
|
|
483
486
|
|
|
484
487
|
| Agent | Description |
|
|
485
488
|
|-------|-------------|
|
|
486
|
-
| **Accessibility** | WCAG 2.1 compliance, keyboard nav,
|
|
489
|
+
| **Accessibility** | WCAG 2.1 AA compliance: icon-only buttons, touch targets, heading levels, ARIA validation, color-only indicators, keyboard nav, focus management, 20+ checks |
|
|
487
490
|
| **Design Engineer** | AI slop detection, verified token systems, contrast validation, design health scoring, domain-aware recommendations |
|
|
488
491
|
| **User Testing** | Simulate happy path, security tester, confused user, impatient user |
|
|
489
492
|
| **Visual QA** | Visual regression, responsive design, cross-browser issues |
|
|
@@ -501,6 +504,128 @@ trie-agent agents
|
|
|
501
504
|
|
|
502
505
|
---
|
|
503
506
|
|
|
507
|
+
## Accessibility Agent (v2.0)
|
|
508
|
+
|
|
509
|
+
The Accessibility Agent has been completely rebuilt to provide comprehensive WCAG 2.1 AA compliance checking—matching and exceeding tools like rams.ai, axe-core, and Lighthouse.
|
|
510
|
+
|
|
511
|
+
### Severity Levels
|
|
512
|
+
|
|
513
|
+
| Level | Description | Examples |
|
|
514
|
+
|-------|-------------|----------|
|
|
515
|
+
| **Critical** | Blocks access entirely | Images without alt, icon-only buttons without labels, empty links |
|
|
516
|
+
| **Serious** | Significantly impairs access | Focus outline removed, positive tabIndex, missing ARIA attributes |
|
|
517
|
+
| **Moderate** | Creates barriers | Skipped headings, color-only indicators, small touch targets |
|
|
518
|
+
| **Low** | Best practices | Missing semantic elements, external link warnings |
|
|
519
|
+
|
|
520
|
+
### What It Detects
|
|
521
|
+
|
|
522
|
+
#### Critical Issues
|
|
523
|
+
|
|
524
|
+
| Issue | WCAG | Description |
|
|
525
|
+
|-------|------|-------------|
|
|
526
|
+
| Images without alt text | 1.1.1 | Screen readers cannot describe the image |
|
|
527
|
+
| Icon-only buttons missing aria-label | 4.1.2 | Screen readers announce "button" with no purpose |
|
|
528
|
+
| Non-semantic click handlers | 2.1.1 | `div onClick` without keyboard support blocks keyboard users |
|
|
529
|
+
| Empty links | 2.4.4 | Links with no text content are unusable |
|
|
530
|
+
| Links without href | 2.4.4 | Anchor elements must have destinations |
|
|
531
|
+
|
|
532
|
+
#### Serious Issues
|
|
533
|
+
|
|
534
|
+
| Issue | WCAG | Description |
|
|
535
|
+
|-------|------|-------------|
|
|
536
|
+
| Focus outline removed | 2.4.7 | `outline: none` without replacement hides keyboard focus |
|
|
537
|
+
| Positive tabIndex values | 2.4.3 | `tabIndex={5}` disrupts natural tab order |
|
|
538
|
+
| Role without required ARIA | 4.1.2 | `role="slider"` needs `aria-valuenow`, `aria-valuemin`, `aria-valuemax` |
|
|
539
|
+
| Form inputs without labels | 1.3.1 | Inputs must have associated labels or aria-label |
|
|
540
|
+
| Color-only status indicators | 1.4.1 | Red/green for error/success excludes colorblind users |
|
|
541
|
+
| Placeholder as only label | 3.3.2 | Placeholder disappears when user types |
|
|
542
|
+
| Modal without Escape key | 2.1.2 | Keyboard users may be trapped in modal |
|
|
543
|
+
|
|
544
|
+
#### Moderate Issues
|
|
545
|
+
|
|
546
|
+
| Issue | WCAG | Description |
|
|
547
|
+
|-------|------|-------------|
|
|
548
|
+
| Skipped heading levels | 2.4.6 | h1 → h3 confuses screen reader navigation |
|
|
549
|
+
| First heading not h1 | 2.4.6 | Pages should start with h1 |
|
|
550
|
+
| Touch targets under 24px | 2.5.8 | Minimum 24×24px for WCAG AA |
|
|
551
|
+
| Missing autocomplete | 1.3.5 | Helps users fill forms faster |
|
|
552
|
+
| Generic link text | 2.4.4 | "Click here" is meaningless out of context |
|
|
553
|
+
| Missing prefers-reduced-motion | 2.3.3 | Animations can trigger vestibular disorders |
|
|
554
|
+
| Status messages without aria-live | 4.1.3 | Toasts/alerts not announced to screen readers |
|
|
555
|
+
|
|
556
|
+
#### Low Issues
|
|
557
|
+
|
|
558
|
+
| Issue | WCAG | Description |
|
|
559
|
+
|-------|------|-------------|
|
|
560
|
+
| Touch targets under 44px | 2.5.5 | Recommended 44×44px for AAA |
|
|
561
|
+
| Missing semantic elements | 1.3.1 | `<div class="nav">` should be `<nav>` |
|
|
562
|
+
| External links without warning | 3.2.5 | `target="_blank"` should indicate new window |
|
|
563
|
+
| Disabled elements without explanation | — | Users need to know why action is unavailable |
|
|
564
|
+
|
|
565
|
+
### ARIA Validation
|
|
566
|
+
|
|
567
|
+
The agent validates that ARIA roles have their required attributes:
|
|
568
|
+
|
|
569
|
+
| Role | Required Attributes |
|
|
570
|
+
|------|---------------------|
|
|
571
|
+
| `checkbox` | `aria-checked` |
|
|
572
|
+
| `slider` | `aria-valuenow`, `aria-valuemin`, `aria-valuemax` |
|
|
573
|
+
| `combobox` | `aria-expanded`, `aria-controls` |
|
|
574
|
+
| `progressbar` | `aria-valuenow`, `aria-valuemin`, `aria-valuemax` |
|
|
575
|
+
| `tab` | `aria-selected` |
|
|
576
|
+
| `switch` | `aria-checked` |
|
|
577
|
+
|
|
578
|
+
### Accessibility Score
|
|
579
|
+
|
|
580
|
+
Each scan produces an **Accessibility Score** (0-100) based on issue severity:
|
|
581
|
+
|
|
582
|
+
```
|
|
583
|
+
═══════════════════════════════════════════════════
|
|
584
|
+
ACCESSIBILITY REVIEW: src/components/
|
|
585
|
+
═══════════════════════════════════════════════════
|
|
586
|
+
|
|
587
|
+
CRITICAL (2 issues)
|
|
588
|
+
───────────────────
|
|
589
|
+
[A11Y] Line 24: Icon-only button missing accessible name
|
|
590
|
+
<button><CloseIcon /></button>
|
|
591
|
+
Fix: Add aria-label="Close"
|
|
592
|
+
WCAG: 4.1.2 Name, Role, Value
|
|
593
|
+
|
|
594
|
+
SERIOUS (1 issue)
|
|
595
|
+
─────────────────
|
|
596
|
+
[A11Y] Line 48: Focus outline removed without replacement
|
|
597
|
+
className="outline-none"
|
|
598
|
+
Fix: Add focus-visible:ring-2 focus-visible:ring-offset-2
|
|
599
|
+
WCAG: 2.4.7 Focus Visible
|
|
600
|
+
|
|
601
|
+
MODERATE (2 issues)
|
|
602
|
+
───────────────────
|
|
603
|
+
[A11Y] Line 67: Skipped heading level: h1 to h3
|
|
604
|
+
<h3>Features</h3>
|
|
605
|
+
Fix: Use h2 after h1
|
|
606
|
+
WCAG: 2.4.6 Headings and Labels
|
|
607
|
+
|
|
608
|
+
═══════════════════════════════════════════════════
|
|
609
|
+
SUMMARY: 2 critical, 1 serious, 2 moderate
|
|
610
|
+
Score: 55/100
|
|
611
|
+
═══════════════════════════════════════════════════
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
### Usage
|
|
615
|
+
|
|
616
|
+
```bash
|
|
617
|
+
# Run accessibility scan
|
|
618
|
+
trie scan --agents accessibility
|
|
619
|
+
|
|
620
|
+
# Full UI scan (accessibility + design)
|
|
621
|
+
trie scan --agents accessibility,design-engineer
|
|
622
|
+
|
|
623
|
+
# MCP usage
|
|
624
|
+
trie_accessibility
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
---
|
|
628
|
+
|
|
504
629
|
## Moneybags Agent
|
|
505
630
|
|
|
506
631
|
The Moneybags agent answers the question every CFO asks: **"How much will this bug cost us?"**
|
|
@@ -933,6 +1058,33 @@ Every time you scan, Trie updates a file in your project (`.trie/AGENTS.md`) wit
|
|
|
933
1058
|
| Push to GitHub | CI/CD knows what to focus on |
|
|
934
1059
|
| Ask Trie "what should I fix?" | Gives prioritized answer based on your history |
|
|
935
1060
|
|
|
1061
|
+
### File Size Management
|
|
1062
|
+
|
|
1063
|
+
The context system uses automatic limits to prevent unbounded growth:
|
|
1064
|
+
|
|
1065
|
+
| Limit | Value | What Happens |
|
|
1066
|
+
|-------|-------|--------------|
|
|
1067
|
+
| Max tracked issues | 500 | Oldest issues pruned when exceeded |
|
|
1068
|
+
| Locations per issue | 5 | Only most recent locations kept |
|
|
1069
|
+
| Scan history | 20 scans | Older scan records removed |
|
|
1070
|
+
| Hot files | 10 files | Only top 10 shown |
|
|
1071
|
+
| Issue age | 30 days | Stale resolved issues pruned |
|
|
1072
|
+
|
|
1073
|
+
You don't need to manage this - Trie automatically prunes old data on each scan.
|
|
1074
|
+
|
|
1075
|
+
### Multiple Projects
|
|
1076
|
+
|
|
1077
|
+
Each project has its own isolated context:
|
|
1078
|
+
|
|
1079
|
+
| Scenario | How It Works |
|
|
1080
|
+
|----------|--------------|
|
|
1081
|
+
| Switch between projects | Each project has its own `.trie/` folder |
|
|
1082
|
+
| Clone on new machine | Context restored from committed `.trie/` files |
|
|
1083
|
+
| Monorepo with workspaces | Each workspace can have its own `.trie/` |
|
|
1084
|
+
| Team collaboration | Same context when pulling changes |
|
|
1085
|
+
|
|
1086
|
+
Trie auto-detects your project root by looking for `package.json`, `.git`, `Cargo.toml`, `go.mod`, or similar project indicators.
|
|
1087
|
+
|
|
936
1088
|
### For Developers: Technical Details
|
|
937
1089
|
|
|
938
1090
|
<details>
|
|
@@ -955,27 +1107,31 @@ Files stored:
|
|
|
955
1107
|
|
|
956
1108
|
## Production Shipping
|
|
957
1109
|
|
|
958
|
-
Trie solves the "last mile" of shipping to production
|
|
1110
|
+
Trie solves the "last mile" of shipping to production with the **Production Ready** agent.
|
|
959
1111
|
|
|
960
1112
|
### Quick Production Check
|
|
961
1113
|
|
|
962
1114
|
```bash
|
|
963
|
-
#
|
|
964
|
-
trie scan --agents
|
|
1115
|
+
# Run production readiness scan
|
|
1116
|
+
trie scan --agents production-ready
|
|
965
1117
|
|
|
966
|
-
#
|
|
967
|
-
|
|
1118
|
+
# Full production scan with cost analysis
|
|
1119
|
+
trie scan --agents production-ready,moneybags,security --users 10000
|
|
968
1120
|
```
|
|
969
1121
|
|
|
970
|
-
### What
|
|
1122
|
+
### What Production Ready Checks
|
|
971
1123
|
|
|
972
1124
|
| Area | What's Checked |
|
|
973
1125
|
|------|----------------|
|
|
974
|
-
| **
|
|
975
|
-
| **
|
|
976
|
-
| **
|
|
977
|
-
| **
|
|
978
|
-
| **
|
|
1126
|
+
| **Health Endpoints** | `/health`, `/ready`, `/live` endpoints for orchestrators |
|
|
1127
|
+
| **Graceful Shutdown** | SIGTERM handling, connection draining |
|
|
1128
|
+
| **Connection Pooling** | Database pool configuration |
|
|
1129
|
+
| **Security Headers** | CSP, HSTS, X-Frame-Options, etc. |
|
|
1130
|
+
| **Rate Limiting** | API rate limiting configuration |
|
|
1131
|
+
| **Monitoring** | Error tracking, APM integration |
|
|
1132
|
+
| **Session Storage** | External session store (not in-memory) |
|
|
1133
|
+
| **Error Handling** | Global error handlers, no empty catch blocks |
|
|
1134
|
+
| **Anti-patterns** | console.log, localhost URLs, TODO comments |
|
|
979
1135
|
|
|
980
1136
|
### CI/CD Gate
|
|
981
1137
|
|
|
@@ -984,7 +1140,7 @@ Add to your workflow:
|
|
|
984
1140
|
```yaml
|
|
985
1141
|
- uses: triedotdev/trie-action@v1
|
|
986
1142
|
with:
|
|
987
|
-
agents: security,privacy,
|
|
1143
|
+
agents: production-ready,security,privacy,moneybags
|
|
988
1144
|
fail-on: serious
|
|
989
1145
|
upload-sarif: true
|
|
990
1146
|
```
|