@4da/mcp-server 4.5.0 → 4.6.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 (155) hide show
  1. package/README.md +61 -81
  2. package/dist/db.d.ts +12 -1
  3. package/dist/db.d.ts.map +1 -1
  4. package/dist/db.js +71 -8
  5. package/dist/db.js.map +1 -1
  6. package/dist/index.d.ts +9 -14
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +12 -17
  9. package/dist/index.js.map +1 -1
  10. package/dist/schema-registry.d.ts +4 -2
  11. package/dist/schema-registry.d.ts.map +1 -1
  12. package/dist/schema-registry.js +55 -235
  13. package/dist/schema-registry.js.map +1 -1
  14. package/dist/tool-dispatch.d.ts +1 -7
  15. package/dist/tool-dispatch.d.ts.map +1 -1
  16. package/dist/tool-dispatch.js +14 -48
  17. package/dist/tool-dispatch.js.map +1 -1
  18. package/dist/tools/index.d.ts +13 -42
  19. package/dist/tools/index.d.ts.map +1 -1
  20. package/dist/tools/index.js +18 -54
  21. package/dist/tools/index.js.map +1 -1
  22. package/dist/tools/what-should-i-know.d.ts +4 -12
  23. package/dist/tools/what-should-i-know.d.ts.map +1 -1
  24. package/dist/tools/what-should-i-know.js +11 -102
  25. package/dist/tools/what-should-i-know.js.map +1 -1
  26. package/package.json +2 -2
  27. package/dist/schemas/agent-feedback-stats.json +0 -14
  28. package/dist/schemas/agent-session-brief.json +0 -25
  29. package/dist/schemas/attention-report.json +0 -13
  30. package/dist/schemas/autophagy-status.json +0 -13
  31. package/dist/schemas/compound-advantage.json +0 -14
  32. package/dist/schemas/config-validator.json +0 -18
  33. package/dist/schemas/context-analysis.json +0 -25
  34. package/dist/schemas/daily-briefing.json +0 -34
  35. package/dist/schemas/decision-windows.json +0 -22
  36. package/dist/schemas/delegation-score.json +0 -18
  37. package/dist/schemas/explain-relevance.json +0 -19
  38. package/dist/schemas/export-context.json +0 -17
  39. package/dist/schemas/llm-status.json +0 -13
  40. package/dist/schemas/preemption-feed.json +0 -18
  41. package/dist/schemas/project-health.json +0 -13
  42. package/dist/schemas/record-agent-feedback.json +0 -28
  43. package/dist/schemas/reverse-mentions.json +0 -13
  44. package/dist/schemas/score-autopsy.json +0 -30
  45. package/dist/schemas/semantic-shifts.json +0 -17
  46. package/dist/schemas/signal-chains.json +0 -19
  47. package/dist/schemas/source-health.json +0 -17
  48. package/dist/schemas/tech-radar.json +0 -23
  49. package/dist/schemas/topic-connections.json +0 -34
  50. package/dist/schemas/trend-analysis.json +0 -29
  51. package/dist/schemas/trust-summary.json +0 -13
  52. package/dist/tools/agent-feedback-stats.d.ts +0 -30
  53. package/dist/tools/agent-feedback-stats.d.ts.map +0 -1
  54. package/dist/tools/agent-feedback-stats.js +0 -41
  55. package/dist/tools/agent-feedback-stats.js.map +0 -1
  56. package/dist/tools/agent-session-brief.d.ts +0 -44
  57. package/dist/tools/agent-session-brief.d.ts.map +0 -1
  58. package/dist/tools/agent-session-brief.js +0 -179
  59. package/dist/tools/agent-session-brief.js.map +0 -1
  60. package/dist/tools/attention-report.d.ts +0 -40
  61. package/dist/tools/attention-report.d.ts.map +0 -1
  62. package/dist/tools/attention-report.js +0 -73
  63. package/dist/tools/attention-report.js.map +0 -1
  64. package/dist/tools/autophagy-status.d.ts +0 -25
  65. package/dist/tools/autophagy-status.d.ts.map +0 -1
  66. package/dist/tools/autophagy-status.js +0 -56
  67. package/dist/tools/autophagy-status.js.map +0 -1
  68. package/dist/tools/compound-advantage.d.ts +0 -30
  69. package/dist/tools/compound-advantage.d.ts.map +0 -1
  70. package/dist/tools/compound-advantage.js +0 -133
  71. package/dist/tools/compound-advantage.js.map +0 -1
  72. package/dist/tools/config-validator.d.ts +0 -59
  73. package/dist/tools/config-validator.d.ts.map +0 -1
  74. package/dist/tools/config-validator.js +0 -417
  75. package/dist/tools/config-validator.js.map +0 -1
  76. package/dist/tools/context-analysis.d.ts +0 -108
  77. package/dist/tools/context-analysis.d.ts.map +0 -1
  78. package/dist/tools/context-analysis.js +0 -301
  79. package/dist/tools/context-analysis.js.map +0 -1
  80. package/dist/tools/daily-briefing.d.ts +0 -103
  81. package/dist/tools/daily-briefing.d.ts.map +0 -1
  82. package/dist/tools/daily-briefing.js +0 -294
  83. package/dist/tools/daily-briefing.js.map +0 -1
  84. package/dist/tools/decision-windows.d.ts +0 -37
  85. package/dist/tools/decision-windows.d.ts.map +0 -1
  86. package/dist/tools/decision-windows.js +0 -67
  87. package/dist/tools/decision-windows.js.map +0 -1
  88. package/dist/tools/delegation-score.d.ts +0 -34
  89. package/dist/tools/delegation-score.d.ts.map +0 -1
  90. package/dist/tools/delegation-score.js +0 -260
  91. package/dist/tools/delegation-score.js.map +0 -1
  92. package/dist/tools/explain-relevance.d.ts +0 -36
  93. package/dist/tools/explain-relevance.d.ts.map +0 -1
  94. package/dist/tools/explain-relevance.js +0 -51
  95. package/dist/tools/explain-relevance.js.map +0 -1
  96. package/dist/tools/export-context.d.ts +0 -60
  97. package/dist/tools/export-context.d.ts.map +0 -1
  98. package/dist/tools/export-context.js +0 -179
  99. package/dist/tools/export-context.js.map +0 -1
  100. package/dist/tools/llm-status.d.ts +0 -45
  101. package/dist/tools/llm-status.d.ts.map +0 -1
  102. package/dist/tools/llm-status.js +0 -93
  103. package/dist/tools/llm-status.js.map +0 -1
  104. package/dist/tools/muse-context.d.ts +0 -195
  105. package/dist/tools/muse-context.d.ts.map +0 -1
  106. package/dist/tools/muse-context.js +0 -284
  107. package/dist/tools/muse-context.js.map +0 -1
  108. package/dist/tools/preemption-feed.d.ts +0 -55
  109. package/dist/tools/preemption-feed.d.ts.map +0 -1
  110. package/dist/tools/preemption-feed.js +0 -124
  111. package/dist/tools/preemption-feed.js.map +0 -1
  112. package/dist/tools/project-health.d.ts +0 -53
  113. package/dist/tools/project-health.d.ts.map +0 -1
  114. package/dist/tools/project-health.js +0 -122
  115. package/dist/tools/project-health.js.map +0 -1
  116. package/dist/tools/record-agent-feedback.d.ts +0 -46
  117. package/dist/tools/record-agent-feedback.d.ts.map +0 -1
  118. package/dist/tools/record-agent-feedback.js +0 -71
  119. package/dist/tools/record-agent-feedback.js.map +0 -1
  120. package/dist/tools/reverse-mentions.d.ts +0 -38
  121. package/dist/tools/reverse-mentions.d.ts.map +0 -1
  122. package/dist/tools/reverse-mentions.js +0 -75
  123. package/dist/tools/reverse-mentions.js.map +0 -1
  124. package/dist/tools/score-autopsy.d.ts +0 -93
  125. package/dist/tools/score-autopsy.d.ts.map +0 -1
  126. package/dist/tools/score-autopsy.js +0 -295
  127. package/dist/tools/score-autopsy.js.map +0 -1
  128. package/dist/tools/semantic-shifts.d.ts +0 -53
  129. package/dist/tools/semantic-shifts.d.ts.map +0 -1
  130. package/dist/tools/semantic-shifts.js +0 -74
  131. package/dist/tools/semantic-shifts.js.map +0 -1
  132. package/dist/tools/signal-chains.d.ts +0 -52
  133. package/dist/tools/signal-chains.d.ts.map +0 -1
  134. package/dist/tools/signal-chains.js +0 -63
  135. package/dist/tools/signal-chains.js.map +0 -1
  136. package/dist/tools/source-health.d.ts +0 -64
  137. package/dist/tools/source-health.d.ts.map +0 -1
  138. package/dist/tools/source-health.js +0 -205
  139. package/dist/tools/source-health.js.map +0 -1
  140. package/dist/tools/tech-radar.d.ts +0 -38
  141. package/dist/tools/tech-radar.d.ts.map +0 -1
  142. package/dist/tools/tech-radar.js +0 -249
  143. package/dist/tools/tech-radar.js.map +0 -1
  144. package/dist/tools/topic-connections.d.ts +0 -112
  145. package/dist/tools/topic-connections.d.ts.map +0 -1
  146. package/dist/tools/topic-connections.js +0 -319
  147. package/dist/tools/topic-connections.js.map +0 -1
  148. package/dist/tools/trend-analysis.d.ts +0 -105
  149. package/dist/tools/trend-analysis.d.ts.map +0 -1
  150. package/dist/tools/trend-analysis.js +0 -296
  151. package/dist/tools/trend-analysis.js.map +0 -1
  152. package/dist/tools/trust-summary.d.ts +0 -38
  153. package/dist/tools/trust-summary.d.ts.map +0 -1
  154. package/dist/tools/trust-summary.js +0 -89
  155. package/dist/tools/trust-summary.js.map +0 -1
