claudemesh-cli 0.9.1 → 0.9.3

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.
Files changed (2) hide show
  1. package/dist/index.js +1134 -8
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -40047,6 +40047,1023 @@ function deriveHttpUrl(wssUrl) {
40047
40047
  return url.toString().replace(/\/$/, "");
40048
40048
  }
40049
40049
 
40050
+ // ../../node_modules/qrcode-terminal/vendor/QRCode/QRMode.js
40051
+ var require_QRMode = __commonJS((exports, module) => {
40052
+ module.exports = {
40053
+ MODE_NUMBER: 1 << 0,
40054
+ MODE_ALPHA_NUM: 1 << 1,
40055
+ MODE_8BIT_BYTE: 1 << 2,
40056
+ MODE_KANJI: 1 << 3
40057
+ };
40058
+ });
40059
+
40060
+ // ../../node_modules/qrcode-terminal/vendor/QRCode/QR8bitByte.js
40061
+ var require_QR8bitByte = __commonJS((exports, module) => {
40062
+ var QRMode = require_QRMode();
40063
+ function QR8bitByte(data) {
40064
+ this.mode = QRMode.MODE_8BIT_BYTE;
40065
+ this.data = data;
40066
+ }
40067
+ QR8bitByte.prototype = {
40068
+ getLength: function() {
40069
+ return this.data.length;
40070
+ },
40071
+ write: function(buffer) {
40072
+ for (var i = 0;i < this.data.length; i++) {
40073
+ buffer.put(this.data.charCodeAt(i), 8);
40074
+ }
40075
+ }
40076
+ };
40077
+ module.exports = QR8bitByte;
40078
+ });
40079
+
40080
+ // ../../node_modules/qrcode-terminal/vendor/QRCode/QRMath.js
40081
+ var require_QRMath = __commonJS((exports, module) => {
40082
+ var QRMath = {
40083
+ glog: function(n) {
40084
+ if (n < 1) {
40085
+ throw new Error("glog(" + n + ")");
40086
+ }
40087
+ return QRMath.LOG_TABLE[n];
40088
+ },
40089
+ gexp: function(n) {
40090
+ while (n < 0) {
40091
+ n += 255;
40092
+ }
40093
+ while (n >= 256) {
40094
+ n -= 255;
40095
+ }
40096
+ return QRMath.EXP_TABLE[n];
40097
+ },
40098
+ EXP_TABLE: new Array(256),
40099
+ LOG_TABLE: new Array(256)
40100
+ };
40101
+ for (i = 0;i < 8; i++) {
40102
+ QRMath.EXP_TABLE[i] = 1 << i;
40103
+ }
40104
+ var i;
40105
+ for (i = 8;i < 256; i++) {
40106
+ QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8];
40107
+ }
40108
+ var i;
40109
+ for (i = 0;i < 255; i++) {
40110
+ QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i;
40111
+ }
40112
+ var i;
40113
+ module.exports = QRMath;
40114
+ });
40115
+
40116
+ // ../../node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js
40117
+ var require_QRPolynomial = __commonJS((exports, module) => {
40118
+ var QRMath = require_QRMath();
40119
+ function QRPolynomial(num, shift) {
40120
+ if (num.length === undefined) {
40121
+ throw new Error(num.length + "/" + shift);
40122
+ }
40123
+ var offset = 0;
40124
+ while (offset < num.length && num[offset] === 0) {
40125
+ offset++;
40126
+ }
40127
+ this.num = new Array(num.length - offset + shift);
40128
+ for (var i = 0;i < num.length - offset; i++) {
40129
+ this.num[i] = num[i + offset];
40130
+ }
40131
+ }
40132
+ QRPolynomial.prototype = {
40133
+ get: function(index) {
40134
+ return this.num[index];
40135
+ },
40136
+ getLength: function() {
40137
+ return this.num.length;
40138
+ },
40139
+ multiply: function(e) {
40140
+ var num = new Array(this.getLength() + e.getLength() - 1);
40141
+ for (var i = 0;i < this.getLength(); i++) {
40142
+ for (var j = 0;j < e.getLength(); j++) {
40143
+ num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j)));
40144
+ }
40145
+ }
40146
+ return new QRPolynomial(num, 0);
40147
+ },
40148
+ mod: function(e) {
40149
+ if (this.getLength() - e.getLength() < 0) {
40150
+ return this;
40151
+ }
40152
+ var ratio = QRMath.glog(this.get(0)) - QRMath.glog(e.get(0));
40153
+ var num = new Array(this.getLength());
40154
+ for (var i = 0;i < this.getLength(); i++) {
40155
+ num[i] = this.get(i);
40156
+ }
40157
+ for (var x = 0;x < e.getLength(); x++) {
40158
+ num[x] ^= QRMath.gexp(QRMath.glog(e.get(x)) + ratio);
40159
+ }
40160
+ return new QRPolynomial(num, 0).mod(e);
40161
+ }
40162
+ };
40163
+ module.exports = QRPolynomial;
40164
+ });
40165
+
40166
+ // ../../node_modules/qrcode-terminal/vendor/QRCode/QRMaskPattern.js
40167
+ var require_QRMaskPattern = __commonJS((exports, module) => {
40168
+ module.exports = {
40169
+ PATTERN000: 0,
40170
+ PATTERN001: 1,
40171
+ PATTERN010: 2,
40172
+ PATTERN011: 3,
40173
+ PATTERN100: 4,
40174
+ PATTERN101: 5,
40175
+ PATTERN110: 6,
40176
+ PATTERN111: 7
40177
+ };
40178
+ });
40179
+
40180
+ // ../../node_modules/qrcode-terminal/vendor/QRCode/QRUtil.js
40181
+ var require_QRUtil = __commonJS((exports, module) => {
40182
+ var QRMode = require_QRMode();
40183
+ var QRPolynomial = require_QRPolynomial();
40184
+ var QRMath = require_QRMath();
40185
+ var QRMaskPattern = require_QRMaskPattern();
40186
+ var QRUtil = {
40187
+ PATTERN_POSITION_TABLE: [
40188
+ [],
40189
+ [6, 18],
40190
+ [6, 22],
40191
+ [6, 26],
40192
+ [6, 30],
40193
+ [6, 34],
40194
+ [6, 22, 38],
40195
+ [6, 24, 42],
40196
+ [6, 26, 46],
40197
+ [6, 28, 50],
40198
+ [6, 30, 54],
40199
+ [6, 32, 58],
40200
+ [6, 34, 62],
40201
+ [6, 26, 46, 66],
40202
+ [6, 26, 48, 70],
40203
+ [6, 26, 50, 74],
40204
+ [6, 30, 54, 78],
40205
+ [6, 30, 56, 82],
40206
+ [6, 30, 58, 86],
40207
+ [6, 34, 62, 90],
40208
+ [6, 28, 50, 72, 94],
40209
+ [6, 26, 50, 74, 98],
40210
+ [6, 30, 54, 78, 102],
40211
+ [6, 28, 54, 80, 106],
40212
+ [6, 32, 58, 84, 110],
40213
+ [6, 30, 58, 86, 114],
40214
+ [6, 34, 62, 90, 118],
40215
+ [6, 26, 50, 74, 98, 122],
40216
+ [6, 30, 54, 78, 102, 126],
40217
+ [6, 26, 52, 78, 104, 130],
40218
+ [6, 30, 56, 82, 108, 134],
40219
+ [6, 34, 60, 86, 112, 138],
40220
+ [6, 30, 58, 86, 114, 142],
40221
+ [6, 34, 62, 90, 118, 146],
40222
+ [6, 30, 54, 78, 102, 126, 150],
40223
+ [6, 24, 50, 76, 102, 128, 154],
40224
+ [6, 28, 54, 80, 106, 132, 158],
40225
+ [6, 32, 58, 84, 110, 136, 162],
40226
+ [6, 26, 54, 82, 110, 138, 166],
40227
+ [6, 30, 58, 86, 114, 142, 170]
40228
+ ],
40229
+ G15: 1 << 10 | 1 << 8 | 1 << 5 | 1 << 4 | 1 << 2 | 1 << 1 | 1 << 0,
40230
+ G18: 1 << 12 | 1 << 11 | 1 << 10 | 1 << 9 | 1 << 8 | 1 << 5 | 1 << 2 | 1 << 0,
40231
+ G15_MASK: 1 << 14 | 1 << 12 | 1 << 10 | 1 << 4 | 1 << 1,
40232
+ getBCHTypeInfo: function(data) {
40233
+ var d = data << 10;
40234
+ while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {
40235
+ d ^= QRUtil.G15 << QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15);
40236
+ }
40237
+ return (data << 10 | d) ^ QRUtil.G15_MASK;
40238
+ },
40239
+ getBCHTypeNumber: function(data) {
40240
+ var d = data << 12;
40241
+ while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {
40242
+ d ^= QRUtil.G18 << QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18);
40243
+ }
40244
+ return data << 12 | d;
40245
+ },
40246
+ getBCHDigit: function(data) {
40247
+ var digit = 0;
40248
+ while (data !== 0) {
40249
+ digit++;
40250
+ data >>>= 1;
40251
+ }
40252
+ return digit;
40253
+ },
40254
+ getPatternPosition: function(typeNumber) {
40255
+ return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];
40256
+ },
40257
+ getMask: function(maskPattern, i, j) {
40258
+ switch (maskPattern) {
40259
+ case QRMaskPattern.PATTERN000:
40260
+ return (i + j) % 2 === 0;
40261
+ case QRMaskPattern.PATTERN001:
40262
+ return i % 2 === 0;
40263
+ case QRMaskPattern.PATTERN010:
40264
+ return j % 3 === 0;
40265
+ case QRMaskPattern.PATTERN011:
40266
+ return (i + j) % 3 === 0;
40267
+ case QRMaskPattern.PATTERN100:
40268
+ return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0;
40269
+ case QRMaskPattern.PATTERN101:
40270
+ return i * j % 2 + i * j % 3 === 0;
40271
+ case QRMaskPattern.PATTERN110:
40272
+ return (i * j % 2 + i * j % 3) % 2 === 0;
40273
+ case QRMaskPattern.PATTERN111:
40274
+ return (i * j % 3 + (i + j) % 2) % 2 === 0;
40275
+ default:
40276
+ throw new Error("bad maskPattern:" + maskPattern);
40277
+ }
40278
+ },
40279
+ getErrorCorrectPolynomial: function(errorCorrectLength) {
40280
+ var a = new QRPolynomial([1], 0);
40281
+ for (var i = 0;i < errorCorrectLength; i++) {
40282
+ a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0));
40283
+ }
40284
+ return a;
40285
+ },
40286
+ getLengthInBits: function(mode, type) {
40287
+ if (1 <= type && type < 10) {
40288
+ switch (mode) {
40289
+ case QRMode.MODE_NUMBER:
40290
+ return 10;
40291
+ case QRMode.MODE_ALPHA_NUM:
40292
+ return 9;
40293
+ case QRMode.MODE_8BIT_BYTE:
40294
+ return 8;
40295
+ case QRMode.MODE_KANJI:
40296
+ return 8;
40297
+ default:
40298
+ throw new Error("mode:" + mode);
40299
+ }
40300
+ } else if (type < 27) {
40301
+ switch (mode) {
40302
+ case QRMode.MODE_NUMBER:
40303
+ return 12;
40304
+ case QRMode.MODE_ALPHA_NUM:
40305
+ return 11;
40306
+ case QRMode.MODE_8BIT_BYTE:
40307
+ return 16;
40308
+ case QRMode.MODE_KANJI:
40309
+ return 10;
40310
+ default:
40311
+ throw new Error("mode:" + mode);
40312
+ }
40313
+ } else if (type < 41) {
40314
+ switch (mode) {
40315
+ case QRMode.MODE_NUMBER:
40316
+ return 14;
40317
+ case QRMode.MODE_ALPHA_NUM:
40318
+ return 13;
40319
+ case QRMode.MODE_8BIT_BYTE:
40320
+ return 16;
40321
+ case QRMode.MODE_KANJI:
40322
+ return 12;
40323
+ default:
40324
+ throw new Error("mode:" + mode);
40325
+ }
40326
+ } else {
40327
+ throw new Error("type:" + type);
40328
+ }
40329
+ },
40330
+ getLostPoint: function(qrCode) {
40331
+ var moduleCount = qrCode.getModuleCount();
40332
+ var lostPoint = 0;
40333
+ var row = 0;
40334
+ var col = 0;
40335
+ for (row = 0;row < moduleCount; row++) {
40336
+ for (col = 0;col < moduleCount; col++) {
40337
+ var sameCount = 0;
40338
+ var dark = qrCode.isDark(row, col);
40339
+ for (var r = -1;r <= 1; r++) {
40340
+ if (row + r < 0 || moduleCount <= row + r) {
40341
+ continue;
40342
+ }
40343
+ for (var c = -1;c <= 1; c++) {
40344
+ if (col + c < 0 || moduleCount <= col + c) {
40345
+ continue;
40346
+ }
40347
+ if (r === 0 && c === 0) {
40348
+ continue;
40349
+ }
40350
+ if (dark === qrCode.isDark(row + r, col + c)) {
40351
+ sameCount++;
40352
+ }
40353
+ }
40354
+ }
40355
+ if (sameCount > 5) {
40356
+ lostPoint += 3 + sameCount - 5;
40357
+ }
40358
+ }
40359
+ }
40360
+ for (row = 0;row < moduleCount - 1; row++) {
40361
+ for (col = 0;col < moduleCount - 1; col++) {
40362
+ var count = 0;
40363
+ if (qrCode.isDark(row, col))
40364
+ count++;
40365
+ if (qrCode.isDark(row + 1, col))
40366
+ count++;
40367
+ if (qrCode.isDark(row, col + 1))
40368
+ count++;
40369
+ if (qrCode.isDark(row + 1, col + 1))
40370
+ count++;
40371
+ if (count === 0 || count === 4) {
40372
+ lostPoint += 3;
40373
+ }
40374
+ }
40375
+ }
40376
+ for (row = 0;row < moduleCount; row++) {
40377
+ for (col = 0;col < moduleCount - 6; col++) {
40378
+ if (qrCode.isDark(row, col) && !qrCode.isDark(row, col + 1) && qrCode.isDark(row, col + 2) && qrCode.isDark(row, col + 3) && qrCode.isDark(row, col + 4) && !qrCode.isDark(row, col + 5) && qrCode.isDark(row, col + 6)) {
40379
+ lostPoint += 40;
40380
+ }
40381
+ }
40382
+ }
40383
+ for (col = 0;col < moduleCount; col++) {
40384
+ for (row = 0;row < moduleCount - 6; row++) {
40385
+ if (qrCode.isDark(row, col) && !qrCode.isDark(row + 1, col) && qrCode.isDark(row + 2, col) && qrCode.isDark(row + 3, col) && qrCode.isDark(row + 4, col) && !qrCode.isDark(row + 5, col) && qrCode.isDark(row + 6, col)) {
40386
+ lostPoint += 40;
40387
+ }
40388
+ }
40389
+ }
40390
+ var darkCount = 0;
40391
+ for (col = 0;col < moduleCount; col++) {
40392
+ for (row = 0;row < moduleCount; row++) {
40393
+ if (qrCode.isDark(row, col)) {
40394
+ darkCount++;
40395
+ }
40396
+ }
40397
+ }
40398
+ var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;
40399
+ lostPoint += ratio * 10;
40400
+ return lostPoint;
40401
+ }
40402
+ };
40403
+ module.exports = QRUtil;
40404
+ });
40405
+
40406
+ // ../../node_modules/qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js
40407
+ var require_QRErrorCorrectLevel = __commonJS((exports, module) => {
40408
+ module.exports = {
40409
+ L: 1,
40410
+ M: 0,
40411
+ Q: 3,
40412
+ H: 2
40413
+ };
40414
+ });
40415
+
40416
+ // ../../node_modules/qrcode-terminal/vendor/QRCode/QRRSBlock.js
40417
+ var require_QRRSBlock = __commonJS((exports, module) => {
40418
+ var QRErrorCorrectLevel = require_QRErrorCorrectLevel();
40419
+ function QRRSBlock(totalCount, dataCount) {
40420
+ this.totalCount = totalCount;
40421
+ this.dataCount = dataCount;
40422
+ }
40423
+ QRRSBlock.RS_BLOCK_TABLE = [
40424
+ [1, 26, 19],
40425
+ [1, 26, 16],
40426
+ [1, 26, 13],
40427
+ [1, 26, 9],
40428
+ [1, 44, 34],
40429
+ [1, 44, 28],
40430
+ [1, 44, 22],
40431
+ [1, 44, 16],
40432
+ [1, 70, 55],
40433
+ [1, 70, 44],
40434
+ [2, 35, 17],
40435
+ [2, 35, 13],
40436
+ [1, 100, 80],
40437
+ [2, 50, 32],
40438
+ [2, 50, 24],
40439
+ [4, 25, 9],
40440
+ [1, 134, 108],
40441
+ [2, 67, 43],
40442
+ [2, 33, 15, 2, 34, 16],
40443
+ [2, 33, 11, 2, 34, 12],
40444
+ [2, 86, 68],
40445
+ [4, 43, 27],
40446
+ [4, 43, 19],
40447
+ [4, 43, 15],
40448
+ [2, 98, 78],
40449
+ [4, 49, 31],
40450
+ [2, 32, 14, 4, 33, 15],
40451
+ [4, 39, 13, 1, 40, 14],
40452
+ [2, 121, 97],
40453
+ [2, 60, 38, 2, 61, 39],
40454
+ [4, 40, 18, 2, 41, 19],
40455
+ [4, 40, 14, 2, 41, 15],
40456
+ [2, 146, 116],
40457
+ [3, 58, 36, 2, 59, 37],
40458
+ [4, 36, 16, 4, 37, 17],
40459
+ [4, 36, 12, 4, 37, 13],
40460
+ [2, 86, 68, 2, 87, 69],
40461
+ [4, 69, 43, 1, 70, 44],
40462
+ [6, 43, 19, 2, 44, 20],
40463
+ [6, 43, 15, 2, 44, 16],
40464
+ [4, 101, 81],
40465
+ [1, 80, 50, 4, 81, 51],
40466
+ [4, 50, 22, 4, 51, 23],
40467
+ [3, 36, 12, 8, 37, 13],
40468
+ [2, 116, 92, 2, 117, 93],
40469
+ [6, 58, 36, 2, 59, 37],
40470
+ [4, 46, 20, 6, 47, 21],
40471
+ [7, 42, 14, 4, 43, 15],
40472
+ [4, 133, 107],
40473
+ [8, 59, 37, 1, 60, 38],
40474
+ [8, 44, 20, 4, 45, 21],
40475
+ [12, 33, 11, 4, 34, 12],
40476
+ [3, 145, 115, 1, 146, 116],
40477
+ [4, 64, 40, 5, 65, 41],
40478
+ [11, 36, 16, 5, 37, 17],
40479
+ [11, 36, 12, 5, 37, 13],
40480
+ [5, 109, 87, 1, 110, 88],
40481
+ [5, 65, 41, 5, 66, 42],
40482
+ [5, 54, 24, 7, 55, 25],
40483
+ [11, 36, 12],
40484
+ [5, 122, 98, 1, 123, 99],
40485
+ [7, 73, 45, 3, 74, 46],
40486
+ [15, 43, 19, 2, 44, 20],
40487
+ [3, 45, 15, 13, 46, 16],
40488
+ [1, 135, 107, 5, 136, 108],
40489
+ [10, 74, 46, 1, 75, 47],
40490
+ [1, 50, 22, 15, 51, 23],
40491
+ [2, 42, 14, 17, 43, 15],
40492
+ [5, 150, 120, 1, 151, 121],
40493
+ [9, 69, 43, 4, 70, 44],
40494
+ [17, 50, 22, 1, 51, 23],
40495
+ [2, 42, 14, 19, 43, 15],
40496
+ [3, 141, 113, 4, 142, 114],
40497
+ [3, 70, 44, 11, 71, 45],
40498
+ [17, 47, 21, 4, 48, 22],
40499
+ [9, 39, 13, 16, 40, 14],
40500
+ [3, 135, 107, 5, 136, 108],
40501
+ [3, 67, 41, 13, 68, 42],
40502
+ [15, 54, 24, 5, 55, 25],
40503
+ [15, 43, 15, 10, 44, 16],
40504
+ [4, 144, 116, 4, 145, 117],
40505
+ [17, 68, 42],
40506
+ [17, 50, 22, 6, 51, 23],
40507
+ [19, 46, 16, 6, 47, 17],
40508
+ [2, 139, 111, 7, 140, 112],
40509
+ [17, 74, 46],
40510
+ [7, 54, 24, 16, 55, 25],
40511
+ [34, 37, 13],
40512
+ [4, 151, 121, 5, 152, 122],
40513
+ [4, 75, 47, 14, 76, 48],
40514
+ [11, 54, 24, 14, 55, 25],
40515
+ [16, 45, 15, 14, 46, 16],
40516
+ [6, 147, 117, 4, 148, 118],
40517
+ [6, 73, 45, 14, 74, 46],
40518
+ [11, 54, 24, 16, 55, 25],
40519
+ [30, 46, 16, 2, 47, 17],
40520
+ [8, 132, 106, 4, 133, 107],
40521
+ [8, 75, 47, 13, 76, 48],
40522
+ [7, 54, 24, 22, 55, 25],
40523
+ [22, 45, 15, 13, 46, 16],
40524
+ [10, 142, 114, 2, 143, 115],
40525
+ [19, 74, 46, 4, 75, 47],
40526
+ [28, 50, 22, 6, 51, 23],
40527
+ [33, 46, 16, 4, 47, 17],
40528
+ [8, 152, 122, 4, 153, 123],
40529
+ [22, 73, 45, 3, 74, 46],
40530
+ [8, 53, 23, 26, 54, 24],
40531
+ [12, 45, 15, 28, 46, 16],
40532
+ [3, 147, 117, 10, 148, 118],
40533
+ [3, 73, 45, 23, 74, 46],
40534
+ [4, 54, 24, 31, 55, 25],
40535
+ [11, 45, 15, 31, 46, 16],
40536
+ [7, 146, 116, 7, 147, 117],
40537
+ [21, 73, 45, 7, 74, 46],
40538
+ [1, 53, 23, 37, 54, 24],
40539
+ [19, 45, 15, 26, 46, 16],
40540
+ [5, 145, 115, 10, 146, 116],
40541
+ [19, 75, 47, 10, 76, 48],
40542
+ [15, 54, 24, 25, 55, 25],
40543
+ [23, 45, 15, 25, 46, 16],
40544
+ [13, 145, 115, 3, 146, 116],
40545
+ [2, 74, 46, 29, 75, 47],
40546
+ [42, 54, 24, 1, 55, 25],
40547
+ [23, 45, 15, 28, 46, 16],
40548
+ [17, 145, 115],
40549
+ [10, 74, 46, 23, 75, 47],
40550
+ [10, 54, 24, 35, 55, 25],
40551
+ [19, 45, 15, 35, 46, 16],
40552
+ [17, 145, 115, 1, 146, 116],
40553
+ [14, 74, 46, 21, 75, 47],
40554
+ [29, 54, 24, 19, 55, 25],
40555
+ [11, 45, 15, 46, 46, 16],
40556
+ [13, 145, 115, 6, 146, 116],
40557
+ [14, 74, 46, 23, 75, 47],
40558
+ [44, 54, 24, 7, 55, 25],
40559
+ [59, 46, 16, 1, 47, 17],
40560
+ [12, 151, 121, 7, 152, 122],
40561
+ [12, 75, 47, 26, 76, 48],
40562
+ [39, 54, 24, 14, 55, 25],
40563
+ [22, 45, 15, 41, 46, 16],
40564
+ [6, 151, 121, 14, 152, 122],
40565
+ [6, 75, 47, 34, 76, 48],
40566
+ [46, 54, 24, 10, 55, 25],
40567
+ [2, 45, 15, 64, 46, 16],
40568
+ [17, 152, 122, 4, 153, 123],
40569
+ [29, 74, 46, 14, 75, 47],
40570
+ [49, 54, 24, 10, 55, 25],
40571
+ [24, 45, 15, 46, 46, 16],
40572
+ [4, 152, 122, 18, 153, 123],
40573
+ [13, 74, 46, 32, 75, 47],
40574
+ [48, 54, 24, 14, 55, 25],
40575
+ [42, 45, 15, 32, 46, 16],
40576
+ [20, 147, 117, 4, 148, 118],
40577
+ [40, 75, 47, 7, 76, 48],
40578
+ [43, 54, 24, 22, 55, 25],
40579
+ [10, 45, 15, 67, 46, 16],
40580
+ [19, 148, 118, 6, 149, 119],
40581
+ [18, 75, 47, 31, 76, 48],
40582
+ [34, 54, 24, 34, 55, 25],
40583
+ [20, 45, 15, 61, 46, 16]
40584
+ ];
40585
+ QRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {
40586
+ var rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);
40587
+ if (rsBlock === undefined) {
40588
+ throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + errorCorrectLevel);
40589
+ }
40590
+ var length = rsBlock.length / 3;
40591
+ var list = [];
40592
+ for (var i = 0;i < length; i++) {
40593
+ var count = rsBlock[i * 3 + 0];
40594
+ var totalCount = rsBlock[i * 3 + 1];
40595
+ var dataCount = rsBlock[i * 3 + 2];
40596
+ for (var j = 0;j < count; j++) {
40597
+ list.push(new QRRSBlock(totalCount, dataCount));
40598
+ }
40599
+ }
40600
+ return list;
40601
+ };
40602
+ QRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {
40603
+ switch (errorCorrectLevel) {
40604
+ case QRErrorCorrectLevel.L:
40605
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];
40606
+ case QRErrorCorrectLevel.M:
40607
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];
40608
+ case QRErrorCorrectLevel.Q:
40609
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];
40610
+ case QRErrorCorrectLevel.H:
40611
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];
40612
+ default:
40613
+ return;
40614
+ }
40615
+ };
40616
+ module.exports = QRRSBlock;
40617
+ });
40618
+
40619
+ // ../../node_modules/qrcode-terminal/vendor/QRCode/QRBitBuffer.js
40620
+ var require_QRBitBuffer = __commonJS((exports, module) => {
40621
+ function QRBitBuffer() {
40622
+ this.buffer = [];
40623
+ this.length = 0;
40624
+ }
40625
+ QRBitBuffer.prototype = {
40626
+ get: function(index) {
40627
+ var bufIndex = Math.floor(index / 8);
40628
+ return (this.buffer[bufIndex] >>> 7 - index % 8 & 1) == 1;
40629
+ },
40630
+ put: function(num, length) {
40631
+ for (var i = 0;i < length; i++) {
40632
+ this.putBit((num >>> length - i - 1 & 1) == 1);
40633
+ }
40634
+ },
40635
+ getLengthInBits: function() {
40636
+ return this.length;
40637
+ },
40638
+ putBit: function(bit) {
40639
+ var bufIndex = Math.floor(this.length / 8);
40640
+ if (this.buffer.length <= bufIndex) {
40641
+ this.buffer.push(0);
40642
+ }
40643
+ if (bit) {
40644
+ this.buffer[bufIndex] |= 128 >>> this.length % 8;
40645
+ }
40646
+ this.length++;
40647
+ }
40648
+ };
40649
+ module.exports = QRBitBuffer;
40650
+ });
40651
+
40652
+ // ../../node_modules/qrcode-terminal/vendor/QRCode/index.js
40653
+ var require_QRCode = __commonJS((exports, module) => {
40654
+ var QR8bitByte = require_QR8bitByte();
40655
+ var QRUtil = require_QRUtil();
40656
+ var QRPolynomial = require_QRPolynomial();
40657
+ var QRRSBlock = require_QRRSBlock();
40658
+ var QRBitBuffer = require_QRBitBuffer();
40659
+ function QRCode(typeNumber, errorCorrectLevel) {
40660
+ this.typeNumber = typeNumber;
40661
+ this.errorCorrectLevel = errorCorrectLevel;
40662
+ this.modules = null;
40663
+ this.moduleCount = 0;
40664
+ this.dataCache = null;
40665
+ this.dataList = [];
40666
+ }
40667
+ QRCode.prototype = {
40668
+ addData: function(data) {
40669
+ var newData = new QR8bitByte(data);
40670
+ this.dataList.push(newData);
40671
+ this.dataCache = null;
40672
+ },
40673
+ isDark: function(row, col) {
40674
+ if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {
40675
+ throw new Error(row + "," + col);
40676
+ }
40677
+ return this.modules[row][col];
40678
+ },
40679
+ getModuleCount: function() {
40680
+ return this.moduleCount;
40681
+ },
40682
+ make: function() {
40683
+ if (this.typeNumber < 1) {
40684
+ var typeNumber = 1;
40685
+ for (typeNumber = 1;typeNumber < 40; typeNumber++) {
40686
+ var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);
40687
+ var buffer = new QRBitBuffer;
40688
+ var totalDataCount = 0;
40689
+ for (var i = 0;i < rsBlocks.length; i++) {
40690
+ totalDataCount += rsBlocks[i].dataCount;
40691
+ }
40692
+ for (var x = 0;x < this.dataList.length; x++) {
40693
+ var data = this.dataList[x];
40694
+ buffer.put(data.mode, 4);
40695
+ buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber));
40696
+ data.write(buffer);
40697
+ }
40698
+ if (buffer.getLengthInBits() <= totalDataCount * 8)
40699
+ break;
40700
+ }
40701
+ this.typeNumber = typeNumber;
40702
+ }
40703
+ this.makeImpl(false, this.getBestMaskPattern());
40704
+ },
40705
+ makeImpl: function(test, maskPattern) {
40706
+ this.moduleCount = this.typeNumber * 4 + 17;
40707
+ this.modules = new Array(this.moduleCount);
40708
+ for (var row = 0;row < this.moduleCount; row++) {
40709
+ this.modules[row] = new Array(this.moduleCount);
40710
+ for (var col = 0;col < this.moduleCount; col++) {
40711
+ this.modules[row][col] = null;
40712
+ }
40713
+ }
40714
+ this.setupPositionProbePattern(0, 0);
40715
+ this.setupPositionProbePattern(this.moduleCount - 7, 0);
40716
+ this.setupPositionProbePattern(0, this.moduleCount - 7);
40717
+ this.setupPositionAdjustPattern();
40718
+ this.setupTimingPattern();
40719
+ this.setupTypeInfo(test, maskPattern);
40720
+ if (this.typeNumber >= 7) {
40721
+ this.setupTypeNumber(test);
40722
+ }
40723
+ if (this.dataCache === null) {
40724
+ this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);
40725
+ }
40726
+ this.mapData(this.dataCache, maskPattern);
40727
+ },
40728
+ setupPositionProbePattern: function(row, col) {
40729
+ for (var r = -1;r <= 7; r++) {
40730
+ if (row + r <= -1 || this.moduleCount <= row + r)
40731
+ continue;
40732
+ for (var c = -1;c <= 7; c++) {
40733
+ if (col + c <= -1 || this.moduleCount <= col + c)
40734
+ continue;
40735
+ if (0 <= r && r <= 6 && (c === 0 || c === 6) || 0 <= c && c <= 6 && (r === 0 || r === 6) || 2 <= r && r <= 4 && 2 <= c && c <= 4) {
40736
+ this.modules[row + r][col + c] = true;
40737
+ } else {
40738
+ this.modules[row + r][col + c] = false;
40739
+ }
40740
+ }
40741
+ }
40742
+ },
40743
+ getBestMaskPattern: function() {
40744
+ var minLostPoint = 0;
40745
+ var pattern = 0;
40746
+ for (var i = 0;i < 8; i++) {
40747
+ this.makeImpl(true, i);
40748
+ var lostPoint = QRUtil.getLostPoint(this);
40749
+ if (i === 0 || minLostPoint > lostPoint) {
40750
+ minLostPoint = lostPoint;
40751
+ pattern = i;
40752
+ }
40753
+ }
40754
+ return pattern;
40755
+ },
40756
+ createMovieClip: function(target_mc, instance_name, depth) {
40757
+ var qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);
40758
+ var cs = 1;
40759
+ this.make();
40760
+ for (var row = 0;row < this.modules.length; row++) {
40761
+ var y = row * cs;
40762
+ for (var col = 0;col < this.modules[row].length; col++) {
40763
+ var x = col * cs;
40764
+ var dark = this.modules[row][col];
40765
+ if (dark) {
40766
+ qr_mc.beginFill(0, 100);
40767
+ qr_mc.moveTo(x, y);
40768
+ qr_mc.lineTo(x + cs, y);
40769
+ qr_mc.lineTo(x + cs, y + cs);
40770
+ qr_mc.lineTo(x, y + cs);
40771
+ qr_mc.endFill();
40772
+ }
40773
+ }
40774
+ }
40775
+ return qr_mc;
40776
+ },
40777
+ setupTimingPattern: function() {
40778
+ for (var r = 8;r < this.moduleCount - 8; r++) {
40779
+ if (this.modules[r][6] !== null) {
40780
+ continue;
40781
+ }
40782
+ this.modules[r][6] = r % 2 === 0;
40783
+ }
40784
+ for (var c = 8;c < this.moduleCount - 8; c++) {
40785
+ if (this.modules[6][c] !== null) {
40786
+ continue;
40787
+ }
40788
+ this.modules[6][c] = c % 2 === 0;
40789
+ }
40790
+ },
40791
+ setupPositionAdjustPattern: function() {
40792
+ var pos = QRUtil.getPatternPosition(this.typeNumber);
40793
+ for (var i = 0;i < pos.length; i++) {
40794
+ for (var j = 0;j < pos.length; j++) {
40795
+ var row = pos[i];
40796
+ var col = pos[j];
40797
+ if (this.modules[row][col] !== null) {
40798
+ continue;
40799
+ }
40800
+ for (var r = -2;r <= 2; r++) {
40801
+ for (var c = -2;c <= 2; c++) {
40802
+ if (Math.abs(r) === 2 || Math.abs(c) === 2 || r === 0 && c === 0) {
40803
+ this.modules[row + r][col + c] = true;
40804
+ } else {
40805
+ this.modules[row + r][col + c] = false;
40806
+ }
40807
+ }
40808
+ }
40809
+ }
40810
+ }
40811
+ },
40812
+ setupTypeNumber: function(test) {
40813
+ var bits = QRUtil.getBCHTypeNumber(this.typeNumber);
40814
+ var mod;
40815
+ for (var i = 0;i < 18; i++) {
40816
+ mod = !test && (bits >> i & 1) === 1;
40817
+ this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;
40818
+ }
40819
+ for (var x = 0;x < 18; x++) {
40820
+ mod = !test && (bits >> x & 1) === 1;
40821
+ this.modules[x % 3 + this.moduleCount - 8 - 3][Math.floor(x / 3)] = mod;
40822
+ }
40823
+ },
40824
+ setupTypeInfo: function(test, maskPattern) {
40825
+ var data = this.errorCorrectLevel << 3 | maskPattern;
40826
+ var bits = QRUtil.getBCHTypeInfo(data);
40827
+ var mod;
40828
+ for (var v = 0;v < 15; v++) {
40829
+ mod = !test && (bits >> v & 1) === 1;
40830
+ if (v < 6) {
40831
+ this.modules[v][8] = mod;
40832
+ } else if (v < 8) {
40833
+ this.modules[v + 1][8] = mod;
40834
+ } else {
40835
+ this.modules[this.moduleCount - 15 + v][8] = mod;
40836
+ }
40837
+ }
40838
+ for (var h = 0;h < 15; h++) {
40839
+ mod = !test && (bits >> h & 1) === 1;
40840
+ if (h < 8) {
40841
+ this.modules[8][this.moduleCount - h - 1] = mod;
40842
+ } else if (h < 9) {
40843
+ this.modules[8][15 - h - 1 + 1] = mod;
40844
+ } else {
40845
+ this.modules[8][15 - h - 1] = mod;
40846
+ }
40847
+ }
40848
+ this.modules[this.moduleCount - 8][8] = !test;
40849
+ },
40850
+ mapData: function(data, maskPattern) {
40851
+ var inc = -1;
40852
+ var row = this.moduleCount - 1;
40853
+ var bitIndex = 7;
40854
+ var byteIndex = 0;
40855
+ for (var col = this.moduleCount - 1;col > 0; col -= 2) {
40856
+ if (col === 6)
40857
+ col--;
40858
+ while (true) {
40859
+ for (var c = 0;c < 2; c++) {
40860
+ if (this.modules[row][col - c] === null) {
40861
+ var dark = false;
40862
+ if (byteIndex < data.length) {
40863
+ dark = (data[byteIndex] >>> bitIndex & 1) === 1;
40864
+ }
40865
+ var mask = QRUtil.getMask(maskPattern, row, col - c);
40866
+ if (mask) {
40867
+ dark = !dark;
40868
+ }
40869
+ this.modules[row][col - c] = dark;
40870
+ bitIndex--;
40871
+ if (bitIndex === -1) {
40872
+ byteIndex++;
40873
+ bitIndex = 7;
40874
+ }
40875
+ }
40876
+ }
40877
+ row += inc;
40878
+ if (row < 0 || this.moduleCount <= row) {
40879
+ row -= inc;
40880
+ inc = -inc;
40881
+ break;
40882
+ }
40883
+ }
40884
+ }
40885
+ }
40886
+ };
40887
+ QRCode.PAD0 = 236;
40888
+ QRCode.PAD1 = 17;
40889
+ QRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {
40890
+ var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);
40891
+ var buffer = new QRBitBuffer;
40892
+ for (var i = 0;i < dataList.length; i++) {
40893
+ var data = dataList[i];
40894
+ buffer.put(data.mode, 4);
40895
+ buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber));
40896
+ data.write(buffer);
40897
+ }
40898
+ var totalDataCount = 0;
40899
+ for (var x = 0;x < rsBlocks.length; x++) {
40900
+ totalDataCount += rsBlocks[x].dataCount;
40901
+ }
40902
+ if (buffer.getLengthInBits() > totalDataCount * 8) {
40903
+ throw new Error("code length overflow. (" + buffer.getLengthInBits() + ">" + totalDataCount * 8 + ")");
40904
+ }
40905
+ if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {
40906
+ buffer.put(0, 4);
40907
+ }
40908
+ while (buffer.getLengthInBits() % 8 !== 0) {
40909
+ buffer.putBit(false);
40910
+ }
40911
+ while (true) {
40912
+ if (buffer.getLengthInBits() >= totalDataCount * 8) {
40913
+ break;
40914
+ }
40915
+ buffer.put(QRCode.PAD0, 8);
40916
+ if (buffer.getLengthInBits() >= totalDataCount * 8) {
40917
+ break;
40918
+ }
40919
+ buffer.put(QRCode.PAD1, 8);
40920
+ }
40921
+ return QRCode.createBytes(buffer, rsBlocks);
40922
+ };
40923
+ QRCode.createBytes = function(buffer, rsBlocks) {
40924
+ var offset = 0;
40925
+ var maxDcCount = 0;
40926
+ var maxEcCount = 0;
40927
+ var dcdata = new Array(rsBlocks.length);
40928
+ var ecdata = new Array(rsBlocks.length);
40929
+ for (var r = 0;r < rsBlocks.length; r++) {
40930
+ var dcCount = rsBlocks[r].dataCount;
40931
+ var ecCount = rsBlocks[r].totalCount - dcCount;
40932
+ maxDcCount = Math.max(maxDcCount, dcCount);
40933
+ maxEcCount = Math.max(maxEcCount, ecCount);
40934
+ dcdata[r] = new Array(dcCount);
40935
+ for (var i = 0;i < dcdata[r].length; i++) {
40936
+ dcdata[r][i] = 255 & buffer.buffer[i + offset];
40937
+ }
40938
+ offset += dcCount;
40939
+ var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);
40940
+ var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);
40941
+ var modPoly = rawPoly.mod(rsPoly);
40942
+ ecdata[r] = new Array(rsPoly.getLength() - 1);
40943
+ for (var x = 0;x < ecdata[r].length; x++) {
40944
+ var modIndex = x + modPoly.getLength() - ecdata[r].length;
40945
+ ecdata[r][x] = modIndex >= 0 ? modPoly.get(modIndex) : 0;
40946
+ }
40947
+ }
40948
+ var totalCodeCount = 0;
40949
+ for (var y = 0;y < rsBlocks.length; y++) {
40950
+ totalCodeCount += rsBlocks[y].totalCount;
40951
+ }
40952
+ var data = new Array(totalCodeCount);
40953
+ var index = 0;
40954
+ for (var z = 0;z < maxDcCount; z++) {
40955
+ for (var s = 0;s < rsBlocks.length; s++) {
40956
+ if (z < dcdata[s].length) {
40957
+ data[index++] = dcdata[s][z];
40958
+ }
40959
+ }
40960
+ }
40961
+ for (var xx = 0;xx < maxEcCount; xx++) {
40962
+ for (var t = 0;t < rsBlocks.length; t++) {
40963
+ if (xx < ecdata[t].length) {
40964
+ data[index++] = ecdata[t][xx];
40965
+ }
40966
+ }
40967
+ }
40968
+ return data;
40969
+ };
40970
+ module.exports = QRCode;
40971
+ });
40972
+
40973
+ // ../../node_modules/qrcode-terminal/lib/main.js
40974
+ var require_main = __commonJS((exports, module) => {
40975
+ var QRCode = require_QRCode();
40976
+ var QRErrorCorrectLevel = require_QRErrorCorrectLevel();
40977
+ var black = "\x1B[40m \x1B[0m";
40978
+ var white = "\x1B[47m \x1B[0m";
40979
+ var toCell = function(isBlack) {
40980
+ return isBlack ? black : white;
40981
+ };
40982
+ var repeat = function(color) {
40983
+ return {
40984
+ times: function(count) {
40985
+ return new Array(count).join(color);
40986
+ }
40987
+ };
40988
+ };
40989
+ var fill = function(length, value) {
40990
+ var arr = new Array(length);
40991
+ for (var i = 0;i < length; i++) {
40992
+ arr[i] = value;
40993
+ }
40994
+ return arr;
40995
+ };
40996
+ module.exports = {
40997
+ error: QRErrorCorrectLevel.L,
40998
+ generate: function(input, opts, cb) {
40999
+ if (typeof opts === "function") {
41000
+ cb = opts;
41001
+ opts = {};
41002
+ }
41003
+ var qrcode = new QRCode(-1, this.error);
41004
+ qrcode.addData(input);
41005
+ qrcode.make();
41006
+ var output = "";
41007
+ if (opts && opts.small) {
41008
+ var BLACK = true, WHITE = false;
41009
+ var moduleCount = qrcode.getModuleCount();
41010
+ var moduleData = qrcode.modules.slice();
41011
+ var oddRow = moduleCount % 2 === 1;
41012
+ if (oddRow) {
41013
+ moduleData.push(fill(moduleCount, WHITE));
41014
+ }
41015
+ var platte = {
41016
+ WHITE_ALL: "█",
41017
+ WHITE_BLACK: "▀",
41018
+ BLACK_WHITE: "▄",
41019
+ BLACK_ALL: " "
41020
+ };
41021
+ var borderTop = repeat(platte.BLACK_WHITE).times(moduleCount + 3);
41022
+ var borderBottom = repeat(platte.WHITE_BLACK).times(moduleCount + 3);
41023
+ output += borderTop + `
41024
+ `;
41025
+ for (var row = 0;row < moduleCount; row += 2) {
41026
+ output += platte.WHITE_ALL;
41027
+ for (var col = 0;col < moduleCount; col++) {
41028
+ if (moduleData[row][col] === WHITE && moduleData[row + 1][col] === WHITE) {
41029
+ output += platte.WHITE_ALL;
41030
+ } else if (moduleData[row][col] === WHITE && moduleData[row + 1][col] === BLACK) {
41031
+ output += platte.WHITE_BLACK;
41032
+ } else if (moduleData[row][col] === BLACK && moduleData[row + 1][col] === WHITE) {
41033
+ output += platte.BLACK_WHITE;
41034
+ } else {
41035
+ output += platte.BLACK_ALL;
41036
+ }
41037
+ }
41038
+ output += platte.WHITE_ALL + `
41039
+ `;
41040
+ }
41041
+ if (!oddRow) {
41042
+ output += borderBottom;
41043
+ }
41044
+ } else {
41045
+ var border = repeat(white).times(qrcode.getModuleCount() + 3);
41046
+ output += border + `
41047
+ `;
41048
+ qrcode.modules.forEach(function(row2) {
41049
+ output += white;
41050
+ output += row2.map(toCell).join("");
41051
+ output += white + `
41052
+ `;
41053
+ });
41054
+ output += border;
41055
+ }
41056
+ if (cb)
41057
+ cb(output);
41058
+ else
41059
+ console.log(output);
41060
+ },
41061
+ setErrorLevel: function(error2) {
41062
+ this.error = QRErrorCorrectLevel[error2] || this.error;
41063
+ }
41064
+ };
41065
+ });
41066
+
40050
41067
  // ../../node_modules/citty/dist/_chunks/libs/scule.mjs
