14a00774d9
- 新增 web 能力并挂载 platform/web(web_search/fetch_url) - 实时查询强制 web skill,router fallback 与 await session Finish - Session Broker 覆盖率/指标、stream replay 与相关单测/E2E 脚本 Co-authored-by: Cursor <cursoragent@cursor.com>
40 lines
1.4 KiB
JavaScript
40 lines
1.4 KiB
JavaScript
import assert from 'node:assert/strict';
|
|
import fs from 'node:fs';
|
|
import os from 'node:os';
|
|
import path from 'node:path';
|
|
import test from 'node:test';
|
|
import {
|
|
checkSessionBrokerCoverage,
|
|
SESSION_BROKER_PATCH2_FILES,
|
|
} from './session-broker-coverage.mjs';
|
|
|
|
test('checkSessionBrokerCoverage passes on repository root', () => {
|
|
const rootDir = path.resolve(import.meta.dirname);
|
|
const violations = checkSessionBrokerCoverage(rootDir);
|
|
assert.equal(
|
|
violations.length,
|
|
0,
|
|
violations.map((item) => `${item.file}:${item.line} ${item.rule}`).join('\n'),
|
|
);
|
|
});
|
|
|
|
test('checkSessionBrokerCoverage flags direct userAuth.registerAgentSession', () => {
|
|
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'broker-coverage-'));
|
|
try {
|
|
fs.writeFileSync(
|
|
path.join(tmpDir, 'bad-module.mjs'),
|
|
'export async function run(userAuth) { await userAuth.registerAgentSession("u", "s", 0); }\n',
|
|
);
|
|
const violations = checkSessionBrokerCoverage(tmpDir, { scanRepo: true });
|
|
assert.ok(violations.some((item) => item.rule === 'register-agent-session'));
|
|
} finally {
|
|
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
}
|
|
});
|
|
|
|
test('SESSION_BROKER_PATCH2_FILES includes gateway and proxy', () => {
|
|
assert.ok(SESSION_BROKER_PATCH2_FILES.includes('tkmind-proxy.mjs'));
|
|
assert.ok(SESSION_BROKER_PATCH2_FILES.includes('agent-run-gateway.mjs'));
|
|
assert.ok(SESSION_BROKER_PATCH2_FILES.includes('server.mjs'));
|
|
});
|