@geohar/opencode-mcp-combiner 0.10.0 → 0.10.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/README.md CHANGED
@@ -76,7 +76,9 @@ all defaults.
76
76
  | `checkout` | — | Combiner checkout for `uv run --project <checkout> python -m mcp_combiner`. |
77
77
  | `name` | `mcp-combiner` | `sharedserver` instance name. |
78
78
  | `gracePeriod` | `30m` | `sharedserver` grace period (`30m`, `1h`, …). |
79
- | `logFile` | — | Capture the combiner's output (`sharedserver --log-file`). |
79
+ | `logFile` | `~/.local/state/mcp-combiner/mcp-combiner.log` | Capture the combiner's stdout/stderr (`sharedserver --log-file`); `"none"` disables. |
80
+ | `pyLogFile` | `~/.local/state/mcp-combiner/mcp-combiner-py.log` | The combiner's own `--log-file` (fastmcp/OAuth/httpx detail); `"none"` disables. |
81
+ | `logLevel` | `info` | The combiner's `--log-level`. |
80
82
  | `binary` | *(auto-resolved)* | Path to the `sharedserver` binary. |
81
83
  | `lockdir` | — | Override `SHAREDSERVER_LOCKDIR`. |
82
84
  | `mcpName` | `mcp-combiner` | Key under OpenCode's `mcp` config. |
@@ -116,7 +118,9 @@ Equivalent to setting `manage: false` with an explicit `url`.
116
118
  | `OPENCODE_MCP_COMBINER_PORT` | Port the combiner serves on. Default `9741`. |
117
119
  | `OPENCODE_MCP_COMBINER_NAME` | `sharedserver` instance name. Default `mcp-combiner`. |
118
120
  | `OPENCODE_MCP_COMBINER_GRACE` | `sharedserver` grace period. Default `30m`. |
119
- | `OPENCODE_MCP_COMBINER_LOG` | Capture the combiner's output to this path. |
121
+ | `OPENCODE_MCP_COMBINER_LOG` | Stdout/stderr capture path (default `~/.local/state/mcp-combiner/mcp-combiner.log`; `none` disables). |
122
+ | `OPENCODE_MCP_COMBINER_PYLOG` | The combiner's own `--log-file` (default `…/mcp-combiner-py.log`; `none` disables). |
123
+ | `OPENCODE_MCP_COMBINER_LOG_LEVEL` | The combiner's `--log-level`. Default `info`. |
120
124
  | `SHAREDSERVER_BIN` | Path to the `sharedserver` binary. |
121
125
  | `SHAREDSERVER_LOCKDIR` | `sharedserver` lock directory. |
122
126
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AA0ajD,QAAA,MAAM,iBAAiB,EAAE,MAwLxB,CAAA;AAED,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAqbjD,QAAA,MAAM,iBAAiB,EAAE,MA6MxB,CAAA;AAED,eAAe,iBAAiB,CAAA"}
package/dist/index.js CHANGED
@@ -12,10 +12,11 @@
12
12
  // surfaces connection state via McpStatus and reconnects), the launch is the
13
13
  // best-effort "make sure something is listening there" half. See README.md.
14
14
  import { spawnSync } from "node:child_process";
15
- import { existsSync, readFileSync } from "node:fs";
15
+ import { existsSync, mkdirSync, readFileSync } from "node:fs";
16
16
  import { homedir } from "node:os";
17
17
  import { dirname, join } from "node:path";
18
18
  import { fileURLToPath } from "node:url";
19
+ import { resolveSharedserver } from "./sharedserver-resolve.js";
19
20
  const DEFAULT_PORT = 9741;
20
21
  const DEFAULT_NAME = "mcp-combiner";
21
22
  const DEFAULT_GRACE = "30m";
@@ -46,26 +47,17 @@ const COMBINER_DIRECTIVE = (() => {
46
47
  }
47
48
  })();
48
49
  // ── sharedserver binary resolution (ported from opencode-sharedserver) ──
