@brutalist/mcp 0.5.1 → 0.6.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 +63 -63
- package/dist/brutalist-server.d.ts +10 -0
- package/dist/brutalist-server.d.ts.map +1 -1
- package/dist/brutalist-server.js +177 -293
- package/dist/brutalist-server.js.map +1 -1
- package/dist/cli-agents.d.ts +1 -0
- package/dist/cli-agents.d.ts.map +1 -1
- package/dist/cli-agents.js +45 -2
- package/dist/cli-agents.js.map +1 -1
- package/dist/tool-definitions.d.ts +6 -0
- package/dist/tool-definitions.d.ts.map +1 -0
- package/dist/tool-definitions.js +211 -0
- package/dist/tool-definitions.js.map +1 -0
- package/dist/types/brutalist.d.ts +0 -16
- package/dist/types/brutalist.d.ts.map +1 -1
- package/dist/types/tool-config.d.ts +52 -0
- package/dist/types/tool-config.d.ts.map +1 -0
- package/dist/types/tool-config.js +25 -0
- package/dist/types/tool-config.js.map +1 -0
- package/dist/utils/pagination.d.ts +2 -2
- package/dist/utils/pagination.d.ts.map +1 -1
- package/dist/utils/pagination.js +1 -1
- package/dist/utils/pagination.js.map +1 -1
- package/dist/utils/response-cache.d.ts +89 -0
- package/dist/utils/response-cache.d.ts.map +1 -0
- package/dist/utils/response-cache.js +260 -0
- package/dist/utils/response-cache.js.map +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +22 -3
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* All brutalist tool configurations
|
|
4
|
+
*/
|
|
5
|
+
export const TOOL_CONFIGS = [
|
|
6
|
+
{
|
|
7
|
+
name: "roast_codebase",
|
|
8
|
+
description: "Deploy brutal AI critics to systematically destroy your entire codebase. These AI agents will navigate your directories, read your actual files, and find every architectural disaster, security vulnerability, and maintainability nightmare lurking in your project. They treat this like code that will kill people if it fails.",
|
|
9
|
+
analysisType: "codebase",
|
|
10
|
+
systemPrompt: "You are a battle-scarred principal engineer who has debugged production disasters for 15 years. Find security holes, performance bottlenecks, and maintainability nightmares in this codebase. Be brutal about what's broken but specific about what would actually work. Treat this like code that will kill people if it fails.",
|
|
11
|
+
schemaExtensions: {
|
|
12
|
+
targetPath: z.string().describe("Directory path to your codebase (NOT a single file - analyze the entire project)")
|
|
13
|
+
},
|
|
14
|
+
cacheKeyFields: ['targetPath', 'context', 'models', 'preferredCLI'],
|
|
15
|
+
primaryArgField: 'targetPath'
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "roast_file_structure",
|
|
19
|
+
description: "Deploy brutal AI critics to systematically destroy your file organization. These agents will navigate your actual directory structure and expose every organizational disaster, naming convention failure, and structural nightmare that makes your codebase unmaintainable.",
|
|
20
|
+
analysisType: "fileStructure",
|
|
21
|
+
systemPrompt: "You are a brutal file organization critic. Every poorly named file, every misplaced module, every violation of separation of concerns is a personal insult. Find the chaos in this file structure and explain why it will cause maintenance nightmares.",
|
|
22
|
+
schemaExtensions: {
|
|
23
|
+
targetPath: z.string().describe("Directory path to analyze"),
|
|
24
|
+
depth: z.number().optional().describe("Maximum directory depth to analyze (default: 3)")
|
|
25
|
+
},
|
|
26
|
+
cacheKeyFields: ['targetPath', 'depth', 'context'],
|
|
27
|
+
primaryArgField: 'targetPath',
|
|
28
|
+
contextBuilder: (args) => `Project structure analysis (depth: ${args.depth || 3}). ${args.context || ''}`
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: "roast_dependencies",
|
|
32
|
+
description: "Deploy brutal AI critics to systematically destroy your dependency management. These agents will read your actual package files, analyze version conflicts, and expose every security vulnerability and compatibility nightmare in your dependency tree.",
|
|
33
|
+
analysisType: "dependencies",
|
|
34
|
+
systemPrompt: "You are a dependency management nightmare detector. Find every security vulnerability, version conflict, unmaintained package, and bloated dependency. Explain why this dependency tree will collapse in production.",
|
|
35
|
+
schemaExtensions: {
|
|
36
|
+
targetPath: z.string().describe("Path to package file (package.json, requirements.txt, Cargo.toml, etc.)"),
|
|
37
|
+
includeDevDeps: z.boolean().optional().describe("Include development dependencies in analysis (default: true)")
|
|
38
|
+
},
|
|
39
|
+
cacheKeyFields: ['targetPath', 'includeDevDeps', 'context'],
|
|
40
|
+
primaryArgField: 'targetPath',
|
|
41
|
+
contextBuilder: (args) => `Dependency analysis${args.includeDevDeps === false ? ' (production only)' : ''}. ${args.context || ''}`
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: "roast_git_history",
|
|
45
|
+
description: "Deploy brutal AI critics to systematically destroy your git history and development practices. These agents will analyze your actual commit history, branching strategy, and code evolution to expose every workflow disaster and collaboration nightmare.",
|
|
46
|
+
analysisType: "gitHistory",
|
|
47
|
+
systemPrompt: "You are a git history forensics expert who has seen every version control disaster. Find the terrible commit messages, the force pushes, the merge conflicts, the development workflow failures. Explain why this git history shows a team in chaos.",
|
|
48
|
+
schemaExtensions: {
|
|
49
|
+
targetPath: z.string().describe("Git repository path to analyze"),
|
|
50
|
+
commitRange: z.string().optional().describe("Commit range to analyze (e.g., 'HEAD~10..HEAD', default: last 20 commits)")
|
|
51
|
+
},
|
|
52
|
+
cacheKeyFields: ['targetPath', 'commitRange', 'context'],
|
|
53
|
+
primaryArgField: 'targetPath',
|
|
54
|
+
contextBuilder: (args) => `Git history analysis${args.commitRange ? ` for ${args.commitRange}` : ' (last 20 commits)'}. ${args.context || ''}`
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "roast_test_coverage",
|
|
58
|
+
description: "Deploy brutal AI critics to systematically destroy your testing strategy. These agents will analyze your actual test files, run coverage reports, and expose every testing gap and quality assurance nightmare that will let bugs slip into production.",
|
|
59
|
+
analysisType: "testCoverage",
|
|
60
|
+
systemPrompt: "You are a QA engineer who has seen production disasters caused by inadequate testing. Find the untested code paths, the missing edge cases, the brittle tests, the false confidence. Explain why this testing strategy guarantees production failures.",
|
|
61
|
+
schemaExtensions: {
|
|
62
|
+
targetPath: z.string().describe("Path to test directory or test configuration file"),
|
|
63
|
+
runCoverage: z.boolean().optional().describe("Attempt to run coverage analysis (default: true)")
|
|
64
|
+
},
|
|
65
|
+
cacheKeyFields: ['targetPath', 'runCoverage', 'context'],
|
|
66
|
+
primaryArgField: 'targetPath',
|
|
67
|
+
contextBuilder: (args) => `Test coverage analysis${args.runCoverage === false ? ' (static analysis only)' : ''}. ${args.context || ''}`
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: "roast_idea",
|
|
71
|
+
description: "Deploy brutal AI critics to systematically destroy ANY idea - business, technical, creative, or otherwise. These critics understand the gap between imagination and reality, finding where your concept will encounter the immovable forces of the world. They are harsh about delusions but wise about what might actually survive.",
|
|
72
|
+
analysisType: "idea",
|
|
73
|
+
systemPrompt: "You are a brutal reality-checker who has watched a thousand startups die and brilliant ideas fail. Find every flaw in feasibility, every market delusion, every technical impossibility, every human factor that will kill this idea. After destroying it, grudgingly admit what tiny kernel might actually work.",
|
|
74
|
+
schemaExtensions: {
|
|
75
|
+
idea: z.string().describe("ANY idea to analyze and demolish - business, technical, creative, or otherwise"),
|
|
76
|
+
resources: z.string().optional().describe("Available resources (budget, team, time, skills)"),
|
|
77
|
+
timeline: z.string().optional().describe("Expected timeline or deadline")
|
|
78
|
+
},
|
|
79
|
+
cacheKeyFields: ['idea', 'resources', 'timeline', 'context'],
|
|
80
|
+
primaryArgField: 'idea',
|
|
81
|
+
contextBuilder: (args) => {
|
|
82
|
+
let ctx = args.context || '';
|
|
83
|
+
if (args.resources)
|
|
84
|
+
ctx += ` Resources: ${args.resources}.`;
|
|
85
|
+
if (args.timeline)
|
|
86
|
+
ctx += ` Timeline: ${args.timeline}.`;
|
|
87
|
+
return ctx.trim();
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: "roast_architecture",
|
|
92
|
+
description: "Deploy brutal AI critics to systematically destroy your system architecture. These critics have watched elegant designs collapse under real load, identifying every bottleneck, cost explosion, and scaling failure that will destroy your system. They are ruthless about why this won't survive production.",
|
|
93
|
+
analysisType: "architecture",
|
|
94
|
+
systemPrompt: "You are an architect who has watched beautiful systems die under load. Find every single point of failure, every scaling bottleneck, every cost explosion, every complexity trap. Explain why this architecture will crumble when it meets reality.",
|
|
95
|
+
schemaExtensions: {
|
|
96
|
+
architecture: z.string().describe("Architecture description, diagram, or design document"),
|
|
97
|
+
scale: z.string().optional().describe("Expected scale/load (users, requests, data)"),
|
|
98
|
+
constraints: z.string().optional().describe("Budget, timeline, or technical constraints"),
|
|
99
|
+
deployment: z.string().optional().describe("Deployment environment and strategy")
|
|
100
|
+
},
|
|
101
|
+
cacheKeyFields: ['architecture', 'scale', 'constraints', 'deployment', 'context'],
|
|
102
|
+
primaryArgField: 'architecture',
|
|
103
|
+
contextBuilder: (args) => {
|
|
104
|
+
let ctx = args.context || '';
|
|
105
|
+
if (args.scale)
|
|
106
|
+
ctx += ` Scale: ${args.scale}.`;
|
|
107
|
+
if (args.constraints)
|
|
108
|
+
ctx += ` Constraints: ${args.constraints}.`;
|
|
109
|
+
if (args.deployment)
|
|
110
|
+
ctx += ` Deployment: ${args.deployment}.`;
|
|
111
|
+
return ctx.trim();
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: "roast_research",
|
|
116
|
+
description: "Deploy brutal AI critics to systematically demolish your research methodology. These critics are supremely jaded peer reviewers who have rejected thousands of papers and watched countless studies fail to replicate. They find every statistical flaw, sampling bias, and reproducibility nightmare.",
|
|
117
|
+
analysisType: "research",
|
|
118
|
+
systemPrompt: "You are the harshest peer reviewer in academia. Find every methodological flaw, every statistical error, every sampling bias, every p-hacking attempt, every reproducibility crisis waiting to happen. Demolish this research with the fury of someone who has seen too much bad science.",
|
|
119
|
+
schemaExtensions: {
|
|
120
|
+
research: z.string().describe("Research description, methodology, or paper draft"),
|
|
121
|
+
field: z.string().optional().describe("Research field (ML, systems, theory, etc.)"),
|
|
122
|
+
claims: z.string().optional().describe("Main claims or contributions"),
|
|
123
|
+
data: z.string().optional().describe("Data sources, datasets, or experimental setup")
|
|
124
|
+
},
|
|
125
|
+
cacheKeyFields: ['research', 'field', 'claims', 'data', 'context'],
|
|
126
|
+
primaryArgField: 'research',
|
|
127
|
+
contextBuilder: (args) => {
|
|
128
|
+
let ctx = args.context || '';
|
|
129
|
+
if (args.field)
|
|
130
|
+
ctx += ` Field: ${args.field}.`;
|
|
131
|
+
if (args.claims)
|
|
132
|
+
ctx += ` Claims: ${args.claims}.`;
|
|
133
|
+
if (args.data)
|
|
134
|
+
ctx += ` Data: ${args.data}.`;
|
|
135
|
+
return ctx.trim();
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
name: "roast_security",
|
|
140
|
+
description: "Deploy brutal AI critics to systematically annihilate your security design. These critics are battle-hardened penetration testers who find every authentication bypass, injection vulnerability, privilege escalation path, and social engineering opportunity that real attackers will exploit.",
|
|
141
|
+
analysisType: "security",
|
|
142
|
+
systemPrompt: "You are a penetration tester who has broken into everything. Find every authentication weakness, every injection point, every privilege escalation, every side channel, every social engineering vector. Explain how attackers will destroy this system.",
|
|
143
|
+
schemaExtensions: {
|
|
144
|
+
system: z.string().describe("System, application, or security design to analyze"),
|
|
145
|
+
assets: z.string().optional().describe("Critical assets or data to protect"),
|
|
146
|
+
threatModel: z.string().optional().describe("Known threats or attack vectors to consider"),
|
|
147
|
+
compliance: z.string().optional().describe("Compliance requirements (GDPR, HIPAA, etc.)")
|
|
148
|
+
},
|
|
149
|
+
cacheKeyFields: ['system', 'assets', 'threatModel', 'compliance', 'context'],
|
|
150
|
+
primaryArgField: 'system',
|
|
151
|
+
contextBuilder: (args) => {
|
|
152
|
+
let ctx = args.context || '';
|
|
153
|
+
if (args.assets)
|
|
154
|
+
ctx += ` Assets: ${args.assets}.`;
|
|
155
|
+
if (args.threatModel)
|
|
156
|
+
ctx += ` Threats: ${args.threatModel}.`;
|
|
157
|
+
if (args.compliance)
|
|
158
|
+
ctx += ` Compliance: ${args.compliance}.`;
|
|
159
|
+
return ctx.trim();
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
name: "roast_product",
|
|
164
|
+
description: "Deploy brutal AI critics to systematically eviscerate your product concept. These critics are product veterans who understand why users really abandon things, finding every usability disaster, adoption barrier, and workflow failure that will drive users away in seconds.",
|
|
165
|
+
analysisType: "product",
|
|
166
|
+
systemPrompt: "You are a product critic who has watched thousands of products die. Find every UX disaster, every adoption barrier, every workflow failure, every assumption about user behavior that is wrong. Explain why users will abandon this in seconds.",
|
|
167
|
+
schemaExtensions: {
|
|
168
|
+
product: z.string().describe("Product description, features, or user experience to analyze"),
|
|
169
|
+
users: z.string().optional().describe("Target users or user personas"),
|
|
170
|
+
competition: z.string().optional().describe("Competitive landscape or alternatives"),
|
|
171
|
+
metrics: z.string().optional().describe("Success metrics or KPIs")
|
|
172
|
+
},
|
|
173
|
+
cacheKeyFields: ['product', 'users', 'competition', 'metrics', 'context'],
|
|
174
|
+
primaryArgField: 'product',
|
|
175
|
+
contextBuilder: (args) => {
|
|
176
|
+
let ctx = args.context || '';
|
|
177
|
+
if (args.users)
|
|
178
|
+
ctx += ` Users: ${args.users}.`;
|
|
179
|
+
if (args.competition)
|
|
180
|
+
ctx += ` Competition: ${args.competition}.`;
|
|
181
|
+
if (args.metrics)
|
|
182
|
+
ctx += ` Metrics: ${args.metrics}.`;
|
|
183
|
+
return ctx.trim();
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
name: "roast_infrastructure",
|
|
188
|
+
description: "Deploy brutal AI critics to systematically obliterate your infrastructure design. These critics are grizzled site reliability engineers who find every single point of failure, scaling bottleneck, and operational nightmare that will cause outages when you least expect them.",
|
|
189
|
+
analysisType: "infrastructure",
|
|
190
|
+
systemPrompt: "You are an SRE who has been paged at 3 AM too many times. Find every single point of failure, every missing redundancy, every scaling cliff, every operational nightmare. Explain why this infrastructure will fail catastrophically.",
|
|
191
|
+
schemaExtensions: {
|
|
192
|
+
infrastructure: z.string().describe("Infrastructure setup, deployment strategy, or operations plan"),
|
|
193
|
+
scale: z.string().optional().describe("Expected scale and load patterns"),
|
|
194
|
+
sla: z.string().optional().describe("SLA requirements or uptime targets"),
|
|
195
|
+
budget: z.string().optional().describe("Infrastructure budget or cost constraints")
|
|
196
|
+
},
|
|
197
|
+
cacheKeyFields: ['infrastructure', 'scale', 'sla', 'budget', 'context'],
|
|
198
|
+
primaryArgField: 'infrastructure',
|
|
199
|
+
contextBuilder: (args) => {
|
|
200
|
+
let ctx = args.context || '';
|
|
201
|
+
if (args.scale)
|
|
202
|
+
ctx += ` Scale: ${args.scale}.`;
|
|
203
|
+
if (args.sla)
|
|
204
|
+
ctx += ` SLA: ${args.sla}.`;
|
|
205
|
+
if (args.budget)
|
|
206
|
+
ctx += ` Budget: ${args.budget}.`;
|
|
207
|
+
return ctx.trim();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
];
|
|
211
|
+
//# sourceMappingURL=tool-definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-definitions.js","sourceRoot":"","sources":["../src/tool-definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,22 +16,6 @@ export interface CLIAgentResponse {
|
|
|
16
16
|
workingDirectory?: string;
|
|
17
17
|
exitCode?: number;
|
|
18
18
|
}
|
|
19
|
-
export interface BrutalistResponse {
|
|
20
|
-
success: boolean;
|
|
21
|
-
responses: CLIAgentResponse[];
|
|
22
|
-
synthesis?: string;
|
|
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
|
-
};
|
|
34
|
-
}
|
|
35
19
|
export interface RoastOptions {
|
|
36
20
|
targetPath: string;
|
|
37
21
|
analysisType: string;
|
|
@@ -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,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"brutalist.d.ts","sourceRoot":"","sources":["../../src/types/brutalist.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z, ZodRawShape } from 'zod';
|
|
2
|
+
import { BrutalistPromptType } from '../cli-agents.js';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for a brutalist roast tool
|
|
5
|
+
*/
|
|
6
|
+
export interface ToolConfig {
|
|
7
|
+
/** Tool name (e.g., "roast_codebase") */
|
|
8
|
+
name: string;
|
|
9
|
+
/** Tool description shown to users */
|
|
10
|
+
description: string;
|
|
11
|
+
/** Analysis type for CLI orchestrator */
|
|
12
|
+
analysisType: BrutalistPromptType;
|
|
13
|
+
/** System prompt for the brutal AI critics */
|
|
14
|
+
systemPrompt: string;
|
|
15
|
+
/** Tool-specific schema extensions beyond base parameters */
|
|
16
|
+
schemaExtensions: ZodRawShape;
|
|
17
|
+
/** Fields to include in cache key generation */
|
|
18
|
+
cacheKeyFields: string[];
|
|
19
|
+
/** Optional custom context builder */
|
|
20
|
+
contextBuilder?: (args: any) => string;
|
|
21
|
+
/** Primary argument field name (targetPath, idea, etc.) */
|
|
22
|
+
primaryArgField: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Shared base schema for all roast tools
|
|
26
|
+
*/
|
|
27
|
+
export declare const BASE_ROAST_SCHEMA: {
|
|
28
|
+
context: z.ZodOptional<z.ZodString>;
|
|
29
|
+
workingDirectory: z.ZodOptional<z.ZodString>;
|
|
30
|
+
enableSandbox: z.ZodOptional<z.ZodBoolean>;
|
|
31
|
+
preferredCLI: z.ZodOptional<z.ZodEnum<["claude", "codex", "gemini"]>>;
|
|
32
|
+
verbose: z.ZodOptional<z.ZodBoolean>;
|
|
33
|
+
models: z.ZodOptional<z.ZodObject<{
|
|
34
|
+
claude: z.ZodOptional<z.ZodString>;
|
|
35
|
+
codex: z.ZodOptional<z.ZodString>;
|
|
36
|
+
gemini: z.ZodOptional<z.ZodEnum<["gemini-2.5-flash", "gemini-2.5-pro", "gemini-2.5-flash-lite"]>>;
|
|
37
|
+
}, "strip", z.ZodTypeAny, {
|
|
38
|
+
claude?: string | undefined;
|
|
39
|
+
codex?: string | undefined;
|
|
40
|
+
gemini?: "gemini-2.5-flash" | "gemini-2.5-pro" | "gemini-2.5-flash-lite" | undefined;
|
|
41
|
+
}, {
|
|
42
|
+
claude?: string | undefined;
|
|
43
|
+
codex?: string | undefined;
|
|
44
|
+
gemini?: "gemini-2.5-flash" | "gemini-2.5-pro" | "gemini-2.5-flash-lite" | undefined;
|
|
45
|
+
}>>;
|
|
46
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
48
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
49
|
+
analysis_id: z.ZodOptional<z.ZodString>;
|
|
50
|
+
force_refresh: z.ZodOptional<z.ZodBoolean>;
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=tool-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../src/types/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IAEpB,yCAAyC;IACzC,YAAY,EAAE,mBAAmB,CAAC;IAElC,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IAErB,6DAA6D;IAC7D,gBAAgB,EAAE,WAAW,CAAC;IAE9B,gDAAgD;IAChD,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,sCAAsC;IACtC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC;IAEvC,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;CAqB7B,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Shared base schema for all roast tools
|
|
4
|
+
*/
|
|
5
|
+
export const BASE_ROAST_SCHEMA = {
|
|
6
|
+
// Context and execution parameters
|
|
7
|
+
context: z.string().optional().describe("Additional context about the analysis"),
|
|
8
|
+
workingDirectory: z.string().optional().describe("Working directory to execute from"),
|
|
9
|
+
enableSandbox: z.boolean().optional().describe("Enable sandbox mode for safe analysis (default: true)"),
|
|
10
|
+
preferredCLI: z.enum(["claude", "codex", "gemini"]).optional().describe("Preferred CLI agent to use (default: use all available CLIs)"),
|
|
11
|
+
verbose: z.boolean().optional().describe("Include detailed execution information in output (default: false)"),
|
|
12
|
+
// Model selection
|
|
13
|
+
models: z.object({
|
|
14
|
+
claude: z.string().optional().describe("Claude model: opus, sonnet, or full name like claude-opus-4-1-20250805"),
|
|
15
|
+
codex: z.string().optional().describe("Codex model: gpt-5, gpt-5-codex, o3, o3-mini, o3-pro, o4-mini"),
|
|
16
|
+
gemini: z.enum(['gemini-2.5-flash', 'gemini-2.5-pro', 'gemini-2.5-flash-lite']).optional().describe("Gemini model")
|
|
17
|
+
}).optional().describe("Specific models to use for each CLI agent"),
|
|
18
|
+
// Pagination parameters for large responses
|
|
19
|
+
offset: z.number().min(0).optional().describe("Character offset for response pagination (default: 0)"),
|
|
20
|
+
limit: z.number().min(1000).max(100000).optional().describe("Maximum characters per response chunk (default: 90000, max: 100000)"),
|
|
21
|
+
cursor: z.string().optional().describe("Pagination cursor from previous response (alternative to offset/limit)"),
|
|
22
|
+
analysis_id: z.string().optional().describe("Analysis ID from previous response to retrieve cached result"),
|
|
23
|
+
force_refresh: z.boolean().optional().describe("Force re-analysis even if cached result exists (default: false)")
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=tool-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../src/types/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAe,MAAM,KAAK,CAAC;AAgCrC;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,mCAAmC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAChF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACrF,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACvG,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IACvI,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IAE7G,kBAAkB;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;QAChH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QACtG,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;KACpH,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IAEnE,4CAA4C;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACtG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAClI,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;IAChH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IAC3G,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;CAClH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PaginationParams, PaginationMetadata, ResponseChunk, PaginatedResponse } from '../types/brutalist.js';
|
|
2
2
|
export declare const PAGINATION_DEFAULTS: {
|
|
3
|
-
readonly DEFAULT_LIMIT:
|
|
3
|
+
readonly DEFAULT_LIMIT: 90000;
|
|
4
4
|
readonly MAX_LIMIT: 100000;
|
|
5
5
|
readonly MIN_LIMIT: 1000;
|
|
6
6
|
readonly CHUNK_OVERLAP: 200;
|
|
@@ -15,7 +15,7 @@ export declare function estimateTokenCount(text: string): number;
|
|
|
15
15
|
export declare class ResponseChunker {
|
|
16
16
|
private readonly chunkSize;
|
|
17
17
|
private readonly overlap;
|
|
18
|
-
constructor(chunkSize?:
|
|
18
|
+
constructor(chunkSize?: number, overlap?: number);
|
|
19
19
|
/**
|
|
20
20
|
* Split text into chunks with smart boundary detection
|
|
21
21
|
*/
|
|
@@ -1 +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,
|
|
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,GAAE,MAA0C,EAAE,OAAO,GAAE,MAA0C;IAKtH;;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"}
|
package/dist/utils/pagination.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { logger } from '../logger.js';
|
|
2
2
|
// Default pagination configuration
|
|
3
3
|
export const PAGINATION_DEFAULTS = {
|
|
4
|
-
DEFAULT_LIMIT:
|
|
4
|
+
DEFAULT_LIMIT: 90000, // ~22.5K tokens - optimized for Claude Code's 25K window with headroom
|
|
5
5
|
MAX_LIMIT: 100000, // 100K tokens - reasonable upper bound
|
|
6
6
|
MIN_LIMIT: 1000, // 1K tokens - minimum meaningful chunk
|
|
7
7
|
CHUNK_OVERLAP: 200 // Character overlap between chunks for context
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/utils/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAQtC,mCAAmC;AACnC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/utils/pagination.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
export interface CachedResponse {
|
|
2
|
+
content: string;
|
|
3
|
+
timestamp: number;
|
|
4
|
+
analysisId: string;
|
|
5
|
+
cacheKey: string;
|
|
6
|
+
requestParams: Record<string, unknown>;
|
|
7
|
+
compressed: boolean;
|
|
8
|
+
size: number;
|
|
9
|
+
}
|
|
10
|
+
export interface CacheStats {
|
|
11
|
+
entries: number;
|
|
12
|
+
totalSize: number;
|
|
13
|
+
hits: number;
|
|
14
|
+
misses: number;
|
|
15
|
+
evictions: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* LRU Response Cache with TTL and memory management
|
|
19
|
+
*/
|
|
20
|
+
export declare class ResponseCache {
|
|
21
|
+
private cache;
|
|
22
|
+
private accessOrder;
|
|
23
|
+
private stats;
|
|
24
|
+
private readonly maxEntries;
|
|
25
|
+
private readonly ttlMs;
|
|
26
|
+
private readonly maxTotalSizeMB;
|
|
27
|
+
private readonly maxEntrySizeMB;
|
|
28
|
+
private readonly compressionThresholdMB;
|
|
29
|
+
private cleanupTimer?;
|
|
30
|
+
constructor(options?: {
|
|
31
|
+
maxEntries?: number;
|
|
32
|
+
ttlHours?: number;
|
|
33
|
+
maxTotalSizeMB?: number;
|
|
34
|
+
maxEntrySizeMB?: number;
|
|
35
|
+
compressionThresholdMB?: number;
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* Generate cache key from request parameters
|
|
39
|
+
*/
|
|
40
|
+
generateCacheKey(params: Record<string, unknown>): string;
|
|
41
|
+
/**
|
|
42
|
+
* Generate short analysis ID from cache key
|
|
43
|
+
*/
|
|
44
|
+
generateAnalysisId(cacheKey: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Store response in cache
|
|
47
|
+
*/
|
|
48
|
+
set(params: Record<string, unknown>, content: string, forceKey?: string): Promise<{
|
|
49
|
+
cacheKey: string;
|
|
50
|
+
analysisId: string;
|
|
51
|
+
}>;
|
|
52
|
+
/**
|
|
53
|
+
* Retrieve response from cache
|
|
54
|
+
*/
|
|
55
|
+
get(keyOrId: string): Promise<string | null>;
|
|
56
|
+
/**
|
|
57
|
+
* Check if key exists in cache
|
|
58
|
+
*/
|
|
59
|
+
has(keyOrId: string): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Delete entry from cache
|
|
62
|
+
*/
|
|
63
|
+
private delete;
|
|
64
|
+
/**
|
|
65
|
+
* Update LRU access order
|
|
66
|
+
*/
|
|
67
|
+
private updateAccessOrder;
|
|
68
|
+
/**
|
|
69
|
+
* Ensure cache has capacity for new entry
|
|
70
|
+
*/
|
|
71
|
+
private ensureCapacity;
|
|
72
|
+
/**
|
|
73
|
+
* Clean up expired entries
|
|
74
|
+
*/
|
|
75
|
+
private cleanupExpired;
|
|
76
|
+
/**
|
|
77
|
+
* Get cache statistics
|
|
78
|
+
*/
|
|
79
|
+
getStats(): CacheStats;
|
|
80
|
+
/**
|
|
81
|
+
* Clear entire cache
|
|
82
|
+
*/
|
|
83
|
+
clear(): void;
|
|
84
|
+
/**
|
|
85
|
+
* Destroy cache and cleanup resources
|
|
86
|
+
*/
|
|
87
|
+
destroy(): void;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=response-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-cache.d.ts","sourceRoot":"","sources":["../../src/utils/response-cache.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,KAAK,CAMX;IAGF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,YAAY,CAAC,CAAiB;gBAE1B,OAAO,GAAE;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,sBAAsB,CAAC,EAAE,MAAM,CAAC;KAC5B;IAsBN;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAgBzD;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI5C;;OAEG;IACG,GAAG,CACP,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAuDpD;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAwClD;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAc7B;;OAEG;IACH,OAAO,CAAC,MAAM;IAad;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;YACW,cAAc;IAoB5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,QAAQ,IAAI,UAAU;IAItB;;OAEG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACH,OAAO,IAAI,IAAI;CAQhB"}
|