@4da/mcp-server 4.5.0 → 4.6.1

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 (257) hide show
  1. package/LICENSE +201 -21
  2. package/README.md +63 -83
  3. package/dist/auth.js +1 -1
  4. package/dist/auth.js.map +1 -1
  5. package/dist/db.d.ts +46 -1
  6. package/dist/db.d.ts.map +1 -1
  7. package/dist/db.js +156 -36
  8. package/dist/db.js.map +1 -1
  9. package/dist/doctor.js +1 -1
  10. package/dist/doctor.js.map +1 -1
  11. package/dist/http-transport.js +1 -1
  12. package/dist/http-transport.js.map +1 -1
  13. package/dist/index.d.ts +9 -14
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +49 -35
  16. package/dist/index.js.map +1 -1
  17. package/dist/live/cache.js +1 -1
  18. package/dist/live/cache.js.map +1 -1
  19. package/dist/live/crates-registry.js +1 -1
  20. package/dist/live/crates-registry.js.map +1 -1
  21. package/dist/live/go-registry.js +1 -1
  22. package/dist/live/go-registry.js.map +1 -1
  23. package/dist/live/hn-fetcher.js +1 -1
  24. package/dist/live/hn-fetcher.js.map +1 -1
  25. package/dist/live/http-utils.js +1 -1
  26. package/dist/live/http-utils.js.map +1 -1
  27. package/dist/live/index.d.ts +28 -0
  28. package/dist/live/index.d.ts.map +1 -1
  29. package/dist/live/index.js +63 -4
  30. package/dist/live/index.js.map +1 -1
  31. package/dist/live/npm-registry.js +1 -1
  32. package/dist/live/npm-registry.js.map +1 -1
  33. package/dist/live/osv-scanner.d.ts +4 -0
  34. package/dist/live/osv-scanner.d.ts.map +1 -1
  35. package/dist/live/osv-scanner.js +45 -40
  36. package/dist/live/osv-scanner.js.map +1 -1
  37. package/dist/live/pypi-registry.js +1 -1
  38. package/dist/live/pypi-registry.js.map +1 -1
  39. package/dist/live/rate-limiter.js +1 -1
  40. package/dist/live/rate-limiter.js.map +1 -1
  41. package/dist/live/semver-utils.js +1 -1
  42. package/dist/live/semver-utils.js.map +1 -1
  43. package/dist/live/types.d.ts +4 -0
  44. package/dist/live/types.d.ts.map +1 -1
  45. package/dist/live/types.js +1 -1
  46. package/dist/live/types.js.map +1 -1
  47. package/dist/live/version-resolver.d.ts +5 -0
  48. package/dist/live/version-resolver.d.ts.map +1 -1
  49. package/dist/live/version-resolver.js +64 -14
  50. package/dist/live/version-resolver.js.map +1 -1
  51. package/dist/live-singleton.js +1 -1
  52. package/dist/live-singleton.js.map +1 -1
  53. package/dist/llm.d.ts.map +1 -1
  54. package/dist/llm.js +13 -16
  55. package/dist/llm.js.map +1 -1
  56. package/dist/output-manager.js +1 -1
  57. package/dist/output-manager.js.map +1 -1
  58. package/dist/project-scanner.d.ts +5 -0
  59. package/dist/project-scanner.d.ts.map +1 -1
  60. package/dist/project-scanner.js +66 -10
  61. package/dist/project-scanner.js.map +1 -1
  62. package/dist/schema-registry.d.ts +4 -2
  63. package/dist/schema-registry.d.ts.map +1 -1
  64. package/dist/schema-registry.js +58 -238
  65. package/dist/schema-registry.js.map +1 -1
  66. package/dist/schemas/agent-memory.json +1 -1
  67. package/dist/schemas/decision-enforcement.json +1 -1
  68. package/dist/schemas/decision-memory.json +1 -1
  69. package/dist/schemas/dependency-health.json +1 -1
  70. package/dist/schemas/developer-dna.json +1 -1
  71. package/dist/schemas/ecosystem-pulse.json +1 -1
  72. package/dist/schemas/get-actionable-signals.json +1 -1
  73. package/dist/schemas/get-context.json +1 -1
  74. package/dist/schemas/get-relevant-content.json +1 -1
  75. package/dist/schemas/knowledge-gaps.json +1 -1
  76. package/dist/schemas/record-feedback.json +1 -1
  77. package/dist/schemas/upgrade-planner.json +1 -1
  78. package/dist/schemas/vulnerability-scan.json +2 -2
  79. package/dist/setup.js +1 -1
  80. package/dist/setup.js.map +1 -1
  81. package/dist/tool-dispatch.d.ts +1 -7
  82. package/dist/tool-dispatch.d.ts.map +1 -1
  83. package/dist/tool-dispatch.js +51 -50
  84. package/dist/tool-dispatch.js.map +1 -1
  85. package/dist/tools/agent-memory.js +1 -1
  86. package/dist/tools/agent-memory.js.map +1 -1
  87. package/dist/tools/decision-enforcement.js +1 -1
  88. package/dist/tools/decision-enforcement.js.map +1 -1
  89. package/dist/tools/decision-memory.d.ts +0 -2
  90. package/dist/tools/decision-memory.d.ts.map +1 -1
  91. package/dist/tools/decision-memory.js +1 -80
  92. package/dist/tools/decision-memory.js.map +1 -1
  93. package/dist/tools/dependency-health.js +1 -1
  94. package/dist/tools/dependency-health.js.map +1 -1
  95. package/dist/tools/developer-dna.js +1 -1
  96. package/dist/tools/developer-dna.js.map +1 -1
  97. package/dist/tools/ecosystem-pulse.js +1 -1
  98. package/dist/tools/ecosystem-pulse.js.map +1 -1
  99. package/dist/tools/get-actionable-signals.d.ts.map +1 -1
  100. package/dist/tools/get-actionable-signals.js +26 -1
  101. package/dist/tools/get-actionable-signals.js.map +1 -1
  102. package/dist/tools/get-context.js +1 -1
  103. package/dist/tools/get-context.js.map +1 -1
  104. package/dist/tools/get-relevant-content.js +1 -1
  105. package/dist/tools/get-relevant-content.js.map +1 -1
  106. package/dist/tools/index.d.ts +13 -42
  107. package/dist/tools/index.d.ts.map +1 -1
  108. package/dist/tools/index.js +19 -55
  109. package/dist/tools/index.js.map +1 -1
  110. package/dist/tools/knowledge-gaps.js +1 -1
  111. package/dist/tools/knowledge-gaps.js.map +1 -1
  112. package/dist/tools/record-feedback.js +1 -1
  113. package/dist/tools/record-feedback.js.map +1 -1
  114. package/dist/tools/upgrade-planner.js +1 -1
  115. package/dist/tools/upgrade-planner.js.map +1 -1
  116. package/dist/tools/vulnerability-scan.d.ts +7 -3
  117. package/dist/tools/vulnerability-scan.d.ts.map +1 -1
  118. package/dist/tools/vulnerability-scan.js +19 -6
  119. package/dist/tools/vulnerability-scan.js.map +1 -1
  120. package/dist/tools/what-should-i-know.d.ts +3 -12
  121. package/dist/tools/what-should-i-know.d.ts.map +1 -1
  122. package/dist/tools/what-should-i-know.js +11 -171
  123. package/dist/tools/what-should-i-know.js.map +1 -1
  124. package/dist/types.d.ts +4 -0
  125. package/dist/types.d.ts.map +1 -1
  126. package/dist/types.js +1 -1
  127. package/dist/types.js.map +1 -1
  128. package/package.json +12 -8
  129. package/dist/schemas/agent-feedback-stats.json +0 -14
  130. package/dist/schemas/agent-session-brief.json +0 -25
  131. package/dist/schemas/attention-report.json +0 -13
  132. package/dist/schemas/autophagy-status.json +0 -13
  133. package/dist/schemas/compound-advantage.json +0 -14
  134. package/dist/schemas/config-validator.json +0 -18
  135. package/dist/schemas/context-analysis.json +0 -25
  136. package/dist/schemas/daily-briefing.json +0 -34
  137. package/dist/schemas/decision-windows.json +0 -22
  138. package/dist/schemas/delegation-score.json +0 -18
  139. package/dist/schemas/explain-relevance.json +0 -19
  140. package/dist/schemas/export-context.json +0 -17
  141. package/dist/schemas/llm-status.json +0 -13
  142. package/dist/schemas/preemption-feed.json +0 -18
  143. package/dist/schemas/project-health.json +0 -13
  144. package/dist/schemas/record-agent-feedback.json +0 -28
  145. package/dist/schemas/reverse-mentions.json +0 -13
  146. package/dist/schemas/score-autopsy.json +0 -30
  147. package/dist/schemas/semantic-shifts.json +0 -17
  148. package/dist/schemas/signal-chains.json +0 -19
  149. package/dist/schemas/source-health.json +0 -17
  150. package/dist/schemas/tech-radar.json +0 -23
  151. package/dist/schemas/topic-connections.json +0 -34
  152. package/dist/schemas/trend-analysis.json +0 -29
  153. package/dist/schemas/trust-summary.json +0 -13
  154. package/dist/tools/agent-feedback-stats.d.ts +0 -30
  155. package/dist/tools/agent-feedback-stats.d.ts.map +0 -1
  156. package/dist/tools/agent-feedback-stats.js +0 -41
  157. package/dist/tools/agent-feedback-stats.js.map +0 -1
  158. package/dist/tools/agent-session-brief.d.ts +0 -44
  159. package/dist/tools/agent-session-brief.d.ts.map +0 -1
  160. package/dist/tools/agent-session-brief.js +0 -179
  161. package/dist/tools/agent-session-brief.js.map +0 -1
  162. package/dist/tools/attention-report.d.ts +0 -40
  163. package/dist/tools/attention-report.d.ts.map +0 -1
  164. package/dist/tools/attention-report.js +0 -73
  165. package/dist/tools/attention-report.js.map +0 -1
  166. package/dist/tools/autophagy-status.d.ts +0 -25
  167. package/dist/tools/autophagy-status.d.ts.map +0 -1
  168. package/dist/tools/autophagy-status.js +0 -56
  169. package/dist/tools/autophagy-status.js.map +0 -1
  170. package/dist/tools/compound-advantage.d.ts +0 -30
  171. package/dist/tools/compound-advantage.d.ts.map +0 -1
  172. package/dist/tools/compound-advantage.js +0 -133
  173. package/dist/tools/compound-advantage.js.map +0 -1
  174. package/dist/tools/config-validator.d.ts +0 -59
  175. package/dist/tools/config-validator.d.ts.map +0 -1
  176. package/dist/tools/config-validator.js +0 -417
  177. package/dist/tools/config-validator.js.map +0 -1
  178. package/dist/tools/context-analysis.d.ts +0 -108
  179. package/dist/tools/context-analysis.d.ts.map +0 -1
  180. package/dist/tools/context-analysis.js +0 -301
  181. package/dist/tools/context-analysis.js.map +0 -1
  182. package/dist/tools/daily-briefing.d.ts +0 -103
  183. package/dist/tools/daily-briefing.d.ts.map +0 -1
  184. package/dist/tools/daily-briefing.js +0 -294
  185. package/dist/tools/daily-briefing.js.map +0 -1
  186. package/dist/tools/decision-windows.d.ts +0 -37
  187. package/dist/tools/decision-windows.d.ts.map +0 -1
  188. package/dist/tools/decision-windows.js +0 -67
  189. package/dist/tools/decision-windows.js.map +0 -1
  190. package/dist/tools/delegation-score.d.ts +0 -34
  191. package/dist/tools/delegation-score.d.ts.map +0 -1
  192. package/dist/tools/delegation-score.js +0 -260
  193. package/dist/tools/delegation-score.js.map +0 -1
  194. package/dist/tools/explain-relevance.d.ts +0 -36
  195. package/dist/tools/explain-relevance.d.ts.map +0 -1
  196. package/dist/tools/explain-relevance.js +0 -51
  197. package/dist/tools/explain-relevance.js.map +0 -1
  198. package/dist/tools/export-context.d.ts +0 -60
  199. package/dist/tools/export-context.d.ts.map +0 -1
  200. package/dist/tools/export-context.js +0 -179
  201. package/dist/tools/export-context.js.map +0 -1
  202. package/dist/tools/llm-status.d.ts +0 -45
  203. package/dist/tools/llm-status.d.ts.map +0 -1
  204. package/dist/tools/llm-status.js +0 -93
  205. package/dist/tools/llm-status.js.map +0 -1
  206. package/dist/tools/muse-context.d.ts +0 -195
  207. package/dist/tools/muse-context.d.ts.map +0 -1
  208. package/dist/tools/muse-context.js +0 -284
  209. package/dist/tools/muse-context.js.map +0 -1
  210. package/dist/tools/preemption-feed.d.ts +0 -55
  211. package/dist/tools/preemption-feed.d.ts.map +0 -1
  212. package/dist/tools/preemption-feed.js +0 -124
  213. package/dist/tools/preemption-feed.js.map +0 -1
  214. package/dist/tools/project-health.d.ts +0 -53
  215. package/dist/tools/project-health.d.ts.map +0 -1
  216. package/dist/tools/project-health.js +0 -122
  217. package/dist/tools/project-health.js.map +0 -1
  218. package/dist/tools/record-agent-feedback.d.ts +0 -46
  219. package/dist/tools/record-agent-feedback.d.ts.map +0 -1
  220. package/dist/tools/record-agent-feedback.js +0 -71
  221. package/dist/tools/record-agent-feedback.js.map +0 -1
  222. package/dist/tools/reverse-mentions.d.ts +0 -38
  223. package/dist/tools/reverse-mentions.d.ts.map +0 -1
  224. package/dist/tools/reverse-mentions.js +0 -75
  225. package/dist/tools/reverse-mentions.js.map +0 -1
  226. package/dist/tools/score-autopsy.d.ts +0 -93
  227. package/dist/tools/score-autopsy.d.ts.map +0 -1
  228. package/dist/tools/score-autopsy.js +0 -295
  229. package/dist/tools/score-autopsy.js.map +0 -1
  230. package/dist/tools/semantic-shifts.d.ts +0 -53
  231. package/dist/tools/semantic-shifts.d.ts.map +0 -1
  232. package/dist/tools/semantic-shifts.js +0 -74
  233. package/dist/tools/semantic-shifts.js.map +0 -1
  234. package/dist/tools/signal-chains.d.ts +0 -52
  235. package/dist/tools/signal-chains.d.ts.map +0 -1
  236. package/dist/tools/signal-chains.js +0 -63
  237. package/dist/tools/signal-chains.js.map +0 -1
  238. package/dist/tools/source-health.d.ts +0 -64
  239. package/dist/tools/source-health.d.ts.map +0 -1
  240. package/dist/tools/source-health.js +0 -205
  241. package/dist/tools/source-health.js.map +0 -1
  242. package/dist/tools/tech-radar.d.ts +0 -38
  243. package/dist/tools/tech-radar.d.ts.map +0 -1
  244. package/dist/tools/tech-radar.js +0 -249
  245. package/dist/tools/tech-radar.js.map +0 -1
  246. package/dist/tools/topic-connections.d.ts +0 -112
  247. package/dist/tools/topic-connections.d.ts.map +0 -1
  248. package/dist/tools/topic-connections.js +0 -319
  249. package/dist/tools/topic-connections.js.map +0 -1
  250. package/dist/tools/trend-analysis.d.ts +0 -105
  251. package/dist/tools/trend-analysis.d.ts.map +0 -1
  252. package/dist/tools/trend-analysis.js +0 -296
  253. package/dist/tools/trend-analysis.js.map +0 -1
  254. package/dist/tools/trust-summary.d.ts +0 -38
  255. package/dist/tools/trust-summary.d.ts.map +0 -1
  256. package/dist/tools/trust-summary.js +0 -89
  257. package/dist/tools/trust-summary.js.map +0 -1
