@webority/ensemble 0.5.24 → 0.5.25
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/lib/core.js +38 -1
- package/package.json +6 -6
package/lib/core.js
CHANGED
|
@@ -579,6 +579,10 @@ function wireHooks() {
|
|
|
579
579
|
if (enginePresent('omp')) {
|
|
580
580
|
if (upsertOmpMcp(runtimeCmd)) report.push('omp:mcp');
|
|
581
581
|
}
|
|
582
|
+
// Retiring an engine means removing what we installed for it, not just ceasing to write it —
|
|
583
|
+
// otherwise every machine wired before the retirement keeps pointing a dead engine at the runtime.
|
|
584
|
+
if (removeGeminiWiring()) report.push('gemini:removed');
|
|
585
|
+
|
|
582
586
|
if (enginePresent('antigravity')) {
|
|
583
587
|
// Prefer Claude-shaped global json if Antigravity is a Claude-family fork; also write local mcp.json.
|
|
584
588
|
if (upsertJsonMcp(path.join(HOME, '.antigravity', 'mcp.json'), 'ensemble', runtimeCmd, ['mcp', '--engine', 'antigravity'])) {
|
|
@@ -872,6 +876,39 @@ function writeGrokRules() {
|
|
|
872
876
|
return wrote > 0;
|
|
873
877
|
}
|
|
874
878
|
|
|
879
|
+
/// Gemini CLI is retired (discontinued product). Strip the MCP server we previously wrote into its
|
|
880
|
+
/// settings, leaving every other server and key untouched. Note this file belongs to Gemini CLI, not
|
|
881
|
+
/// to Antigravity — Antigravity merely shares the ~/.gemini ROOT and keeps its own MCP config under
|
|
882
|
+
/// ~/.antigravity/mcp.json, so removing our entry here cannot unwire Antigravity.
|
|
883
|
+
/// Returns true only when something was actually removed, so a clean machine reports nothing.
|
|
884
|
+
function removeGeminiWiring(file = path.join(HOME, '.gemini', 'settings.json')) {
|
|
885
|
+
if (!fs.existsSync(file)) return false;
|
|
886
|
+
|
|
887
|
+
let j;
|
|
888
|
+
try { j = JSON.parse(fs.readFileSync(file, 'utf8')); }
|
|
889
|
+
catch (e) { return skipMalformedJson(file, 'Gemini settings (~/.gemini/settings.json)', e); }
|
|
890
|
+
if (!j || typeof j !== 'object' || !j.mcpServers || typeof j.mcpServers !== 'object') return false;
|
|
891
|
+
|
|
892
|
+
let removed = false;
|
|
893
|
+
for (const name of ['ensemble', 'ensemble-bus']) {
|
|
894
|
+
const entry = j.mcpServers[name];
|
|
895
|
+
// Only ever remove OUR entry — a same-named server pointing elsewhere belongs to the user.
|
|
896
|
+
if (entry && isEnsembleHook(entry.command)) {
|
|
897
|
+
delete j.mcpServers[name];
|
|
898
|
+
removed = true;
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
if (!removed) return false;
|
|
902
|
+
|
|
903
|
+
try {
|
|
904
|
+
fs.writeFileSync(file, JSON.stringify(j, null, 2) + '\n');
|
|
905
|
+
return true;
|
|
906
|
+
} catch (e) {
|
|
907
|
+
warn('could not remove the retired Gemini MCP entry from ' + file + ': ' + (e.message || e));
|
|
908
|
+
return false;
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
|
|
875
912
|
// OpenCode has no JSON hooks file at all — its lifecycle surface is a JS plugin (`Hooks` from
|
|
876
913
|
// @opencode-ai/plugin), so the bus is wired by writing one. Verified against the installed package's
|
|
877
914
|
// own types (node_modules/@opencode-ai/{plugin,sdk}): `chat.message` fires per user turn and carries
|
|
@@ -1231,5 +1268,5 @@ module.exports = {
|
|
|
1231
1268
|
sleep, openBrowser, startDevice, pollDevice, finishSetup, assertSupported,
|
|
1232
1269
|
runtimePaths, runtimeBin, runtimeInstalled, requireRuntime, ensureRuntime,
|
|
1233
1270
|
isUsableBinary, removeLegacyBusArtifacts, MIN_BINARY_BYTES,
|
|
1234
|
-
writeEngineHooks, writeGrokRules, writeAntigravityHooks, writeOpenCodePlugin, upsertTomlMcp, installedVersionCurrent, readInstalledVersion, PKG_VERSION,
|
|
1271
|
+
writeEngineHooks, writeGrokRules, writeAntigravityHooks, writeOpenCodePlugin, removeGeminiWiring, upsertTomlMcp, installedVersionCurrent, readInstalledVersion, PKG_VERSION,
|
|
1235
1272
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webority/ensemble",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.25",
|
|
4
4
|
"description": "Connect this machine to Ensemble — runs the local agent runner and wires the ensemble session bus so your coding sessions talk (per-org, isolated).",
|
|
5
5
|
"bin": {
|
|
6
6
|
"ensemble": "bin/ensemble.js"
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
"node": ">=18"
|
|
13
13
|
},
|
|
14
14
|
"optionalDependencies": {
|
|
15
|
-
"@webority/ensemble-darwin-arm64": "0.5.
|
|
16
|
-
"@webority/ensemble-darwin-x64": "0.5.
|
|
17
|
-
"@webority/ensemble-linux-arm64": "0.5.
|
|
18
|
-
"@webority/ensemble-linux-x64": "0.5.
|
|
19
|
-
"@webority/ensemble-win-x64": "0.5.
|
|
15
|
+
"@webority/ensemble-darwin-arm64": "0.5.25",
|
|
16
|
+
"@webority/ensemble-darwin-x64": "0.5.25",
|
|
17
|
+
"@webority/ensemble-linux-arm64": "0.5.25",
|
|
18
|
+
"@webority/ensemble-linux-x64": "0.5.25",
|
|
19
|
+
"@webority/ensemble-win-x64": "0.5.25"
|
|
20
20
|
},
|
|
21
21
|
"files": [
|
|
22
22
|
"bin",
|