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

@@ -76,9 +76,9 @@
*
* `local/no-source-grep` is registered by `eslint.config.mjs` on several
* glob blocks, not only `tests/** /*.cjs`: also `scripts/** /*.cjs`,
* `eslint-rules/** /*.cjs`, `bin/lib/** /*.cjs`, `pi/** /*.cjs`,
* `eslint-rules/** /*.cjs`, `bin/lib/** /*.cjs`,
* `examples/** /*.cjs`, `msd-core/bin/** /*.cjs`, `vscode/*.js`,
* `.kilo/plugins/*.js`, and `.opencode/plugins/*.js`. A prior version of
* and `.opencode/plugins/*.js`. A prior version of
* this script only walked `tests/** /*.test.cjs`, which silently dropped
* every non-`.test.cjs` file under `tests/` AND every file under every one
* of those other blocks from BOTH reported numbers — a marker there would
@@ -168,8 +168,8 @@ const ROOT = path.join(__dirname, '..');
const ESLINT_CONFIG_PATH = path.join(ROOT, 'eslint.config.mjs');
const TESTS_DIR = process.env.MSD_LINT_ALLOW_TEST_RULE_TESTS_DIR || path.join(ROOT, 'tests');
// Overrides the ROOT that non-`tests/` glob base directories (scripts/,
// eslint-rules/, bin/lib/, pi/, examples/, msd-core/bin/, vscode/,
// .kilo/plugins/, .opencode/plugins/ — see deriveNoSourceGrepGlobs) are
// eslint-rules/, bin/lib/, examples/, msd-core/bin/, vscode/,
// .opencode/plugins/ — see deriveNoSourceGrepGlobs) are
// resolved under. TESTS_DIR already has its own override (above) for the
// `tests/**/*.cjs` block; this is the equivalent knob for every OTHER block
// that registers `local/no-source-grep`, so sandbox fixtures can exercise
@@ -246,9 +246,9 @@ function extractGenuineMarkerReasons(allComments) {
* set, which silently missed every non-`.test.cjs` file under `tests/`
* (`tests/helpers/**`, `tests/qa/**`, `tests/fixtures/**`, ...) AND every one
* of the other config blocks the rule is registered on (`scripts/** /*.cjs`,
* `eslint-rules/** /*.cjs`, `bin/lib/** /*.cjs`, `pi/** /*.cjs`,
* `eslint-rules/** /*.cjs`, `bin/lib/** /*.cjs`,
* `examples/** /*.cjs`, `msd-core/bin/** /*.cjs`, `vscode/*.js`,
* `.kilo/plugins/*.js`, `.opencode/plugins/*.js`). A marker in any of those
* `.opencode/plugins/*.js`). A marker in any of those
* would vanish from BOTH reported numbers instead of tripping anything.
*
* Rather than hand-maintain a second copy of that glob list (the exact
@@ -294,7 +294,7 @@ async function deriveNoSourceGrepGlobs() {
/**
* The literal (non-wildcard) leading path segments of a glob — the
* directory that must actually be walked on disk to find candidate files.
* e.g. `tests/** /*.cjs` -> `tests`, `.kilo/plugins/*.js` -> `.kilo/plugins`.
* e.g. `tests/** /*.cjs` -> `tests`, `.opencode/plugins/*.js` -> `.opencode/plugins`.
*
* The LAST segment is always excluded from consideration even when it has
* no wildcard of its own (e.g. the single-file fixture globs