@triedotdev/mcp 1.0.93 → 1.0.94

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 (71) hide show
  1. package/dist/{agent-smith-QYDXPFPJ.js → agent-smith-MYQ35URL.js} +5 -5
  2. package/dist/{agent-smith-runner-GXGDJTSR.js → agent-smith-runner-4TBONXCP.js} +5 -5
  3. package/dist/cache-manager-RMPRPD5T.js +10 -0
  4. package/dist/{chunk-YTJXD664.js → chunk-AZRCKBGF.js} +8 -8
  5. package/dist/{chunk-NMGINYYX.js → chunk-CKM6A3G6.js} +4 -4
  6. package/dist/{chunk-BG2BHWCC.js → chunk-E2ZATINO.js} +10 -10
  7. package/dist/{chunk-LT7MKIXU.js → chunk-FFWNZUG2.js} +2 -2
  8. package/dist/{chunk-IOUOVBJZ.js → chunk-FK6DQKDY.js} +2 -2
  9. package/dist/{chunk-MZI46HQT.js → chunk-HLSBTOVE.js} +8 -8
  10. package/dist/{chunk-MURGTWG4.js → chunk-IFGF33R5.js} +2 -2
  11. package/dist/{chunk-R6AUYN3R.js → chunk-IIF5XDCJ.js} +47 -21
  12. package/dist/chunk-IIF5XDCJ.js.map +1 -0
  13. package/dist/chunk-JAAIHNOE.js +298 -0
  14. package/dist/chunk-JAAIHNOE.js.map +1 -0
  15. package/dist/{chunk-5Z7O66DE.js → chunk-JO6RVXS6.js} +2 -2
  16. package/dist/{chunk-74NPKTZV.js → chunk-ODWDESYP.js} +2 -2
  17. package/dist/{chunk-LP4MVJDW.js → chunk-OEYIOOYB.js} +2 -2
  18. package/dist/{chunk-SJFJ6GLR.js → chunk-OWBWNXSC.js} +2 -2
  19. package/dist/{chunk-CUXXRM3T.js → chunk-Q764X2WD.js} +7 -7
  20. package/dist/{chunk-HFQ5ORON.js → chunk-RE6ZWXJC.js} +3 -3
  21. package/dist/{chunk-KWDNYWOR.js → chunk-RNJ6JKMA.js} +4 -4
  22. package/dist/{chunk-T5UOH56R.js → chunk-RYRVEO2B.js} +3 -3
  23. package/dist/{chunk-LVVG2DMW.js → chunk-STEFLYPR.js} +2 -2
  24. package/dist/{chunk-RDOJCRKJ.js → chunk-WT3XQCG2.js} +2 -2
  25. package/dist/{chunk-F55XBLIA.js → chunk-Y62VM3ER.js} +6 -6
  26. package/dist/cli/create-agent.js +3 -3
  27. package/dist/cli/main.js +16 -16
  28. package/dist/cli/yolo-daemon.js +18 -18
  29. package/dist/{git-PZV3BBYI.js → git-45LZUUYA.js} +5 -5
  30. package/dist/{goal-manager-ESJCJXFS.js → goal-manager-HOZ7R2QV.js} +6 -6
  31. package/dist/guardian-agent-RB2UQP5V.js +21 -0
  32. package/dist/index.js +25 -25
  33. package/dist/{issue-store-JZ2LCQEG.js → issue-store-DXIOP6AK.js} +4 -4
  34. package/dist/{progress-PH6NNWZM.js → progress-LHI66U7B.js} +2 -2
  35. package/dist/{vibe-code-signatures-K4UIWKJZ.js → vibe-code-signatures-C5A4BHXD.js} +3 -3
  36. package/dist/{vulnerability-signatures-ZKVLMBRG.js → vulnerability-signatures-SVIHJQO5.js} +3 -3
  37. package/dist/workers/agent-worker.js +9 -9
  38. package/package.json +1 -1
  39. package/dist/cache-manager-7SKX3IGO.js +0 -10
  40. package/dist/chunk-D25EIBPO.js +0 -183
  41. package/dist/chunk-D25EIBPO.js.map +0 -1
  42. package/dist/chunk-R6AUYN3R.js.map +0 -1
  43. package/dist/guardian-agent-ZHJXLBOU.js +0 -21
  44. /package/dist/{agent-smith-QYDXPFPJ.js.map → agent-smith-MYQ35URL.js.map} +0 -0
  45. /package/dist/{agent-smith-runner-GXGDJTSR.js.map → agent-smith-runner-4TBONXCP.js.map} +0 -0
  46. /package/dist/{cache-manager-7SKX3IGO.js.map → cache-manager-RMPRPD5T.js.map} +0 -0
  47. /package/dist/{chunk-YTJXD664.js.map → chunk-AZRCKBGF.js.map} +0 -0
  48. /package/dist/{chunk-NMGINYYX.js.map → chunk-CKM6A3G6.js.map} +0 -0
  49. /package/dist/{chunk-BG2BHWCC.js.map → chunk-E2ZATINO.js.map} +0 -0
  50. /package/dist/{chunk-LT7MKIXU.js.map → chunk-FFWNZUG2.js.map} +0 -0
  51. /package/dist/{chunk-IOUOVBJZ.js.map → chunk-FK6DQKDY.js.map} +0 -0
  52. /package/dist/{chunk-MZI46HQT.js.map → chunk-HLSBTOVE.js.map} +0 -0
  53. /package/dist/{chunk-MURGTWG4.js.map → chunk-IFGF33R5.js.map} +0 -0
  54. /package/dist/{chunk-5Z7O66DE.js.map → chunk-JO6RVXS6.js.map} +0 -0
  55. /package/dist/{chunk-74NPKTZV.js.map → chunk-ODWDESYP.js.map} +0 -0
  56. /package/dist/{chunk-LP4MVJDW.js.map → chunk-OEYIOOYB.js.map} +0 -0
  57. /package/dist/{chunk-SJFJ6GLR.js.map → chunk-OWBWNXSC.js.map} +0 -0
  58. /package/dist/{chunk-CUXXRM3T.js.map → chunk-Q764X2WD.js.map} +0 -0
  59. /package/dist/{chunk-HFQ5ORON.js.map → chunk-RE6ZWXJC.js.map} +0 -0
  60. /package/dist/{chunk-KWDNYWOR.js.map → chunk-RNJ6JKMA.js.map} +0 -0
  61. /package/dist/{chunk-T5UOH56R.js.map → chunk-RYRVEO2B.js.map} +0 -0
  62. /package/dist/{chunk-LVVG2DMW.js.map → chunk-STEFLYPR.js.map} +0 -0
  63. /package/dist/{chunk-RDOJCRKJ.js.map → chunk-WT3XQCG2.js.map} +0 -0
  64. /package/dist/{chunk-F55XBLIA.js.map → chunk-Y62VM3ER.js.map} +0 -0
  65. /package/dist/{git-PZV3BBYI.js.map → git-45LZUUYA.js.map} +0 -0
  66. /package/dist/{goal-manager-ESJCJXFS.js.map → goal-manager-HOZ7R2QV.js.map} +0 -0
  67. /package/dist/{guardian-agent-ZHJXLBOU.js.map → guardian-agent-RB2UQP5V.js.map} +0 -0
  68. /package/dist/{issue-store-JZ2LCQEG.js.map → issue-store-DXIOP6AK.js.map} +0 -0
  69. /package/dist/{progress-PH6NNWZM.js.map → progress-LHI66U7B.js.map} +0 -0
  70. /package/dist/{vibe-code-signatures-K4UIWKJZ.js.map → vibe-code-signatures-C5A4BHXD.js.map} +0 -0
  71. /package/dist/{vulnerability-signatures-ZKVLMBRG.js.map → vulnerability-signatures-SVIHJQO5.js.map} +0 -0
