@brutalist/mcp 1.8.1 → 1.9.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 (118) hide show
  1. package/README.md +26 -0
  2. package/dist/brutalist-server.d.ts +31 -9
  3. package/dist/brutalist-server.d.ts.map +1 -1
  4. package/dist/brutalist-server.js +107 -673
  5. package/dist/brutalist-server.js.map +1 -1
  6. package/dist/cli-adapters/claude-adapter.d.ts +25 -0
  7. package/dist/cli-adapters/claude-adapter.d.ts.map +1 -0
  8. package/dist/cli-adapters/claude-adapter.js +245 -0
  9. package/dist/cli-adapters/claude-adapter.js.map +1 -0
  10. package/dist/cli-adapters/codex-adapter.d.ts +23 -0
  11. package/dist/cli-adapters/codex-adapter.d.ts.map +1 -0
  12. package/dist/cli-adapters/codex-adapter.js +173 -0
  13. package/dist/cli-adapters/codex-adapter.js.map +1 -0
  14. package/dist/cli-adapters/gemini-adapter.d.ts +50 -0
  15. package/dist/cli-adapters/gemini-adapter.d.ts.map +1 -0
  16. package/dist/cli-adapters/gemini-adapter.js +196 -0
  17. package/dist/cli-adapters/gemini-adapter.js.map +1 -0
  18. package/dist/cli-adapters/index.d.ts +75 -0
  19. package/dist/cli-adapters/index.d.ts.map +1 -0
  20. package/dist/cli-adapters/index.js +29 -0
  21. package/dist/cli-adapters/index.js.map +1 -0
  22. package/dist/cli-adapters/shared.d.ts +12 -0
  23. package/dist/cli-adapters/shared.d.ts.map +1 -0
  24. package/dist/cli-adapters/shared.js +99 -0
  25. package/dist/cli-adapters/shared.js.map +1 -0
  26. package/dist/cli-agents.d.ts +64 -2
  27. package/dist/cli-agents.d.ts.map +1 -1
  28. package/dist/cli-agents.js +341 -394
  29. package/dist/cli-agents.js.map +1 -1
  30. package/dist/debate/constitutional.d.ts +27 -0
  31. package/dist/debate/constitutional.d.ts.map +1 -0
  32. package/dist/debate/constitutional.js +74 -0
  33. package/dist/debate/constitutional.js.map +1 -0
  34. package/dist/debate/debate-orchestrator.d.ts +154 -0
  35. package/dist/debate/debate-orchestrator.d.ts.map +1 -0
  36. package/dist/debate/debate-orchestrator.js +699 -0
  37. package/dist/debate/debate-orchestrator.js.map +1 -0
  38. package/dist/debate/index.d.ts +18 -0
  39. package/dist/debate/index.d.ts.map +1 -0
  40. package/dist/debate/index.js +18 -0
  41. package/dist/debate/index.js.map +1 -0
  42. package/dist/debate/refusal-detection.d.ts +27 -0
  43. package/dist/debate/refusal-detection.d.ts.map +1 -0
  44. package/dist/debate/refusal-detection.js +62 -0
  45. package/dist/debate/refusal-detection.js.map +1 -0
  46. package/dist/debate/synthesis.d.ts +22 -0
  47. package/dist/debate/synthesis.d.ts.map +1 -0
  48. package/dist/debate/synthesis.js +117 -0
  49. package/dist/debate/synthesis.js.map +1 -0
  50. package/dist/logger.d.ts +204 -1
  51. package/dist/logger.d.ts.map +1 -1
  52. package/dist/logger.js +398 -18
  53. package/dist/logger.js.map +1 -1
  54. package/dist/metrics/counter.d.ts +24 -0
  55. package/dist/metrics/counter.d.ts.map +1 -0
  56. package/dist/metrics/counter.js +60 -0
  57. package/dist/metrics/counter.js.map +1 -0
  58. package/dist/metrics/histogram.d.ts +42 -0
  59. package/dist/metrics/histogram.d.ts.map +1 -0
  60. package/dist/metrics/histogram.js +114 -0
  61. package/dist/metrics/histogram.js.map +1 -0
  62. package/dist/metrics/index.d.ts +26 -0
  63. package/dist/metrics/index.d.ts.map +1 -0
  64. package/dist/metrics/index.js +22 -0
  65. package/dist/metrics/index.js.map +1 -0
  66. package/dist/metrics/registry.d.ts +96 -0
  67. package/dist/metrics/registry.d.ts.map +1 -0
  68. package/dist/metrics/registry.js +113 -0
  69. package/dist/metrics/registry.js.map +1 -0
  70. package/dist/metrics/safe-metric.d.ts +25 -0
  71. package/dist/metrics/safe-metric.d.ts.map +1 -0
  72. package/dist/metrics/safe-metric.js +41 -0
  73. package/dist/metrics/safe-metric.js.map +1 -0
  74. package/dist/metrics/types.d.ts +82 -0
  75. package/dist/metrics/types.d.ts.map +1 -0
  76. package/dist/metrics/types.js +121 -0
  77. package/dist/metrics/types.js.map +1 -0
  78. package/dist/registry/argument-spaces.d.ts.map +1 -1
  79. package/dist/registry/argument-spaces.js +20 -0
  80. package/dist/registry/argument-spaces.js.map +1 -1
  81. package/dist/registry/domains.d.ts.map +1 -1
  82. package/dist/registry/domains.js +17 -1
  83. package/dist/registry/domains.js.map +1 -1
  84. package/dist/streaming/circuit-breaker.d.ts +13 -1
  85. package/dist/streaming/circuit-breaker.d.ts.map +1 -1
  86. package/dist/streaming/circuit-breaker.js +13 -1
  87. package/dist/streaming/circuit-breaker.js.map +1 -1
  88. package/dist/streaming/intelligent-buffer.d.ts +13 -1
  89. package/dist/streaming/intelligent-buffer.d.ts.map +1 -1
  90. package/dist/streaming/intelligent-buffer.js +13 -1
  91. package/dist/streaming/intelligent-buffer.js.map +1 -1
  92. package/dist/streaming/output-parser.d.ts +16 -2
  93. package/dist/streaming/output-parser.d.ts.map +1 -1
  94. package/dist/streaming/output-parser.js +16 -2
  95. package/dist/streaming/output-parser.js.map +1 -1
  96. package/dist/streaming/progress-tracker.d.ts +14 -1
  97. package/dist/streaming/progress-tracker.d.ts.map +1 -1
  98. package/dist/streaming/progress-tracker.js +14 -1
  99. package/dist/streaming/progress-tracker.js.map +1 -1
  100. package/dist/streaming/session-manager.d.ts +14 -1
  101. package/dist/streaming/session-manager.d.ts.map +1 -1
  102. package/dist/streaming/session-manager.js +14 -1
  103. package/dist/streaming/session-manager.js.map +1 -1
  104. package/dist/streaming/sse-transport.d.ts +12 -1
  105. package/dist/streaming/sse-transport.d.ts.map +1 -1
  106. package/dist/streaming/sse-transport.js +12 -1
  107. package/dist/streaming/sse-transport.js.map +1 -1
  108. package/dist/streaming/streaming-orchestrator.d.ts +15 -1
  109. package/dist/streaming/streaming-orchestrator.d.ts.map +1 -1
  110. package/dist/streaming/streaming-orchestrator.js +15 -1
  111. package/dist/streaming/streaming-orchestrator.js.map +1 -1
  112. package/dist/system-prompts.d.ts.map +1 -1
  113. package/dist/system-prompts.js +490 -4
  114. package/dist/system-prompts.js.map +1 -1
  115. package/dist/tool-definitions-generated.d.ts.map +1 -1
  116. package/dist/tool-definitions-generated.js +3 -1
  117. package/dist/tool-definitions-generated.js.map +1 -1
  118. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debate-orchestrator.js","sourceRoot":"","sources":["../../src/debate/debate-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Debate module — extracted from brutalist-server.ts.
