Route H5 pages requiring generated images through MindSpace
Memind CI / Test, build, and release guards (push) Failing after 2s
Memind CI / Test, build, and release guards (push) Failing after 2s
This commit is contained in:
@@ -208,6 +208,13 @@ function requestedImageGenerationMode(userMessage) {
|
||||
);
|
||||
}
|
||||
|
||||
export function resolveMessageImageGenerationDecision(userMessage, text = messageDisplayText(userMessage)) {
|
||||
return resolveImageGenerationDecision({
|
||||
text,
|
||||
requestedMode: requestedImageGenerationMode(userMessage),
|
||||
});
|
||||
}
|
||||
|
||||
function buildImageGenerationInstruction(decision) {
|
||||
if (decision?.mode === IMAGE_GENERATION_MODE.REQUIRED) {
|
||||
return [
|
||||
@@ -1874,10 +1881,7 @@ export function createChatIntentRouter(options = {}) {
|
||||
);
|
||||
return finalizeRouterClassification({
|
||||
...coerced,
|
||||
imageGeneration: resolveImageGenerationDecision({
|
||||
text,
|
||||
requestedMode: requestedImageGenerationMode(userMessage),
|
||||
}),
|
||||
imageGeneration: resolveMessageImageGenerationDecision(userMessage, text),
|
||||
}, decisionContext);
|
||||
};
|
||||
const llmRouterEligible = isLlmRouterEligibleForUser(userId);
|
||||
|
||||
@@ -16,6 +16,7 @@ import {
|
||||
resolvePreferredCodeExecutor,
|
||||
} from './cursor-agent-launch.mjs';
|
||||
import { isCursorTaskKindEnabled } from './cursor-channel-features.mjs';
|
||||
import { IMAGE_GENERATION_MODE, resolveMessageImageGenerationDecision } from './chat-intent-router.mjs';
|
||||
|
||||
const PUBLISH_SKILL_NAME = 'static-page-publish';
|
||||
|
||||
@@ -81,6 +82,13 @@ export function isPageCursorDefaultCandidate(userMessage, {
|
||||
|
||||
const taskKind = resolveCursorTaskKind(taskText, skill);
|
||||
if (taskKind === null) return false;
|
||||
if (
|
||||
taskKind === CURSOR_TASK_KIND.PAGE_GENERATION
|
||||
&& resolveMessageImageGenerationDecision(userMessage, taskText).mode === IMAGE_GENERATION_MODE.REQUIRED
|
||||
) {
|
||||
// Required images need the MindSpace sandbox tool and its per-run artifact check.
|
||||
return false;
|
||||
}
|
||||
if (policy?.enabled) {
|
||||
return isCursorTaskKindEnabled(policy, taskKind);
|
||||
}
|
||||
|
||||
@@ -22,6 +22,27 @@ test('page cursor default matches poem page requests', () => {
|
||||
assert.equal(resolveCursorTaskKind('帮我写首诗,并做成页面'), 'page_generation');
|
||||
});
|
||||
|
||||
test('page requests that require Qwen-generated images retain the MindSpace agent path', () => {
|
||||
const options = { env: enabledEnv, channelEligible: true };
|
||||
const makeMessage = (text, imageGenerationMode = 'auto') => ({
|
||||
content: [{ type: 'text', text }],
|
||||
metadata: { displayText: text, memindRun: { imageGenerationMode } },
|
||||
});
|
||||
|
||||
for (const message of [
|
||||
makeMessage('帮我制作一个咖啡品牌页面,用千问生图做封面'),
|
||||
makeMessage('帮我制作一个咖啡品牌页面', 'required'),
|
||||
]) {
|
||||
const enforced = enforcePageGenerationCursorRuntime(message, options);
|
||||
assert.equal(enforced.requiredExecutor, null);
|
||||
assert.equal(enforced.rawToolMode, 'chat');
|
||||
assert.equal(enforced.userMessage, message);
|
||||
}
|
||||
assert.equal(isPageCursorDefaultCandidate(
|
||||
makeMessage('帮我制作一个咖啡品牌页面,不要生图'), options,
|
||||
), true);
|
||||
});
|
||||
|
||||
test('page cursor default matches survey page-data requests', () => {
|
||||
const userMessage = {
|
||||
role: 'user',
|
||||
|
||||
Reference in New Issue
Block a user