@@ -1,417 +0,0 @@
1
- // SPDX-License-Identifier: FSL-1.1-Apache-2.0
2
- /**
3
- * Config Validator Tool
4
- *
5
- * Validate and diagnose 4DA configuration issues.
6
- * This is a SUPERPOWER - it catches config errors before they cause problems.
7
- */
8
- export const configValidatorTool = {
9
- name: "config_validator",
10
- description: `Validate 4DA configuration and detect issues.
11
- Returns:
12
- - Schema validation results
13
- - Missing required fields
14
- - Invalid values detected
15
- - Cross-field consistency checks
16
- - Recommendations for fixes
17
-
18
- Use this when things aren't working as expected.`,
19
- inputSchema: {
20
- type: "object",
21
- properties: {
22
- section: {
23
- type: "string",
24
- enum: ["all", "sources", "embedding", "llm", "ace", "digest", "ui"],
25
- description: "Config section to validate (default: all)",
26
- },
27
- fix_suggestions: {
28
- type: "boolean",
29
- description: "Include fix suggestions (default: true)",
30
- },
31
- },
32
- },
33
- };
34
- /** Patterns that indicate a field contains sensitive data (API keys, tokens, etc.) */
35
- const SENSITIVE_FIELD_PATTERNS = /key|token|password|secret|credential|bearer|api_key/i;
36
- /**
37
- * Redact a value if the field name suggests it contains sensitive data.
38
- * Returns "[REDACTED]" for sensitive fields, the original value otherwise.
39
- */
40
- function redactSensitiveValue(fieldName, value) {
41
- if (SENSITIVE_FIELD_PATTERNS.test(fieldName)) {
42
- return "[REDACTED]";
43
- }
44
- // Also check string values that look like API keys (long alphanumeric strings)
45
- if (typeof value === "string" && value.length > 20 && /^[A-Za-z0-9_\-./+=]+$/.test(value)) {
46
- // Heuristic: long opaque strings are likely secrets even if the field name doesn't match
47
- return "[REDACTED]";
48
- }
49
- return value;
50
- }
51
- /**
52
- * Scrub all `current_value` fields in validation issues to prevent API key leakage.
53
- */
54
- function redactIssues(issues) {
55
- return issues.map(issue => ({
56
- ...issue,
57
- current_value: redactSensitiveValue(issue.field, issue.current_value),
58
- }));
59
- }
60
- export function executeConfigValidator(db, params) {
61
- const { section = "all", fix_suggestions = true } = params;
62
- const dbInstance = db.db;
63
- // Get current settings
64
- let settingsRows = [];
65
- try {
66
- settingsRows = dbInstance.prepare(`
67
- SELECT key, value FROM settings
68
- `).all();
69
- }
70
- catch {
71
- return {
72
- overall_status: "warnings",
73
- sections: [],
74
- summary: { total_issues: 0, errors: 0, warnings: 1, info: 0 },
75
- quick_fixes: ["Settings table not found — running in standalone mode. Install the 4DA desktop app for full configuration management."],
76
- config_score: -1,
77
- };
78
- }
79
- const settings = {};
80
- for (const row of settingsRows) {
81
- try {
82
- settings[row.key] = JSON.parse(row.value);
83
- }
84
- catch {
85
- settings[row.key] = row.value;
86
- }
87
- }
88
- const sections = [];
89
- // Validate each section
90
- if (section === "all" || section === "sources") {
91
- sections.push(validateSources(settings, fix_suggestions));
92
- }
93
- if (section === "all" || section === "embedding") {
94
- sections.push(validateEmbedding(settings, fix_suggestions));
95
- }
96
- if (section === "all" || section === "llm") {
97
- sections.push(validateLLM(settings, fix_suggestions));
98
- }
99
- if (section === "all" || section === "ace") {
100
- sections.push(validateACE(settings, fix_suggestions));
101
- }
102
- if (section === "all" || section === "digest") {
103
- sections.push(validateDigest(settings, fix_suggestions));
104
- }
105
- if (section === "all" || section === "ui") {
106
- sections.push(validateUI(settings, fix_suggestions));
107
- }
108
- // Redact sensitive values from all issue current_value fields before output
109
- for (const sec of sections) {
110
- sec.issues = redactIssues(sec.issues);
111
- }
112
- // Calculate summary
113
- const allIssues = sections.flatMap(s => s.issues);
114
- const errors = allIssues.filter(i => i.severity === "error").length;
115
- const warnings = allIssues.filter(i => i.severity === "warning").length;
116
- const info = allIssues.filter(i => i.severity === "info").length;
117
- const overallStatus = errors > 0 ? "errors" : warnings > 0 ? "warnings" : "valid";
118
- // Generate quick fixes
119
- const quickFixes = allIssues
120
- .filter(i => i.fix && i.severity !== "info")
121
- .map(i => i.fix)
122
- .slice(0, 5);
123
- // Calculate config score (0-100)
124
- const maxScore = 100;
125
- const errorPenalty = errors * 20;
126
- const warningPenalty = warnings * 5;
127
- const configScore = Math.max(0, maxScore - errorPenalty - warningPenalty);
128
- return {
129
- overall_status: overallStatus,
130
- sections,
131
- summary: {
132
- total_issues: allIssues.length,
133
- errors,
134
- warnings,
135
- info,
136
- },
137
- quick_fixes: quickFixes,
138
- config_score: configScore,
139
- };
140
- }
141
- function validateSources(settings, includeFixes) {
142
- const issues = [];
143
- // Check enabled sources
144
- const sources = settings.sources;
145
- if (!sources) {
146
- issues.push({
147
- section: "sources",
148
- field: "sources",
149
- severity: "error",
150
- message: "No sources configured",
151
- current_value: undefined,
152
- expected: "At least one source should be enabled",
153
- fix: includeFixes ? "Add sources in Settings → Sources" : undefined,
154
- });
155
- }
156
- else {
157
- const enabledCount = Object.values(sources).filter(s => s.enabled).length;
158
- if (enabledCount === 0) {
159
- issues.push({
160
- section: "sources",
161
- field: "sources",
162
- severity: "error",
163
- message: "All sources are disabled",
164
- current_value: "0 enabled",
165
- expected: "At least one source should be enabled",
166
- fix: includeFixes ? "Enable at least one source in Settings" : undefined,
167
- });
168
- }
169
- }
170
- // Check fetch intervals
171
- const fetchInterval = settings.fetch_interval_minutes;
172
- if (fetchInterval && fetchInterval < 5) {
173
- issues.push({
174
- section: "sources",
175
- field: "fetch_interval_minutes",
176
- severity: "warning",
177
- message: "Very aggressive fetch interval may cause rate limiting",
178
- current_value: fetchInterval,
179
- expected: "5 minutes or more recommended",
180
- fix: includeFixes ? "Increase fetch_interval_minutes to 15+" : undefined,
181
- });
182
- }
183
- return {
184
- section: "sources",
185
- status: issues.some(i => i.severity === "error") ? "errors" :
186
- issues.some(i => i.severity === "warning") ? "warnings" : "valid",
187
- issue_count: issues.length,
188
- issues,
189
- };
190
- }
191
- function validateEmbedding(settings, includeFixes) {
192
- const issues = [];
193
- const embeddingProvider = settings.embedding_provider;
194
- const openaiKey = settings.openai_api_key;
195
- const ollamaUrl = settings.ollama_url;
196
- if (!embeddingProvider) {
197
- issues.push({
198
- section: "embedding",
199
- field: "embedding_provider",
200
- severity: "error",
201
- message: "No embedding provider configured",
202
- current_value: undefined,
203
- expected: "openai or ollama",
204
- fix: includeFixes ? "Set embedding_provider in Settings" : undefined,
205
- });
206
- }
207
- else if (embeddingProvider === "openai" && !openaiKey) {
208
- issues.push({
209
- section: "embedding",
210
- field: "openai_api_key",
211
- severity: "error",
212
- message: "OpenAI selected but no API key provided",
213
- current_value: "(empty)",
214
- expected: "Valid OpenAI API key",
215
- fix: includeFixes ? "Add your OpenAI API key in Settings → API Keys" : undefined,
216
- });
217
- }
218
- else if (embeddingProvider === "ollama" && !ollamaUrl) {
219
- issues.push({
220
- section: "embedding",
221
- field: "ollama_url",
222
- severity: "warning",
223
- message: "Ollama selected but no URL configured (using default)",
224
- current_value: ollamaUrl || "(empty)",
225
- expected: "http://localhost:11434 or custom URL",
226
- fix: includeFixes ? "Verify Ollama is running at default port" : undefined,
227
- });
228
- }
229
- // Check embedding model
230
- const embeddingModel = settings.embedding_model;
231
- if (!embeddingModel) {
232
- issues.push({
233
- section: "embedding",
234
- field: "embedding_model",
235
- severity: "info",
236
- message: "No embedding model specified (using default)",
237
- current_value: "(default)",
238
- expected: "text-embedding-3-small recommended",
239
- });
240
- }
241
- return {
242
- section: "embedding",
243
- status: issues.some(i => i.severity === "error") ? "errors" :
244
- issues.some(i => i.severity === "warning") ? "warnings" : "valid",
245
- issue_count: issues.length,
246
- issues,
247
- };
248
- }
249
- function validateLLM(settings, includeFixes) {
250
- const issues = [];
251
- const llmProvider = settings.llm_provider;
252
- const anthropicKey = settings.anthropic_api_key;
253
- const openaiKey = settings.openai_api_key;
254
- if (!llmProvider) {
255
- issues.push({
256
- section: "llm",
257
- field: "llm_provider",
258
- severity: "warning",
259
- message: "No LLM provider configured - relevance scoring will be limited",
260
- current_value: undefined,
261
- expected: "anthropic, openai, or ollama",
262
- fix: includeFixes ? "Configure an LLM provider for better relevance scoring" : undefined,
263
- });
264
- }
265
- else if (llmProvider === "anthropic" && !anthropicKey) {
266
- issues.push({
267
- section: "llm",
268
- field: "anthropic_api_key",
269
- severity: "error",
270
- message: "Anthropic selected but no API key provided",
271
- current_value: "(empty)",
272
- expected: "Valid Anthropic API key",
273
- fix: includeFixes ? "Add your Anthropic API key in Settings → API Keys" : undefined,
274
- });
275
- }
276
- else if (llmProvider === "openai" && !openaiKey) {
277
- issues.push({
278
- section: "llm",
279
- field: "openai_api_key",
280
- severity: "error",
281
- message: "OpenAI selected for LLM but no API key provided",
282
- current_value: "(empty)",
283
- expected: "Valid OpenAI API key",
284
- fix: includeFixes ? "Add your OpenAI API key in Settings → API Keys" : undefined,
285
- });
286
- }
287
- // Check daily limit
288
- const dailyLimit = settings.daily_cost_limit_usd;
289
- if (dailyLimit === undefined) {
290
- issues.push({
291
- section: "llm",
292
- field: "daily_cost_limit_usd",
293
- severity: "info",
294
- message: "No daily cost limit set",
295
- current_value: "(unlimited)",
296
- expected: "Consider setting a limit to avoid surprise bills",
297
- });
298
- }
299
- return {
300
- section: "llm",
301
- status: issues.some(i => i.severity === "error") ? "errors" :
302
- issues.some(i => i.severity === "warning") ? "warnings" : "valid",
303
- issue_count: issues.length,
304
- issues,
305
- };
306
- }
307
- function validateACE(settings, includeFixes) {
308
- const issues = [];
309
- const watchedDirs = settings.watched_directories;
310
- const aceEnabled = settings.ace_enabled;
311
- if (aceEnabled && (!watchedDirs || watchedDirs.length === 0)) {
312
- issues.push({
313
- section: "ace",
314
- field: "watched_directories",
315
- severity: "warning",
316
- message: "ACE enabled but no directories configured to watch",
317
- current_value: watchedDirs || [],
318
- expected: "At least one directory for context detection",
319
- fix: includeFixes ? "Add project directories in Settings → Context" : undefined,
320
- });
321
- }
322
- // Check for overly broad paths
323
- if (watchedDirs) {
324
- for (const dir of watchedDirs) {
325
- if (dir === "/" || dir === "C:\\" || dir.split(/[/\\]/).length <= 2) {
326
- issues.push({
327
- section: "ace",
328
- field: "watched_directories",
329
- severity: "warning",
330
- message: `Path "${dir}" is very broad - may cause performance issues`,
331
- current_value: dir,
332
- expected: "More specific project directories",
333
- fix: includeFixes ? `Use specific project paths instead of "${dir}"` : undefined,
334
- });
335
- }
336
- }
337
- }
338
- return {
339
- section: "ace",
340
- status: issues.some(i => i.severity === "error") ? "errors" :
341
- issues.some(i => i.severity === "warning") ? "warnings" : "valid",
342
- issue_count: issues.length,
343
- issues,
344
- };
345
- }
346
- function validateDigest(settings, includeFixes) {
347
- const issues = [];
348
- const digestEnabled = settings.digest_enabled;
349
- const digestEmail = settings.digest_email;
350
- if (digestEnabled && digestEmail) {
351
- // Basic email validation
352
- if (!digestEmail.includes("@") || !digestEmail.includes(".")) {
353
- issues.push({
354
- section: "digest",
355
- field: "digest_email",
356
- severity: "error",
357
- message: "Invalid email address format",
358
- current_value: digestEmail,
359
- expected: "Valid email address",
360
- fix: includeFixes ? "Correct the email address format" : undefined,
361
- });
362
- }
363
- }
364
- const digestFrequency = settings.digest_frequency;
365
- if (digestEnabled && !digestFrequency) {
366
- issues.push({
367
- section: "digest",
368
- field: "digest_frequency",
369
- severity: "info",
370
- message: "No digest frequency set (using default)",
371
- current_value: "(default)",
372
- expected: "daily, weekly, or custom schedule",
373
- });
374
- }
375
- return {
376
- section: "digest",
377
- status: issues.some(i => i.severity === "error") ? "errors" :
378
- issues.some(i => i.severity === "warning") ? "warnings" : "valid",
379
- issue_count: issues.length,
380
- issues,
381
- };
382
- }
383
- function validateUI(settings, includeFixes) {
384
- const issues = [];
385
- const theme = settings.theme;
386
- if (theme && !["dark", "light", "system"].includes(theme)) {
387
- issues.push({
388
- section: "ui",
389
- field: "theme",
390
- severity: "warning",
391
- message: "Unknown theme value",
392
- current_value: theme,
393
- expected: "dark, light, or system",
394
- fix: includeFixes ? "Set theme to dark, light, or system" : undefined,
395
- });
396
- }
397
- const maxResults = settings.max_results_per_page;
398
- if (maxResults && (maxResults < 5 || maxResults > 100)) {
399
- issues.push({
400
- section: "ui",
401
- field: "max_results_per_page",
402
- severity: "warning",
403
- message: "Unusual results per page value",
404
- current_value: maxResults,
405
- expected: "Between 5 and 100",
406
- fix: includeFixes ? "Set max_results_per_page to a reasonable value (10-50)" : undefined,
407
- });
408
- }
409
- return {
410
- section: "ui",
411
- status: issues.some(i => i.severity === "error") ? "errors" :
412
- issues.some(i => i.severity === "warning") ? "warnings" : "valid",
413
- issue_count: issues.length,
414
- issues,
415
- };
416
- }
417
- //# sourceMappingURL=config-validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../../src/tools/config-validator.ts"],"names":[],"mappings":"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"}
@@ -1,108 +0,0 @@
1
- /**
2
- * Context Analysis Tool
3
- *
4
- * Analyze and optimize your local context for better relevance.
5
- * This is a SUPERPOWER - it tells you how to make 4DA smarter about you.
6
- *
7
- * With synthesize=true, uses LLM to give personalized optimization advice.
8
- */
9
- import type { FourDADatabase } from "../db.js";
10
- import { type CompactResult, type ContextAnalysisKeyData } from "../output-manager.js";
11
- export declare const contextAnalysisTool: {
12
- name: string;
13
- description: string;
14
- inputSchema: {
15
- type: string;
16
- properties: {
17
- include_recommendations: {
18
- type: string;
19
- description: string;
20
- };
21
- analyze_gaps: {
22
- type: string;
23
- description: string;
24
- };
25
- synthesize: {
26
- type: string;
27
- description: string;
28
- };
29
- compact: {
30
- type: string;
31
- description: string;
32
- };
33
- };
34
- };
35
- };
36
- export interface ContextAnalysisParams {
37
- include_recommendations?: boolean;
38
- analyze_gaps?: boolean;
39
- synthesize?: boolean;
40
- compact?: boolean;
41
- }
42
- interface ContextQualityScore {
43
- overall: number;
44
- dimensions: {
45
- name: string;
46
- score: number;
47
- explanation: string;
48
- }[];
49
- }
50
- interface CoverageGap {
51
- area: string;
52
- evidence: string;
53
- recommendation: string;
54
- }
55
- interface ContextAnalysisResult {
56
- context_summary: {
57
- role: string | null;
58
- tech_stack_count: number;
59
- interests_count: number;
60
- domains_count: number;
61
- exclusions_count: number;
62
- detected_tech_count: number;
63
- active_topics_count: number;
64
- learned_affinities_count: number;
65
- anti_topics_count: number;
66
- };
67
- quality_score: ContextQualityScore;
68
- tech_stack: string[];
69
- interests: {
70
- topic: string;
71
- weight: number;
72
- }[];
73
- top_detected_tech: {
74
- name: string;
75
- confidence: number;
76
- }[];
77
- top_active_topics: {
78
- topic: string;
79
- weight: number;
80
- }[];
81
- top_affinities: {
82
- topic: string;
83
- score: number;
84
- }[];
85
- exclusions: string[];
86
- coverage_gaps: CoverageGap[];
87
- recommendations: {
88
- priority: "high" | "medium" | "low";
89
- action: string;
90
- impact: string;
91
- }[];
92
- recent_items_breakdown: {
93
- matched_by_interests: number;
94
- matched_by_tech: number;
95
- matched_by_ace: number;
96
- matched_by_learned: number;
97
- unmatched: number;
98
- };
99
- ai_advice?: {
100
- personalized_recommendations: string;
101
- highest_impact_change: string;
102
- ideal_context_description: string;
103
- model_used: string;
104
- };
105
- }
106
- export declare function executeContextAnalysis(db: FourDADatabase, params: ContextAnalysisParams): Promise<ContextAnalysisResult | CompactResult<ContextAnalysisKeyData>>;
107
- export {};
108
- //# sourceMappingURL=context-analysis.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-analysis.d.ts","sourceRoot":"","sources":["../../src/tools/context-analysis.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAgC,KAAK,aAAa,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAErH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;CAkC/B,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;CACL;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,qBAAqB;IAC7B,eAAe,EAAE;QACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,wBAAwB,EAAE,MAAM,CAAC;QACjC,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,aAAa,EAAE,mBAAmB,CAAC;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/C,iBAAiB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1D,iBAAiB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,eAAe,EAAE;QACf,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACpC,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE,CAAC;IACJ,sBAAsB,EAAE;QACtB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,SAAS,CAAC,EAAE;QACV,4BAA4B,EAAE,MAAM,CAAC;QACrC,qBAAqB,EAAE,MAAM,CAAC;QAC9B,yBAAyB,EAAE,MAAM,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,GAAG,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAuGxE"}