3
+ *
4
+ * Public API:
5
+ * - DebateOrchestrator: main class, accepts dependencies via constructor injection
6
+ * - DebateOrchestratorDeps: dependency interface for constructor
7
+ * - DebateToolArgs: argument type for handleDebateToolExecution()
8
+ * - detectRefusal: refusal detection function (13 direct + 11 evasive patterns)
9
+ * - constitutionalAnchor: 3-tier position anchoring generator
10
+ * - synthesizeDebate: debate results -> markdown formatter
11
+ * - DebateTier: 'standard' | 'escalated' | 'decomposed'
12
+ * - DIRECT_REFUSAL_PATTERNS, EVASIVE_REFUSAL_PATTERNS: pattern arrays
13
+ */
14
+ export { DebateOrchestrator, type DebateOrchestratorDeps, type DebateToolArgs, type DebateTier, } from './debate-orchestrator.js';
15
+ export { detectRefusal, DIRECT_REFUSAL_PATTERNS, EVASIVE_REFUSAL_PATTERNS, } from './refusal-detection.js';
16
+ export { constitutionalAnchor, } from './constitutional.js';
17
+ export { synthesizeDebate, } from './synthesis.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/debate/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,kBAAkB,EAClB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Debate module — extracted from brutalist-server.ts.
3
+ *
4
+ * Public API:
5
+ * - DebateOrchestrator: main class, accepts dependencies via constructor injection
6
+ * - DebateOrchestratorDeps: dependency interface for constructor
7
+ * - DebateToolArgs: argument type for handleDebateToolExecution()
8
+ * - detectRefusal: refusal detection function (13 direct + 11 evasive patterns)
9
+ * - constitutionalAnchor: 3-tier position anchoring generator
10
+ * - synthesizeDebate: debate results -> markdown formatter
11
+ * - DebateTier: 'standard' | 'escalated' | 'decomposed'
12
+ * - DIRECT_REFUSAL_PATTERNS, EVASIVE_REFUSAL_PATTERNS: pattern arrays
13
+ */
14
+ export { DebateOrchestrator, } from './debate-orchestrator.js';
15
+ export { detectRefusal, DIRECT_REFUSAL_PATTERNS, EVASIVE_REFUSAL_PATTERNS, } from './refusal-detection.js';
16
+ export { constitutionalAnchor, } from './constitutional.js';
17
+ export { synthesizeDebate, } from './synthesis.js';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/debate/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,kBAAkB,GAInB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Refusal Detection — identifies when a debate agent breaks debate framing.
3
+ *
4
+ * Two classes:
5
+ * - 13 direct refusal patterns (checked in first 1000 chars of output)
6
+ * - 11 evasive refusal patterns (checked across full output)
7
+ *
8
+ * Extracted from brutalist-server.ts lines 943-981.
9
+ */
10
+ /**
11
+ * Direct refusal patterns — front-loaded in first 1000 chars.
12
+ * IMPORTANT: There are exactly 13 patterns. Do not add or remove patterns
13
+ * without updating characterization tests.
14
+ */
15
+ export declare const DIRECT_REFUSAL_PATTERNS: RegExp[];
16
+ /**
17
+ * Evasive refusal patterns — repo analysis pivot, checked across full output.
18
+ */
19
+ export declare const EVASIVE_REFUSAL_PATTERNS: RegExp[];
20
+ /**
21
+ * Detect whether a CLI agent's output constitutes a refusal.
22
+ *
23
+ * Direct refusals are checked in the first 1000 characters (front-loaded).
24
+ * Evasive refusals (repo analysis pivot) are scanned across the full output.
25
+ */
26
+ export declare function detectRefusal(output: string): boolean;
27
+ //# sourceMappingURL=refusal-detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refusal-detection.d.ts","sourceRoot":"","sources":["../../src/debate/refusal-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,EAc3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,EAY5C,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOrD"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Refusal Detection — identifies when a debate agent breaks debate framing.
3
+ *
4
+ * Two classes:
5
+ * - 13 direct refusal patterns (checked in first 1000 chars of output)
6
+ * - 11 evasive refusal patterns (checked across full output)
7
+ *
8
+ * Extracted from brutalist-server.ts lines 943-981.
9
+ */
10
+ /**
11
+ * Direct refusal patterns — front-loaded in first 1000 chars.
12
+ * IMPORTANT: There are exactly 13 patterns. Do not add or remove patterns
13
+ * without updating characterization tests.
14
+ */
15
+ export const DIRECT_REFUSAL_PATTERNS = [
16
+ /\bi('m| am) not going to (participate|argue|engage|debate|take|write|adopt)/i,
17
+ /\bi (will not|won't|cannot|can't) (participate|argue|engage|debate|write|adopt)/i,
18
+ /\bdeclin(e|ing) (to|this|the)/i,
19
+ /\bnot going to participate in this as (framed|structured)/i,
20
+ /\binstead of (the adversarial|this debate|arguing)/i,
21
+ /\bwhat i can do instead\b/i,
22
+ /\bi('d| would) suggest a (different|better) topic\b/i,
23
+ /\bI'll .* but on my own terms\b/i,
24
+ /\bwhere i part from the assigned thesis\b/i,
25
+ /\bi can'?t help write (persuasive|adversarial|advocacy)/i,
26
+ /\bneed to be straightforward\b/i,
27
+ /\bthe problem is the format\b/i,
28
+ /\bnot appropriate for this topic\b/i,
29
+ ];
30
+ /**
31
+ * Evasive refusal patterns — repo analysis pivot, checked across full output.
32
+ */
33
+ export const EVASIVE_REFUSAL_PATTERNS = [
34
+ /\brepo[- ]?(read|map|backed|analysis)\b/i,
35
+ /\bi'?ll (map|inspect|trace) the repo\b/i,
36
+ /\bneutral[,.]? evidence-focused analysis\b/i,
37
+ /\bcodebase (analysis|review|classifies|contains)\b/i,
38
+ /\bI found the core (files|mechanism)\b/i,
39
+ /\bsrc\/brutalist-server\.ts:\d+/i,
40
+ /\bsrc\/cli-agents\.ts:\d+/i,
41
+ /\bsrc\/utils\/transcript-mediator\.ts:\d+/i,
42
+ /\btests\/integration\/.*\.test\.ts:\d+/i,
43
+ /\bdebate coercion engine\b/i,
44
+ /\bposition-enforcement system\b/i,
45
+ ];
46
+ /**
47
+ * Detect whether a CLI agent's output constitutes a refusal.
48
+ *
49
+ * Direct refusals are checked in the first 1000 characters (front-loaded).
50
+ * Evasive refusals (repo analysis pivot) are scanned across the full output.
51
+ */
52
+ export function detectRefusal(output) {
53
+ // Direct refusals front-load in first 1000 chars
54
+ const head = output.substring(0, 1000);
55
+ if (DIRECT_REFUSAL_PATTERNS.some(p => p.test(head)))
56
+ return true;
57
+ // Evasive refusals (repo analysis pivot) can appear anywhere — scan full output
58
+ if (EVASIVE_REFUSAL_PATTERNS.some(p => p.test(output)))
59
+ return true;
60
+ return false;
61
+ }
62
+ //# sourceMappingURL=refusal-detection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refusal-detection.js","sourceRoot":"","sources":["../../src/debate/refusal-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAa;IAC/C,8EAA8E;IAC9E,kFAAkF;IAClF,gCAAgC;IAChC,4DAA4D;IAC5D,qDAAqD;IACrD,4BAA4B;IAC5B,sDAAsD;IACtD,kCAAkC;IAClC,4CAA4C;IAC5C,0DAA0D;IAC1D,iCAAiC;IACjC,gCAAgC;IAChC,qCAAqC;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAa;IAChD,0CAA0C;IAC1C,yCAAyC;IACzC,6CAA6C;IAC7C,qDAAqD;IACrD,yCAAyC;IACzC,kCAAkC;IAClC,4BAA4B;IAC5B,4CAA4C;IAC5C,yCAAyC;IACzC,6BAA6B;IAC7B,kCAAkC;CACnC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,iDAAiD;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACvC,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,gFAAgF;IAChF,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpE,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Debate Synthesis — formats debate results into markdown output.
3
+ *
4
+ * Generates structured output including:
5
+ * - Topic, positions, and round count
6
+ * - Key points of conflict (extracted via keyword indicators)
7
+ * - Full debate transcript grouped by round
8
+ * - Alignment asymmetry analysis (when detected)
9
+ * - Escalation outcome summary
10
+ * - Closing synthesis section
11
+ *
12
+ * Extracted from brutalist-server.ts lines 1353-1471.
13
+ */
14
+ import type { CLIAgentResponse, DebateBehaviorSummary } from '../types/brutalist.js';
15
+ /**
16
+ * Synthesize debate results into formatted markdown output.
17
+ *
18
+ * This function is a direct extraction of BrutalistServer.synthesizeDebate().
19
+ * It preserves all formatting quirks captured by characterization tests.
20
+ */
21
+ export declare function synthesizeDebate(responses: CLIAgentResponse[], topic: string, rounds: number, agentPositions?: Map<string, string>, behaviorSummary?: DebateBehaviorSummary): string;
22
+ //# sourceMappingURL=synthesis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synthesis.d.ts","sourceRoot":"","sources":["../../src/debate/synthesis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAErF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,gBAAgB,EAAE,EAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,eAAe,CAAC,EAAE,qBAAqB,GACtC,MAAM,CAgHR"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Debate Synthesis — formats debate results into markdown output.
3
+ *
4
+ * Generates structured output including:
5
+ * - Topic, positions, and round count
6
+ * - Key points of conflict (extracted via keyword indicators)
7
+ * - Full debate transcript grouped by round
8
+ * - Alignment asymmetry analysis (when detected)
9
+ * - Escalation outcome summary
10
+ * - Closing synthesis section
11
+ *
12
+ * Extracted from brutalist-server.ts lines 1353-1471.
13
+ */
14
+ /**
15
+ * Synthesize debate results into formatted markdown output.
16
+ *
17
+ * This function is a direct extraction of BrutalistServer.synthesizeDebate().
18
+ * It preserves all formatting quirks captured by characterization tests.
19
+ */
20
+ export function synthesizeDebate(responses, topic, rounds, agentPositions, behaviorSummary) {
21
+ const successfulResponses = responses.filter(r => r.success);
22
+ if (successfulResponses.length === 0) {
23
+ return `# CLI Debate Failed\n\nEven our brutal critics couldn't engage in proper adversarial combat.\n\nErrors:\n${responses.map(r => `- ${r.agent}: ${r.error}`).join('\n')}`;
24
+ }
25
+ let synthesis = `# Brutalist CLI Agent Debate Results\n\n`;
26
+ synthesis += `**Topic:** ${topic}\n`;
27
+ synthesis += `**Rounds:** ${rounds}\n`;
28
+ if (agentPositions) {
29
+ synthesis += `**Debaters and Positions:**\n`;
30
+ Array.from(agentPositions.entries()).forEach(([agent, position]) => {
31
+ synthesis += `- **${agent.toUpperCase()}**: ${position}\n`;
32
+ });
33
+ synthesis += '\n';
34
+ }
35
+ else {
36
+ synthesis += `**Participants:** ${Array.from(new Set(successfulResponses.map(r => r.agent))).join(', ')}\n\n`;
37
+ }
38
+ // Identify key points of conflict
39
+ const agents = Array.from(new Set(successfulResponses.map(r => r.agent)));
40
+ const agentOutputs = new Map();
41
+ successfulResponses.forEach(response => {
42
+ if (!agentOutputs.has(response.agent)) {
43
+ agentOutputs.set(response.agent, []);
44
+ }
45
+ if (response.output) {
46
+ agentOutputs.get(response.agent)?.push(response.output);
47
+ }
48
+ });
49
+ synthesis += `## Key Points of Conflict\n\n`;
50
+ // Extract disagreements by looking for contradictory keywords
51
+ const conflictIndicators = ['wrong', 'incorrect', 'flawed', 'fails', 'ignores', 'misses', 'overlooks', 'contradicts', 'however', 'but', 'actually', 'contrary'];
52
+ const conflicts = [];
53
+ agentOutputs.forEach((positions, agent) => {
54
+ positions.forEach((position) => {
55
+ const lines = position.split('\n');
56
+ lines.forEach((line) => {
57
+ if (conflictIndicators.some(indicator => line.toLowerCase().includes(indicator))) {
58
+ conflicts.push(`**${agent.toUpperCase()}:** ${line.trim()}`);
59
+ }
60
+ });
61
+ });
62
+ });
63
+ if (conflicts.length > 0) {
64
+ synthesis += conflicts.slice(0, 10).join('\n\n') + '\n\n';
65
+ }
66
+ else {
67
+ synthesis += `*No explicit conflicts identified - agents may be in unexpected agreement*\n\n`;
68
+ }
69
+ // Group responses by round with clear speaker identification
70
+ synthesis += `## Full Debate Transcript\n\n`;
71
+ const responsesPerRound = Math.ceil(successfulResponses.length / rounds);
72
+ for (let i = 0; i < rounds; i++) {
73
+ const start = i * responsesPerRound;
74
+ const end = Math.min((i + 1) * responsesPerRound, successfulResponses.length);
75
+ const roundResponses = successfulResponses.slice(start, end);
76
+ synthesis += `### Round ${i + 1}: ${i === 0 ? 'Initial Positions' : `Adversarial Engagement ${i}`}\n\n`;
77
+ roundResponses.forEach((response) => {
78
+ const agentPosition = agentPositions?.get(response.agent);
79
+ const positionLabel = agentPosition ? ` [${agentPosition.split(':')[0]}]` : '';
80
+ synthesis += `#### ${response.agent.toUpperCase()}${positionLabel} speaks (${response.executionTime}ms):\n\n`;
81
+ synthesis += `${response.output}\n\n`;
82
+ synthesis += `---\n\n`;
83
+ });
84
+ }
85
+ // Surface position-dependent alignment asymmetries
86
+ if (behaviorSummary?.asymmetry.detected) {
87
+ synthesis += `## Alignment Asymmetry Analysis\n\n`;
88
+ synthesis += `**${behaviorSummary.asymmetry.description}**\n\n`;
89
+ for (const a of behaviorSummary.asymmetry.agentAsymmetries) {
90
+ if (a.asymmetric) {
91
+ const engaged = [a.proEngaged && 'PRO', a.conEngaged && 'CON'].filter(Boolean).join(', ');
92
+ const refused = [!a.proEngaged && 'PRO', !a.conEngaged && 'CON'].filter(Boolean).join(', ');
93
+ synthesis += `- **${a.agent.toUpperCase()}**: Engaged on ${engaged || 'neither'}. Refused ${refused || 'neither'}.\n`;
94
+ }
95
+ else {
96
+ synthesis += `- **${a.agent.toUpperCase()}**: Symmetric — engaged on both positions.\n`;
97
+ }
98
+ }
99
+ synthesis += '\n';
100
+ // Surface escalation outcomes
101
+ const escalatedTurns = behaviorSummary.turns.filter(t => t.escalated);
102
+ if (escalatedTurns.length > 0) {
103
+ synthesis += `**Escalation results:** ${escalatedTurns.length} turn(s) triggered analytical reframing. `;
104
+ const recovered = escalatedTurns.filter(t => t.engagedAfterEscalation).length;
105
+ synthesis += `${recovered} recovered, ${escalatedTurns.length - recovered} persisted in refusal.\n\n`;
106
+ }
107
+ }
108
+ synthesis += `## Debate Synthesis\n`;
109
+ synthesis += `After ${rounds} rounds of brutal adversarial analysis involving ${Array.from(new Set(successfulResponses.map(r => r.agent))).length} CLI agents, `;
110
+ synthesis += `your work has been systematically demolished from multiple perspectives. `;
111
+ synthesis += `The convergent criticisms above represent the collective wisdom of AI agents that disagree on methods but agree on destruction.\n\n`;
112
+ if (responses.some(r => !r.success)) {
113
+ synthesis += `*Note: ${responses.filter(r => !r.success).length} debate contributions failed - probably casualties of the intellectual warfare.*\n\n`;
114
+ }
115
+ return synthesis;
116
+ }
117
+ //# sourceMappingURL=synthesis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synthesis.js","sourceRoot":"","sources":["../../src/debate/synthesis.ts"],"names":[],"mappings":"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"}
package/dist/logger.d.ts CHANGED
@@ -1,4 +1,76 @@
1
- export declare class Logger {
1
+ /**
2
+ * Production logger with optional size-rotated file output.
3
+ *
4
+ * Stderr output (human-readable) is always active — this is the MCP-safe
5
+ * channel since stdout is reserved for protocol messages.
6
+ *
7
+ * File output (NDJSON) is opt-in via BRUTALIST_LOG_FILE=true.
8
+ * Files are written to ~/.brutalist-mcp/logs/ by default and capped
9
+ * via size-based ring rotation so disk usage never exceeds
10
+ * MAX_SIZE × (MAX_FILES + 1).
11
+ *
12
+ * Uses synchronous file writes (appendFileSync) so every log line
13
+ * survives crashes — essential for post-mortem debugging.
14
+ *
15
+ * Environment variables:
16
+ * BRUTALIST_LOG_FILE – "true" to enable file logging
17
+ * BRUTALIST_LOG_DIR – override log directory
18
+ * BRUTALIST_LOG_MAX_SIZE – max MB per file (default 5)
19
+ * BRUTALIST_LOG_MAX_FILES – rotated files to keep (default 3)
20
+ * BRUTALIST_LOG_LEVEL – minimum file log level (default "info")
21
+ *
22
+ * Structured fields (intents.md #3):
23
+ * Every call carries {ts, level, msg, pid}. Callers that use
24
+ * `logger.for({module, operation})` additionally bind `module` and
25
+ * `operation` so records are queryable by subsystem without reading
26
+ * source. Base methods remain source-compatible with pre-migration
27
+ * call sites — module/operation are simply absent on unbound calls.
28
+ */
29
+ declare const LOG_LEVELS: {
30
+ readonly debug: 0;
31
+ readonly info: 1;
32
+ readonly warn: 2;
33
+ readonly error: 3;
34
+ };
35
+ type LogLevel = keyof typeof LOG_LEVELS;
36
+ /**
37
+ * Scope carried by a child logger produced via `logger.for({module, operation})`.
38
+ * Both fields are required when a child is created — the factory is the
39
+ * single way to bind them, which makes their presence easy to grep for.
40
+ */
41
+ export interface LogScope {
42
+ module: string;
43
+ operation: string;
44
+ }
45
+ /**
46
+ * Public logger API surface. Both the root `Logger` and the child
47
+ * `ScopedLogger` satisfy this shape so call sites can accept either
48
+ * without widening to `any`.
49
+ *
50
+ * RL8 (Cycle 6): `for()` accepts `Partial<LogScope>` and `forOperation`
51
+ * is part of the contract. The integration phase will inject
52
+ * `StructuredLogger`-typed dependencies (DebateOrchestrator,
53
+ * CLIAgentOrchestrator); both ergonomic shorthands need to be callable
54
+ * without downcasting to the concrete `ScopedLogger`. Method parameter
55
+ * types are contravariant — `Partial<LogScope>` is wider than
56
+ * `LogScope`, so `ScopedLogger` (whose `for` accepts `Partial<LogScope>`)
57
+ * still satisfies a stricter override that wants the same.
58
+ *
59
+ * The root `Logger.for` takes a stricter `LogScope` at the implementation
60
+ * level (no parent scope to inherit from) but its declared signature is
61
+ * widened here too — root callers that pass a partial scope will receive
62
+ * a runtime error from the root impl, which is the documented contract:
63
+ * the root logger has no defaults to fall back on.
64
+ */
65
+ export interface StructuredLogger {
66
+ info(message: string, data?: any): void;
67
+ warn(message: string, data?: any): void;
68
+ error(message: string, error?: Error | any): void;
69
+ debug(message: string, data?: any): void;
70
+ for(scope: Partial<LogScope>): ScopedLogger;
71
+ forOperation(operation: string): ScopedLogger;
72
+ }
73
+ export declare class Logger implements StructuredLogger {
2
74
  private static instance;
3
75
  private debugMode;
4
76
  private fileEnabled;
@@ -16,8 +88,81 @@ export declare class Logger {
16
88
  warn(message: string, data?: any): void;
17
89
  error(message: string, error?: Error | any): void;
18
90
  debug(message: string, data?: any): void;
91
+ /**
92
+ * Produce a child logger that binds `module` and `operation` to every
93
+ * record it emits. Child loggers delegate to the same file + stderr
94
+ * pipeline as the root, so `BRUTALIST_LOG_LEVEL`, `DEBUG`, and
95
+ * `shutdown()` behavior are shared.
96
+ *
97
+ * Callers should bind once per subsystem scope (e.g., in a class
98
+ * constructor) and reuse the returned logger, rather than creating a
99
+ * new child per call.
100
+ *
101
+ * RL8 (Cycle 6): signature accepts `Partial<LogScope>` to match the
102
+ * `StructuredLogger` interface, but the root `Logger` has no parent
103
+ * scope to inherit from — both `module` and `operation` must be
104
+ * provided. A missing field throws so that an integration-phase
105
+ * caller cannot silently produce a child with `undefined` fields
106
+ * (which would defeat the structured-logging guarantee).
107
+ */
108
+ for(scope: Partial<LogScope>): ScopedLogger;
109
+ /**
110
+ * Root-level `forOperation` is intentionally a thrower: there is no
111
+ * parent module to inherit from, so the resulting child would have
112
+ * `module=undefined`. Use `logger.for({ module, operation })` to bind
113
+ * the scope at the root and `child.forOperation(op)` thereafter.
114
+ *
115
+ * This exists on the interface (RL8) so that DI-typed dependencies
116
+ * can call `forOperation` after they have been narrowed once. Calling
117
+ * it on the bare root logger is a programming error.
118
+ */
119
+ forOperation(_operation: string): ScopedLogger;
19
120
  /** No-op kept for API compatibility. Writes are synchronous, nothing to flush. */
20
121
  shutdown(): void;
122
+ /**
123
+ * Emit a non-error record. Private so that the only externally visible
124
+ * methods keep their original signatures.
125
+ *
126
+ * Stderr layout (RL1): `{prefix} {message}` followed by the serialized
127
+ * data when present. The message text must appear on stderr — it is
128
+ * the guaranteed operational sink since file logging is opt-in via
129
+ * BRUTALIST_LOG_FILE=true.
130
+ *
131
+ * RL5/RL6 (Cycle 6): the prefix is sanitized for `%` (RL6) by
132
+ * `sanitizeScopeForStderr` so it cannot drive `util.format` substitution
133
+ * even though it is the first console.error argument. The caller-
134
+ * supplied `message` is sanitized via `sanitizeMessageForStderr`
135
+ * (RL5) so CR/LF in `message` cannot forge a second log line. The
136
+ * NDJSON file path receives the ORIGINAL `message` and `data`
137
+ * because JSON.stringify already escapes control chars safely.
138
+ */
139
+ /** @internal */
140
+ emit(level: LogLevel, message: string, data?: any, scope?: LogScope): void;
141
+ /**
142
+ * Emit an error record. Splits stderr vs file formatting the same way
143
+ * the original `error()` did — Error instances get `.message` on
144
+ * stderr and the full shape in the NDJSON record.
145
+ *
146
+ * Stderr layout (RL1): `{prefix} {message} {error.message|payload}`.
147
+ * The caller-supplied `message` must appear alongside the error detail
148
+ * so the human-readable line is symmetric with emit().
149
+ *
150
+ * RL5 (Cycle 6): both the caller-supplied `message` and the string
151
+ * forms of the error payload (`Error.message` and string error
152
+ * arguments) are passed through `sanitizeMessageForStderr` before
153
+ * `console.error`. CR/LF in either field would otherwise forge a
154
+ * second stderr log line. Non-Error object payloads go through
155
+ * `safeStringify` (RL3) and JSON.stringify already escapes control
156
+ * chars, so they are stderr-safe without further sanitization.
157
+ *
158
+ * The file path (`writeToFile`) receives the ORIGINAL `message` and
159
+ * the structured `fileData` shape so NDJSON consumers see the raw
160
+ * values that were logged (JSON.stringify handles control char
161
+ * escaping safely on the file side).
162
+ */
163
+ /** @internal */
164
+ emitError(message: string, error?: Error | any, scope?: LogScope): void;
165
+ private stderrPrefix;
21
166
  private initFileLogging;
22
167
  private writeToFile;
23
168
  /**
@@ -31,5 +176,63 @@ export declare class Logger {
31
176
  private rotate;
32
177
  private disableFileLogging;
33
178
  }
179
+ /**
180
+ * Scoped child logger returned by `Logger.for(...)`. Binds `module` and
181
+ * `operation` to every record so integration-time call sites only need
182
+ * to create the child once per subsystem, not thread the scope through
183
+ * every call.
184
+ *
185
+ * Delegates to the root Logger for the actual stderr + file write so
186
+ * all env-var behavior (BRUTALIST_LOG_LEVEL, DEBUG, BRUTALIST_LOG_FILE,
187
+ * rotation, shutdown) is shared and there is no duplicated pipeline.
188
+ */
189
+ export declare class ScopedLogger implements StructuredLogger {
190
+ private readonly root;
191
+ private readonly scope;
192
+ constructor(root: Logger, scope: LogScope);
193
+ info(message: string, data?: any): void;
194
+ warn(message: string, data?: any): void;
195
+ error(message: string, error?: Error | any): void;
196
+ debug(message: string, data?: any): void;
197
+ /**
198
+ * Narrow an existing scoped logger to a new operation while preserving
199
+ * the bound module (RL2). Accepts a partial scope so common usage like
200
+ * `.for({ operation: 'orchestrateRound' })` keeps the class-bound
201
+ * module and only overrides the operation. Passing both fields fully
202
+ * replaces the scope — making renaming the module explicit.
203
+ *
204
+ * Resolution (a): module is preserved by default. This is the shape
205
+ * integrate_observability will consume — bind module at the class
206
+ * level, bind operation per method — so typo'd modules across call
207
+ * sites can't split log streams.
208
+ *
209
+ * Method parameter type is `Partial<LogScope>` which is wider than
210
+ * `LogScope` (every `LogScope` is assignable to `Partial<LogScope>`),
211
+ * so this override still satisfies the `StructuredLogger.for`
212
+ * contract — method parameters are contravariant.
213
+ *
214
+ * RL7 (Cycle 6): explicit `undefined` is filtered so it does not
215
+ * overwrite parent fields. The previous `??` form already handled
216
+ * undefined in the override expression, but a caller writing
217
+ * `.for({ module: undefined, operation: 'x' })` would still produce
218
+ * `module: this.scope.module` (correct) — and the same caller writing
219
+ * `.for({ module: undefined })` correctly preserves the parent. The
220
+ * defense-in-depth here is making the intent explicit so future
221
+ * refactors that switch to `Object.assign`-style merge can't silently
222
+ * regress, and so `null` is also handled (TypeScript allows `null`
223
+ * to satisfy an optional field if `strictNullChecks` is off in some
224
+ * consumer). `sanitizeScopeForStderr` also has a null/undefined
225
+ * guard for paranoid defense.
226
+ */
227
+ for(scope: Partial<LogScope>): ScopedLogger;
228
+ /**
229
+ * Grep-friendly shorthand for the common pattern of binding module
230
+ * at class construction and narrowing by operation per method (RL2).
231
+ * Equivalent to `.for({ operation })` but more discoverable and
232
+ * avoids accidental `.for({ module })` typos stripping the operation.
233
+ */
234
+ forOperation(operation: string): ScopedLogger;
235
+ }
34
236
  export declare const logger: Logger;
237
+ export {};
35
238
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAwCA,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,OAAO,CAAC,SAAS,CAAU;IAG3B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,GAAG,CAAuB;IAElC,OAAO;IAKP,MAAM,CAAC,WAAW,IAAI,MAAM;IAW5B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAKvC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAKvC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI;IAejD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IASxC,kFAAkF;IAClF,QAAQ,IAAI,IAAI;IAQhB,OAAO,CAAC,eAAe;IA6CvB,OAAO,CAAC,WAAW;IA4BnB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM;IAiCd,OAAO,CAAC,kBAAkB;CAK3B;AAED,eAAO,MAAM,MAAM,QAAuB,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}