@brutalist/mcp 0.1.3 → 0.5.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/README.md +227 -49
- package/dist/brutalist-server.d.ts +9 -3
- package/dist/brutalist-server.d.ts.map +1 -1
- package/dist/brutalist-server.js +730 -207
- package/dist/brutalist-server.js.map +1 -1
- package/dist/cli-agents.d.ts +73 -0
- package/dist/cli-agents.d.ts.map +1 -0
- package/dist/cli-agents.js +691 -0
- package/dist/cli-agents.js.map +1 -0
- package/dist/constants.d.ts +3 -9
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -13
- package/dist/constants.js.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/types/brutalist.d.ts +84 -15
- package/dist/types/brutalist.d.ts.map +1 -1
- package/dist/utils/pagination.d.ts +48 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/pagination.js +171 -0
- package/dist/utils/pagination.js.map +1 -0
- package/dist/utils.d.ts +11 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +25 -0
- package/dist/utils.js.map +1 -0
- package/package.json +26 -10
- package/dist/model-fetcher.d.ts +0 -14
- package/dist/model-fetcher.d.ts.map +0 -1
- package/dist/model-fetcher.js +0 -71
- package/dist/model-fetcher.js.map +0 -1
- package/dist/openrouter.d.ts +0 -14
- package/dist/openrouter.d.ts.map +0 -1
- package/dist/openrouter.js +0 -123
- package/dist/openrouter.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-agents.js","sourceRoot":"","sources":["../src/cli-agents.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare const DEFAULT_MAX_MODELS_PER_REQUEST = 3;
|
|
3
|
-
export declare const DEFAULT_MAX_TOKENS = 2000;
|
|
4
|
-
export declare const DEFAULT_TEMPERATURE = 0.7;
|
|
1
|
+
export declare const DEFAULT_CLI_TIMEOUT = 30000;
|
|
5
2
|
export declare const DEFAULT_DEBATE_ROUNDS = 2;
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1";
|
|
9
|
-
export declare const OPENROUTER_MODELS_ENDPOINT = "https://openrouter.ai/api/v1/models";
|
|
10
|
-
export declare const GITHUB_REPO_URL = "https://github.com/brutalist-mcp/brutalist-mcp";
|
|
3
|
+
export declare const MAX_CLI_TIMEOUT = 600000;
|
|
4
|
+
export declare const GITHUB_REPO_URL = "https://github.com/ejmockler/brutalist-mcp";
|
|
11
5
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AACzC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,eAAe,SAAS,CAAC;AAGtC,eAAO,MAAM,eAAe,+CAA+C,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
//
|
|
2
|
-
export const
|
|
3
|
-
// API limits
|
|
4
|
-
export const DEFAULT_MAX_MODELS_PER_REQUEST = 3;
|
|
5
|
-
export const DEFAULT_MAX_TOKENS = 2000;
|
|
6
|
-
export const DEFAULT_TEMPERATURE = 0.7;
|
|
1
|
+
// CLI execution limits
|
|
2
|
+
export const DEFAULT_CLI_TIMEOUT = 30000; // 30 seconds
|
|
7
3
|
export const DEFAULT_DEBATE_ROUNDS = 2;
|
|
8
|
-
//
|
|
9
|
-
export const MAX_RESPONSE_TIME_MS = 600000; // 10 minutes
|
|
10
|
-
export const SYNTHESIS_MAX_THEMES = 3;
|
|
11
|
-
// API endpoints
|
|
12
|
-
export const OPENROUTER_BASE_URL = 'https://openrouter.ai/api/v1';
|
|
13
|
-
export const OPENROUTER_MODELS_ENDPOINT = 'https://openrouter.ai/api/v1/models';
|
|
4
|
+
export const MAX_CLI_TIMEOUT = 600000; // 10 minutes
|
|
14
5
|
// GitHub
|
|
15
|
-
export const GITHUB_REPO_URL = 'https://github.com/
|
|
6
|
+
export const GITHUB_REPO_URL = 'https://github.com/ejmockler/brutalist-mcp';
|
|
16
7
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,aAAa;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,aAAa;AAEpD,SAAS;AACT,MAAM,CAAC,MAAM,eAAe,GAAG,4CAA4C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,17 @@
|
|
|
2
2
|
import { BrutalistServer } from './brutalist-server.js';
|
|
3
3
|
async function main() {
|
|
4
4
|
try {
|
|
5
|
-
|
|
5
|
+
// Check if HTTP mode is requested via environment variable or command line
|
|
6
|
+
const useHttp = process.env.BRUTALIST_HTTP === 'true' || process.argv.includes('--http');
|
|
7
|
+
const port = process.env.BRUTALIST_PORT ? parseInt(process.env.BRUTALIST_PORT) : 3000;
|
|
8
|
+
const server = new BrutalistServer({
|
|
9
|
+
transport: useHttp ? 'http' : 'stdio',
|
|
10
|
+
httpPort: port
|
|
11
|
+
});
|
|
12
|
+
if (useHttp) {
|
|
13
|
+
console.log(`Starting Brutalist MCP with HTTP streaming on port ${port}`);
|
|
14
|
+
console.log('Set BRUTALIST_HTTP=true or use --http flag for HTTP mode');
|
|
15
|
+
}
|
|
6
16
|
await server.start();
|
|
7
17
|
}
|
|
8
18
|
catch (error) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,2EAA2E;QAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEtF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YACrC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,sDAAsD,IAAI,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -1,26 +1,95 @@
|
|
|
1
1
|
export interface BrutalistServerConfig {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
workingDirectory?: string;
|
|
3
|
+
defaultTimeout?: number;
|
|
4
|
+
enableSandbox?: boolean;
|
|
5
|
+
transport?: 'stdio' | 'http';
|
|
6
|
+
httpPort?: number;
|
|
4
7
|
}
|
|
5
|
-
export interface
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
export interface CLIAgentResponse {
|
|
9
|
+
agent: 'claude' | 'codex' | 'gemini';
|
|
10
|
+
success: boolean;
|
|
11
|
+
output: string;
|
|
12
|
+
error?: string;
|
|
13
|
+
executionTime: number;
|
|
14
|
+
command?: string;
|
|
15
|
+
systemPromptType?: string;
|
|
16
|
+
workingDirectory?: string;
|
|
17
|
+
exitCode?: number;
|
|
11
18
|
}
|
|
12
19
|
export interface BrutalistResponse {
|
|
13
20
|
success: boolean;
|
|
14
|
-
responses:
|
|
21
|
+
responses: CLIAgentResponse[];
|
|
15
22
|
synthesis?: string;
|
|
16
23
|
error?: string;
|
|
24
|
+
analysisType?: string;
|
|
25
|
+
targetPath?: string;
|
|
26
|
+
executionSummary?: {
|
|
27
|
+
totalCLIs: number;
|
|
28
|
+
successfulCLIs: number;
|
|
29
|
+
failedCLIs: number;
|
|
30
|
+
totalExecutionTime: number;
|
|
31
|
+
selectedCLI?: string;
|
|
32
|
+
selectionMethod?: string;
|
|
33
|
+
};
|
|
17
34
|
}
|
|
18
35
|
export interface RoastOptions {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
36
|
+
targetPath: string;
|
|
37
|
+
analysisType: string;
|
|
38
|
+
context?: string;
|
|
39
|
+
workingDirectory?: string;
|
|
40
|
+
enableSandbox?: boolean;
|
|
41
|
+
agents?: ('claude' | 'codex' | 'gemini')[];
|
|
42
|
+
}
|
|
43
|
+
export interface ChildProcessError extends Error {
|
|
44
|
+
code?: number;
|
|
45
|
+
stdout?: string;
|
|
46
|
+
stderr?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface PaginationParams {
|
|
49
|
+
offset?: number;
|
|
50
|
+
limit?: number;
|
|
51
|
+
cursor?: string;
|
|
52
|
+
}
|
|
53
|
+
export interface PaginationMetadata {
|
|
54
|
+
total: number;
|
|
55
|
+
offset: number;
|
|
56
|
+
limit: number;
|
|
57
|
+
hasMore: boolean;
|
|
58
|
+
nextCursor?: string;
|
|
59
|
+
chunkIndex: number;
|
|
60
|
+
totalChunks: number;
|
|
61
|
+
}
|
|
62
|
+
export interface PaginatedResponse<T = string> {
|
|
63
|
+
data: T;
|
|
64
|
+
pagination: PaginationMetadata;
|
|
65
|
+
summary?: string;
|
|
66
|
+
}
|
|
67
|
+
export interface ResponseChunk {
|
|
68
|
+
content: string;
|
|
69
|
+
startOffset: number;
|
|
70
|
+
endOffset: number;
|
|
71
|
+
metadata: {
|
|
72
|
+
isComplete: boolean;
|
|
73
|
+
truncated: boolean;
|
|
74
|
+
originalLength: number;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export interface BrutalistResponse {
|
|
78
|
+
success: boolean;
|
|
79
|
+
responses: CLIAgentResponse[];
|
|
80
|
+
synthesis?: string;
|
|
81
|
+
error?: string;
|
|
82
|
+
analysisType?: string;
|
|
83
|
+
targetPath?: string;
|
|
84
|
+
executionSummary?: {
|
|
85
|
+
totalCLIs: number;
|
|
86
|
+
successfulCLIs: number;
|
|
87
|
+
failedCLIs: number;
|
|
88
|
+
totalExecutionTime: number;
|
|
89
|
+
selectedCLI?: string;
|
|
90
|
+
selectionMethod?: string;
|
|
91
|
+
};
|
|
92
|
+
pagination?: PaginationMetadata;
|
|
93
|
+
fullResponseAvailable?: boolean;
|
|
25
94
|
}
|
|
26
95
|
//# sourceMappingURL=brutalist.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brutalist.d.ts","sourceRoot":"","sources":["../../src/types/brutalist.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,
|
|
1
|
+
{"version":3,"file":"brutalist.d.ts","sourceRoot":"","sources":["../../src/types/brutalist.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { PaginationParams, PaginationMetadata, ResponseChunk, PaginatedResponse } from '../types/brutalist.js';
|
|
2
|
+
export declare const PAGINATION_DEFAULTS: {
|
|
3
|
+
readonly DEFAULT_LIMIT: 25000;
|
|
4
|
+
readonly MAX_LIMIT: 100000;
|
|
5
|
+
readonly MIN_LIMIT: 1000;
|
|
6
|
+
readonly CHUNK_OVERLAP: 200;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Calculates token count approximation (rough estimate: 1 token ≈ 4 characters)
|
|
10
|
+
*/
|
|
11
|
+
export declare function estimateTokenCount(text: string): number;
|
|
12
|
+
/**
|
|
13
|
+
* Smart text chunking that preserves sentence boundaries and adds overlap
|
|
14
|
+
*/
|
|
15
|
+
export declare class ResponseChunker {
|
|
16
|
+
private readonly chunkSize;
|
|
17
|
+
private readonly overlap;
|
|
18
|
+
constructor(chunkSize?: 25000, overlap?: 200);
|
|
19
|
+
/**
|
|
20
|
+
* Split text into chunks with smart boundary detection
|
|
21
|
+
*/
|
|
22
|
+
chunkText(text: string): ResponseChunk[];
|
|
23
|
+
/**
|
|
24
|
+
* Find intelligent breakpoint that preserves readability
|
|
25
|
+
*/
|
|
26
|
+
private findSmartBreakpoint;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create pagination metadata for a response
|
|
30
|
+
*/
|
|
31
|
+
export declare function createPaginationMetadata(totalLength: number, params: PaginationParams, chunkSize?: number): PaginationMetadata;
|
|
32
|
+
/**
|
|
33
|
+
* Extract pagination parameters from tool arguments
|
|
34
|
+
*/
|
|
35
|
+
export declare function extractPaginationParams(args: Record<string, unknown>): PaginationParams;
|
|
36
|
+
/**
|
|
37
|
+
* Parse cursor string to extract pagination state
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseCursor(cursor: string): Partial<PaginationParams>;
|
|
40
|
+
/**
|
|
41
|
+
* Create a paginated response with proper metadata
|
|
42
|
+
*/
|
|
43
|
+
export declare function createPaginatedResponse<T = string>(data: T, pagination: PaginationMetadata, summary?: string): PaginatedResponse<T>;
|
|
44
|
+
/**
|
|
45
|
+
* Format pagination status for user display
|
|
46
|
+
*/
|
|
47
|
+
export declare function formatPaginationStatus(pagination: PaginationMetadata): string;
|
|
48
|
+
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/utils/pagination.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,mBAAmB;;;;;CAKtB,CAAC;AAEX;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,SAAS,QAAoC,EAAE,OAAO,MAAoC;IAKtG;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE;IA+C/C;;OAEG;IACH,OAAO,CAAC,mBAAmB;CA4B5B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,gBAAgB,EACxB,SAAS,GAAE,MAA0C,GACpD,kBAAkB,CAiBpB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAQvF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiBrE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,GAAG,MAAM,EAChD,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,kBAAkB,EAC9B,OAAO,CAAC,EAAE,MAAM,GACf,iBAAiB,CAAC,CAAC,CAAC,CAMtB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,CAa7E"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { logger } from '../logger.js';
|
|
2
|
+
// Default pagination configuration
|
|
3
|
+
export const PAGINATION_DEFAULTS = {
|
|
4
|
+
DEFAULT_LIMIT: 25000, // 25K tokens - matches Claude Code default
|
|
5
|
+
MAX_LIMIT: 100000, // 100K tokens - reasonable upper bound
|
|
6
|
+
MIN_LIMIT: 1000, // 1K tokens - minimum meaningful chunk
|
|
7
|
+
CHUNK_OVERLAP: 200 // Character overlap between chunks for context
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Calculates token count approximation (rough estimate: 1 token ≈ 4 characters)
|
|
11
|
+
*/
|
|
12
|
+
export function estimateTokenCount(text) {
|
|
13
|
+
return Math.ceil(text.length / 4);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Smart text chunking that preserves sentence boundaries and adds overlap
|
|
17
|
+
*/
|
|
18
|
+
export class ResponseChunker {
|
|
19
|
+
chunkSize;
|
|
20
|
+
overlap;
|
|
21
|
+
constructor(chunkSize = PAGINATION_DEFAULTS.DEFAULT_LIMIT, overlap = PAGINATION_DEFAULTS.CHUNK_OVERLAP) {
|
|
22
|
+
this.chunkSize = Math.max(chunkSize, PAGINATION_DEFAULTS.MIN_LIMIT);
|
|
23
|
+
this.overlap = Math.min(overlap, Math.floor(chunkSize * 0.1)); // Max 10% overlap
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Split text into chunks with smart boundary detection
|
|
27
|
+
*/
|
|
28
|
+
chunkText(text) {
|
|
29
|
+
if (text.length <= this.chunkSize) {
|
|
30
|
+
return [{
|
|
31
|
+
content: text,
|
|
32
|
+
startOffset: 0,
|
|
33
|
+
endOffset: text.length,
|
|
34
|
+
metadata: {
|
|
35
|
+
isComplete: true,
|
|
36
|
+
truncated: false,
|
|
37
|
+
originalLength: text.length
|
|
38
|
+
}
|
|
39
|
+
}];
|
|
40
|
+
}
|
|
41
|
+
const chunks = [];
|
|
42
|
+
let currentOffset = 0;
|
|
43
|
+
while (currentOffset < text.length) {
|
|
44
|
+
const endOffset = Math.min(currentOffset + this.chunkSize, text.length);
|
|
45
|
+
let chunkEnd = endOffset;
|
|
46
|
+
// Smart boundary detection - prefer paragraph, then sentence, then word breaks
|
|
47
|
+
if (endOffset < text.length) {
|
|
48
|
+
chunkEnd = this.findSmartBreakpoint(text, currentOffset, endOffset);
|
|
49
|
+
}
|
|
50
|
+
const chunkContent = text.substring(currentOffset, chunkEnd);
|
|
51
|
+
chunks.push({
|
|
52
|
+
content: chunkContent,
|
|
53
|
+
startOffset: currentOffset,
|
|
54
|
+
endOffset: chunkEnd,
|
|
55
|
+
metadata: {
|
|
56
|
+
isComplete: chunkEnd === text.length,
|
|
57
|
+
truncated: chunkEnd < endOffset,
|
|
58
|
+
originalLength: text.length
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
// Move to next chunk with overlap (except for last chunk)
|
|
62
|
+
currentOffset = chunkEnd - (chunkEnd === text.length ? 0 : this.overlap);
|
|
63
|
+
}
|
|
64
|
+
logger.debug(`Chunked ${text.length} chars into ${chunks.length} chunks (size: ${this.chunkSize}, overlap: ${this.overlap})`);
|
|
65
|
+
return chunks;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Find intelligent breakpoint that preserves readability
|
|
69
|
+
*/
|
|
70
|
+
findSmartBreakpoint(text, start, idealEnd) {
|
|
71
|
+
const searchRange = Math.min(500, Math.floor(this.chunkSize * 0.1)); // Search within 10% of chunk size
|
|
72
|
+
const minEnd = Math.max(start + this.chunkSize - searchRange, idealEnd - searchRange);
|
|
73
|
+
// Try to find paragraph break (double newline)
|
|
74
|
+
for (let i = idealEnd; i >= minEnd; i--) {
|
|
75
|
+
if (text.substring(i - 2, i) === '\n\n') {
|
|
76
|
+
return i;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Try to find sentence break
|
|
80
|
+
for (let i = idealEnd; i >= minEnd; i--) {
|
|
81
|
+
if (/[.!?]\s/.test(text.substring(i - 2, i))) {
|
|
82
|
+
return i;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Try to find word boundary
|
|
86
|
+
for (let i = idealEnd; i >= minEnd; i--) {
|
|
87
|
+
if (/\s/.test(text[i])) {
|
|
88
|
+
return i + 1;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Fallback to ideal end if no good boundary found
|
|
92
|
+
return idealEnd;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Create pagination metadata for a response
|
|
97
|
+
*/
|
|
98
|
+
export function createPaginationMetadata(totalLength, params, chunkSize = PAGINATION_DEFAULTS.DEFAULT_LIMIT) {
|
|
99
|
+
const offset = params.offset || 0;
|
|
100
|
+
const limit = Math.min(params.limit || PAGINATION_DEFAULTS.DEFAULT_LIMIT, PAGINATION_DEFAULTS.MAX_LIMIT);
|
|
101
|
+
const totalChunks = Math.ceil(totalLength / chunkSize);
|
|
102
|
+
const currentChunk = Math.floor(offset / chunkSize) + 1;
|
|
103
|
+
const hasMore = offset + limit < totalLength;
|
|
104
|
+
return {
|
|
105
|
+
total: totalLength,
|
|
106
|
+
offset,
|
|
107
|
+
limit,
|
|
108
|
+
hasMore,
|
|
109
|
+
nextCursor: hasMore ? `offset:${offset + limit}` : undefined,
|
|
110
|
+
chunkIndex: currentChunk,
|
|
111
|
+
totalChunks
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Extract pagination parameters from tool arguments
|
|
116
|
+
*/
|
|
117
|
+
export function extractPaginationParams(args) {
|
|
118
|
+
return {
|
|
119
|
+
offset: typeof args.offset === 'number' ? Math.max(0, args.offset) : 0,
|
|
120
|
+
limit: typeof args.limit === 'number'
|
|
121
|
+
? Math.min(Math.max(args.limit, PAGINATION_DEFAULTS.MIN_LIMIT), PAGINATION_DEFAULTS.MAX_LIMIT)
|
|
122
|
+
: PAGINATION_DEFAULTS.DEFAULT_LIMIT,
|
|
123
|
+
cursor: typeof args.cursor === 'string' ? args.cursor : undefined
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Parse cursor string to extract pagination state
|
|
128
|
+
*/
|
|
129
|
+
export function parseCursor(cursor) {
|
|
130
|
+
try {
|
|
131
|
+
if (cursor.startsWith('offset:')) {
|
|
132
|
+
const offset = parseInt(cursor.substring(7), 10);
|
|
133
|
+
return isNaN(offset) ? {} : { offset };
|
|
134
|
+
}
|
|
135
|
+
// Support JSON cursor format for future extensibility
|
|
136
|
+
const parsed = JSON.parse(cursor);
|
|
137
|
+
return {
|
|
138
|
+
offset: typeof parsed.offset === 'number' ? parsed.offset : undefined,
|
|
139
|
+
limit: typeof parsed.limit === 'number' ? parsed.limit : undefined
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
logger.warn(`Invalid cursor format: ${cursor}`);
|
|
144
|
+
return {};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Create a paginated response with proper metadata
|
|
149
|
+
*/
|
|
150
|
+
export function createPaginatedResponse(data, pagination, summary) {
|
|
151
|
+
return {
|
|
152
|
+
data,
|
|
153
|
+
pagination,
|
|
154
|
+
summary
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Format pagination status for user display
|
|
159
|
+
*/
|
|
160
|
+
export function formatPaginationStatus(pagination) {
|
|
161
|
+
const { chunkIndex, totalChunks, offset, total, hasMore } = pagination;
|
|
162
|
+
if (totalChunks === 1) {
|
|
163
|
+
return `Complete response (${total.toLocaleString()} characters)`;
|
|
164
|
+
}
|
|
165
|
+
const endOffset = Math.min(offset + pagination.limit, total);
|
|
166
|
+
const progress = `${chunkIndex}/${totalChunks}`;
|
|
167
|
+
const range = `chars ${offset.toLocaleString()}-${endOffset.toLocaleString()} of ${total.toLocaleString()}`;
|
|
168
|
+
const next = hasMore ? ' • Use offset parameter to continue' : ' • Complete';
|
|
169
|
+
return `Part ${progress}: ${range}${next}`;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/utils/pagination.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves a given path and validates that it is within the allowed project root.
|
|
3
|
+
* Prevents path traversal attacks.
|
|
4
|
+
* @param projectRoot The absolute path to the project root directory.
|
|
5
|
+
* @param userPath The user-provided path (can be relative or absolute).
|
|
6
|
+
* @param mustExist If true, the resolved path must exist on the filesystem.
|
|
7
|
+
* @returns The resolved, validated absolute path.
|
|
8
|
+
* @throws Error if the path is outside the project root or does not exist (if mustExist is true).
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveAndValidatePath(projectRoot: string, userPath: string, mustExist?: boolean): string;
|
|
11
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,OAAe,GACzB,MAAM,CAeR"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { resolve, sep } from 'path';
|
|
2
|
+
import { realpathSync, existsSync } from 'fs';
|
|
3
|
+
/**
|
|
4
|
+
* Resolves a given path and validates that it is within the allowed project root.
|
|
5
|
+
* Prevents path traversal attacks.
|
|
6
|
+
* @param projectRoot The absolute path to the project root directory.
|
|
7
|
+
* @param userPath The user-provided path (can be relative or absolute).
|
|
8
|
+
* @param mustExist If true, the resolved path must exist on the filesystem.
|
|
9
|
+
* @returns The resolved, validated absolute path.
|
|
10
|
+
* @throws Error if the path is outside the project root or does not exist (if mustExist is true).
|
|
11
|
+
*/
|
|
12
|
+
export function resolveAndValidatePath(projectRoot, userPath, mustExist = false) {
|
|
13
|
+
const absoluteProjectRoot = realpathSync(projectRoot);
|
|
14
|
+
const resolvedPath = resolve(absoluteProjectRoot, userPath);
|
|
15
|
+
const absoluteResolvedPath = realpathSync(resolvedPath);
|
|
16
|
+
// Ensure the resolved path is a sub-path of the project root
|
|
17
|
+
if (!absoluteResolvedPath.startsWith(absoluteProjectRoot + sep) && absoluteResolvedPath !== absoluteProjectRoot) {
|
|
18
|
+
throw new Error(`Path traversal detected: ${userPath} resolves outside project root.`);
|
|
19
|
+
}
|
|
20
|
+
if (mustExist && !existsSync(absoluteResolvedPath)) {
|
|
21
|
+
throw new Error(`Path does not exist: ${userPath}`);
|
|
22
|
+
}
|
|
23
|
+
return absoluteResolvedPath;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,GAAG,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE9C;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAAmB,EACnB,QAAgB,EAChB,YAAqB,KAAK;IAE1B,MAAM,mBAAmB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,oBAAoB,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAExD,6DAA6D;IAC7D,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,mBAAmB,GAAG,GAAG,CAAC,IAAI,oBAAoB,KAAK,mBAAmB,EAAE,CAAC;QAChH,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,iCAAiC,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,SAAS,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brutalist/mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "Deploy Claude, Codex & Gemini CLI agents to demolish your work before users do. Real file analysis. Brutal honesty. Now with intelligent pagination.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
"prebuild": "npm run clean",
|
|
22
22
|
"build": "tsc && chmod +x dist/index.js",
|
|
23
23
|
"prepare": "npm run build",
|
|
24
|
-
"prepublishOnly": "npm run test && npm run build",
|
|
24
|
+
"prepublishOnly": "npm run test && npm audit --production && npm run build",
|
|
25
25
|
"watch": "tsc --watch",
|
|
26
26
|
"start": "node dist/index.js",
|
|
27
|
-
"dev": "
|
|
27
|
+
"dev": "npm run build && npm start",
|
|
28
28
|
"debug": "DEBUG=true node --trace-warnings dist/index.js",
|
|
29
29
|
"inspector": "npx @modelcontextprotocol/inspector dist/index.js",
|
|
30
30
|
"test": "jest",
|
|
@@ -37,14 +37,25 @@
|
|
|
37
37
|
"criticism",
|
|
38
38
|
"mcp",
|
|
39
39
|
"llm",
|
|
40
|
-
"
|
|
41
|
-
"openrouter",
|
|
40
|
+
"cli-agents",
|
|
42
41
|
"claude",
|
|
42
|
+
"codex",
|
|
43
|
+
"gemini",
|
|
43
44
|
"modelcontextprotocol",
|
|
44
45
|
"code-review",
|
|
45
46
|
"architecture",
|
|
46
47
|
"security",
|
|
47
|
-
"research"
|
|
48
|
+
"research",
|
|
49
|
+
"brutal",
|
|
50
|
+
"reality-check",
|
|
51
|
+
"production-ready",
|
|
52
|
+
"honest-ai",
|
|
53
|
+
"no-lies",
|
|
54
|
+
"disaster-prevention",
|
|
55
|
+
"pagination",
|
|
56
|
+
"chunking",
|
|
57
|
+
"token-limit",
|
|
58
|
+
"large-responses"
|
|
48
59
|
],
|
|
49
60
|
"author": "Claude Code",
|
|
50
61
|
"license": "MIT",
|
|
@@ -63,15 +74,20 @@
|
|
|
63
74
|
"node": ">=16.0.0"
|
|
64
75
|
},
|
|
65
76
|
"dependencies": {
|
|
66
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
67
|
-
"openai": "^4.67.3",
|
|
77
|
+
"@modelcontextprotocol/sdk": "^1.18.1",
|
|
68
78
|
"zod": "^3.24.2"
|
|
69
79
|
},
|
|
70
80
|
"devDependencies": {
|
|
81
|
+
"@types/express": "^5.0.3",
|
|
71
82
|
"@types/jest": "^30.0.0",
|
|
72
83
|
"@types/node": "^20.17.28",
|
|
84
|
+
"@types/node-fetch": "^2.6.13",
|
|
85
|
+
"@types/ws": "^8.18.1",
|
|
86
|
+
"dotenv": "^17.2.2",
|
|
73
87
|
"jest": "^30.1.3",
|
|
88
|
+
"node-fetch": "^3.3.2",
|
|
74
89
|
"ts-jest": "^29.4.2",
|
|
75
|
-
"typescript": "^5.8.2"
|
|
90
|
+
"typescript": "^5.8.2",
|
|
91
|
+
"ws": "^8.18.3"
|
|
76
92
|
}
|
|
77
93
|
}
|
package/dist/model-fetcher.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare class ModelFetcher {
|
|
2
|
-
private static instance;
|
|
3
|
-
private cachedModels;
|
|
4
|
-
private cacheTimestamp;
|
|
5
|
-
private readonly FALLBACK_MODELS;
|
|
6
|
-
private constructor();
|
|
7
|
-
static getInstance(): ModelFetcher;
|
|
8
|
-
getAvailableModels(): Promise<string[]>;
|
|
9
|
-
searchModels(query: string): Promise<string[]>;
|
|
10
|
-
getModelsByProvider(provider: string): Promise<string[]>;
|
|
11
|
-
clearCache(): void;
|
|
12
|
-
}
|
|
13
|
-
export declare const modelFetcher: ModelFetcher;
|
|
14
|
-
//# sourceMappingURL=model-fetcher.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-fetcher.d.ts","sourceRoot":"","sources":["../src/model-fetcher.ts"],"names":[],"mappings":"AAgBA,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,cAAc,CAAa;IAGnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAM9B;IAEF,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,YAAY;IAO5B,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAyCvC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAS9C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAS9D,UAAU,IAAI,IAAI;CAKnB;AAED,eAAO,MAAM,YAAY,cAA6B,CAAC"}
|