@triedotdev/mcp 1.0.33 → 1.0.34

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 CHANGED
@@ -4,6 +4,11 @@
4
4
 
5
5
  20 specialized agents scan your code for security, privacy, compliance, and bugs—all running in parallel with intelligent caching and real-time streaming.
6
6
 
7
+ ## What's New (latest updates)
8
+ - Slash-friendly commands: `/trie` and `/trie_<tool>` work the same as `trie`.
9
+ - Command palette: call `trie` with `action` to dispatch (scan, any agent, agent_smith, pr_review, watch, test, fix, explain, list_agents).
10
+ - Clear MCP naming: all tools are discoverable with `trie_*` prefixes while short aliases still work.
11
+
7
12
  ---
8
13
 
9
14
  ## Table of Contents
@@ -112,6 +117,12 @@ Run trie_security on this file
112
117
  Run trie_soc2 to check compliance
113
118
  ```
114
119
 
120
+ Slash-friendly command palette:
121
+
122
+ - `trie` or `/trie` shows the quick menu.
123
+ - `trie` / `/trie` with `{ action: "scan", files?: [], directory?: "" }` runs a full triaged scan.
124
+ - `trie` / `/trie` with `{ action: "<agent>", files?: [] }` runs one agent (e.g., `security`, `ux`, `soc2`, `agent_smith`).
125
+
115
126
  ### How It Works
116
127
 
117
128
  Trie generates **actionable reports** with high-confidence issues. It does not auto-fix code. Instead:
@@ -1339,9 +1339,75 @@ var DesignEngineerAgent = class extends BaseAgent {
1339
1339
  false
1340
1340
  ));
1341
1341
  }
1342
+ let violetCount = 0;
1343
+ for (const { hex } of colorsFound) {
1344
+ const rgb = this.hexToRgb(hex);
1345
+ if (!rgb) continue;
1346
+ const hue = this.rgbToHue(rgb.r, rgb.g, rgb.b);
1347
+ if (hue >= 250 && hue <= 310) violetCount++;
1348
+ }
1349
+ if (violetCount >= 3 && violetCount / colorsFound.length > 0.35) {
1350
+ issues.push(this.createIssue(
1351
+ this.generateIssueId(),
1352
+ "moderate",
1353
+ "Palette leans heavily on violet/purple \u2014 looks templated/AI-generated",
1354
+ "Use Josef Albers \u201CInteraction of Color\u201D approach: constrain to 1-2 hue families, anchor with neutrals, and build contrast via value/temperature shifts rather than piling on violet gradients.",
1355
+ file,
1356
+ void 0,
1357
+ 0.78,
1358
+ void 0,
1359
+ false
1360
+ ));
1361
+ }
1342
1362
  }
1343
1363
  return issues;
1344
1364
  }
1365
+ /**
1366
+ * Convert hex color to RGB
1367
+ */
1368
+ hexToRgb(hex) {
1369
+ const normalized = hex.replace("#", "");
1370
+ if (normalized.length === 3) {
1371
+ const r = parseInt(normalized[0] + normalized[0], 16);
1372
+ const g = parseInt(normalized[1] + normalized[1], 16);
1373
+ const b = parseInt(normalized[2] + normalized[2], 16);
1374
+ return { r, g, b };
1375
+ }
1376
+ if (normalized.length === 6) {
1377
+ const r = parseInt(normalized.slice(0, 2), 16);
1378
+ const g = parseInt(normalized.slice(2, 4), 16);
1379
+ const b = parseInt(normalized.slice(4, 6), 16);
1380
+ return { r, g, b };
1381
+ }
1382
+ return null;
1383
+ }
1384
+ /**
1385
+ * Calculate hue in degrees from RGB
1386
+ */
1387
+ rgbToHue(r, g, b) {
1388
+ const rNorm = r / 255;
1389
+ const gNorm = g / 255;
1390
+ const bNorm = b / 255;
1391
+ const max = Math.max(rNorm, gNorm, bNorm);
1392
+ const min = Math.min(rNorm, gNorm, bNorm);
1393
+ const delta = max - min;
1394
+ if (delta === 0) return 0;
1395
+ let hue;
1396
+ switch (max) {
1397
+ case rNorm:
1398
+ hue = (gNorm - bNorm) / delta % 6;
1399
+ break;
1400
+ case gNorm:
1401
+ hue = (bNorm - rNorm) / delta + 2;
1402
+ break;
1403
+ default:
1404
+ hue = (rNorm - gNorm) / delta + 4;
1405
+ break;
1406
+ }
1407
+ hue *= 60;
1408
+ if (hue < 0) hue += 360;
1409
+ return hue;
1410
+ }
1345
1411
  /**
1346
1412
  * Get a random modern palette recommendation
1347
1413
  */
@@ -1357,6 +1423,10 @@ var DesignEngineerAgent = class extends BaseAgent {
1357
1423
  const issues = [];
1358
1424
  const isReact = /from ['"]react['"]|import React/.test(content);
1359
1425
  const hasAnimations = /animation|transition|@keyframes|animate/i.test(content);
1426
+ const purposefulMotionSignals = hasAnimations || /hero|landing|modal|dialog|drawer|toast|tooltip|hover|scroll|parallax|reveal|transition|carousel|slider|gallery/i.test(content);
1427
+ if (!purposefulMotionSignals) {
1428
+ return issues;
1429
+ }
1360
1430
  if (isReact && !hasLibraries.has("framer-motion") && !hasLibraries.has("react-spring")) {
1361
1431
  if (/useState.*animation|setAnimation|isAnimating|animationState/i.test(content)) {
1362
1432
  issues.push(this.createIssue(
@@ -1842,6 +1912,13 @@ var DesignEngineerAgent = class extends BaseAgent {
1842
1912
  getAIEnhancementSystemPrompt() {
1843
1913
  return `You are an award-winning design engineer from a top creative agency (Linear, Vercel, Stripe caliber). You review code for Awwwards-level polish and Codrops-worthy effects.
