feat: add reasoning effort commands

This commit is contained in:
xmanrui 2026-08-25 00:41:44 +08:00
parent 36cbbe48e7
commit 9e39333ff6
24 changed files with 1346 additions and 240 deletions

View file

@ -344,6 +344,13 @@ test('Feishu lists models and presets without prompting and advertises fast comm
assert.equal(creates, 0);
assert.equal(fixture.sessions.size, 0);
await bridge.accept(event('reasoning-feishu', '/reasoninglist'));
await bridge.waitForIdle();
assert.match(sent.at(-1), /还没有会话/);
assert.equal(asks, 0);
assert.equal(creates, 0);
assert.equal(fixture.sessions.size, 0);
const presetReplyStart = sent.length;
await bridge.accept(event('presets-feishu', '/presetlist'));
await bridge.waitForIdle();
@ -380,10 +387,13 @@ test('Feishu lists models and presets without prompting and advertises fast comm
await bridge.accept(event('help-feishu', '/help'));
await bridge.waitForIdle();
const help = sent.at(-1);
for (const command of ['/models', '/model', '/presetlist', '/preset', '/preset --default', '/stop', '/steer']) {
for (const command of [
'/models', '/model', '/reasoninglist', '/reasonings', '/reasoning',
'/presetlist', '/preset', '/preset --default', '/stop', '/steer',
]) {
assert.equal(help.includes(command), true, command);
}
assert.match(help, /\/model 2/);
assert.match(help, /\/model .*\[推理等级ID\]/);
assert.match(help, /\/preset id:<ID>/);
});

View file

@ -64,12 +64,21 @@ test('menu exposes the increased command set and keeps repair number-only', () =
assert.equal(actions.includes('repair'), false);
});
test('menu help advertises Agent Preset commands', () => {
test('menu and card help advertise Agent Preset and reasoning commands', () => {
const help = menuHelpText();
assert.match(help, /\/presetlist/);
assert.match(help, /\/preset \[序号或完整ID\]/);
assert.match(help, /\/preset id:<ID>/);
assert.match(help, /\/preset --default/);
assert.match(help, /\/reasoninglist 或 \/reasonings/);
assert.match(help, /\/reasoning \[序号、等级ID或 --default\]/);
assert.match(help, /\/model \[序号或完整模型ID\] \[推理等级ID\]/);
const card = helpCard();
assert.match(card, /\/reasoninglist/);
assert.match(card, /\/reasonings/);
assert.match(card, /\/reasoning \[序号、等级ID或 --default\]/);
assert.match(card, /\/model \[序号或完整模型ID\] \[推理等级ID\]/);
});
test('card-action probe carries only its action and opaque nonce', () => {