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.
@@ -6,13 +6,13 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Multi-layer codebase analysis tools",
9
- "version": "1.0.3"
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": "1.0.3",
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": "1.0.3",
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 isArray(arr) {
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 isPlainObject(obj) {
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 setProperty(target, options) {
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 getProperty(obj, name) {
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 DOMException(message, name) {
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 timingSafeEqual(a, b) {
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 timingSafeEqual(a, b) {
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 _interopRequireWildcard(e3, t3) {
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 _wrapNativeSuper(t3) {
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 _isNativeReflectConstruct() {
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 d(t3, r5) {
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 _regenerator() {
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 o(r4, n3) {
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 path(statics, ...params) {
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 path2 = statics.reduce((previousValue, currentValue, index) => {
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 = path2.split(/[?#]/, 1)[0];
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
- ${path2}
39301
+ ${path3}
39302
39302
  ${underline}`);
39303
39303
  }
39304
- return path2;
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: "1.0.3",
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 time(str) {
71743
+ return function time3(str) {
71744
71744
  const matches = TIME.exec(str);
71745
71745
  if (!matches)
71746
71746
  return false;
@@ -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 time(str) {
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 isArray(arr) {
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 isPlainObject(obj) {
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 setProperty(target, options) {
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 getProperty(obj, name) {
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 extend() {
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: extend(deep, clone2, copy) });
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 DOMException(message, name) {
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 timingSafeEqual(a, b) {
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 timingSafeEqual(a, b) {
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 _interopRequireWildcard(e3, t3) {
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 _wrapNativeSuper(t3) {
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 _isNativeReflectConstruct() {
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 d(t3, r5) {
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 _regenerator() {
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 o(r4, n3) {
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 error(err) {
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 error(err2) {
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 path(statics, ...params) {
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 path2 = statics.reduce((previousValue, currentValue, index) => {
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 = path2.split(/[?#]/, 1)[0];
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
- ${path2}
66910
+ ${path3}
66911
66911
  ${underline}`);
66912
66912
  }
66913
- return path2;
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: "1.0.3",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codebase-analyzer-mcp",
3
- "version": "1.0.3",
3
+ "version": "2.0.2",
4
4
  "description": "Multi-layer codebase analysis with Gemini AI. MCP server + Claude plugin with progressive disclosure.",
5
5
  "type": "module",
6
6
  "main": "dist/mcp/server.js",