@funnycode/myclaude 0.1.165 → 0.1.166

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/myclaude.js CHANGED
@@ -4,8 +4,8 @@
4
4
  // MACRO - build-time constants (injected by build.ts)
5
5
  // MACRO injected by build script
6
6
  globalThis.MACRO = {
7
- VERSION: "0.1.165",
8
- BUILD_TIME: "2026-07-31T00:20:09.749Z",
7
+ VERSION: "0.1.166",
8
+ BUILD_TIME: "2026-07-31T04:45:19.156Z",
9
9
  PACKAGE_URL: "@funnycode/myclaude",
10
10
  NATIVE_PACKAGE_URL: "@funnycode/myclaude",
11
11
  VERSION_CHANGELOG: '',
@@ -101034,12 +101034,18 @@ var require_protocols2 = __commonJS((exports) => {
101034
101034
  const reviver = needsReviver(schema) ? jsonReviver : undefined;
101035
101035
  let parsed;
101036
101036
  if (typeof data === "string") {
101037
+ if (data.length === 0) {
101038
+ return {};
101039
+ }
101037
101040
  parsed = JSON.parse(data, reviver);
101038
101041
  } else if (data instanceof Uint8Array && detectBufferParsing()) {
101042
+ if (data.byteLength === 0) {
101043
+ return {};
101044
+ }
101039
101045
  const buf = Buffer.isBuffer(data) ? data : Buffer.from(data.buffer, data.byteOffset, data.byteLength);
101040
101046
  parsed = JSON.parse(buf, reviver);
101041
101047
  } else {
101042
- parsed = await parseJsonBody(data, this.serdeContext);
101048
+ parsed = await parseJsonBody(data, this.serdeContext, schema);
101043
101049
  }
101044
101050
  return this._read(schema, parsed);
101045
101051
  }
@@ -101055,19 +101061,23 @@ var require_protocols2 = __commonJS((exports) => {
101055
101061
  }
101056
101062
  if (Array.isArray(value) && ns.isListSchema()) {
101057
101063
  const listMember = ns.getValueSchema();
101058
- for (let i2 = 0;i2 < value.length; ++i2) {
101059
- value[i2] = this._read(listMember, value[i2]);
101064
+ if (this.needsTransform(listMember)) {
101065
+ for (let i2 = 0;i2 < value.length; ++i2) {
101066
+ value[i2] = this._read(listMember, value[i2]);
101067
+ }
101060
101068
  }
101061
101069
  return value;
101062
101070
  }
101063
101071
  if (ns.isMapSchema()) {
101064
101072
  const mapMember = ns.getValueSchema();
101065
101073
  const map2 = value;
101066
- for (const k in map2) {
101067
- if (k === "__proto__") {
101068
- writeKey(map2);
101074
+ if (this.needsTransform(mapMember)) {
101075
+ for (const k in map2) {
101076
+ if (k === "__proto__") {
101077
+ writeKey(map2);
101078
+ }
101079
+ map2[k] = this._read(mapMember, map2[k]);
101069
101080
  }
101070
- map2[k] = this._read(mapMember, map2[k]);
101071
101081
  }
101072
101082
  return map2;
101073
101083
  }
@@ -101142,9 +101152,6 @@ var require_protocols2 = __commonJS((exports) => {
101142
101152
  }
101143
101153
  }
101144
101154
  }
101145
- return value;
101146
- } else {
101147
- return value;
101148
101155
  }
101149
101156
  }
101150
101157
  return value;
@@ -101152,9 +101159,10 @@ var require_protocols2 = __commonJS((exports) => {
101152
101159
  _readStruct(ns, record2) {
101153
101160
  const union2 = ns.isUnionSchema();
101154
101161
  const out = {};
101155
- let nameMap = undefined;
101162
+ let nameMap;
101163
+ const hasType = typeof record2.__type === "string";
101156
101164
  const { jsonName } = this.settings;
101157
- if (jsonName) {
101165
+ if (jsonName && hasType) {
101158
101166
  nameMap = {};
101159
101167
  }
101160
101168
  let unionSerde;
@@ -101165,7 +101173,9 @@ var require_protocols2 = __commonJS((exports) => {
101165
101173
  let fromKey = memberName;
101166
101174
  if (jsonName) {
101167
101175
  fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey;
101168
- nameMap[fromKey] = memberName;
101176
+ if (hasType) {
101177
+ nameMap[fromKey] = memberName;
101178
+ }
101169
101179
  }
101170
101180
  if (union2) {
101171
101181
  unionSerde.mark(fromKey);
@@ -101176,7 +101186,7 @@ var require_protocols2 = __commonJS((exports) => {
101176
101186
  }
101177
101187
  if (union2) {
101178
101188
  unionSerde.writeUnknown();
101179
- } else if (typeof record2.__type === "string") {
101189
+ } else if (hasType) {
101180
101190
  for (const k in record2) {
101181
101191
  const v = record2[k];
101182
101192
  const t = jsonName ? nameMap[k] ?? k : k;
@@ -101187,7 +101197,121 @@ var require_protocols2 = __commonJS((exports) => {
101187
101197
  }
101188
101198
  return out;
101189
101199
  }
101200
+ needsTransform(ns) {
101201
+ if (ns.isBlobSchema() || ns.isTimestampSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {
101202
+ return true;
101203
+ }
101204
+ if (ns.isDocumentSchema() || ns.isStructSchema() || ns.isListSchema() || ns.isMapSchema()) {
101205
+ return true;
101206
+ }
101207
+ if (ns.isStringSchema() && ns.getMergedTraits().mediaType) {
101208
+ return true;
101209
+ }
101210
+ return false;
101211
+ }
101212
+ }
101213
+
101214
+ class JsonBytesStringAdapter extends Uint8Array {
101215
+ string = null;
101216
+ static allocUnsafe(bytes) {
101217
+ if (typeof Buffer === "function") {
101218
+ const buffer = Buffer.allocUnsafe(bytes);
101219
+ return new JsonBytesStringAdapter(buffer.buffer, buffer.byteOffset, buffer.byteLength);
101220
+ }
101221
+ return new JsonBytesStringAdapter(bytes);
101222
+ }
101223
+ toString() {
101224
+ return this.s();
101225
+ }
101226
+ valueOf() {
101227
+ return this.s();
101228
+ }
101229
+ includes(searchString, position) {
101230
+ if (typeof searchString === "string") {
101231
+ return this.s().includes(searchString, position);
101232
+ }
101233
+ return Uint8Array.prototype.includes.call(this, searchString, position);
101234
+ }
101235
+ indexOf(searchString, position) {
101236
+ if (typeof searchString === "string") {
101237
+ return this.s().indexOf(searchString, position);
101238
+ }
101239
+ return Uint8Array.prototype.indexOf.call(this, searchString, position);
101240
+ }
101241
+ lastIndexOf(searchString, position) {
101242
+ if (typeof searchString === "string") {
101243
+ return this.s().lastIndexOf(searchString, position);
101244
+ }
101245
+ const fn = Uint8Array.prototype.lastIndexOf;
101246
+ if (position !== undefined) {
101247
+ return fn.call(this, searchString, position);
101248
+ }
101249
+ return fn.call(this, searchString);
101250
+ }
101251
+ startsWith(searchString, position) {
101252
+ return this.s().startsWith(searchString, position);
101253
+ }
101254
+ endsWith(searchString, endPosition) {
101255
+ return this.s().endsWith(searchString, endPosition);
101256
+ }
101257
+ match(regexp) {
101258
+ return this.s().match(regexp);
101259
+ }
101260
+ replace(searchValue, replaceValue) {
101261
+ return this.s().replace(searchValue, replaceValue);
101262
+ }
101263
+ search(regexp) {
101264
+ return this.s().search(regexp);
101265
+ }
101266
+ split(separator, limit2) {
101267
+ return this.s().split(separator, limit2);
101268
+ }
101269
+ substring(start, end) {
101270
+ return this.s().substring(start, end);
101271
+ }
101272
+ trim() {
101273
+ return this.s().trim();
101274
+ }
101275
+ trimStart() {
101276
+ return this.s().trimStart();
101277
+ }
101278
+ trimEnd() {
101279
+ return this.s().trimEnd();
101280
+ }
101281
+ charAt(pos) {
101282
+ return this.s().charAt(pos);
101283
+ }
101284
+ charCodeAt(index) {
101285
+ return this.s().charCodeAt(index);
101286
+ }
101287
+ padStart(maxLength, fillString) {
101288
+ return this.s().padStart(maxLength, fillString);
101289
+ }
101290
+ padEnd(maxLength, fillString) {
101291
+ return this.s().padEnd(maxLength, fillString);
101292
+ }
101293
+ repeat(count3) {
101294
+ return this.s().repeat(count3);
101295
+ }
101296
+ toUpperCase() {
101297
+ return this.s().toUpperCase();
101298
+ }
101299
+ toLowerCase() {
101300
+ return this.s().toLowerCase();
101301
+ }
101302
+ s() {
101303
+ if (this.string == null) {
101304
+ const n2 = Date.now();
101305
+ if (n2 > warned + 60000) {
101306
+ console.warn("@aws-sdk/core/protocols - WARN - JsonCodec2: you have called a string method on a Uint8Array request body. " + "It has been automatically converted to string. In a future version this will throw an error.");
101307
+ warned = n2;
101308
+ }
101309
+ this.string = toUtf8(this);
101310
+ }
101311
+ return this.string;
101312
+ }
101190
101313
  }
101314
+ var warned = 0;
101191
101315
  var encoder2 = new TextEncoder;
101192
101316
  var OPEN_BRACE = 123;
101193
101317
  var CLOSE_BRACE = 125;
@@ -101215,7 +101339,7 @@ var require_protocols2 = __commonJS((exports) => {
101215
101339
  }
101216
101340
  var INITIAL_BUFFER_SIZE = 2048;
101217
101341
  function alloc(size) {
101218
- return typeof Buffer !== "undefined" ? Buffer.allocUnsafe(size) : new Uint8Array(size);
101342
+ return JsonBytesStringAdapter.allocUnsafe(size);
101219
101343
  }
101220
101344
 
101221
101345
  class JsonShapeSerializer2 extends SerdeContextConfig {
@@ -101234,7 +101358,7 @@ var require_protocols2 = __commonJS((exports) => {
101234
101358
  this.i = 0;
101235
101359
  this.rawValue = value;
101236
101360
  this.rootSchema = NormalizedSchema.of(schema);
101237
- this.passthrough = !this.rootSchema.isStructSchema() && !this.rootSchema.isDocumentSchema() && (this.rootSchema.isBlobSchema() || this.rootSchema.isStringSchema());
101361
+ this.passthrough = this.rootSchema.isBlobSchema() || this.rootSchema.isStringSchema();
101238
101362
  if (!this.passthrough) {
101239
101363
  this.writeValue(this.rootSchema, value, undefined);
101240
101364
  }
@@ -101244,30 +101368,13 @@ var require_protocols2 = __commonJS((exports) => {
101244
101368
  this.rootSchema = NormalizedSchema.of(schema);
101245
101369
  const ns = this.rootSchema;
101246
101370
  if (ns.isStructSchema() && value != null && typeof value === "object") {
101247
- this.ensure(2);
101248
- this.json[this.i++] = OPEN_BRACE;
101249
- this.writeAsciiQuoted("__type");
101250
- this.json[this.i++] = COLON;
101251
- this.writeAsciiQuoted(ns.getName(true) ?? "Unknown");
101252
- let wroteAny = true;
101253
- const { jsonName } = this.settings;
101254
- for (const [memberName, memberSchema] of ns.structIterator()) {
101255
- const item = value[memberName];
101256
- if (item == null && !memberSchema.isIdempotencyToken()) {
101257
- continue;
101258
- }
101259
- if (wroteAny) {
101260
- this.ensure(1);
101261
- this.json[this.i++] = COMMA;
101262
- }
101263
- const targetKey = jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;
101264
- this.writeAsciiQuoted(targetKey);
101265
- this.json[this.i++] = COLON;
101266
- this.writeValue(memberSchema, item, ns);
101267
- wroteAny = true;
101268
- }
101269
- this.ensure(1);
101270
- this.json[this.i++] = CLOSE_BRACE;
101371
+ this.writeValue(ns, value, undefined);
101372
+ const prefix = `"__type":"${ns.getName(true) ?? "Unknown"}",`;
101373
+ const z3 = prefix.length;
101374
+ this.ensure(z3);
101375
+ this.json.copyWithin(1 + z3, 1, this.i);
101376
+ encoder2.encodeInto(prefix, this.json.subarray(1));
101377
+ this.i += z3;
101271
101378
  } else {
101272
101379
  this.writeValue(ns, value, undefined);
101273
101380
  }
@@ -101319,7 +101426,7 @@ var require_protocols2 = __commonJS((exports) => {
101319
101426
  this.i = i2;
101320
101427
  }
101321
101428
  writeJsonString(s) {
101322
- this.ensure(s.length * 2 + 2);
101429
+ this.ensure(s.length * 3 + 2);
101323
101430
  this.json[this.i++] = QUOTE;
101324
101431
  const z3 = s.length;
101325
101432
  for (let j = 0;j < z3; ++j) {
@@ -101343,7 +101450,7 @@ var require_protocols2 = __commonJS((exports) => {
101343
101450
  this.ensure(4);
101344
101451
  const { written } = encoder2.encodeInto(s.substring(j, j + 2), this.json.subarray(this.i));
101345
101452
  this.i += written;
101346
- j++;
101453
+ ++j;
101347
101454
  } else {
101348
101455
  this.ensure(6);
101349
101456
  this.writeUnicodeEscape(c5);
@@ -101379,8 +101486,9 @@ var require_protocols2 = __commonJS((exports) => {
101379
101486
  static B64 = (() => {
101380
101487
  const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
101381
101488
  const table = new Uint8Array(64);
101382
- for (let i2 = 0;i2 < 64; i2++)
101489
+ for (let i2 = 0;i2 < 64; ++i2) {
101383
101490
  table[i2] = chars.charCodeAt(i2);
101491
+ }
101384
101492
  return table;
101385
101493
  })();
101386
101494
  writeBase64(data) {
@@ -101505,13 +101613,15 @@ var require_protocols2 = __commonJS((exports) => {
101505
101613
  }
101506
101614
  if (typeof value === "boolean") {
101507
101615
  this.ensure(5);
101616
+ let { i: i2, json: json2 } = this;
101508
101617
  if (value) {
101509
- this.json.set(TRUE, this.i);
101510
- this.i += 4;
101618
+ json2.set(TRUE, i2);
101619
+ i2 += 4;
101511
101620
  } else {
101512
- this.json.set(FALSE, this.i);
101513
- this.i += 5;
101621
+ json2.set(FALSE, i2);
101622
+ i2 += 5;
101514
101623
  }
101624
+ this.i = i2;
101515
101625
  return;
101516
101626
  }
101517
101627
  if (typeof value === "bigint") {
@@ -101523,7 +101633,6 @@ var require_protocols2 = __commonJS((exports) => {
101523
101633
  writeStruct(ns, value) {
101524
101634
  this.ensure(2);
101525
101635
  this.json[this.i++] = OPEN_BRACE;
101526
- let first = true;
101527
101636
  let wroteAny = false;
101528
101637
  const hasType = typeof value.__type === "string";
101529
101638
  let writtenKeys;
@@ -101532,13 +101641,13 @@ var require_protocols2 = __commonJS((exports) => {
101532
101641
  }
101533
101642
  for (const [memberName, memberSchema] of ns.structIterator()) {
101534
101643
  const item = value[memberName];
101535
- if (item == null && !memberSchema.isIdempotencyToken())
101644
+ if (item == null && !memberSchema.isIdempotencyToken()) {
101536
101645
  continue;
101537
- if (!first) {
101646
+ }
101647
+ if (wroteAny) {
101538
101648
  this.ensure(1);
101539
101649
  this.json[this.i++] = COMMA;
101540
101650
  }
101541
- first = false;
101542
101651
  wroteAny = true;
101543
101652
  const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;
101544
101653
  if (writtenKeys) {
@@ -101560,17 +101669,17 @@ var require_protocols2 = __commonJS((exports) => {
101560
101669
  }
101561
101670
  } else if (hasType) {
101562
101671
  for (const k in value) {
101563
- const targetKey = this.settings.jsonName ? writtenKeys.has(k) ? k : k : k;
101564
- if (writtenKeys.has(targetKey))
101672
+ if (writtenKeys.has(k)) {
101565
101673
  continue;
101566
- writtenKeys.add(targetKey);
101674
+ }
101675
+ writtenKeys.add(k);
101567
101676
  const v = value[k];
101568
- if (!first) {
101677
+ if (wroteAny) {
101569
101678
  this.ensure(1);
101570
101679
  this.json[this.i++] = COMMA;
101571
101680
  }
101572
- first = false;
101573
- this.writeAsciiQuoted(targetKey);
101681
+ wroteAny = true;
101682
+ this.writeAsciiQuoted(k);
101574
101683
  this.ensure(1);
101575
101684
  this.json[this.i++] = COLON;
101576
101685
  this.writeValue(15, v, undefined);
@@ -101580,20 +101689,30 @@ var require_protocols2 = __commonJS((exports) => {
101580
101689
  this.json[this.i++] = CLOSE_BRACE;
101581
101690
  }
101582
101691
  writeList(ns, value, isDocument) {
101583
- this.ensure(2);
101584
- this.json[this.i++] = OPEN_BRACKET;
101585
101692
  const sparse = !!ns.getMergedTraits().sparse;
101586
101693
  const valueSchema = ns.getValueSchema();
101694
+ if (!isDocument) {
101695
+ if (valueSchema.isStringSchema() || valueSchema.isNumericSchema() || valueSchema.isBooleanSchema()) {
101696
+ const json2 = sparse ? JSON.stringify(value) : JSON.stringify(value.filter((_) => _ != null));
101697
+ this.ensure(json2.length * 3);
101698
+ this.i += encoder2.encodeInto(json2, this.json.subarray(this.i)).written;
101699
+ return;
101700
+ }
101701
+ }
101702
+ this.ensure(2);
101703
+ this.json[this.i++] = OPEN_BRACKET;
101704
+ let wroteFirstItem = false;
101587
101705
  for (let i2 = 0;i2 < value.length; ++i2) {
101588
101706
  const item = value[i2];
101589
101707
  if (isDocument ? item === undefined : item == null && !sparse) {
101590
101708
  continue;
101591
101709
  }
101592
- if (i2 !== 0) {
101710
+ if (wroteFirstItem) {
101593
101711
  this.ensure(1);
101594
101712
  this.json[this.i++] = COMMA;
101595
101713
  }
101596
101714
  this.writeValue(valueSchema, item, undefined);
101715
+ wroteFirstItem = true;
101597
101716
  }
101598
101717
  this.ensure(1);
101599
101718
  this.json[this.i++] = CLOSE_BRACKET;
@@ -101615,8 +101734,7 @@ var require_protocols2 = __commonJS((exports) => {
101615
101734
  }
101616
101735
  const json2 = JSON.stringify(input);
101617
101736
  this.ensure(json2.length * 3);
101618
- const { written } = encoder2.encodeInto(json2, this.json.subarray(this.i));
101619
- this.i += written;
101737
+ this.i += encoder2.encodeInto(json2, this.json.subarray(this.i)).written;
101620
101738
  return;
101621
101739
  }
101622
101740
  }
@@ -102728,7 +102846,7 @@ var require_sso_oidc = __commonJS((exports) => {
102728
102846
  Region: { type: "builtInParams", name: "region" },
102729
102847
  UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }
102730
102848
  };
102731
- var version2 = "3.997.37";
102849
+ var version2 = "3.997.38";
102732
102850
  var packageInfo = {
102733
102851
  version: version2
102734
102852
  };
@@ -103625,7 +103743,7 @@ var require_sso = __commonJS((exports) => {
103625
103743
  Region: { type: "builtInParams", name: "region" },
103626
103744
  UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }
103627
103745
  };
103628
- var version2 = "3.997.37";
103746
+ var version2 = "3.997.38";
103629
103747
  var packageInfo = {
103630
103748
  version: version2
103631
103749
  };
@@ -104719,7 +104837,7 @@ var require_sts = __commonJS((exports) => {
104719
104837
  Region: { type: "builtInParams", name: "region" },
104720
104838
  UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }
104721
104839
  };
104722
- var version2 = "3.997.37";
104840
+ var version2 = "3.997.38";
104723
104841
  var packageInfo = {
104724
104842
  version: version2
104725
104843
  };
@@ -105488,7 +105606,7 @@ var require_signin = __commonJS((exports) => {
105488
105606
  Region: { type: "builtInParams", name: "region" },
105489
105607
  UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }
105490
105608
  };
105491
- var version2 = "3.997.37";
105609
+ var version2 = "3.997.38";
105492
105610
  var packageInfo = {
105493
105611
  version: version2
105494
105612
  };
@@ -119853,7 +119971,7 @@ var package_default;
119853
119971
  var init_package = __esm(() => {
119854
119972
  package_default = {
119855
119973
  name: "@funnycode/myclaude",
119856
- version: "0.1.165",
119974
+ version: "0.1.166",
119857
119975
  private: false,
119858
119976
  description: "An open-source AI coding assistant in your terminal - powered by Claude",
119859
119977
  license: "MIT",
@@ -566462,29 +566580,17 @@ function migrateEnableAllProjectMcpServersToSettings() {
566462
566580
  }
566463
566581
  migratedFields.push("disabledMcpjsonServers");
566464
566582
  }
566465
- const enabledSet = new Set(existingEnabledServers);
566466
- const overlappingServers = existingDisabledServers.filter((server) => enabledSet.has(server));
566467
- for (const server of overlappingServers) {
566468
- const index = existingDisabledServers.indexOf(server);
566469
- if (index !== -1) {
566470
- existingDisabledServers.splice(index, 1);
566471
- }
566472
- }
566583
+ const overlappingServers = existingEnabledServers.filter((server) => existingDisabledServers.includes(server));
566473
566584
  if (overlappingServers.length > 0) {
566474
566585
  logEvent("tengu_migrate_mcp_server_overlap_in_both_lists", {
566475
- overlappingServers: overlappingServers.join(",")
566586
+ overlappingServers: overlappingServers.join(","),
566587
+ resolvedBy: "removing_from_disabled_list"
566476
566588
  });
566477
- }
566478
- const existingHadEnabledServers = Array.isArray(existingSettings.enabledMcpjsonServers);
566479
- const existingHadDisabledServers = Array.isArray(existingSettings.disabledMcpjsonServers);
566480
- const hasEnabledServersArray = hasEnabledServers && Array.isArray(projectConfig.enabledMcpjsonServers);
566481
- const hasDisabledServersArray = hasDisabledServers && Array.isArray(projectConfig.disabledMcpjsonServers);
566482
- if (existingHadEnabledServers || hasEnabledServersArray) {
566483
- updates.enabledMcpjsonServers = existingEnabledServers;
566484
- }
566485
- if (existingHadDisabledServers || hasDisabledServersArray) {
566589
+ updates.disabledMcpjsonServers = existingDisabledServers.filter((server) => !overlappingServers.includes(server));
566590
+ } else {
566486
566591
  updates.disabledMcpjsonServers = existingDisabledServers;
566487
566592
  }
566593
+ updates.enabledMcpjsonServers = existingEnabledServers;
566488
566594
  saveCurrentProjectConfig((config5) => {
566489
566595
  const updated = { ...config5 };
566490
566596
  for (const field of migratedFields) {
@@ -566495,7 +566601,8 @@ function migrateEnableAllProjectMcpServersToSettings() {
566495
566601
  const currentSettings = getSettingsForSource("localSettings") || {};
566496
566602
  const currentSettingsHash = JSON.stringify(currentSettings);
566497
566603
  if (currentSettingsHash !== originalSettingsHash) {
566498
- logError2("MIGRATION WARNING: Settings file was modified concurrently during migration. " + "The migration will overwrite concurrent changes, potentially causing data loss. " + "Original settings hash: " + originalSettingsHash + ", Current settings hash: " + currentSettingsHash);
566604
+ logError2("MIGRATION WARNING: Settings file was modified concurrently during migration. " + "The migration will abort to prevent data loss. " + "Original settings hash: " + originalSettingsHash + ", Current settings hash: " + currentSettingsHash);
566605
+ throw new Error("Migration aborted due to concurrent changes to settings file. " + "Please ensure no other processes are modifying the settings file and try again.");
566499
566606
  }
566500
566607
  updateSettingsForSource("localSettings", updates);
566501
566608
  saveGlobalConfig((c6) => ({ ...c6, hasCompletedMcpServerMigration: true }));
@@ -566510,7 +566617,8 @@ function migrateEnableAllProjectMcpServersToSettings() {
566510
566617
  const currentSettings = getSettingsForSource("localSettings") || {};
566511
566618
  const currentSettingsHash = JSON.stringify(currentSettings);
566512
566619
  if (currentSettingsHash !== originalSettingsHash) {
566513
- logError2("MIGRATION WARNING: Settings file was modified concurrently. " + "The rollback will overwrite concurrent changes, potentially causing data loss. " + "Original settings hash: " + originalSettingsHash + ", Current settings hash: " + currentSettingsHash);
566620
+ logError2("MIGRATION WARNING: Settings file was modified concurrently. " + "The rollback will abort to prevent data loss. " + "Original settings hash: " + originalSettingsHash + ", Current settings hash: " + currentSettingsHash);
566621
+ throw new Error("Rollback aborted due to concurrent changes to settings file. " + "Please ensure no other processes are modifying the settings file.");
566514
566622
  }
566515
566623
  const rollbackUpdates = {};
566516
566624
  for (const field of migratedFields) {
@@ -566521,27 +566629,22 @@ function migrateEnableAllProjectMcpServersToSettings() {
566521
566629
  }
566522
566630
  }
566523
566631
  updateSettingsForSource("localSettings", rollbackUpdates);
566524
- } catch (rollbackError) {
566525
- logError2("Rollback of settings failed", rollbackError);
566526
- rollbackFailed = true;
566527
- }
566528
- try {
566529
566632
  saveCurrentProjectConfig((config5) => {
566530
566633
  const updated = { ...config5 };
566531
566634
  for (const field of migratedFields) {
566532
- updated[field] = originalProjectConfig[field];
566635
+ if (field in originalProjectConfig) {
566636
+ updated[field] = originalProjectConfig[field];
566637
+ }
566533
566638
  }
566534
566639
  return updated;
566535
566640
  });
566536
566641
  } catch (rollbackError) {
566537
- logError2("Rollback of project config failed", rollbackError);
566642
+ logError2("Rollback of settings failed", rollbackError);
566538
566643
  rollbackFailed = true;
566539
566644
  }
566540
566645
  if (rollbackFailed) {
566541
- logError2("MIGRATION WARNING: Rollback was incomplete. The system may be in an inconsistent " + "state with duplicate or conflicting MCP server configuration. Manual intervention " + "may be required to restore consistency between project config and settings.", new Error("Migration failed and rollback was incomplete. The system may be in an inconsistent state. " + "Original error: " + (error49 instanceof Error ? error49.message : String(error49))));
566542
- throw new Error("Migration failed and rollback was incomplete. The system may be in an inconsistent state. " + "Original error: " + (error49 instanceof Error ? error49.message : String(error49)));
566543
- } else {
566544
- logError2("Rollback completed successfully: original MCP server settings restored", error49);
566646
+ logError2("Migration failed and rollback was incomplete. " + "The settings file may be in an inconsistent state. " + "Please check the settings file manually.");
566647
+ throw error49;
566545
566648
  }
566546
566649
  }
566547
566650
  }
@@ -566631,7 +566734,8 @@ function migrateReplBridgeEnabledToRemoteControlAtStartup() {
566631
566734
  replBridgeEnabled: undefined
566632
566735
  };
566633
566736
  }
566634
- const { replBridgeEnabled: _2, ...next } = prev;
566737
+ const next = { ...prev };
566738
+ delete next.replBridgeEnabled;
566635
566739
  return next;
566636
566740
  });
566637
566741
  }
package/dist/myclaude.mjs CHANGED
@@ -4,8 +4,8 @@
4
4
  // MACRO - build-time constants (injected by build.ts)
5
5
  // MACRO injected by build script
6
6
  globalThis.MACRO = {
7
- VERSION: "0.1.165",
8
- BUILD_TIME: "2026-07-31T00:20:09.749Z",
7
+ VERSION: "0.1.166",
8
+ BUILD_TIME: "2026-07-31T04:45:19.156Z",
9
9
  PACKAGE_URL: "@funnycode/myclaude",
10
10
  NATIVE_PACKAGE_URL: "@funnycode/myclaude",
11
11
  VERSION_CHANGELOG: '',
@@ -101034,12 +101034,18 @@ var require_protocols2 = __commonJS((exports) => {
101034
101034
  const reviver = needsReviver(schema) ? jsonReviver : undefined;
101035
101035
  let parsed;
101036
101036
  if (typeof data === "string") {
101037
+ if (data.length === 0) {
101038
+ return {};
101039
+ }
101037
101040
  parsed = JSON.parse(data, reviver);
101038
101041
  } else if (data instanceof Uint8Array && detectBufferParsing()) {
101042
+ if (data.byteLength === 0) {
101043
+ return {};
101044
+ }
101039
101045
  const buf = Buffer.isBuffer(data) ? data : Buffer.from(data.buffer, data.byteOffset, data.byteLength);
101040
101046
  parsed = JSON.parse(buf, reviver);
101041
101047
  } else {
101042
- parsed = await parseJsonBody(data, this.serdeContext);
101048
+ parsed = await parseJsonBody(data, this.serdeContext, schema);
101043
101049
  }
101044
101050
  return this._read(schema, parsed);
101045
101051
  }
@@ -101055,19 +101061,23 @@ var require_protocols2 = __commonJS((exports) => {
101055
101061
  }
101056
101062
  if (Array.isArray(value) && ns.isListSchema()) {
101057
101063
  const listMember = ns.getValueSchema();
101058
- for (let i2 = 0;i2 < value.length; ++i2) {
101059
- value[i2] = this._read(listMember, value[i2]);
101064
+ if (this.needsTransform(listMember)) {
101065
+ for (let i2 = 0;i2 < value.length; ++i2) {
101066
+ value[i2] = this._read(listMember, value[i2]);
101067
+ }
101060
101068
  }
101061
101069
  return value;
101062
101070
  }
101063
101071
  if (ns.isMapSchema()) {
101064
101072
  const mapMember = ns.getValueSchema();
101065
101073
  const map2 = value;
101066
- for (const k in map2) {
101067
- if (k === "__proto__") {
101068
- writeKey(map2);
101074
+ if (this.needsTransform(mapMember)) {
101075
+ for (const k in map2) {
101076
+ if (k === "__proto__") {
101077
+ writeKey(map2);
101078
+ }
101079
+ map2[k] = this._read(mapMember, map2[k]);
101069
101080
  }
101070
- map2[k] = this._read(mapMember, map2[k]);
101071
101081
  }
101072
101082
  return map2;
101073
101083
  }
@@ -101142,9 +101152,6 @@ var require_protocols2 = __commonJS((exports) => {
101142
101152
  }
101143
101153
  }
101144
101154
  }
101145
- return value;
101146
- } else {
101147
- return value;
101148
101155
  }
101149
101156
  }
101150
101157
  return value;
@@ -101152,9 +101159,10 @@ var require_protocols2 = __commonJS((exports) => {
101152
101159
  _readStruct(ns, record2) {
101153
101160
  const union2 = ns.isUnionSchema();
101154
101161
  const out = {};
101155
- let nameMap = undefined;
101162
+ let nameMap;
101163
+ const hasType = typeof record2.__type === "string";
101156
101164
  const { jsonName } = this.settings;
101157
- if (jsonName) {
101165
+ if (jsonName && hasType) {
101158
101166
  nameMap = {};
101159
101167
  }
101160
101168
  let unionSerde;
@@ -101165,7 +101173,9 @@ var require_protocols2 = __commonJS((exports) => {
101165
101173
  let fromKey = memberName;
101166
101174
  if (jsonName) {
101167
101175
  fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey;
101168
- nameMap[fromKey] = memberName;
101176
+ if (hasType) {
101177
+ nameMap[fromKey] = memberName;
101178
+ }
101169
101179
  }
101170
101180
  if (union2) {
101171
101181
  unionSerde.mark(fromKey);
@@ -101176,7 +101186,7 @@ var require_protocols2 = __commonJS((exports) => {
101176
101186
  }
101177
101187
  if (union2) {
101178
101188
  unionSerde.writeUnknown();
101179
- } else if (typeof record2.__type === "string") {
101189
+ } else if (hasType) {
101180
101190
  for (const k in record2) {
101181
101191
  const v = record2[k];
101182
101192
  const t = jsonName ? nameMap[k] ?? k : k;
@@ -101187,7 +101197,121 @@ var require_protocols2 = __commonJS((exports) => {
101187
101197
  }
101188
101198
  return out;
101189
101199
  }
101200
+ needsTransform(ns) {
101201
+ if (ns.isBlobSchema() || ns.isTimestampSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {
101202
+ return true;
101203
+ }
101204
+ if (ns.isDocumentSchema() || ns.isStructSchema() || ns.isListSchema() || ns.isMapSchema()) {
101205
+ return true;
101206
+ }
101207
+ if (ns.isStringSchema() && ns.getMergedTraits().mediaType) {
101208
+ return true;
101209
+ }
101210
+ return false;
101211
+ }
101212
+ }
101213
+
101214
+ class JsonBytesStringAdapter extends Uint8Array {
101215
+ string = null;
101216
+ static allocUnsafe(bytes) {
101217
+ if (typeof Buffer === "function") {
101218
+ const buffer = Buffer.allocUnsafe(bytes);
101219
+ return new JsonBytesStringAdapter(buffer.buffer, buffer.byteOffset, buffer.byteLength);
101220
+ }
101221
+ return new JsonBytesStringAdapter(bytes);
101222
+ }
101223
+ toString() {
101224
+ return this.s();
101225
+ }
101226
+ valueOf() {
101227
+ return this.s();
101228
+ }
101229
+ includes(searchString, position) {
101230
+ if (typeof searchString === "string") {
101231
+ return this.s().includes(searchString, position);
101232
+ }
101233
+ return Uint8Array.prototype.includes.call(this, searchString, position);
101234
+ }
101235
+ indexOf(searchString, position) {
101236
+ if (typeof searchString === "string") {
101237
+ return this.s().indexOf(searchString, position);
101238
+ }
101239
+ return Uint8Array.prototype.indexOf.call(this, searchString, position);
101240
+ }
101241
+ lastIndexOf(searchString, position) {
101242
+ if (typeof searchString === "string") {
101243
+ return this.s().lastIndexOf(searchString, position);
101244
+ }
101245
+ const fn = Uint8Array.prototype.lastIndexOf;
101246
+ if (position !== undefined) {
101247
+ return fn.call(this, searchString, position);
101248
+ }
101249
+ return fn.call(this, searchString);
101250
+ }
101251
+ startsWith(searchString, position) {
101252
+ return this.s().startsWith(searchString, position);
101253
+ }
101254
+ endsWith(searchString, endPosition) {
101255
+ return this.s().endsWith(searchString, endPosition);
101256
+ }
101257
+ match(regexp) {
101258
+ return this.s().match(regexp);
101259
+ }
101260
+ replace(searchValue, replaceValue) {
101261
+ return this.s().replace(searchValue, replaceValue);
101262
+ }
101263
+ search(regexp) {
101264
+ return this.s().search(regexp);
101265
+ }
101266
+ split(separator, limit2) {
101267
+ return this.s().split(separator, limit2);
101268
+ }
101269
+ substring(start, end) {
101270
+ return this.s().substring(start, end);
101271
+ }
101272
+ trim() {
101273
+ return this.s().trim();
101274
+ }
101275
+ trimStart() {
101276
+ return this.s().trimStart();
101277
+ }
101278
+ trimEnd() {
101279
+ return this.s().trimEnd();
101280
+ }
101281
+ charAt(pos) {
101282
+ return this.s().charAt(pos);
101283
+ }
101284
+ charCodeAt(index) {
101285
+ return this.s().charCodeAt(index);
101286
+ }
101287
+ padStart(maxLength, fillString) {
101288
+ return this.s().padStart(maxLength, fillString);
101289
+ }
101290
+ padEnd(maxLength, fillString) {
101291
+ return this.s().padEnd(maxLength, fillString);
101292
+ }
101293
+ repeat(count3) {
101294
+ return this.s().repeat(count3);
101295
+ }
101296
+ toUpperCase() {
101297
+ return this.s().toUpperCase();
101298
+ }
101299
+ toLowerCase() {
101300
+ return this.s().toLowerCase();
101301
+ }
101302
+ s() {
101303
+ if (this.string == null) {
101304
+ const n2 = Date.now();
101305
+ if (n2 > warned + 60000) {
101306
+ console.warn("@aws-sdk/core/protocols - WARN - JsonCodec2: you have called a string method on a Uint8Array request body. " + "It has been automatically converted to string. In a future version this will throw an error.");
101307
+ warned = n2;
101308
+ }
101309
+ this.string = toUtf8(this);
101310
+ }
101311
+ return this.string;
101312
+ }
101190
101313
  }
101314
+ var warned = 0;
101191
101315
  var encoder2 = new TextEncoder;
101192
101316
  var OPEN_BRACE = 123;
101193
101317
  var CLOSE_BRACE = 125;
@@ -101215,7 +101339,7 @@ var require_protocols2 = __commonJS((exports) => {
101215
101339
  }
101216
101340
  var INITIAL_BUFFER_SIZE = 2048;
101217
101341
  function alloc(size) {
101218
- return typeof Buffer !== "undefined" ? Buffer.allocUnsafe(size) : new Uint8Array(size);
101342
+ return JsonBytesStringAdapter.allocUnsafe(size);
101219
101343
  }
101220
101344
 
101221
101345
  class JsonShapeSerializer2 extends SerdeContextConfig {
@@ -101234,7 +101358,7 @@ var require_protocols2 = __commonJS((exports) => {
101234
101358
  this.i = 0;
101235
101359
  this.rawValue = value;
101236
101360
  this.rootSchema = NormalizedSchema.of(schema);
101237
- this.passthrough = !this.rootSchema.isStructSchema() && !this.rootSchema.isDocumentSchema() && (this.rootSchema.isBlobSchema() || this.rootSchema.isStringSchema());
101361
+ this.passthrough = this.rootSchema.isBlobSchema() || this.rootSchema.isStringSchema();
101238
101362
  if (!this.passthrough) {
101239
101363
  this.writeValue(this.rootSchema, value, undefined);
101240
101364
  }
@@ -101244,30 +101368,13 @@ var require_protocols2 = __commonJS((exports) => {
101244
101368
  this.rootSchema = NormalizedSchema.of(schema);
101245
101369
  const ns = this.rootSchema;
101246
101370
  if (ns.isStructSchema() && value != null && typeof value === "object") {
101247
- this.ensure(2);
101248
- this.json[this.i++] = OPEN_BRACE;
101249
- this.writeAsciiQuoted("__type");
101250
- this.json[this.i++] = COLON;
101251
- this.writeAsciiQuoted(ns.getName(true) ?? "Unknown");
101252
- let wroteAny = true;
101253
- const { jsonName } = this.settings;
101254
- for (const [memberName, memberSchema] of ns.structIterator()) {
101255
- const item = value[memberName];
101256
- if (item == null && !memberSchema.isIdempotencyToken()) {
101257
- continue;
101258
- }
101259
- if (wroteAny) {
101260
- this.ensure(1);
101261
- this.json[this.i++] = COMMA;
101262
- }
101263
- const targetKey = jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;
101264
- this.writeAsciiQuoted(targetKey);
101265
- this.json[this.i++] = COLON;
101266
- this.writeValue(memberSchema, item, ns);
101267
- wroteAny = true;
101268
- }
101269
- this.ensure(1);
101270
- this.json[this.i++] = CLOSE_BRACE;
101371
+ this.writeValue(ns, value, undefined);
101372
+ const prefix = `"__type":"${ns.getName(true) ?? "Unknown"}",`;
101373
+ const z3 = prefix.length;
101374
+ this.ensure(z3);
101375
+ this.json.copyWithin(1 + z3, 1, this.i);
101376
+ encoder2.encodeInto(prefix, this.json.subarray(1));
101377
+ this.i += z3;
101271
101378
  } else {
101272
101379
  this.writeValue(ns, value, undefined);
101273
101380
  }
@@ -101319,7 +101426,7 @@ var require_protocols2 = __commonJS((exports) => {
101319
101426
  this.i = i2;
101320
101427
  }
101321
101428
  writeJsonString(s) {
101322
- this.ensure(s.length * 2 + 2);
101429
+ this.ensure(s.length * 3 + 2);
101323
101430
  this.json[this.i++] = QUOTE;
101324
101431
  const z3 = s.length;
101325
101432
  for (let j = 0;j < z3; ++j) {
@@ -101343,7 +101450,7 @@ var require_protocols2 = __commonJS((exports) => {
101343
101450
  this.ensure(4);
101344
101451
  const { written } = encoder2.encodeInto(s.substring(j, j + 2), this.json.subarray(this.i));
101345
101452
  this.i += written;
101346
- j++;
101453
+ ++j;
101347
101454
  } else {
101348
101455
  this.ensure(6);
101349
101456
  this.writeUnicodeEscape(c5);
@@ -101379,8 +101486,9 @@ var require_protocols2 = __commonJS((exports) => {
101379
101486
  static B64 = (() => {
101380
101487
  const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
101381
101488
  const table = new Uint8Array(64);
101382
- for (let i2 = 0;i2 < 64; i2++)
101489
+ for (let i2 = 0;i2 < 64; ++i2) {
101383
101490
  table[i2] = chars.charCodeAt(i2);
101491
+ }
101384
101492
  return table;
101385
101493
  })();
101386
101494
  writeBase64(data) {
@@ -101505,13 +101613,15 @@ var require_protocols2 = __commonJS((exports) => {
101505
101613
  }
101506
101614
  if (typeof value === "boolean") {
101507
101615
  this.ensure(5);
101616
+ let { i: i2, json: json2 } = this;
101508
101617
  if (value) {
101509
- this.json.set(TRUE, this.i);
101510
- this.i += 4;
101618
+ json2.set(TRUE, i2);
101619
+ i2 += 4;
101511
101620
  } else {
101512
- this.json.set(FALSE, this.i);
101513
- this.i += 5;
101621
+ json2.set(FALSE, i2);
101622
+ i2 += 5;
101514
101623
  }
101624
+ this.i = i2;
101515
101625
  return;
101516
101626
  }
101517
101627
  if (typeof value === "bigint") {
@@ -101523,7 +101633,6 @@ var require_protocols2 = __commonJS((exports) => {
101523
101633
  writeStruct(ns, value) {
101524
101634
  this.ensure(2);
101525
101635
  this.json[this.i++] = OPEN_BRACE;
101526
- let first = true;
101527
101636
  let wroteAny = false;
101528
101637
  const hasType = typeof value.__type === "string";
101529
101638
  let writtenKeys;
@@ -101532,13 +101641,13 @@ var require_protocols2 = __commonJS((exports) => {
101532
101641
  }
101533
101642
  for (const [memberName, memberSchema] of ns.structIterator()) {
101534
101643
  const item = value[memberName];
101535
- if (item == null && !memberSchema.isIdempotencyToken())
101644
+ if (item == null && !memberSchema.isIdempotencyToken()) {
101536
101645
  continue;
101537
- if (!first) {
101646
+ }
101647
+ if (wroteAny) {
101538
101648
  this.ensure(1);
101539
101649
  this.json[this.i++] = COMMA;
101540
101650
  }
101541
- first = false;
101542
101651
  wroteAny = true;
101543
101652
  const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;
101544
101653
  if (writtenKeys) {
@@ -101560,17 +101669,17 @@ var require_protocols2 = __commonJS((exports) => {
101560
101669
  }
101561
101670
  } else if (hasType) {
101562
101671
  for (const k in value) {
101563
- const targetKey = this.settings.jsonName ? writtenKeys.has(k) ? k : k : k;
101564
- if (writtenKeys.has(targetKey))
101672
+ if (writtenKeys.has(k)) {
101565
101673
  continue;
101566
- writtenKeys.add(targetKey);
101674
+ }
101675
+ writtenKeys.add(k);
101567
101676
  const v = value[k];
101568
- if (!first) {
101677
+ if (wroteAny) {
101569
101678
  this.ensure(1);
101570
101679
  this.json[this.i++] = COMMA;
101571
101680
  }
101572
- first = false;
101573
- this.writeAsciiQuoted(targetKey);
101681
+ wroteAny = true;
101682
+ this.writeAsciiQuoted(k);
101574
101683
  this.ensure(1);
101575
101684
  this.json[this.i++] = COLON;
101576
101685
  this.writeValue(15, v, undefined);
@@ -101580,20 +101689,30 @@ var require_protocols2 = __commonJS((exports) => {
101580
101689
  this.json[this.i++] = CLOSE_BRACE;
101581
101690
  }
101582
101691
  writeList(ns, value, isDocument) {
101583
- this.ensure(2);
101584
- this.json[this.i++] = OPEN_BRACKET;
101585
101692
  const sparse = !!ns.getMergedTraits().sparse;
101586
101693
  const valueSchema = ns.getValueSchema();
101694
+ if (!isDocument) {
101695
+ if (valueSchema.isStringSchema() || valueSchema.isNumericSchema() || valueSchema.isBooleanSchema()) {
101696
+ const json2 = sparse ? JSON.stringify(value) : JSON.stringify(value.filter((_) => _ != null));
101697
+ this.ensure(json2.length * 3);
101698
+ this.i += encoder2.encodeInto(json2, this.json.subarray(this.i)).written;
101699
+ return;
101700
+ }
101701
+ }
101702
+ this.ensure(2);
101703
+ this.json[this.i++] = OPEN_BRACKET;
101704
+ let wroteFirstItem = false;
101587
101705
  for (let i2 = 0;i2 < value.length; ++i2) {
101588
101706
  const item = value[i2];
101589
101707
  if (isDocument ? item === undefined : item == null && !sparse) {
101590
101708
  continue;
101591
101709
  }
101592
- if (i2 !== 0) {
101710
+ if (wroteFirstItem) {
101593
101711
  this.ensure(1);
101594
101712
  this.json[this.i++] = COMMA;
101595
101713
  }
101596
101714
  this.writeValue(valueSchema, item, undefined);
101715
+ wroteFirstItem = true;
101597
101716
  }
101598
101717
  this.ensure(1);
101599
101718
  this.json[this.i++] = CLOSE_BRACKET;
@@ -101615,8 +101734,7 @@ var require_protocols2 = __commonJS((exports) => {
101615
101734
  }
101616
101735
  const json2 = JSON.stringify(input);
101617
101736
  this.ensure(json2.length * 3);
101618
- const { written } = encoder2.encodeInto(json2, this.json.subarray(this.i));
101619
- this.i += written;
101737
+ this.i += encoder2.encodeInto(json2, this.json.subarray(this.i)).written;
101620
101738
  return;
101621
101739
  }
101622
101740
  }
@@ -102728,7 +102846,7 @@ var require_sso_oidc = __commonJS((exports) => {
102728
102846
  Region: { type: "builtInParams", name: "region" },
102729
102847
  UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }
102730
102848
  };
102731
- var version2 = "3.997.37";
102849
+ var version2 = "3.997.38";
102732
102850
  var packageInfo = {
102733
102851
  version: version2
102734
102852
  };
@@ -103625,7 +103743,7 @@ var require_sso = __commonJS((exports) => {
103625
103743
  Region: { type: "builtInParams", name: "region" },
103626
103744
  UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }
103627
103745
  };
103628
- var version2 = "3.997.37";
103746
+ var version2 = "3.997.38";
103629
103747
  var packageInfo = {
103630
103748
  version: version2
103631
103749
  };
@@ -104719,7 +104837,7 @@ var require_sts = __commonJS((exports) => {
104719
104837
  Region: { type: "builtInParams", name: "region" },
104720
104838
  UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }
104721
104839
  };
104722
- var version2 = "3.997.37";
104840
+ var version2 = "3.997.38";
104723
104841
  var packageInfo = {
104724
104842
  version: version2
104725
104843
  };
@@ -105488,7 +105606,7 @@ var require_signin = __commonJS((exports) => {
105488
105606
  Region: { type: "builtInParams", name: "region" },
105489
105607
  UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }
105490
105608
  };
105491
- var version2 = "3.997.37";
105609
+ var version2 = "3.997.38";
105492
105610
  var packageInfo = {
105493
105611
  version: version2
105494
105612
  };
@@ -119853,7 +119971,7 @@ var package_default;
119853
119971
  var init_package = __esm(() => {
119854
119972
  package_default = {
119855
119973
  name: "@funnycode/myclaude",
119856
- version: "0.1.165",
119974
+ version: "0.1.166",
119857
119975
  private: false,
119858
119976
  description: "An open-source AI coding assistant in your terminal - powered by Claude",
119859
119977
  license: "MIT",
@@ -566462,29 +566580,17 @@ function migrateEnableAllProjectMcpServersToSettings() {
566462
566580
  }
566463
566581
  migratedFields.push("disabledMcpjsonServers");
566464
566582
  }
566465
- const enabledSet = new Set(existingEnabledServers);
566466
- const overlappingServers = existingDisabledServers.filter((server) => enabledSet.has(server));
566467
- for (const server of overlappingServers) {
566468
- const index = existingDisabledServers.indexOf(server);
566469
- if (index !== -1) {
566470
- existingDisabledServers.splice(index, 1);
566471
- }
566472
- }
566583
+ const overlappingServers = existingEnabledServers.filter((server) => existingDisabledServers.includes(server));
566473
566584
  if (overlappingServers.length > 0) {
566474
566585
  logEvent("tengu_migrate_mcp_server_overlap_in_both_lists", {
566475
- overlappingServers: overlappingServers.join(",")
566586
+ overlappingServers: overlappingServers.join(","),
566587
+ resolvedBy: "removing_from_disabled_list"
566476
566588
  });
566477
- }
566478
- const existingHadEnabledServers = Array.isArray(existingSettings.enabledMcpjsonServers);
566479
- const existingHadDisabledServers = Array.isArray(existingSettings.disabledMcpjsonServers);
566480
- const hasEnabledServersArray = hasEnabledServers && Array.isArray(projectConfig.enabledMcpjsonServers);
566481
- const hasDisabledServersArray = hasDisabledServers && Array.isArray(projectConfig.disabledMcpjsonServers);
566482
- if (existingHadEnabledServers || hasEnabledServersArray) {
566483
- updates.enabledMcpjsonServers = existingEnabledServers;
566484
- }
566485
- if (existingHadDisabledServers || hasDisabledServersArray) {
566589
+ updates.disabledMcpjsonServers = existingDisabledServers.filter((server) => !overlappingServers.includes(server));
566590
+ } else {
566486
566591
  updates.disabledMcpjsonServers = existingDisabledServers;
566487
566592
  }
566593
+ updates.enabledMcpjsonServers = existingEnabledServers;
566488
566594
  saveCurrentProjectConfig((config5) => {
566489
566595
  const updated = { ...config5 };
566490
566596
  for (const field of migratedFields) {
@@ -566495,7 +566601,8 @@ function migrateEnableAllProjectMcpServersToSettings() {
566495
566601
  const currentSettings = getSettingsForSource("localSettings") || {};
566496
566602
  const currentSettingsHash = JSON.stringify(currentSettings);
566497
566603
  if (currentSettingsHash !== originalSettingsHash) {
566498
- logError2("MIGRATION WARNING: Settings file was modified concurrently during migration. " + "The migration will overwrite concurrent changes, potentially causing data loss. " + "Original settings hash: " + originalSettingsHash + ", Current settings hash: " + currentSettingsHash);
566604
+ logError2("MIGRATION WARNING: Settings file was modified concurrently during migration. " + "The migration will abort to prevent data loss. " + "Original settings hash: " + originalSettingsHash + ", Current settings hash: " + currentSettingsHash);
566605
+ throw new Error("Migration aborted due to concurrent changes to settings file. " + "Please ensure no other processes are modifying the settings file and try again.");
566499
566606
  }
566500
566607
  updateSettingsForSource("localSettings", updates);
566501
566608
  saveGlobalConfig((c6) => ({ ...c6, hasCompletedMcpServerMigration: true }));
@@ -566510,7 +566617,8 @@ function migrateEnableAllProjectMcpServersToSettings() {
566510
566617
  const currentSettings = getSettingsForSource("localSettings") || {};
566511
566618
  const currentSettingsHash = JSON.stringify(currentSettings);
566512
566619
  if (currentSettingsHash !== originalSettingsHash) {
566513
- logError2("MIGRATION WARNING: Settings file was modified concurrently. " + "The rollback will overwrite concurrent changes, potentially causing data loss. " + "Original settings hash: " + originalSettingsHash + ", Current settings hash: " + currentSettingsHash);
566620
+ logError2("MIGRATION WARNING: Settings file was modified concurrently. " + "The rollback will abort to prevent data loss. " + "Original settings hash: " + originalSettingsHash + ", Current settings hash: " + currentSettingsHash);
566621
+ throw new Error("Rollback aborted due to concurrent changes to settings file. " + "Please ensure no other processes are modifying the settings file.");
566514
566622
  }
566515
566623
  const rollbackUpdates = {};
566516
566624
  for (const field of migratedFields) {
@@ -566521,27 +566629,22 @@ function migrateEnableAllProjectMcpServersToSettings() {
566521
566629
  }
566522
566630
  }
566523
566631
  updateSettingsForSource("localSettings", rollbackUpdates);
566524
- } catch (rollbackError) {
566525
- logError2("Rollback of settings failed", rollbackError);
566526
- rollbackFailed = true;
566527
- }
566528
- try {
566529
566632
  saveCurrentProjectConfig((config5) => {
566530
566633
  const updated = { ...config5 };
566531
566634
  for (const field of migratedFields) {
566532
- updated[field] = originalProjectConfig[field];
566635
+ if (field in originalProjectConfig) {
566636
+ updated[field] = originalProjectConfig[field];
566637
+ }
566533
566638
  }
566534
566639
  return updated;
566535
566640
  });
566536
566641
  } catch (rollbackError) {
566537
- logError2("Rollback of project config failed", rollbackError);
566642
+ logError2("Rollback of settings failed", rollbackError);
566538
566643
  rollbackFailed = true;
566539
566644
  }
566540
566645
  if (rollbackFailed) {
566541
- logError2("MIGRATION WARNING: Rollback was incomplete. The system may be in an inconsistent " + "state with duplicate or conflicting MCP server configuration. Manual intervention " + "may be required to restore consistency between project config and settings.", new Error("Migration failed and rollback was incomplete. The system may be in an inconsistent state. " + "Original error: " + (error49 instanceof Error ? error49.message : String(error49))));
566542
- throw new Error("Migration failed and rollback was incomplete. The system may be in an inconsistent state. " + "Original error: " + (error49 instanceof Error ? error49.message : String(error49)));
566543
- } else {
566544
- logError2("Rollback completed successfully: original MCP server settings restored", error49);
566646
+ logError2("Migration failed and rollback was incomplete. " + "The settings file may be in an inconsistent state. " + "Please check the settings file manually.");
566647
+ throw error49;
566545
566648
  }
566546
566649
  }
566547
566650
  }
@@ -566631,7 +566734,8 @@ function migrateReplBridgeEnabledToRemoteControlAtStartup() {
566631
566734
  replBridgeEnabled: undefined
566632
566735
  };
566633
566736
  }
566634
- const { replBridgeEnabled: _2, ...next } = prev;
566737
+ const next = { ...prev };
566738
+ delete next.replBridgeEnabled;
566635
566739
  return next;
566636
566740
  });
566637
566741
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@funnycode/myclaude",
3
- "version": "0.1.165",
3
+ "version": "0.1.166",
4
4
  "private": false,
5
5
  "description": "An open-source AI coding assistant in your terminal - powered by Claude",
6
6
  "license": "MIT",