@@ -0,0 +1,298 @@
1
+ // src/utils/progress.ts
2
+ var _interactiveMode = false;
3
+ function setInteractiveMode(enabled) {
4
+ _interactiveMode = enabled;
5
+ }
6
+ function isInteractiveMode() {
7
+ return _interactiveMode;
8
+ }
9
+ var ProgressReporter = class {
10
+ currentPhase = "init";
11
+ startTime = Date.now();
12
+ phaseStartTime = Date.now();
13
+ verbose;
14
+ constructor(options = {}) {
15
+ this.verbose = options.verbose ?? true;
16
+ }
17
+ /**
18
+ * Report a status update
19
+ */
20
+ report(message, detail) {
21
+ if (!this.verbose || _interactiveMode) return;
22
+ const prefix = this.getPhaseIcon(this.currentPhase);
23
+ const fullMessage = detail ? `${message}: ${detail}` : message;
24
+ console.error(`${prefix} ${fullMessage}`);
25
+ }
26
+ /**
27
+ * Start a new phase
28
+ */
29
+ startPhase(phase, message) {
30
+ this.currentPhase = phase;
31
+ this.phaseStartTime = Date.now();
32
+ this.report(message);
33
+ }
34
+ /**
35
+ * Update within current phase
36
+ */
37
+ update(message, detail) {
38
+ this.report(message, detail);
39
+ }
40
+ /**
41
+ * Report progress on a file
42
+ */
43
+ file(action, filePath) {
44
+ const fileName = filePath.split("/").pop() || filePath;
45
+ this.report(action, fileName);
46
+ }
47
+ /**
48
+ * Report an AI analysis step
49
+ */
50
+ ai(action, context) {
51
+ if (_interactiveMode) return;
52
+ const prefix = "[AI]";
53
+ const message = context ? `${action}: ${context}` : action;
54
+ console.error(`${prefix} ${message}`);
55
+ }
56
+ /**
57
+ * Report a finding
58
+ */
59
+ finding(severity, message) {
60
+ if (_interactiveMode) return;
61
+ const labels = {
62
+ critical: "[CRITICAL]",
63
+ serious: "[SERIOUS]",
64
+ moderate: "[MODERATE]",
65
+ low: "[LOW]"
66
+ };
67
+ console.error(` ${labels[severity]} ${message}`);
68
+ }
69
+ /**
70
+ * Complete current phase
71
+ */
72
+ completePhase(summary) {
73
+ const elapsed = Date.now() - this.phaseStartTime;
74
+ this.report(`Done: ${summary}`, `(${elapsed}ms)`);
75
+ }
76
+ /**
77
+ * Complete the entire operation
78
+ */
79
+ complete(summary) {
80
+ if (_interactiveMode) return;
81
+ const totalElapsed = Date.now() - this.startTime;
82
+ console.error("");
83
+ console.error(`----------------------------------------`);
84
+ console.error(`[COMPLETE] ${summary}`);
85
+ console.error(` Total time: ${(totalElapsed / 1e3).toFixed(2)}s`);
86
+ console.error(`----------------------------------------`);
87
+ console.error("");
88
+ }
89
+ /**
90
+ * Report an error
91
+ */
92
+ error(message, detail) {
93
+ if (_interactiveMode) return;
94
+ const fullMessage = detail ? `${message}: ${detail}` : message;
95
+ console.error(`[ERROR] ${fullMessage}`);
96
+ }
97
+ /**
98
+ * Report a warning
99
+ */
100
+ warn(message, detail) {
101
+ if (_interactiveMode) return;
102
+ const fullMessage = detail ? `${message}: ${detail}` : message;
103
+ console.error(`[WARN] ${fullMessage}`);
104
+ }
105
+ /**
106
+ * Get icon for current phase
107
+ */
108
+ getPhaseIcon(phase) {
109
+ const icons = {
110
+ "init": ">>",
111
+ "discovery": ">>",
112
+ "reading": ">>",
113
+ "analyzing": ">>",
114
+ "ai-review": "[AI]",
115
+ "prioritizing": ">>",
116
+ "complete": "[OK]"
117
+ };
118
+ return icons[phase] || ">>";
119
+ }
120
+ /**
121
+ * Create a sub-reporter for a specific agent
122
+ */
123
+ forAgent(agentName) {
124
+ return new AgentProgressReporter(agentName, this.verbose);
125
+ }
126
+ };
127
+ var AgentProgressReporter = class {
128
+ agentName;
129
+ verbose;
130
+ issueCount = 0;
131
+ issuesBySeverity = /* @__PURE__ */ new Map();
132
+ batchedIssues = /* @__PURE__ */ new Map();
133
+ criticalIssues = [];
134
+ seriousIssues = [];
135
+ flushTimer = null;
136
+ BATCH_DELAY_MS = 100;
137
+ // Batch issues for 100ms before flushing
138
+ constructor(agentName, verbose = true) {
139
+ this.agentName = agentName;
140
+ this.verbose = verbose;
141
+ }
142
+ start() {
143
+ if (!this.verbose || _interactiveMode) return;
144
+ console.error(`
145
+ [SCOUT] ${this.agentName.toUpperCase()} starting...`);
146
+ }
147
+ analyzing(file) {
148
+ if (!this.verbose || _interactiveMode) return;
149
+ }
150
+ aiReview(context) {
151
+ if (!this.verbose || _interactiveMode) return;
152
+ if (this.issueCount < 5) {
153
+ console.error(` [AI] reviewing: ${context}`);
154
+ }
155
+ }
156
+ found(severity, issue, file, line) {
157
+ this.issueCount++;
158
+ const current = this.issuesBySeverity.get(severity) || 0;
159
+ this.issuesBySeverity.set(severity, current + 1);
160
+ if (severity === "critical") {
161
+ this.criticalIssues.push({ severity, issue, file, line });
162
+ if (this.verbose && !_interactiveMode) {
163
+ this.flushCriticalAndSerious();
164
+ }
165
+ } else if (severity === "serious") {
166
+ this.seriousIssues.push({ severity, issue, file, line });
167
+ }
168
+ if (!this.verbose || _interactiveMode) return;
169
+ const normalizedIssue = issue.replace(/at line \d+/gi, "").replace(/in .+$/gi, "").trim();
170
+ const key = `${severity}:${normalizedIssue}`;
171
+ if (!this.batchedIssues.has(key)) {
172
+ this.batchedIssues.set(key, []);
173
+ }
174
+ this.batchedIssues.get(key).push({ severity, issue, file, line });
175
+ if (severity === "critical") {
176
+ this.flushBatchedIssues();
177
+ } else {
178
+ if (this.flushTimer) {
179
+ clearTimeout(this.flushTimer);
180
+ }
181
+ this.flushTimer = setTimeout(() => this.flushBatchedIssues(), this.BATCH_DELAY_MS);
182
+ }
183
+ }
184
+ flushCriticalAndSerious() {
185
+ for (const issue of this.criticalIssues) {
186
+ console.error(` [CRITICAL] Found: ${issue.issue}`);
187
+ }
188
+ this.criticalIssues = [];
189
+ }
190
+ flushBatchedIssues() {
191
+ if (!this.verbose || _interactiveMode) return;
192
+ if (this.criticalIssues.length > 0) {
193
+ this.flushCriticalAndSerious();
194
+ }
195
+ if (this.seriousIssues.length > 0) {
196
+ for (const issue of this.seriousIssues.slice(0, 10)) {
197
+ console.error(` [SERIOUS] Found: ${issue.issue}`);
198
+ }
199
+ if (this.seriousIssues.length > 10) {
200
+ console.error(` ... and ${this.seriousIssues.length - 10} more serious issues`);
201
+ }
202
+ this.seriousIssues = [];
203
+ }
204
+ if (this.batchedIssues.size === 0) return;
205
+ const moderateGroups = [];
206
+ const lowGroups = [];
207
+ for (const [key, issues] of this.batchedIssues.entries()) {
208
+ const [severity, pattern] = key.split(":", 2);
209
+ const count = issues.length;
210
+ const examples = issues.slice(0, 2).map((i) => i.issue);
211
+ if (severity === "moderate") {
212
+ moderateGroups.push({ pattern, count, examples });
213
+ } else if (severity === "low") {
214
+ lowGroups.push({ pattern, count, examples });
215
+ }
216
+ }
217
+ if (moderateGroups.length > 0) {
218
+ for (const group of moderateGroups.slice(0, 5)) {
219
+ if (group.count === 1) {
220
+ console.error(` [MODERATE] Found: ${group.examples[0]}`);
221
+ } else {
222
+ console.error(` [MODERATE] Found: ${group.pattern} (${group.count} instances)`);
223
+ }
224
+ }
225
+ if (moderateGroups.length > 5) {
226
+ const remaining = moderateGroups.slice(5).reduce((sum, g) => sum + g.count, 0);
227
+ console.error(` ... and ${remaining} more moderate issues`);
228
+ }
229
+ }
230
+ if (lowGroups.length > 0 && this.issueCount < 200) {
231
+ for (const group of lowGroups.slice(0, 3)) {
232
+ if (group.count === 1) {
233
+ console.error(` [LOW] Found: ${group.examples[0]}`);
234
+ } else {
235
+ console.error(` [LOW] Found: ${group.pattern} (${group.count} instances)`);
236
+ }
237
+ }
238
+ if (lowGroups.length > 3) {
239
+ const remaining = lowGroups.slice(3).reduce((sum, g) => sum + g.count, 0);
240
+ console.error(` ... and ${remaining} more low-severity issues`);
241
+ }
242
+ } else if (lowGroups.length > 0) {
243
+ const totalLow = lowGroups.reduce((sum, g) => sum + g.count, 0);
244
+ console.error(` [LOW] Found ${totalLow} low-severity issues (suppressed for brevity)`);
245
+ }
246
+ this.batchedIssues.clear();
247
+ }
248
+ complete(summary) {
249
+ if (this.flushTimer) {
250
+ clearTimeout(this.flushTimer);
251
+ this.flushTimer = null;
252
+ }
253
+ this.flushBatchedIssues();
254
+ if (!this.verbose || _interactiveMode) return;
255
+ const severityCounts = [];
256
+ if (this.issuesBySeverity.get("critical")) {
257
+ severityCounts.push(`${this.issuesBySeverity.get("critical")} critical`);
258
+ }
259
+ if (this.issuesBySeverity.get("serious")) {
260
+ severityCounts.push(`${this.issuesBySeverity.get("serious")} serious`);
261
+ }
262
+ if (this.issuesBySeverity.get("moderate")) {
263
+ severityCounts.push(`${this.issuesBySeverity.get("moderate")} moderate`);
264
+ }
265
+ if (this.issuesBySeverity.get("low")) {
266
+ severityCounts.push(`${this.issuesBySeverity.get("low")} low`);
267
+ }
268
+ const severitySummary = severityCounts.length > 0 ? ` (${severityCounts.join(", ")})` : "";
269
+ const msg = summary || `${this.issueCount} issues found${severitySummary}`;
270
+ console.error(` Done: ${this.agentName}: ${msg}`);
271
+ }
272
+ getIssueCount() {
273
+ return this.issueCount;
274
+ }
275
+ getIssuesBySeverity() {
276
+ return new Map(this.issuesBySeverity);
277
+ }
278
+ };
279
+ var globalReporter = null;
280
+ function getProgressReporter(options) {
281
+ if (!globalReporter) {
282
+ globalReporter = new ProgressReporter(options);
283
+ }
284
+ return globalReporter;
285
+ }
286
+ function resetProgressReporter() {
287
+ globalReporter = null;
288
+ }
289
+
290
+ export {
291
+ setInteractiveMode,
292
+ isInteractiveMode,
293
+ ProgressReporter,
294
+ AgentProgressReporter,
295
+ getProgressReporter,
296
+ resetProgressReporter
297
+ };
298
+ //# sourceMappingURL=chunk-JAAIHNOE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/progress.ts"],"sourcesContent":["/**\n * Progress Reporter for Trie Agent\n * \n * Provides real-time feedback to users as the agent works.\n * Uses console.error because MCP clients display stderr to users.\n */\n\n/**\n * Global interactive mode flag\n * When enabled, suppresses all console output (handled by InteractiveDashboard instead)\n */\nlet _interactiveMode = false;\n\n/**\n * Enable or disable interactive mode\n * When enabled, all console output from ProgressReporter and AgentProgressReporter is suppressed\n */\nexport function setInteractiveMode(enabled: boolean): void {\n _interactiveMode = enabled;\n}\n\n/**\n * Check if interactive mode is enabled\n */\nexport function isInteractiveMode(): boolean {\n return _interactiveMode;\n}\n\nexport type ProgressPhase = \n | 'init'\n | 'discovery'\n | 'reading'\n | 'analyzing'\n | 'ai-review'\n | 'prioritizing'\n | 'complete';\n\nexport interface ProgressCallback {\n (phase: ProgressPhase, message: string, detail?: string): void;\n}\n\n/**\n * Progress Reporter - streams status updates to the user\n */\nexport class ProgressReporter {\n private currentPhase: ProgressPhase = 'init';\n private startTime: number = Date.now();\n private phaseStartTime: number = Date.now();\n private verbose: boolean;\n\n constructor(options: { verbose?: boolean } = {}) {\n this.verbose = options.verbose ?? true;\n }\n\n /**\n * Report a status update\n */\n report(message: string, detail?: string): void {\n if (!this.verbose || _interactiveMode) return;\n \n const prefix = this.getPhaseIcon(this.currentPhase);\n const fullMessage = detail ? `${message}: ${detail}` : message;\n console.error(`${prefix} ${fullMessage}`);\n }\n\n /**\n * Start a new phase\n */\n startPhase(phase: ProgressPhase, message: string): void {\n this.currentPhase = phase;\n this.phaseStartTime = Date.now();\n this.report(message);\n }\n\n /**\n * Update within current phase\n */\n update(message: string, detail?: string): void {\n this.report(message, detail);\n }\n\n /**\n * Report progress on a file\n */\n file(action: string, filePath: string): void {\n // Show just the filename for cleaner output\n const fileName = filePath.split('/').pop() || filePath;\n this.report(action, fileName);\n }\n\n /**\n * Report an AI analysis step\n */\n ai(action: string, context?: string): void {\n if (_interactiveMode) return;\n const prefix = '[AI]';\n const message = context ? `${action}: ${context}` : action;\n console.error(`${prefix} ${message}`);\n }\n\n /**\n * Report a finding\n */\n finding(severity: 'critical' | 'serious' | 'moderate' | 'low', message: string): void {\n if (_interactiveMode) return;\n const labels = {\n critical: '[CRITICAL]',\n serious: '[SERIOUS]',\n moderate: '[MODERATE]',\n low: '[LOW]'\n };\n console.error(` ${labels[severity]} ${message}`);\n }\n\n /**\n * Complete current phase\n */\n completePhase(summary: string): void {\n const elapsed = Date.now() - this.phaseStartTime;\n this.report(`Done: ${summary}`, `(${elapsed}ms)`);\n }\n\n /**\n * Complete the entire operation\n */\n complete(summary: string): void {\n if (_interactiveMode) return;\n const totalElapsed = Date.now() - this.startTime;\n console.error('');\n console.error(`----------------------------------------`);\n console.error(`[COMPLETE] ${summary}`);\n console.error(` Total time: ${(totalElapsed / 1000).toFixed(2)}s`);\n console.error(`----------------------------------------`);\n console.error('');\n }\n\n /**\n * Report an error\n */\n error(message: string, detail?: string): void {\n if (_interactiveMode) return;\n const fullMessage = detail ? `${message}: ${detail}` : message;\n console.error(`[ERROR] ${fullMessage}`);\n }\n\n /**\n * Report a warning\n */\n warn(message: string, detail?: string): void {\n if (_interactiveMode) return;\n const fullMessage = detail ? `${message}: ${detail}` : message;\n console.error(`[WARN] ${fullMessage}`);\n }\n\n /**\n * Get icon for current phase\n */\n private getPhaseIcon(phase: ProgressPhase): string {\n const icons: Record<ProgressPhase, string> = {\n 'init': '>>',\n 'discovery': '>>',\n 'reading': '>>',\n 'analyzing': '>>',\n 'ai-review': '[AI]',\n 'prioritizing': '>>',\n 'complete': '[OK]'\n };\n return icons[phase] || '>>';\n }\n\n /**\n * Create a sub-reporter for a specific agent\n */\n forAgent(agentName: string): AgentProgressReporter {\n return new AgentProgressReporter(agentName, this.verbose);\n }\n}\n\n/**\n * Progress reporter scoped to a specific agent\n */\nexport class AgentProgressReporter {\n private agentName: string;\n private verbose: boolean;\n private issueCount: number = 0;\n private issuesBySeverity: Map<string, number> = new Map();\n private batchedIssues: Map<string, Array<{ severity: string; issue: string; file?: string; line?: number }>> = new Map();\n private criticalIssues: Array<{ severity: string; issue: string; file?: string; line?: number }> = [];\n private seriousIssues: Array<{ severity: string; issue: string; file?: string; line?: number }> = [];\n private flushTimer: NodeJS.Timeout | null = null;\n private readonly BATCH_DELAY_MS = 100; // Batch issues for 100ms before flushing\n\n constructor(agentName: string, verbose: boolean = true) {\n this.agentName = agentName;\n this.verbose = verbose;\n }\n\n start(): void {\n if (!this.verbose || _interactiveMode) return;\n console.error(`\\n[SCOUT] ${this.agentName.toUpperCase()} starting...`);\n }\n\n analyzing(file: string): void {\n if (!this.verbose || _interactiveMode) return;\n // Suppress individual file analysis messages - they're too verbose\n // The progress updates from streaming manager will show file progress\n }\n\n aiReview(context: string): void {\n if (!this.verbose || _interactiveMode) return;\n // Suppress AI review messages - they're too verbose during watch mode\n // Only show if there are very few issues (indicating a focused scan)\n if (this.issueCount < 5) {\n console.error(` [AI] reviewing: ${context}`);\n }\n }\n\n found(severity: string, issue: string, file?: string, line?: number): void {\n this.issueCount++;\n \n // Track by severity\n const current = this.issuesBySeverity.get(severity) || 0;\n this.issuesBySeverity.set(severity, current + 1);\n\n // Store critical and serious issues for detailed output\n if (severity === 'critical') {\n this.criticalIssues.push({ severity, issue, file, line });\n // Flush critical issues immediately\n if (this.verbose && !_interactiveMode) {\n this.flushCriticalAndSerious();\n }\n } else if (severity === 'serious') {\n this.seriousIssues.push({ severity, issue, file, line });\n }\n\n // Batch similar issues together for cleaner output\n if (!this.verbose || _interactiveMode) return;\n\n // Normalize issue description for grouping (remove line numbers, file paths)\n const normalizedIssue = issue.replace(/at line \\d+/gi, '').replace(/in .+$/gi, '').trim();\n const key = `${severity}:${normalizedIssue}`;\n \n if (!this.batchedIssues.has(key)) {\n this.batchedIssues.set(key, []);\n }\n this.batchedIssues.get(key)!.push({ severity, issue, file, line });\n\n // Schedule flush (debounced) - but flush immediately for critical\n if (severity === 'critical') {\n this.flushBatchedIssues();\n } else {\n if (this.flushTimer) {\n clearTimeout(this.flushTimer);\n }\n this.flushTimer = setTimeout(() => this.flushBatchedIssues(), this.BATCH_DELAY_MS);\n }\n }\n\n private flushCriticalAndSerious(): void {\n // Always show critical issues immediately\n for (const issue of this.criticalIssues) {\n console.error(` [CRITICAL] Found: ${issue.issue}`);\n }\n this.criticalIssues = [];\n }\n\n private flushBatchedIssues(): void {\n if (!this.verbose || _interactiveMode) return;\n\n // Always show critical issues immediately (should already be flushed, but double-check)\n if (this.criticalIssues.length > 0) {\n this.flushCriticalAndSerious();\n }\n\n // Show serious issues (limit to first 10 to avoid spam)\n if (this.seriousIssues.length > 0) {\n for (const issue of this.seriousIssues.slice(0, 10)) {\n console.error(` [SERIOUS] Found: ${issue.issue}`);\n }\n if (this.seriousIssues.length > 10) {\n console.error(` ... and ${this.seriousIssues.length - 10} more serious issues`);\n }\n this.seriousIssues = [];\n }\n\n if (this.batchedIssues.size === 0) return;\n\n // For moderate and low issues, group similar ones together\n const moderateGroups: Array<{ pattern: string; count: number; examples: string[] }> = [];\n const lowGroups: Array<{ pattern: string; count: number; examples: string[] }> = [];\n\n for (const [key, issues] of this.batchedIssues.entries()) {\n const [severity, pattern] = key.split(':', 2);\n const count = issues.length;\n const examples = issues.slice(0, 2).map(i => i.issue);\n\n if (severity === 'moderate') {\n moderateGroups.push({ pattern, count, examples });\n } else if (severity === 'low') {\n lowGroups.push({ pattern, count, examples });\n }\n }\n\n // Show moderate issues (grouped, max 5 groups)\n if (moderateGroups.length > 0) {\n for (const group of moderateGroups.slice(0, 5)) {\n if (group.count === 1) {\n console.error(` [MODERATE] Found: ${group.examples[0]}`);\n } else {\n console.error(` [MODERATE] Found: ${group.pattern} (${group.count} instances)`);\n }\n }\n if (moderateGroups.length > 5) {\n const remaining = moderateGroups.slice(5).reduce((sum, g) => sum + g.count, 0);\n console.error(` ... and ${remaining} more moderate issues`);\n }\n }\n\n // Show low issues (grouped, max 3 groups, only if not too many)\n // Suppress low issues if there are too many total issues\n if (lowGroups.length > 0 && this.issueCount < 200) {\n for (const group of lowGroups.slice(0, 3)) {\n if (group.count === 1) {\n console.error(` [LOW] Found: ${group.examples[0]}`);\n } else {\n console.error(` [LOW] Found: ${group.pattern} (${group.count} instances)`);\n }\n }\n if (lowGroups.length > 3) {\n const remaining = lowGroups.slice(3).reduce((sum, g) => sum + g.count, 0);\n console.error(` ... and ${remaining} more low-severity issues`);\n }\n } else if (lowGroups.length > 0) {\n // Too many issues - just show summary\n const totalLow = lowGroups.reduce((sum, g) => sum + g.count, 0);\n console.error(` [LOW] Found ${totalLow} low-severity issues (suppressed for brevity)`);\n }\n\n this.batchedIssues.clear();\n }\n\n complete(summary?: string): void {\n // Flush any remaining batched issues\n if (this.flushTimer) {\n clearTimeout(this.flushTimer);\n this.flushTimer = null;\n }\n this.flushBatchedIssues();\n\n if (!this.verbose || _interactiveMode) return;\n\n // Build a better summary\n const severityCounts: string[] = [];\n if (this.issuesBySeverity.get('critical')) {\n severityCounts.push(`${this.issuesBySeverity.get('critical')} critical`);\n }\n if (this.issuesBySeverity.get('serious')) {\n severityCounts.push(`${this.issuesBySeverity.get('serious')} serious`);\n }\n if (this.issuesBySeverity.get('moderate')) {\n severityCounts.push(`${this.issuesBySeverity.get('moderate')} moderate`);\n }\n if (this.issuesBySeverity.get('low')) {\n severityCounts.push(`${this.issuesBySeverity.get('low')} low`);\n }\n\n const severitySummary = severityCounts.length > 0 \n ? ` (${severityCounts.join(', ')})`\n : '';\n \n const msg = summary || `${this.issueCount} issues found${severitySummary}`;\n console.error(` Done: ${this.agentName}: ${msg}`);\n }\n\n getIssueCount(): number {\n return this.issueCount;\n }\n\n getIssuesBySeverity(): Map<string, number> {\n return new Map(this.issuesBySeverity);\n }\n}\n\n/**\n * Global singleton for easy access\n */\nlet globalReporter: ProgressReporter | null = null;\n\nexport function getProgressReporter(options?: { verbose?: boolean }): ProgressReporter {\n if (!globalReporter) {\n globalReporter = new ProgressReporter(options);\n }\n return globalReporter;\n}\n\nexport function resetProgressReporter(): void {\n globalReporter = null;\n}\n"],"mappings":"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","names":[]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-6NLHFIYA.js";
4
4
  import {
5
5
  isInteractiveMode
6
- } from "./chunk-D25EIBPO.js";
6
+ } from "./chunk-JAAIHNOE.js";
7
7
 
