@yawlabs/mcp 0.60.0 → 0.60.2
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/CHANGELOG.md +17 -0
- package/dist/index.js +23 -15
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@yawlabs/mcp` (formerly `@yawlabs/mcph`) are documented here. This project uses [semantic versioning](https://semver.org) and a CI-gated release flow: pushing a `vX.Y.Z` tag triggers `.github/workflows/release.yml`, which publishes to npm.
|
|
4
4
|
|
|
5
|
+
## 0.60.2 -- pnpm/bun global stores upgrade with their owning tool
|
|
6
|
+
|
|
7
|
+
- `yaw-mcp upgrade` now detects pnpm global stores (`<pnpm-home>/global/<n>/node_modules/...`) and bun global installs (`~/.bun/install/global/...`) as their own install methods. `--run` spawns `pnpm add -g` / `bun add -g @yawlabs/mcp@latest` instead of misclassifying them as local node_modules trees -- which would have npm-installed a foreign package-lock + node_modules into the tool manager's internal store.
|
|
8
|
+
- `yaw-mcp doctor`'s UPGRADE AVAILABLE hint includes pnpm/bun globals in the "`yaw-mcp upgrade --run` works here" set.
|
|
9
|
+
|
|
10
|
+
## 0.60.1 -- scoop/custom-prefix npm globals detected correctly
|
|
11
|
+
|
|
12
|
+
- npm prefixes that live in a `bin` directory (scoop's nodejs persist dir, custom prefixes) put globals at `<prefix>/node_modules` with no `npm`/`lib`/`AppData` marker in the path, so they misclassified as `local-node-modules` -- `upgrade --run` then refused (pre-0.60.0) or npm-installed into the node prefix instead of upgrading the global. New `/bin/node_modules/` marker classifies them as `global-npm`.
|
|
13
|
+
|
|
14
|
+
## 0.60.0 -- nag removed; `upgrade --run` actually upgrades
|
|
15
|
+
|
|
16
|
+
- **The free-tier nag interstitial is gone.** Yaw MCP is free (the Pro tier is retired); `src/nag.ts`, its state file handling, and the dispatch gate were deleted. `YAW_MCP_NO_NAG` no longer has any effect -- there is nothing left to suppress. Remaining Pro references in help text, README, and the package description now read Yaw Team.
|
|
17
|
+
- **`yaw-mcp upgrade --run` upgrades local node_modules installs in place** instead of refusing and printing another command: it derives the package-tree root from the running entrypoint's path and runs `npm install @yawlabs/mcp@latest` there.
|
|
18
|
+
- **New `bundled-app` install method** for the copy that ships inside Yaw Terminal (`app.asar.unpacked`): upgrade/doctor say plainly that it updates with the app instead of suggesting an npm command that can never affect it.
|
|
19
|
+
- **Method-aware `doctor` upgrade hints**: the UPGRADE AVAILABLE section prints the user's terminal action for their install method, never a command that turns around and prints another command.
|
|
20
|
+
- Upgrade/doctor output puts commands on their own line with no trailing punctuation so they copy cleanly.
|
|
21
|
+
|
|
5
22
|
## 0.58.0 -- Rename to Yaw MCP + local-first Free mode + Pro nag + sync client
|
|
6
23
|
|
|
7
24
|
### Secrets sync + spawn-time substitution (Phase 6c)
|
package/dist/index.js
CHANGED
|
@@ -2848,6 +2848,9 @@ function detectInstallMethod(argvPath) {
|
|
|
2848
2848
|
if (/\/npm\/node_modules\/@yawlabs\/mcp\//.test(normalized)) return "global-npm";
|
|
2849
2849
|
if (/\/lib\/node_modules\/@yawlabs\/mcp\//.test(normalized)) return "global-npm";
|
|
2850
2850
|
if (/\/AppData\/Roaming\/npm\/node_modules\/@yawlabs\/mcp\//.test(normalized)) return "global-npm";
|
|
2851
|
+
if (/\/bin\/node_modules\/@yawlabs\/mcp\//.test(normalized)) return "global-npm";
|
|
2852
|
+
if (/\/pnpm\/global\/\d+\/node_modules\/@yawlabs\/mcp\//.test(normalized)) return "pnpm-global";
|
|
2853
|
+
if (/\/\.bun\/install\/global\/node_modules\/@yawlabs\/mcp\//.test(normalized)) return "bun-global";
|
|
2851
2854
|
if (/\/node_modules\/@yawlabs\/mcp\//.test(normalized)) return "local-node-modules";
|
|
2852
2855
|
if (/\/(yaw-mcp|mcph)\/(dist|src)\//.test(normalized)) return "dev-checkout";
|
|
2853
2856
|
return "unknown";
|
|
@@ -2865,6 +2868,12 @@ function buildUpgradePlan(input) {
|
|
|
2865
2868
|
case "global-npm":
|
|
2866
2869
|
command = "npm install -g @yawlabs/mcp@latest";
|
|
2867
2870
|
break;
|
|
2871
|
+
case "pnpm-global":
|
|
2872
|
+
command = "pnpm add -g @yawlabs/mcp@latest";
|
|
2873
|
+
break;
|
|
2874
|
+
case "bun-global":
|
|
2875
|
+
command = "bun add -g @yawlabs/mcp@latest";
|
|
2876
|
+
break;
|
|
2868
2877
|
case "npx":
|
|
2869
2878
|
command = null;
|
|
2870
2879
|
break;
|
|
@@ -2987,9 +2996,9 @@ async function runUpgrade(opts = {}) {
|
|
|
2987
2996
|
return { exitCode: 0, lines };
|
|
2988
2997
|
}
|
|
2989
2998
|
const installRoot = method === "local-node-modules" ? localInstallRoot(argvPath) : null;
|
|
2990
|
-
const
|
|
2999
|
+
const runSpec = method === "global-npm" ? { cmd: "npm", args: ["install", "-g", "@yawlabs/mcp@latest"] } : method === "pnpm-global" ? { cmd: "pnpm", args: ["add", "-g", "@yawlabs/mcp@latest"] } : method === "bun-global" ? { cmd: "bun", args: ["add", "-g", "@yawlabs/mcp@latest"] } : method === "local-node-modules" && installRoot !== null ? { cmd: "npm", args: ["install", "@yawlabs/mcp@latest"], cwd: installRoot } : null;
|
|
2991
3000
|
if (!opts.run) {
|
|
2992
|
-
if (
|
|
3001
|
+
if (runSpec) {
|
|
2993
3002
|
print("Run `yaw-mcp upgrade --run` to upgrade in place, or run it yourself:");
|
|
2994
3003
|
} else {
|
|
2995
3004
|
print("Run it yourself (--run can't safely automate this install method):");
|
|
@@ -2998,34 +3007,33 @@ async function runUpgrade(opts = {}) {
|
|
|
2998
3007
|
print(` ${plan.command}`);
|
|
2999
3008
|
return { exitCode: 1, lines };
|
|
3000
3009
|
}
|
|
3001
|
-
if (!
|
|
3010
|
+
if (!runSpec) {
|
|
3002
3011
|
printErr(`yaw-mcp upgrade --run: a "${method}" install can't be upgraded automatically. Run it yourself:`);
|
|
3003
3012
|
printErr("");
|
|
3004
3013
|
printErr(` ${plan.command}`);
|
|
3005
3014
|
return { exitCode: 2, lines };
|
|
3006
3015
|
}
|
|
3007
3016
|
const runner = opts.spawnImpl ?? defaultSpawn;
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
print(`Running in ${installRoot}:`);
|
|
3017
|
+
if (runSpec.cwd) {
|
|
3018
|
+
print(`Running in ${runSpec.cwd}:`);
|
|
3011
3019
|
} else {
|
|
3012
3020
|
print("Running:");
|
|
3013
3021
|
}
|
|
3014
3022
|
print(` ${plan.command}`);
|
|
3015
3023
|
print("");
|
|
3016
|
-
const code = await runner(
|
|
3024
|
+
const code = await runner(runSpec.cmd, runSpec.args, runSpec.cwd);
|
|
3017
3025
|
if (code === 0) {
|
|
3018
3026
|
print("");
|
|
3019
3027
|
print(`\u2713 Upgraded @yawlabs/mcp to ${latest}`);
|
|
3020
3028
|
return { exitCode: 0, lines };
|
|
3021
3029
|
}
|
|
3022
|
-
printErr(`yaw-mcp upgrade:
|
|
3030
|
+
printErr(`yaw-mcp upgrade: ${runSpec.cmd} exited ${code}. Try running the command yourself:`);
|
|
3023
3031
|
printErr("");
|
|
3024
3032
|
printErr(` ${plan.command}`);
|
|
3025
3033
|
return { exitCode: 3, lines };
|
|
3026
3034
|
}
|
|
3027
3035
|
function readCurrentVersion() {
|
|
3028
|
-
return true ? "0.60.
|
|
3036
|
+
return true ? "0.60.2" : "dev";
|
|
3029
3037
|
}
|
|
3030
3038
|
|
|
3031
3039
|
// src/usage-hints.ts
|
|
@@ -3087,7 +3095,7 @@ function selectFlakyNamespaces(entries, limit) {
|
|
|
3087
3095
|
}
|
|
3088
3096
|
|
|
3089
3097
|
// src/doctor-cmd.ts
|
|
3090
|
-
var VERSION = true ? "0.60.
|
|
3098
|
+
var VERSION = true ? "0.60.2" : "dev";
|
|
3091
3099
|
async function runDoctor(opts = {}) {
|
|
3092
3100
|
if (opts.json) return runDoctorJson(opts);
|
|
3093
3101
|
const lines = [];
|
|
@@ -3167,7 +3175,7 @@ async function runDoctor(opts = {}) {
|
|
|
3167
3175
|
} else if (method === "npx") {
|
|
3168
3176
|
print(` Running ${VERSION}; npm latest is ${staleHint}. npx fetches the latest`);
|
|
3169
3177
|
print(" on each spawn \u2014 restart your MCP client to pick it up.");
|
|
3170
|
-
} else if (method === "global-npm" || method === "local-node-modules") {
|
|
3178
|
+
} else if (method === "global-npm" || method === "pnpm-global" || method === "bun-global" || method === "local-node-modules") {
|
|
3171
3179
|
print(` Running ${VERSION}; npm latest is ${staleHint}. To upgrade in place:`);
|
|
3172
3180
|
print("");
|
|
3173
3181
|
print(" yaw-mcp upgrade --run");
|
|
@@ -5075,7 +5083,7 @@ function defaultSpawn2(cmd, args) {
|
|
|
5075
5083
|
async function maybeAutoUpgrade(deps = {}) {
|
|
5076
5084
|
const optOut = process.env.YAW_MCP_AUTO_UPGRADE;
|
|
5077
5085
|
if (optOut === "0" || optOut?.toLowerCase() === "false") return;
|
|
5078
|
-
const current = deps.currentVersion ?? (true ? "0.60.
|
|
5086
|
+
const current = deps.currentVersion ?? (true ? "0.60.2" : "dev");
|
|
5079
5087
|
if (current === "dev") return;
|
|
5080
5088
|
const method = detectInstallMethod(deps.argvPath ?? process.argv[1]);
|
|
5081
5089
|
const latest = await (deps.fetchLatestImpl ?? fetchLatestVersion2)();
|
|
@@ -7348,7 +7356,7 @@ function categorizeSpawnError(err) {
|
|
|
7348
7356
|
}
|
|
7349
7357
|
async function connectToUpstream(config, onDisconnect, onListChanged) {
|
|
7350
7358
|
const client = new Client(
|
|
7351
|
-
{ name: "yaw-mcp", version: true ? "0.60.
|
|
7359
|
+
{ name: "yaw-mcp", version: true ? "0.60.2" : "dev" },
|
|
7352
7360
|
{ capabilities: {} }
|
|
7353
7361
|
);
|
|
7354
7362
|
let transport;
|
|
@@ -7657,7 +7665,7 @@ var ConnectServer = class _ConnectServer {
|
|
|
7657
7665
|
this.apiUrl = apiUrl5;
|
|
7658
7666
|
this.token = token5;
|
|
7659
7667
|
this.server = new Server(
|
|
7660
|
-
{ name: "yaw-mcp", version: true ? "0.60.
|
|
7668
|
+
{ name: "yaw-mcp", version: true ? "0.60.2" : "dev" },
|
|
7661
7669
|
{
|
|
7662
7670
|
capabilities: {
|
|
7663
7671
|
tools: { listChanged: true },
|
|
@@ -10628,7 +10636,7 @@ if (subcommand === "compliance") {
|
|
|
10628
10636
|
`);
|
|
10629
10637
|
process.exit(0);
|
|
10630
10638
|
} else if (subcommand === "--version" || subcommand === "-V") {
|
|
10631
|
-
process.stdout.write(`yaw-mcp ${true ? "0.60.
|
|
10639
|
+
process.stdout.write(`yaw-mcp ${true ? "0.60.2" : "dev"}
|
|
10632
10640
|
`);
|
|
10633
10641
|
process.exit(0);
|
|
10634
10642
|
} else if (subcommand && !subcommand.startsWith("-")) {
|
package/package.json
CHANGED