40051
41068
  var NUMBER_CHAR_RE = /\d/;
40052
41069
  var STR_SPLITTERS = [
@@ -50121,6 +51138,15 @@ ${manifest.allowed_tools.map((t) => ` - ${t}`).join(`
50121
51138
  if (fm.length > 3)
50122
51139
  content = fm.join(`
50123
51140
  `) + content;
51141
+ if (manifest.context === "fork") {
51142
+ const agentType = manifest.agent || "general-purpose";
51143
+ const modelHint = manifest.model ? `, model: "${manifest.model}"` : "";
51144
+ const toolsHint = manifest.allowed_tools?.length ? `
51145
+ Only use these tools: ${manifest.allowed_tools.join(", ")}.` : "";
51146
+ content = `IMPORTANT: Execute this skill in an isolated sub-agent. Use the Agent tool with subagent_type="${agentType}"${modelHint}. Pass the full instructions below as the agent prompt.${toolsHint}
51147
+
51148
+ ` + content;
51149
+ }
50124
51150
  }
50125
51151
  return {
50126
51152
  description: skill.description,
@@ -50606,7 +51632,11 @@ ${lines.join(`
50606
51632
  writeFileSync3(save_to, plaintext);
50607
51633
  return text(`Downloaded and decrypted: ${result.name} → ${save_to}`);
50608
51634
  }
50609
- const res = await fetch(result.url, { signal: AbortSignal.timeout(30000) });
51635
+ let res = await fetch(result.url, { signal: AbortSignal.timeout(1e4) }).catch(() => null);
51636
+ if (!res || !res.ok) {
51637
+ const brokerHttp = client2.mesh.brokerUrl.replace("wss://", "https://").replace("ws://", "http://").replace("/ws", "");
51638
+ res = await fetch(`${brokerHttp}/download/${id}?mesh=${client2.meshId}`, { signal: AbortSignal.timeout(30000) });
51639
+ }
50610
51640
  if (!res.ok)
50611
51641
  return text(`get_file: download failed (${res.status})`, true);
50612
51642
  const { writeFileSync: writeFileSync2, mkdirSync: mkdirSync2 } = await import("node:fs");
@@ -51625,9 +52655,9 @@ ${lines.join(`
51625
52655
  const transport = new StdioServerTransport;
51626
52656
  await server.connect(transport);
51627
52657
  startClients(config2).then(() => {
51628
- wirePushHandlers();
52658
+ wirePushHandlers().catch(() => {});
51629
52659
  }).catch(() => {
51630
- wirePushHandlers();
52660
+ wirePushHandlers().catch(() => {});
51631
52661
  });
51632
52662
  async function wirePushHandlers() {
51633
52663
  for (const client2 of allClients()) {
@@ -51764,8 +52794,10 @@ ${lines.join(`
51764
52794
  } catch {}
51765
52795
  });
51766
52796
  }