8
8
  // src/trie/vulnerability-signatures.ts
9
9
  var ALWAYS_EXCLUDED_FILES = [
@@ -980,4 +980,4 @@ export {
980
980
  scanForVulnerabilities,
981
981
  getVulnerabilityStats
982
982
  };
983
- //# sourceMappingURL=chunk-5Z7O66DE.js.map
983
+ //# sourceMappingURL=chunk-JO6RVXS6.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getTrieDirectory,
3
3
  getWorkingDirectory
4
- } from "./chunk-RDOJCRKJ.js";
4
+ } from "./chunk-WT3XQCG2.js";
5
5
 
6
6
  // src/ai/client.ts
7
7
  import Anthropic from "@anthropic-ai/sdk";
@@ -138,4 +138,4 @@ export {
138
138
  runAIAnalysis,
139
139
  getAIStatusMessage
140
140
  };
141
- //# sourceMappingURL=chunk-74NPKTZV.js.map
141
+ //# sourceMappingURL=chunk-ODWDESYP.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getTrieDirectory,
3
3
  getWorkingDirectory
4
- } from "./chunk-RDOJCRKJ.js";
4
+ } from "./chunk-WT3XQCG2.js";
5
5
 
6
6
  // src/memory/issue-store.ts
7
7
  import { mkdir as mkdir4, writeFile as writeFile2, readFile as readFile4, readdir as readdir2 } from "fs/promises";
