@brutalist/mcp 1.3.0 → 1.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/dist/index.js CHANGED
@@ -1,5 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import { BrutalistServer } from './brutalist-server.js';
3
+ import { logger } from './logger.js';
4
+ // Graceful shutdown on stdio disconnect — the MCP SDK throws "Not connected"
5
+ // when the parent process closes the pipe. This is normal during shutdown.
6
+ process.on('uncaughtException', (error) => {
7
+ if (error.message === 'Not connected') {
8
+ logger.shutdown();
9
+ process.exit(0);
10
+ }
11
+ console.error("Uncaught exception:", error instanceof Error ? error.message : String(error));
12
+ logger.shutdown();
13
+ process.exit(1);
14
+ });
3
15
  async function main() {
4
16
  try {
5
17
  // Check if HTTP mode is requested via environment variable or command line
@@ -17,11 +29,13 @@ async function main() {
17
29
  }
18
30
  catch (error) {
19
31
  console.error("Fatal error:", error instanceof Error ? error.message : String(error));
32
+ logger.shutdown();
20
33
  process.exit(1);
21
34
  }
22
35
  }
23
36
  main().catch((error) => {
24
37
  console.error("Unhandled exception:", error instanceof Error ? error.message : String(error));
38
+ logger.shutdown();
25
39
  process.exit(1);
26
40
  });
27
41
  //# sourceMappingURL=index.js.map
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,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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,6EAA6E;AAC7E,2EAA2E;AAC3E,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;IACxC,IAAI,KAAK,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;QACtC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7F,MAAM,CAAC,QAAQ,EAAE,CAAC;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,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,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,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,MAAM,CAAC,QAAQ,EAAE,CAAC;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/dist/logger.d.ts CHANGED
@@ -1,12 +1,35 @@
1
1
  export declare class Logger {
2
2
  private static instance;
3
3
  private debugMode;
4
+ private fileEnabled;
5
+ private logDir;
6
+ private logFilePath;
7
+ private maxFileSize;
8
+ private maxFiles;
9
+ private fileLogLevel;
10
+ private currentFileSize;
11
+ private rotating;
12
+ private pid;
4
13
  private constructor();
5
14
  static getInstance(): Logger;
6
15
  info(message: string, data?: any): void;
7
16
  warn(message: string, data?: any): void;
8
17
  error(message: string, error?: Error | any): void;
9
18
  debug(message: string, data?: any): void;
19
+ /** No-op kept for API compatibility. Writes are synchronous, nothing to flush. */
20
+ shutdown(): void;
21
+ private initFileLogging;
22
+ private writeToFile;
23
+ /**
24
+ * Size-based ring rotation.
25
+ *
26
+ * brutalist.log → brutalist.1.log
27
+ * brutalist.1.log → brutalist.2.log
28
+ * …
29
+ * brutalist.{max}.log → deleted
30
+ */
31
+ private rotate;
32
+ private disableFileLogging;
10
33
  }
11
34
  export declare const logger: Logger;
12
35
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,MAAM;IAO5B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAIhC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAIhC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,GAAG;IAO1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;CAKlC;AAED,eAAO,MAAM,MAAM,QAAuB,CAAC"}
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"}
package/dist/logger.js CHANGED
@@ -1,8 +1,45 @@
1
+ import { appendFileSync, statSync, renameSync, unlinkSync, mkdirSync, existsSync, openSync, closeSync } from 'fs';
2
+ import { join } from 'path';
3
+ import { homedir } from 'os';
4
+ /**
5
+ * Production logger with optional size-rotated file output.
6
+ *
7
+ * Stderr output (human-readable) is always active — this is the MCP-safe
8
+ * channel since stdout is reserved for protocol messages.
9
+ *
10
+ * File output (NDJSON) is opt-in via BRUTALIST_LOG_FILE=true.
11
+ * Files are written to ~/.brutalist-mcp/logs/ by default and capped
12
+ * via size-based ring rotation so disk usage never exceeds
13
+ * MAX_SIZE × (MAX_FILES + 1).
14
+ *
15
+ * Uses synchronous file writes (appendFileSync) so every log line
16
+ * survives crashes — essential for post-mortem debugging.
17
+ *
18
+ * Environment variables:
19
+ * BRUTALIST_LOG_FILE – "true" to enable file logging
20
+ * BRUTALIST_LOG_DIR – override log directory
21
+ * BRUTALIST_LOG_MAX_SIZE – max MB per file (default 5)
22
+ * BRUTALIST_LOG_MAX_FILES – rotated files to keep (default 3)
23
+ * BRUTALIST_LOG_LEVEL – minimum file log level (default "info")
24
+ */
25
+ const LOG_LEVELS = { debug: 0, info: 1, warn: 2, error: 3 };
26
+ const LOG_FILENAME = 'brutalist.log';
1
27
  export class Logger {
2
28
  static instance;
3
29
  debugMode;
30
+ // File logging state
31
+ fileEnabled = false;
32
+ logDir = '';
33
+ logFilePath = '';
34
+ maxFileSize = 5 * 1024 * 1024; // 5 MB
35
+ maxFiles = 3;
36
+ fileLogLevel = LOG_LEVELS.info;
37
+ currentFileSize = 0;
38
+ rotating = false;
39
+ pid = process.pid;
4
40
  constructor() {
5
41
  this.debugMode = process.env.DEBUG === 'true' || process.env.NODE_ENV === 'development';
42
+ this.initFileLogging();
6
43
  }
7
44
  static getInstance() {
8
45
  if (!Logger.instance) {
@@ -10,22 +47,151 @@ export class Logger {
10
47
  }
11
48
  return Logger.instance;
12
49
  }
50
+ // ---------------------------------------------------------------------------
51
+ // Public API — unchanged signatures, all call sites continue to work
52
+ // ---------------------------------------------------------------------------
13
53
  info(message, data) {
14
54
  console.error(`[BRUTALIST MCP] INFO: ${message}`, data ? JSON.stringify(data) : '');
55
+ this.writeToFile('info', message, data);
15
56
  }
16
57
  warn(message, data) {
17
58
  console.error(`[BRUTALIST MCP] WARN: ${message}`, data ? JSON.stringify(data) : '');
59
+ this.writeToFile('warn', message, data);
18
60
  }
19
61
  error(message, error) {
20
62
  console.error(`[BRUTALIST MCP] ERROR: ${message}`, error instanceof Error ? error.message : error);
21
63
  if (this.debugMode && error instanceof Error && error.stack) {
22
64
  console.error(error.stack);
23
65
  }
66
+ // File output always gets the full error shape for post-mortem debugging
67
+ const fileData = error instanceof Error
68
+ ? { message: error.message, stack: error.stack, name: error.name }
69
+ : error;
70
+ this.writeToFile('error', message, fileData);
24
71
  }
25
72
  debug(message, data) {
26
73
  if (this.debugMode) {
27
74
  console.error(`[BRUTALIST MCP] DEBUG: ${message}`, data ? JSON.stringify(data) : '');
28
75
  }
76
+ // File always receives debug lines if the configured level allows it,
77
+ // regardless of the stderr debug gate
78
+ this.writeToFile('debug', message, data);
79
+ }
80
+ /** No-op kept for API compatibility. Writes are synchronous, nothing to flush. */
81
+ shutdown() {
82
+ // All writes use appendFileSync — every line is already on disk.
83
+ }
84
+ // ---------------------------------------------------------------------------
85
+ // File logging internals
86
+ // ---------------------------------------------------------------------------
87
+ initFileLogging() {
88
+ const enabled = process.env.BRUTALIST_LOG_FILE === 'true';
89
+ const isSubprocess = process.env.BRUTALIST_SUBPROCESS === '1';
90
+ if (!enabled || isSubprocess)
91
+ return;
92
+ try {
93
+ this.logDir = process.env.BRUTALIST_LOG_DIR
94
+ || join(homedir(), '.brutalist-mcp', 'logs');
95
+ const maxSizeMB = Number(process.env.BRUTALIST_LOG_MAX_SIZE) || 5;
96
+ this.maxFileSize = maxSizeMB * 1024 * 1024;
97
+ this.maxFiles = Number(process.env.BRUTALIST_LOG_MAX_FILES) || 3;
98
+ const levelStr = (process.env.BRUTALIST_LOG_LEVEL || 'info').toLowerCase();
99
+ this.fileLogLevel = LOG_LEVELS[levelStr] ?? LOG_LEVELS.info;
100
+ // Ensure directory exists
101
+ mkdirSync(this.logDir, { recursive: true });
102
+ this.logFilePath = join(this.logDir, LOG_FILENAME);
103
+ // Measure existing file so we rotate correctly
104
+ if (existsSync(this.logFilePath)) {
105
+ try {
106
+ this.currentFileSize = statSync(this.logFilePath).size;
107
+ }
108
+ catch {
109
+ this.currentFileSize = 0;
110
+ }
111
+ }
112
+ else {
113
+ // Touch the file so appendFileSync doesn't fail on first write
114
+ const fd = openSync(this.logFilePath, 'a');
115
+ closeSync(fd);
116
+ }
117
+ this.fileEnabled = true;
118
+ }
119
+ catch (err) {
120
+ // Never let logging prevent the server from starting
121
+ console.error(`[BRUTALIST MCP] WARN: File logging init failed: ${err instanceof Error ? err.message : err}`);
122
+ this.fileEnabled = false;
123
+ }
124
+ }
125
+ writeToFile(level, message, data) {
126
+ if (!this.fileEnabled)
127
+ return;
128
+ if (LOG_LEVELS[level] < this.fileLogLevel)
129
+ return;
130
+ try {
131
+ const entry = {
132
+ ts: new Date().toISOString(),
133
+ level,
134
+ msg: message,
135
+ ...(data !== undefined && { data }),
136
+ pid: this.pid
137
+ };
138
+ const line = JSON.stringify(entry) + '\n';
139
+ const lineBytes = Buffer.byteLength(line);
140
+ // Rotate before writing if this line would exceed the cap
141
+ if (this.currentFileSize + lineBytes > this.maxFileSize) {
142
+ this.rotate();
143
+ }
144
+ appendFileSync(this.logFilePath, line);
145
+ this.currentFileSize += lineBytes;
146
+ }
147
+ catch {
148
+ this.disableFileLogging('write failure');
149
+ }
150
+ }
151
+ /**
152
+ * Size-based ring rotation.
153
+ *
154
+ * brutalist.log → brutalist.1.log
155
+ * brutalist.1.log → brutalist.2.log
156
+ * …
157
+ * brutalist.{max}.log → deleted
158
+ */
159
+ rotate() {
160
+ if (this.rotating)
161
+ return;
162
+ this.rotating = true;
163
+ try {
164
+ // Shift existing rotated files
165
+ for (let i = this.maxFiles - 1; i >= 1; i--) {
166
+ const src = join(this.logDir, `brutalist.${i}.log`);
167
+ const dst = join(this.logDir, `brutalist.${i + 1}.log`);
168
+ if (existsSync(src)) {
169
+ renameSync(src, dst);
170
+ }
171
+ }
172
+ // Drop the oldest file if it exists
173
+ const oldest = join(this.logDir, `brutalist.${this.maxFiles}.log`);
174
+ if (existsSync(oldest)) {
175
+ unlinkSync(oldest);
176
+ }
177
+ // Current → .1
178
+ if (existsSync(this.logFilePath)) {
179
+ renameSync(this.logFilePath, join(this.logDir, 'brutalist.1.log'));
180
+ }
181
+ this.currentFileSize = 0;
182
+ }
183
+ catch (err) {
184
+ this.disableFileLogging(`rotation failed: ${err instanceof Error ? err.message : err}`);
185
+ }
186
+ finally {
187
+ this.rotating = false;
188
+ }
189
+ }
190
+ disableFileLogging(reason) {
191
+ if (!this.fileEnabled)
192
+ return;
193
+ this.fileEnabled = false;
194
+ console.error(`[BRUTALIST MCP] WARN: File logging disabled (${reason})`);
29
195
  }
30
196
  }
31
197
  export const logger = Logger.getInstance();
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACT,MAAM,CAAC,QAAQ,CAAS;IACxB,SAAS,CAAU;IAE3B;QACE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;IAC1F,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAU;QAC9B,OAAO,CAAC,KAAK,CAAC,yBAAyB,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAU;QAC9B,OAAO,CAAC,KAAK,CAAC,yBAAyB,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,KAAmB;QACxC,OAAO,CAAC,KAAK,CAAC,0BAA0B,OAAO,EAAE,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnG,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAU;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,0BAA0B,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * MCP Server Registry — manages which MCP servers are available to spawned CLI agents.
3
+ *
4
+ * Brutalist generates per-CLI MCP configurations from this registry so that
5
+ * adversarial agents can use tools (e.g. Playwright) for evidence-backed
6
+ * analysis while remaining unable to modify the codebase.
7
+ */
8
+ export interface MCPServerSpec {
9
+ command: string;
10
+ args: string[];
11
+ env?: Record<string, string>;
12
+ }
13
+ /** Resolve server specs by name from the registry. Unknown names are skipped with a warning. */
14
+ export declare function resolveServers(names: string[]): Record<string, MCPServerSpec>;
15
+ /** Return all registered server names (for discovery / cli_agent_roster). */
16
+ export declare function listRegisteredServers(): string[];
17
+ /**
18
+ * Write a temporary Claude MCP config file and return its path.
19
+ * Caller is responsible for cleanup via `cleanupTempConfig`.
20
+ */
21
+ export declare function writeClaudeMCPConfig(servers: Record<string, MCPServerSpec>, sessionId: string): Promise<string>;
22
+ /** Remove a temp config file. Swallows errors (file may already be gone). */
23
+ export declare function cleanupTempConfig(filepath: string): Promise<void>;
24
+ /**
25
+ * Build a TOML-compatible value string for Codex's `-c mcp_servers=...` flag.
26
+ * This **replaces** Codex's configured servers entirely (excluding brutalist).
27
+ *
28
+ * Codex parses the value as TOML, so we produce an inline-table representation:
29
+ * {playwright={command="npx", args=["@playwright/mcp@latest"]}}
30
+ */
31
+ export declare function buildCodexMCPOverride(servers: Record<string, MCPServerSpec>): string;
32
+ /**
33
+ * Ensure the requested MCP servers are configured in Gemini CLI.
34
+ * Runs `gemini mcp list` to check, then `gemini mcp add` for missing ones.
35
+ * Idempotent — safe to call on every invocation.
36
+ */
37
+ export declare function ensureGeminiMCPServers(servers: Record<string, MCPServerSpec>): Promise<void>;
38
+ //# sourceMappingURL=mcp-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-registry.d.ts","sourceRoot":"","sources":["../src/mcp-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAyCD,gGAAgG;AAChG,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAc7E;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAID;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACtC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED,6EAA6E;AAC7E,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOvE;AAID;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,MAAM,CAMpF;AAID;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * MCP Server Registry — manages which MCP servers are available to spawned CLI agents.
3
+ *
4
+ * Brutalist generates per-CLI MCP configurations from this registry so that
5
+ * adversarial agents can use tools (e.g. Playwright) for evidence-backed
6
+ * analysis while remaining unable to modify the codebase.
7
+ */
8
+ import { promises as fs } from 'fs';
9
+ import path from 'path';
10
+ import os from 'os';
11
+ import { exec } from 'child_process';
12
+ import { promisify } from 'util';
13
+ import { logger } from './logger.js';
14
+ const execAsync = promisify(exec);
15
+ // ── Registry ───────────────────────────────────────────────────────────────
16
+ /** Built-in known MCP servers. Extend this as new integrations are added. */
17
+ const BUILTIN_SERVERS = {
18
+ playwright: {
19
+ command: 'npx',
20
+ args: ['@playwright/mcp@latest'],
21
+ },
22
+ };
23
+ /**
24
+ * Merge built-in servers with user-defined servers from the
25
+ * `BRUTALIST_MCP_SERVERS` env var (JSON object keyed by server name).
26
+ */
27
+ function loadRegistry() {
28
+ const registry = { ...BUILTIN_SERVERS };
29
+ const envServers = process.env.BRUTALIST_MCP_SERVERS;
30
+ if (envServers) {
31
+ try {
32
+ const parsed = JSON.parse(envServers);
33
+ for (const [name, spec] of Object.entries(parsed)) {
34
+ if (spec?.command) {
35
+ registry[name] = spec;
36
+ }
37
+ }
38
+ }
39
+ catch (e) {
40
+ logger.warn('Failed to parse BRUTALIST_MCP_SERVERS env var:', e);
41
+ }
42
+ }
43
+ return registry;
44
+ }
45
+ /** Resolve server specs by name from the registry. Unknown names are skipped with a warning. */
46
+ export function resolveServers(names) {
47
+ const registry = loadRegistry();
48
+ const resolved = {};
49
+ for (const name of names) {
50
+ const spec = registry[name];
51
+ if (spec) {
52
+ resolved[name] = spec;
53
+ }
54
+ else {
55
+ logger.warn(`MCP server "${name}" not found in registry — skipping`);
56
+ }
57
+ }
58
+ return resolved;
59
+ }
60
+ /** Return all registered server names (for discovery / cli_agent_roster). */
61
+ export function listRegisteredServers() {
62
+ return Object.keys(loadRegistry());
63
+ }
64
+ // ── Claude: temp JSON config file ──────────────────────────────────────────
65
+ /**
66
+ * Write a temporary Claude MCP config file and return its path.
67
+ * Caller is responsible for cleanup via `cleanupTempConfig`.
68
+ */
69
+ export async function writeClaudeMCPConfig(servers, sessionId) {
70
+ const config = { mcpServers: {} };
71
+ for (const [name, spec] of Object.entries(servers)) {
72
+ config.mcpServers[name] = {
73
+ command: spec.command,
74
+ args: spec.args,
75
+ ...(spec.env && { env: spec.env }),
76
+ };
77
+ }
78
+ const tmpDir = os.tmpdir();
79
+ const filename = `brutalist-mcp-${sessionId}-${Date.now()}.json`;
80
+ const filepath = path.join(tmpDir, filename);
81
+ await fs.writeFile(filepath, JSON.stringify(config, null, 2), 'utf-8');
82
+ logger.info(`Wrote Claude MCP config: ${filepath}`);
83
+ return filepath;
84
+ }
85
+ /** Remove a temp config file. Swallows errors (file may already be gone). */
86
+ export async function cleanupTempConfig(filepath) {
87
+ try {
88
+ await fs.unlink(filepath);
89
+ logger.info(`Cleaned up MCP config: ${filepath}`);
90
+ }
91
+ catch {
92
+ // Already removed or never created — fine
93
+ }
94
+ }
95
+ // ── Codex: -c config override string ───────────────────────────────────────
96
+ /**
97
+ * Build a TOML-compatible value string for Codex's `-c mcp_servers=...` flag.
98
+ * This **replaces** Codex's configured servers entirely (excluding brutalist).
99
+ *
100
+ * Codex parses the value as TOML, so we produce an inline-table representation:
101
+ * {playwright={command="npx", args=["@playwright/mcp@latest"]}}
102
+ */
103
+ export function buildCodexMCPOverride(servers) {
104
+ const entries = Object.entries(servers).map(([name, spec]) => {
105
+ const args = spec.args.map(a => `"${a}"`).join(', ');
106
+ return `${name}={command="${spec.command}", args=[${args}]}`;
107
+ });
108
+ return `{${entries.join(', ')}}`;
109
+ }
110
+ // ── Gemini: ensure servers are pre-configured ──────────────────────────────
111
+ /**
112
+ * Ensure the requested MCP servers are configured in Gemini CLI.
113
+ * Runs `gemini mcp list` to check, then `gemini mcp add` for missing ones.
114
+ * Idempotent — safe to call on every invocation.
115
+ */
116
+ export async function ensureGeminiMCPServers(servers) {
117
+ let existingNames;
118
+ try {
119
+ const { stdout } = await execAsync('gemini mcp list', { timeout: 10_000 });
120
+ // Parse the table output — server names are in the first column
121
+ existingNames = new Set(stdout.split('\n')
122
+ .filter(line => line.trim() && !line.startsWith('Name') && !line.startsWith('Loaded'))
123
+ .map(line => line.split(/\s+/)[0])
124
+ .filter(Boolean));
125
+ }
126
+ catch {
127
+ logger.warn('Could not list Gemini MCP servers — skipping pre-configuration');
128
+ return;
129
+ }
130
+ for (const [name, spec] of Object.entries(servers)) {
131
+ if (existingNames.has(name)) {
132
+ logger.info(`Gemini MCP server "${name}" already configured`);
133
+ continue;
134
+ }
135
+ try {
136
+ const args = spec.args.map(a => `"${a}"`).join(' ');
137
+ await execAsync(`gemini mcp add ${name} ${spec.command} ${args}`, { timeout: 15_000 });
138
+ logger.info(`Added Gemini MCP server: ${name}`);
139
+ }
140
+ catch (e) {
141
+ logger.warn(`Failed to add Gemini MCP server "${name}":`, e);
142
+ }
143
+ }
144
+ }
145
+ //# sourceMappingURL=mcp-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-registry.js","sourceRoot":"","sources":["../src/mcp-registry.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export declare const SYSTEM_PROMPTS: Record<BrutalistPromptType, string>;
3
3
  /**
4
4
  * Get the system prompt for a given analysis type.
5
5
  * Falls back to a generic brutal prompt if type is not found.
6
+ * When mcpServers is provided, appends MCP tool-usage instructions.
6
7
  */
7
- export declare function getSystemPrompt(analysisType: BrutalistPromptType): string;
8
+ export declare function getSystemPrompt(analysisType: BrutalistPromptType, mcpServers?: string[]): string;
8
9
  //# sourceMappingURL=system-prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompts.d.ts","sourceRoot":"","sources":["../src/system-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAyEtD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CA0gB9D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,mBAAmB,GAAG,MAAM,CA4BzE"}
1
+ {"version":3,"file":"system-prompts.d.ts","sourceRoot":"","sources":["../src/system-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAyEtD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CA0gB9D,CAAC;AAmBF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,mBAAmB,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAiChG"}
@@ -567,12 +567,29 @@ ANALYTICAL PROTOCOL:
567
567
 
568
568
  </system_prompt>`
569
569
  };
570
+ /**
571
+ * When MCP servers are enabled, append tool-usage instructions to the base prompt.
572
+ * Keeps the read-only codebase constraint but tells the agent about available MCP tools.
573
+ */
574
+ function appendMCPInstructions(basePrompt, mcpServers) {
575
+ return basePrompt + `
576
+
577
+ <external_tool_access>
578
+ EXTERNAL TOOL ACCESS:
579
+ You have access to MCP tools for gathering evidence. Available servers: ${mcpServers.join(', ')}.
580
+ - USE these tools to verify claims and gather concrete evidence for your analysis
581
+ - You MUST NOT modify the codebase — your role is analysis only
582
+ - Back your critique with evidence from tool use where possible
583
+ - MCP tools allow observation and interaction (e.g., browser testing, API queries) — not code modification
584
+ </external_tool_access>`;
585
+ }
570
586
  /**
571
587
  * Get the system prompt for a given analysis type.
572
588
  * Falls back to a generic brutal prompt if type is not found.
589
+ * When mcpServers is provided, appends MCP tool-usage instructions.
573
590
  */
574
- export function getSystemPrompt(analysisType) {
575
- return SYSTEM_PROMPTS[analysisType] || buildPrompt({
591
+ export function getSystemPrompt(analysisType, mcpServers) {
592
+ const basePrompt = SYSTEM_PROMPTS[analysisType] || buildPrompt({
576
593
  domain: 'generic_critique',
577
594
  role: 'Brutal Critic',
578
595
  persona: 'A ruthless critic who has seen every failure mode. You find what\'s broken before it breaks.',
@@ -599,5 +616,9 @@ export function getSystemPrompt(analysisType) {
599
616
  'Always find what\'s broken'
600
617
  ]
601
618
  });
619
+ if (mcpServers && mcpServers.length > 0) {
620
+ return appendMCPInstructions(basePrompt, mcpServers);
621
+ }
622
+ return basePrompt;
602
623
  }
603
624
  //# sourceMappingURL=system-prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompts.js","sourceRoot":"","sources":["../src/system-prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-prompts.js","sourceRoot":"","sources":["../src/system-prompts.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,8DAA8D;AAC9D,MAAM,WAAW,GAAG,CAAC,MAUpB,EAAE,EAAE,CAAC,0BAA0B,MAAM,CAAC,MAAM;;QAErC,MAAM,CAAC,IAAI;;;iBAGF,MAAM,CAAC,YAAY;;WAEzB,MAAM,CAAC,OAAO;;;EAGvB,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;EAMvD,MAAM,CAAC,iBAAiB;;;;;EAKxB,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;EAWnE,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;EAQvD,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;iBAGjD,CAAC;AAElB,MAAM,CAAC,MAAM,cAAc,GAAwC;IACjE,IAAI,EAAE,WAAW,CAAC;QAChB,MAAM,EAAE,eAAe;QACvB,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,oKAAoK;QAC7K,YAAY,EAAE,4GAA4G;QAC1H,iBAAiB,EAAE;;;;2EAIoD;QACvE,iBAAiB,EAAE;YACjB,kFAAkF;YAClF,qFAAqF;YACrF,8EAA8E;YAC9E,oFAAoF;YACpF,+EAA+E;SAChF;QACD,kBAAkB,EAAE;YAClB,8EAA8E;YAC9E,yCAAyC;YACzC,yDAAyD;YACzD,mFAAmF;SACpF;QACD,kBAAkB,EAAE;YAClB,6CAA6C;YAC7C,wEAAwE;YACxE,8DAA8D;SAC/D;QACD,cAAc,EAAE;YACd,2CAA2C;YAC3C,8CAA8C;YAC9C,qEAAqE;YACrE,2DAA2D;YAC3D,8CAA8C;SAC/C;KACF,CAAC;IAEF,QAAQ,EAAE,WAAW,CAAC;QACpB,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,kCAAkC;QACxC,OAAO,EAAE,4JAA4J;QACrK,YAAY,EAAE,mGAAmG;QACjH,iBAAiB,EAAE;;;;yGAIkF;QACrG,iBAAiB,EAAE;YACjB,+FAA+F;YAC/F,6EAA6E;YAC7E,0FAA0F;YAC1F,0FAA0F;YAC1F,qFAAqF;SACtF;QACD,kBAAkB,EAAE;YAClB,+DAA+D;YAC/D,yDAAyD;YACzD,gFAAgF;YAChF,uFAAuF;SACxF;QACD,kBAAkB,EAAE;YAClB,sDAAsD;YACtD,2CAA2C;YAC3C,wDAAwD;SACzD;QACD,cAAc,EAAE;YACd,2CAA2C;YAC3C,6CAA6C;YAC7C,wDAAwD;YACxD,2CAA2C;YAC3C,qEAAqE;SACtE;KACF,CAAC;IAEF,aAAa,EAAE,WAAW,CAAC;QACzB,MAAM,EAAE,yBAAyB;QACjC,IAAI,EAAE,iCAAiC;QACvC,OAAO,EAAE,wKAAwK;QACjL,YAAY,EAAE,uIAAuI;QACrJ,iBAAiB,EAAE;;;uEAGgD;QACnE,iBAAiB,EAAE;YACjB,+FAA+F;YAC/F,0FAA0F;YAC1F,qGAAqG;YACrG,yFAAyF;YACzF,8EAA8E;SAC/E;QACD,kBAAkB,EAAE;YAClB,qDAAqD;YACrD,8DAA8D;YAC9D,yDAAyD;YACzD,kDAAkD;SACnD;QACD,kBAAkB,EAAE;YAClB,4DAA4D;YAC5D,gDAAgD;YAChD,mDAAmD;SACpD;QACD,cAAc,EAAE;YACd,yCAAyC;YACzC,6DAA6D;YAC7D,0DAA0D;YAC1D,2DAA2D;SAC5D;KACF,CAAC;IAEF,YAAY,EAAE,WAAW,CAAC;QACxB,MAAM,EAAE,qBAAqB;QAC7B,IAAI,EAAE,sCAAsC;QAC5C,OAAO,EAAE,6IAA6I;QACtJ,YAAY,EAAE,gIAAgI;QAC9I,iBAAiB,EAAE;;;;wEAIiD;QACpE,iBAAiB,EAAE;YACjB,0FAA0F;YAC1F,gFAAgF;YAChF,qGAAqG;YACrG,mFAAmF;YACnF,sFAAsF;SACvF;QACD,kBAAkB,EAAE;YAClB,6EAA6E;YAC7E,6DAA6D;YAC7D,yDAAyD;YACzD,2EAA2E;SAC5E;QACD,kBAAkB,EAAE;YAClB,iEAAiE;YACjE,kDAAkD;YAClD,kDAAkD;SACnD;QACD,cAAc,EAAE;YACd,+CAA+C;YAC/C,wCAAwC;YACxC,sCAAsC;YACtC,4DAA4D;YAC5D,wDAAwD;SACzD;KACF,CAAC;IAEF,UAAU,EAAE,WAAW,CAAC;QACtB,MAAM,EAAE,sBAAsB;QAC9B,IAAI,EAAE,qCAAqC;QAC3C,OAAO,EAAE,qIAAqI;QAC9I,YAAY,EAAE,iGAAiG;QAC/G,iBAAiB,EAAE;;;iFAG0D;QAC7E,iBAAiB,EAAE;YACjB,sFAAsF;YACtF,yFAAyF;YACzF,2FAA2F;YAC3F,2FAA2F;YAC3F,gGAAgG;SACjG;QACD,kBAAkB,EAAE;YAClB,uDAAuD;YACvD,qEAAqE;YACrE,kFAAkF;YAClF,gFAAgF;SACjF;QACD,kBAAkB,EAAE;YAClB,8DAA8D;YAC9D,+DAA+D;YAC/D,iDAAiD;SAClD;QACD,cAAc,EAAE;YACd,4CAA4C;YAC5C,kDAAkD;YAClD,kDAAkD;YAClD,gEAAgE;YAChE,uDAAuD;SACxD;KACF,CAAC;IAEF,YAAY,EAAE,WAAW,CAAC;QACxB,MAAM,EAAE,wBAAwB;QAChC,IAAI,EAAE,uCAAuC;QAC7C,OAAO,EAAE,iJAAiJ;QAC1J,YAAY,EAAE,+EAA+E;QAC7F,iBAAiB,EAAE;;;oFAG6D;QAChF,iBAAiB,EAAE;YACjB,oFAAoF;YACpF,4FAA4F;YAC5F,2FAA2F;YAC3F,kFAAkF;YAClF,kFAAkF;SACnF;QACD,kBAAkB,EAAE;YAClB,oDAAoD;YACpD,iEAAiE;YACjE,iEAAiE;YACjE,wEAAwE;SACzE;QACD,kBAAkB,EAAE;YAClB,8CAA8C;YAC9C,iDAAiD;YACjD,+DAA+D;SAChE;QACD,cAAc,EAAE;YACd,qCAAqC;YACrC,sEAAsE;YACtE,kDAAkD;YAClD,uDAAuD;YACvD,8CAA8C;SAC/C;KACF,CAAC;IAEF,IAAI,EAAE,WAAW,CAAC;QAChB,MAAM,EAAE,eAAe;QACvB,IAAI,EAAE,qCAAqC;QAC3C,OAAO,EAAE,8JAA8J;QACvK,YAAY,EAAE,qGAAqG;QACnH,iBAAiB,EAAE;;;gDAGyB;QAC5C,iBAAiB,EAAE;YACjB,wFAAwF;YACxF,2FAA2F;YAC3F,4EAA4E;YAC5E,kFAAkF;YAClF,sEAAsE;SACvE;QACD,kBAAkB,EAAE;YAClB,qDAAqD;YACrD,kEAAkE;YAClE,gDAAgD;YAChD,uEAAuE;SACxE;QACD,kBAAkB,EAAE;YAClB,8CAA8C;YAC9C,gCAAgC;YAChC,yCAAyC;SAC1C;QACD,cAAc,EAAE;YACd,sCAAsC;YACtC,+CAA+C;YAC/C,8DAA8D;YAC9D,oDAAoD;YACpD,wCAAwC;SACzC;KACF,CAAC;IAEF,YAAY,EAAE,WAAW,CAAC;QACxB,MAAM,EAAE,uBAAuB;QAC/B,IAAI,EAAE,iCAAiC;QACvC,OAAO,EAAE,kLAAkL;QAC3L,YAAY,EAAE,6GAA6G;QAC3H,iBAAiB,EAAE;;;6DAGsC;QACzD,iBAAiB,EAAE;YACjB,uFAAuF;YACvF,iFAAiF;YACjF,gFAAgF;YAChF,uEAAuE;YACvE,4EAA4E;SAC7E;QACD,kBAAkB,EAAE;YAClB,yDAAyD;YACzD,6CAA6C;YAC7C,gFAAgF;YAChF,4EAA4E;SAC7E;QACD,kBAAkB,EAAE;YAClB,uCAAuC;YACvC,4DAA4D;YAC5D,6CAA6C;SAC9C;QACD,cAAc,EAAE;YACd,uCAAuC;YACvC,kFAAkF;YAClF,kEAAkE;YAClE,4CAA4C;YAC5C,iDAAiD;SAClD;KACF,CAAC;IAEF,QAAQ,EAAE,WAAW,CAAC;QACpB,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,+BAA+B;QACrC,OAAO,EAAE,+JAA+J;QACxK,YAAY,EAAE,8GAA8G;QAC5H,iBAAiB,EAAE;;;2BAGI;QACvB,iBAAiB,EAAE;YACjB,uFAAuF;YACvF,6FAA6F;YAC7F,kGAAkG;YAClG,8FAA8F;YAC9F,0FAA0F;SAC3F;QACD,kBAAkB,EAAE;YAClB,sFAAsF;YACtF,mDAAmD;YACnD,+BAA+B;YAC/B,gFAAgF;SACjF;QACD,kBAAkB,EAAE;YAClB,4DAA4D;YAC5D,kCAAkC;YAClC,iDAAiD;SAClD;QACD,cAAc,EAAE;YACd,iDAAiD;YACjD,4EAA4E;YAC5E,gDAAgD;YAChD,iDAAiD;YACjD,mEAAmE;SACpE;KACF,CAAC;IAEF,IAAI,EAAE,WAAW,CAAC;QAChB,MAAM,EAAE,uBAAuB;QAC/B,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE,qKAAqK;QAC9K,YAAY,EAAE,iFAAiF;QAC/F,iBAAiB,EAAE;;;4DAGqC;QACxD,iBAAiB,EAAE;YACjB,4FAA4F;YAC5F,6FAA6F;YAC7F,4FAA4F;YAC5F,0FAA0F;YAC1F,iFAAiF;SAClF;QACD,kBAAkB,EAAE;YAClB,iDAAiD;YACjD,oDAAoD;YACpD,+DAA+D;YAC/D,wDAAwD;SACzD;QACD,kBAAkB,EAAE;YAClB,mDAAmD;YACnD,8DAA8D;YAC9D,kDAAkD;SACnD;QACD,cAAc,EAAE;YACd,sDAAsD;YACtD,iDAAiD;YACjD,0DAA0D;YAC1D,2DAA2D;YAC3D,iDAAiD;SAClD;KACF,CAAC;IAEF,QAAQ,EAAE,WAAW,CAAC;QACpB,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,uKAAuK;QAChL,YAAY,EAAE,wFAAwF;QACtG,iBAAiB,EAAE;;;8CAGuB;QAC1C,iBAAiB,EAAE;YACjB,gGAAgG;YAChG,mFAAmF;YACnF,kGAAkG;YAClG,gGAAgG;YAChG,oGAAoG;SACrG;QACD,kBAAkB,EAAE;YAClB,4CAA4C;YAC5C,mDAAmD;YACnD,gEAAgE;YAChE,kCAAkC;SACnC;QACD,kBAAkB,EAAE;YAClB,+CAA+C;YAC/C,2CAA2C;YAC3C,0DAA0D;SAC3D;QACD,cAAc,EAAE;YACd,oDAAoD;YACpD,oCAAoC;YACpC,2CAA2C;YAC3C,qCAAqC;YACrC,4CAA4C;SAC7C;KACF,CAAC;IAEF,OAAO,EAAE,WAAW,CAAC;QACnB,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,wLAAwL;QACjM,YAAY,EAAE,wFAAwF;QACtG,iBAAiB,EAAE;;;6CAGsB;QACzC,iBAAiB,EAAE;YACjB,+FAA+F;YAC/F,yFAAyF;YACzF,0FAA0F;YAC1F,uFAAuF;YACvF,sFAAsF;SACvF;QACD,kBAAkB,EAAE;YAClB,kDAAkD;YAClD,8DAA8D;YAC9D,iDAAiD;YACjD,6CAA6C;SAC9C;QACD,kBAAkB,EAAE;YAClB,8CAA8C;YAC9C,uDAAuD;YACvD,kCAAkC;SACnC;QACD,cAAc,EAAE;YACd,2CAA2C;YAC3C,qDAAqD;YACrD,mCAAmC;YACnC,iDAAiD;YACjD,oDAAoD;SACrD;KACF,CAAC;IAEF,cAAc,EAAE,WAAW,CAAC;QAC1B,MAAM,EAAE,yBAAyB;QACjC,IAAI,EAAE,sCAAsC;QAC5C,OAAO,EAAE,uIAAuI;QAChJ,YAAY,EAAE,yFAAyF;QACvG,iBAAiB,EAAE;;;yDAGkC;QACrD,iBAAiB,EAAE;YACjB,+FAA+F;YAC/F,iFAAiF;YACjF,sFAAsF;YACtF,sFAAsF;YACtF,yFAAyF;SAC1F;QACD,kBAAkB,EAAE;YAClB,mCAAmC;YACnC,2CAA2C;YAC3C,oEAAoE;YACpE,+DAA+D;SAChE;QACD,kBAAkB,EAAE;YAClB,gDAAgD;YAChD,kDAAkD;YAClD,mDAAmD;SACpD;QACD,cAAc,EAAE;YACd,0DAA0D;YAC1D,qDAAqD;YACrD,2CAA2C;YAC3C,uCAAuC;YACvC,8CAA8C;SAC/C;KACF,CAAC;IAEF,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkDO;CAChB,CAAC;AAEF;;;GAGG;AACH,SAAS,qBAAqB,CAAC,UAAkB,EAAE,UAAoB;IACrE,OAAO,UAAU,GAAG;;;;0EAIoD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;wBAKvE,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,YAAiC,EAAE,UAAqB;IACtF,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC;QAC7D,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,8FAA8F;QACvG,YAAY,EAAE,gEAAgE;QAC9E,iBAAiB,EAAE,0CAA0C;QAC7D,iBAAiB,EAAE;YACjB,6CAA6C;YAC7C,gDAAgD;YAChD,kDAAkD;YAClD,mDAAmD;SACpD;QACD,kBAAkB,EAAE;YAClB,oCAAoC;YACpC,2CAA2C;YAC3C,+BAA+B;SAChC;QACD,kBAAkB,EAAE;YAClB,0BAA0B;YAC1B,gDAAgD;SACjD;QACD,cAAc,EAAE;YACd,uBAAuB;YACvB,mDAAmD;YACnD,4BAA4B;SAC7B;KACF,CAAC,CAAC;IAEH,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,qBAAqB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -167,7 +167,7 @@ export class ServerHarness {
167
167
  }
168
168
  // Additional server cleanup if needed
169
169
  if (this.server) {
170
- this.server.cleanup();
170
+ await this.server.cleanup();
171
171
  }
172
172
  const stopTime = Date.now() - stopStart;
173
173
  logger.info(`ServerHarness: Server stopped in ${stopTime}ms`);
@@ -1 +1 @@
1
- {"version":3,"file":"server-harness.js","sourceRoot":"","sources":["../../src/test-utils/server-harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAQtC;;;GAGG;AACH,MAAM,OAAO,aAAa;IAQJ;IAPZ,MAAM,GAA2B,IAAI,CAAC;IACtC,UAAU,CAAqB;IAC/B,OAAO,CAAqB;IAC5B,SAAS,CAAqB;IAC9B,UAAU,CAAkB;IAC5B,SAAS,CAAqB;IAEtC,YAAoB,UAAgC,EAAE;QAAlC,YAAO,GAAP,OAAO,CAA2B;QACpD,IAAI,CAAC,OAAO,GAAG;YACb,cAAc,EAAE,KAAK;YACrB,mBAAmB,EAAE,GAAG;YACxB,eAAe,EAAE,IAAI;YACrB,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,SAAc,EAAE;QAC1B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAEjD,IAAI,CAAC;YACH,yBAAyB;YACzB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC;gBAChC,GAAG,MAAM;gBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAE,yCAAyC;aAC1E,CAAC,CAAC;YAEH,mBAAmB;YACnB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAE1B,qCAAqC;YACrC,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACtD,CAAC;gBACD,IAAI,CAAC,OAAO,GAAG,oBAAoB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAErD,mCAAmC;gBACnC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAE9B,4BAA4B;gBAC5B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7B,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,kCAAkC,WAAW,cAAc,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6BAA6B;YAC7B,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,cAAe,CAAC;QAC3D,IAAI,SAA4B,CAAC;QAEjC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC;gBAEvD,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;oBAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;wBACzB,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;wBACnD,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,SAAS,GAAG,KAAK,CAAC;gBAClB,oCAAoC;YACtC,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,CAAC,OAAO,CAAC,cAAc,OAAO,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAClH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,YAAoB;QAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB;gBACjE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,kCAAkC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa;QACzB,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,CAAC;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE;gBACN,eAAe,EAAE,YAAY;gBAC7B,YAAY,EAAE;oBACZ,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,EAAE,CAAE,kDAAkD;iBAChE;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,OAAO;iBACjB;aACF;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SAClC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAErD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,2CAA2C;QAC3C,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC/D,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,8BAA8B;YAC9B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC9B,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;oBACjD,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBAEjC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAW,EAAE,EAAE;wBACpC,YAAY,CAAC,OAAO,CAAC,CAAC;wBACtB,IAAI,GAAG;4BAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;4BAChB,OAAO,EAAE,CAAC;oBACjB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;YAED,sCAAsC;YACtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,oCAAoC,QAAQ,IAAI,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,wDAAwD,EAAE,KAAK,CAAC,CAAC;YAC9E,gBAAgB;YAChB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC9B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,OAAO;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,UAAe,EAAE;QAC/C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QACrC,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,QAAQ,EAAE,qCAAqC;YAC/C,GAAG,OAAO,CAAC,OAAO;SACnB,CAAC;QAEF,yDAAyD;QACzD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACtC,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,GAAG,OAAO;YACV,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,IAAS,EAAE,aAAsB;QACnE,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS;aACrD;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAErD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,MAAM,KAAK,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAU,IAAI,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"server-harness.js","sourceRoot":"","sources":["../../src/test-utils/server-harness.ts"],"names":[],"mappings":"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"}