@brutalist/mcp 0.8.1 → 1.0.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 (61) hide show
  1. package/README.md +34 -7
  2. package/dist/brutalist-server.d.ts +55 -16
  3. package/dist/brutalist-server.d.ts.map +1 -1
  4. package/dist/brutalist-server.js +550 -732
  5. package/dist/brutalist-server.js.map +1 -1
  6. package/dist/cli-agents.d.ts +9 -7
  7. package/dist/cli-agents.d.ts.map +1 -1
  8. package/dist/cli-agents.js +290 -202
  9. package/dist/cli-agents.js.map +1 -1
  10. package/dist/domains/argument-space.d.ts +12 -3
  11. package/dist/domains/argument-space.d.ts.map +1 -1
  12. package/dist/domains/argument-space.js +30 -23
  13. package/dist/domains/argument-space.js.map +1 -1
  14. package/dist/domains/critique-domain.d.ts +12 -0
  15. package/dist/domains/critique-domain.d.ts.map +1 -1
  16. package/dist/domains/critique-domain.js +12 -1
  17. package/dist/domains/critique-domain.js.map +1 -1
  18. package/dist/formatting/response-formatter.d.ts +43 -0
  19. package/dist/formatting/response-formatter.d.ts.map +1 -0
  20. package/dist/formatting/response-formatter.js +277 -0
  21. package/dist/formatting/response-formatter.js.map +1 -0
  22. package/dist/generators/tool-generator.d.ts.map +1 -1
  23. package/dist/generators/tool-generator.js +8 -6
  24. package/dist/generators/tool-generator.js.map +1 -1
  25. package/dist/handlers/tool-handler.d.ts +33 -0
  26. package/dist/handlers/tool-handler.d.ts.map +1 -0
  27. package/dist/handlers/tool-handler.js +307 -0
  28. package/dist/handlers/tool-handler.js.map +1 -0
  29. package/dist/registry/argument-spaces.js +17 -17
  30. package/dist/registry/argument-spaces.js.map +1 -1
  31. package/dist/registry/domains.d.ts +10 -0
  32. package/dist/registry/domains.d.ts.map +1 -1
  33. package/dist/registry/domains.js +153 -11
  34. package/dist/registry/domains.js.map +1 -1
  35. package/dist/system-prompts.d.ts +8 -0
  36. package/dist/system-prompts.d.ts.map +1 -0
  37. package/dist/system-prompts.js +596 -0
  38. package/dist/system-prompts.js.map +1 -0
  39. package/dist/tool-definitions.d.ts +20 -1
  40. package/dist/tool-definitions.d.ts.map +1 -1
  41. package/dist/tool-definitions.js +42 -213
  42. package/dist/tool-definitions.js.map +1 -1
  43. package/dist/tool-router.d.ts +12 -0
  44. package/dist/tool-router.d.ts.map +1 -0
  45. package/dist/tool-router.js +59 -0
  46. package/dist/tool-router.js.map +1 -0
  47. package/dist/transport/http-transport.d.ts +40 -0
  48. package/dist/transport/http-transport.d.ts.map +1 -0
  49. package/dist/transport/http-transport.js +182 -0
  50. package/dist/transport/http-transport.js.map +1 -0
  51. package/dist/types/brutalist.d.ts +1 -0
  52. package/dist/types/brutalist.d.ts.map +1 -1
  53. package/dist/types/tool-config.d.ts +4 -3
  54. package/dist/types/tool-config.d.ts.map +1 -1
  55. package/dist/types/tool-config.js +7 -6
  56. package/dist/types/tool-config.js.map +1 -1
  57. package/dist/utils.d.ts +1 -1
  58. package/dist/utils.d.ts.map +1 -1
  59. package/dist/utils.js +13 -6
  60. package/dist/utils.js.map +1 -1
  61. package/package.json +1 -1