@@ -1141,4 +1141,4 @@ export {
1141
1141
  purgeIssues,
1142
1142
  getDailyLogs
1143
1143
  };
1144
- //# sourceMappingURL=chunk-LP4MVJDW.js.map
1144
+ //# sourceMappingURL=chunk-OEYIOOYB.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getTrieDirectory,
3
3
  getWorkingDirectory
4
- } from "./chunk-RDOJCRKJ.js";
4
+ } from "./chunk-WT3XQCG2.js";
5
5
 
6
6
  // src/ingest/agent-builder.ts
7
7
  import Anthropic2 from "@anthropic-ai/sdk";
@@ -952,4 +952,4 @@ export {
952
952
  loadAgentConfig,
953
953
  listCustomAgents
954
954
  };
955
- //# sourceMappingURL=chunk-SJFJ6GLR.js.map
955
+ //# sourceMappingURL=chunk-OWBWNXSC.js.map
@@ -1,27 +1,27 @@
1
1
  import {
2
2
  CacheManager
3
- } from "./chunk-HFQ5ORON.js";
3
+ } from "./chunk-RE6ZWXJC.js";
4
4
  import {
5
5
  CustomSkill,
6
6
  getSkillRegistry,
7
7
  loadContextState
8
- } from "./chunk-BG2BHWCC.js";
8
+ } from "./chunk-E2ZATINO.js";
9
9
  import {
10
10
  getGlobalMemoryStats
11
- } from "./chunk-LT7MKIXU.js";
11
+ } from "./chunk-FFWNZUG2.js";
12
12
  import {
13
13
  getHistoricalInsights,
14
14
  getMemoryStats,
15
15
  getRecentIssues,
16
16
  searchIssues
17
- } from "./chunk-LP4MVJDW.js";
17
+ } from "./chunk-OEYIOOYB.js";
18
18
  import {
19
19
  getTrieDirectory,
20
20
  getWorkingDirectory
21
- } from "./chunk-RDOJCRKJ.js";
21
+ } from "./chunk-WT3XQCG2.js";
22
22
  import {
23
23
  isInteractiveMode
24
- } from "./chunk-D25EIBPO.js";
24
+ } from "./chunk-JAAIHNOE.js";
25
25
  import {
26
26
  __require
27
27
  } from "./chunk-DGUM43GV.js";
