@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.
Files changed (79) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/README.md +61 -249
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +60 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/db/client.d.ts.map +1 -1
  8. package/dist/db/client.js +3 -1
  9. package/dist/db/client.js.map +1 -1
  10. package/dist/db/queries.d.ts +14 -3
  11. package/dist/db/queries.d.ts.map +1 -1
  12. package/dist/db/queries.js +46 -45
  13. package/dist/db/queries.js.map +1 -1
  14. package/dist/db/schema.d.ts +5 -0
  15. package/dist/db/schema.d.ts.map +1 -1
  16. package/dist/db/schema.js +11 -0
  17. package/dist/db/schema.js.map +1 -1
  18. package/dist/index.js +2 -362
  19. package/dist/index.js.map +1 -1
  20. package/dist/indexing/chunking/html.d.ts +7 -0
  21. package/dist/indexing/chunking/html.d.ts.map +1 -0
  22. package/dist/indexing/chunking/html.js +356 -0
  23. package/dist/indexing/chunking/html.js.map +1 -0
  24. package/dist/indexing/chunking/index.js +2 -0
  25. package/dist/indexing/chunking/index.js.map +1 -1
  26. package/dist/indexing/orchestrator.d.ts +1 -0
  27. package/dist/indexing/orchestrator.d.ts.map +1 -1
  28. package/dist/indexing/orchestrator.js +27 -2
  29. package/dist/indexing/orchestrator.js.map +1 -1
  30. package/dist/indexing/source-indexer.d.ts.map +1 -1
  31. package/dist/indexing/source-indexer.js +1 -0
  32. package/dist/indexing/source-indexer.js.map +1 -1
  33. package/dist/ip-limiter.d.ts +11 -0
  34. package/dist/ip-limiter.d.ts.map +1 -0
  35. package/dist/ip-limiter.js +40 -0
  36. package/dist/ip-limiter.js.map +1 -0
  37. package/dist/llms-txt.d.ts +11 -0
  38. package/dist/llms-txt.d.ts.map +1 -0
  39. package/dist/llms-txt.js +43 -0
  40. package/dist/llms-txt.js.map +1 -0
  41. package/dist/mcp/server.d.ts +3 -1
  42. package/dist/mcp/server.d.ts.map +1 -1
  43. package/dist/mcp/server.js +5 -1
  44. package/dist/mcp/server.js.map +1 -1
  45. package/dist/mcp/tools/bash.d.ts +8 -0
  46. package/dist/mcp/tools/bash.d.ts.map +1 -1
  47. package/dist/mcp/tools/bash.js +59 -0
  48. package/dist/mcp/tools/bash.js.map +1 -1
  49. package/dist/mcp/tools/search.d.ts.map +1 -1
  50. package/dist/mcp/tools/search.js +11 -3
  51. package/dist/mcp/tools/search.js.map +1 -1
  52. package/dist/server.d.ts +6 -0
  53. package/dist/server.d.ts.map +1 -0
  54. package/dist/server.js +492 -0
  55. package/dist/server.js.map +1 -0
  56. package/dist/skill-md.d.ts +3 -0
  57. package/dist/skill-md.d.ts.map +1 -0
  58. package/dist/skill-md.js +75 -0
  59. package/dist/skill-md.js.map +1 -0
  60. package/dist/types.d.ts +56 -18
  61. package/dist/types.d.ts.map +1 -1
  62. package/dist/types.js +7 -3
  63. package/dist/types.js.map +1 -1
  64. package/dist/workspace.d.ts +13 -0
  65. package/dist/workspace.d.ts.map +1 -0
  66. package/dist/workspace.js +118 -0
  67. package/dist/workspace.js.map +1 -0
  68. package/package.json +14 -2
  69. package/pathfinder-docs.yaml +54 -0
  70. package/pathfinder.example.yaml +48 -0
  71. package/.superpowers/brainstorm/47098-1775507869/content/homepage-mockup.html +0 -324
  72. package/.superpowers/brainstorm/47098-1775507869/state/server-stopped +0 -1
  73. package/.superpowers/brainstorm/47098-1775507869/state/server.log +0 -13
  74. package/.superpowers/brainstorm/47098-1775507869/state/server.pid +0 -1
  75. package/.superpowers/brainstorm/82141-1775511032/content/migration-v2.html +0 -340
  76. package/.superpowers/brainstorm/82141-1775511032/content/migration.html +0 -340
  77. package/.superpowers/brainstorm/82141-1775511032/state/server-stopped +0 -1
  78. package/.superpowers/brainstorm/82141-1775511032/state/server.log +0 -4
  79. 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"}
@@ -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"}
@@ -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
@@ -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;AAE9D;;;;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,GACxC,SAAS,CA8DX"}
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"}
@@ -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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -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;AAEpE,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;CAC9B;AAED,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,eAAe,GAC1B,IAAI,CAuHN"}
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"}
@@ -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":"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"}
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,CA8BN"}
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"}
@@ -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(results, toolConfig.result_format) }],
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":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/mcp/tools/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface ServerOptions {
2
+ port?: number;
3
+ configPath?: string;
4
+ }
5
+ export declare function startServer(options?: ServerOptions): Promise<void>;
6
+ //# sourceMappingURL=server.d.ts.map
@@ -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"}