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

@@ -272,14 +272,12 @@ const { transformContentToHyphen } = require(path.join(REPO_ROOT, 'scripts', 'fi
// Snapshot of all runtime IDs in the layout table at the time of this fix.
// Keep these two sets covering: any runtime listed in
// runtime-artifact-layout.cjs MUST appear in exactly one bucket.
const HYPHEN_NAME_AGENT_RUNTIMES = ['claude', 'qwen', 'hermes'];
const HYPHEN_NAME_AGENT_RUNTIMES = ['claude'];
const SELF_CONVERTING_OR_COLON_RUNTIMES = [
'codex', 'copilot', 'antigravity', 'cursor', 'windsurf', 'augment',
'trae', 'codebuddy', 'cline',
'opencode', 'kilo',
'codex', 'antigravity', 'cursor', 'opencode',
];
describe('bug #3677 — agent body colon-namespace leak (Claude / Qwen / Hermes)', () => {
describe('bug #3677 — agent body colon-namespace leak (Claude)', () => {
describe('A — install.js exports the pure predicate + helper', () => {
test('A1: shouldNormalizeHyphenNamespaceInAgentBody is an exported function', () => {
@@ -354,22 +352,10 @@ describe('bug #3677 — agent body colon-namespace leak (Claude / Qwen / Hermes)
assert.ok(out.includes('msd-sdk query commit'), 'msd-sdk (CLI binary) must not be touched');
});
test('C2: qwen — same transform applies', () => {
const out = normalizeAgentBodyForRuntime(inputBody, 'qwen', cmdNames);
assert.ok(out.includes('/msd-execute-phase'));
assert.ok(!out.includes('/msd:execute-phase'));
});
test('C3: hermes — same transform applies', () => {
const out = normalizeAgentBodyForRuntime(inputBody, 'hermes', cmdNames);
assert.ok(out.includes('/msd-execute-phase'));
assert.ok(!out.includes('/msd:execute-phase'));
});
test('C5: self-converting runtime (copilot) — body returned unchanged at this layer', () => {
const out = normalizeAgentBodyForRuntime(inputBody, 'copilot', cmdNames);
// Copilot has its own convertClaudeAgentToCopilotAgent that handles
// namespace — the normalize layer is a no-op for it.
test('C5: self-converting runtime (codex) — body returned unchanged at this layer', () => {
const out = normalizeAgentBodyForRuntime(inputBody, 'codex', cmdNames);
// Codex has its own agent converter that handles namespace — the
// normalize layer is a no-op for it.
assert.strictEqual(out, inputBody);
});
});
@@ -1274,12 +1260,10 @@ describe('bug #3683 — workflow/reference colon-namespace leak (Claude local in
// picker renders and therefore the deployed contract itself.
const {
convertClaudeCommandToClaudeSkill,
convertClaudeCommandToClineSkill,
} = require(path.join(ROOT, 'bin', 'install.js'));
const converters = [
['claude', convertClaudeCommandToClaudeSkill],
['cline', convertClaudeCommandToClineSkill],
];
const offenders = [];