@kevinrabun/judges 3.100.0 → 3.102.0

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 (78) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +126 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/finding-batch-suppress.d.ts +5 -0
  6. package/dist/commands/finding-batch-suppress.d.ts.map +1 -0
  7. package/dist/commands/finding-batch-suppress.js +86 -0
  8. package/dist/commands/finding-batch-suppress.js.map +1 -0
  9. package/dist/commands/finding-dependency-link.d.ts +5 -0
  10. package/dist/commands/finding-dependency-link.d.ts.map +1 -0
  11. package/dist/commands/finding-dependency-link.js +74 -0
  12. package/dist/commands/finding-dependency-link.js.map +1 -0
  13. package/dist/commands/finding-ownership-assign.d.ts +5 -0
  14. package/dist/commands/finding-ownership-assign.d.ts.map +1 -0
  15. package/dist/commands/finding-ownership-assign.js +102 -0
  16. package/dist/commands/finding-ownership-assign.js.map +1 -0
  17. package/dist/commands/finding-recurrence-detect.d.ts +5 -0
  18. package/dist/commands/finding-recurrence-detect.d.ts.map +1 -0
  19. package/dist/commands/finding-recurrence-detect.js +78 -0
  20. package/dist/commands/finding-recurrence-detect.js.map +1 -0
  21. package/dist/commands/finding-search-index.d.ts +5 -0
  22. package/dist/commands/finding-search-index.d.ts.map +1 -0
  23. package/dist/commands/finding-search-index.js +100 -0
  24. package/dist/commands/finding-search-index.js.map +1 -0
  25. package/dist/commands/finding-severity-drift.d.ts +5 -0
  26. package/dist/commands/finding-severity-drift.d.ts.map +1 -0
  27. package/dist/commands/finding-severity-drift.js +93 -0
  28. package/dist/commands/finding-severity-drift.js.map +1 -0
  29. package/dist/commands/review-access-log.d.ts +5 -0
  30. package/dist/commands/review-access-log.d.ts.map +1 -0
  31. package/dist/commands/review-access-log.js +66 -0
  32. package/dist/commands/review-access-log.js.map +1 -0
  33. package/dist/commands/review-archive-search.d.ts +5 -0
  34. package/dist/commands/review-archive-search.d.ts.map +1 -0
  35. package/dist/commands/review-archive-search.js +71 -0
  36. package/dist/commands/review-archive-search.js.map +1 -0
  37. package/dist/commands/review-branch-policy.d.ts +5 -0
  38. package/dist/commands/review-branch-policy.d.ts.map +1 -0
  39. package/dist/commands/review-branch-policy.js +103 -0
  40. package/dist/commands/review-branch-policy.js.map +1 -0
  41. package/dist/commands/review-custom-judge-config.d.ts +5 -0
  42. package/dist/commands/review-custom-judge-config.d.ts.map +1 -0
  43. package/dist/commands/review-custom-judge-config.js +104 -0
  44. package/dist/commands/review-custom-judge-config.js.map +1 -0
  45. package/dist/commands/review-incident-link.d.ts +5 -0
  46. package/dist/commands/review-incident-link.d.ts.map +1 -0
  47. package/dist/commands/review-incident-link.js +94 -0
  48. package/dist/commands/review-incident-link.js.map +1 -0
  49. package/dist/commands/review-integration-health.d.ts +5 -0
  50. package/dist/commands/review-integration-health.d.ts.map +1 -0
  51. package/dist/commands/review-integration-health.js +85 -0
  52. package/dist/commands/review-integration-health.js.map +1 -0
  53. package/dist/commands/review-metric-export.d.ts +5 -0
  54. package/dist/commands/review-metric-export.d.ts.map +1 -0
  55. package/dist/commands/review-metric-export.js +63 -0
  56. package/dist/commands/review-metric-export.js.map +1 -0
  57. package/dist/commands/review-notification-digest.d.ts +5 -0
  58. package/dist/commands/review-notification-digest.d.ts.map +1 -0
  59. package/dist/commands/review-notification-digest.js +65 -0
  60. package/dist/commands/review-notification-digest.js.map +1 -0
  61. package/dist/commands/review-pr-comment-gen.d.ts +5 -0
  62. package/dist/commands/review-pr-comment-gen.d.ts.map +1 -0
  63. package/dist/commands/review-pr-comment-gen.js +63 -0
  64. package/dist/commands/review-pr-comment-gen.js.map +1 -0
  65. package/dist/commands/review-quality-trend.d.ts +5 -0
  66. package/dist/commands/review-quality-trend.d.ts.map +1 -0
  67. package/dist/commands/review-quality-trend.js +58 -0
  68. package/dist/commands/review-quality-trend.js.map +1 -0
  69. package/dist/commands/review-role-assignment.d.ts +5 -0
  70. package/dist/commands/review-role-assignment.d.ts.map +1 -0
  71. package/dist/commands/review-role-assignment.js +99 -0
  72. package/dist/commands/review-role-assignment.js.map +1 -0
  73. package/dist/commands/review-tag-manager.d.ts +5 -0
  74. package/dist/commands/review-tag-manager.d.ts.map +1 -0
  75. package/dist/commands/review-tag-manager.js +129 -0
  76. package/dist/commands/review-tag-manager.js.map +1 -0
  77. package/package.json +1 -1
  78. package/server.json +2 -2
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Review-tag-manager — Manage tags for reviews and findings.
3
+ */
4
+ import { readFileSync, writeFileSync, existsSync } from "fs";
5
+ // ─── CLI ────────────────────────────────────────────────────────────────────
6
+ export function runReviewTagManager(argv) {
7
+ const storeIdx = argv.indexOf("--store");
8
+ const storePath = storeIdx >= 0 ? argv[storeIdx + 1] : ".judges-tags.json";
9
+ const formatIdx = argv.indexOf("--format");
10
+ const format = formatIdx >= 0 ? argv[formatIdx + 1] : "table";
11
+ const addIdx = argv.indexOf("--add");
12
+ const addTag = addIdx >= 0 ? argv[addIdx + 1] : "";
13
+ const removeIdx = argv.indexOf("--remove");
14
+ const removeTag = removeIdx >= 0 ? argv[removeIdx + 1] : "";
15
+ const descIdx = argv.indexOf("--description");
16
+ const desc = descIdx >= 0 ? argv[descIdx + 1] : "";
17
+ const initMode = argv.includes("--init");
18
+ if (argv.includes("--help") || argv.includes("-h")) {
19
+ console.log(`
20
+ judges review-tag-manager — Manage review tags
21
+
22
+ Usage:
23
+ judges review-tag-manager [--store <path>] [--format table|json]
24
+ judges review-tag-manager --init [--store <path>]
25
+ judges review-tag-manager --add <name> [--description <text>] [--store <path>]
26
+ judges review-tag-manager --remove <name> [--store <path>]
27
+
28
+ Options:
29
+ --store <path> Tag store (default: .judges-tags.json)
30
+ --init Create default tag set
31
+ --add <name> Add a tag
32
+ --remove <name> Remove a tag
33
+ --description <text> Tag description (with --add)
34
+ --format <fmt> Output format: table (default), json
35
+ --help, -h Show this help
36
+ `);
37
+ return;
38
+ }
39
+ if (initMode) {
40
+ const defaultStore = {
41
+ tags: [
42
+ {
43
+ name: "security",
44
+ color: "red",
45
+ description: "Security-related findings",
46
+ createdAt: new Date().toISOString(),
47
+ usageCount: 0,
48
+ },
49
+ {
50
+ name: "performance",
51
+ color: "orange",
52
+ description: "Performance issues",
53
+ createdAt: new Date().toISOString(),
54
+ usageCount: 0,
55
+ },
56
+ {
57
+ name: "quality",
58
+ color: "blue",
59
+ description: "Code quality findings",
60
+ createdAt: new Date().toISOString(),
61
+ usageCount: 0,
62
+ },
63
+ {
64
+ name: "compliance",
65
+ color: "purple",
66
+ description: "Compliance-related",
67
+ createdAt: new Date().toISOString(),
68
+ usageCount: 0,
69
+ },
70
+ ],
71
+ lastUpdated: new Date().toISOString(),
72
+ };
73
+ writeFileSync(storePath, JSON.stringify(defaultStore, null, 2));
74
+ console.log(`Created default tag store: ${storePath}`);
75
+ return;
76
+ }
77
+ if (!existsSync(storePath)) {
78
+ console.log(`No tag store found at: ${storePath}`);
79
+ console.log("Run with --init to create one.");
80
+ return;
81
+ }
82
+ const store = JSON.parse(readFileSync(storePath, "utf-8"));
83
+ if (addTag) {
84
+ const exists = store.tags.some((t) => t.name === addTag);
85
+ if (exists) {
86
+ console.error(`Tag already exists: ${addTag}`);
87
+ process.exitCode = 1;
88
+ return;
89
+ }
90
+ store.tags.push({
91
+ name: addTag,
92
+ color: "gray",
93
+ description: desc || addTag,
94
+ createdAt: new Date().toISOString(),
95
+ usageCount: 0,
96
+ });
97
+ store.lastUpdated = new Date().toISOString();
98
+ writeFileSync(storePath, JSON.stringify(store, null, 2));
99
+ console.log(`Added tag: ${addTag}`);
100
+ return;
101
+ }
102
+ if (removeTag) {
103
+ const idx = store.tags.findIndex((t) => t.name === removeTag);
104
+ if (idx < 0) {
105
+ console.error(`Tag not found: ${removeTag}`);
106
+ process.exitCode = 1;
107
+ return;
108
+ }
109
+ store.tags.splice(idx, 1);
110
+ store.lastUpdated = new Date().toISOString();
111
+ writeFileSync(storePath, JSON.stringify(store, null, 2));
112
+ console.log(`Removed tag: ${removeTag}`);
113
+ return;
114
+ }
115
+ if (format === "json") {
116
+ console.log(JSON.stringify(store, null, 2));
117
+ return;
118
+ }
119
+ console.log("\nReview Tags");
120
+ console.log("═".repeat(60));
121
+ console.log(` ${"Name".padEnd(18)} ${"Color".padEnd(10)} ${"Usage".padEnd(8)} Description`);
122
+ console.log(" " + "─".repeat(55));
123
+ for (const t of store.tags) {
124
+ console.log(` ${t.name.padEnd(18)} ${t.color.padEnd(10)} ${String(t.usageCount).padEnd(8)} ${t.description}`);
125
+ }
126
+ console.log(`\n Total tags: ${store.tags.length}`);
127
+ console.log("═".repeat(60));
128
+ }
129
+ //# sourceMappingURL=review-tag-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-tag-manager.js","sourceRoot":"","sources":["../../src/commands/review-tag-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kevinrabun/judges",
3
- "version": "3.100.0",
3
+ "version": "3.102.0",
4
4
  "description": "45 specialized judges that evaluate AI-generated code for security, cost, and quality.",
5
5
  "mcpName": "io.github.KevinRabun/judges",
6
6
  "type": "module",
package/server.json CHANGED
@@ -7,12 +7,12 @@
7
7
  "url": "https://github.com/kevinrabun/judges",
8
8
  "source": "github"
9
9
  },
10
- "version": "3.100.0",
10
+ "version": "3.102.0",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "@kevinrabun/judges",
15
- "version": "3.100.0",
15
+ "version": "3.102.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  }