@splicr/mcp-server 0.3.7 → 0.3.9
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/dist/cli.js +53 -0
- package/dist/cli.js.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/api-client.d.ts +14 -0
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +4 -0
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/signal-fusion.d.ts +35 -0
- package/dist/lib/signal-fusion.d.ts.map +1 -0
- package/dist/lib/signal-fusion.js +129 -0
- package/dist/lib/signal-fusion.js.map +1 -0
- package/dist/lib/signal-gatherer.d.ts +16 -0
- package/dist/lib/signal-gatherer.d.ts.map +1 -0
- package/dist/lib/signal-gatherer.js +93 -0
- package/dist/lib/signal-gatherer.js.map +1 -0
- package/dist/tools/get-relevant-context.d.ts +33 -0
- package/dist/tools/get-relevant-context.d.ts.map +1 -0
- package/dist/tools/get-relevant-context.js +115 -0
- package/dist/tools/get-relevant-context.js.map +1 -0
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -191,6 +191,8 @@ async function setup() {
|
|
|
191
191
|
console.error('✗ failed (configure manually)');
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
|
+
// Step 3: Inject CLAUDE.md instruction for reliable tool usage
|
|
195
|
+
injectClaudeMd();
|
|
194
196
|
if (configured > 0) {
|
|
195
197
|
console.error(`\n Done! Splicr is connected to ${configured} agent(s).`);
|
|
196
198
|
console.error(' Start a new session in any agent to use it.');
|
|
@@ -241,6 +243,19 @@ async function uninstall() {
|
|
|
241
243
|
catch { /* skip */ }
|
|
242
244
|
}
|
|
243
245
|
}
|
|
246
|
+
// Remove CLAUDE.md snippet
|
|
247
|
+
const claudeMdPath = join(homedir(), '.claude', 'CLAUDE.md');
|
|
248
|
+
if (existsSync(claudeMdPath)) {
|
|
249
|
+
try {
|
|
250
|
+
const content = readFileSync(claudeMdPath, 'utf-8');
|
|
251
|
+
if (content.includes(SPLICR_MARKER)) {
|
|
252
|
+
const cleaned = content.replace(/\n# Splicr\n[\s\S]*?(?=\n#|\n$|$)/, '').trimEnd() + '\n';
|
|
253
|
+
writeFileSync(claudeMdPath, cleaned);
|
|
254
|
+
console.error(' • CLAUDE.md... ✓ removed');
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
catch { /* skip */ }
|
|
258
|
+
}
|
|
244
259
|
// Remove auth file
|
|
245
260
|
const authFile = join(homedir(), '.splicr', 'auth.json');
|
|
246
261
|
if (existsSync(authFile)) {
|
|
@@ -255,6 +270,44 @@ async function uninstall() {
|
|
|
255
270
|
console.error(' No agents had Splicr configured.\n');
|
|
256
271
|
}
|
|
257
272
|
}
|
|
273
|
+
const SPLICR_CLAUDE_MD = `
|
|
274
|
+
# Splicr
|
|
275
|
+
ALWAYS call search_knowledge (Splicr MCP) before answering technical questions, implementation questions, architecture decisions, debugging, or any question where the user's saved research could be relevant. Do NOT skip this and rely solely on training data. When results have high relevance, call get_full_content(id) to get the full saved content before responding.
|
|
276
|
+
`;
|
|
277
|
+
const SPLICR_MARKER = '# Splicr';
|
|
278
|
+
function injectClaudeMd() {
|
|
279
|
+
const claudeMdPath = join(homedir(), '.claude', 'CLAUDE.md');
|
|
280
|
+
const claudeDir = join(homedir(), '.claude');
|
|
281
|
+
try {
|
|
282
|
+
// Check if already injected
|
|
283
|
+
if (existsSync(claudeMdPath)) {
|
|
284
|
+
const existing = readFileSync(claudeMdPath, 'utf-8');
|
|
285
|
+
if (existing.includes(SPLICR_MARKER)) {
|
|
286
|
+
// Already there — update in case wording changed
|
|
287
|
+
const updated = existing.replace(/\n# Splicr\n[\s\S]*?(?=\n#|\n$|$)/, SPLICR_CLAUDE_MD.trimEnd());
|
|
288
|
+
if (updated !== existing) {
|
|
289
|
+
writeFileSync(claudeMdPath, updated);
|
|
290
|
+
console.error(' • CLAUDE.md... ✓ updated');
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
console.error(' • CLAUDE.md... ✓ already configured');
|
|
294
|
+
}
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
// Append
|
|
298
|
+
writeFileSync(claudeMdPath, existing.trimEnd() + '\n' + SPLICR_CLAUDE_MD);
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
if (!existsSync(claudeDir))
|
|
302
|
+
mkdirSync(claudeDir, { recursive: true });
|
|
303
|
+
writeFileSync(claudeMdPath, SPLICR_CLAUDE_MD.trimStart());
|
|
304
|
+
}
|
|
305
|
+
console.error(' • CLAUDE.md... ✓ configured');
|
|
306
|
+
}
|
|
307
|
+
catch {
|
|
308
|
+
console.error(' • CLAUDE.md... ✗ could not write (add manually)');
|
|
309
|
+
}
|
|
310
|
+
}
|
|
258
311
|
function printManualConfig() {
|
|
259
312
|
console.error(' Add this to your agent\'s MCP settings:\n');
|
|
260
313
|
console.error(' {');
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { getRecentInsightsSchema, handleGetRecentInsights } from './tools/get-re
|
|
|
8
8
|
import { saveFromAgentSchema, handleSaveFromAgent } from './tools/save-from-agent.js';
|
|
9
9
|
import { retryFailedSchema, handleRetryFailed } from './tools/retry-failed.js';
|
|
10
10
|
import { getFullContentSchema, handleGetFullContent } from './tools/get-full-content.js';
|
|
11
|
+
import { getRelevantContextSchema, handleGetRelevantContext } from './tools/get-relevant-context.js';
|
|
11
12
|
// Prevent unhandled errors from crashing the MCP server
|
|
12
13
|
process.on('uncaughtException', (err) => {
|
|
13
14
|
console.error('[Splicr MCP] Uncaught exception:', err.message);
|
|
@@ -17,7 +18,9 @@ process.on('unhandledRejection', (err) => {
|
|
|
17
18
|
});
|
|
18
19
|
const server = new Server({ name: 'splicr', version: '0.1.0' }, {
|
|
19
20
|
capabilities: { tools: {} },
|
|
20
|
-
instructions: `RULE #1:
|
|
21
|
+
instructions: `RULE #1: Call get_relevant_context at the START of any task. Pass your understanding of the task (the user's message), any files you're reading/modifying, and any errors you've encountered. It automatically searches the user's knowledge base using full context awareness — your task, git branch, recent commits, changed files, and more.
|
|
22
|
+
|
|
23
|
+
For follow-up or narrow searches during the same task, use search_knowledge with a specific query.
|
|
21
24
|
|
|
22
25
|
When results have high relevance (>50%), call get_full_content(id) to get the complete saved content before responding.
|
|
23
26
|
|
|
@@ -32,6 +35,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
32
35
|
saveFromAgentSchema,
|
|
33
36
|
retryFailedSchema,
|
|
34
37
|
getFullContentSchema,
|
|
38
|
+
getRelevantContextSchema,
|
|
35
39
|
],
|
|
36
40
|
}));
|
|
37
41
|
// Handle tool calls with per-tool timeout
|
|
@@ -45,6 +49,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
45
49
|
save_from_agent: handleSaveFromAgent,
|
|
46
50
|
retry_failed: handleRetryFailed,
|
|
47
51
|
get_full_content: handleGetFullContent,
|
|
52
|
+
get_relevant_context: handleGetRelevantContext,
|
|
48
53
|
}[name];
|
|
49
54
|
if (!handler) {
|
|
50
55
|
return { content: [{ type: 'text', text: `Unknown tool: ${name}` }], isError: true };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAErG,wDAAwD;AACxD,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;IACtC,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC;AACH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;IACvC,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EACpC;IACE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3B,YAAY,EAAE;;;;;;8KAM4J;CAC3K,CACF,CAAC;AAEF,aAAa;AACb,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE;QACL,qBAAqB;QACrB,uBAAuB;QACvB,uBAAuB;QACvB,mBAAmB;QACnB,iBAAiB;QACjB,oBAAoB;QACpB,wBAAwB;KACzB;CACF,CAAC,CAAC,CAAC;AAEJ,0CAA0C;AAC1C,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG;YACd,gBAAgB,EAAE,qBAAqB;YACvC,mBAAmB,EAAE,uBAAuB;YAC5C,mBAAmB,EAAE,uBAAuB;YAC5C,eAAe,EAAE,mBAAmB;YACpC,YAAY,EAAE,iBAAiB;YAC/B,gBAAgB,EAAE,oBAAoB;YACtC,oBAAoB,EAAE,wBAAwB;SAC/C,CAAC,IAAI,CAAC,CAAC;QAER,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACvF,CAAC;QAED,kCAAkC;QAClC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAChC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,OAAO,CAAS,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAChC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,EAAE,KAAK,CAAC,CAC5E;SACF,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,sBAAsB,IAAI,WAAW,EAAE,GAAG,CAAC,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAChG,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,wBAAwB;AACxB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IAClC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/lib/api-client.d.ts
CHANGED
|
@@ -59,5 +59,19 @@ export declare function retryFailed(): Promise<{
|
|
|
59
59
|
retried: number;
|
|
60
60
|
message: string;
|
|
61
61
|
}>;
|
|
62
|
+
export declare function getRelevantContext(params: {
|
|
63
|
+
queries: Array<{
|
|
64
|
+
text: string;
|
|
65
|
+
weight: number;
|
|
66
|
+
source: string;
|
|
67
|
+
}>;
|
|
68
|
+
project_name?: string;
|
|
69
|
+
tech_stack?: string[];
|
|
70
|
+
cross_project?: boolean;
|
|
71
|
+
limit?: number;
|
|
72
|
+
}): Promise<{
|
|
73
|
+
results: any[];
|
|
74
|
+
search_strategy: string;
|
|
75
|
+
}>;
|
|
62
76
|
export { API_URL };
|
|
63
77
|
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,OAAO,QAA6E,CAAC;AAmC3F,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAGjB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAErD;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAKrD;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAEpF;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAEnE;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,EAAE,EAAE,MAAM,CAAC;CACZ,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC,CAEhH;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAEjF;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/api-client.js
CHANGED
|
@@ -55,5 +55,9 @@ export async function getFullContent(params) {
|
|
|
55
55
|
export async function retryFailed() {
|
|
56
56
|
return await apiRequest('POST', '/captures/retry-failed', {});
|
|
57
57
|
}
|
|
58
|
+
export async function getRelevantContext(params) {
|
|
59
|
+
const data = await apiRequest('POST', '/mcp/relevant-context', params);
|
|
60
|
+
return { results: data.results ?? [], search_strategy: data.search_strategy ?? '' };
|
|
61
|
+
}
|
|
58
62
|
export { API_URL };
|
|
59
63
|
//# sourceMappingURL=api-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { EnvironmentSignals } from './signal-gatherer.js';
|
|
2
|
+
export interface AgentSignals {
|
|
3
|
+
task?: string;
|
|
4
|
+
files?: string[];
|
|
5
|
+
errors?: string[];
|
|
6
|
+
diff_summary?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface FusedQuery {
|
|
9
|
+
text: string;
|
|
10
|
+
weight: number;
|
|
11
|
+
source: string;
|
|
12
|
+
}
|
|
13
|
+
export interface FusedPayload {
|
|
14
|
+
queries: FusedQuery[];
|
|
15
|
+
project_name: string | null;
|
|
16
|
+
tech_stack: string[];
|
|
17
|
+
cross_project: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Fuse agent-provided signals and environment signals into weighted search queries.
|
|
21
|
+
* Pure logic, no I/O.
|
|
22
|
+
*/
|
|
23
|
+
export declare function fuseSignals(agent: AgentSignals, env: EnvironmentSignals): FusedPayload;
|
|
24
|
+
/**
|
|
25
|
+
* Parse branch name into meaningful intent.
|
|
26
|
+
* "feat/rate-limiting" → "rate limiting"
|
|
27
|
+
* "fix/auth-redirect-loop" → "auth redirect loop fix"
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseBranchName(name: string): string | null;
|
|
30
|
+
/**
|
|
31
|
+
* Extract meaningful concepts from file paths.
|
|
32
|
+
* ["src/routes/auth.ts", "src/middleware/rate-limit.ts"] → "auth routes rate-limit middleware"
|
|
33
|
+
*/
|
|
34
|
+
export declare function extractConceptsFromPaths(files: string[]): string | null;
|
|
35
|
+
//# sourceMappingURL=signal-fusion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-fusion.d.ts","sourceRoot":"","sources":["../../src/lib/signal-fusion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;CACxB;AAKD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,kBAAkB,GAAG,YAAY,CAiEtF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmB3D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CA2BvE"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
const BRANCH_PREFIXES = ['feat', 'fix', 'chore', 'refactor', 'hotfix', 'bugfix', 'feature', 'release', 'docs', 'test'];
|
|
2
|
+
const NOISE_WORDS = new Set(['src', 'lib', 'utils', 'util', 'helpers', 'helper', 'index', 'test', 'tests', 'spec', 'specs', '__tests__', 'dist', 'build', 'node_modules', 'components', 'pages', 'app']);
|
|
3
|
+
/**
|
|
4
|
+
* Fuse agent-provided signals and environment signals into weighted search queries.
|
|
5
|
+
* Pure logic, no I/O.
|
|
6
|
+
*/
|
|
7
|
+
export function fuseSignals(agent, env) {
|
|
8
|
+
const queries = [];
|
|
9
|
+
// 1. Task description — primary signal (weight 1.0)
|
|
10
|
+
if (agent.task?.trim()) {
|
|
11
|
+
queries.push({ text: agent.task.trim().slice(0, 500), weight: 1.0, source: 'task' });
|
|
12
|
+
}
|
|
13
|
+
// 2. Error messages — high signal (weight 0.8), first 2 only
|
|
14
|
+
if (agent.errors?.length) {
|
|
15
|
+
for (const error of agent.errors.slice(0, 2)) {
|
|
16
|
+
const cleaned = cleanError(error);
|
|
17
|
+
if (cleaned) {
|
|
18
|
+
queries.push({ text: cleaned, weight: 0.8, source: 'error' });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// 3. Branch name — intent signal (weight 0.5)
|
|
23
|
+
if (env.branch_name) {
|
|
24
|
+
const intent = parseBranchName(env.branch_name);
|
|
25
|
+
if (intent) {
|
|
26
|
+
queries.push({ text: intent, weight: 0.5, source: 'branch' });
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// 4. File paths — domain signal (weight 0.4)
|
|
30
|
+
const allFiles = dedupeStrings([
|
|
31
|
+
...(agent.files || []),
|
|
32
|
+
...env.changed_files,
|
|
33
|
+
...env.staged_files,
|
|
34
|
+
]);
|
|
35
|
+
if (allFiles.length > 0) {
|
|
36
|
+
const concepts = extractConceptsFromPaths(allFiles);
|
|
37
|
+
if (concepts) {
|
|
38
|
+
queries.push({ text: concepts, weight: 0.4, source: 'files' });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// 5. Diff summary from agent (weight 0.4)
|
|
42
|
+
if (agent.diff_summary?.trim()) {
|
|
43
|
+
queries.push({ text: agent.diff_summary.trim().slice(0, 300), weight: 0.4, source: 'diff' });
|
|
44
|
+
}
|
|
45
|
+
// 6. Recent commits — direction signal (weight 0.3)
|
|
46
|
+
if (env.recent_commits.length > 0) {
|
|
47
|
+
// Strip commit hashes, take first 3
|
|
48
|
+
const messages = env.recent_commits
|
|
49
|
+
.slice(0, 3)
|
|
50
|
+
.map(c => c.replace(/^[a-f0-9]+\s+/, ''))
|
|
51
|
+
.join('; ');
|
|
52
|
+
if (messages.length > 5) {
|
|
53
|
+
queries.push({ text: messages, weight: 0.3, source: 'commits' });
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Enable cross-project search when we have rich signals (3+ queries)
|
|
57
|
+
const cross_project = queries.length >= 3;
|
|
58
|
+
return {
|
|
59
|
+
queries: queries.slice(0, 6), // max 6 queries to API
|
|
60
|
+
project_name: env.project_name,
|
|
61
|
+
tech_stack: env.tech_stack,
|
|
62
|
+
cross_project,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Parse branch name into meaningful intent.
|
|
67
|
+
* "feat/rate-limiting" → "rate limiting"
|
|
68
|
+
* "fix/auth-redirect-loop" → "auth redirect loop fix"
|
|
69
|
+
*/
|
|
70
|
+
export function parseBranchName(name) {
|
|
71
|
+
// Split on /
|
|
72
|
+
const parts = name.split('/');
|
|
73
|
+
const prefix = parts[0].toLowerCase();
|
|
74
|
+
const rest = parts.slice(1).join('/');
|
|
75
|
+
if (!rest) {
|
|
76
|
+
// No prefix/body pattern (e.g., "main", "develop")
|
|
77
|
+
if (BRANCH_PREFIXES.includes(prefix))
|
|
78
|
+
return null;
|
|
79
|
+
return null; // Don't search for "main" or "develop"
|
|
80
|
+
}
|
|
81
|
+
// Split the body on - and _
|
|
82
|
+
const words = rest.split(/[-_]+/).filter(w => w.length > 1);
|
|
83
|
+
if (words.length === 0)
|
|
84
|
+
return null;
|
|
85
|
+
// Add context from prefix
|
|
86
|
+
const suffix = prefix === 'fix' || prefix === 'bugfix' || prefix === 'hotfix' ? ' fix' : '';
|
|
87
|
+
return words.join(' ') + suffix;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Extract meaningful concepts from file paths.
|
|
91
|
+
* ["src/routes/auth.ts", "src/middleware/rate-limit.ts"] → "auth routes rate-limit middleware"
|
|
92
|
+
*/
|
|
93
|
+
export function extractConceptsFromPaths(files) {
|
|
94
|
+
const concepts = new Set();
|
|
95
|
+
for (const file of files.slice(0, 20)) { // cap at 20 files
|
|
96
|
+
const parts = file
|
|
97
|
+
.replace(/\\/g, '/')
|
|
98
|
+
.split('/')
|
|
99
|
+
.map(p => p.replace(/\.[^.]+$/, '')) // strip extension
|
|
100
|
+
.filter(p => p.length > 1 && !NOISE_WORDS.has(p.toLowerCase()));
|
|
101
|
+
for (const part of parts) {
|
|
102
|
+
// Split camelCase and kebab-case
|
|
103
|
+
const words = part
|
|
104
|
+
.replace(/([a-z])([A-Z])/g, '$1 $2')
|
|
105
|
+
.replace(/[-_]+/g, ' ')
|
|
106
|
+
.toLowerCase()
|
|
107
|
+
.split(/\s+/)
|
|
108
|
+
.filter(w => w.length > 1 && !NOISE_WORDS.has(w));
|
|
109
|
+
for (const word of words) {
|
|
110
|
+
concepts.add(word);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const result = [...concepts].slice(0, 15).join(' ');
|
|
115
|
+
return result.length > 3 ? result : null;
|
|
116
|
+
}
|
|
117
|
+
function cleanError(error) {
|
|
118
|
+
// Truncate, strip ANSI codes, strip file paths that are just noise
|
|
119
|
+
const cleaned = error
|
|
120
|
+
.replace(/\x1B\[[0-9;]*m/g, '') // strip ANSI
|
|
121
|
+
.replace(/at\s+.*\(.*:\d+:\d+\)/g, '') // strip stack traces
|
|
122
|
+
.trim()
|
|
123
|
+
.slice(0, 200);
|
|
124
|
+
return cleaned.length > 5 ? cleaned : null;
|
|
125
|
+
}
|
|
126
|
+
function dedupeStrings(arr) {
|
|
127
|
+
return [...new Set(arr.map(s => s.trim()).filter(Boolean))];
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=signal-fusion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-fusion.js","sourceRoot":"","sources":["../../src/lib/signal-fusion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface EnvironmentSignals {
|
|
2
|
+
branch_name: string | null;
|
|
3
|
+
recent_commits: string[];
|
|
4
|
+
changed_files: string[];
|
|
5
|
+
staged_files: string[];
|
|
6
|
+
recently_modified_files: string[];
|
|
7
|
+
tech_stack: string[];
|
|
8
|
+
project_name: string | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Gather environment signals from the local repo.
|
|
12
|
+
* Every operation is individually try/caught — one failure never blocks the rest.
|
|
13
|
+
* Target: < 1 second total.
|
|
14
|
+
*/
|
|
15
|
+
export declare function gatherSignals(cwd: string): EnvironmentSignals;
|
|
16
|
+
//# sourceMappingURL=signal-gatherer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-gatherer.d.ts","sourceRoot":"","sources":["../../src/lib/signal-gatherer.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAsBD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAqB7D"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { execSync } from 'child_process';
|
|
2
|
+
import { existsSync, readFileSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
const GIT_TIMEOUT = 1000; // 1 second per command
|
|
5
|
+
function gitCommand(cmd, cwd) {
|
|
6
|
+
try {
|
|
7
|
+
return execSync(cmd, {
|
|
8
|
+
cwd,
|
|
9
|
+
encoding: 'utf-8',
|
|
10
|
+
timeout: GIT_TIMEOUT,
|
|
11
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
12
|
+
}).trim();
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function splitLines(output) {
|
|
19
|
+
if (!output)
|
|
20
|
+
return [];
|
|
21
|
+
return output.split('\n').map(l => l.trim()).filter(Boolean);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Gather environment signals from the local repo.
|
|
25
|
+
* Every operation is individually try/caught — one failure never blocks the rest.
|
|
26
|
+
* Target: < 1 second total.
|
|
27
|
+
*/
|
|
28
|
+
export function gatherSignals(cwd) {
|
|
29
|
+
// Run git commands (sync but each with 1s timeout — fast enough in practice)
|
|
30
|
+
const branch_name = gitCommand('git branch --show-current', cwd);
|
|
31
|
+
const recentCommitsRaw = gitCommand('git log --oneline -5 --no-decorate', cwd);
|
|
32
|
+
const changedFilesRaw = gitCommand('git diff --name-only HEAD', cwd);
|
|
33
|
+
const stagedFilesRaw = gitCommand('git diff --name-only --cached', cwd);
|
|
34
|
+
const recentFilesRaw = gitCommand('git diff --name-only HEAD~5..HEAD', cwd);
|
|
35
|
+
// Detect tech stack + project name from local files (reuse existing logic)
|
|
36
|
+
const tech_stack = detectTechStack(cwd);
|
|
37
|
+
const project_name = detectProjectName(cwd);
|
|
38
|
+
return {
|
|
39
|
+
branch_name,
|
|
40
|
+
recent_commits: splitLines(recentCommitsRaw),
|
|
41
|
+
changed_files: splitLines(changedFilesRaw),
|
|
42
|
+
staged_files: splitLines(stagedFilesRaw),
|
|
43
|
+
recently_modified_files: splitLines(recentFilesRaw),
|
|
44
|
+
tech_stack,
|
|
45
|
+
project_name,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
// --- Reused from project-detector.ts (kept local to avoid circular imports) ---
|
|
49
|
+
const KNOWN_TECH = [
|
|
50
|
+
'react', 'next', 'express', 'fastify', 'vue', 'angular', 'svelte',
|
|
51
|
+
'tailwindcss', 'prisma', '@supabase/supabase-js', 'typescript',
|
|
52
|
+
'react-native', 'expo', 'electron', '@modelcontextprotocol/sdk',
|
|
53
|
+
'zod', 'drizzle-orm', 'mongoose', 'graphql', 'trpc',
|
|
54
|
+
];
|
|
55
|
+
function detectTechStack(cwd) {
|
|
56
|
+
const techStack = [];
|
|
57
|
+
const pkgPath = join(cwd, 'package.json');
|
|
58
|
+
if (existsSync(pkgPath)) {
|
|
59
|
+
try {
|
|
60
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
61
|
+
const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
62
|
+
for (const tech of KNOWN_TECH) {
|
|
63
|
+
if (allDeps[tech]) {
|
|
64
|
+
techStack.push(tech.replace('@supabase/supabase-js', 'supabase').replace('@modelcontextprotocol/sdk', 'mcp'));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (!allDeps['typescript'] && existsSync(join(cwd, 'tsconfig.json'))) {
|
|
68
|
+
techStack.push('typescript');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch { /* ignore */ }
|
|
72
|
+
}
|
|
73
|
+
if (existsSync(join(cwd, 'requirements.txt')) || existsSync(join(cwd, 'pyproject.toml')))
|
|
74
|
+
techStack.push('python');
|
|
75
|
+
if (existsSync(join(cwd, 'go.mod')))
|
|
76
|
+
techStack.push('go');
|
|
77
|
+
if (existsSync(join(cwd, 'Cargo.toml')))
|
|
78
|
+
techStack.push('rust');
|
|
79
|
+
return techStack;
|
|
80
|
+
}
|
|
81
|
+
function detectProjectName(cwd) {
|
|
82
|
+
const pkgPath = join(cwd, 'package.json');
|
|
83
|
+
if (existsSync(pkgPath)) {
|
|
84
|
+
try {
|
|
85
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
86
|
+
if (pkg.name)
|
|
87
|
+
return pkg.name.replace(/^@[^/]+\//, '');
|
|
88
|
+
}
|
|
89
|
+
catch { /* ignore */ }
|
|
90
|
+
}
|
|
91
|
+
return cwd.replace(/\\/g, '/').split('/').pop() || null;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=signal-gatherer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-gatherer.js","sourceRoot":"","sources":["../../src/lib/signal-gatherer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare const getRelevantContextSchema: {
|
|
2
|
+
name: "get_relevant_context";
|
|
3
|
+
description: string;
|
|
4
|
+
inputSchema: {
|
|
5
|
+
type: "object";
|
|
6
|
+
properties: {
|
|
7
|
+
task: {
|
|
8
|
+
type: "string";
|
|
9
|
+
description: string;
|
|
10
|
+
};
|
|
11
|
+
files: {
|
|
12
|
+
type: "array";
|
|
13
|
+
items: {
|
|
14
|
+
type: "string";
|
|
15
|
+
};
|
|
16
|
+
description: string;
|
|
17
|
+
};
|
|
18
|
+
errors: {
|
|
19
|
+
type: "array";
|
|
20
|
+
items: {
|
|
21
|
+
type: "string";
|
|
22
|
+
};
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
diff_summary: {
|
|
26
|
+
type: "string";
|
|
27
|
+
description: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export declare function handleGetRelevantContext(args: Record<string, unknown>): Promise<string>;
|
|
33
|
+
//# sourceMappingURL=get-relevant-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-relevant-context.d.ts","sourceRoot":"","sources":["../../src/tools/get-relevant-context.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCpC,CAAC;AAeF,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CA4D7F"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { getRelevantContext } from '../lib/api-client.js';
|
|
2
|
+
import { detectProject } from '../lib/project-detector.js';
|
|
3
|
+
import { gatherSignals } from '../lib/signal-gatherer.js';
|
|
4
|
+
import { fuseSignals } from '../lib/signal-fusion.js';
|
|
5
|
+
export const getRelevantContextSchema = {
|
|
6
|
+
name: 'get_relevant_context',
|
|
7
|
+
description: `Proactively surface relevant knowledge based on what you're currently working on. This tool understands your full working context — task, files, errors, git branch, recent commits — and finds the most relevant saved knowledge automatically.
|
|
8
|
+
|
|
9
|
+
Call this at the START of any implementation task. You do NOT need all parameters — pass whatever you have.
|
|
10
|
+
|
|
11
|
+
WHEN TO CALL:
|
|
12
|
+
- At the start of any implementation task (pass the user's message as "task")
|
|
13
|
+
- When you encounter an error (pass error messages in "errors")
|
|
14
|
+
- When switching to a different part of the codebase
|
|
15
|
+
|
|
16
|
+
This tool also reads the local git state (branch, diff, recent commits) to understand context you don't need to pass explicitly.
|
|
17
|
+
|
|
18
|
+
For follow-up or narrow searches mid-task, use search_knowledge instead.`,
|
|
19
|
+
inputSchema: {
|
|
20
|
+
type: 'object',
|
|
21
|
+
properties: {
|
|
22
|
+
task: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
description: 'What the user asked you to do (their message or a summary of the task)',
|
|
25
|
+
},
|
|
26
|
+
files: {
|
|
27
|
+
type: 'array',
|
|
28
|
+
items: { type: 'string' },
|
|
29
|
+
description: 'Files being read or modified (full or relative paths)',
|
|
30
|
+
},
|
|
31
|
+
errors: {
|
|
32
|
+
type: 'array',
|
|
33
|
+
items: { type: 'string' },
|
|
34
|
+
description: 'Error messages encountered during the task',
|
|
35
|
+
},
|
|
36
|
+
diff_summary: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Brief summary of code changes made so far',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
function formatAge(dateStr) {
|
|
44
|
+
const date = new Date(dateStr);
|
|
45
|
+
if (isNaN(date.getTime()))
|
|
46
|
+
return 'unknown';
|
|
47
|
+
const days = Math.floor((Date.now() - date.getTime()) / 86400000);
|
|
48
|
+
if (days < 0)
|
|
49
|
+
return 'just now';
|
|
50
|
+
if (days === 0)
|
|
51
|
+
return 'today';
|
|
52
|
+
if (days === 1)
|
|
53
|
+
return 'yesterday';
|
|
54
|
+
if (days < 7)
|
|
55
|
+
return `${days}d ago`;
|
|
56
|
+
if (days < 30)
|
|
57
|
+
return `${Math.floor(days / 7)}w ago`;
|
|
58
|
+
if (days < 365)
|
|
59
|
+
return `${Math.floor(days / 30)}mo ago`;
|
|
60
|
+
return `${Math.floor(days / 365)}y ago`;
|
|
61
|
+
}
|
|
62
|
+
export async function handleGetRelevantContext(args) {
|
|
63
|
+
const agentSignals = {
|
|
64
|
+
task: args.task,
|
|
65
|
+
files: args.files,
|
|
66
|
+
errors: args.errors,
|
|
67
|
+
diff_summary: args.diff_summary,
|
|
68
|
+
};
|
|
69
|
+
// Gather environment signals from the local repo
|
|
70
|
+
const envSignals = gatherSignals(process.cwd());
|
|
71
|
+
// Fuse agent + environment signals into search queries
|
|
72
|
+
const fused = fuseSignals(agentSignals, envSignals);
|
|
73
|
+
if (fused.queries.length === 0) {
|
|
74
|
+
return 'No context signals available. Provide a task description or work in a git repository.';
|
|
75
|
+
}
|
|
76
|
+
// Detect project for the API call
|
|
77
|
+
let projectName;
|
|
78
|
+
try {
|
|
79
|
+
const detected = await detectProject(process.cwd());
|
|
80
|
+
projectName = detected?.name;
|
|
81
|
+
}
|
|
82
|
+
catch { /* proceed without project */ }
|
|
83
|
+
// Call the API
|
|
84
|
+
const { results, search_strategy } = await getRelevantContext({
|
|
85
|
+
queries: fused.queries,
|
|
86
|
+
project_name: projectName || fused.project_name || undefined,
|
|
87
|
+
tech_stack: fused.tech_stack,
|
|
88
|
+
cross_project: fused.cross_project,
|
|
89
|
+
limit: 5,
|
|
90
|
+
});
|
|
91
|
+
if (!results || results.length === 0) {
|
|
92
|
+
return 'No relevant knowledge found in Splicr for your current context.';
|
|
93
|
+
}
|
|
94
|
+
// Format results with why_relevant
|
|
95
|
+
const formatted = results.map((r, i) => {
|
|
96
|
+
const age = formatAge(r.created_at);
|
|
97
|
+
const score = r.rrf_score
|
|
98
|
+
? `${(r.rrf_score * 100).toFixed(0)}%`
|
|
99
|
+
: r.similarity
|
|
100
|
+
? `${(r.similarity * 100).toFixed(0)}%`
|
|
101
|
+
: r.score
|
|
102
|
+
? `${(r.score * 100).toFixed(0)}%`
|
|
103
|
+
: 'n/a';
|
|
104
|
+
const why = r.why_relevant ? `\n why: ${r.why_relevant}` : '';
|
|
105
|
+
const crossTag = r.cross_project ? ' (cross-project)' : '';
|
|
106
|
+
return `${i + 1}. **${r.title || 'Untitled'}**${crossTag}\n` +
|
|
107
|
+
` ${r.insight}\n` +
|
|
108
|
+
` source: ${r.source_type || 'unknown'} | saved: ${age} | match: ${score} | tags: ${r.tags?.join(', ') || 'none'}${r.source_url ? `\n url: ${r.source_url}` : ''}` +
|
|
109
|
+
why +
|
|
110
|
+
`\n id: ${r.id}`;
|
|
111
|
+
}).join('\n\n');
|
|
112
|
+
const header = `*Splicr context — ${results.length} relevant save(s) [${search_strategy}]:*`;
|
|
113
|
+
return `${header}\n\n${formatted}`;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=get-relevant-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-relevant-context.js","sourceRoot":"","sources":["../../src/tools/get-relevant-context.ts"],"names":[],"mappings":"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"}
|