@copilotkit/pathfinder 1.1.0 → 1.4.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/CHANGELOG.md +19 -1
- package/README.md +61 -249
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +60 -0
- package/dist/cli.js.map +1 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +3 -1
- package/dist/db/client.js.map +1 -1
- package/dist/db/queries.d.ts +14 -3
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +46 -45
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.d.ts +5 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +11 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/index.js +2 -362
- package/dist/index.js.map +1 -1
- package/dist/indexing/chunking/html.d.ts +7 -0
- package/dist/indexing/chunking/html.d.ts.map +1 -0
- package/dist/indexing/chunking/html.js +356 -0
- package/dist/indexing/chunking/html.js.map +1 -0
- package/dist/indexing/chunking/index.js +2 -0
- package/dist/indexing/chunking/index.js.map +1 -1
- package/dist/indexing/orchestrator.d.ts +1 -0
- package/dist/indexing/orchestrator.d.ts.map +1 -1
- package/dist/indexing/orchestrator.js +27 -2
- package/dist/indexing/orchestrator.js.map +1 -1
- package/dist/indexing/source-indexer.d.ts.map +1 -1
- package/dist/indexing/source-indexer.js +1 -0
- package/dist/indexing/source-indexer.js.map +1 -1
- package/dist/ip-limiter.d.ts +11 -0
- package/dist/ip-limiter.d.ts.map +1 -0
- package/dist/ip-limiter.js +40 -0
- package/dist/ip-limiter.js.map +1 -0
- package/dist/llms-txt.d.ts +11 -0
- package/dist/llms-txt.d.ts.map +1 -0
- package/dist/llms-txt.js +43 -0
- package/dist/llms-txt.js.map +1 -0
- package/dist/mcp/server.d.ts +3 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +5 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/bash.d.ts +8 -0
- package/dist/mcp/tools/bash.d.ts.map +1 -1
- package/dist/mcp/tools/bash.js +59 -0
- package/dist/mcp/tools/bash.js.map +1 -1
- package/dist/mcp/tools/search.d.ts.map +1 -1
- package/dist/mcp/tools/search.js +11 -3
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/server.d.ts +6 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +492 -0
- package/dist/server.js.map +1 -0
- package/dist/skill-md.d.ts +3 -0
- package/dist/skill-md.d.ts.map +1 -0
- package/dist/skill-md.js +75 -0
- package/dist/skill-md.js.map +1 -0
- package/dist/types.d.ts +56 -18
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -3
- package/dist/types.js.map +1 -1
- package/dist/workspace.d.ts +13 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +118 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +14 -2
- package/pathfinder-docs.yaml +54 -0
- package/pathfinder.example.yaml +48 -0
- package/.superpowers/brainstorm/47098-1775507869/content/homepage-mockup.html +0 -324
- package/.superpowers/brainstorm/47098-1775507869/state/server-stopped +0 -1
- package/.superpowers/brainstorm/47098-1775507869/state/server.log +0 -13
- package/.superpowers/brainstorm/47098-1775507869/state/server.pid +0 -1
- package/.superpowers/brainstorm/82141-1775511032/content/migration-v2.html +0 -340
- package/.superpowers/brainstorm/82141-1775511032/content/migration.html +0 -340
- package/.superpowers/brainstorm/82141-1775511032/state/server-stopped +0 -1
- package/.superpowers/brainstorm/82141-1775511032/state/server.log +0 -4
- package/.superpowers/brainstorm/82141-1775511032/state/server.pid +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip-limiter.d.ts","sourceRoot":"","sources":["../src/ip-limiter.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,WAAW,CAA6B;gBAEpC,QAAQ,EAAE,MAAM;IAI5B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAa9C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAW/B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAInC,MAAM,IAAI,MAAM;CAGnB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export class IpSessionLimiter {
|
|
2
|
+
maxPerIp;
|
|
3
|
+
ipToSessions = new Map();
|
|
4
|
+
sessionToIp = new Map();
|
|
5
|
+
constructor(maxPerIp) {
|
|
6
|
+
this.maxPerIp = maxPerIp;
|
|
7
|
+
}
|
|
8
|
+
tryAdd(ip, sessionId) {
|
|
9
|
+
const sessions = this.ipToSessions.get(ip);
|
|
10
|
+
if (sessions && sessions.size >= this.maxPerIp)
|
|
11
|
+
return false;
|
|
12
|
+
if (!sessions) {
|
|
13
|
+
this.ipToSessions.set(ip, new Set([sessionId]));
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
sessions.add(sessionId);
|
|
17
|
+
}
|
|
18
|
+
this.sessionToIp.set(sessionId, ip);
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
remove(sessionId) {
|
|
22
|
+
const ip = this.sessionToIp.get(sessionId);
|
|
23
|
+
if (!ip)
|
|
24
|
+
return;
|
|
25
|
+
this.sessionToIp.delete(sessionId);
|
|
26
|
+
const sessions = this.ipToSessions.get(ip);
|
|
27
|
+
if (sessions) {
|
|
28
|
+
sessions.delete(sessionId);
|
|
29
|
+
if (sessions.size === 0)
|
|
30
|
+
this.ipToSessions.delete(ip);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
getSessionCount(ip) {
|
|
34
|
+
return this.ipToSessions.get(ip)?.size ?? 0;
|
|
35
|
+
}
|
|
36
|
+
getMax() {
|
|
37
|
+
return this.maxPerIp;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=ip-limiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip-limiter.js","sourceRoot":"","sources":["../src/ip-limiter.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAgB;IACjB,QAAQ,CAAS;IACjB,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9C,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEhD,YAAY,QAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,SAAiB;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE7D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,SAAiB;QACpB,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3B,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface ChunkForLlms {
|
|
2
|
+
source_name: string;
|
|
3
|
+
file_path: string;
|
|
4
|
+
title: string | null;
|
|
5
|
+
content: string;
|
|
6
|
+
chunk_index: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function generateLlmsTxt(chunks: ChunkForLlms[], serverName: string): string;
|
|
9
|
+
export declare function generateLlmsFullTxt(chunks: ChunkForLlms[]): string;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=llms-txt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../src/llms-txt.ts"],"names":[],"mappings":"AAAA,UAAU,YAAY;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CA2BlF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAgBlE"}
|
package/dist/llms-txt.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export function generateLlmsTxt(chunks, serverName) {
|
|
2
|
+
const lines = [
|
|
3
|
+
`# ${serverName}`,
|
|
4
|
+
'',
|
|
5
|
+
'> Documentation index for AI agents',
|
|
6
|
+
'',
|
|
7
|
+
];
|
|
8
|
+
// Group by source, deduplicate by file_path, use first chunk's title
|
|
9
|
+
const bySource = new Map();
|
|
10
|
+
for (const c of chunks) {
|
|
11
|
+
if (!bySource.has(c.source_name))
|
|
12
|
+
bySource.set(c.source_name, new Map());
|
|
13
|
+
const files = bySource.get(c.source_name);
|
|
14
|
+
if (!files.has(c.file_path)) {
|
|
15
|
+
files.set(c.file_path, c.title || c.file_path);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
for (const [source, files] of bySource) {
|
|
19
|
+
lines.push(`## ${source}`, '');
|
|
20
|
+
for (const [filePath, title] of files) {
|
|
21
|
+
lines.push(`- ${filePath} — ${title}`);
|
|
22
|
+
}
|
|
23
|
+
lines.push('');
|
|
24
|
+
}
|
|
25
|
+
return lines.join('\n');
|
|
26
|
+
}
|
|
27
|
+
export function generateLlmsFullTxt(chunks) {
|
|
28
|
+
// Group chunks by file_path, sort by chunk_index, join content
|
|
29
|
+
const byFile = new Map();
|
|
30
|
+
for (const c of chunks) {
|
|
31
|
+
if (!byFile.has(c.file_path))
|
|
32
|
+
byFile.set(c.file_path, []);
|
|
33
|
+
byFile.get(c.file_path).push(c);
|
|
34
|
+
}
|
|
35
|
+
const sections = [];
|
|
36
|
+
for (const [filePath, fileChunks] of byFile) {
|
|
37
|
+
fileChunks.sort((a, b) => a.chunk_index - b.chunk_index);
|
|
38
|
+
const content = fileChunks.map(c => c.content).join('\n');
|
|
39
|
+
sections.push(`---\nfile: ${filePath}\n---\n\n${content}`);
|
|
40
|
+
}
|
|
41
|
+
return sections.join('\n\n');
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=llms-txt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llms-txt.js","sourceRoot":"","sources":["../src/llms-txt.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,eAAe,CAAC,MAAsB,EAAE,UAAkB;IACtE,MAAM,KAAK,GAAa;QACpB,KAAK,UAAU,EAAE;QACjB,EAAE;QACF,qCAAqC;QACrC,EAAE;KACL,CAAC;IAEF,qEAAqE;IACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/B,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,MAAM,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAsB;IACtD,+DAA+D;IAC/D,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;QAC1C,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,QAAQ,CAAC,IAAI,CAAC,cAAc,QAAQ,YAAY,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
|
package/dist/mcp/server.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { Bash } from 'just-bash';
|
|
2
2
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
3
|
import { SessionStateManager } from './tools/bash-session.js';
|
|
4
|
+
import type { BashTelemetry } from './tools/bash-telemetry.js';
|
|
5
|
+
import type { WorkspaceManager } from '../workspace.js';
|
|
4
6
|
/**
|
|
5
7
|
* Creates a new McpServer instance with all tools registered.
|
|
6
8
|
* Each MCP session gets its own server instance. Each bash tool gets its own
|
|
7
9
|
* virtual filesystem instance, shared across all MCP sessions for that tool.
|
|
8
10
|
*/
|
|
9
|
-
export declare function createMcpServer(bashInstances?: Map<string, Bash>, sessionStateManager?: SessionStateManager, getSessionId?: () => string | undefined): McpServer;
|
|
11
|
+
export declare function createMcpServer(bashInstances?: Map<string, Bash>, sessionStateManager?: SessionStateManager, getSessionId?: () => string | undefined, telemetry?: BashTelemetry, workspace?: WorkspaceManager): McpServer;
|
|
10
12
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,eAAe,CAC3B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EACjC,mBAAmB,CAAC,EAAE,mBAAmB,EACzC,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,EACvC,SAAS,CAAC,EAAE,aAAa,EACzB,SAAS,CAAC,EAAE,gBAAgB,GAC7B,SAAS,CAkEX"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -9,7 +9,7 @@ import { registerBashTool } from './tools/bash.js';
|
|
|
9
9
|
* Each MCP session gets its own server instance. Each bash tool gets its own
|
|
10
10
|
* virtual filesystem instance, shared across all MCP sessions for that tool.
|
|
11
11
|
*/
|
|
12
|
-
export function createMcpServer(bashInstances, sessionStateManager, getSessionId) {
|
|
12
|
+
export function createMcpServer(bashInstances, sessionStateManager, getSessionId, telemetry, workspace) {
|
|
13
13
|
const cfg = getConfig();
|
|
14
14
|
const serverCfg = getServerConfig();
|
|
15
15
|
// Lazily created — only when a RAG tool needs it
|
|
@@ -49,10 +49,14 @@ export function createMcpServer(bashInstances, sessionStateManager, getSessionId
|
|
|
49
49
|
const grepStrategy = tool.bash?.grep_strategy;
|
|
50
50
|
const needsEmbedding = grepStrategy === 'vector' || grepStrategy === 'hybrid';
|
|
51
51
|
const searchToolNames = serverCfg.tools.filter(t => t.type === 'search').map(t => t.name);
|
|
52
|
+
const needsWorkspace = tool.bash?.workspace === true;
|
|
52
53
|
registerBashTool(server, tool, bash, {
|
|
53
54
|
getSessionState,
|
|
54
55
|
embeddingClient: needsEmbedding ? getEmbeddingClient() : undefined,
|
|
55
56
|
searchToolNames,
|
|
57
|
+
telemetry,
|
|
58
|
+
workspace: needsWorkspace ? workspace : undefined,
|
|
59
|
+
getSessionId: needsWorkspace ? getSessionId : undefined,
|
|
56
60
|
});
|
|
57
61
|
break;
|
|
58
62
|
}
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/tools/bash.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
|
3
3
|
import type { BashToolConfig } from '../../types.js';
|
|
4
4
|
import { BashSessionState } from './bash-session.js';
|
|
5
5
|
import type { EmbeddingClient } from '../../indexing/embeddings.js';
|
|
6
|
+
import type { BashTelemetry } from './bash-telemetry.js';
|
|
7
|
+
import type { WorkspaceManager } from '../../workspace.js';
|
|
6
8
|
interface ExecResult {
|
|
7
9
|
stdout: string;
|
|
8
10
|
stderr: string;
|
|
@@ -19,6 +21,12 @@ export interface BashToolOptions {
|
|
|
19
21
|
embeddingClient?: EmbeddingClient;
|
|
20
22
|
/** Names of search tools, used for grep-miss suggestions. */
|
|
21
23
|
searchToolNames?: string[];
|
|
24
|
+
/** Telemetry recorder for commands, file accesses, and grep misses. */
|
|
25
|
+
telemetry?: BashTelemetry;
|
|
26
|
+
/** Workspace manager for /workspace/ file operations. */
|
|
27
|
+
workspace?: WorkspaceManager;
|
|
28
|
+
/** Resolver for session ID — used by workspace interception. */
|
|
29
|
+
getSessionId?: () => string | undefined;
|
|
22
30
|
}
|
|
23
31
|
export declare function registerBashTool(server: McpServer, toolConfig: BashToolConfig, bash: Bash, options?: BashToolOptions): void;
|
|
24
32
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/bash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/bash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,UAAU,UAAU;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAM5E;AAED,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM1D;AAED,MAAM,WAAW,eAAe;IAC5B,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;IACrD,+CAA+C;IAC/C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,uEAAuE;IACvE,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,yDAAyD;IACzD,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,eAAe,GAC1B,IAAI,CAwLN"}
|
package/dist/mcp/tools/bash.js
CHANGED
|
@@ -112,11 +112,70 @@ export function registerBashTool(server, toolConfig, bash, options) {
|
|
|
112
112
|
};
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
+
// Intercept workspace commands (/workspace/ virtual directory)
|
|
116
|
+
if (options?.workspace && options?.getSessionId) {
|
|
117
|
+
const sid = options.getSessionId();
|
|
118
|
+
if (sid) {
|
|
119
|
+
const trimmedCmd = command.trim();
|
|
120
|
+
// Write: echo "..." > /workspace/file or cat ... > /workspace/file
|
|
121
|
+
const writeMatch = trimmedCmd.match(/^(?:echo\s+.*?|cat\s+.*?)>\s*\/workspace\/(.+)/);
|
|
122
|
+
if (writeMatch) {
|
|
123
|
+
const filename = writeMatch[1].trim();
|
|
124
|
+
options.workspace.ensureSession(sid);
|
|
125
|
+
const contentResult = await bash.exec(trimmedCmd.replace(/>\s*\/workspace\/.*$/, ''), { cwd });
|
|
126
|
+
if (contentResult.exitCode === 0) {
|
|
127
|
+
const ok = options.workspace.writeFile(sid, filename, contentResult.stdout);
|
|
128
|
+
if (!ok) {
|
|
129
|
+
return { content: [{ type: "text", text: formatBashResult(command, { stdout: '', stderr: 'workspace: quota exceeded', exitCode: 1 }) }] };
|
|
130
|
+
}
|
|
131
|
+
return { content: [{ type: "text", text: formatBashResult(command, { stdout: `Written to /workspace/${filename}`, stderr: '', exitCode: 0 }) }] };
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
return { content: [{ type: "text", text: formatBashResult(command, contentResult) }] };
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Read: cat/head/tail /workspace/file
|
|
138
|
+
const readMatch = trimmedCmd.match(/^(cat|head|tail)\s+\/workspace\/(.+)/);
|
|
139
|
+
if (readMatch) {
|
|
140
|
+
options.workspace.ensureSession(sid);
|
|
141
|
+
const content = options.workspace.readFile(sid, readMatch[2].trim());
|
|
142
|
+
if (content === null) {
|
|
143
|
+
return { content: [{ type: "text", text: formatBashResult(command, { stdout: '', stderr: `cat: /workspace/${readMatch[2].trim()}: No such file`, exitCode: 1 }) }] };
|
|
144
|
+
}
|
|
145
|
+
return { content: [{ type: "text", text: formatBashResult(command, { stdout: content, stderr: '', exitCode: 0 }) }] };
|
|
146
|
+
}
|
|
147
|
+
// List: ls [-flags] /workspace[/subdir]
|
|
148
|
+
const lsMatch = trimmedCmd.match(/^ls\s+(?:-\S+\s+)?\/workspace\/?(.*)$/);
|
|
149
|
+
if (lsMatch) {
|
|
150
|
+
options.workspace.ensureSession(sid);
|
|
151
|
+
const subdir = lsMatch[1]?.trim() || undefined;
|
|
152
|
+
const files = options.workspace.listFiles(sid, subdir);
|
|
153
|
+
return { content: [{ type: "text", text: formatBashResult(command, { stdout: files.join('\n'), stderr: '', exitCode: 0 }) }] };
|
|
154
|
+
}
|
|
155
|
+
// Catch-all: unrecognized /workspace/ command
|
|
156
|
+
if (trimmedCmd.includes('/workspace/') || trimmedCmd.includes('/workspace')) {
|
|
157
|
+
return { content: [{ type: "text", text: formatBashResult(command, {
|
|
158
|
+
stdout: '',
|
|
159
|
+
stderr: 'workspace: supported operations are:\n echo "content" > /workspace/file\n cat /workspace/file\n head /workspace/file\n tail /workspace/file\n ls /workspace/\n ls /workspace/subdir/',
|
|
160
|
+
exitCode: 1,
|
|
161
|
+
}) }] };
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
115
165
|
const result = await bash.exec(command, { cwd });
|
|
166
|
+
// Record command telemetry (fire-and-forget)
|
|
167
|
+
options?.telemetry?.recordCommand(command);
|
|
168
|
+
// Detect file access commands (cat/head/tail) for telemetry
|
|
169
|
+
const fileAccessMatch = command.match(/^(cat|head|tail)\s+(.+)/);
|
|
170
|
+
if (fileAccessMatch) {
|
|
171
|
+
const filePath = fileAccessMatch[2].trim().replace(/^["']|["']$/g, '');
|
|
172
|
+
options?.telemetry?.recordFileAccess(filePath, command);
|
|
173
|
+
}
|
|
116
174
|
// Append grep-miss suggestion when grep returns no results
|
|
117
175
|
if (options?.searchToolNames && options.searchToolNames.length > 0) {
|
|
118
176
|
const parsed = parseGrepCommand(command);
|
|
119
177
|
if (parsed.isGrep && result.exitCode === 1 && !result.stdout.trim()) {
|
|
178
|
+
options?.telemetry?.recordGrepMiss(parsed.pattern ?? command, command);
|
|
120
179
|
const suggestion = formatGrepMissSuggestion(options.searchToolNames);
|
|
121
180
|
return {
|
|
122
181
|
content: [{ type: "text", text: formatBashResult(command, { ...result, stderr: (result.stderr || '') + suggestion }) }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/mcp/tools/bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/mcp/tools/bash.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,gBAAgB,CAAC;AA2CpE,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,SAAS,EACjB,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,gBAAgB,GAC7B,IAAI,
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,gBAAgB,CAAC;AA2CpE,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,SAAS,EACjB,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,gBAAgB,GAC7B,IAAI,CAsCN"}
|
package/dist/mcp/tools/search.js
CHANGED
|
@@ -45,14 +45,22 @@ export function registerSearchTool(server, embeddingClient, toolConfig) {
|
|
|
45
45
|
limit: z.number().min(1).max(toolConfig.max_limit)
|
|
46
46
|
.default(toolConfig.default_limit).optional()
|
|
47
47
|
.describe(`Maximum number of results (default: ${toolConfig.default_limit})`),
|
|
48
|
+
min_score: z.number().min(0).max(1).optional()
|
|
49
|
+
.describe("Minimum similarity score (0-1). Results below this threshold are filtered out."),
|
|
50
|
+
version: z.string().optional()
|
|
51
|
+
.describe("Filter results to a specific documentation version"),
|
|
48
52
|
};
|
|
49
|
-
server.tool(toolConfig.name, toolConfig.description, inputSchema, async ({ query, limit }) => {
|
|
53
|
+
server.tool(toolConfig.name, toolConfig.description, inputSchema, async ({ query, limit, min_score, version }) => {
|
|
50
54
|
const effectiveLimit = limit ?? toolConfig.default_limit;
|
|
51
55
|
try {
|
|
52
56
|
const embedding = await embeddingClient.embed(query);
|
|
53
|
-
const results = await searchChunks(embedding, effectiveLimit, toolConfig.source);
|
|
57
|
+
const results = await searchChunks(embedding, effectiveLimit, toolConfig.source, version);
|
|
58
|
+
const minScore = min_score ?? toolConfig.min_score;
|
|
59
|
+
const filtered = minScore != null
|
|
60
|
+
? results.filter(r => r.similarity >= minScore)
|
|
61
|
+
: results;
|
|
54
62
|
return {
|
|
55
|
-
content: [{ type: "text", text: formatResults(
|
|
63
|
+
content: [{ type: "text", text: formatResults(filtered, toolConfig.result_format) }],
|
|
56
64
|
};
|
|
57
65
|
}
|
|
58
66
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/mcp/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,SAAS,iBAAiB,CAAC,OAAsB;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,mBAAmB,CAAC;IACrD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,WAAW,CAAC,GAAG,CAAC,EAAE;QAClB,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,EAAE;QAClC,WAAW,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,EAAE;QACxC,UAAU;QACV,CAAC,CAAC,OAAO;KACZ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAsB;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,mBAAmB,CAAC;IACrD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,WAAW,CAAC,GAAG,CAAC,EAAE;QAClB,eAAe,CAAC,CAAC,QAAQ,EAAE;QAC3B,SAAS,CAAC,CAAC,SAAS,EAAE;QACtB,UAAU;QACV,CAAC,CAAC,OAAO;KACZ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAsB;IAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,mBAAmB,CAAC;IACrD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,WAAW,CAAC,GAAG,CAAC,EAAE;QAClB,WAAW,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,EAAE;QACxC,UAAU;QACV,CAAC,CAAC,OAAO;KACZ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,aAAa,CAAC,OAAsB,EAAE,MAAc;IACzD,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,CAAC,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,CAAC,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAC9B,MAAiB,EACjB,eAAgC,EAChC,UAA4B;IAE5B,MAAM,WAAW,GAAG;QAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;aAC7C,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;aAC5C,QAAQ,CAAC,uCAAuC,UAAU,CAAC,aAAa,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/mcp/tools/search.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAiXD,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkHxE"}
|