49
- const CANDIDATE_BINARIES = [
50
- "sharedserver",
51
- join(homedir(), ".cargo", "bin", "sharedserver"),
52
- join(homedir(), ".local", "bin", "sharedserver"),
53
- "/usr/local/bin/sharedserver",
54
- "/opt/homebrew/bin/sharedserver",
55
- ];
56
- function resolveBinary(override, env) {
57
- const candidates = [override, env.SHAREDSERVER_BIN, ...CANDIDATE_BINARIES].filter((v) => typeof v === "string" && v.length > 0);
58
- for (const candidate of candidates) {
59
- if (candidate.includes("/")) {
60
- if (existsSync(candidate))
61
- return candidate;
62
- continue;
63
- }
64
- const probe = spawnSync(candidate, ["--version"], { stdio: "ignore", env });
65
- if (probe.status === 0)
66
- return candidate;
67
- }
68
- return undefined;
50
+ // Resolution lives in a module vendored byte-identical from georgeharker/sharedserver
51
+ // (scripts/sync-vendored.sh), so the Claude hook's bin/sharedserver and this plugin
52
+ // answer "which sharedserver, and why" identically. Floor-only against the latest
53
+ // release: mcp-companion consumes sharedserver rather than shipping it.
54
+ const SHAREDSERVER_MIN_VERSION = "0.6.7";
55
+ function resolveBinary(override, env, log, toast) {
56
+ return resolveSharedserver({
57
+ label: "mcp-combiner",
58
+ minVersion: SHAREDSERVER_MIN_VERSION,
59
+ installerUrl: "https://github.com/georgeharker/sharedserver/releases/latest/download/sharedserver-installer.sh",
60
+ }, override, env, log, toast);
69
61
  }
70
62
  /** Probe a command once for BOTH facts we need: is it runnable, and which version.
71
63
  *
@@ -434,7 +426,7 @@ const McpCombinerPlugin = async ({ client }, options) => {
434
426
  scheduleMcpHealthCheck(client, mcpName, log, toast, 5000);
435
427
  return hooks;
436
428
  }
437
- const binary = resolveBinary(opts.binary, env);
429
+ const binary = resolveBinary(opts.binary, env, log, toast);
438
430
  if (!binary) {
439
431
  const msg = "sharedserver binary not found; set `binary`/`$SHAREDSERVER_BIN`, or use manage:false";
440
432
  log("error", msg);
@@ -460,11 +452,24 @@ const McpCombinerPlugin = async ({ client }, options) => {
460
452
  }
461
453
  // Assemble the wrapped command: <combiner> [--mcp] --config <cfg> --port <port> [--host <host>]
462
454
  const serve = [];
463
- if (combinerNeedsMcpFlag(combiner, env))
455
+ const modern = combinerNeedsMcpFlag(combiner, env);
456
+ if (modern)
464
457
  serve.push("--mcp");
465
458
  serve.push("--config", cfgPath, "--port", String(port));
466
459
  if (opts.host)
467
460
  serve.push("--host", opts.host);
461
+ // Logging parity with the Neovim plugin's two-file scheme (plugins/README.md "Logs"):
462
+ // sharedserver captures raw stdout/stderr (--log-file on `use`, below) and the
463
+ // combiner writes its own --log-file. Both default under $XDG_STATE_HOME/mcp-combiner;
464
+ // "none" disables a file. The combiner-side flags ride the same version gate as
465
+ // --mcp — releases below the floor predate --log-file/--log-level.
466
+ const logDir = join(env.XDG_STATE_HOME || join(homedir(), ".local", "state"), "mcp-combiner");
467
+ const pyLogFile = opts.pyLogFile ?? env.OPENCODE_MCP_COMBINER_PYLOG ?? join(logDir, "mcp-combiner-py.log");
468
+ if (modern) {
469
+ if (pyLogFile !== "none")
470
+ serve.push("--log-file", pyLogFile);
471
+ serve.push("--log-level", opts.logLevel ?? env.OPENCODE_MCP_COMBINER_LOG_LEVEL ?? "info");
472
+ }
468
473
  // Structural args, then the user's extras, then the serve args — the extras sit
469
474
  // "before the serve args" as the `args` option documents.
470
475
  const wrapped = {
@@ -481,9 +486,18 @@ const McpCombinerPlugin = async ({ client }, options) => {
481
486
  "--metadata",
482
487
  `opencode-${process.pid}`,
483
488
  ];
484
- const logFile = opts.logFile ?? process.env.OPENCODE_MCP_COMBINER_LOG;
485
- if (logFile)
489
+ const logFile = opts.logFile ?? process.env.OPENCODE_MCP_COMBINER_LOG ?? join(logDir, "mcp-combiner.log");
490
+ if (logFile !== "none") {
491
+ // sharedserver won't create the capture file's directory; the combiner does
492
+ // create its own --log-file parent.
493
+ try {
494
+ mkdirSync(dirname(logFile), { recursive: true });
495
+ }
496
+ catch {
497
+ // best-effort — a failed mkdir just means sharedserver may drop the capture
498
+ }
486
499
  useArgs.push("--log-file", logFile);
500
+ }
487
501
  useArgs.push("--", wrapped.cmd, ...wrapped.args);
488
502
  installCleanup();
489
503
  const pre = preCheck(binary, name, env);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export type LogFn = (level: "info" | "warn" | "error", message: string) => void;
2
+ export type ToastFn = (variant: "success" | "warning" | "error", message: string) => void;
3
+ export type ResolveConfig = {
4
+ /** Prefix for user-facing messages. Default "sharedserver". */
5
+ label?: string;
6
+ /** Minimum acceptable version. Defaults to pkgVersion (lockstep). */
7
+ minVersion?: string;
8
+ /** Installer to fetch. Defaults to the release pinned to pkgVersion. */
9
+ installerUrl?: string;
10
+ /** The host package's own version — only meaningful in lockstep mode. */
11
+ pkgVersion?: string;
12
+ };
13
+ /** Resolve the sharedserver binary, fetching a release when nothing usable is present.
14
+ *
15
+ * Behaviourally identical to plugins/claude/bin/sharedserver — same ladder, floor,
16
+ * lock and degrade-rather-than-die fallback, so a user running both clients gets the
17
+ * same answer to "which sharedserver am I on, and why". */
18
+ export declare function resolveSharedserver(cfg: ResolveConfig, override: string | undefined, env: NodeJS.ProcessEnv, log?: LogFn, toast?: ToastFn): string | undefined;
19
+ //# sourceMappingURL=sharedserver-resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharedserver-resolve.d.ts","sourceRoot":"","sources":["../src/sharedserver-resolve.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;AAC/E,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;AAEzF,MAAM,MAAM,aAAa,GAAG;IACxB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAyID;;;;4DAI4D;AAC5D,wBAAgB,mBAAmB,CAC/B,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,GAAG,CAAC,EAAE,KAAK,EACX,KAAK,CAAC,EAAE,OAAO,GAChB,MAAM,GAAG,SAAS,CA4CpB"}
@@ -0,0 +1,188 @@
1
+ // Resolve the `sharedserver` binary, fetching it when none is usable.
2
+ //
3
+ // VENDORED FILE. This is copied byte-identical into the consuming OpenCode plugins
4
+ // (cribsheet, svg-mcp) by their scripts/sync-vendored.sh, so the drift check is a plain
5
+ // diff. There is no way to share it as a dependency without coupling their versions to
6
+ // sharedserver's — see plugins/claude/bin/sharedserver for the same reasoning on the
7
+ // shell side. Edit it HERE; consumers re-sync.
8
+ //
9
+ // Everything repo-specific arrives through ResolveConfig rather than being hardcoded,
10
+ // mirroring bin/sharedserver.conf.
11
+ import { spawnSync } from "node:child_process";
12
+ import { existsSync, mkdirSync, rmSync, statSync, writeFileSync } from "node:fs";
13
+ import { homedir } from "node:os";
14
+ import { join } from "node:path";
15
+ /** Oldest release these plugins are correct against: 0.5.0 added the PID-reuse guard,
16
+ * without which a recycled client PID can hold a server open indefinitely. */
17
+ const HARDCODED_FLOOR = "0.5.0";
18
+ const CANDIDATE_BINARIES = [
19
+ "sharedserver",
20
+ join(homedir(), ".cargo", "bin", "sharedserver"),
21
+ join(homedir(), ".local", "bin", "sharedserver"),
22
+ "/usr/local/bin/sharedserver",
23
+ "/opt/homebrew/bin/sharedserver",
24
+ ];
25
+ function parseVersion(text) {
26
+ const m = text.match(/(\d+)\.(\d+)\.(\d+)/);
27
+ return m ? [Number(m[1]), Number(m[2]), Number(m[3])] : undefined;
28
+ }
29
+ function gte(a, b) {
30
+ for (let i = 0; i < 3; i++)
31
+ if (a[i] !== b[i])
32
+ return a[i] > b[i];
33
+ return true;
34
+ }
35
+ function versionOf(candidate, env) {
36
+ const r = spawnSync(candidate, ["--version"], { env });
37
+ if (r.error)
38
+ return undefined;
39
+ return parseVersion(`${r.stdout?.toString() ?? ""}${r.stderr?.toString() ?? ""}`);
40
+ }
41
+ /** Synchronous sleep — this path runs before anything can be awaited, so the lock wait
42
+ * cannot use timers. Atomics.wait blocks without spinning. */
43
+ function sleepSync(ms) {
44
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
45
+ }
46
+ /** First sharedserver found at ANY version, or undefined. */
47
+ function probeAny(override, env) {
48
+ const candidates = [override, env.SHAREDSERVER_BIN, ...CANDIDATE_BINARIES].filter((v) => typeof v === "string" && v.length > 0);
49
+ for (const candidate of candidates) {
50
+ if (candidate.includes("/")) {
51
+ if (existsSync(candidate))
52
+ return candidate;
53
+ continue;
54
+ }
55
+ // Presence is "spawn did not fail", NOT "exited 0" — a build that rejects some
56
+ // flag is still present.
57
+ if (!spawnSync(candidate, ["--version"], { stdio: "ignore", env }).error)
58
+ return candidate;
59
+ }
60
+ return undefined;
61
+ }
62
+ /** Download and run the cargo-dist installer, then re-probe. */
63
+ function installPinned(cfg, url, what, env, log, toast) {
64
+ // The SAME lock directory as the shell shim — cross-client coordination, so a
65
+ // Claude session and an OpenCode session starting together do not race.
66
+ const lockdir = join(env.TMPDIR || "/tmp", ".sharedserver-install.lock");
67
+ let haveLock = false;
68
+ try {
69
+ mkdirSync(lockdir);
70
+ haveLock = true;
71
+ }
72
+ catch {
73
+ const deadline = Date.now() + 20_000;
74
+ while (existsSync(lockdir) && Date.now() < deadline)
75
+ sleepSync(250);
76
+ const after = probeAny(undefined, env);
77
+ if (after)
78
+ return after;
79
+ try {
80
+ mkdirSync(lockdir);
81
+ haveLock = true;
82
+ }
83
+ catch {
84
+ log?.("warn", `${cfg.label}: another process is installing sharedserver and did not finish; remove the stale lock if this persists: ${lockdir}`);
85
+ return undefined;
86
+ }
87
+ }
88
+ try {
89
+ // Re-probe under the lock: the winner may have finished while we waited.
90
+ const already = probeAny(undefined, env);
91
+ const floor = parseVersion(cfg.minVersion ?? HARDCODED_FLOOR);
92
+ if (already) {
93
+ const v = versionOf(already, env);
94
+ if (v && floor && gte(v, floor))
95
+ return already;
96
+ }
97
+ // Download to a file, then run it. `curl … | sh` would report success on a 404,
98
+ // since a pipeline's status is sh's; spawnSync uses no shell, so this is exact.
99
+ const script = join(lockdir, "installer.sh");
100
+ const dl = spawnSync("curl", ["--proto", "=https", "--tlsv1.2", "-LsSf", url, "-o", script], { env });
101
+ if (dl.error || dl.status !== 0) {
102
+ const msg = `${cfg.label}: could not download the sharedserver installer (${what})`;
103
+ log?.("warn", msg);
104
+ toast?.("warning", msg);
105
+ return undefined;
106
+ }
107
+ if (!existsSync(script) || statSync(script).size === 0) {
108
+ log?.("warn", `${cfg.label}: the downloaded sharedserver installer was empty`);
109
+ return undefined;
110
+ }
111
+ // cargo-dist embeds the expected sha256 but looks up only `sha256sum` and SKIPS
112
+ // verification when missing — i.e. always, on macOS. Give it one (identical
113
+ // output) rather than execute an unverified binary.
114
+ let runEnv = env;
115
+ if (spawnSync("sh", ["-c", "command -v sha256sum"], { stdio: "ignore" }).status !== 0) {
116
+ if (spawnSync("sh", ["-c", "command -v shasum"], { stdio: "ignore" }).status !== 0) {
117
+ log?.("warn", `${cfg.label}: refusing to install sharedserver — no sha256sum or shasum to verify the download`);
118
+ return undefined;
119
+ }
120
+ writeFileSync(join(lockdir, "sha256sum"), '#!/bin/sh\nexec shasum -a 256 "$@"\n', { mode: 0o755 });
121
+ runEnv = { ...env, PATH: `${lockdir}:${env.PATH ?? ""}` };
122
+ }
123
+ const run = spawnSync("sh", [script], { env: runEnv, stdio: "ignore" });
124
+ if (run.error || run.status !== 0) {
125
+ log?.("warn", `${cfg.label}: the sharedserver installer ran but failed`);
126
+ return undefined;
127
+ }
128
+ return probeAny(undefined, env);
129
+ }
130
+ finally {
131
+ if (haveLock) {
132
+ try {
133
+ rmSync(lockdir, { recursive: true, force: true });
134
+ }
135
+ catch {
136
+ /* best effort — a leaked lock costs the next run its bounded wait */
137
+ }
138
+ }
139
+ }
140
+ }
141
+ /** Resolve the sharedserver binary, fetching a release when nothing usable is present.
142
+ *
143
+ * Behaviourally identical to plugins/claude/bin/sharedserver — same ladder, floor,
144
+ * lock and degrade-rather-than-die fallback, so a user running both clients gets the
145
+ * same answer to "which sharedserver am I on, and why". */
146
+ export function resolveSharedserver(cfg, override, env, log, toast) {
147
+ const label = cfg.label ?? "sharedserver";
148
+ const minVersion = cfg.minVersion ?? cfg.pkgVersion ?? HARDCODED_FLOOR;
149
+ const url = cfg.installerUrl ??
150
+ (cfg.pkgVersion
151
+ ? `https://github.com/georgeharker/sharedserver/releases/download/v${cfg.pkgVersion}/sharedserver-installer.sh`
152
+ : "https://github.com/georgeharker/sharedserver/releases/latest/download/sharedserver-installer.sh");
153
+ const what = cfg.installerUrl || !cfg.pkgVersion ? "the latest release" : `v${cfg.pkgVersion}`;
154
+ const resolved = { ...cfg, label, minVersion };
155
+ const floor = parseVersion(minVersion);
156
+ // An explicit binary / SHAREDSERVER_BIN is never second-guessed: the user named a
157
+ // specific one, so quietly downloading a different one is the wrong answer.
158
+ const explicit = override ?? env.SHAREDSERVER_BIN;
159
+ if (explicit) {
160
+ const present = explicit.includes("/")
161
+ ? existsSync(explicit)
162
+ : !spawnSync(explicit, ["--version"], { stdio: "ignore", env }).error;
163
+ if (present) {
164
+ const v = versionOf(explicit, env);
165
+ if (v && floor && !gte(v, floor)) {
166
+ const msg = `${label}: sharedserver at ${explicit} is ${v.join(".")}; this plugin expects >= ${minVersion}. Using it anyway because you set it explicitly.`;
167
+ log?.("warn", msg);
168
+ toast?.("warning", msg);
169
+ }
170
+ return explicit;
171
+ }
172
+ }
173
+ const found = probeAny(override, env);
174
+ if (found) {
175
+ const v = versionOf(found, env);
176
+ if (v && floor && gte(v, floor))
177
+ return found;
178
+ // Too old: fetch, but remember this one — if the download fails we would rather
179
+ // run the old binary than nothing.
180
+ const msg = `${label}: sharedserver at ${found} is ${v?.join(".") ?? "an unknown version"}; this plugin expects >= ${minVersion}. Fetching ${what}. To keep your own build, set SHAREDSERVER_BIN=${found}`;
181
+ log?.("warn", msg);
182
+ toast?.("warning", msg);
183
+ return installPinned(resolved, url, what, env, log, toast) ?? found;
184
+ }
185
+ log?.("info", `${label}: no usable sharedserver found; fetching ${what} (one time). This needs no Rust toolchain.`);
186
+ return installPinned(resolved, url, what, env, log, toast);
187
+ }
188
+ //# sourceMappingURL=sharedserver-resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharedserver-resolve.js","sourceRoot":"","sources":["../src/sharedserver-resolve.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geohar/opencode-mcp-combiner",
3
- "version": "0.10.0",
3
+ "version": "0.10.2",
4
4
  "description": "OpenCode plugin: run the mcp-combiner MCP aggregator via sharedserver and register its endpoint with OpenCode.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",