Initial commit with translated description

This commit is contained in:
2026-03-29 08:33:25 +08:00
commit c15a9e9cdc
98 changed files with 23152 additions and 0 deletions

28
test/candidates.test.js Normal file
View File

@@ -0,0 +1,28 @@
const { describe, it } = require('node:test');
const assert = require('node:assert/strict');
const { extractCapabilityCandidates, expandSignals } = require('../src/gep/candidates');
describe('expandSignals', () => {
it('derives structured learning tags from weak signals', () => {
const tags = expandSignals(['perf_bottleneck', 'stable_success_plateau'], '');
assert.ok(tags.includes('problem:performance'));
assert.ok(tags.includes('problem:stagnation'));
assert.ok(tags.includes('action:optimize'));
});
});
describe('extractCapabilityCandidates', () => {
it('creates a failure-driven candidate from repeated failed capsules', () => {
const result = extractCapabilityCandidates({
recentSessionTranscript: '',
signals: ['perf_bottleneck'],
recentFailedCapsules: [
{ trigger: ['perf_bottleneck'], failure_reason: 'validation failed because latency stayed high', outcome: { status: 'failed' } },
{ trigger: ['perf_bottleneck'], failure_reason: 'constraint violation after slow path regression', outcome: { status: 'failed' } },
],
});
const failureCandidate = result.find(function (c) { return c.source === 'failed_capsules'; });
assert.ok(failureCandidate);
assert.ok(failureCandidate.tags.includes('problem:performance'));
});
});