@ai-ecoverse/mcpcat 0.31.15 → 0.31.16

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.
@@ -22284,5 +22284,5 @@ try {
22284
22284
  });
22285
22285
  } catch {
22286
22286
  }
22287
- var code = await run(platform, "0.31.15", args);
22287
+ var code = await run(platform, "0.31.16", args);
22288
22288
  process.exit(code);
@@ -6571,7 +6571,16 @@ var SETTINGS_SIGN_IN = "Sign in under Settings \u203A MCP servers.";
6571
6571
  var HEADER_REJECTED = "The server rejected the explicit Authorization header.";
6572
6572
  var PLACEHOLDER_NOT_ACCEPTED = "The request carried the signed-in credential's placeholder and the server still answered 401. Seven's vault fills the placeholder in when the request is forwarded, so either that forwarding is not active in this seven yet or the server rejected the credential. Try again from the Settings page's Connect, or ask whoever runs seven.";
6573
6573
  var VAULT_NO_ANSWER = "Seven's vault did not answer, so the request carried no credential. Try again, or ask whoever runs seven.";
6574
+ var PLACEHOLDER_REFUSED = "Seven's vault fills a placeholder in when the request is forwarded, so either that forwarding is not active in this seven yet or it failed. Try again, or ask whoever runs seven.";
6574
6575
  var NO_PLACEHOLDER = `This user gets no placeholder for this server. With no sign-in yet: ${SETTINGS_SIGN_IN} After a sign-in, the agent already has this server's tools, because a Settings sign-in gives it the server as native tools, and a human can use the server from a panel terminal as root.`;
6576
+ function placeholderRefusal(err) {
6577
+ if (!(err instanceof TypeError)) return void 0;
6578
+ const { code, detail } = err.cause ?? {};
6579
+ if (code !== "EACCES" || typeof detail !== "string") return void 0;
6580
+ if (!detail.includes("sealed placeholder")) return void 0;
6581
+ const reason = detail.replace(/fnox_proxy_[0-9a-f]{24}/g, "[placeholder]");
6582
+ return authError(`${reason}. ${PLACEHOLDER_REFUSED}`);
6583
+ }
6575
6584
  var SettingsSignInError = class extends McpcatError {
6576
6585
  advice;
6577
6586
  constructor(status, advice = SETTINGS_SIGN_IN) {
@@ -21577,6 +21586,11 @@ function createKernelFetch(ctx) {
21577
21586
  return ctx.fetch(input, init);
21578
21587
  };
21579
21588
  }
21589
+ function reportingRefusals(fetch) {
21590
+ return (input, init) => fetch(input, init).catch((err) => {
21591
+ throw placeholderRefusal(err) ?? err;
21592
+ });
21593
+ }
21580
21594
  async function kernelSeal(ctx, request) {
21581
21595
  const f = await ctx.open("/dev/sealed", { read: true, write: true });
21582
21596
  try {
@@ -21597,7 +21611,7 @@ function createKernelPlatform(ctx, options) {
21597
21611
  return {
21598
21612
  kind: "kernel",
21599
21613
  uid: ctx.sync?.cred?.().euid,
21600
- fetch: createKernelFetch(ctx),
21614
+ fetch: reportingRefusals(createKernelFetch(ctx)),
21601
21615
  spawn: (options2) => kernelSpawn(ctx, options2),
21602
21616
  listen: (options2) => kernelListen(ctx, options2),
21603
21617
  ...ctx.websocket ? { websocket: (url) => ctx.websocket(url) } : {},
@@ -21637,7 +21651,7 @@ async function main(ctx) {
21637
21651
  packageDir: "/node_modules/@ai-ecoverse/mcpcat"
21638
21652
  });
21639
21653
  const args = ctx.argv.slice(1);
21640
- return run(platform2, "0.31.15", args);
21654
+ return run(platform2, "0.31.16", args);
21641
21655
  }
21642
21656
  export {
21643
21657
  main as default
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/mcpcat",
3
- "version": "0.31.15",
3
+ "version": "0.31.16",
4
4
  "description": "A curl for the Model Context Protocol",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -58,9 +58,10 @@
58
58
  "trust:dry": "npx fledgling sync --dry-run -y --skip-publish"
59
59
  },
60
60
  "devDependencies": {
61
- "@ai-ecoverse/slicc-kernel": "1.170.3",
61
+ "@ai-ecoverse/slicc-kernel": "1.172.0",
62
62
  "@ai-ecoverse/slicc-shared-web": "2.13.7",
63
- "@biomejs/biome": "2.6.2",
63
+ "@ai-ecoverse/slicc-vault": "1.19.0",
64
+ "@biomejs/biome": "2.6.3",
64
65
  "@earendil-works/pi-codemode": "1.4.0",
65
66
  "@earendil-works/pi-mcp": "1.4.0",
66
67
  "@types/node": "26.6.5",