fix: harden conversational mode draft revisions
This commit is contained in:
@@ -168,11 +168,11 @@
|
||||
if (!compact || !context?.name) return false;
|
||||
const politePrefix = "(?:(?:请|麻烦)(?:帮我|帮忙|给我)?|帮我|帮忙|给我)?";
|
||||
const prefixUpdateVerb = "(?:修改一下|修改|调整|更改|更新|改一下|变更)";
|
||||
const changePredicate = "(?:修改|改成|改为|更改|更新|变更|变为|换成|调整|调节|调高|调低|调到|调成|调为|调至|设置|设为|设成|设到|设至|打开|开启|启动|关闭|关掉|关上|全关|停止|停用|切换|进入|退出|移动|前移|后退|前进|升高|降低|抬高|放低|降下|升起|调直|放倒|复位|半开|开到|关到|拉开|拉上|上锁|解锁)";
|
||||
const changePredicate = "(?:修改|改成|改为|更改|更新|变更|变为|变成|换成|调整|调节|调高|调低|调到|调成|调为|调至|设置|设为|设成|设到|设至|打开|开启|启动|关闭|关掉|关上|全关|停止|停用|切换|进入|退出|移动|前移|后退|前进|升高|降低|抬高|放低|降下|升起|调直|放倒|复位|半开|开到|关到|拉开|拉上|上锁|解锁)";
|
||||
const modeName = "([^,。!?!?、;;::]{1,64}?模式)";
|
||||
const modePossessiveBoundary = "(?:中的|里的|内的|之中的|的|中|里|内)";
|
||||
const modeMemberBoundary = `(?:${modePossessiveBoundary}|[,,::])`;
|
||||
const question = /为什么|什么|怎么|如何|介绍|解释|作用|区别|原理|哪些|多少|几(?:度|档|级|个|项)?|是否|能否|可不可以|合适吗|合理吗|会怎样|列出|告诉我|[??]|吗[。.!!]?$/;
|
||||
const question = /为什么|什么|怎么|如何|介绍|解释|作用|区别|原理|哪些|多少|几(?:度|档|级|个|项)?|是否|能否|可不可以|合适吗|合理吗|会怎样|列出|告诉我|[??]|(?:吗|么|呢)[。.!!]?$/;
|
||||
const candidates = [
|
||||
{
|
||||
pattern: new RegExp(`^${politePrefix}${prefixUpdateVerb}${modeName}${modeMemberBoundary}[,,::]?(.*)$`),
|
||||
@@ -469,6 +469,18 @@
|
||||
on: "开启",
|
||||
off: "关闭",
|
||||
}[String(value)] || String(value || "已配置"));
|
||||
const shadePositionLabel = (value) => {
|
||||
if (value == null || String(value).trim() === "") return "目标开度待确认";
|
||||
const position = Number(value);
|
||||
if (!Number.isFinite(position) || position < 0 || position > 100) {
|
||||
return "目标开度待确认";
|
||||
}
|
||||
const target = `目标开度 ${position}%`;
|
||||
if (position === 0) return `完全关闭(${target})`;
|
||||
if (position === 50) return `半开(${target})`;
|
||||
if (position === 100) return `完全打开(${target})`;
|
||||
return target;
|
||||
};
|
||||
actions.forEach((action, index) => {
|
||||
if (consumed.has(index)) return;
|
||||
const capability = String(action.capability || "");
|
||||
@@ -482,7 +494,9 @@
|
||||
|
||||
if (capability === "roof.set_shade_motion" || capability === "roof.set_shade_position") {
|
||||
label = "遮阳帘";
|
||||
value = params.position_pct != null ? `${params.position_pct}%` : motionLabel(params.motion);
|
||||
value = params.position_pct != null
|
||||
? shadePositionLabel(params.position_pct)
|
||||
: motionLabel(params.motion);
|
||||
icon = "blinds";
|
||||
order = instructionOrder("遮阳帘", "天幕帘");
|
||||
} else if (domain === "window") {
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<link rel="stylesheet" href="/console-v2.css?v=delivery-state-65" />
|
||||
<link rel="stylesheet" href="/self-extension.css?v=gscu-tcp-43" />
|
||||
<link rel="stylesheet" href="/speech-input.css?v=sensevoice-7" />
|
||||
<link rel="stylesheet" href="/assistant-chat.css?v=codex-assistant-23" />
|
||||
<link rel="stylesheet" href="/assistant-chat.css?v=codex-assistant-24" />
|
||||
<link rel="stylesheet" href="/energy-monitor.css?v=energy-monitor-4" />
|
||||
<script src="/vendor/lucide/0.468.0/lucide.min.js" defer></script>
|
||||
<script src="/vendor/three/0.147.0/three.min.js" defer></script>
|
||||
@@ -26,7 +26,7 @@
|
||||
<script src="/pwa.js?v=android-pad-3" defer></script>
|
||||
<script src="/console-v2.js?v=delivery-state-62" defer></script>
|
||||
<script src="/self-extension.js?v=gscu-tcp-43" defer></script>
|
||||
<script src="/assistant-chat.js?v=codex-assistant-23" defer></script>
|
||||
<script src="/assistant-chat.js?v=codex-assistant-24" defer></script>
|
||||
<script src="/energy-monitor.js?v=energy-monitor-4" defer></script>
|
||||
</head>
|
||||
<body class="console-v2">
|
||||
|
||||
@@ -16,8 +16,8 @@ const APP_SHELL = [
|
||||
"/speech-input.css?v=sensevoice-7",
|
||||
"/speech-input.js?v=sensevoice-12",
|
||||
"/speech-audio-worklet.js?v=sensevoice-5",
|
||||
"/assistant-chat.css?v=codex-assistant-23",
|
||||
"/assistant-chat.js?v=codex-assistant-23",
|
||||
"/assistant-chat.css?v=codex-assistant-24",
|
||||
"/assistant-chat.js?v=codex-assistant-24",
|
||||
"/energy-monitor.css?v=energy-monitor-4",
|
||||
"/energy-monitor.js?v=energy-monitor-4",
|
||||
"/assets/pets/self-extension-cat.png?v=3",
|
||||
|
||||
Reference in New Issue
Block a user