@@ -2121,4 +2121,4 @@ export {
2121
2121
  createSavedPattern,
2122
2122
  buildSavedPatternIssues
2123
2123
  };
2124
- //# sourceMappingURL=chunk-CUXXRM3T.js.map
2124
+ //# sourceMappingURL=chunk-Q764X2WD.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  getTrieDirectory
3
- } from "./chunk-RDOJCRKJ.js";
3
+ } from "./chunk-WT3XQCG2.js";
4
4
  import {
5
5
  isInteractiveMode
6
- } from "./chunk-D25EIBPO.js";
6
+ } from "./chunk-JAAIHNOE.js";
7
7
 
8
8
  // src/utils/cache-manager.ts
9
9
  import { readFile, writeFile, mkdir, stat } from "fs/promises";
@@ -276,4 +276,4 @@ var CacheManager = class {
276
276
  export {
277
277
  CacheManager
278
278
  };
279
- //# sourceMappingURL=chunk-HFQ5ORON.js.map
279
+ //# sourceMappingURL=chunk-RE6ZWXJC.js.map
@@ -2,14 +2,14 @@ import {
2
2
  getAIStatusMessage,
3
3
  isAIAvailable,
4
4
  runAIAnalysis
5
- } from "./chunk-74NPKTZV.js";
5
+ } from "./chunk-ODWDESYP.js";
6
6
  import {
7
7
  getTrieDirectory
8
- } from "./chunk-RDOJCRKJ.js";
8
+ } from "./chunk-WT3XQCG2.js";
9
9
  import {
10
10
  AgentProgressReporter,
11
11
  isInteractiveMode
12
- } from "./chunk-D25EIBPO.js";
12
+ } from "./chunk-JAAIHNOE.js";
13
13
 
