feat: 子任务默认模型/强度(child_model/child_effort)
主任务可显式声明派生默认,或在 prompt 里写“子任务用 gpt-6-luna max” 由服务端解析填入;marker task-create 与协调员分工未显式写模型/强度时 按 块/分工 > 派生默认 > 父任务模型/强度 继承,fork 复制派生默认, continue 可改派生默认;console 新建/继续表单与任务详情同步展示。
This commit is contained in:
1 parent
f99e667222
commit
14757f15c4
7 files changed
+588
-25
No files matched your search
@@ -236,6 +236,21 @@
|
||||
<option value="full">完全访问</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="bar">
|
||||
<select id="childModelSelect">
|
||||
<option value="">子任务模型:跟随本任务模型</option>
|
||||
</select>
|
||||
<input id="childModelCustom" type="text" placeholder="子任务模型手动输入(中转列表里没有时填,如 gpt-6-luna;留空=跟随本任务模型)">
|
||||
<select id="childEffortSelect">
|
||||
<option value="">子任务强度:跟随本任务强度</option>
|
||||
<option value="low">low</option>
|
||||
<option value="medium">medium</option>
|
||||
<option value="high">high</option>
|
||||
<option value="xhigh">xhigh</option>
|
||||
<option value="max">max</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="muted">子任务模型/强度是派生默认:本任务用 marker task-create 或协调员分工派生的子任务,未显式写模型/强度时用它;块/分工里显式写了则覆盖它。也可以不在这里填、直接在 prompt 里写“子任务用 gpt-6-luna max”,建任务时服务端会解析成同一对字段(任务详情里可核对)。</div>
|
||||
<div id="goalHint" style="display:none" class="muted">goal 模式:输入框内容即目标,不需要专用 prompt 与验收命令;不限轮次,模型确认达成后在回复末尾输出“目标已达成”即结束,未达成会一直运行,可用取消停止。</div>
|
||||
<div class="bar">
|
||||
<span class="muted">附件(放进任务工作区,图片与普通文件不区分):</span>
|
||||
@@ -315,6 +330,15 @@
|
||||
<option value="auto">帮我批准</option>
|
||||
<option value="full">完全访问</option>
|
||||
</select>
|
||||
<input id="continueChildModel" type="text" placeholder="子任务模型:沿用任务原值(填了则改派生默认)">
|
||||
<select id="continueChildEffort">
|
||||
<option value="">子任务强度:沿用任务原值</option>
|
||||
<option value="low">low</option>
|
||||
<option value="medium">medium</option>
|
||||
<option value="high">high</option>
|
||||
<option value="xhigh">xhigh</option>
|
||||
<option value="max">max</option>
|
||||
</select>
|
||||
<label><input type="checkbox" id="continuePlan"> 计划模式(只读)</label>
|
||||
<label><input type="checkbox" id="continueGoal"> goal 模式(不限轮次,模型宣告完成)</label>
|
||||
</div>
|
||||
@@ -481,6 +505,8 @@ async function loadRelayModels() {
|
||||
sel.innerHTML = "<option value=''>模型:默认(跟随配置)</option>" + opts;
|
||||
var csel = $("#continueModel");
|
||||
if (csel) csel.innerHTML = "<option value=''>模型:沿用任务原值</option>" + opts;
|
||||
var chsel = $("#childModelSelect");
|
||||
if (chsel) chsel.innerHTML = "<option value=''>子任务模型:跟随本任务模型</option>" + opts;
|
||||
$("#modelCustom").style.display = "none";
|
||||
} catch (e) {
|
||||
$("#modelCustom").style.display = "inline";
|
||||
@@ -995,6 +1021,7 @@ async function showDetail(taskId) {
|
||||
esc(STATUS_EXPLAIN[t.status] || "未知状态") + ") | " +
|
||||
"executor " + esc(t.executor || "") + " | 主机 " + esc(t.worktree_host || "") +
|
||||
" | 模型 " + esc(t.model || "默认") + " | 强度 " + esc(t.effort || "默认") +
|
||||
((t.child_model || t.child_effort) ? " | 子任务默认 " + esc(t.child_model || "跟随本任务") + " / " + esc(t.child_effort || "跟随本任务") : "") +
|
||||
" | 权限 " + esc(t.approval || "默认") +
|
||||
(t.plan ? " | <b>计划模式(只读)</b>" : "") +
|
||||
(t.forked_from ? " | 分支自 " + esc(shortId(t.forked_from)) : "") +
|
||||
@@ -1432,6 +1459,10 @@ $("#createTask").onclick = async function () {
|
||||
if (model) body.model = model;
|
||||
var eff = $("#effortSelect").value;
|
||||
if (eff) body.effort = eff;
|
||||
var cmodel = $("#childModelCustom").value.trim() || $("#childModelSelect").value;
|
||||
if (cmodel) body.child_model = cmodel;
|
||||
var ceff = $("#childEffortSelect").value;
|
||||
if (ceff) body.child_effort = ceff;
|
||||
var ap = $("#approvalSelect").value;
|
||||
if (ap) {
|
||||
if (ap === "full" && !confirm("完全访问 = 自动批准 + 不受工作区限制,agent 可读写工作区外路径。确认提交吗?")) return;
|
||||
@@ -1507,6 +1538,10 @@ $("#btnContinueConfirm").onclick = async function () {
|
||||
if (model) body.model = model;
|
||||
var eff = $("#continueEffort").value;
|
||||
if (eff) body.effort = eff;
|
||||
var cmodel = $("#continueChildModel").value.trim();
|
||||
if (cmodel) body.child_model = cmodel;
|
||||
var ceff = $("#continueChildEffort").value;
|
||||
if (ceff) body.child_effort = ceff;
|
||||
var ap = $("#continueApproval").value;
|
||||
if (ap) {
|
||||
if (ap === "full" && !confirm("完全访问 = 自动批准 + 不受工作区限制,agent 可读写工作区外路径。确认继续吗?")) return;
|
||||
|
||||
Reference in new issue
Block a user