@ai-ecoverse/mcpcat 0.30.2 → 0.30.4
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/THIRD_PARTY_NOTICES +1 -1
- package/dist/host/codemode-worker.mjs +14 -7
- package/dist/host/mcpcat.mjs +31 -12
- package/dist/kernel/mcpcat.mjs +31 -12
- package/package.json +7 -2
package/dist/THIRD_PARTY_NOTICES
CHANGED
|
@@ -145,7 +145,7 @@ The above copyright notice and this permission notice shall be included in all c
|
|
|
145
145
|
|
|
146
146
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
147
147
|
|
|
148
|
-
quickjs-wasi@3.6.
|
|
148
|
+
quickjs-wasi@3.6.3
|
|
149
149
|
License: MIT
|
|
150
150
|
Homepage: git://github.com/vercel-labs/quickjs-wasi.git
|
|
151
151
|
----------------------------------------
|
|
@@ -345,7 +345,7 @@ async function restoreExtensions(descriptors, extensionMeta, mainExports, wasiBu
|
|
|
345
345
|
}
|
|
346
346
|
|
|
347
347
|
// node_modules/quickjs-wasi/dist/version.js
|
|
348
|
-
var VERSION = "3.6.
|
|
348
|
+
var VERSION = "3.6.3";
|
|
349
349
|
|
|
350
350
|
// node_modules/quickjs-wasi/dist/index.js
|
|
351
351
|
var __addDisposableResource = function(env, value, async) {
|
|
@@ -1419,6 +1419,17 @@ var QuickJS = class _QuickJS {
|
|
|
1419
1419
|
const vm = this;
|
|
1420
1420
|
vm._ownedHandles.add(resolveHandle);
|
|
1421
1421
|
vm._ownedHandles.add(rejectHandle);
|
|
1422
|
+
let resolved = false;
|
|
1423
|
+
const settle = (resolver, value) => {
|
|
1424
|
+
if (resolved)
|
|
1425
|
+
return;
|
|
1426
|
+
resolved = true;
|
|
1427
|
+
vm.callFunctionRaw(resolver, vm.undefined, value).dispose();
|
|
1428
|
+
vm._ownedHandles.delete(resolveHandle);
|
|
1429
|
+
vm._ownedHandles.delete(rejectHandle);
|
|
1430
|
+
resolveHandle.dispose();
|
|
1431
|
+
rejectHandle.dispose();
|
|
1432
|
+
};
|
|
1422
1433
|
let _settled = null;
|
|
1423
1434
|
return {
|
|
1424
1435
|
handle: promiseHandle,
|
|
@@ -1440,14 +1451,10 @@ var QuickJS = class _QuickJS {
|
|
|
1440
1451
|
return _settled;
|
|
1441
1452
|
},
|
|
1442
1453
|
resolve(value) {
|
|
1443
|
-
|
|
1444
|
-
vm._ownedHandles.delete(resolveHandle);
|
|
1445
|
-
resolveHandle.dispose();
|
|
1454
|
+
settle(resolveHandle, value);
|
|
1446
1455
|
},
|
|
1447
1456
|
reject(value) {
|
|
1448
|
-
|
|
1449
|
-
vm._ownedHandles.delete(rejectHandle);
|
|
1450
|
-
rejectHandle.dispose();
|
|
1457
|
+
settle(rejectHandle, value);
|
|
1451
1458
|
}
|
|
1452
1459
|
};
|
|
1453
1460
|
}
|
package/dist/host/mcpcat.mjs
CHANGED
|
@@ -1858,7 +1858,7 @@ var init_extensions = __esm({
|
|
|
1858
1858
|
var VERSION;
|
|
1859
1859
|
var init_version = __esm({
|
|
1860
1860
|
"node_modules/quickjs-wasi/dist/version.js"() {
|
|
1861
|
-
VERSION = "3.6.
|
|
1861
|
+
VERSION = "3.6.3";
|
|
1862
1862
|
}
|
|
1863
1863
|
});
|
|
1864
1864
|
|
|
@@ -3009,6 +3009,17 @@ var init_dist = __esm({
|
|
|
3009
3009
|
const vm = this;
|
|
3010
3010
|
vm._ownedHandles.add(resolveHandle);
|
|
3011
3011
|
vm._ownedHandles.add(rejectHandle);
|
|
3012
|
+
let resolved = false;
|
|
3013
|
+
const settle = (resolver, value) => {
|
|
3014
|
+
if (resolved)
|
|
3015
|
+
return;
|
|
3016
|
+
resolved = true;
|
|
3017
|
+
vm.callFunctionRaw(resolver, vm.undefined, value).dispose();
|
|
3018
|
+
vm._ownedHandles.delete(resolveHandle);
|
|
3019
|
+
vm._ownedHandles.delete(rejectHandle);
|
|
3020
|
+
resolveHandle.dispose();
|
|
3021
|
+
rejectHandle.dispose();
|
|
3022
|
+
};
|
|
3012
3023
|
let _settled = null;
|
|
3013
3024
|
return {
|
|
3014
3025
|
handle: promiseHandle,
|
|
@@ -3030,14 +3041,10 @@ var init_dist = __esm({
|
|
|
3030
3041
|
return _settled;
|
|
3031
3042
|
},
|
|
3032
3043
|
resolve(value) {
|
|
3033
|
-
|
|
3034
|
-
vm._ownedHandles.delete(resolveHandle);
|
|
3035
|
-
resolveHandle.dispose();
|
|
3044
|
+
settle(resolveHandle, value);
|
|
3036
3045
|
},
|
|
3037
3046
|
reject(value) {
|
|
3038
|
-
|
|
3039
|
-
vm._ownedHandles.delete(rejectHandle);
|
|
3040
|
-
rejectHandle.dispose();
|
|
3047
|
+
settle(rejectHandle, value);
|
|
3041
3048
|
}
|
|
3042
3049
|
};
|
|
3043
3050
|
}
|
|
@@ -19607,9 +19614,20 @@ function formatToolSchema(tool) {
|
|
|
19607
19614
|
return lines.join("\n");
|
|
19608
19615
|
}
|
|
19609
19616
|
var NETWORK_HINT = "connection failed (for servers without CORS, link the slicc CLI with npx sliccy@next, or use the browser extension)";
|
|
19610
|
-
|
|
19617
|
+
var LOOPBACK_V4 = /^127\.\d+\.\d+\.\d+$/;
|
|
19618
|
+
function remoteHttps(url) {
|
|
19619
|
+
if (!url) return false;
|
|
19620
|
+
const { protocol, hostname } = new URL(url);
|
|
19621
|
+
const host = hostname.toLowerCase().replace(/\.$/, "");
|
|
19622
|
+
if (protocol !== "https:") return false;
|
|
19623
|
+
return !(host === "localhost" || host.endsWith(".localhost") || host === "host.slicc.internal" || host === "[::1]" || LOOPBACK_V4.test(host));
|
|
19624
|
+
}
|
|
19625
|
+
function transportHint(err, kernelUrl) {
|
|
19611
19626
|
if (err instanceof TypeError) {
|
|
19612
19627
|
const cause = err.cause;
|
|
19628
|
+
if (cause?.code === "ECONNREFUSED" && remoteHttps(kernelUrl)) {
|
|
19629
|
+
return `${NETWORK_HINT}: ${err.message}`;
|
|
19630
|
+
}
|
|
19613
19631
|
if (cause?.code === "ECONNREFUSED" || cause?.code === "ENETUNREACH") {
|
|
19614
19632
|
return `connection failed: ${err.message}`;
|
|
19615
19633
|
}
|
|
@@ -20682,7 +20700,7 @@ async function resolveAuthProvider(platform2, hasAuthHeader, url, target, config
|
|
|
20682
20700
|
}
|
|
20683
20701
|
return { provider, credentialSecrets };
|
|
20684
20702
|
}
|
|
20685
|
-
function classifyConnectionError(err, target, interrupted) {
|
|
20703
|
+
function classifyConnectionError(err, target, interrupted, platformKind, url) {
|
|
20686
20704
|
if (err instanceof TransportRefusalError) {
|
|
20687
20705
|
const hint = "in seven, reach the host via http://host.slicc.internal:<port>; in tests, enable the transport's hostLoopback";
|
|
20688
20706
|
return {
|
|
@@ -20700,7 +20718,8 @@ function classifyConnectionError(err, target, interrupted) {
|
|
|
20700
20718
|
if (interrupted) {
|
|
20701
20719
|
return { code: EXIT_INTERRUPTED, kind: "interrupted", msg: "interrupted" };
|
|
20702
20720
|
}
|
|
20703
|
-
const
|
|
20721
|
+
const kernelUrl = platformKind === "kernel" ? url : void 0;
|
|
20722
|
+
const msg = transportHint(err, kernelUrl) ?? `connection failed: ${err.message}`;
|
|
20704
20723
|
return { code: EXIT_CONNECTION, kind: "connection", msg };
|
|
20705
20724
|
}
|
|
20706
20725
|
function buildRoots(rootArgs, isStdio, cwd) {
|
|
@@ -20887,7 +20906,7 @@ async function runClientVerb(platform2, version, parsed) {
|
|
|
20887
20906
|
);
|
|
20888
20907
|
return EXIT_CONNECTION;
|
|
20889
20908
|
}
|
|
20890
|
-
const e = classifyConnectionError(err, target, interrupted);
|
|
20909
|
+
const e = classifyConnectionError(err, target, interrupted, platform2.kind, resolved.url);
|
|
20891
20910
|
if (e.code === EXIT_INTERRUPTED) {
|
|
20892
20911
|
await platform2.write(2, "mcpcat: interrupted\n");
|
|
20893
20912
|
return termExitCode;
|
|
@@ -21617,5 +21636,5 @@ try {
|
|
|
21617
21636
|
});
|
|
21618
21637
|
} catch {
|
|
21619
21638
|
}
|
|
21620
|
-
var code = await run(platform, "0.30.
|
|
21639
|
+
var code = await run(platform, "0.30.4", args);
|
|
21621
21640
|
process.exit(code);
|
package/dist/kernel/mcpcat.mjs
CHANGED
|
@@ -1479,7 +1479,7 @@ var init_extensions = __esm({
|
|
|
1479
1479
|
var VERSION;
|
|
1480
1480
|
var init_version = __esm({
|
|
1481
1481
|
"node_modules/quickjs-wasi/dist/version.js"() {
|
|
1482
|
-
VERSION = "3.6.
|
|
1482
|
+
VERSION = "3.6.3";
|
|
1483
1483
|
}
|
|
1484
1484
|
});
|
|
1485
1485
|
|
|
@@ -2630,6 +2630,17 @@ var init_dist = __esm({
|
|
|
2630
2630
|
const vm = this;
|
|
2631
2631
|
vm._ownedHandles.add(resolveHandle);
|
|
2632
2632
|
vm._ownedHandles.add(rejectHandle);
|
|
2633
|
+
let resolved = false;
|
|
2634
|
+
const settle = (resolver, value) => {
|
|
2635
|
+
if (resolved)
|
|
2636
|
+
return;
|
|
2637
|
+
resolved = true;
|
|
2638
|
+
vm.callFunctionRaw(resolver, vm.undefined, value).dispose();
|
|
2639
|
+
vm._ownedHandles.delete(resolveHandle);
|
|
2640
|
+
vm._ownedHandles.delete(rejectHandle);
|
|
2641
|
+
resolveHandle.dispose();
|
|
2642
|
+
rejectHandle.dispose();
|
|
2643
|
+
};
|
|
2633
2644
|
let _settled = null;
|
|
2634
2645
|
return {
|
|
2635
2646
|
handle: promiseHandle,
|
|
@@ -2651,14 +2662,10 @@ var init_dist = __esm({
|
|
|
2651
2662
|
return _settled;
|
|
2652
2663
|
},
|
|
2653
2664
|
resolve(value) {
|
|
2654
|
-
|
|
2655
|
-
vm._ownedHandles.delete(resolveHandle);
|
|
2656
|
-
resolveHandle.dispose();
|
|
2665
|
+
settle(resolveHandle, value);
|
|
2657
2666
|
},
|
|
2658
2667
|
reject(value) {
|
|
2659
|
-
|
|
2660
|
-
vm._ownedHandles.delete(rejectHandle);
|
|
2661
|
-
rejectHandle.dispose();
|
|
2668
|
+
settle(rejectHandle, value);
|
|
2662
2669
|
}
|
|
2663
2670
|
};
|
|
2664
2671
|
}
|
|
@@ -19124,9 +19131,20 @@ function formatToolSchema(tool) {
|
|
|
19124
19131
|
return lines.join("\n");
|
|
19125
19132
|
}
|
|
19126
19133
|
var NETWORK_HINT = "connection failed (for servers without CORS, link the slicc CLI with npx sliccy@next, or use the browser extension)";
|
|
19127
|
-
|
|
19134
|
+
var LOOPBACK_V4 = /^127\.\d+\.\d+\.\d+$/;
|
|
19135
|
+
function remoteHttps(url) {
|
|
19136
|
+
if (!url) return false;
|
|
19137
|
+
const { protocol, hostname } = new URL(url);
|
|
19138
|
+
const host = hostname.toLowerCase().replace(/\.$/, "");
|
|
19139
|
+
if (protocol !== "https:") return false;
|
|
19140
|
+
return !(host === "localhost" || host.endsWith(".localhost") || host === "host.slicc.internal" || host === "[::1]" || LOOPBACK_V4.test(host));
|
|
19141
|
+
}
|
|
19142
|
+
function transportHint(err, kernelUrl) {
|
|
19128
19143
|
if (err instanceof TypeError) {
|
|
19129
19144
|
const cause = err.cause;
|
|
19145
|
+
if (cause?.code === "ECONNREFUSED" && remoteHttps(kernelUrl)) {
|
|
19146
|
+
return `${NETWORK_HINT}: ${err.message}`;
|
|
19147
|
+
}
|
|
19130
19148
|
if (cause?.code === "ECONNREFUSED" || cause?.code === "ENETUNREACH") {
|
|
19131
19149
|
return `connection failed: ${err.message}`;
|
|
19132
19150
|
}
|
|
@@ -20199,7 +20217,7 @@ async function resolveAuthProvider(platform2, hasAuthHeader, url, target, config
|
|
|
20199
20217
|
}
|
|
20200
20218
|
return { provider, credentialSecrets };
|
|
20201
20219
|
}
|
|
20202
|
-
function classifyConnectionError(err, target, interrupted) {
|
|
20220
|
+
function classifyConnectionError(err, target, interrupted, platformKind, url) {
|
|
20203
20221
|
if (err instanceof TransportRefusalError) {
|
|
20204
20222
|
const hint = "in seven, reach the host via http://host.slicc.internal:<port>; in tests, enable the transport's hostLoopback";
|
|
20205
20223
|
return {
|
|
@@ -20217,7 +20235,8 @@ function classifyConnectionError(err, target, interrupted) {
|
|
|
20217
20235
|
if (interrupted) {
|
|
20218
20236
|
return { code: EXIT_INTERRUPTED, kind: "interrupted", msg: "interrupted" };
|
|
20219
20237
|
}
|
|
20220
|
-
const
|
|
20238
|
+
const kernelUrl = platformKind === "kernel" ? url : void 0;
|
|
20239
|
+
const msg = transportHint(err, kernelUrl) ?? `connection failed: ${err.message}`;
|
|
20221
20240
|
return { code: EXIT_CONNECTION, kind: "connection", msg };
|
|
20222
20241
|
}
|
|
20223
20242
|
function buildRoots(rootArgs, isStdio, cwd) {
|
|
@@ -20404,7 +20423,7 @@ async function runClientVerb(platform2, version, parsed) {
|
|
|
20404
20423
|
);
|
|
20405
20424
|
return EXIT_CONNECTION;
|
|
20406
20425
|
}
|
|
20407
|
-
const e = classifyConnectionError(err, target, interrupted);
|
|
20426
|
+
const e = classifyConnectionError(err, target, interrupted, platform2.kind, resolved.url);
|
|
20408
20427
|
if (e.code === EXIT_INTERRUPTED) {
|
|
20409
20428
|
await platform2.write(2, "mcpcat: interrupted\n");
|
|
20410
20429
|
return termExitCode;
|
|
@@ -20964,7 +20983,7 @@ async function main(ctx) {
|
|
|
20964
20983
|
packageDir: "/node_modules/@ai-ecoverse/mcpcat"
|
|
20965
20984
|
});
|
|
20966
20985
|
const args = ctx.argv.slice(1);
|
|
20967
|
-
return run(platform2, "0.30.
|
|
20986
|
+
return run(platform2, "0.30.4", args);
|
|
20968
20987
|
}
|
|
20969
20988
|
export {
|
|
20970
20989
|
main as default
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-ecoverse/mcpcat",
|
|
3
|
-
"version": "0.30.
|
|
3
|
+
"version": "0.30.4",
|
|
4
4
|
"description": "A curl for the Model Context Protocol",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -68,10 +68,15 @@
|
|
|
68
68
|
"lefthook": "2.2.2",
|
|
69
69
|
"monocart-coverage-reports": "2.13.2",
|
|
70
70
|
"proper-lockfile": "4.1.2",
|
|
71
|
-
"quickjs-wasi": "3.6.
|
|
71
|
+
"quickjs-wasi": "3.6.3",
|
|
72
72
|
"semantic-release": "25.0.9",
|
|
73
73
|
"typescript": "7.0.2"
|
|
74
74
|
},
|
|
75
|
+
"overrides": {
|
|
76
|
+
"@earendil-works/pi-codemode": {
|
|
77
|
+
"quickjs-wasi": "$quickjs-wasi"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
75
80
|
"allowScripts": {
|
|
76
81
|
"esbuild@0.28.2": true
|
|
77
82
|
}
|