@@ -1,301 +0,0 @@
1
- // SPDX-License-Identifier: FSL-1.1-Apache-2.0
2
- /**
3
- * Context Analysis Tool
4
- *
5
- * Analyze and optimize your local context for better relevance.
6
- * This is a SUPERPOWER - it tells you how to make 4DA smarter about you.
7
- *
8
- * With synthesize=true, uses LLM to give personalized optimization advice.
9
- */
10
- import { getLLMConfig, canSynthesize, synthesize, SYNTHESIS_PROMPTS } from "../llm.js";
11
- import { createContextAnalysisCompact } from "../output-manager.js";
12
- export const contextAnalysisTool = {
13
- name: "context_analysis",
14
- description: `Analyze your 4DA context and get optimization recommendations.
15
-
16
- With synthesize=true (recommended), uses AI for personalized optimization advice.
17
-
18
- Returns:
19
- - Current context summary (tech stack, interests, topics)
20
- - Context quality score
21
- - Coverage gaps (what you care about but isn't tracked)
22
- - AI-powered personalized recommendations (when enabled)
23
-
24
- Use this to tune 4DA for better personalization.`,
25
- inputSchema: {
26
- type: "object",
27
- properties: {
28
- include_recommendations: {
29
- type: "boolean",
30
- description: "Include optimization recommendations (default: true)",
31
- },
32
- analyze_gaps: {
33
- type: "boolean",
34
- description: "Analyze coverage gaps (default: true)",
35
- },
36
- synthesize: {
37
- type: "boolean",
38
- description: "Use AI for personalized advice (default: true if LLM configured)",
39
- },
40
- compact: {
41
- type: "boolean",
42
- description: "Return compact result with file reference (default: true for ~80% token reduction)",
43
- },
44
- },
45
- },
46
- };
47
- export async function executeContextAnalysis(db, params) {
48
- const { include_recommendations = true, analyze_gaps = true } = params;
49
- const useCompact = params.compact !== false; // Default to compact=true
50
- // Check LLM availability
51
- const dbInstance = db.db;
52
- const llmConfig = getLLMConfig(dbInstance);
53
- const shouldSynthesize = params.synthesize ?? canSynthesize(llmConfig);
54
- // Get full context
55
- const context = db.getUserContext(true, true);
56
- // Get recent items to analyze matching patterns
57
- const recentItems = db.getRelevantContent(0, undefined, 100, 168); // Last week
58
- // Calculate quality score
59
- const qualityScore = calculateQualityScore(context);
60
- // Analyze recent items breakdown
61
- const itemsBreakdown = analyzeItemsBreakdown(db, recentItems);
62
- // Find coverage gaps
63
- const coverageGaps = analyze_gaps ? findCoverageGaps(context, recentItems) : [];
64
- // Generate recommendations
65
- const recommendations = include_recommendations
66
- ? generateRecommendations(context, qualityScore, coverageGaps, itemsBreakdown)
67
- : [];
68
- const result = {
69
- context_summary: {
70
- role: context.role,
71
- tech_stack_count: context.tech_stack.length,
72
- interests_count: context.interests.length,
73
- domains_count: context.domains.length,
74
- exclusions_count: context.exclusions.length,
75
- detected_tech_count: context.ace?.detected_tech.length || 0,
76
- active_topics_count: context.ace?.active_topics.length || 0,
77
- learned_affinities_count: context.learned?.topic_affinities.length || 0,
78
- anti_topics_count: context.learned?.anti_topics.length || 0,
79
- },
80
- quality_score: qualityScore,
81
- tech_stack: context.tech_stack,
82
- interests: context.interests.map(i => ({ topic: i.topic, weight: i.weight })),
83
- top_detected_tech: (context.ace?.detected_tech || [])
84
- .slice(0, 10)
85
- .map(t => ({ name: t.name, confidence: t.confidence })),
86
- top_active_topics: (context.ace?.active_topics || [])
87
- .slice(0, 10)
88
- .map(t => ({ topic: t.topic, weight: t.weight })),
89
- top_affinities: (context.learned?.topic_affinities || [])
90
- .filter(a => a.affinity_score > 0)
91
- .slice(0, 10)
92
- .map(a => ({ topic: a.topic, score: a.affinity_score })),
93
- exclusions: context.exclusions,
94
- coverage_gaps: coverageGaps,
95
- recommendations,
96
- recent_items_breakdown: itemsBreakdown,
97
- };
98
- // AI Personalized Advice - the actual superpower
99
- if (shouldSynthesize && canSynthesize(llmConfig)) {
100
- try {
101
- const analysisData = {
102
- context_summary: result.context_summary,
103
- quality_score: result.quality_score,
104
- coverage_gaps: result.coverage_gaps,
105
- recommendations: result.recommendations,
106
- recent_items_breakdown: result.recent_items_breakdown,
107
- };
108
- const synthesis = await synthesize(llmConfig, {
109
- system: SYNTHESIS_PROMPTS.contextAnalysis.system,
110
- prompt: SYNTHESIS_PROMPTS.contextAnalysis.buildPrompt(analysisData),
111
- max_tokens: 350,
112
- complexity: SYNTHESIS_PROMPTS.contextAnalysis.complexity,
113
- });
114
- // Parse the synthesis
115
- const lines = synthesis.synthesis.split("\n").filter(l => l.trim());
116
- const highestImpact = lines.find(l => l.toLowerCase().includes("highest") ||
117
- l.toLowerCase().includes("most important") ||
118
- l.toLowerCase().includes("first")) || lines[0] || "";
119
- result.ai_advice = {
120
- personalized_recommendations: synthesis.synthesis,
121
- highest_impact_change: highestImpact,
122
- ideal_context_description: lines[lines.length - 1] || "",
123
- model_used: synthesis.model_used,
124
- };
125
- }
126
- catch (error) {
127
- console.error("AI advice failed:", error);
128
- }
129
- }
130
- // Return compact or full result based on parameter
131
- if (useCompact) {
132
- return createContextAnalysisCompact(result);
133
- }
134
- return result;
135
- }
136
- function calculateQualityScore(context) {
137
- const dimensions = [];
138
- // Explicit signals (tech stack + interests)
139
- const explicitScore = Math.min(1, (context.tech_stack.length + context.interests.length) / 10);
140
- dimensions.push({
141
- name: "Explicit Signals",
142
- score: Math.round(explicitScore * 100) / 100,
143
- explanation: explicitScore >= 0.7
144
- ? "Good coverage of explicit interests and tech"
145
- : "Consider adding more interests and tech stack items",
146
- });
147
- // ACE coverage
148
- const aceScore = context.ace
149
- ? Math.min(1, (context.ace.detected_tech.length + context.ace.active_topics.length) / 20)
150
- : 0;
151
- dimensions.push({
152
- name: "ACE Detection",
153
- score: Math.round(aceScore * 100) / 100,
154
- explanation: aceScore >= 0.5
155
- ? "ACE is detecting your work context well"
156
- : aceScore > 0
157
- ? "ACE has some detection - consider adding more watched directories"
158
- : "ACE not active - add directories to watch",
159
- });
160
- // Learned preferences
161
- const learnedScore = context.learned
162
- ? Math.min(1, context.learned.topic_affinities.filter(a => a.affinity_score > 0).length / 15)
163
- : 0;
164
- dimensions.push({
165
- name: "Learned Preferences",
166
- score: Math.round(learnedScore * 100) / 100,
167
- explanation: learnedScore >= 0.5
168
- ? "Good learning from your feedback"
169
- : "Give more feedback to help 4DA learn your preferences",
170
- });
171
- // Diversity
172
- const diversity = new Set([
173
- ...context.tech_stack,
174
- ...context.interests.map(i => i.topic),
175
- ...context.domains,
176
- ]).size;
177
- const diversityScore = Math.min(1, diversity / 15);
178
- dimensions.push({
179
- name: "Diversity",
180
- score: Math.round(diversityScore * 100) / 100,
181
- explanation: diversityScore >= 0.6
182
- ? "Good topic diversity"
183
- : "Consider broadening your declared interests",
184
- });
185
- const overall = dimensions.reduce((sum, d) => sum + d.score, 0) / dimensions.length;
186
- return {
187
- overall: Math.round(overall * 100) / 100,
188
- dimensions,
189
- };
190
- }
191
- function analyzeItemsBreakdown(db, items) {
192
- let interests = 0;
193
- let tech = 0;
194
- let ace = 0;
195
- let learned = 0;
196
- let unmatched = 0;
197
- // Sample up to 20 items for detailed analysis
198
- const sample = items.slice(0, 20);
199
- for (const item of sample) {
200
- const explanation = db.explainRelevance(item.id, item.source_type);
201
- if (!explanation) {
202
- unmatched++;
203
- continue;
204
- }
205
- const mc = explanation.matching_context;
206
- if (mc.matching_interests.length > 0)
207
- interests++;
208
- else if (mc.matching_tech.length > 0)
209
- tech++;
210
- else if (mc.matching_topics.length > 0)
211
- ace++;
212
- else if (mc.matching_affinities.length > 0)
213
- learned++;
214
- else
215
- unmatched++;
216
- }
217
- return {
218
- matched_by_interests: interests,
219
- matched_by_tech: tech,
220
- matched_by_ace: ace,
221
- matched_by_learned: learned,
222
- unmatched,
223
- };
224
- }
225
- function findCoverageGaps(context, items) {
226
- const gaps = [];
227
- // Find high-scoring items that don't match explicit context
228
- const unmatchedHighScorers = items
229
- .filter(i => i.relevance_score >= 0.6)
230
- .filter(i => {
231
- const text = (i.title + " " + i.content).toLowerCase();
232
- const matchesExplicit = context.tech_stack.some(t => text.includes(t.toLowerCase())) ||
233
- context.interests.some(int => text.includes(int.topic.toLowerCase()));
234
- return !matchesExplicit;
235
- })
236
- .slice(0, 5);
237
- for (const item of unmatchedHighScorers) {
238
- // Extract potential topic
239
- const words = item.title.toLowerCase().split(/\s+/).filter(w => w.length > 4);
240
- const potentialTopic = words[0] || "unidentified topic";
241
- gaps.push({
242
- area: potentialTopic,
243
- evidence: `Item "${item.title.substring(0, 50)}..." scored ${Math.round(item.relevance_score * 100)}% without explicit interest match`,
244
- recommendation: `Consider adding "${potentialTopic}" as an explicit interest`,
245
- });
246
- }
247
- // Check for ACE gaps
248
- if (!context.ace || context.ace.active_topics.length === 0) {
249
- gaps.push({
250
- area: "Local Context",
251
- evidence: "No active topics detected from local files",
252
- recommendation: "Ensure ACE is scanning your active project directories",
253
- });
254
- }
255
- return gaps.slice(0, 5);
256
- }
257
- function generateRecommendations(context, quality, gaps, breakdown) {
258
- const recommendations = [];
259
- // Low quality score
260
- if (quality.overall < 0.5) {
261
- recommendations.push({
262
- priority: "high",
263
- action: "Add more explicit interests and tech stack items",
264
- impact: "Will significantly improve relevance scoring",
265
- });
266
- }
267
- // No ACE
268
- if (!context.ace || context.ace.detected_tech.length === 0) {
269
- recommendations.push({
270
- priority: "high",
271
- action: "Configure watched directories for ACE scanning",
272
- impact: "Enables automatic context detection from your code",
273
- });
274
- }
275
- // Low learned preferences
276
- if (!context.learned || context.learned.topic_affinities.filter(a => a.affinity_score > 0).length < 5) {
277
- recommendations.push({
278
- priority: "medium",
279
- action: "Provide more feedback on items (click, save, dismiss)",
280
- impact: "Helps 4DA learn your preferences over time",
281
- });
282
- }
283
- // Coverage gaps
284
- for (const gap of gaps.slice(0, 2)) {
285
- recommendations.push({
286
- priority: "medium",
287
- action: gap.recommendation,
288
- impact: `Would improve matching for "${gap.area}" content`,
289
- });
290
- }
291
- // High unmatched rate
292
- if (breakdown.unmatched > 10) {
293
- recommendations.push({
294
- priority: "low",
295
- action: "Review your exclusions - may be too aggressive",
296
- impact: "Could be filtering out relevant content",
297
- });
298
- }
299
- return recommendations;
300
- }
301
- //# sourceMappingURL=context-analysis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-analysis.js","sourceRoot":"","sources":["../../src/tools/context-analysis.ts"],"names":[],"mappings":"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"}
@@ -1,103 +0,0 @@
1
- /**
2
- * Daily Briefing Tool
3
- *
4
- * Generate an executive summary of 4DA's discoveries.
5
- * This is a SUPERPOWER - it synthesizes noise into actionable intelligence.
6
- *
7
- * With synthesize=true, uses LLM to generate genuine insights.
8
- */
9
- import type { FourDADatabase } from "../db.js";
10
- import { type CompactResult, type DailyBriefingKeyData } from "../output-manager.js";
11
- export declare const dailyBriefingTool: {
12
- name: string;
13
- description: string;
14
- inputSchema: {
15
- type: string;
16
- properties: {
17
- hours: {
18
- type: string;
19
- description: string;
20
- };
21
- min_score: {
22
- type: string;
23
- description: string;
24
- };
25
- max_items: {
26
- type: string;
27
- description: string;
28
- };
29
- format: {
30
- type: string;
31
- enum: string[];
32
- description: string;
33
- };
34
- synthesize: {
35
- type: string;
36
- description: string;
37
- };
38
- compact: {
39
- type: string;
40
- description: string;
41
- };
42
- };
43
- };
44
- };
45
- export interface DailyBriefingParams {
46
- hours?: number;
47
- min_score?: number;
48
- max_items?: number;
49
- format?: "full" | "brief" | "actionable";
50
- synthesize?: boolean;
51
- compact?: boolean;
52
- }
53
- interface Theme {
54
- name: string;
55
- item_count: number;
56
- avg_score: number;
57
- top_items: {
58
- title: string;
59
- score: number;
60
- url: string | null;
61
- }[];
62
- insight: string;
63
- }
64
- interface BriefingResult {
65
- period: {
66
- start: string;
67
- end: string;
68
- hours: number;
69
- };
70
- summary: {
71
- total_items_analyzed: number;
72
- high_relevance_count: number;
73
- avg_score: number;
74
- tldr: string;
75
- };
76
- themes: Theme[];
77
- notable_items: {
78
- id: number;
79
- title: string;
80
- url: string | null;
81
- source: string;
82
- score: number;
83
- why_notable: string;
84
- }[];
85
- recommendations: {
86
- priority: "high" | "medium" | "low";
87
- action: string;
88
- reasoning: string;
89
- }[];
90
- trends: {
91
- rising: string[];
92
- falling: string[];
93
- };
94
- ai_synthesis?: {
95
- executive_brief: string;
96
- key_insight: string;
97
- action_item: string;
98
- model_used: string;
99
- };
100
- }
101
- export declare function executeDailyBriefing(db: FourDADatabase, params: DailyBriefingParams): Promise<BriefingResult | CompactResult<DailyBriefingKeyData>>;
102
- export {};
103
- //# sourceMappingURL=daily-briefing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"daily-briefing.d.ts","sourceRoot":"","sources":["../../src/tools/daily-briefing.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAA8B,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C7B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,cAAc;IACtB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE;QACP,oBAAoB,EAAE,MAAM,CAAC;QAC7B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,aAAa,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;IACJ,eAAe,EAAE;QACf,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACpC,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;IACJ,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAEF,YAAY,CAAC,EAAE;QACb,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,cAAc,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAuH/D"}