Chips and quick patches apply params without auto-Generate; aspect sizes match Swarm Side Length 1024. HF import shows drafts after switching filter from approved-only; training status and job polling improved. Co-authored-by: Cursor <cursoragent@cursor.com>
71 lines
3.0 KiB
JavaScript
71 lines
3.0 KiB
JavaScript
import { describe, it } from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import {
|
|
userAsksLook,
|
|
userAsksNoGenerate,
|
|
userAsksGenerate,
|
|
resolveTurnIntent,
|
|
packWantsVision,
|
|
} from '../src/intent.js';
|
|
|
|
describe('intent.js', () => {
|
|
it('userAsksLook detects critique RU', () => {
|
|
assert.equal(userAsksLook('посмотри на результат'), true);
|
|
assert.equal(userAsksLook('нарисуй лису'), false);
|
|
});
|
|
|
|
it('userAsksNoGenerate vetoes remember / no-gen', () => {
|
|
assert.equal(userAsksNoGenerate('только запомни промпт'), true);
|
|
assert.equal(userAsksNoGenerate('не генерируй'), true);
|
|
assert.equal(userAsksNoGenerate('нарисуй лису'), false);
|
|
});
|
|
|
|
it('userAsksGenerate detects сгенерируй', () => {
|
|
assert.equal(userAsksGenerate('сгенерируй'), true);
|
|
assert.equal(userAsksGenerate('нарисуй лису'), true);
|
|
assert.equal(userAsksGenerate('Давай сделаем изображение красивой рыжеволосой девушки'), true);
|
|
assert.equal(userAsksGenerate('а ты знаешь какие то промпты с civitai'), false);
|
|
assert.equal(userAsksGenerate('что ты умеешь'), false);
|
|
assert.equal(userAsksGenerate('не генерируй'), false);
|
|
});
|
|
|
|
it('resolveTurnIntent uses user generate ask + veto, not model flag alone', () => {
|
|
const lookOnly = resolveTurnIntent({ look_at: ['generate'] }, 'что не так с кадром?', {});
|
|
assert.equal(lookOnly.generate, false);
|
|
assert.equal(lookOnly.look, true);
|
|
|
|
const gen = resolveTurnIntent({ prompt: 'fox', generate: true }, 'нарисуй лису', {});
|
|
assert.equal(gen.generate, true);
|
|
|
|
const userGen = resolveTurnIntent({ prompt: 'A slender redhead in leather' }, 'сгенерируй', {});
|
|
assert.equal(userGen.generate, true);
|
|
|
|
const vetoed = resolveTurnIntent({ prompt: 'fox', generate: true }, 'только запомни промпт', {});
|
|
assert.equal(vetoed.generate, false);
|
|
assert.equal(vetoed.vetoed, true);
|
|
|
|
const chatOnly = resolveTurnIntent({ prompt: 'fox' }, 'что ты умеешь про генерацию?', {});
|
|
assert.equal(chatOnly.generate, false);
|
|
|
|
const falseDump = resolveTurnIntent(
|
|
{ prompt: 'civitai example', generate: true },
|
|
'а ты знаешь какие то промпты с civitai',
|
|
{},
|
|
);
|
|
assert.equal(falseDump.generate, false);
|
|
assert.equal(falseDump.modelAsked, true);
|
|
|
|
const sdelаем = resolveTurnIntent(
|
|
{ prompt: 'A 19-year-old redhead', generate: true },
|
|
'Давай сделаем изображение красивой рыжеволосой девушки',
|
|
{},
|
|
);
|
|
assert.equal(sdelаем.generate, true);
|
|
});
|
|
|
|
it('packWantsVision for critique pack', () => {
|
|
assert.equal(packWantsVision('critique_image'), true);
|
|
assert.equal(packWantsVision('ordinary'), false);
|
|
});
|
|
});
|