1844
1914
 
1915
+ ## Guardrails: Design & Engineering Principles
1916
+ - Lead with user-centricity, clarity, and accessibility; animation is optional.
1917
+ - KISS and DRY: reduce complexity, prefer design tokens and reusable patterns.
1918
+ - Reliability and feedback: motion only when it improves understanding or state change.
1919
+ - Efficiency and sustainability: bias to stillness, avoid unnecessary paints/GPU work, honor prefers-reduced-motion.
1920
+ - Ethics and integrity: honest communication about capabilities, avoid dark patterns.
1921
+
1845
1922
  ## Color Analysis Priority
1846
1923
  Detect "AI slop" colors \u2014 the garish, oversaturated colors that AI tools generate:
1847
1924
  - Neon greens (#00ff00, #0f0)
@@ -1849,13 +1926,32 @@ Detect "AI slop" colors \u2014 the garish, oversaturated colors that AI tools ge
1849
1926
  - Hot magentas (#ff00ff, #f0f)
1850
1927
  - Pure saturated primaries
1851
1928
 
1852
- Replace with modern SaaS palettes from top sites (saaslandingpage.com, awwwards.com):
1929
+ Apply Josef Albers' "Interaction of Color":
1930
+ - Constrain to 1-2 hue families; anchor with neutrals (slate/zinc/stone).
1931
+ - Build contrast through value (light/dark) and temperature shifts, not saturation.
1932
+ - Test adjacency: colors must work in pairs/triads against neutral backgrounds.
1933
+ - Avoid overusing violet/purple gradients (common AI tell); explore original complements/analogous schemes.
1934
+
1935
+ Replace with modern SaaS palettes from top sites (saaslandingpage.com, awwwards.com), customized via Albers adjacency tests:
1853
1936
  - **Dark mode**: Vercel (#000, #0070f3), Linear (#000212, #5e6ad2), Stripe (#0a2540, #635bff)
1854
1937
  - **Light mode**: Notion (#fff, #f7f6f3, #2eaadc), Figma (#fff, #f5f5f5, #0d99ff), Framer (#fff, #0055ff)
1855
1938
  - **Neutral grays**: Use slate, zinc, or neutral scales, not flat grays
1856
1939
 
1940
+ ## Inspiration Sources (structured lookups)
1941
+ - Codrops Creative Hub (https://tympanus.net/codrops/hub/):
1942
+ - Tags to scan: scroll, hover, typography, cursor, WebGL, WebGPU, GSAP, Framer Motion, Three.js, grid, parallax, page transition, slider/carousel.
1943
+ - Use as inspiration for interaction patterns; keep accessibility, performance, reduced-motion.
1944
+ - Awwwards Directory (https://www.awwwards.com/directory/):
1945
+ - Benchmarks: Locomotive, Immersive Garden, Active Theory, Hello Monday, Resn, Obys, Build in Amsterdam.
1946
+ - Categories to map: animated websites, scrolling, one-page, interaction design, WebGL sites, 3D, GSAP, React, Framer.
1947
+ - Extract patterns (structure, choreography, feedback), not pixels; keep clarity, responsiveness, and performance.
1948
+
1857
1949
  ## Motion & Creative Effects
1858
- Recommend appropriate libraries based on project context:
1950
+ Recommend motion only when it improves comprehension or feedback; keep durations 150-300ms, ease-out preferred, and provide reduced-motion fallbacks. Prefer micro-interactions over showy effects.
1951
+ - Default to static if motion adds no clarity.
1952
+ - Ensure @media (prefers-reduced-motion) disables non-essential motion.
1953
+ - Prioritize transform/opacity over layout-changing properties.
1954
+ When warranted by context, suggest libraries:
1859
1955
  - **React projects**: Framer Motion (gestures, layout), React Spring (physics), Auto-Animate (quick wins)
1860
1956
  - **Complex timelines**: GSAP + ScrollTrigger, SplitText for character animations
1861
1957
  - **3D/WebGL**: React Three Fiber + Drei for hero sections, product showcases
@@ -5296,4 +5392,4 @@ export {
5296
5392
  CustomAgent,
5297
5393
  getAgentRegistry
5298
5394
  };
5299
- //# sourceMappingURL=chunk-IYWVUUJU.js.map
5395
+ //# sourceMappingURL=chunk-3NXWEJUV.js.map