@triedotdev/mcp 1.0.79 → 1.0.80

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 (39) hide show
  1. package/README.md +27 -2
  2. package/dist/{chunk-UPKBO5EM.js → chunk-432E2RYB.js} +29 -20
  3. package/dist/chunk-432E2RYB.js.map +1 -0
  4. package/dist/{chunk-RRDDAD5N.js → chunk-45NUFTNV.js} +6 -6
  5. package/dist/{chunk-35FAFFHE.js → chunk-75J4HQTD.js} +2 -2
  6. package/dist/{chunk-53URTRWH.js → chunk-D3F7VKCN.js} +2 -2
  7. package/dist/{chunk-P6VLSYXN.js → chunk-EWIEXQES.js} +2 -2
  8. package/dist/{chunk-LNLLZQWH.js → chunk-KCAWTZ7P.js} +12 -11
  9. package/dist/{chunk-LNLLZQWH.js.map → chunk-KCAWTZ7P.js.map} +1 -1
  10. package/dist/{chunk-3RKY55HZ.js → chunk-LKXDJESG.js} +671 -81
  11. package/dist/chunk-LKXDJESG.js.map +1 -0
  12. package/dist/{chunk-AIC4HOOQ.js → chunk-U5P3O5G5.js} +3 -3
  13. package/dist/{chunk-6QKDEGWR.js → chunk-WGECLUDQ.js} +4 -4
  14. package/dist/chunk-WGECLUDQ.js.map +1 -0
  15. package/dist/cli/main.js +115 -7
  16. package/dist/cli/main.js.map +1 -1
  17. package/dist/cli/yolo-daemon.js +8 -8
  18. package/dist/{goal-manager-NI4LJ2SX.js → goal-manager-NHPEUWFY.js} +4 -4
  19. package/dist/{guardian-agent-R5HX7UWJ.js → guardian-agent-UPLAQWJK.js} +6 -6
  20. package/dist/index.js +39 -41
  21. package/dist/index.js.map +1 -1
  22. package/dist/{issue-store-MULGOF6B.js → issue-store-RKJVOKSJ.js} +2 -2
  23. package/dist/ui/memory-viewer.html +4 -4
  24. package/dist/ui/pr-review.html +4 -4
  25. package/dist/ui/scan-dashboard.html +4 -4
  26. package/dist/ui/visual-qa.html +4 -4
  27. package/dist/workers/agent-worker.js +3 -3
  28. package/package.json +1 -1
  29. package/dist/chunk-3RKY55HZ.js.map +0 -1
  30. package/dist/chunk-6QKDEGWR.js.map +0 -1
  31. package/dist/chunk-UPKBO5EM.js.map +0 -1
  32. /package/dist/{chunk-RRDDAD5N.js.map → chunk-45NUFTNV.js.map} +0 -0
  33. /package/dist/{chunk-35FAFFHE.js.map → chunk-75J4HQTD.js.map} +0 -0
  34. /package/dist/{chunk-53URTRWH.js.map → chunk-D3F7VKCN.js.map} +0 -0
  35. /package/dist/{chunk-P6VLSYXN.js.map → chunk-EWIEXQES.js.map} +0 -0
  36. /package/dist/{chunk-AIC4HOOQ.js.map → chunk-U5P3O5G5.js.map} +0 -0
  37. /package/dist/{goal-manager-NI4LJ2SX.js.map → goal-manager-NHPEUWFY.js.map} +0 -0
  38. /package/dist/{guardian-agent-R5HX7UWJ.js.map → guardian-agent-UPLAQWJK.js.map} +0 -0
  39. /package/dist/{issue-store-MULGOF6B.js.map → issue-store-RKJVOKSJ.js.map} +0 -0
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Trie: Trainable AI Agent for Maintaining AI-generated Codebases
1
+ # Trie: Trainable AI Agent for Maintaining AI-Generated Codebases
2
2
 
3
3
  **A trainable AI agent that watches all of your codebases, learns from your incidents, and prevents repeat bugs before they ship.**
4
4
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  ## What Trie Does
8
8
 