14
14
  // src/skills/built-in/base-skill.ts
15
15
  import { relative } from "path";
@@ -2267,4 +2267,4 @@ export {
2267
2267
  PATTERN_HUNTER_CONFIGS,
2268
2268
  AgentSmithSkill
2269
2269
  };
2270
- //# sourceMappingURL=chunk-KWDNYWOR.js.map
2270
+ //# sourceMappingURL=chunk-RNJ6JKMA.js.map
@@ -2,10 +2,10 @@ import {
2
2
  BackupManager,
3
3
  atomicWriteJSON,
4
4
  safeParseAndValidate
5
- } from "./chunk-LP4MVJDW.js";
5
+ } from "./chunk-OEYIOOYB.js";
6
6
  import {
7
7
  getTrieDirectory
8
- } from "./chunk-RDOJCRKJ.js";
8
+ } from "./chunk-WT3XQCG2.js";
9
9
 
10
10
  // src/guardian/guardian-state.ts
11
11
  import { mkdir, readFile } from "fs/promises";
@@ -679,4 +679,4 @@ function getGuardianState(projectPath) {
679
679
  export {
680
680
  getGuardianState
681
681
  };
682
- //# sourceMappingURL=chunk-T5UOH56R.js.map
682
+ //# sourceMappingURL=chunk-RYRVEO2B.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-6NLHFIYA.js";
4
4
  import {
5
5
  isInteractiveMode
6
- } from "./chunk-D25EIBPO.js";
6
+ } from "./chunk-JAAIHNOE.js";
7
7
 
