@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.
- package/LICENSE +1 -1
- package/README.md +160 -85
- package/dist/auth.d.ts +36 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +82 -0
- package/dist/auth.js.map +1 -0
- package/dist/db.d.ts +73 -0
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +607 -4
- package/dist/db.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +33 -7
- package/dist/doctor.js.map +1 -1
- package/dist/http-transport.d.ts.map +1 -1
- package/dist/http-transport.js +19 -2
- package/dist/http-transport.js.map +1 -1
- package/dist/index.d.ts +15 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +150 -325
- package/dist/index.js.map +1 -1
- package/dist/live/cache.d.ts +16 -0
- package/dist/live/cache.d.ts.map +1 -0
- package/dist/live/cache.js +61 -0
- package/dist/live/cache.js.map +1 -0
- package/dist/live/hn-fetcher.d.ts +19 -0
- package/dist/live/hn-fetcher.d.ts.map +1 -0
- package/dist/live/hn-fetcher.js +123 -0
- package/dist/live/hn-fetcher.js.map +1 -0
- package/dist/live/index.d.ts +55 -0
- package/dist/live/index.d.ts.map +1 -0
- package/dist/live/index.js +131 -0
- package/dist/live/index.js.map +1 -0
- package/dist/live/osv-scanner.d.ts +19 -0
- package/dist/live/osv-scanner.d.ts.map +1 -0
- package/dist/live/osv-scanner.js +197 -0
- package/dist/live/osv-scanner.js.map +1 -0
- package/dist/live/rate-limiter.d.ts +19 -0
- package/dist/live/rate-limiter.d.ts.map +1 -0
- package/dist/live/rate-limiter.js +52 -0
- package/dist/live/rate-limiter.js.map +1 -0
- package/dist/live/types.d.ts +89 -0
- package/dist/live/types.d.ts.map +1 -0
- package/dist/live/types.js +3 -0
- package/dist/live/types.js.map +1 -0
- package/dist/live/version-resolver.d.ts +11 -0
- package/dist/live/version-resolver.d.ts.map +1 -0
- package/dist/live/version-resolver.js +321 -0
- package/dist/live/version-resolver.js.map +1 -0
- package/dist/live-singleton.d.ts +9 -0
- package/dist/live-singleton.d.ts.map +1 -0
- package/dist/live-singleton.js +14 -0
- package/dist/live-singleton.js.map +1 -0
- package/dist/llm.d.ts.map +1 -1
- package/dist/llm.js +3 -2
- package/dist/llm.js.map +1 -1
- package/dist/output-manager.d.ts.map +1 -1
- package/dist/output-manager.js +1 -0
- package/dist/output-manager.js.map +1 -1
- package/dist/project-scanner.d.ts +27 -0
- package/dist/project-scanner.d.ts.map +1 -0
- package/dist/project-scanner.js +366 -0
- package/dist/project-scanner.js.map +1 -0
- package/dist/schema-registry.d.ts +31 -13
- package/dist/schema-registry.d.ts.map +1 -1
- package/dist/schema-registry.js +164 -32
- package/dist/schema-registry.js.map +1 -1
- package/dist/schemas/agent-feedback-stats.json +14 -0
- package/dist/schemas/preemption-feed.json +18 -0
- package/dist/schemas/record-agent-feedback.json +28 -0
- package/dist/schemas/trust-summary.json +13 -0
- package/dist/schemas/vulnerability-scan.json +26 -0
- package/dist/schemas/what-should-i-know.json +19 -0
- package/dist/setup.d.ts +2 -1
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +38 -4
- package/dist/setup.js.map +1 -1
- package/dist/tool-dispatch.d.ts +33 -0
- package/dist/tool-dispatch.d.ts.map +1 -0
- package/dist/tool-dispatch.js +87 -0
- package/dist/tool-dispatch.js.map +1 -0
- package/dist/tools/agent-feedback-stats.d.ts +30 -0
- package/dist/tools/agent-feedback-stats.d.ts.map +1 -0
- package/dist/tools/agent-feedback-stats.js +41 -0
- package/dist/tools/agent-feedback-stats.js.map +1 -0
- package/dist/tools/agent-memory.d.ts.map +1 -1
- package/dist/tools/agent-memory.js +33 -0
- package/dist/tools/agent-memory.js.map +1 -1
- package/dist/tools/agent-session-brief.d.ts.map +1 -1
- package/dist/tools/agent-session-brief.js +1 -0
- package/dist/tools/agent-session-brief.js.map +1 -1
- package/dist/tools/attention-report.d.ts.map +1 -1
- package/dist/tools/attention-report.js +1 -0
- package/dist/tools/attention-report.js.map +1 -1
- package/dist/tools/autophagy-status.d.ts.map +1 -1
- package/dist/tools/autophagy-status.js.map +1 -1
- package/dist/tools/compound-advantage.d.ts +3 -0
- package/dist/tools/compound-advantage.d.ts.map +1 -1
- package/dist/tools/compound-advantage.js +67 -10
- package/dist/tools/compound-advantage.js.map +1 -1
- package/dist/tools/config-validator.d.ts.map +1 -1
- package/dist/tools/config-validator.js +31 -0
- package/dist/tools/config-validator.js.map +1 -1
- package/dist/tools/context-analysis.d.ts.map +1 -1
- package/dist/tools/context-analysis.js +1 -0
- package/dist/tools/context-analysis.js.map +1 -1
- package/dist/tools/daily-briefing.d.ts.map +1 -1
- package/dist/tools/daily-briefing.js +17 -1
- package/dist/tools/daily-briefing.js.map +1 -1
- package/dist/tools/decision-enforcement.d.ts.map +1 -1
- package/dist/tools/decision-enforcement.js +1 -0
- package/dist/tools/decision-enforcement.js.map +1 -1
- package/dist/tools/decision-memory.d.ts +2 -0
- package/dist/tools/decision-memory.d.ts.map +1 -1
- package/dist/tools/decision-memory.js +80 -0
- package/dist/tools/decision-memory.js.map +1 -1
- package/dist/tools/decision-windows.d.ts.map +1 -1
- package/dist/tools/decision-windows.js.map +1 -1
- package/dist/tools/delegation-score.d.ts.map +1 -1
- package/dist/tools/delegation-score.js +1 -0
- package/dist/tools/delegation-score.js.map +1 -1
- package/dist/tools/developer-dna.d.ts.map +1 -1
- package/dist/tools/developer-dna.js +1 -0
- package/dist/tools/developer-dna.js.map +1 -1
- package/dist/tools/explain-relevance.d.ts.map +1 -1
- package/dist/tools/explain-relevance.js +1 -0
- package/dist/tools/explain-relevance.js.map +1 -1
- package/dist/tools/export-context.d.ts +9 -0
- package/dist/tools/export-context.d.ts.map +1 -1
- package/dist/tools/export-context.js +45 -1
- package/dist/tools/export-context.js.map +1 -1
- package/dist/tools/get-actionable-signals.d.ts.map +1 -1
- package/dist/tools/get-actionable-signals.js +60 -9
- package/dist/tools/get-actionable-signals.js.map +1 -1
- package/dist/tools/get-context.d.ts.map +1 -1
- package/dist/tools/get-context.js +1 -0
- package/dist/tools/get-context.js.map +1 -1
- package/dist/tools/get-relevant-content.d.ts.map +1 -1
- package/dist/tools/get-relevant-content.js +3 -0
- package/dist/tools/get-relevant-content.js.map +1 -1
- package/dist/tools/index.d.ts +16 -16
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +21 -16
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/knowledge-gaps.d.ts.map +1 -1
- package/dist/tools/knowledge-gaps.js +9 -3
- package/dist/tools/knowledge-gaps.js.map +1 -1
- package/dist/tools/llm-status.d.ts.map +1 -1
- package/dist/tools/llm-status.js +1 -0
- package/dist/tools/llm-status.js.map +1 -1
- package/dist/tools/muse-context.d.ts +195 -0
- package/dist/tools/muse-context.d.ts.map +1 -0
- package/dist/tools/muse-context.js +284 -0
- package/dist/tools/muse-context.js.map +1 -0
- package/dist/tools/preemption-feed.d.ts +55 -0
- package/dist/tools/preemption-feed.d.ts.map +1 -0
- package/dist/tools/preemption-feed.js +124 -0
- package/dist/tools/preemption-feed.js.map +1 -0
- package/dist/tools/project-health.d.ts +6 -0
- package/dist/tools/project-health.d.ts.map +1 -1
- package/dist/tools/project-health.js +49 -10
- package/dist/tools/project-health.js.map +1 -1
- package/dist/tools/record-agent-feedback.d.ts +46 -0
- package/dist/tools/record-agent-feedback.d.ts.map +1 -0
- package/dist/tools/record-agent-feedback.js +71 -0
- package/dist/tools/record-agent-feedback.js.map +1 -0
- package/dist/tools/record-feedback.d.ts.map +1 -1
- package/dist/tools/record-feedback.js +1 -0
- package/dist/tools/record-feedback.js.map +1 -1
- package/dist/tools/reverse-mentions.d.ts.map +1 -1
- package/dist/tools/reverse-mentions.js +1 -0
- package/dist/tools/reverse-mentions.js.map +1 -1
- package/dist/tools/score-autopsy.d.ts.map +1 -1
- package/dist/tools/score-autopsy.js +1 -0
- package/dist/tools/score-autopsy.js.map +1 -1
- package/dist/tools/semantic-shifts.d.ts.map +1 -1
- package/dist/tools/semantic-shifts.js +1 -0
- package/dist/tools/semantic-shifts.js.map +1 -1
- package/dist/tools/signal-chains.d.ts.map +1 -1
- package/dist/tools/signal-chains.js +5 -2
- package/dist/tools/signal-chains.js.map +1 -1
- package/dist/tools/source-health.d.ts.map +1 -1
- package/dist/tools/source-health.js +1 -0
- package/dist/tools/source-health.js.map +1 -1
- package/dist/tools/tech-radar.d.ts.map +1 -1
- package/dist/tools/tech-radar.js +1 -0
- package/dist/tools/tech-radar.js.map +1 -1
- package/dist/tools/topic-connections.d.ts.map +1 -1
- package/dist/tools/topic-connections.js +1 -0
- package/dist/tools/topic-connections.js.map +1 -1
- package/dist/tools/trend-analysis.d.ts.map +1 -1
- package/dist/tools/trend-analysis.js +1 -0
- package/dist/tools/trend-analysis.js.map +1 -1
- package/dist/tools/trust-summary.d.ts +38 -0
- package/dist/tools/trust-summary.d.ts.map +1 -0
- package/dist/tools/trust-summary.js +89 -0
- package/dist/tools/trust-summary.js.map +1 -0
- package/dist/tools/vulnerability-scan.d.ts +89 -0
- package/dist/tools/vulnerability-scan.d.ts.map +1 -0
- package/dist/tools/vulnerability-scan.js +127 -0
- package/dist/tools/vulnerability-scan.js.map +1 -0
- package/dist/tools/what-should-i-know.d.ts +79 -0
- package/dist/tools/what-should-i-know.d.ts.map +1 -0
- package/dist/tools/what-should-i-know.js +376 -0
- package/dist/tools/what-should-i-know.js.map +1 -0
- package/dist/types.d.ts +112 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- 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
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
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.
|
|
4
|
-
"description": "
|
|
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
|
-
"
|
|
39
|
-
"
|
|
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
|
-
"
|
|
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
|
+
}
|