@iflow-mcp/ejmockler-brutalist
Version:
Deploy Claude, Codex & Gemini CLI agents to demolish your work before users do. Real file analysis. Brutal honesty. Now with conversation continuation & intelligent pagination.
149 lines • 5.99 kB
JavaScript
/**
* Argument Space Registry: Pre-built reusable argument schemas
*
* Import these to avoid duplication across tool definitions.
*/
import { z } from 'zod';
import { FILESYSTEM_ARGUMENT_SPACE, TEXT_INPUT_ARGUMENT_SPACE, FILESYSTEM_WITH_DEPTH, PACKAGE_MANIFEST_SPACE, GIT_REPOSITORY_SPACE, TEST_SUITE_SPACE } from '../domains/argument-space.js';
/**
* All built-in argument spaces
*/
export const ARGUMENT_SPACES = {
// Standard filesystem analysis
FILESYSTEM: FILESYSTEM_ARGUMENT_SPACE,
// Text-based input (for ideas, architecture descriptions, etc.)
TEXT_INPUT: TEXT_INPUT_ARGUMENT_SPACE,
// Filesystem with depth control (for directory structure analysis)
FILESYSTEM_DEPTH: FILESYSTEM_WITH_DEPTH,
// Package manifest analysis
PACKAGE_MANIFEST: PACKAGE_MANIFEST_SPACE,
// Git repository analysis
GIT_REPOSITORY: GIT_REPOSITORY_SPACE,
// Test suite analysis
TEST_SUITE: TEST_SUITE_SPACE,
// Extended text input with additional context fields
EXTENDED_TEXT_INPUT: {
id: 'extended_text_input',
name: 'Extended Text Input',
base: FILESYSTEM_ARGUMENT_SPACE.base,
domain: TEXT_INPUT_ARGUMENT_SPACE.domain.extend({
resources: z.string().optional().describe("Available resources (budget, team, time)"),
timeline: z.string().optional().describe("Expected timeline")
}),
computed: (args) => ({
workingDirectory: args.targetPath || '.',
contextExtensions: [args.resources, args.timeline].filter(Boolean).join('. ')
})
},
// Architecture-specific arguments
ARCHITECTURE_SPECIFIC: {
id: 'architecture_specific',
name: 'Architecture Specific',
base: FILESYSTEM_ARGUMENT_SPACE.base,
domain: TEXT_INPUT_ARGUMENT_SPACE.domain.extend({
scale: z.string().optional().describe("Expected scale/load"),
constraints: z.string().optional().describe("Technical/budget constraints"),
deployment: z.string().optional().describe("Deployment strategy")
}),
computed: (args) => ({
workingDirectory: args.targetPath || '.',
scalingContext: args.scale,
deploymentContext: args.deployment
})
},
// Research-specific arguments
RESEARCH_SPECIFIC: {
id: 'research_specific',
name: 'Research Specific',
base: FILESYSTEM_ARGUMENT_SPACE.base,
domain: TEXT_INPUT_ARGUMENT_SPACE.domain.extend({
field: z.string().optional().describe("Research field"),
claims: z.string().optional().describe("Main claims"),
data: z.string().optional().describe("Data sources/setup")
}),
computed: (args) => ({
workingDirectory: args.targetPath || '.',
researchField: args.field,
methodology: args.data
})
},
// Security-specific arguments
SECURITY_SPECIFIC: {
id: 'security_specific',
name: 'Security Specific',
base: FILESYSTEM_ARGUMENT_SPACE.base,
domain: TEXT_INPUT_ARGUMENT_SPACE.domain.extend({
assets: z.string().optional().describe("Critical assets to protect"),
threatModel: z.string().optional().describe("Known threats"),
compliance: z.string().optional().describe("Compliance requirements")
}),
computed: (args) => ({
workingDirectory: args.targetPath || '.',
criticalAssets: args.assets,
complianceRequirements: args.compliance
})
},
// Product-specific arguments
PRODUCT_SPECIFIC: {
id: 'product_specific',
name: 'Product Specific',
base: FILESYSTEM_ARGUMENT_SPACE.base,
domain: TEXT_INPUT_ARGUMENT_SPACE.domain.extend({
users: z.string().optional().describe("Target users"),
competition: z.string().optional().describe("Competitors"),
metrics: z.string().optional().describe("Success metrics")
}),
computed: (args) => ({
workingDirectory: args.targetPath || '.',
targetUsers: args.users,
competitiveContext: args.competition
})
},
// Design-specific arguments
DESIGN_SPECIFIC: {
id: 'design_specific',
name: 'Design Specific',
base: FILESYSTEM_ARGUMENT_SPACE.base,
domain: TEXT_INPUT_ARGUMENT_SPACE.domain.extend({
medium: z.string().optional().describe("Design medium (web, mobile, spatial, print)"),
audience: z.string().optional().describe("Who inhabits this interface"),
brand: z.string().optional().describe("Brand identity or design system constraints")
}),
computed: (args) => ({
workingDirectory: args.targetPath || '.',
designMedium: args.medium,
targetAudience: args.audience,
brandContext: args.brand
})
},
// Infrastructure-specific arguments
INFRASTRUCTURE_SPECIFIC: {
id: 'infrastructure_specific',
name: 'Infrastructure Specific',
base: FILESYSTEM_ARGUMENT_SPACE.base,
domain: TEXT_INPUT_ARGUMENT_SPACE.domain.extend({
scale: z.string().optional().describe("Expected scale"),
sla: z.string().optional().describe("SLA/uptime targets"),
budget: z.string().optional().describe("Cost constraints")
}),
computed: (args) => ({
workingDirectory: args.targetPath || '.',
loadPatterns: args.scale,
slaRequirements: args.sla,
costConstraints: args.budget
})
}
};
/**
* Helper to get an argument space by ID
*/
export function getArgumentSpace(id) {
return Object.values(ARGUMENT_SPACES).find(a => a.id === id);
}
/**
* Helper to list all argument spaces
*/
export function listArgumentSpaces() {
return Object.values(ARGUMENT_SPACES);
}
//# sourceMappingURL=argument-spaces.js.map