8
8
  // src/trie/vibe-code-signatures.ts
9
9
  var VIBE_CODE_PATTERNS = [
@@ -984,4 +984,4 @@ export {
984
984
  scanForVibeCodeIssues,
985
985
  getVibeCodeStats
986
986
  };
987
- //# sourceMappingURL=chunk-LVVG2DMW.js.map
987
+ //# sourceMappingURL=chunk-STEFLYPR.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isInteractiveMode
3
- } from "./chunk-D25EIBPO.js";
3
+ } from "./chunk-JAAIHNOE.js";
4
4
  import {
5
5
  __require
6
6
  } from "./chunk-DGUM43GV.js";
@@ -189,4 +189,4 @@ export {
189
189
  getTrieDirectory,
190
190
  getWorkingDirectory
191
191
  };
192
- //# sourceMappingURL=chunk-RDOJCRKJ.js.map
192
+ //# sourceMappingURL=chunk-WT3XQCG2.js.map
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  scanForVulnerabilities
3
- } from "./chunk-5Z7O66DE.js";
3
+ } from "./chunk-JO6RVXS6.js";
4
4
  import {
5
5
  searchIssues
6
- } from "./chunk-LP4MVJDW.js";
6
+ } from "./chunk-OEYIOOYB.js";
7
7
  import {
8
8
  scanForVibeCodeIssues
9
- } from "./chunk-LVVG2DMW.js";
9
+ } from "./chunk-STEFLYPR.js";
10
10
  import {
11
11
  tryGetClient
12
- } from "./chunk-74NPKTZV.js";
12
+ } from "./chunk-ODWDESYP.js";
13
13
  import {
14
14
  getTrieDirectory
15
- } from "./chunk-RDOJCRKJ.js";
15
+ } from "./chunk-WT3XQCG2.js";
16
16
 
