@4da/mcp-server 4.0.0 → 4.1.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 (209) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +160 -85
  3. package/dist/auth.d.ts +36 -0
  4. package/dist/auth.d.ts.map +1 -0
  5. package/dist/auth.js +82 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/db.d.ts +73 -0
  8. package/dist/db.d.ts.map +1 -1
  9. package/dist/db.js +607 -4
  10. package/dist/db.js.map +1 -1
  11. package/dist/doctor.d.ts.map +1 -1
  12. package/dist/doctor.js +33 -7
  13. package/dist/doctor.js.map +1 -1
  14. package/dist/http-transport.d.ts.map +1 -1
  15. package/dist/http-transport.js +19 -2
  16. package/dist/http-transport.js.map +1 -1
  17. package/dist/index.d.ts +15 -18
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +150 -325
  20. package/dist/index.js.map +1 -1
  21. package/dist/live/cache.d.ts +16 -0
  22. package/dist/live/cache.d.ts.map +1 -0
  23. package/dist/live/cache.js +61 -0
  24. package/dist/live/cache.js.map +1 -0
  25. package/dist/live/hn-fetcher.d.ts +19 -0
  26. package/dist/live/hn-fetcher.d.ts.map +1 -0
  27. package/dist/live/hn-fetcher.js +123 -0
  28. package/dist/live/hn-fetcher.js.map +1 -0
  29. package/dist/live/index.d.ts +55 -0
  30. package/dist/live/index.d.ts.map +1 -0
  31. package/dist/live/index.js +131 -0
  32. package/dist/live/index.js.map +1 -0
  33. package/dist/live/osv-scanner.d.ts +19 -0
  34. package/dist/live/osv-scanner.d.ts.map +1 -0
  35. package/dist/live/osv-scanner.js +197 -0
  36. package/dist/live/osv-scanner.js.map +1 -0
  37. package/dist/live/rate-limiter.d.ts +19 -0
  38. package/dist/live/rate-limiter.d.ts.map +1 -0
  39. package/dist/live/rate-limiter.js +52 -0
  40. package/dist/live/rate-limiter.js.map +1 -0
  41. package/dist/live/types.d.ts +89 -0
  42. package/dist/live/types.d.ts.map +1 -0
  43. package/dist/live/types.js +3 -0
  44. package/dist/live/types.js.map +1 -0
  45. package/dist/live/version-resolver.d.ts +11 -0
  46. package/dist/live/version-resolver.d.ts.map +1 -0
  47. package/dist/live/version-resolver.js +321 -0
  48. package/dist/live/version-resolver.js.map +1 -0
  49. package/dist/live-singleton.d.ts +9 -0
  50. package/dist/live-singleton.d.ts.map +1 -0
  51. package/dist/live-singleton.js +14 -0
  52. package/dist/live-singleton.js.map +1 -0
  53. package/dist/llm.d.ts.map +1 -1
  54. package/dist/llm.js +3 -2
  55. package/dist/llm.js.map +1 -1
  56. package/dist/output-manager.d.ts.map +1 -1
  57. package/dist/output-manager.js +1 -0
  58. package/dist/output-manager.js.map +1 -1
  59. package/dist/project-scanner.d.ts +27 -0
  60. package/dist/project-scanner.d.ts.map +1 -0
  61. package/dist/project-scanner.js +366 -0
  62. package/dist/project-scanner.js.map +1 -0
  63. package/dist/schema-registry.d.ts +31 -13
  64. package/dist/schema-registry.d.ts.map +1 -1
  65. package/dist/schema-registry.js +164 -32
  66. package/dist/schema-registry.js.map +1 -1
  67. package/dist/schemas/agent-feedback-stats.json +14 -0
  68. package/dist/schemas/preemption-feed.json +18 -0
  69. package/dist/schemas/record-agent-feedback.json +28 -0
  70. package/dist/schemas/trust-summary.json +13 -0
  71. package/dist/schemas/vulnerability-scan.json +26 -0
  72. package/dist/schemas/what-should-i-know.json +19 -0
  73. package/dist/setup.d.ts +2 -1
  74. package/dist/setup.d.ts.map +1 -1
  75. package/dist/setup.js +38 -4
  76. package/dist/setup.js.map +1 -1
  77. package/dist/tool-dispatch.d.ts +33 -0
  78. package/dist/tool-dispatch.d.ts.map +1 -0
  79. package/dist/tool-dispatch.js +87 -0
  80. package/dist/tool-dispatch.js.map +1 -0
  81. package/dist/tools/agent-feedback-stats.d.ts +30 -0
  82. package/dist/tools/agent-feedback-stats.d.ts.map +1 -0
  83. package/dist/tools/agent-feedback-stats.js +41 -0
  84. package/dist/tools/agent-feedback-stats.js.map +1 -0
  85. package/dist/tools/agent-memory.d.ts.map +1 -1
  86. package/dist/tools/agent-memory.js +33 -0
  87. package/dist/tools/agent-memory.js.map +1 -1
  88. package/dist/tools/agent-session-brief.d.ts.map +1 -1
  89. package/dist/tools/agent-session-brief.js +1 -0
  90. package/dist/tools/agent-session-brief.js.map +1 -1
  91. package/dist/tools/attention-report.d.ts.map +1 -1
  92. package/dist/tools/attention-report.js +1 -0
  93. package/dist/tools/attention-report.js.map +1 -1
  94. package/dist/tools/autophagy-status.d.ts.map +1 -1
  95. package/dist/tools/autophagy-status.js.map +1 -1
  96. package/dist/tools/compound-advantage.d.ts +3 -0
  97. package/dist/tools/compound-advantage.d.ts.map +1 -1
  98. package/dist/tools/compound-advantage.js +67 -10
  99. package/dist/tools/compound-advantage.js.map +1 -1
  100. package/dist/tools/config-validator.d.ts.map +1 -1
  101. package/dist/tools/config-validator.js +31 -0
  102. package/dist/tools/config-validator.js.map +1 -1
  103. package/dist/tools/context-analysis.d.ts.map +1 -1
  104. package/dist/tools/context-analysis.js +1 -0
  105. package/dist/tools/context-analysis.js.map +1 -1
  106. package/dist/tools/daily-briefing.d.ts.map +1 -1
  107. package/dist/tools/daily-briefing.js +17 -1
  108. package/dist/tools/daily-briefing.js.map +1 -1
  109. package/dist/tools/decision-enforcement.d.ts.map +1 -1
  110. package/dist/tools/decision-enforcement.js +1 -0
  111. package/dist/tools/decision-enforcement.js.map +1 -1
  112. package/dist/tools/decision-memory.d.ts +2 -0
  113. package/dist/tools/decision-memory.d.ts.map +1 -1
  114. package/dist/tools/decision-memory.js +80 -0
  115. package/dist/tools/decision-memory.js.map +1 -1
  116. package/dist/tools/decision-windows.d.ts.map +1 -1
  117. package/dist/tools/decision-windows.js.map +1 -1
  118. package/dist/tools/delegation-score.d.ts.map +1 -1
  119. package/dist/tools/delegation-score.js +1 -0
  120. package/dist/tools/delegation-score.js.map +1 -1
  121. package/dist/tools/developer-dna.d.ts.map +1 -1
  122. package/dist/tools/developer-dna.js +1 -0
  123. package/dist/tools/developer-dna.js.map +1 -1
  124. package/dist/tools/explain-relevance.d.ts.map +1 -1
  125. package/dist/tools/explain-relevance.js +1 -0
  126. package/dist/tools/explain-relevance.js.map +1 -1
  127. package/dist/tools/export-context.d.ts +9 -0
  128. package/dist/tools/export-context.d.ts.map +1 -1
  129. package/dist/tools/export-context.js +45 -1
  130. package/dist/tools/export-context.js.map +1 -1
  131. package/dist/tools/get-actionable-signals.d.ts.map +1 -1
  132. package/dist/tools/get-actionable-signals.js +60 -9
  133. package/dist/tools/get-actionable-signals.js.map +1 -1
  134. package/dist/tools/get-context.d.ts.map +1 -1
  135. package/dist/tools/get-context.js +1 -0
  136. package/dist/tools/get-context.js.map +1 -1
  137. package/dist/tools/get-relevant-content.d.ts.map +1 -1
  138. package/dist/tools/get-relevant-content.js +3 -0
  139. package/dist/tools/get-relevant-content.js.map +1 -1
  140. package/dist/tools/index.d.ts +16 -16
  141. package/dist/tools/index.d.ts.map +1 -1
  142. package/dist/tools/index.js +21 -16
  143. package/dist/tools/index.js.map +1 -1
  144. package/dist/tools/knowledge-gaps.d.ts.map +1 -1
  145. package/dist/tools/knowledge-gaps.js +9 -3
  146. package/dist/tools/knowledge-gaps.js.map +1 -1
  147. package/dist/tools/llm-status.d.ts.map +1 -1
  148. package/dist/tools/llm-status.js +1 -0
  149. package/dist/tools/llm-status.js.map +1 -1
  150. package/dist/tools/muse-context.d.ts +195 -0
  151. package/dist/tools/muse-context.d.ts.map +1 -0
  152. package/dist/tools/muse-context.js +284 -0
  153. package/dist/tools/muse-context.js.map +1 -0
  154. package/dist/tools/preemption-feed.d.ts +55 -0
  155. package/dist/tools/preemption-feed.d.ts.map +1 -0
  156. package/dist/tools/preemption-feed.js +124 -0
  157. package/dist/tools/preemption-feed.js.map +1 -0
  158. package/dist/tools/project-health.d.ts +6 -0
  159. package/dist/tools/project-health.d.ts.map +1 -1
  160. package/dist/tools/project-health.js +49 -10
  161. package/dist/tools/project-health.js.map +1 -1
  162. package/dist/tools/record-agent-feedback.d.ts +46 -0
  163. package/dist/tools/record-agent-feedback.d.ts.map +1 -0
  164. package/dist/tools/record-agent-feedback.js +71 -0
  165. package/dist/tools/record-agent-feedback.js.map +1 -0
  166. package/dist/tools/record-feedback.d.ts.map +1 -1
  167. package/dist/tools/record-feedback.js +1 -0
  168. package/dist/tools/record-feedback.js.map +1 -1
  169. package/dist/tools/reverse-mentions.d.ts.map +1 -1
  170. package/dist/tools/reverse-mentions.js +1 -0
  171. package/dist/tools/reverse-mentions.js.map +1 -1
  172. package/dist/tools/score-autopsy.d.ts.map +1 -1
  173. package/dist/tools/score-autopsy.js +1 -0
  174. package/dist/tools/score-autopsy.js.map +1 -1
  175. package/dist/tools/semantic-shifts.d.ts.map +1 -1
  176. package/dist/tools/semantic-shifts.js +1 -0
  177. package/dist/tools/semantic-shifts.js.map +1 -1
  178. package/dist/tools/signal-chains.d.ts.map +1 -1
  179. package/dist/tools/signal-chains.js +5 -2
  180. package/dist/tools/signal-chains.js.map +1 -1
  181. package/dist/tools/source-health.d.ts.map +1 -1
  182. package/dist/tools/source-health.js +1 -0
  183. package/dist/tools/source-health.js.map +1 -1
  184. package/dist/tools/tech-radar.d.ts.map +1 -1
  185. package/dist/tools/tech-radar.js +1 -0
  186. package/dist/tools/tech-radar.js.map +1 -1
  187. package/dist/tools/topic-connections.d.ts.map +1 -1
  188. package/dist/tools/topic-connections.js +1 -0
  189. package/dist/tools/topic-connections.js.map +1 -1
  190. package/dist/tools/trend-analysis.d.ts.map +1 -1
  191. package/dist/tools/trend-analysis.js +1 -0
  192. package/dist/tools/trend-analysis.js.map +1 -1
  193. package/dist/tools/trust-summary.d.ts +38 -0
  194. package/dist/tools/trust-summary.d.ts.map +1 -0
  195. package/dist/tools/trust-summary.js +89 -0
  196. package/dist/tools/trust-summary.js.map +1 -0
  197. package/dist/tools/vulnerability-scan.d.ts +89 -0
  198. package/dist/tools/vulnerability-scan.d.ts.map +1 -0
  199. package/dist/tools/vulnerability-scan.js +127 -0
  200. package/dist/tools/vulnerability-scan.js.map +1 -0
  201. package/dist/tools/what-should-i-know.d.ts +79 -0
  202. package/dist/tools/what-should-i-know.d.ts.map +1 -0
  203. package/dist/tools/what-should-i-know.js +376 -0
  204. package/dist/tools/what-should-i-know.js.map +1 -0
  205. package/dist/types.d.ts +112 -0
  206. package/dist/types.d.ts.map +1 -1
  207. package/dist/types.js +1 -0
  208. package/dist/types.js.map +1 -1
  209. package/package.json +35 -18