@@ -10,8 +10,8 @@ export interface ToolConfig {
10
10
  description: string;
11
11
  /** Analysis type for CLI orchestrator */
12
12
  analysisType: BrutalistPromptType;
13
- /** System prompt for the brutal AI critics */
14
- systemPrompt: string;
13
+ /** @deprecated System prompts now live in system-prompts.ts and are retrieved at execution time */
14
+ systemPrompt?: string;
15
15
  /** Tool-specific schema extensions beyond base parameters */
16
16
  schemaExtensions: ZodRawShape;
17
17
  /** Fields to include in cache key generation */
@@ -27,7 +27,7 @@ export interface ToolConfig {
27
27
  export declare const BASE_ROAST_SCHEMA: {
28
28
  context: z.ZodOptional<z.ZodString>;
29
29
  workingDirectory: z.ZodOptional<z.ZodString>;
30
- preferredCLI: z.ZodOptional<z.ZodEnum<["claude", "codex", "gemini"]>>;
30
+ clis: z.ZodOptional<z.ZodArray<z.ZodEnum<["claude", "codex", "gemini"]>, "many">>;
31
31
  verbose: z.ZodOptional<z.ZodBoolean>;
32
32
  models: z.ZodOptional<z.ZodObject<{
33
33
  claude: z.ZodOptional<z.ZodString>;
@@ -46,6 +46,7 @@ export declare const BASE_ROAST_SCHEMA: {
46
46
  limit: z.ZodOptional<z.ZodNumber>;
47
47
  cursor: z.ZodOptional<z.ZodString>;
48
48
  context_id: z.ZodOptional<z.ZodString>;
49
+ resume: z.ZodOptional<z.ZodBoolean>;
49
50
  force_refresh: z.ZodOptional<z.ZodBoolean>;
50
51
  };
51
52
  //# sourceMappingURL=tool-config.d.ts.map
@@ -1 +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;;;;;;;;;;;;;;;;;;;;;;;CAoB7B,CAAC"}
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,mGAAmG;IACnG,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,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"}
@@ -6,7 +6,7 @@ export const BASE_ROAST_SCHEMA = {
6
6
  // Context and execution parameters
7
7
  context: z.string().optional().describe("Additional context about the analysis"),
8
8
  workingDirectory: z.string().optional().describe("Working directory to execute from"),
9
- preferredCLI: z.enum(["claude", "codex", "gemini"]).optional().describe("Preferred CLI agent to use (default: use all available CLIs)"),
9
+ clis: z.array(z.enum(["claude", "codex", "gemini"])).min(1).max(3).optional().describe("CLI agents to use (default: all available). Example: ['claude', 'gemini']"),
10
10
  verbose: z.boolean().optional().describe("Include detailed execution information in output (default: false)"),
11
11
  // Model selection - defaults prioritize frontier models with high capacity
12
12
  models: z.object({
@@ -14,11 +14,12 @@ export const BASE_ROAST_SCHEMA = {
14
14
  codex: z.string().optional().describe("Codex model: gpt-5.1-codex-max (recommended), gpt-5.1-codex, gpt-5.1-codex-mini, gpt-5-codex, gpt-5, o4-mini. Default: gpt-5.1-codex-max"),
15
15
  gemini: z.string().optional().describe("Gemini model: gemini-3-pro-preview (recommended), gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite. Default: gemini-3-pro-preview")
16
16
  }).optional().describe("Specific models to use for each CLI agent - defaults use frontier models with highest capacity"),
17
- // Pagination parameters for large responses
18
- offset: z.number().min(0).optional().describe("Character offset for response pagination (default: 0)"),
19
- limit: z.number().min(1000).max(100000).optional().describe("Maximum characters per response chunk (default: 90000, max: 100000)"),
20
- cursor: z.string().optional().describe("Pagination cursor from previous response (alternative to offset/limit)"),
17
+ // Pagination and conversation continuation
18
+ offset: z.number().min(0).optional().describe("Pagination offset (default: 0)"),
19
+ limit: z.number().min(1000).max(100000).optional().describe("Max chars/chunk (default: 90000)"),
20
+ cursor: z.string().optional().describe("Pagination cursor"),
21
21
  context_id: z.string().optional().describe("Context ID from previous response to resume the conversation"),
22
- force_refresh: z.boolean().optional().describe("Force re-analysis even if cached result exists (default: false)")
22
+ resume: z.boolean().optional().describe("Continue conversation with history injection (requires context_id)"),
23
+ force_refresh: z.boolean().optional().describe("Ignore cache")
23
24
  };
24
25
  //# sourceMappingURL=tool-config.js.map
@@ -1 +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,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,2EAA2E;IAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+HAA+H,CAAC;QACvK,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0IAA0I,CAAC;QACjL,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0IAA0I,CAAC;KACnL,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gGAAgG,CAAC;IAExH,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,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IAC1G,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;CAClH,CAAC"}
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,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;IACnK,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IAE7G,2EAA2E;IAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+HAA+H,CAAC;QACvK,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0IAA0I,CAAC;QACjL,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0IAA0I,CAAC;KACnL,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gGAAgG,CAAC;IAExH,2CAA2C;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC/F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC3D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IAC1G,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;IAC7G,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC/D,CAAC"}
package/dist/utils.d.ts CHANGED
@@ -7,5 +7,5 @@
7
7
  * @returns The resolved, validated absolute path.
8
8
  * @throws Error if the path is outside the project root or does not exist (if mustExist is true).
9
9
  */
10
- export declare function resolveAndValidatePath(projectRoot: string, userPath: string, mustExist?: boolean): string;
10
+ export declare function resolveAndValidatePath(projectRoot: string, userPath: string, mustExist?: boolean): Promise<string>;
11
11
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +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,CAsCR"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,MAAM,CAAC,CA6CjB"}
package/dist/utils.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { resolve, sep } from 'path';
2
- import { realpathSync, existsSync } from 'fs';
2
+ import { promises as fs } from 'fs';
3
3
  /**
4
4
  * Resolves a given path and validates that it is within the allowed project root.
5
5
  * Prevents path traversal attacks.
@@ -9,12 +9,12 @@ import { realpathSync, existsSync } from 'fs';
9
9
  * @returns The resolved, validated absolute path.
10
10
  * @throws Error if the path is outside the project root or does not exist (if mustExist is true).
11
11
  */
12
- export function resolveAndValidatePath(projectRoot, userPath, mustExist = false) {
12
+ export async function resolveAndValidatePath(projectRoot, userPath, mustExist = false) {
13
13
  // Check for null byte injection before any path operations
14
14
  if (userPath.includes('\0')) {
15
15
  throw new Error(`Path traversal detected`);
16
16
  }
17
- const absoluteProjectRoot = realpathSync(projectRoot);
17
+ const absoluteProjectRoot = await fs.realpath(projectRoot);
18
18
  // For absolute paths, check if they start outside project root immediately
19
19
  if (resolve(userPath) === userPath) { // userPath is absolute
20
20
  if (!userPath.startsWith(absoluteProjectRoot + sep) && userPath !== absoluteProjectRoot) {
@@ -23,10 +23,17 @@ export function resolveAndValidatePath(projectRoot, userPath, mustExist = false)
23
23
  }
24
24
  const resolvedPath = resolve(absoluteProjectRoot, userPath);
25
25
  let absoluteResolvedPath;
26
- const pathExists = existsSync(resolvedPath);
26
+ let pathExists = false;
27
+ try {
28
+ await fs.access(resolvedPath);
29
+ pathExists = true;
30
+ }
31
+ catch {
32
+ pathExists = false;
33
+ }
27
34
  if (pathExists) {
28
- // Use realpathSync to resolve symlinks and detect traversal for existing paths
29
- absoluteResolvedPath = realpathSync(resolvedPath);
35
+ // Use fs.realpath to resolve symlinks and detect traversal for existing paths
36
+ absoluteResolvedPath = await fs.realpath(resolvedPath);
30
37
  }
31
38
  else {
32
39
  // For non-existent paths, use logical resolution for traversal detection
package/dist/utils.js.map CHANGED
@@ -1 +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,2DAA2D;IAC3D,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,mBAAmB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAEtD,2EAA2E;IAC3E,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,uBAAuB;QAC3D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,GAAG,GAAG,CAAC,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;YACxF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAE5D,IAAI,oBAA4B,CAAC;IACjC,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAE5C,IAAI,UAAU,EAAE,CAAC;QACf,+EAA+E;QAC/E,oBAAoB,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,yEAAyE;QACzE,oBAAoB,GAAG,YAAY,CAAC;IACtC,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,mBAAmB,GAAG,GAAG,CAAC,IAAI,oBAAoB,KAAK,mBAAmB,EAAE,CAAC;QAChH,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
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,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AAEpC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB,EACnB,QAAgB,EAChB,YAAqB,KAAK;IAE1B,2DAA2D;IAC3D,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,mBAAmB,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE3D,2EAA2E;IAC3E,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,uBAAuB;QAC3D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,GAAG,GAAG,CAAC,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;YACxF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAE5D,IAAI,oBAA4B,CAAC;IACjC,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9B,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,8EAA8E;QAC9E,oBAAoB,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,yEAAyE;QACzE,oBAAoB,GAAG,YAAY,CAAC;IACtC,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,mBAAmB,GAAG,GAAG,CAAC,IAAI,oBAAoB,KAAK,mBAAmB,EAAE,CAAC;QAChH,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brutalist/mcp",
3
- "version": "0.8.1",
3
+ "version": "1.0.0",
4
4
  "description": "Deploy Claude, Codex & Gemini CLI agents to demolish your work before users do. Real file analysis. Brutal honesty. Now with conversation continuation & intelligent pagination.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",