feat: add fail-closed Aider development skill

This commit is contained in:
john
2026-07-24 19:48:04 +08:00
parent 1c82b34ad9
commit be9c25f1d0
15 changed files with 320 additions and 7 deletions
+32
View File
@@ -5,11 +5,43 @@ import os from 'node:os';
import path from 'node:path';
import test from 'node:test';
import {
assertRequiredCodeExecutorAvailable,
assertRequiredImageGenerationCompleted,
createAgentRunGateway,
normalizeAgentRunWorkerIdentity,
resolveRequiredCodeExecutor,
} from './agent-run-gateway.mjs';
test('required code executor is read from run metadata', () => {
assert.equal(resolveRequiredCodeExecutor({
metadata: { memindRun: { executor: 'AIDER' } },
}), 'aider');
assert.equal(resolveRequiredCodeExecutor({
metadata: { memindRun: { executor: 'unknown' } },
}), null);
});
test('required Aider executor fails closed when Tool Gateway is unavailable', () => {
assert.doesNotThrow(() => assertRequiredCodeExecutorAvailable('aider', {
enabled: true,
executors: ['aider', 'openhands'],
}));
assert.throws(
() => assertRequiredCodeExecutorAvailable('aider', {
enabled: false,
executors: ['aider', 'openhands'],
}),
(error) => error?.code === 'REQUIRED_EXECUTOR_UNAVAILABLE' && error?.retryable === false,
);
assert.throws(
() => assertRequiredCodeExecutorAvailable('aider', {
enabled: true,
executors: ['openhands'],
}),
(error) => error?.code === 'REQUIRED_EXECUTOR_UNAVAILABLE',
);
});
test('required image generation cannot succeed without a verified raster image_make result', () => {
const row = {
user_message_json: JSON.stringify({