9
- - **Central skill repository**: One place for all your skills — carry context and rules across Cursor, Claude, VS Code, CLI, and CI/CD
9
+ - **Central skill repository**: One place for all your skills — carry context and rules across Cursor, Claude, VS Code, CLI, and CI/CD. Unlike running skills with Claude Code, Trie will check for anything malicious before you run them.
10
10
  - **Sets and tracks goals**: "Reduce login bugs by 50%" then actually measures progress and celebrates wins
11
11
  - **Tests your theories**: "Mondays have more bugs" — Trie validates with real data and builds confidence over time
12
12
  - **Learns from your incidents**: Train it on your specific patterns, not generic rules that don't fit your prompting
@@ -390,6 +390,8 @@ trie memory purge resolved
390
390
  trie memory purge old --days=90
391
391
  ```
392
392
 
393
+ **What happens at the 10,000 issue cap:** Trie will deduplicate new repeats, compact older issues into summaries, and if it still exceeds the cap it will prune the oldest/lowest-value issues (it does not “overwrite” in place).
394
+
393
395
  ## Custom Skills
394
396
 
395
397
  ### Adding External Skills
@@ -402,6 +404,29 @@ trie skill install anthropic/typescript-patterns
402
404
  trie skill install username/repo-name
403
405
  ```
404
406
 
407
+ ### Security & Safe Installation
408
+
409
+ **Trie automatically scans all skills for security risks before installation.**
410
+
411
+ When installing skills:
412
+ - Skills are scanned for malicious patterns
413
+ - Critical risks flagged with strong warnings
414
+ - High risks flagged with warnings
415
+ - **Shell commands Trie runs are logged** to `.trie/audit/` (e.g. skill install `git clone`, PR review `git/gh`, skill gating `which/where`, file picker helpers)
416
+
417
+ ```bash
418
+ # View audit logs
419
+ trie audit logs
420
+
421
+ # View security info for installed skill
422
+ trie skills info skill-name
423
+ ```
424
+
425
+ **Best Practices:**
426
+ - Only install from trusted sources (verified organizations)
427
+ - Review security warnings and all .md carefully before using
428
+ - Check audit logs periodically: `trie audit stats` (and investigate anything unexpected with `trie audit skill <name>`)
429
+
405
430
  ### Creating Your Own Skills
406
431
  ```bash
407
432
  # Create from documentation
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  SlackIntegration,
8
8
  getGuardian
9
- } from "./chunk-RRDDAD5N.js";
9
+ } from "./chunk-45NUFTNV.js";
10
10
  import {
11
11
  Executor,
12
12
  Triager,
@@ -16,10 +16,10 @@ import {
16
16
  getSkillsByCategory,
17
17
  isGitRepo,
18
18
  isTrieInitialized
19
- } from "./chunk-LNLLZQWH.js";
19
+ } from "./chunk-KCAWTZ7P.js";
20
20
  import {
21
21
  getGuardianState
22
- } from "./chunk-35FAFFHE.js";
22
+ } from "./chunk-75J4HQTD.js";
23
23
  import {
24
24
  createSkillFromFile,
25
25
  getSkillRegistry,
@@ -28,11 +28,12 @@ import {
28
28
  listInstalledSkills,
29
29
  loadContextState,
30
30
  removeGlobalSkill,
31
+ runShellCommand,
31
32
  updateContextAfterScan
32
- } from "./chunk-3RKY55HZ.js";
33
+ } from "./chunk-LKXDJESG.js";
33
34
  import {
34
35
  findCrossProjectPatterns
35
- } from "./chunk-P6VLSYXN.js";
36
+ } from "./chunk-EWIEXQES.js";
36
37
  import {
37
38
  Trie
38
39
  } from "./chunk-6NLHFIYA.js";
@@ -47,7 +48,7 @@ import {
47
48
  getMemoryStats,
48
49
  getRecentIssues,
49
50
  searchIssues
50
- } from "./chunk-6QKDEGWR.js";
51
+ } from "./chunk-WGECLUDQ.js";
51
52
  import {
52
53
  getWorkingDirectory
53
54
  } from "./chunk-CM7EHNQK.js";
@@ -305,10 +306,7 @@ import { join, basename } from "path";
305
306
  import pc from "picocolors";
306
307
 
307
308
  // src/utils/file-picker.ts
308
- import { exec } from "child_process";
309
- import { promisify } from "util";
310
309
  import { platform } from "os";
311
- var execAsync = promisify(exec);
312
310
  async function openFilePicker(options = {}) {
313
311
  const os = platform();
314
312
  try {
@@ -357,10 +355,11 @@ async function openMacOSFilePicker(options) {
357
355
  return POSIX path of selectedFile
358
356
  `.trim();
