@brainmcp/brainmcp 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +132 -0
- package/dist/agent-config.js +65 -4
- package/dist/commands/index.d.ts +7 -0
- package/dist/commands/index.js +99 -25
- package/dist/commands/index.js.map +1 -1
- package/dist/index.js +13 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +1 -0
- package/dist/lib/config.js +29 -13
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/files.js +75 -10
- package/dist/lib/files.js.map +1 -1
- package/dist/lib/managed.js +356 -15
- package/dist/lib/managed.js.map +1 -1
- package/dist/types/agent-config-stub.d.ts +10 -0
- package/dist/types/agent-config-stub.js +13 -0
- package/dist/types/agent-config-stub.js.map +1 -1
- package/package.json +3 -3
package/dist/lib/managed.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { brainServerConfig, renderTomlServer, MARKER_END, MARKER_START, TOML_MARKER_END, TOML_MARKER_START } from './config.js';
|
|
2
2
|
export function hasManagedBlock(text, format) {
|
|
3
3
|
return text.includes(format === 'toml' ? TOML_MARKER_START : MARKER_START);
|
|
4
4
|
}
|
|
@@ -45,22 +45,30 @@ export function removeTomlBlock(existing) {
|
|
|
45
45
|
return result.trim() ? result : undefined;
|
|
46
46
|
}
|
|
47
47
|
export function upsertJsonServer(existing, client, rootKey = 'mcpServers') {
|
|
48
|
-
const source = existing?.trim()
|
|
48
|
+
const source = existing?.trim() ? existing : `{\n "${rootKey}": {}\n}\n`;
|
|
49
49
|
const parsed = parseJsonc(source);
|
|
50
50
|
const servers = parsed[rootKey];
|
|
51
51
|
if (servers !== undefined && (typeof servers !== 'object' || servers === null || Array.isArray(servers))) {
|
|
52
52
|
throw new Error(`${rootKey} must be an object.`);
|
|
53
53
|
}
|
|
54
|
+
const root = rootObjectOpen(source);
|
|
55
|
+
const serverMap = servers !== undefined
|
|
56
|
+
? findObjectPropertyObject(source, root, rootKey)
|
|
57
|
+
: undefined;
|
|
58
|
+
if (servers !== undefined && !serverMap)
|
|
59
|
+
throw new Error(`Could not locate the ${rootKey} object.`);
|
|
54
60
|
const existingBrain = servers?.brain;
|
|
55
61
|
if (existingBrain !== undefined && !isBrainConfig(existingBrain)) {
|
|
56
62
|
throw new Error('Refusing to overwrite a manually-managed "brain" MCP server entry.');
|
|
57
63
|
}
|
|
58
|
-
if (existingBrain !== undefined)
|
|
59
|
-
|
|
64
|
+
if (existingBrain !== undefined) {
|
|
65
|
+
if (serverMap)
|
|
66
|
+
findObjectPropertyObject(source, serverMap.valueOpen, 'brain');
|
|
67
|
+
return existing ?? source;
|
|
68
|
+
}
|
|
60
69
|
if (servers !== undefined)
|
|
61
70
|
return insertJsonServer(source, brainServerConfig(client), rootKey);
|
|
62
|
-
|
|
63
|
-
return `${JSON.stringify(next, null, 2)}\n`;
|
|
71
|
+
return insertJsonRootMap(source, rootKey, { brain: brainServerConfig(client) });
|
|
64
72
|
}
|
|
65
73
|
export function removeJsonServer(existing, rootKey = 'mcpServers') {
|
|
66
74
|
if (existing === undefined)
|
|
@@ -79,31 +87,54 @@ export function removeJsonServer(existing, rootKey = 'mcpServers') {
|
|
|
79
87
|
const next = { ...parsed, [rootKey]: servers };
|
|
80
88
|
if (Object.keys(next).length === 1 && Object.keys(servers).length === 0)
|
|
81
89
|
return undefined;
|
|
82
|
-
|
|
90
|
+
const root = rootObjectOpen(existing);
|
|
91
|
+
const serverMap = findObjectPropertyObject(existing, root, rootKey);
|
|
92
|
+
if (!serverMap)
|
|
93
|
+
throw new Error(`Could not locate the ${rootKey} object.`);
|
|
94
|
+
return removeObjectProperty(existing, serverMap.valueOpen, 'brain');
|
|
83
95
|
}
|
|
84
96
|
export function parseJsonc(source) {
|
|
85
97
|
try {
|
|
86
|
-
|
|
98
|
+
const parsed = JSON.parse(removeTrailingCommas(stripJsonComments(source)));
|
|
99
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
100
|
+
throw new Error('the root value must be an object');
|
|
101
|
+
}
|
|
102
|
+
return parsed;
|
|
87
103
|
}
|
|
88
104
|
catch (error) {
|
|
89
105
|
throw new Error(`Invalid JSON/JSONC configuration: ${error instanceof Error ? error.message : String(error)}`);
|
|
90
106
|
}
|
|
91
107
|
}
|
|
92
108
|
function isBrainConfig(value) {
|
|
93
|
-
|
|
109
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
110
|
+
return false;
|
|
111
|
+
return ['claude-code', 'cursor', 'vscode', 'generic'].some((client) => sameJsonValue(value, brainServerConfig(client)));
|
|
112
|
+
}
|
|
113
|
+
function sameJsonValue(left, right) {
|
|
114
|
+
if (left === right)
|
|
115
|
+
return true;
|
|
116
|
+
if (typeof left !== 'object' || left === null || Array.isArray(left) ||
|
|
117
|
+
typeof right !== 'object' || right === null || Array.isArray(right))
|
|
118
|
+
return false;
|
|
119
|
+
const leftRecord = left;
|
|
120
|
+
const rightRecord = right;
|
|
121
|
+
const leftKeys = Object.keys(leftRecord).sort();
|
|
122
|
+
const rightKeys = Object.keys(rightRecord).sort();
|
|
123
|
+
return leftKeys.length === rightKeys.length &&
|
|
124
|
+
leftKeys.every((key, index) => key === rightKeys[index] && sameJsonValue(leftRecord[key], rightRecord[key]));
|
|
94
125
|
}
|
|
95
126
|
function escapeRegex(value) {
|
|
96
127
|
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
97
128
|
}
|
|
98
129
|
/** Adds a server without reformatting existing JSONC comments or sibling entries. */
|
|
99
130
|
function insertJsonServer(source, server, rootKey) {
|
|
100
|
-
const
|
|
101
|
-
|
|
131
|
+
const root = rootObjectOpen(source);
|
|
132
|
+
const property = findObjectPropertyObject(source, root, rootKey);
|
|
133
|
+
if (!property)
|
|
102
134
|
throw new Error(`Could not locate the ${rootKey} object.`);
|
|
103
|
-
const open =
|
|
104
|
-
const close = matchingBrace(source, open);
|
|
135
|
+
const { valueOpen: open, valueClose: close } = property;
|
|
105
136
|
const inner = source.slice(open + 1, close);
|
|
106
|
-
const baseIndent = source.
|
|
137
|
+
const baseIndent = lineIndentAt(source, property.keyStart);
|
|
107
138
|
const entryIndent = `${baseIndent} `;
|
|
108
139
|
const rendered = `"brain": ${JSON.stringify(server, null, 2).replace(/\n/g, `\n${entryIndent}`)}`;
|
|
109
140
|
if (!inner.trim())
|
|
@@ -112,12 +143,312 @@ function insertJsonServer(source, server, rootKey) {
|
|
|
112
143
|
const comma = source.slice(open + 1, end).trimEnd().endsWith(',') ? '' : ',';
|
|
113
144
|
return `${source.slice(0, end)}${comma}\n${entryIndent}${rendered}${source.slice(end)}`;
|
|
114
145
|
}
|
|
146
|
+
/** Adds a missing top-level server map without reformatting unrelated app state or JSONC comments. */
|
|
147
|
+
function insertJsonRootMap(source, rootKey, value) {
|
|
148
|
+
const open = rootObjectOpen(source);
|
|
149
|
+
const close = matchingBrace(source, open);
|
|
150
|
+
const inner = source.slice(open + 1, close);
|
|
151
|
+
const firstEntry = skipJsoncTrivia(source, open + 1, close);
|
|
152
|
+
const entryIndent = firstEntry < close && source[firstEntry] === '"'
|
|
153
|
+
? lineIndentAt(source, firstEntry) || ' '
|
|
154
|
+
: `${lineIndentAt(source, open)} `;
|
|
155
|
+
const rendered = `"${rootKey}": ${JSON.stringify(value, null, 2).replace(/\n/g, `\n${entryIndent}`)}`;
|
|
156
|
+
if (!inner.trim()) {
|
|
157
|
+
return `${source.slice(0, open + 1)}\n${entryIndent}${rendered}\n${source.slice(close)}`;
|
|
158
|
+
}
|
|
159
|
+
const end = open + 1 + inner.search(/\s*$/);
|
|
160
|
+
const comma = source.slice(open + 1, end).trimEnd().endsWith(',') ? '' : ',';
|
|
161
|
+
return `${source.slice(0, end)}${comma}\n${entryIndent}${rendered}${source.slice(end)}`;
|
|
162
|
+
}
|
|
163
|
+
/** Finds an object-valued property at the current object's top level, ignoring strings/comments. */
|
|
164
|
+
function findObjectPropertyObject(source, objectOpen, propertyName) {
|
|
165
|
+
const objectClose = matchingBrace(source, objectOpen);
|
|
166
|
+
let found;
|
|
167
|
+
let index = objectOpen + 1;
|
|
168
|
+
while (index < objectClose) {
|
|
169
|
+
index = skipJsoncTrivia(source, index, objectClose);
|
|
170
|
+
if (index >= objectClose)
|
|
171
|
+
return found;
|
|
172
|
+
if (source[index] === ',') {
|
|
173
|
+
index += 1;
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
if (source[index] !== '"')
|
|
177
|
+
throw new Error('Invalid JSON/JSONC object property.');
|
|
178
|
+
const keyStart = index;
|
|
179
|
+
const keyEnd = jsonStringEnd(source, keyStart);
|
|
180
|
+
const key = JSON.parse(source.slice(keyStart, keyEnd + 1));
|
|
181
|
+
const colon = skipJsoncTrivia(source, keyEnd + 1, objectClose);
|
|
182
|
+
if (source[colon] !== ':')
|
|
183
|
+
throw new Error('Invalid JSON/JSONC object property.');
|
|
184
|
+
const valueOpen = skipJsoncTrivia(source, colon + 1, objectClose);
|
|
185
|
+
if (key === propertyName) {
|
|
186
|
+
if (source[valueOpen] !== '{')
|
|
187
|
+
throw new Error(`${propertyName} must be an object.`);
|
|
188
|
+
if (found)
|
|
189
|
+
throw new Error(`Duplicate ${propertyName} properties are ambiguous; remove the duplicate before continuing.`);
|
|
190
|
+
found = { keyStart, valueOpen, valueClose: matchingBrace(source, valueOpen) };
|
|
191
|
+
}
|
|
192
|
+
const delimiter = valueDelimiter(source, valueOpen, objectClose);
|
|
193
|
+
if (delimiter >= objectClose)
|
|
194
|
+
return found;
|
|
195
|
+
index = delimiter + 1;
|
|
196
|
+
}
|
|
197
|
+
return found;
|
|
198
|
+
}
|
|
199
|
+
/** Removes one top-level object property without reformatting its siblings or their comments. */
|
|
200
|
+
function removeObjectProperty(source, objectOpen, propertyName) {
|
|
201
|
+
const property = findObjectPropertyObject(source, objectOpen, propertyName);
|
|
202
|
+
if (!property)
|
|
203
|
+
throw new Error(`Could not locate the ${propertyName} object.`);
|
|
204
|
+
const objectClose = matchingBrace(source, objectOpen);
|
|
205
|
+
const next = skipJsoncTrivia(source, property.valueClose + 1, objectClose);
|
|
206
|
+
if (source[next] === ',') {
|
|
207
|
+
return `${source.slice(0, property.keyStart)}${source.slice(next + 1)}`;
|
|
208
|
+
}
|
|
209
|
+
const previousComma = previousTopLevelComma(source, objectOpen, property.keyStart);
|
|
210
|
+
if (previousComma >= 0) {
|
|
211
|
+
return `${source.slice(0, previousComma)}${source.slice(property.valueClose + 1)}`;
|
|
212
|
+
}
|
|
213
|
+
return `${source.slice(0, property.keyStart)}${source.slice(property.valueClose + 1)}`;
|
|
214
|
+
}
|
|
215
|
+
function rootObjectOpen(source) {
|
|
216
|
+
const open = skipJsoncTrivia(source, 0, source.length);
|
|
217
|
+
if (source[open] !== '{')
|
|
218
|
+
throw new Error('Could not locate the root configuration object.');
|
|
219
|
+
return open;
|
|
220
|
+
}
|
|
221
|
+
function lineIndentAt(source, index) {
|
|
222
|
+
const lineStart = source.lastIndexOf('\n', index - 1) + 1;
|
|
223
|
+
return source.slice(lineStart, index).match(/^[\t ]*/)?.[0] ?? '';
|
|
224
|
+
}
|
|
225
|
+
function jsonStringEnd(source, start) {
|
|
226
|
+
let escaped = false;
|
|
227
|
+
for (let index = start + 1; index < source.length; index += 1) {
|
|
228
|
+
const character = source[index];
|
|
229
|
+
if (escaped)
|
|
230
|
+
escaped = false;
|
|
231
|
+
else if (character === '\\')
|
|
232
|
+
escaped = true;
|
|
233
|
+
else if (character === '"')
|
|
234
|
+
return index;
|
|
235
|
+
}
|
|
236
|
+
throw new Error('Unterminated JSON string.');
|
|
237
|
+
}
|
|
238
|
+
function valueDelimiter(source, start, objectClose) {
|
|
239
|
+
let objectDepth = 0;
|
|
240
|
+
let arrayDepth = 0;
|
|
241
|
+
for (let index = start; index <= objectClose; index += 1) {
|
|
242
|
+
const character = source[index];
|
|
243
|
+
const next = source[index + 1];
|
|
244
|
+
if (character === '"') {
|
|
245
|
+
index = jsonStringEnd(source, index);
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
if (character === '/' && next === '/') {
|
|
249
|
+
index = source.indexOf('\n', index + 2);
|
|
250
|
+
if (index < 0 || index > objectClose)
|
|
251
|
+
return objectClose;
|
|
252
|
+
continue;
|
|
253
|
+
}
|
|
254
|
+
if (character === '/' && next === '*') {
|
|
255
|
+
const end = source.indexOf('*/', index + 2);
|
|
256
|
+
if (end < 0)
|
|
257
|
+
throw new Error('Unterminated JSONC block comment.');
|
|
258
|
+
index = end + 1;
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
261
|
+
if (index === objectClose && objectDepth === 0 && arrayDepth === 0)
|
|
262
|
+
return index;
|
|
263
|
+
if (character === '{')
|
|
264
|
+
objectDepth += 1;
|
|
265
|
+
else if (character === '}')
|
|
266
|
+
objectDepth -= 1;
|
|
267
|
+
else if (character === '[')
|
|
268
|
+
arrayDepth += 1;
|
|
269
|
+
else if (character === ']')
|
|
270
|
+
arrayDepth -= 1;
|
|
271
|
+
else if (character === ',' && objectDepth === 0 && arrayDepth === 0)
|
|
272
|
+
return index;
|
|
273
|
+
}
|
|
274
|
+
throw new Error('Unterminated JSON/JSONC property value.');
|
|
275
|
+
}
|
|
276
|
+
function previousTopLevelComma(source, objectOpen, before) {
|
|
277
|
+
let objectDepth = 0;
|
|
278
|
+
let arrayDepth = 0;
|
|
279
|
+
let comma = -1;
|
|
280
|
+
for (let index = objectOpen + 1; index < before; index += 1) {
|
|
281
|
+
const character = source[index];
|
|
282
|
+
const next = source[index + 1];
|
|
283
|
+
if (character === '"') {
|
|
284
|
+
index = jsonStringEnd(source, index);
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
if (character === '/' && next === '/') {
|
|
288
|
+
const end = source.indexOf('\n', index + 2);
|
|
289
|
+
if (end < 0 || end >= before)
|
|
290
|
+
break;
|
|
291
|
+
index = end;
|
|
292
|
+
continue;
|
|
293
|
+
}
|
|
294
|
+
if (character === '/' && next === '*') {
|
|
295
|
+
const end = source.indexOf('*/', index + 2);
|
|
296
|
+
if (end < 0)
|
|
297
|
+
throw new Error('Unterminated JSONC block comment.');
|
|
298
|
+
index = end + 1;
|
|
299
|
+
continue;
|
|
300
|
+
}
|
|
301
|
+
if (character === '{')
|
|
302
|
+
objectDepth += 1;
|
|
303
|
+
else if (character === '}')
|
|
304
|
+
objectDepth -= 1;
|
|
305
|
+
else if (character === '[')
|
|
306
|
+
arrayDepth += 1;
|
|
307
|
+
else if (character === ']')
|
|
308
|
+
arrayDepth -= 1;
|
|
309
|
+
else if (character === ',' && objectDepth === 0 && arrayDepth === 0)
|
|
310
|
+
comma = index;
|
|
311
|
+
}
|
|
312
|
+
return comma;
|
|
313
|
+
}
|
|
314
|
+
function skipJsoncTrivia(source, start, limit) {
|
|
315
|
+
let index = start;
|
|
316
|
+
while (index < limit) {
|
|
317
|
+
if (/\s/.test(source[index])) {
|
|
318
|
+
index += 1;
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
if (source[index] === '/' && source[index + 1] === '/') {
|
|
322
|
+
const end = source.indexOf('\n', index + 2);
|
|
323
|
+
index = end < 0 ? limit : end + 1;
|
|
324
|
+
continue;
|
|
325
|
+
}
|
|
326
|
+
if (source[index] === '/' && source[index + 1] === '*') {
|
|
327
|
+
const end = source.indexOf('*/', index + 2);
|
|
328
|
+
if (end < 0)
|
|
329
|
+
throw new Error('Unterminated JSONC block comment.');
|
|
330
|
+
index = end + 2;
|
|
331
|
+
continue;
|
|
332
|
+
}
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
335
|
+
return index;
|
|
336
|
+
}
|
|
337
|
+
function stripJsonComments(source) {
|
|
338
|
+
let output = '';
|
|
339
|
+
let quoted = false;
|
|
340
|
+
let escaped = false;
|
|
341
|
+
let lineComment = false;
|
|
342
|
+
let blockComment = false;
|
|
343
|
+
for (let index = 0; index < source.length; index += 1) {
|
|
344
|
+
const character = source[index];
|
|
345
|
+
const next = source[index + 1];
|
|
346
|
+
if (index === 0 && character === '\uFEFF') {
|
|
347
|
+
output += ' ';
|
|
348
|
+
continue;
|
|
349
|
+
}
|
|
350
|
+
if (lineComment) {
|
|
351
|
+
output += character === '\n' ? '\n' : ' ';
|
|
352
|
+
if (character === '\n')
|
|
353
|
+
lineComment = false;
|
|
354
|
+
continue;
|
|
355
|
+
}
|
|
356
|
+
if (blockComment) {
|
|
357
|
+
if (character === '*' && next === '/') {
|
|
358
|
+
output += ' ';
|
|
359
|
+
blockComment = false;
|
|
360
|
+
index += 1;
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
output += character === '\n' ? '\n' : ' ';
|
|
364
|
+
}
|
|
365
|
+
continue;
|
|
366
|
+
}
|
|
367
|
+
if (quoted) {
|
|
368
|
+
output += character;
|
|
369
|
+
if (escaped)
|
|
370
|
+
escaped = false;
|
|
371
|
+
else if (character === '\\')
|
|
372
|
+
escaped = true;
|
|
373
|
+
else if (character === '"')
|
|
374
|
+
quoted = false;
|
|
375
|
+
continue;
|
|
376
|
+
}
|
|
377
|
+
if (character === '"') {
|
|
378
|
+
quoted = true;
|
|
379
|
+
output += character;
|
|
380
|
+
}
|
|
381
|
+
else if (character === '/' && next === '/') {
|
|
382
|
+
output += ' ';
|
|
383
|
+
lineComment = true;
|
|
384
|
+
index += 1;
|
|
385
|
+
}
|
|
386
|
+
else if (character === '/' && next === '*') {
|
|
387
|
+
output += ' ';
|
|
388
|
+
blockComment = true;
|
|
389
|
+
index += 1;
|
|
390
|
+
}
|
|
391
|
+
else {
|
|
392
|
+
output += character;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
if (blockComment)
|
|
396
|
+
throw new Error('Unterminated JSONC block comment.');
|
|
397
|
+
return output;
|
|
398
|
+
}
|
|
399
|
+
function removeTrailingCommas(source) {
|
|
400
|
+
let output = '';
|
|
401
|
+
let quoted = false;
|
|
402
|
+
let escaped = false;
|
|
403
|
+
for (let index = 0; index < source.length; index += 1) {
|
|
404
|
+
const character = source[index];
|
|
405
|
+
if (quoted) {
|
|
406
|
+
output += character;
|
|
407
|
+
if (escaped)
|
|
408
|
+
escaped = false;
|
|
409
|
+
else if (character === '\\')
|
|
410
|
+
escaped = true;
|
|
411
|
+
else if (character === '"')
|
|
412
|
+
quoted = false;
|
|
413
|
+
continue;
|
|
414
|
+
}
|
|
415
|
+
if (character === '"') {
|
|
416
|
+
quoted = true;
|
|
417
|
+
output += character;
|
|
418
|
+
continue;
|
|
419
|
+
}
|
|
420
|
+
if (character === ',') {
|
|
421
|
+
let next = index + 1;
|
|
422
|
+
while (next < source.length && /\s/.test(source[next]))
|
|
423
|
+
next += 1;
|
|
424
|
+
if (source[next] === '}' || source[next] === ']')
|
|
425
|
+
continue;
|
|
426
|
+
}
|
|
427
|
+
output += character;
|
|
428
|
+
}
|
|
429
|
+
return output;
|
|
430
|
+
}
|
|
115
431
|
function matchingBrace(source, open) {
|
|
116
432
|
let depth = 0;
|
|
117
433
|
let quote = false;
|
|
118
434
|
let escaped = false;
|
|
435
|
+
let lineComment = false;
|
|
436
|
+
let blockComment = false;
|
|
119
437
|
for (let index = open; index < source.length; index += 1) {
|
|
120
438
|
const character = source[index];
|
|
439
|
+
const next = source[index + 1];
|
|
440
|
+
if (lineComment) {
|
|
441
|
+
if (character === '\n')
|
|
442
|
+
lineComment = false;
|
|
443
|
+
continue;
|
|
444
|
+
}
|
|
445
|
+
if (blockComment) {
|
|
446
|
+
if (character === '*' && next === '/') {
|
|
447
|
+
blockComment = false;
|
|
448
|
+
index += 1;
|
|
449
|
+
}
|
|
450
|
+
continue;
|
|
451
|
+
}
|
|
121
452
|
if (quote) {
|
|
122
453
|
if (escaped)
|
|
123
454
|
escaped = false;
|
|
@@ -127,6 +458,16 @@ function matchingBrace(source, open) {
|
|
|
127
458
|
quote = false;
|
|
128
459
|
continue;
|
|
129
460
|
}
|
|
461
|
+
if (character === '/' && next === '/') {
|
|
462
|
+
lineComment = true;
|
|
463
|
+
index += 1;
|
|
464
|
+
continue;
|
|
465
|
+
}
|
|
466
|
+
if (character === '/' && next === '*') {
|
|
467
|
+
blockComment = true;
|
|
468
|
+
index += 1;
|
|
469
|
+
continue;
|
|
470
|
+
}
|
|
130
471
|
if (character === '"')
|
|
131
472
|
quote = true;
|
|
132
473
|
else if (character === '{')
|
|
@@ -134,6 +475,6 @@ function matchingBrace(source, open) {
|
|
|
134
475
|
else if (character === '}' && --depth === 0)
|
|
135
476
|
return index;
|
|
136
477
|
}
|
|
137
|
-
throw new Error('Unterminated
|
|
478
|
+
throw new Error('Unterminated JSON object.');
|
|
138
479
|
}
|
|
139
480
|
//# sourceMappingURL=managed.js.map
|
package/dist/lib/managed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed.js","sourceRoot":"","sources":["../../src/lib/managed.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"managed.js","sourceRoot":"","sources":["../../src/lib/managed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAiB,MAAM,aAAa,CAAC;AAE/I,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,MAA2B;IACvE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,IAAY,EAAE,MAA2B;IACvF,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC3G,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC5H,MAAM,IAAI,KAAK,CAAC,kEAAkE,KAAK,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7G,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAA4B,EAAE,KAAa;IAC7E,MAAM,OAAO,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC/B,+BAA+B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QACzC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,aAAa,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IACpH,CAAC;IACD,OAAO,GAAG,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAA4B;IAC9D,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,+BAA+B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,WAAW,CAAC,YAAY,CAAC,aAAa,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACvJ,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAA4B,EAAE,MAAgB;IAC5E,MAAM,OAAO,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC/B,+BAA+B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;QACrC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,iBAAiB,CAAC,aAAa,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9H,CAAC;IACD,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC,CAAC;IAC5H,CAAC;IACD,OAAO,GAAG,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAA4B;IAC1D,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,+BAA+B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,WAAW,CAAC,iBAAiB,CAAC,aAAa,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjK,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,QAA4B,EAC5B,MAAgB,EAChB,UAAoC,YAAY;IAEhD,MAAM,MAAM,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,OAAO,YAAY,CAAC;IAC1E,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACzG,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,qBAAqB,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS;QACrC,CAAC,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;QACjD,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,UAAU,CAAC,CAAC;IACpG,MAAM,aAAa,GAAI,OAA+C,EAAE,KAAK,CAAC;IAC9E,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,SAAS;YAAE,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9E,OAAO,QAAQ,IAAI,MAAM,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/F,OAAO,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,QAA4B,EAC5B,UAAoC,YAAY;IAEhD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;QAAE,OAAO,QAAQ,CAAC;IACzG,MAAM,OAAO,GAAG,EAAE,GAAI,aAAyC,EAAE,CAAC;IAClE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACpH,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC;IACrB,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1F,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,UAAU,CAAC,CAAC;IAC3E,OAAO,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAY,CAAC;QACtF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,MAAiC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,OAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC/E,aAAa,CAAC,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAChD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAa,EAAE,KAAc;IAClD,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAChC,IACE,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAChE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,MAAM,UAAU,GAAG,IAA+B,CAAC;IACnD,MAAM,WAAW,GAAG,KAAgC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,OAAO,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;QACzC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjH,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,qFAAqF;AACrF,SAAS,gBAAgB,CAAC,MAAc,EAAE,MAA+B,EAAE,OAAe;IACxF,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjE,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,UAAU,CAAC,CAAC;IAC1E,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,GAAG,UAAU,IAAI,CAAC;IACtC,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,WAAW,EAAE,CAAC,EAAE,CAAC;IAClG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,WAAW,GAAG,QAAQ,KAAK,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IACzH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7E,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,KAAK,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1F,CAAC;AAED,sGAAsG;AACtG,SAAS,iBAAiB,CACxB,MAAc,EACd,OAAe,EACf,KAA8B;IAE9B,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,UAAU,GAAG,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG;QAClE,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,IAAI;QAC1C,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,WAAW,EAAE,CAAC,EAAE,CAAC;IACtG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,WAAW,GAAG,QAAQ,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3F,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7E,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,KAAK,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1F,CAAC;AAQD,oGAAoG;AACpG,SAAS,wBAAwB,CAC/B,MAAc,EACd,UAAkB,EAClB,YAAoB;IAEpB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtD,IAAI,KAAiC,CAAC;IACtC,IAAI,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;IAC3B,OAAO,KAAK,GAAG,WAAW,EAAE,CAAC;QAC3B,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,KAAK,IAAI,WAAW;YAAE,OAAO,KAAK,CAAC;QACvC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,CAAW,CAAC;QACrE,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;QAClE,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACzB,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,qBAAqB,CAAC,CAAC;YACrF,IAAI,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,oEAAoE,CAAC,CAAC;YAC1H,KAAK,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;QAChF,CAAC;QACD,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACjE,IAAI,SAAS,IAAI,WAAW;YAAE,OAAO,KAAK,CAAC;QAC3C,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iGAAiG;AACjG,SAAS,oBAAoB,CAAC,MAAc,EAAE,UAAkB,EAAE,YAAoB;IACpF,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,YAAY,UAAU,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACzB,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;IAC1E,CAAC;IACD,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnF,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC;IACrF,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC;AACzF,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC7F,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,KAAa;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,KAAa;IAClD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QACjC,IAAI,OAAO;YAAE,OAAO,GAAG,KAAK,CAAC;aACxB,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,GAAG,IAAI,CAAC;aACvC,IAAI,SAAS,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;IAC3C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,KAAa,EAAE,WAAmB;IACxE,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACrC,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACxC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,WAAW;gBAAE,OAAO,WAAW,CAAC;YACzD,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,GAAG,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAClE,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,WAAW,IAAI,WAAW,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACjF,IAAI,SAAS,KAAK,GAAG;YAAE,WAAW,IAAI,CAAC,CAAC;aACnC,IAAI,SAAS,KAAK,GAAG;YAAE,WAAW,IAAI,CAAC,CAAC;aACxC,IAAI,SAAS,KAAK,GAAG;YAAE,UAAU,IAAI,CAAC,CAAC;aACvC,IAAI,SAAS,KAAK,GAAG;YAAE,UAAU,IAAI,CAAC,CAAC;aACvC,IAAI,SAAS,KAAK,GAAG,IAAI,WAAW,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IACpF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc,EAAE,UAAkB,EAAE,MAAc;IAC/E,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,KAAK,IAAI,KAAK,GAAG,UAAU,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACrC,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,MAAM;gBAAE,MAAM;YACpC,KAAK,GAAG,GAAG,CAAC;YACZ,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,GAAG,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAClE,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG;YAAE,WAAW,IAAI,CAAC,CAAC;aACnC,IAAI,SAAS,KAAK,GAAG;YAAE,WAAW,IAAI,CAAC,CAAC;aACxC,IAAI,SAAS,KAAK,GAAG;YAAE,UAAU,IAAI,CAAC,CAAC;aACvC,IAAI,SAAS,KAAK,GAAG;YAAE,UAAU,IAAI,CAAC,CAAC;aACvC,IAAI,SAAS,KAAK,GAAG,IAAI,WAAW,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;YAAE,KAAK,GAAG,KAAK,CAAC;IACrF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,KAAa,EAAE,KAAa;IACnE,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO,KAAK,GAAG,KAAK,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACvD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5C,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACvD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,GAAG,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAClE,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QACD,MAAM;IACR,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc;IACvC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1C,IAAI,SAAS,KAAK,IAAI;gBAAE,WAAW,GAAG,KAAK,CAAC;YAC5C,SAAS;QACX,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACtC,MAAM,IAAI,IAAI,CAAC;gBACf,YAAY,GAAG,KAAK,CAAC;gBACrB,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5C,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,SAAS,CAAC;YACpB,IAAI,OAAO;gBAAE,OAAO,GAAG,KAAK,CAAC;iBACxB,IAAI,SAAS,KAAK,IAAI;gBAAE,OAAO,GAAG,IAAI,CAAC;iBACvC,IAAI,SAAS,KAAK,GAAG;gBAAE,MAAM,GAAG,KAAK,CAAC;YAC3C,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,GAAG,IAAI,CAAC;YACd,MAAM,IAAI,SAAS,CAAC;QACtB,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC7C,MAAM,IAAI,IAAI,CAAC;YACf,WAAW,GAAG,IAAI,CAAC;YACnB,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC7C,MAAM,IAAI,IAAI,CAAC;YACf,YAAY,GAAG,IAAI,CAAC;YACpB,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,SAAS,CAAC;QACtB,CAAC;IACH,CAAC;IACD,IAAI,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc;IAC1C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QACjC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,SAAS,CAAC;YACpB,IAAI,OAAO;gBAAE,OAAO,GAAG,KAAK,CAAC;iBACxB,IAAI,SAAS,KAAK,IAAI;gBAAE,OAAO,GAAG,IAAI,CAAC;iBACvC,IAAI,SAAS,KAAK,GAAG;gBAAE,MAAM,GAAG,KAAK,CAAC;YAC3C,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,GAAG,IAAI,CAAC;YACd,MAAM,IAAI,SAAS,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,IAAI,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;YACrB,OAAO,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;gBAAE,IAAI,IAAI,CAAC,CAAC;YACnE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG;gBAAE,SAAS;QAC7D,CAAC;QACD,MAAM,IAAI,SAAS,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,IAAY;IACjD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,IAAI,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,SAAS,KAAK,IAAI;gBAAE,WAAW,GAAG,KAAK,CAAC;YAC5C,SAAS;QACX,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACtC,YAAY,GAAG,KAAK,CAAC;gBACrB,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,OAAO;gBAAE,OAAO,GAAG,KAAK,CAAC;iBACxB,IAAI,SAAS,KAAK,IAAI;gBAAE,OAAO,GAAG,IAAI,CAAC;iBACvC,IAAI,SAAS,KAAK,GAAG;gBAAE,KAAK,GAAG,KAAK,CAAC;YAC1C,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtC,WAAW,GAAG,IAAI,CAAC;YACnB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtC,YAAY,GAAG,IAAI,CAAC;YACpB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;aAC/B,IAAI,SAAS,KAAK,GAAG;YAAE,KAAK,IAAI,CAAC,CAAC;aAClC,IAAI,SAAS,KAAK,GAAG,IAAI,EAAE,KAAK,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IAC5D,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/** Emit stub — replaced by bundled agent-config.js after `tsc`. */
|
|
2
2
|
export type McpClientProfileId = 'claude-code' | 'cursor' | 'codex' | 'vscode' | 'generic';
|
|
3
3
|
export declare const BRAIN_MCP_ENDPOINT = "https://mcp.brainmcp.ai/mcp";
|
|
4
|
+
export declare const BRAINMCP_GLOBAL_CLIENTS: readonly ["claude-code", "cursor", "codex", "vscode"];
|
|
4
5
|
export declare const GUIDANCE_VERSION = "2026.07.10";
|
|
6
|
+
export declare const VSCODE_USER_INSTRUCTIONS_FRONTMATTER = "";
|
|
5
7
|
export declare const MCP_CLIENT_PROFILES: Record<McpClientProfileId, {
|
|
6
8
|
id: McpClientProfileId;
|
|
7
9
|
label: string;
|
|
@@ -26,6 +28,14 @@ export declare function buildClaudeCodeMcpAddCommand(): string;
|
|
|
26
28
|
export declare function buildBrainmcpInitCommand(_options?: {
|
|
27
29
|
workspaceId?: string;
|
|
28
30
|
client?: McpClientProfileId;
|
|
31
|
+
all?: boolean;
|
|
32
|
+
scope?: 'project' | 'user';
|
|
33
|
+
invoke?: 'npx' | 'global';
|
|
34
|
+
yes?: boolean;
|
|
35
|
+
}): string;
|
|
36
|
+
export declare function buildBrainmcpGlobalInstallCommand(): string;
|
|
37
|
+
export declare function buildBrainmcpUserScopeSetupScript(_options?: {
|
|
38
|
+
workspaceId?: string;
|
|
29
39
|
}): string;
|
|
30
40
|
export declare function buildAgentSkillMarkdown(_options?: {
|
|
31
41
|
workspaceId?: string;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
export const BRAIN_MCP_ENDPOINT = 'https://mcp.brainmcp.ai/mcp';
|
|
2
|
+
export const BRAINMCP_GLOBAL_CLIENTS = [
|
|
3
|
+
'claude-code',
|
|
4
|
+
'cursor',
|
|
5
|
+
'codex',
|
|
6
|
+
'vscode',
|
|
7
|
+
];
|
|
2
8
|
export const GUIDANCE_VERSION = '2026.07.10';
|
|
9
|
+
export const VSCODE_USER_INSTRUCTIONS_FRONTMATTER = '';
|
|
3
10
|
export const MCP_CLIENT_PROFILES = {};
|
|
4
11
|
export function buildProjectInstructionBlock(_options) {
|
|
5
12
|
return '';
|
|
@@ -16,6 +23,12 @@ export function buildClaudeCodeMcpAddCommand() {
|
|
|
16
23
|
export function buildBrainmcpInitCommand(_options) {
|
|
17
24
|
return '';
|
|
18
25
|
}
|
|
26
|
+
export function buildBrainmcpGlobalInstallCommand() {
|
|
27
|
+
return '';
|
|
28
|
+
}
|
|
29
|
+
export function buildBrainmcpUserScopeSetupScript(_options) {
|
|
30
|
+
return '';
|
|
31
|
+
}
|
|
19
32
|
export function buildAgentSkillMarkdown(_options) {
|
|
20
33
|
return '';
|
|
21
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-config-stub.js","sourceRoot":"","sources":["../../src/types/agent-config-stub.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAChE,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAWlC,CAAC;AAEF,MAAM,UAAU,4BAA4B,CAAC,QAG5C;IACC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAA0D;IACxF,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAqC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,
|
|
1
|
+
{"version":3,"file":"agent-config-stub.js","sourceRoot":"","sources":["../../src/types/agent-config-stub.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAChE,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,aAAa;IACb,QAAQ;IACR,OAAO;IACP,QAAQ;CACwC,CAAC;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAWlC,CAAC;AAEF,MAAM,UAAU,4BAA4B,CAAC,QAG5C;IACC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAA0D;IACxF,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAqC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAOxC;IACC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,iCAAiC;IAC/C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,QAAmC;IACnF,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAAmC;IACzE,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brainmcp/brainmcp",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Safely configure BrainMCP
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Safely configure BrainMCP guidance and MCP connections across agent projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"brainmcp": "
|
|
7
|
+
"brainmcp": "dist/index.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"dist"
|