refactor: drop 12 runtimes, keep Claude, Codex, OpenCode, Cursor, ZCode, Antigravity

Removes kilo, kimi, kimi-code, copilot, windsurf, augment, trae, qwen, hermes,
cline, codebuddy and pi end to end: capability descriptors, installer branches
and converters (bin/install.js 14.9k -> 11.2k lines), TypeScript converters,
hook surfaces and runtime homes, review lanes qwen/kimi-code, the two pi
migrations, Kimi payload normalization in the hook guards, dead hostBehaviors
vocabulary, launcher home probes, fixtures, runtime-specific tests and the
prose that presented them as supported.

Installer output for the six kept runtimes is byte-identical to before the
prune. The Kimi tool-vocabulary tests in workflow-guard, read-guard and
read-injection-scanner are left in place pending a decision.
This commit is contained in:
Jakub Zych
2026-10-06 20:02:40 +02:00
parent 12ee75a509
commit 6cfa0c55d2
509 changed files with 1869 additions and 47737 deletions

View File

@@ -12,9 +12,7 @@ const { runtimeFlags } = require('../msd-core/bin/lib/runtime-name-policy.cjs');
const registry = require('../msd-core/bin/lib/capability-registry.cjs');
const EXPECTED_FLAGS = [
'isOpencode', 'isKilo', 'isCodex', 'isCopilot', 'isAntigravity',
'isCursor', 'isWindsurf', 'isAugment', 'isTrae', 'isQwen', 'isHermes',
'isCodebuddy', 'isCline', 'isKimi', 'isKimiCode', 'isZcode', 'isPi',
'isOpencode', 'isCodex', 'isAntigravity', 'isCursor', 'isZcode',
];
// #2103: registry runtimes that are NEVER CLI-installed via bin/install.js
@@ -51,12 +49,12 @@ test('runtimeFlags: claude / unknown / empty → all flags false (fail-closed)',
}
});
test('runtimeFlags: all 17 flags present + boolean + the object is frozen', () => {
test('runtimeFlags: all 5 flags present + boolean + the object is frozen', () => {
const flags = runtimeFlags('opencode');
for (const f of EXPECTED_FLAGS) {
assert.strictEqual(typeof flags[f], 'boolean', `${f} must be boolean`);
}
assert.deepStrictEqual(Object.keys(flags).sort(), [...EXPECTED_FLAGS].sort(), 'exactly the 17 flags');
assert.deepStrictEqual(Object.keys(flags).sort(), [...EXPECTED_FLAGS].sort(), 'exactly the 5 flags');
assert.ok(Object.isFrozen(flags), 'flags object must be frozen');
});
@@ -87,5 +85,5 @@ test('#2103: vscode is registered but intentionally excluded from runtimeFlags (
assert.strictEqual(flags[f], false, `runtime 'vscode': ${f} must be false (no isVscode flag exists)`);
}
assert.deepStrictEqual(Object.keys(flags).sort(), [...EXPECTED_FLAGS].sort(),
'runtimeFlags(\'vscode\') must NOT introduce a new isVscode key — still exactly the 17 flags');
'runtimeFlags(\'vscode\') must NOT introduce a new isVscode key — still exactly the 5 flags');
});