@ai-ecoverse/mcpcat 0.14.6 → 0.14.7

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.
@@ -6793,7 +6793,13 @@ var CLIENT_NAME = "mcpcat";
6793
6793
  var CALLBACK_HOST = "127.0.0.1";
6794
6794
  var CALLBACK_PATH = "/callback";
6795
6795
  var REQUEST_TIMEOUT_MS = 15e3;
6796
- var REFRESH_SKEW_MS = 3e4;
6796
+ var MAX_REFRESH_SKEW_MS = 3e4;
6797
+ function computeSkew(state) {
6798
+ const expiresIn = state?.tokens?.expires_in;
6799
+ if (typeof expiresIn !== "number" || expiresIn <= 0) return MAX_REFRESH_SKEW_MS;
6800
+ const ttlMs = expiresIn * 1e3;
6801
+ return Math.min(MAX_REFRESH_SKEW_MS, Math.floor(ttlMs / 2));
6802
+ }
6797
6803
  var FALLBACK_REDIRECT_URL = `http://${CALLBACK_HOST}${CALLBACK_PATH}`;
6798
6804
  function timedFetch(fetchImpl) {
6799
6805
  return (input, init) => {
@@ -6941,7 +6947,8 @@ function createPiAuthProvider(options) {
6941
6947
  cachedToken = state?.tokens?.access_token;
6942
6948
  registerCredential(cachedToken);
6943
6949
  if (state?.tokens?.refresh_token) registerCredential(state.tokens.refresh_token);
6944
- const expired = state?.tokensExpireAt !== void 0 && state.tokensExpireAt - REFRESH_SKEW_MS <= Date.now();
6950
+ const skew = computeSkew(state);
6951
+ const expired = state?.tokensExpireAt !== void 0 && state.tokensExpireAt - skew <= Date.now();
6945
6952
  if (expired && state?.tokens?.refresh_token) {
6946
6953
  await refresh(cachedToken).catch(() => void 0);
6947
6954
  const refreshedState = await store.load();
@@ -15708,7 +15715,7 @@ async function handleInputRequired(platform2, conn, err, respondData, json) {
15708
15715
  `);
15709
15716
  return EXIT_INPUT_REQUIRED;
15710
15717
  }
15711
- const isTty = platform2.isatty(0) && platform2.isatty(2);
15718
+ const isTty = platform2.kind === "host" && platform2.isatty(0) && platform2.isatty(2);
15712
15719
  const elicitResult = await handleElicitation(platform2, inputReq, isTty, respondData);
15713
15720
  if ("exitCode" in elicitResult) {
15714
15721
  await platform2.write(2, `${err.requestJson}
@@ -16170,5 +16177,5 @@ try {
16170
16177
  });
16171
16178
  } catch {
16172
16179
  }
16173
- var code = await run(platform, "0.14.6", args);
16180
+ var code = await run(platform, "0.14.7", args);
16174
16181
  process.exit(code);
@@ -6414,7 +6414,13 @@ var CLIENT_NAME = "mcpcat";
6414
6414
  var CALLBACK_HOST = "127.0.0.1";
6415
6415
  var CALLBACK_PATH = "/callback";
6416
6416
  var REQUEST_TIMEOUT_MS = 15e3;
6417
- var REFRESH_SKEW_MS = 3e4;
6417
+ var MAX_REFRESH_SKEW_MS = 3e4;
6418
+ function computeSkew(state) {
6419
+ const expiresIn = state?.tokens?.expires_in;
6420
+ if (typeof expiresIn !== "number" || expiresIn <= 0) return MAX_REFRESH_SKEW_MS;
6421
+ const ttlMs = expiresIn * 1e3;
6422
+ return Math.min(MAX_REFRESH_SKEW_MS, Math.floor(ttlMs / 2));
6423
+ }
6418
6424
  var FALLBACK_REDIRECT_URL = `http://${CALLBACK_HOST}${CALLBACK_PATH}`;
6419
6425
  function timedFetch(fetchImpl) {
6420
6426
  return (input, init) => {
@@ -6562,7 +6568,8 @@ function createPiAuthProvider(options) {
6562
6568
  cachedToken = state?.tokens?.access_token;
6563
6569
  registerCredential(cachedToken);
6564
6570
  if (state?.tokens?.refresh_token) registerCredential(state.tokens.refresh_token);
6565
- const expired = state?.tokensExpireAt !== void 0 && state.tokensExpireAt - REFRESH_SKEW_MS <= Date.now();
6571
+ const skew = computeSkew(state);
6572
+ const expired = state?.tokensExpireAt !== void 0 && state.tokensExpireAt - skew <= Date.now();
6566
6573
  if (expired && state?.tokens?.refresh_token) {
6567
6574
  await refresh(cachedToken).catch(() => void 0);
6568
6575
  const refreshedState = await store.load();
@@ -15329,7 +15336,7 @@ async function handleInputRequired(platform2, conn, err, respondData, json) {
15329
15336
  `);
15330
15337
  return EXIT_INPUT_REQUIRED;
15331
15338
  }
15332
- const isTty = platform2.isatty(0) && platform2.isatty(2);
15339
+ const isTty = platform2.kind === "host" && platform2.isatty(0) && platform2.isatty(2);
15333
15340
  const elicitResult = await handleElicitation(platform2, inputReq, isTty, respondData);
15334
15341
  if ("exitCode" in elicitResult) {
15335
15342
  await platform2.write(2, `${err.requestJson}
@@ -15834,7 +15841,7 @@ async function main(ctx) {
15834
15841
  packageDir: "/node_modules/@ai-ecoverse/mcpcat"
15835
15842
  });
15836
15843
  const args = ctx.argv.slice(1);
15837
- return run(platform2, "0.14.6", args);
15844
+ return run(platform2, "0.14.7", args);
15838
15845
  }
15839
15846
  export {
15840
15847
  main as default
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/mcpcat",
3
- "version": "0.14.6",
3
+ "version": "0.14.7",
4
4
  "description": "A curl for the Model Context Protocol",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -56,7 +56,7 @@
56
56
  "trust:dry": "npx fledgling sync --dry-run -y --skip-publish"
57
57
  },
58
58
  "devDependencies": {
59
- "@ai-ecoverse/slicc-kernel": "1.82.0",
59
+ "@ai-ecoverse/slicc-kernel": "1.83.0",
60
60
  "@ai-ecoverse/slicc-shared-web": "1.13.1",
61
61
  "@biomejs/biome": "2.5.15",
62
62
  "@earendil-works/pi-codemode": "1.2.0",