@@ -0,0 +1,376 @@
1
+ // SPDX-License-Identifier: FSL-1.1-Apache-2.0
2
+ /**
3
+ * what_should_i_know tool
4
+ *
5
+ * Single entry point for external AI agents to get task-relevant intelligence
6
+ * before starting work. Synthesizes multiple intelligence layers:
7
+ * - Actionable signals (security alerts, breaking changes)
8
+ * - Decision windows (time-bounded opportunities)
9
+ * - Signal chains (escalating causal narratives)
10
+ * - Session brief (decisions, concerns, memories)
11
+ *
12
+ * Filters everything for relevance to the described task and involved files.
13
+ */
14
+ import { execSync } from "node:child_process";
15
+ import { existsSync } from "node:fs";
16
+ import { executeGetActionableSignals } from "./get-actionable-signals.js";
17
+ import { executeSourceHealth } from "./source-health.js";
18
+ import { executeSignalChains } from "./signal-chains.js";
19
+ import { executeAgentSessionBrief } from "./agent-session-brief.js";
20
+ import { findAweBinary } from "./decision-memory.js";
21
+ import { getLiveIntelligence } from "../live-singleton.js";
22
+ // ============================================================================
23
+ // Tool Definition
24
+ // ============================================================================
25
+ export const whatShouldIKnowTool = {
26
+ name: "what_should_i_know",
27
+ description: "Pre-task intelligence briefing. Given a task description and optional file paths, returns filtered advisories, decision windows, signal chains, relevant wisdom, and a delegation assessment. Call before starting any non-trivial task.",
28
+ inputSchema: {
29
+ type: "object",
30
+ properties: {
31
+ task: {
32
+ type: "string",
33
+ description: "Description of what you are about to work on",
34
+ },
35
+ files: {
36
+ type: "array",
37
+ items: { type: "string" },
38
+ description: "File paths involved in the task (optional). Improves relevance filtering.",
39
+ },
40
+ },
41
+ required: ["task"],
42
+ },
43
+ };
44
+ // ============================================================================
45
+ // Relevance Filtering
46
+ // ============================================================================
47
+ /**
48
+ * Build a set of lowercase keywords from the task description and file paths.
49
+ * Used for simple keyword-based relevance matching against intelligence results.
50
+ */
51
+ function buildKeywords(task, files) {
52
+ const words = new Set();
53
+ // Extract meaningful words from task (3+ chars, lowercased)
54
+ for (const word of task.toLowerCase().split(/\s+/)) {
55
+ const cleaned = word.replace(/[^a-z0-9_-]/g, "");
56
+ if (cleaned.length >= 3) {
57
+ words.add(cleaned);
58
+ }
59
+ }
60
+ // Extract keywords from file paths
61
+ for (const filePath of files) {
62
+ // Get filename and directory segments
63
+ const segments = filePath.replace(/\\/g, "/").split("/");
64
+ for (const segment of segments) {
65
+ // Split on dots, dashes, underscores for granular matching
66
+ for (const part of segment.split(/[.\-_]/)) {
67
+ const cleaned = part.toLowerCase().replace(/[^a-z0-9]/g, "");
68
+ if (cleaned.length >= 3) {
69
+ words.add(cleaned);
70
+ }
71
+ }
72
+ }
73
+ }
74
+ return words;
75
+ }
76
+ /**
77
+ * Check if a text matches any keywords from the task context.
78
+ */
79
+ function matchesKeywords(text, keywords) {
80
+ const textLower = text.toLowerCase();
81
+ for (const keyword of keywords) {
82
+ if (textLower.includes(keyword)) {
83
+ return true;
84
+ }
85
+ }
86
+ return false;
87
+ }
88
+ function getOpenDecisionWindows(db) {
89
+ try {
90
+ const rawDb = db.getRawDb();
91
+ return rawDb.prepare(`SELECT id, title, description, urgency
92
+ FROM decision_windows WHERE status = 'open'
93
+ ORDER BY urgency DESC, created_at DESC
94
+ LIMIT 20`).all();
95
+ }
96
+ catch {
97
+ // Table may not exist yet
98
+ return [];
99
+ }
100
+ }
101
+ // ============================================================================
102
+ // AWE Wisdom Engine
103
+ // ============================================================================
104
+ /**
105
+ * Retrieve AWE Wisdom Engine status and validated principles.
106
+ * Uses the AWE CLI binary — no direct database access, no new dependencies.
107
+ */
108
+ function getAweWisdom() {
109
+ try {
110
+ const aweBin = findAweBinary();
111
+ if (!aweBin)
112
+ return null;
113
+ // Quick existence check for the wisdom database
114
+ const dbPath = process.platform === "win32"
115
+ ? `${process.env.APPDATA || ""}\\awe\\wisdom.db`
116
+ : `${process.env.HOME || ""}/.local/share/awe/wisdom.db`;
117
+ if (!existsSync(dbPath))
118
+ return null;
119
+ let section = "AWE WISDOM ENGINE\n";
120
+ try {
121
+ const statusOutput = execSync(`"${aweBin}" status`, {
122
+ timeout: 5000,
123
+ encoding: "utf-8",
124
+ stdio: ["ignore", "pipe", "ignore"],
125
+ });
126
+ if (statusOutput)
127
+ section += statusOutput.trim() + "\n";
128
+ }
129
+ catch {
130
+ // status command failed — continue without it
131
+ }
132
+ try {
133
+ const wisdomOutput = execSync(`"${aweBin}" wisdom --domain software-engineering`, {
134
+ timeout: 5000,
135
+ encoding: "utf-8",
136
+ stdio: ["ignore", "pipe", "ignore"],
137
+ });
138
+ if (wisdomOutput && wisdomOutput.includes("VALIDATED")) {
139
+ section += wisdomOutput.trim() + "\n";
140
+ }
141
+ }
142
+ catch {
143
+ // wisdom command failed — continue without it
144
+ }
145
+ // Only return if we got something beyond the header
146
+ return section.length > "AWE WISDOM ENGINE\n".length ? section : null;
147
+ }
148
+ catch {
149
+ return null;
150
+ }
151
+ }
152
+ // ============================================================================
153
+ // Execute
154
+ // ============================================================================
155
+ export function executeWhatShouldIKnow(db, params) {
156
+ const task = params.task;
157
+ const files = params.files || [];
158
+ const keywords = buildKeywords(task, files);
159
+ // ── 1. Actionable Signals (security, breaking changes, etc.) ──────────
160
+ let advisories = [];
161
+ try {
162
+ const signalResult = executeGetActionableSignals(db, {
163
+ limit: 50,
164
+ since_hours: 72,
165
+ });
166
+ advisories = signalResult.signals
167
+ .filter((s) => {
168
+ // Include all critical/high security signals unconditionally
169
+ if (s.signal_type === "security_alert" && (s.signal_priority === "critical" || s.signal_priority === "high")) {
170
+ return true;
171
+ }
172
+ // Otherwise, filter by keyword relevance
173
+ return matchesKeywords(s.title + " " + s.action, keywords);
174
+ })
175
+ .slice(0, 10)
176
+ .map((s) => ({
177
+ title: s.title,
178
+ signal_type: s.signal_type,
179
+ priority: s.signal_priority,
180
+ action: s.action,
181
+ url: s.url,
182
+ }));
183
+ }
184
+ catch {
185
+ // Signals unavailable — non-fatal
186
+ }
187
+ // ── 1b. Live vulnerability data ──────────────────────────────────────
188
+ try {
189
+ const liveIntel = getLiveIntelligence();
190
+ if (liveIntel) {
191
+ const vulnResult = liveIntel.getVulnerabilities();
192
+ if (vulnResult && vulnResult.totalVulnerable > 0) {
193
+ const topVulns = vulnResult.vulnerabilities.slice(0, 3);
194
+ const details = topVulns.map((v) => `${v.package}@${v.currentVersion}: ${v.summary}`).join("; ");
195
+ advisories.unshift({
196
+ title: `${vulnResult.totalVulnerable} dependenc${vulnResult.totalVulnerable !== 1 ? "ies have" : "y has"} known vulnerabilities`,
197
+ signal_type: "security_alert",
198
+ priority: vulnResult.bySeverity.critical > 0 ? "critical" :
199
+ vulnResult.bySeverity.high > 0 ? "high" : "medium",
200
+ action: `Run vulnerability_scan for full details. ${details}`,
201
+ url: null,
202
+ });
203
+ }
204
+ }
205
+ }
206
+ catch {
207
+ // Live intel unavailable — non-fatal
208
+ }
209
+ // ── 2. Source Health (CVE/security check) ─────────────────────────────
210
+ try {
211
+ const healthResult = executeSourceHealth(db, { hours: 48 });
212
+ if (healthResult.overall_status === "critical") {
213
+ advisories.unshift({
214
+ title: "Source health critical — some data sources are failing",
215
+ signal_type: "system_health",
216
+ priority: "high",
217
+ action: "Run source_health for details. Content may be stale.",
218
+ url: null,
219
+ });
220
+ }
221
+ }
222
+ catch {
223
+ // Health check unavailable — non-fatal
224
+ }
225
+ // ── 3. Signal Chains ──────────────────────────────────────────────────
226
+ let activeSignals = [];
227
+ try {
228
+ const chainResult = executeSignalChains(db, {
229
+ resolution: "open",
230
+ min_priority: "medium",
231
+ });
232
+ activeSignals = chainResult.chains
233
+ .filter((c) => matchesKeywords(c.chain_name + " " + c.suggested_action, keywords))
234
+ .slice(0, 5)
235
+ .map((c) => ({
236
+ chain_name: c.chain_name,
237
+ priority: c.overall_priority,
238
+ suggested_action: c.suggested_action,
239
+ link_count: Array.isArray(c.links) ? c.links.length : 0,
240
+ }));
241
+ }
242
+ catch {
243
+ // Chains unavailable — non-fatal
244
+ }
245
+ // ── 4. Decision Windows ───────────────────────────────────────────────
246
+ let decisionWindows = [];
247
+ try {
248
+ const windows = getOpenDecisionWindows(db);
249
+ decisionWindows = windows
250
+ .filter((w) => matchesKeywords((w.title || "") + " " + (w.description || ""), keywords))
251
+ .slice(0, 5)
252
+ .map((w) => ({
253
+ id: w.id,
254
+ title: w.title,
255
+ description: w.description,
256
+ urgency: w.urgency,
257
+ }));
258
+ }
259
+ catch {
260
+ // Windows unavailable — non-fatal
261
+ }
262
+ // ── 5. Session Brief (decisions, memories, ecosystem) ─────────────────
263
+ let relevantWisdom = [];
264
+ try {
265
+ const brief = executeAgentSessionBrief(db, {
266
+ include_decisions: true,
267
+ include_memories: true,
268
+ });
269
+ // Filter active decisions for relevance
270
+ if (brief.active_decisions) {
271
+ for (const d of brief.active_decisions) {
272
+ if (matchesKeywords(d.subject + " " + d.decision, keywords)) {
273
+ relevantWisdom.push({
274
+ type: "decision",
275
+ subject: d.subject,
276
+ detail: d.decision,
277
+ });
278
+ }
279
+ }
280
+ }
281
+ // Filter ecosystem changes for relevance
282
+ if (brief.ecosystem_changes) {
283
+ for (const ec of brief.ecosystem_changes) {
284
+ if (matchesKeywords(ec.subject + " " + ec.summary, keywords)) {
285
+ relevantWisdom.push({
286
+ type: ec.change_type,
287
+ subject: ec.subject,
288
+ detail: ec.summary,
289
+ });
290
+ }
291
+ }
292
+ }
293
+ // Filter agent memories for relevance
294
+ if (brief.agent_memories) {
295
+ for (const m of brief.agent_memories) {
296
+ if (matchesKeywords(m.subject + " " + m.content, keywords)) {
297
+ relevantWisdom.push({
298
+ type: m.memory_type,
299
+ subject: m.subject,
300
+ detail: m.content,
301
+ });
302
+ }
303
+ }
304
+ }
305
+ // Cap wisdom entries
306
+ relevantWisdom = relevantWisdom.slice(0, 10);
307
+ }
308
+ catch {
309
+ // Brief unavailable — non-fatal
310
+ }
311
+ // ── 5b. AWE Wisdom Engine (validated principles, decision stats) ──────
312
+ try {
313
+ const aweWisdom = getAweWisdom();
314
+ if (aweWisdom) {
315
+ relevantWisdom.push({
316
+ type: "awe_wisdom",
317
+ subject: "AWE Wisdom Engine",
318
+ detail: aweWisdom,
319
+ });
320
+ }
321
+ }
322
+ catch {
323
+ // AWE unavailable — non-fatal
324
+ }
325
+ // ── 6. Delegation Assessment ──────────────────────────────────────────
326
+ const signalDensity = advisories.length + decisionWindows.length + activeSignals.length;
327
+ const hasSecuritySignals = advisories.some((a) => a.signal_type === "security_alert" && (a.priority === "critical" || a.priority === "high"));
328
+ const hasHighUrgencyWindows = decisionWindows.some((w) => w.urgency >= 4);
329
+ let delegationLevel;
330
+ let delegationReason;
331
+ if (hasSecuritySignals || hasHighUrgencyWindows) {
332
+ delegationLevel = "human_only";
333
+ delegationReason = hasSecuritySignals
334
+ ? "Active security signals require human review before proceeding."
335
+ : "High-urgency decision windows demand human judgment.";
336
+ }
337
+ else if (signalDensity > 3 || relevantWisdom.length > 3) {
338
+ delegationLevel = "review_needed";
339
+ delegationReason = `${signalDensity} active signal(s) and ${relevantWisdom.length} relevant decision(s) suggest review after completion.`;
340
+ }
341
+ else {
342
+ delegationLevel = "safe_to_delegate";
343
+ delegationReason = "No significant advisories or constraints detected for this task.";
344
+ }
345
+ // ── 7. Summary ────────────────────────────────────────────────────────
346
+ const parts = [];
347
+ if (advisories.length > 0) {
348
+ parts.push(`${advisories.length} advisor${advisories.length !== 1 ? "ies" : "y"}`);
349
+ }
350
+ if (decisionWindows.length > 0) {
351
+ parts.push(`${decisionWindows.length} decision window${decisionWindows.length !== 1 ? "s" : ""}`);
352
+ }
353
+ if (activeSignals.length > 0) {
354
+ parts.push(`${activeSignals.length} signal chain${activeSignals.length !== 1 ? "s" : ""}`);
355
+ }
356
+ if (relevantWisdom.length > 0) {
357
+ parts.push(`${relevantWisdom.length} relevant decision${relevantWisdom.length !== 1 ? "s" : ""}/memor${relevantWisdom.length !== 1 ? "ies" : "y"}`);
358
+ }
359
+ const summary = parts.length > 0
360
+ ? `Found ${parts.join(", ")} relevant to this task. Delegation: ${delegationLevel}.`
361
+ : "No active advisories or signals for this task. Proceed normally.";
362
+ return {
363
+ task,
364
+ files,
365
+ advisories,
366
+ decision_windows: decisionWindows,
367
+ active_signals: activeSignals,
368
+ relevant_wisdom: relevantWisdom,
369
+ delegation_assessment: {
370
+ level: delegationLevel,
371
+ reason: delegationReason,
372
+ },
373
+ summary,
374
+ };
375
+ }
376
+ //# sourceMappingURL=what-should-i-know.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"what-should-i-know.js","sourceRoot":"","sources":["../../src/tools/what-should-i-know.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -30,6 +30,14 @@ export interface RelevantItem {
30
30
  relevance_score: number;