359
357
  try {
360
- const { stdout, stderr } = await execAsync(`osascript -e '${script.replace(/'/g, `'"'"'`)}'`, {
361
- timeout: 12e4
362
- // 2 minute timeout for user to select
363
- });
358
+ const { stdout, stderr } = await runShellCommand(
359
+ `osascript -e '${script.replace(/'/g, `'"'"'`)}'`,
360
+ { actor: "internal:file-picker", triggeredBy: "manual", targetPath: getWorkingDirectory(void 0, true) },
361
+ { timeoutMs: 12e4, captureOutput: false }
362
+ );
364
363
  if (stderr && stderr.includes("User canceled")) {
365
364
  return { success: false, cancelled: true };
366
365
  }
@@ -391,7 +390,11 @@ async function openLinuxFilePicker(options) {
391
390
  ];
392
391
  for (const cmd of commands) {
393
392
  try {
394
- const { stdout } = await execAsync(cmd, { timeout: 12e4 });
393
+ const { stdout } = await runShellCommand(
394
+ cmd,
395
+ { actor: "internal:file-picker", triggeredBy: "manual", targetPath: getWorkingDirectory(void 0, true) },
396
+ { timeoutMs: 12e4, captureOutput: false }
397
+ );
395
398
  const path = stdout.trim();
396
399
  if (path) {
397
400
  return { success: true, path };
@@ -423,9 +426,11 @@ async function openWindowsFilePicker(options) {
423
426
  }
424
427
  `.trim().replace(/\n/g, "; ");
425
428
  try {
426
- const { stdout } = await execAsync(`powershell -Command "${script}"`, {
427
- timeout: 12e4
428
- });
429
+ const { stdout } = await runShellCommand(
430
+ `powershell -Command "${script}"`,
431
+ { actor: "internal:file-picker", triggeredBy: "manual", targetPath: getWorkingDirectory(void 0, true) },
432
+ { timeoutMs: 12e4, captureOutput: false }
433
+ );
429
434
  const path = stdout.trim();
430
435
  if (path) {
431
436
  return { success: true, path };
@@ -442,7 +447,11 @@ async function isFilePickerAvailable() {
442
447
  return true;
443
448
  case "linux":
444
449
  try {
445
- await execAsync("which zenity || which kdialog || which yad");
450
+ await runShellCommand(
451
+ "which zenity || which kdialog || which yad",
452
+ { actor: "internal:file-picker", triggeredBy: "manual", targetPath: getWorkingDirectory(void 0, true) },
453
+ { captureOutput: false }
454
+ );
446
455
  return true;
447
456
  } catch {
448
457
  return false;
@@ -3382,7 +3391,7 @@ var InteractiveDashboard = class {
3382
3391
  */
3383
3392
  async measureSemanticGoalBaseline(description, workDir) {
3384
3393
  try {
3385
- const { searchIssues: searchIssues2 } = await import("./issue-store-MULGOF6B.js");
3394
+ const { searchIssues: searchIssues2 } = await import("./issue-store-RKJVOKSJ.js");
3386
3395
  const issues = await searchIssues2("", {
3387
3396
  workDir,
3388
3397
  limit: 1e3,
@@ -10405,4 +10414,4 @@ export {
10405
10414
  InteractiveDashboard,
10406
10415
  TrieScanTool
10407
10416
  };
10408
- //# sourceMappingURL=chunk-UPKBO5EM.js.map
10417
+ //# sourceMappingURL=chunk-432E2RYB.js.map