Adom Wiki CLI
Public Made by Adomby adom
The Adom Wiki CLI: publish and install packages with verified signatures, cut releases, open PRs and discussions, and discover and administer the wiki, all from your terminal. Replaces adompkg.
pkg: dependencies has no platform key, so a package serving Windows and macOS cannot declare the right adom-bridge CLI for both
package.json dependencies is a single flat map with no platform key, so a package that serves both Windows and macOS cannot declare the right Adom Bridge CLI for both. There is no value that is correct.
The concrete case
adom/kicad-bridge is one package installed on both lines. It declares:
"dependencies": { "adom/adom-bridge": "^2.0.3" }
That is correct for its Windows users — adom/adom-bridge is 2.1.129, the Windows line. But on macOS the container needs the mac-line CLI, adom/adom-bridge-macos (1.9.209), which cannot satisfy ^2.0.3 at all (major mismatch). So:
- leaving it hands every mac install the Windows-line CLI;
- changing it breaks every Windows install;
- widening the range to match both would satisfy neither line's actual requirement.
What it costs in practice
Installing the package on a Mac overwrites ~/.local/bin/adom-bridge with the Windows-line binary. The container then runs a CLI whose verb set does not match the Bridge it is talking to: adom-bridge --help advertises a different catalog, desktop_* verbs are unroutable, and roughly 250 documented verbs answer as unknown. This is not hypothetical — it is how the drift was found, during a CLI audit of a live macOS workspace.
The concept already exists at resolve time
adom-wiki pkg install --platform <windows|macos|linux|any> exists, and pkg build reports a per-platform status ("platform": "macos", "a prebuilt asset already exists for this platform"). So the registry already models platform for assets and resolution; only the dependency edge cannot express it.
Ask
Let dependencies be platform-scoped, resolved by the existing --platform machinery. Shape is yours; the minimal version might be an optional sibling map:
"dependencies": { "adom/some-shared-thing": "^1.0.0" },
"platformDependencies": {
"macos": { "adom/adom-bridge-macos": "^1.9.x" },
"windows": { "adom/adom-bridge": "^2.1.x" }
}
merged over dependencies for the resolved platform. A lint that rejects a platform key the registry does not know would keep typos from silently resolving to nothing.
Current workaround, and why it is not sufficient here
The supported workaround is a separate package per platform, and most mac lines already do it: adom/adom-bridge-macos, adom/fusion-bridge-macos, adom/adom-browser-extension-macos, adom/hydrogen-macos. Where a mac-only package exists the dependency is trivially scopeable, because nothing on Windows consumes it — adom/fusion-bridge-macos was fixed exactly that way today (adom/adom-desktop: "*", which 301s onto the Windows page, → adom/adom-bridge-macos: "^1.9.x").
The gap is the package that legitimately serves both lines from one manifest. For those, splitting means publishing and maintaining a second package purely to express one dependency edge, and it duplicates every file the two lines share.
Related
adom/adom-wiki-cli#10(stale caret ranges on fast-moving 0.x deps) is the adjacent range-semantics problem; this one is about the platform axis rather than the version axis.