31
31
  created_at: string;
32
32
  discovered_ago: string;
33
+ /** Necessity score: "what you'd regret missing" (0.0-1.0). Populated from Rust analysis pipeline when available. */
34
+ necessity_score: number;
35
+ /** One-line explanation of why this item is necessary. Null when necessity_score is 0. */
36
+ necessity_reason: string | null;
37
+ /** Necessity category: security_vulnerability, breaking_change, deprecation_notice, blind_spot, decision_relevant, none */
38
+ necessity_category: string | null;
39
+ /** Necessity urgency: immediate, this_week, awareness, none */
40
+ necessity_urgency: string | null;
33
41
  }
34
42
  /**
35
43
  * Explicit user interest
@@ -269,4 +277,108 @@ export interface SignalEventRow {
269
277
  data: string;
270
278
  created_at: string;
271
279
  }
280
+ /**
281
+ * Valid agent feedback outcome types
282
+ */
283
+ export type AgentFeedbackOutcome = "used" | "rejected" | "partially_used";
284
+ /**
285
+ * Parameters for recording agent feedback
286
+ */
287
+ export interface RecordAgentFeedbackParams {
288
+ item_ids: string[];
289
+ outcome: AgentFeedbackOutcome;
290
+ context?: string;
291
+ session_task?: string;
292
+ }
293
+ /**
294
+ * Result from recording agent feedback
295
+ */
296
+ export interface AgentFeedbackResult {
297
+ success: boolean;
298
+ message: string;
299
+ recorded_count: number;
300
+ }
301
+ /**
302
+ * Parameters for getting agent feedback stats
303
+ */
304
+ export interface GetAgentFeedbackStatsParams {
305
+ days?: number;
306
+ }
307
+ /**
308
+ * Outcome breakdown in agent feedback stats
309
+ */
310
+ export interface AgentFeedbackOutcomeStats {
311
+ used: number;
312
+ rejected: number;
313
+ partially_used: number;
314
+ total: number;
315
+ }
316
+ /**
317
+ * Per-source feedback stats
318
+ */
319
+ export interface AgentFeedbackSourceStats {
320
+ source_type: string;
321
+ used: number;
322
+ rejected: number;
323
+ partially_used: number;
324
+ total: number;
325
+ usefulness_rate: number;
326
+ }
327
+ /**
328
+ * A frequently used item
329
+ */
330
+ export interface AgentFeedbackTopItem {
331
+ item_id: string;
332
+ title: string | null;
333
+ source_type: string | null;
334
+ used_count: number;
335
+ rejected_count: number;
336
+ }
337
+ /**
338
+ * A recent feedback entry
339
+ */
340
+ export interface AgentFeedbackRecentEntry {
341
+ item_id: string;
342
+ outcome: string;
343
+ context: string | null;
344
+ session_task: string | null;
345
+ recorded_at: string;
346
+ }
347
+ /**
348
+ * Full agent feedback stats response
349
+ */
350
+ export interface AgentFeedbackStats {
351
+ period_days: number;
352
+ outcomes: AgentFeedbackOutcomeStats;
353
+ by_source: AgentFeedbackSourceStats[];
354
+ top_used_items: AgentFeedbackTopItem[];
355
+ recent_feedback: AgentFeedbackRecentEntry[];
356
+ }
357
+ /** Row from agent_feedback table */
358
+ export interface AgentFeedbackRow {
359
+ item_id: string;
360
+ outcome: string;
361
+ context: string | null;
362
+ session_task: string | null;
363
+ recorded_at: string;
364
+ }
365
+ /** Row from agent_feedback stats query — outcome counts */
366
+ export interface AgentFeedbackOutcomeRow {
367
+ outcome: string;
368
+ cnt: number;
369
+ }
370
+ /** Row from agent_feedback stats query — source breakdown */
371
+ export interface AgentFeedbackSourceRow {
372
+ source_type: string;
373
+ outcome: string;
374
+ cnt: number;
375
+ }
376
+ /** Row from agent_feedback stats query — top items */
377
+ export interface AgentFeedbackTopItemRow {
378
+ item_id: string;
379
+ title: string | null;
380
+ source_type: string | null;
381
+ used_count: number;
382
+ rejected_count: number;
383
+ }
272
384
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,3 +1,4 @@
1
+ // SPDX-License-Identifier: FSL-1.1-Apache-2.0
1
2
  /**
2
3
  * Type definitions for 4DA MCP Server
3
4
  *
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C;;;;GAIG"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@4da/mcp-server",
3
- "version": "4.0.0",
4
- "description": "30 MCP tools that connect your AI coding assistant to your actual codebase. Scores content from HN, arXiv, Reddit, GitHub against your tech stack. Privacy-first — everything stays local.",
3
+ "version": "4.1.0",
4
+ "description": "36 MCP tools for codebase-aware developer intelligence. Live vulnerability scanning (OSV.dev), persistent project memory, and tech stack awareness for Claude, Cursor, and Copilot. Zero config, privacy-first.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
@@ -14,37 +14,44 @@
14
14
  "README.md",
15
15
  "LICENSE"
16
16
  ],
17
- "scripts": {
18
- "build": "tsc && pnpm run copy-schemas",
19
- "copy-schemas": "node -e \"const fs=require('fs');const path=require('path');const src='src/schemas';const dst='dist/schemas';if(!fs.existsSync(dst))fs.mkdirSync(dst,{recursive:true});fs.readdirSync(src).filter(f=>f.endsWith('.json')).forEach(f=>fs.copyFileSync(path.join(src,f),path.join(dst,f)))\"",
20
- "dev": "tsc --watch",
21
- "start": "node dist/index.js",
22
- "inspect": "npx @modelcontextprotocol/inspector node dist/index.js",
23
- "setup": "node dist/setup.js",
24
- "test": "vitest run",
25
- "test:watch": "vitest",
26
- "prepublishOnly": "pnpm run build"
27
- },
28
17
  "keywords": [
29
18
  "mcp",
30
19
  "mcp-server",
31
20
  "model-context-protocol",
21
+ "claude",
32
22
  "claude-code",
23
+ "claude-desktop",
33
24
  "cursor",
34
25
  "windsurf",
35
26
  "copilot",
27
+ "vscode",
28
+ "ai-tools",
29
+ "ai-agent",
30
+ "ai-coding",
36
31
  "developer-tools",
37
32
  "developer-intelligence",
38
- "ai-agent",
39
- "privacy-first",
40
- "local-first",
33
+ "developer-productivity",
34
+ "developer-context",
41
35
  "codebase-awareness",
36
+ "codebase-context",
37
+ "code-context",
38
+ "code-intelligence",
42
39
  "content-scoring",
40
+ "relevance-scoring",
41
+ "privacy-first",
42
+ "local-first",
43
+ "offline",
43
44
  "hacker-news",
44
45
  "arxiv",
46
+ "reddit",
47
+ "github",
45
48
  "knowledge-gaps",
46
49
  "tech-radar",
47
- "developer-productivity"
50
+ "decision-memory",
51
+ "dependency-tracking",
52
+ "security-advisories",
53
+ "agent-memory",
54
+ "sqlite"
48
55
  ],
49
56
  "author": "4DA",
50
57
  "license": "MIT",
@@ -69,5 +76,15 @@
69
76
  },
70
77
  "engines": {
71
78
  "node": ">=18.0.0"
79
+ },
80
+ "scripts": {
81
+ "build": "tsc && pnpm run copy-schemas",
82
+ "copy-schemas": "node -e \"const fs=require('fs');const path=require('path');const src='src/schemas';const dst='dist/schemas';if(!fs.existsSync(dst))fs.mkdirSync(dst,{recursive:true});fs.readdirSync(src).filter(f=>f.endsWith('.json')).forEach(f=>fs.copyFileSync(path.join(src,f),path.join(dst,f)))\"",
83
+ "dev": "tsc --watch",
84
+ "start": "node dist/index.js",
85
+ "inspect": "npx @modelcontextprotocol/inspector node dist/index.js",
86
+ "setup": "node dist/setup.js",
87
+ "test": "vitest run",
88
+ "test:watch": "vitest"
72
89
  }
73
- }
90
+ }