打通 Boss 直聘落档挂载与真值→投影映射,并修正带 tools 时的推理强度。
落档自动把产物挂进 context_order;创作期用 declare_variable/declare_map 钉目录与分档;真值变更持续重投影。顺带强制 tools 请求 reasoning_effort=none,并支持消息 restart。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+10
-8
@@ -47,7 +47,7 @@ const MSG_LABEL = {
|
||||
orchestrator_thinking: "编排器 · 思考",
|
||||
orchestrator_prompt: "编排器",
|
||||
orchestrator_assessment: "编排器 · 内容评价",
|
||||
dictate_reply: "转述整理",
|
||||
dictate_reply: "Boss直聘",
|
||||
worker_running: "执行单元",
|
||||
worker_output: "执行单元",
|
||||
worker_questions: "提问",
|
||||
@@ -409,9 +409,11 @@ function wireMsgActionMenu(handlers) {
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (action === "delete") {
|
||||
if (!confirm("从这里重开?这条消息及之后的对话和创作状态将被移除。")) return;
|
||||
msgMenuState.handlers?.onDeleteMessage?.(messageId);
|
||||
if (action === "restart" || action === "delete") {
|
||||
if (!confirm("从这里重开?将丢掉这条及之后的内容,并按本轮输入重新生成。")) return;
|
||||
const restart = msgMenuState.handlers?.onRestartFromMessage;
|
||||
if (typeof restart === "function") restart(messageId);
|
||||
else msgMenuState.handlers?.onDeleteMessage?.(messageId);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -4926,7 +4928,7 @@ function renderSpeakWorkspace(view) {
|
||||
wr.message ||
|
||||
"描述本轮行动、对话或想说的话;由游玩管线推进。";
|
||||
} else if (view.creationMode === "dictate") {
|
||||
title = "转述整理";
|
||||
title = "Boss 直聘";
|
||||
hint =
|
||||
view.hints?.[0] ||
|
||||
wr.message ||
|
||||
@@ -4977,7 +4979,7 @@ function renderSpeakWorkspace(view) {
|
||||
? workspaceViewSwitchHtml("flow")
|
||||
: `<span class="workspace-surface-kicker">${
|
||||
view.creationMode === "dictate"
|
||||
? "转述"
|
||||
? "Boss直聘"
|
||||
: canOfferSaveProduct(view)
|
||||
? "落档"
|
||||
: "说话"
|
||||
@@ -5211,8 +5213,8 @@ export function renderMessageFeed(view, loading, handlers = {}) {
|
||||
? esc(view.selectedRecipe.name)
|
||||
: "";
|
||||
stage.innerHTML = recipeName
|
||||
? `<header class="dictate-stage-bar"><span class="workspace-surface-kicker">转述</span><span class="dictate-stage-recipe">配方 · ${recipeName}</span></header>`
|
||||
: `<header class="dictate-stage-bar"><span class="workspace-surface-kicker">转述</span></header>`;
|
||||
? `<header class="dictate-stage-bar"><span class="workspace-surface-kicker">Boss直聘</span><span class="dictate-stage-recipe">配方 · ${recipeName}</span></header>`
|
||||
: `<header class="dictate-stage-bar"><span class="workspace-surface-kicker">Boss直聘</span></header>`;
|
||||
if (panelFeed) ensureQuestionsHostIn(panelFeed);
|
||||
appendMessagesToFeed(feed, visible, view, handlers, activeQuestions, {
|
||||
emptyText:
|
||||
|
||||
+3
-2
@@ -2092,6 +2092,7 @@ function renderSession(view, loading = false) {
|
||||
onEditMessage: (messageId, text) => messageAction("edit", messageId, { text }),
|
||||
onRefreshMessage: (messageId) => messageAction("refresh", messageId),
|
||||
onDeleteMessage: (messageId) => messageAction("delete", messageId),
|
||||
onRestartFromMessage: (messageId) => messageAction("restart", messageId),
|
||||
onRollbackToInput: (messageId, draft) => {
|
||||
pendingComposerDraft = String(draft ?? "");
|
||||
pendingComposerDraftSeq = 0;
|
||||
@@ -2493,8 +2494,8 @@ async function populateDirectorSelect() {
|
||||
if (modeDesc) {
|
||||
modeDesc.hidden = false;
|
||||
modeDesc.textContent = dictate
|
||||
? "转述整理:直接对话写入产物;下方为转述专用配方。"
|
||||
: "节点流程:按配方预置起点走工作流计划;下方为节点流程配方。";
|
||||
? "Boss 直聘:对话写入产物;变量/映射用工具钉死;下方为直聘专用配方。"
|
||||
: "Worker 式:按工序图逐步验收;下方为编排专用配方。";
|
||||
}
|
||||
syncDesc();
|
||||
};
|
||||
|
||||
+3
-3
@@ -197,8 +197,8 @@
|
||||
进料方式
|
||||
<select id="select-creation-mode" required>
|
||||
<option value="" selected disabled>请选择…</option>
|
||||
<option value="recipe">节点流程</option>
|
||||
<option value="dictate">转述整理(对话直填)</option>
|
||||
<option value="recipe">Worker 式(工序图)</option>
|
||||
<option value="dictate">Boss 直聘(对话直填)</option>
|
||||
</select>
|
||||
</label>
|
||||
<p class="dialog-desc" id="creation-mode-desc" hidden></p>
|
||||
@@ -237,7 +237,7 @@
|
||||
<button type="button" class="context-menu-item" id="msg-menu-edit" data-msg-menu-action="edit">编辑</button>
|
||||
<button type="button" class="context-menu-item" id="msg-menu-copy" data-msg-menu-action="copy">复制</button>
|
||||
<button type="button" class="context-menu-item context-menu-separator-before" id="msg-menu-rollback" data-msg-menu-action="rollback" hidden>回退到这里</button>
|
||||
<button type="button" class="context-menu-item context-menu-danger" id="msg-menu-delete" data-msg-menu-action="delete">从这里重开</button>
|
||||
<button type="button" class="context-menu-item context-menu-danger" id="msg-menu-delete" data-msg-menu-action="restart">从这里重开</button>
|
||||
</menu>
|
||||
|
||||
<menu id="flow-node-menu" class="context-menu" hidden>
|
||||
|
||||
+2
-1
@@ -152,12 +152,13 @@
|
||||
思考强度
|
||||
<select name="reasoningEffort">
|
||||
<option value="">默认(不发送)</option>
|
||||
<option value="none">none · 关闭思考(带 tools 时自动用)</option>
|
||||
<option value="low">low · 轻量</option>
|
||||
<option value="medium">medium</option>
|
||||
<option value="high">high · 增强</option>
|
||||
<option value="max">max · 深度</option>
|
||||
</select>
|
||||
<span class="field-hint">写入 reasoning_effort;「探测」始终用 low,与此项无关。GLM 建议 low / high / max。</span>
|
||||
<span class="field-hint">写入 reasoning_effort;「探测」始终用 low,与此项无关。带 function tools 的请求会强制 none(兼容 gpt-5.6-luna 等)。GLM 建议 low / high / max。</span>
|
||||
</label>
|
||||
<div class="dialog-actions">
|
||||
<button type="button" id="profile-cancel" class="btn-secondary">取消</button>
|
||||
|
||||
Reference in New Issue
Block a user