17
17
  // src/guardian/gotcha-predictor.ts
18
18
  import fs from "fs";
@@ -533,4 +533,4 @@ export {
533
533
  GotchaPredictor,
534
534
  ContextGraph
535
535
  };
536
- //# sourceMappingURL=chunk-F55XBLIA.js.map
536
+ //# sourceMappingURL=chunk-Y62VM3ER.js.map
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  buildAgentFromDocument
4
- } from "../chunk-SJFJ6GLR.js";
5
- import "../chunk-RDOJCRKJ.js";
6
- import "../chunk-D25EIBPO.js";
4
+ } from "../chunk-OWBWNXSC.js";
5
+ import "../chunk-WT3XQCG2.js";
6
+ import "../chunk-JAAIHNOE.js";
7
7
  import "../chunk-DGUM43GV.js";
8
8
 
9
9
  // src/cli/create-agent.ts
package/dist/cli/main.js CHANGED
@@ -17,7 +17,7 @@ import {
17
17
  shouldAutoFix,
18
18
  shouldBlockPush,
19
19
  trackIssueOccurrence
20
- } from "../chunk-YTJXD664.js";
20
+ } from "../chunk-AZRCKBGF.js";
21
21
  import {
22
22
  SKILL_CATEGORIES,
23
23
  createSavedPattern,
@@ -30,20 +30,20 @@ import {
30
30
  saveConfig,
31
31
  savePatternToProject,
32
32
  savePatternsToProject
33
- } from "../chunk-CUXXRM3T.js";
34
- import "../chunk-HFQ5ORON.js";
33
+ } from "../chunk-Q764X2WD.js";
34
+ import "../chunk-RE6ZWXJC.js";
35
35
  import {
36
36
  getStagedChanges,
37
37
  getUncommittedChanges
38
- } from "../chunk-IOUOVBJZ.js";
38
+ } from "../chunk-FK6DQKDY.js";
39
39
  import {
40
40
  ContextGraph,
41
41
  GotchaPredictor
42
- } from "../chunk-F55XBLIA.js";
43
- import "../chunk-5Z7O66DE.js";
42
+ } from "../chunk-Y62VM3ER.js";
43
+ import "../chunk-JO6RVXS6.js";
44
44
  import {
45
45
  getGuardianState
46
- } from "../chunk-T5UOH56R.js";
46
+ } from "../chunk-RYRVEO2B.js";
47
47
  import {
48
48
  initProjectInfo,
49
49
  installSkill,
@@ -53,20 +53,20 @@ import {
53
53
  projectInfoExists,
54
54
  recordSkillInstalled,
55
55
  removeSkill
56
- } from "../chunk-BG2BHWCC.js";
56
+ } from "../chunk-E2ZATINO.js";
57
57
  import {
58
58
  formatAuditLog,
59
59
  getAuditStatistics,
60
60
  getRecentAuditLogs,
61
61
  getSkillAuditLogs
62
- } from "../chunk-MURGTWG4.js";
62
+ } from "../chunk-IFGF33R5.js";
63
63
  import {
64
64
  findCrossProjectPatterns,
65
65
  getGlobalMemoryStats,
66
66
  listTrackedProjects,
67
67
  searchGlobalPatterns,
68
68
  updateGlobalMemoryMd
69
- } from "../chunk-LT7MKIXU.js";
69
+ } from "../chunk-FFWNZUG2.js";
70
70
  import {
71
71
  getDailyLogs,
72
72
  getMemoryStats,
@@ -74,16 +74,16 @@ import {
74
74
  markIssueResolved,
75
75
  purgeIssues,
76
76
  searchIssues
77
- } from "../chunk-LP4MVJDW.js";
78
- import "../chunk-LVVG2DMW.js";
77
+ } from "../chunk-OEYIOOYB.js";
78
+ import "../chunk-STEFLYPR.js";
79
79
  import "../chunk-6NLHFIYA.js";
80
- import "../chunk-KWDNYWOR.js";
81
- import "../chunk-74NPKTZV.js";
80
+ import "../chunk-RNJ6JKMA.js";
81
+ import "../chunk-ODWDESYP.js";
82
82
  import {
83
83
  getTrieDirectory,
84
84
  getWorkingDirectory
85
- } from "../chunk-RDOJCRKJ.js";
86
- import "../chunk-D25EIBPO.js";
85
+ } from "../chunk-WT3XQCG2.js";
86
+ import "../chunk-JAAIHNOE.js";
87
87
  import {
88
88
  __require
89
89
  } from "../chunk-DGUM43GV.js";