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

@@ -61,13 +61,14 @@ describe('#4153 regression: unresolved update targets stop before later workflow
'an unrecognized execution_context path must not infer Claude',
);
assert.match(step, /`\/\.claude\/` -> `claude`/);
assert.match(step, /`\/\.windsurf\/`, `\/\.devin\/` -> `windsurf`/);
assert.match(step, /`\/\.codex\/` -> `codex`/);
assert.match(step, /`\/\.config\/opencode\/` or `\/\.opencode\/` -> `opencode`/);
assert.doesNotMatch(step, /otherwise `?claude`?\./);
assert.match(step, /INSTALL_SCOPE` is `UNKNOWN`, `TARGET_RUNTIME` is empty, or `MSD_DIR` is empty/);
assert.match(step, /rerun from a valid installed runtime/i);
assert.match(step, /Rerun from a valid installed runtime: `\/msd:update`\./);
assert.match(step, /npx -y --package=@golem15\/msd-core@latest -- msd-core --global/);
assert.match(step, /target runtime \(`claude`, `opencode`, `kilo`, `codex`, `antigravity`, `windsurf`\)/);
assert.match(step, /target runtime \(`claude`, `opencode`, `codex`, `antigravity`\)/);
assert.ok(exit > unresolved, 'unresolved target must exit before the next step');
const versionMissing = step.indexOf('VERSION file missing');