51767
- const welcomeClient = allClients()[0];
51768
- if (welcomeClient && welcomeClient.status === "open") {
52797
+ setTimeout(async () => {
52798
+ const welcomeClient = allClients()[0];
52799
+ if (!welcomeClient || welcomeClient.status !== "open")
52800
+ return;
51769
52801
  try {
51770
52802
  const peers = await welcomeClient.listPeers();
51771
52803
  const peerNames = peers.filter((p) => p.displayName !== myName).map((p) => p.displayName).join(", ") || "none";
@@ -51777,7 +52809,7 @@ ${lines.join(`
51777
52809
  }
51778
52810
  });
51779
52811
  } catch {}
51780
- }
52812
+ }, 2000);
51781
52813
  }
51782
52814
  const keepalive = setInterval(() => {}, 1000);
51783
52815
  const shutdown = () => {
@@ -53067,7 +54099,21 @@ async function runLaunch(flags, rawArgs) {
53067
54099
  ...filtered
53068
54100
  ];
53069
54101
  const isWindows = process.platform === "win32";
53070
- const child = spawn("claude", claudeArgs, {
54102
+ let claudeBin = "claude";
54103
+ if (!isWindows) {
54104
+ const candidates = [
54105
+ join4(homedir4(), ".local", "bin", "claude"),
54106
+ "/usr/local/bin/claude",
54107
+ join4(homedir4(), ".claude", "bin", "claude")
54108
+ ];
54109
+ for (const c of candidates) {
54110
+ if (existsSync3(c)) {
54111
+ claudeBin = c;
54112
+ break;
54113
+ }
54114
+ }
54115
+ }
54116
+ const child = spawn(claudeBin, claudeArgs, {
53071
54117
  stdio: "inherit",
53072
54118
  shell: isWindows,
53073
54119
  env: {
@@ -53131,7 +54177,7 @@ init_config();
53131
54177
  // package.json
53132
54178
  var package_default = {
53133
54179
  name: "claudemesh-cli",
53134
- version: "0.9.1",
54180
+ version: "0.9.3",
53135
54181
  description: "Claude Code MCP client for claudemesh — peer mesh messaging between Claude sessions.",
53136
54182
  keywords: [
53137
54183
  "claude-code",
@@ -54220,6 +55266,62 @@ function printProfile(member, dim) {
54220
55266
  console.log(` Mesh: ${dim(String(member.id ?? ""))}`);
54221
55267
  }
54222
55268
 
55269
+ // src/commands/connect-telegram.ts
55270
+ init_config();
55271
+ async function connectTelegram(args) {
55272
+ const config2 = loadConfig();
55273
+ if (config2.meshes.length === 0) {
55274
+ console.error("No meshes joined. Run 'claudemesh join' first.");
55275
+ process.exit(1);
55276
+ }
55277
+ const mesh = config2.meshes[0];
55278
+ const linkOnly = args.includes("--link");
55279
+ const brokerHttp = mesh.brokerUrl.replace("wss://", "https://").replace("ws://", "http://").replace("/ws", "");
55280
+ console.log("Requesting Telegram connect token...");
55281
+ const res = await fetch(`${brokerHttp}/tg/token`, {
55282
+ method: "POST",
55283
+ headers: { "Content-Type": "application/json" },
55284
+ body: JSON.stringify({
55285
+ meshId: mesh.meshId,
55286
+ memberId: mesh.memberId,
55287
+ pubkey: mesh.pubkey,
55288
+ secretKey: mesh.secretKey
55289
+ }),
55290
+ signal: AbortSignal.timeout(1e4)
55291
+ });
55292
+ if (!res.ok) {
55293
+ const err = await res.json().catch(() => ({}));
55294
+ console.error(`Failed: ${err.error ?? res.statusText}`);
55295
+ process.exit(1);
55296
+ }
55297
+ const { token, deepLink } = await res.json();
55298
+ if (linkOnly) {
55299
+ console.log(deepLink);
55300
+ return;
55301
+ }
55302
+ console.log(`
55303
+ Connect Telegram to your mesh:
55304
+ `);
55305
+ console.log(` ${deepLink}
55306
+ `);
55307
+ console.log(" Open this link on your phone, or scan the QR code");
55308
+ console.log(` with your Telegram camera.
55309
+ `);
55310
+ try {
55311
+ const QRCode = require_main();
55312
+ QRCode.generate(deepLink, { small: true }, (code) => {
55313
+ console.log(code);
55314
+ });
55315
+ } catch {
55316
+ console.log(" (Install qrcode-terminal for QR code display)");
55317
+ }
55318
+ }
55319
+
55320
+ // src/commands/disconnect-telegram.ts
55321
+ async function disconnectTelegram() {
55322
+ console.log("To disconnect Telegram, send /disconnect in the bot chat.");
55323
+ }
55324
+
54223
55325
  // src/index.ts
54224
55326
  var launch = defineCommand({
54225
55327
  meta: {
@@ -54529,6 +55631,30 @@ var main = defineCommand({
54529
55631
  async run({ rawArgs }) {
54530
55632
  await runHook(rawArgs);
54531
55633
  }
55634
+ }),
55635
+ connect: defineCommand({
55636
+ meta: { name: "connect", description: "Connect an integration (e.g. telegram)" },
55637
+ args: { target: { type: "positional", description: "Integration target (telegram)", required: true } },
55638
+ async run({ args }) {
55639
+ if (args.target === "telegram")
55640
+ await connectTelegram(process.argv.slice(process.argv.indexOf("telegram") + 1));
55641
+ else {
55642
+ console.error(`Unknown target: ${args.target}`);
55643
+ process.exit(1);
55644
+ }
55645
+ }
55646
+ }),
55647
+ disconnect: defineCommand({
55648
+ meta: { name: "disconnect", description: "Disconnect an integration (e.g. telegram)" },
55649
+ args: { target: { type: "positional", description: "Integration target (telegram)", required: true } },
55650
+ async run({ args }) {
55651
+ if (args.target === "telegram")
55652
+ await disconnectTelegram();
55653
+ else {
55654
+ console.error(`Unknown target: ${args.target}`);
55655
+ process.exit(1);
55656
+ }
55657
+ }
54532
55658
  })
54533
55659
  },
54534
55660
  run() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudemesh-cli",
3
- "version": "0.9.1",
3
+ "version": "0.9.3",
4
4
  "description": "Claude Code MCP client for claudemesh — peer mesh messaging between Claude sessions.",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -49,9 +49,9 @@
49
49
  "typescript": "5.9.3",
50
50
  "vitest": "4.0.14",
51
51
  "@turbostarter/eslint-config": "0.1.0",
52
- "@turbostarter/tsconfig": "0.1.0",
52
+ "@turbostarter/prettier-config": "0.1.0",
53
53
  "@turbostarter/vitest-config": "0.1.0",
54
- "@turbostarter/prettier-config": "0.1.0"
54
+ "@turbostarter/tsconfig": "0.1.0"
55
55
  },
56
56
  "scripts": {
57
57
  "build": "bun build src/index.ts --target=node --outfile dist/index.js --banner \"#!/usr/bin/env node\" && chmod +x dist/index.js",