codebase-analyzer-mcp 1.0.3 → 2.0.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/.claude-plugin/marketplace.json +6 -3
- package/.claude-plugin/plugin.json +2 -3
- package/CLAUDE.md +14 -0
- package/dist/cli/index.js +20 -20
- package/dist/mcp/server.js +24 -24
- package/package.json +1 -1
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Multi-layer codebase analysis tools",
|
|
9
|
-
"version": "
|
|
9
|
+
"version": "2.0.2"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "codebase-analyzer",
|
|
14
14
|
"description": "Multi-layer codebase analysis with Gemini AI. 4 agents, 5 commands, 3 skills for architecture analysis, pattern detection, and dataflow tracing.",
|
|
15
|
-
"version": "
|
|
15
|
+
"version": "2.0.2",
|
|
16
16
|
"author": {
|
|
17
17
|
"name": "Jake Correa",
|
|
18
18
|
"url": "https://github.com/jaykaycodes"
|
|
@@ -25,7 +25,10 @@
|
|
|
25
25
|
"gemini",
|
|
26
26
|
"mcp"
|
|
27
27
|
],
|
|
28
|
-
"source":
|
|
28
|
+
"source": {
|
|
29
|
+
"source": "github",
|
|
30
|
+
"repo": "jaykaycodes/codebase-analyzer-mcp"
|
|
31
|
+
}
|
|
29
32
|
}
|
|
30
33
|
]
|
|
31
34
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codebase-analyzer",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Multi-layer codebase analysis with Gemini AI. 4 agents, 5 commands, 3 skills for architecture analysis, pattern detection, and dataflow tracing.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Jake Correa",
|
|
@@ -22,8 +22,7 @@
|
|
|
22
22
|
"command": "node",
|
|
23
23
|
"args": [
|
|
24
24
|
"dist/mcp/server.js"
|
|
25
|
-
]
|
|
26
|
-
"cwd": "."
|
|
25
|
+
]
|
|
27
26
|
}
|
|
28
27
|
}
|
|
29
28
|
}
|
package/CLAUDE.md
CHANGED
|
@@ -127,6 +127,20 @@ See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for system design.
|
|
|
127
127
|
GEMINI_API_KEY=... # Required for semantic analysis
|
|
128
128
|
```
|
|
129
129
|
|
|
130
|
+
## Releasing
|
|
131
|
+
|
|
132
|
+
Uses npm trusted publishing (OIDC) - no NPM_TOKEN secret needed.
|
|
133
|
+
|
|
134
|
+
1. Bump version: `npm version patch` (or minor/major)
|
|
135
|
+
2. Sync version to plugin.json: `bun run version:sync`
|
|
136
|
+
3. Push with tags: `git push && git push --tags`
|
|
137
|
+
|
|
138
|
+
CI automatically publishes to npm when version changes on main.
|
|
139
|
+
|
|
140
|
+
**Trusted publisher config:** npm package must be linked to `jaykaycodes/codebase-analyzer-mcp` in npm settings (Settings → Publishing access → Add GitHub Actions as publisher).
|
|
141
|
+
|
|
142
|
+
**Requirements:** npm >= 11.5.1 (CI updates npm automatically). See [npm trusted publishing docs](https://docs.npmjs.com/trusted-publishers/).
|
|
143
|
+
|
|
130
144
|
## Key Learnings
|
|
131
145
|
|
|
132
146
|
_This section captures learnings as we work on this repository._
|
package/dist/cli/index.js
CHANGED
|
@@ -8351,13 +8351,13 @@ var require_extend = __commonJS((exports, module) => {
|
|
|
8351
8351
|
var toStr = Object.prototype.toString;
|
|
8352
8352
|
var defineProperty = Object.defineProperty;
|
|
8353
8353
|
var gOPD = Object.getOwnPropertyDescriptor;
|
|
8354
|
-
var isArray = function
|
|
8354
|
+
var isArray = function isArray2(arr) {
|
|
8355
8355
|
if (typeof Array.isArray === "function") {
|
|
8356
8356
|
return Array.isArray(arr);
|
|
8357
8357
|
}
|
|
8358
8358
|
return toStr.call(arr) === "[object Array]";
|
|
8359
8359
|
};
|
|
8360
|
-
var isPlainObject = function
|
|
8360
|
+
var isPlainObject = function isPlainObject2(obj) {
|
|
8361
8361
|
if (!obj || toStr.call(obj) !== "[object Object]") {
|
|
8362
8362
|
return false;
|
|
8363
8363
|
}
|
|
@@ -8370,7 +8370,7 @@ var require_extend = __commonJS((exports, module) => {
|
|
|
8370
8370
|
for (key in obj) {}
|
|
8371
8371
|
return typeof key === "undefined" || hasOwn.call(obj, key);
|
|
8372
8372
|
};
|
|
8373
|
-
var setProperty = function
|
|
8373
|
+
var setProperty = function setProperty2(target, options) {
|
|
8374
8374
|
if (defineProperty && options.name === "__proto__") {
|
|
8375
8375
|
defineProperty(target, options.name, {
|
|
8376
8376
|
enumerable: true,
|
|
@@ -8382,7 +8382,7 @@ var require_extend = __commonJS((exports, module) => {
|
|
|
8382
8382
|
target[options.name] = options.newValue;
|
|
8383
8383
|
}
|
|
8384
8384
|
};
|
|
8385
|
-
var getProperty = function
|
|
8385
|
+
var getProperty = function getProperty2(obj, name) {
|
|
8386
8386
|
if (name === "__proto__") {
|
|
8387
8387
|
if (!hasOwn.call(obj, name)) {
|
|
8388
8388
|
return;
|
|
@@ -12385,7 +12385,7 @@ var require_ponyfill_es2018 = __commonJS((exports, module) => {
|
|
|
12385
12385
|
return isDOMExceptionConstructor(ctor) ? ctor : undefined;
|
|
12386
12386
|
}
|
|
12387
12387
|
function createPolyfill() {
|
|
12388
|
-
const ctor = function
|
|
12388
|
+
const ctor = function DOMException3(message, name) {
|
|
12389
12389
|
this.message = message || "";
|
|
12390
12390
|
this.name = name || "Error";
|
|
12391
12391
|
if (Error.captureStackTrace) {
|
|
@@ -20722,12 +20722,12 @@ var require_jwa = __commonJS((exports, module) => {
|
|
|
20722
20722
|
};
|
|
20723
20723
|
}
|
|
20724
20724
|
var bufferEqual;
|
|
20725
|
-
var timingSafeEqual = "timingSafeEqual" in crypto2 ? function
|
|
20725
|
+
var timingSafeEqual = "timingSafeEqual" in crypto2 ? function timingSafeEqual2(a, b) {
|
|
20726
20726
|
if (a.byteLength !== b.byteLength) {
|
|
20727
20727
|
return false;
|
|
20728
20728
|
}
|
|
20729
20729
|
return crypto2.timingSafeEqual(a, b);
|
|
20730
|
-
} : function
|
|
20730
|
+
} : function timingSafeEqual2(a, b) {
|
|
20731
20731
|
if (!bufferEqual) {
|
|
20732
20732
|
bufferEqual = require_buffer_equal_constant_time();
|
|
20733
20733
|
}
|
|
@@ -21081,7 +21081,7 @@ var require_src5 = __commonJS((exports) => {
|
|
|
21081
21081
|
function _interopRequireWildcard(e2, t2) {
|
|
21082
21082
|
if (typeof WeakMap == "function")
|
|
21083
21083
|
var r2 = new WeakMap, n = new WeakMap;
|
|
21084
|
-
return (_interopRequireWildcard = function
|
|
21084
|
+
return (_interopRequireWildcard = function _interopRequireWildcard2(e3, t3) {
|
|
21085
21085
|
if (!t3 && e3 && e3.__esModule)
|
|
21086
21086
|
return e3;
|
|
21087
21087
|
var o, i2, f3 = { __proto__: null, default: e3 };
|
|
@@ -21161,7 +21161,7 @@ var require_src5 = __commonJS((exports) => {
|
|
|
21161
21161
|
}
|
|
21162
21162
|
function _wrapNativeSuper(t2) {
|
|
21163
21163
|
var r2 = typeof Map == "function" ? new Map : undefined;
|
|
21164
|
-
return _wrapNativeSuper = function
|
|
21164
|
+
return _wrapNativeSuper = function _wrapNativeSuper2(t3) {
|
|
21165
21165
|
if (t3 === null || !_isNativeFunction(t3))
|
|
21166
21166
|
return t3;
|
|
21167
21167
|
if (typeof t3 != "function")
|
|
@@ -21189,7 +21189,7 @@ var require_src5 = __commonJS((exports) => {
|
|
|
21189
21189
|
try {
|
|
21190
21190
|
var t2 = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
21191
21191
|
} catch (t3) {}
|
|
21192
|
-
return (_isNativeReflectConstruct = function
|
|
21192
|
+
return (_isNativeReflectConstruct = function _isNativeReflectConstruct2() {
|
|
21193
21193
|
return !!t2;
|
|
21194
21194
|
})();
|
|
21195
21195
|
}
|
|
@@ -21235,7 +21235,7 @@ var require_src5 = __commonJS((exports) => {
|
|
|
21235
21235
|
function i2(r3, n2, o2, i3) {
|
|
21236
21236
|
var c2 = n2 && n2.prototype instanceof Generator ? n2 : Generator, u2 = Object.create(c2.prototype);
|
|
21237
21237
|
return _regeneratorDefine2(u2, "_invoke", function(r4, n3, o3) {
|
|
21238
|
-
var i4, c3, u3, f4 = 0, p = o3 || [], y = false, G = { p: 0, n: 0, v: e2, a: d, f: d.bind(e2, 4), d: function
|
|
21238
|
+
var i4, c3, u3, f4 = 0, p = o3 || [], y = false, G = { p: 0, n: 0, v: e2, a: d, f: d.bind(e2, 4), d: function d2(t3, r5) {
|
|
21239
21239
|
return i4 = t3, c3 = 0, u3 = e2, G.n = r5, a;
|
|
21240
21240
|
} };
|
|
21241
21241
|
function d(r5, n4) {
|
|
@@ -21290,7 +21290,7 @@ var require_src5 = __commonJS((exports) => {
|
|
|
21290
21290
|
return this;
|
|
21291
21291
|
}), _regeneratorDefine2(u, "toString", function() {
|
|
21292
21292
|
return "[object Generator]";
|
|
21293
|
-
}), (_regenerator = function
|
|
21293
|
+
}), (_regenerator = function _regenerator2() {
|
|
21294
21294
|
return { w: i2, m: f3 };
|
|
21295
21295
|
})();
|
|
21296
21296
|
}
|
|
@@ -21305,7 +21305,7 @@ var require_src5 = __commonJS((exports) => {
|
|
|
21305
21305
|
if (r3)
|
|
21306
21306
|
i2 ? i2(e3, r3, { value: n2, enumerable: !t3, configurable: !t3, writable: !t3 }) : e3[r3] = n2;
|
|
21307
21307
|
else {
|
|
21308
|
-
var o = function
|
|
21308
|
+
var o = function o2(r4, n3) {
|
|
21309
21309
|
_regeneratorDefine2(e3, r4, function(e4) {
|
|
21310
21310
|
return this._invoke(r4, n3, e4);
|
|
21311
21311
|
});
|
|
@@ -39254,12 +39254,12 @@ var import_google_auth_library, _defaultBaseGeminiUrl = undefined, _defaultBaseV
|
|
|
39254
39254
|
const isOldNode = typeof ((_a = process2 === null || process2 === undefined ? undefined : process2.versions) === null || _a === undefined ? undefined : _a.node) === "string" && parseInt(process2.versions.node.split(".")) < 20;
|
|
39255
39255
|
throw new Error("`File` is not defined as a global, which is required for file uploads." + (isOldNode ? " Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`." : ""));
|
|
39256
39256
|
}
|
|
39257
|
-
}, isAsyncIterable = (value) => value != null && typeof value === "object" && typeof value[Symbol.asyncIterator] === "function", isBlobLike = (value) => value != null && typeof value === "object" && typeof value.size === "number" && typeof value.type === "string" && typeof value.text === "function" && typeof value.slice === "function" && typeof value.arrayBuffer === "function", isFileLike = (value) => value != null && typeof value === "object" && typeof value.name === "string" && typeof value.lastModified === "number" && isBlobLike(value), isResponseLike = (value) => value != null && typeof value === "object" && typeof value.url === "string" && typeof value.blob === "function", EMPTY, createPathTagFunction = (pathEncoder = encodeURIPath) => function
|
|
39257
|
+
}, isAsyncIterable = (value) => value != null && typeof value === "object" && typeof value[Symbol.asyncIterator] === "function", isBlobLike = (value) => value != null && typeof value === "object" && typeof value.size === "number" && typeof value.type === "string" && typeof value.text === "function" && typeof value.slice === "function" && typeof value.arrayBuffer === "function", isFileLike = (value) => value != null && typeof value === "object" && typeof value.name === "string" && typeof value.lastModified === "number" && isBlobLike(value), isResponseLike = (value) => value != null && typeof value === "object" && typeof value.url === "string" && typeof value.blob === "function", EMPTY, createPathTagFunction = (pathEncoder = encodeURIPath) => function path2(statics, ...params) {
|
|
39258
39258
|
if (statics.length === 1)
|
|
39259
39259
|
return statics[0];
|
|
39260
39260
|
let postPath = false;
|
|
39261
39261
|
const invalidSegments = [];
|
|
39262
|
-
const
|
|
39262
|
+
const path3 = statics.reduce((previousValue, currentValue, index) => {
|
|
39263
39263
|
var _a, _b, _c;
|
|
39264
39264
|
if (/[?#]/.test(currentValue)) {
|
|
39265
39265
|
postPath = true;
|
|
@@ -39276,7 +39276,7 @@ var import_google_auth_library, _defaultBaseGeminiUrl = undefined, _defaultBaseV
|
|
|
39276
39276
|
}
|
|
39277
39277
|
return previousValue + currentValue + (index === params.length ? "" : encoded);
|
|
39278
39278
|
}, "");
|
|
39279
|
-
const pathOnly =
|
|
39279
|
+
const pathOnly = path3.split(/[?#]/, 1)[0];
|
|
39280
39280
|
const invalidSegmentPattern = /(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;
|
|
39281
39281
|
let match2;
|
|
39282
39282
|
while ((match2 = invalidSegmentPattern.exec(pathOnly)) !== null) {
|
|
@@ -39298,10 +39298,10 @@ var import_google_auth_library, _defaultBaseGeminiUrl = undefined, _defaultBaseV
|
|
|
39298
39298
|
throw new GeminiNextGenAPIClientError(`Path parameters result in path with invalid segments:
|
|
39299
39299
|
${invalidSegments.map((e2) => e2.error).join(`
|
|
39300
39300
|
`)}
|
|
39301
|
-
${
|
|
39301
|
+
${path3}
|
|
39302
39302
|
${underline}`);
|
|
39303
39303
|
}
|
|
39304
|
-
return
|
|
39304
|
+
return path3;
|
|
39305
39305
|
}, path2, BaseInteractions, Interactions, encodeUTF8_, decodeUTF8_, levelNumbers, parseLogLevel = (maybeLevel, sourceName, client) => {
|
|
39306
39306
|
if (!maybeLevel) {
|
|
39307
39307
|
return;
|
|
@@ -44076,7 +44076,7 @@ var package_default;
|
|
|
44076
44076
|
var init_package = __esm(() => {
|
|
44077
44077
|
package_default = {
|
|
44078
44078
|
name: "codebase-analyzer-mcp",
|
|
44079
|
-
version: "
|
|
44079
|
+
version: "2.0.2",
|
|
44080
44080
|
description: "Multi-layer codebase analysis with Gemini AI. MCP server + Claude plugin with progressive disclosure.",
|
|
44081
44081
|
type: "module",
|
|
44082
44082
|
main: "dist/mcp/server.js",
|
|
@@ -71740,7 +71740,7 @@ var require_formats = __commonJS((exports) => {
|
|
|
71740
71740
|
}
|
|
71741
71741
|
var TIME = /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;
|
|
71742
71742
|
function getTime(strictTimeZone) {
|
|
71743
|
-
return function
|
|
71743
|
+
return function time3(str) {
|
|
71744
71744
|
const matches = TIME.exec(str);
|
|
71745
71745
|
if (!matches)
|
|
71746
71746
|
return false;
|
package/dist/mcp/server.js
CHANGED
|
@@ -6278,7 +6278,7 @@ var require_formats = __commonJS((exports) => {
|
|
|
6278
6278
|
}
|
|
6279
6279
|
var TIME = /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;
|
|
6280
6280
|
function getTime(strictTimeZone) {
|
|
6281
|
-
return function
|
|
6281
|
+
return function time3(str) {
|
|
6282
6282
|
const matches = TIME.exec(str);
|
|
6283
6283
|
if (!matches)
|
|
6284
6284
|
return false;
|
|
@@ -12030,13 +12030,13 @@ var require_extend = __commonJS((exports, module) => {
|
|
|
12030
12030
|
var toStr = Object.prototype.toString;
|
|
12031
12031
|
var defineProperty = Object.defineProperty;
|
|
12032
12032
|
var gOPD = Object.getOwnPropertyDescriptor;
|
|
12033
|
-
var isArray = function
|
|
12033
|
+
var isArray = function isArray2(arr) {
|
|
12034
12034
|
if (typeof Array.isArray === "function") {
|
|
12035
12035
|
return Array.isArray(arr);
|
|
12036
12036
|
}
|
|
12037
12037
|
return toStr.call(arr) === "[object Array]";
|
|
12038
12038
|
};
|
|
12039
|
-
var isPlainObject3 = function
|
|
12039
|
+
var isPlainObject3 = function isPlainObject4(obj) {
|
|
12040
12040
|
if (!obj || toStr.call(obj) !== "[object Object]") {
|
|
12041
12041
|
return false;
|
|
12042
12042
|
}
|
|
@@ -12049,7 +12049,7 @@ var require_extend = __commonJS((exports, module) => {
|
|
|
12049
12049
|
for (key in obj) {}
|
|
12050
12050
|
return typeof key === "undefined" || hasOwn.call(obj, key);
|
|
12051
12051
|
};
|
|
12052
|
-
var setProperty = function
|
|
12052
|
+
var setProperty = function setProperty2(target, options) {
|
|
12053
12053
|
if (defineProperty && options.name === "__proto__") {
|
|
12054
12054
|
defineProperty(target, options.name, {
|
|
12055
12055
|
enumerable: true,
|
|
@@ -12061,7 +12061,7 @@ var require_extend = __commonJS((exports, module) => {
|
|
|
12061
12061
|
target[options.name] = options.newValue;
|
|
12062
12062
|
}
|
|
12063
12063
|
};
|
|
12064
|
-
var getProperty = function
|
|
12064
|
+
var getProperty = function getProperty2(obj, name) {
|
|
12065
12065
|
if (name === "__proto__") {
|
|
12066
12066
|
if (!hasOwn.call(obj, name)) {
|
|
12067
12067
|
return;
|
|
@@ -12071,7 +12071,7 @@ var require_extend = __commonJS((exports, module) => {
|
|
|
12071
12071
|
}
|
|
12072
12072
|
return obj[name];
|
|
12073
12073
|
};
|
|
12074
|
-
module.exports = function
|
|
12074
|
+
module.exports = function extend2() {
|
|
12075
12075
|
var options, name, src, copy, copyIsArray, clone2;
|
|
12076
12076
|
var target = arguments[0];
|
|
12077
12077
|
var i = 1;
|
|
@@ -12099,7 +12099,7 @@ var require_extend = __commonJS((exports, module) => {
|
|
|
12099
12099
|
} else {
|
|
12100
12100
|
clone2 = src && isPlainObject3(src) ? src : {};
|
|
12101
12101
|
}
|
|
12102
|
-
setProperty(target, { name, newValue:
|
|
12102
|
+
setProperty(target, { name, newValue: extend2(deep, clone2, copy) });
|
|
12103
12103
|
} else if (typeof copy !== "undefined") {
|
|
12104
12104
|
setProperty(target, { name, newValue: copy });
|
|
12105
12105
|
}
|
|
@@ -16064,7 +16064,7 @@ var require_ponyfill_es2018 = __commonJS((exports, module) => {
|
|
|
16064
16064
|
return isDOMExceptionConstructor(ctor) ? ctor : undefined;
|
|
16065
16065
|
}
|
|
16066
16066
|
function createPolyfill() {
|
|
16067
|
-
const ctor = function
|
|
16067
|
+
const ctor = function DOMException3(message, name) {
|
|
16068
16068
|
this.message = message || "";
|
|
16069
16069
|
this.name = name || "Error";
|
|
16070
16070
|
if (Error.captureStackTrace) {
|
|
@@ -24401,12 +24401,12 @@ var require_jwa = __commonJS((exports, module) => {
|
|
|
24401
24401
|
};
|
|
24402
24402
|
}
|
|
24403
24403
|
var bufferEqual;
|
|
24404
|
-
var timingSafeEqual = "timingSafeEqual" in crypto2 ? function
|
|
24404
|
+
var timingSafeEqual = "timingSafeEqual" in crypto2 ? function timingSafeEqual2(a, b) {
|
|
24405
24405
|
if (a.byteLength !== b.byteLength) {
|
|
24406
24406
|
return false;
|
|
24407
24407
|
}
|
|
24408
24408
|
return crypto2.timingSafeEqual(a, b);
|
|
24409
|
-
} : function
|
|
24409
|
+
} : function timingSafeEqual2(a, b) {
|
|
24410
24410
|
if (!bufferEqual) {
|
|
24411
24411
|
bufferEqual = require_buffer_equal_constant_time();
|
|
24412
24412
|
}
|
|
@@ -24760,7 +24760,7 @@ var require_src5 = __commonJS((exports) => {
|
|
|
24760
24760
|
function _interopRequireWildcard(e2, t2) {
|
|
24761
24761
|
if (typeof WeakMap == "function")
|
|
24762
24762
|
var r2 = new WeakMap, n = new WeakMap;
|
|
24763
|
-
return (_interopRequireWildcard = function
|
|
24763
|
+
return (_interopRequireWildcard = function _interopRequireWildcard2(e3, t3) {
|
|
24764
24764
|
if (!t3 && e3 && e3.__esModule)
|
|
24765
24765
|
return e3;
|
|
24766
24766
|
var o, i2, f3 = { __proto__: null, default: e3 };
|
|
@@ -24840,7 +24840,7 @@ var require_src5 = __commonJS((exports) => {
|
|
|
24840
24840
|
}
|
|
24841
24841
|
function _wrapNativeSuper(t2) {
|
|
24842
24842
|
var r2 = typeof Map == "function" ? new Map : undefined;
|
|
24843
|
-
return _wrapNativeSuper = function
|
|
24843
|
+
return _wrapNativeSuper = function _wrapNativeSuper2(t3) {
|
|
24844
24844
|
if (t3 === null || !_isNativeFunction(t3))
|
|
24845
24845
|
return t3;
|
|
24846
24846
|
if (typeof t3 != "function")
|
|
@@ -24868,7 +24868,7 @@ var require_src5 = __commonJS((exports) => {
|
|
|
24868
24868
|
try {
|
|
24869
24869
|
var t2 = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
24870
24870
|
} catch (t3) {}
|
|
24871
|
-
return (_isNativeReflectConstruct = function
|
|
24871
|
+
return (_isNativeReflectConstruct = function _isNativeReflectConstruct2() {
|
|
24872
24872
|
return !!t2;
|
|
24873
24873
|
})();
|
|
24874
24874
|
}
|
|
@@ -24914,7 +24914,7 @@ var require_src5 = __commonJS((exports) => {
|
|
|
24914
24914
|
function i2(r3, n2, o2, i3) {
|
|
24915
24915
|
var c2 = n2 && n2.prototype instanceof Generator ? n2 : Generator, u2 = Object.create(c2.prototype);
|
|
24916
24916
|
return _regeneratorDefine2(u2, "_invoke", function(r4, n3, o3) {
|
|
24917
|
-
var i4, c3, u3, f4 = 0, p = o3 || [], y = false, G = { p: 0, n: 0, v: e2, a: d, f: d.bind(e2, 4), d: function
|
|
24917
|
+
var i4, c3, u3, f4 = 0, p = o3 || [], y = false, G = { p: 0, n: 0, v: e2, a: d, f: d.bind(e2, 4), d: function d2(t3, r5) {
|
|
24918
24918
|
return i4 = t3, c3 = 0, u3 = e2, G.n = r5, a;
|
|
24919
24919
|
} };
|
|
24920
24920
|
function d(r5, n4) {
|
|
@@ -24969,7 +24969,7 @@ var require_src5 = __commonJS((exports) => {
|
|
|
24969
24969
|
return this;
|
|
24970
24970
|
}), _regeneratorDefine2(u, "toString", function() {
|
|
24971
24971
|
return "[object Generator]";
|
|
24972
|
-
}), (_regenerator = function
|
|
24972
|
+
}), (_regenerator = function _regenerator2() {
|
|
24973
24973
|
return { w: i2, m: f3 };
|
|
24974
24974
|
})();
|
|
24975
24975
|
}
|
|
@@ -24984,7 +24984,7 @@ var require_src5 = __commonJS((exports) => {
|
|
|
24984
24984
|
if (r3)
|
|
24985
24985
|
i2 ? i2(e3, r3, { value: n2, enumerable: !t3, configurable: !t3, writable: !t3 }) : e3[r3] = n2;
|
|
24986
24986
|
else {
|
|
24987
|
-
var o = function
|
|
24987
|
+
var o = function o2(r4, n3) {
|
|
24988
24988
|
_regeneratorDefine2(e3, r4, function(e4) {
|
|
24989
24989
|
return this._invoke(r4, n3, e4);
|
|
24990
24990
|
});
|
|
@@ -30792,7 +30792,7 @@ var require_stream = __commonJS((exports, module) => {
|
|
|
30792
30792
|
if (!duplex.push(data))
|
|
30793
30793
|
ws.pause();
|
|
30794
30794
|
});
|
|
30795
|
-
ws.once("error", function
|
|
30795
|
+
ws.once("error", function error48(err) {
|
|
30796
30796
|
if (duplex.destroyed)
|
|
30797
30797
|
return;
|
|
30798
30798
|
terminateOnDestroy = false;
|
|
@@ -30810,7 +30810,7 @@ var require_stream = __commonJS((exports, module) => {
|
|
|
30810
30810
|
return;
|
|
30811
30811
|
}
|
|
30812
30812
|
let called = false;
|
|
30813
|
-
ws.once("error", function
|
|
30813
|
+
ws.once("error", function error48(err2) {
|
|
30814
30814
|
called = true;
|
|
30815
30815
|
callback(err2);
|
|
30816
30816
|
});
|
|
@@ -66863,12 +66863,12 @@ function encodeURIPath(str) {
|
|
|
66863
66863
|
return str.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);
|
|
66864
66864
|
}
|
|
66865
66865
|
var EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));
|
|
66866
|
-
var createPathTagFunction = (pathEncoder = encodeURIPath) => function
|
|
66866
|
+
var createPathTagFunction = (pathEncoder = encodeURIPath) => function path2(statics, ...params) {
|
|
66867
66867
|
if (statics.length === 1)
|
|
66868
66868
|
return statics[0];
|
|
66869
66869
|
let postPath = false;
|
|
66870
66870
|
const invalidSegments = [];
|
|
66871
|
-
const
|
|
66871
|
+
const path3 = statics.reduce((previousValue, currentValue, index) => {
|
|
66872
66872
|
var _a2, _b, _c;
|
|
66873
66873
|
if (/[?#]/.test(currentValue)) {
|
|
66874
66874
|
postPath = true;
|
|
@@ -66885,7 +66885,7 @@ var createPathTagFunction = (pathEncoder = encodeURIPath) => function path(stati
|
|
|
66885
66885
|
}
|
|
66886
66886
|
return previousValue + currentValue + (index === params.length ? "" : encoded);
|
|
66887
66887
|
}, "");
|
|
66888
|
-
const pathOnly =
|
|
66888
|
+
const pathOnly = path3.split(/[?#]/, 1)[0];
|
|
66889
66889
|
const invalidSegmentPattern = /(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;
|
|
66890
66890
|
let match2;
|
|
66891
66891
|
while ((match2 = invalidSegmentPattern.exec(pathOnly)) !== null) {
|
|
@@ -66907,10 +66907,10 @@ var createPathTagFunction = (pathEncoder = encodeURIPath) => function path(stati
|
|
|
66907
66907
|
throw new GeminiNextGenAPIClientError(`Path parameters result in path with invalid segments:
|
|
66908
66908
|
${invalidSegments.map((e2) => e2.error).join(`
|
|
66909
66909
|
`)}
|
|
66910
|
-
${
|
|
66910
|
+
${path3}
|
|
66911
66911
|
${underline}`);
|
|
66912
66912
|
}
|
|
66913
|
-
return
|
|
66913
|
+
return path3;
|
|
66914
66914
|
};
|
|
66915
66915
|
var path2 = /* @__PURE__ */ createPathTagFunction(encodeURIPath);
|
|
66916
66916
|
|
|
@@ -70685,7 +70685,7 @@ If you cannot find the entry point, explain what you looked for in the summary a
|
|
|
70685
70685
|
// package.json
|
|
70686
70686
|
var package_default = {
|
|
70687
70687
|
name: "codebase-analyzer-mcp",
|
|
70688
|
-
version: "
|
|
70688
|
+
version: "2.0.2",
|
|
70689
70689
|
description: "Multi-layer codebase analysis with Gemini AI. MCP server + Claude plugin with progressive disclosure.",
|
|
70690
70690
|
type: "module",
|
|
70691
70691
|
main: "dist/mcp/server.js",
|
package/package.json
CHANGED