wezard 2.7.7 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +1 -1
- package/dist/daemon/approval.js +7 -6
- package/dist/daemon/approval.js.map +1 -1
- package/dist/daemon/inbound.js +1 -1
- package/dist/daemon/inbound.js.map +1 -1
- package/dist/daemon/index.js +92 -20
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/message-events.js +75 -9
- package/dist/daemon/message-events.js.map +1 -1
- package/dist/daemon/mirror-bridge.js +394 -26
- package/dist/daemon/mirror-bridge.js.map +1 -1
- package/dist/daemon/peers.js +251 -0
- package/dist/daemon/peers.js.map +1 -1
- package/dist/daemon/route.js +274 -49
- package/dist/daemon/route.js.map +1 -1
- package/dist/daemon/spawn-tmux.js +6 -7
- package/dist/daemon/spawn-tmux.js.map +1 -1
- package/dist/daemon/wizard.js +11 -11
- package/dist/daemon/wizard.js.map +1 -1
- package/dist/mcp/server.js +8 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/shared/codex-hooks.js +60 -0
- package/dist/shared/codex-hooks.js.map +1 -1
- package/dist/shared/message-footer.js +16 -1
- package/dist/shared/message-footer.js.map +1 -1
- package/dist/shared/modal-pane.js +18 -2
- package/dist/shared/modal-pane.js.map +1 -1
- package/dist/shared/tool-hints.js +2 -2
- package/dist/shared/tool-hints.js.map +1 -1
- package/package.json +1 -1
package/dist/daemon/route.js
CHANGED
|
@@ -13,8 +13,10 @@
|
|
|
13
13
|
// 打上「不划算」—— 默认偏向省钱, 但仍只是标记, 拍板的还是管家。
|
|
14
14
|
//
|
|
15
15
|
// 全是纯函数: 候选的原料 (文件集 / 最近的话 / ctx) 由调用方从 transcript 读好送进来。
|
|
16
|
-
import { resolve, basename } from "node:path";
|
|
16
|
+
import { resolve, basename, dirname, isAbsolute } from "node:path";
|
|
17
17
|
import { addr, agoOf, ctxOf } from "./wizard.js";
|
|
18
|
+
import { fileURLToPath } from "node:url";
|
|
19
|
+
import { homedir } from "node:os";
|
|
18
20
|
// 这类词两边都常见, 撞上了也说明不了是同一件事。
|
|
19
21
|
const STOP = new Set([
|
|
20
22
|
"the", "and", "for", "with", "this", "that", "from", "into", "src", "lib", "dist", "index",
|
|
@@ -35,9 +37,6 @@ export const termsOf = (text) => {
|
|
|
35
37
|
const GUIDANCE = new Set(["agents", "claude", "readme", "contributing", "code_of_conduct", "changelog", "license", "copilot-instructions", "gemini"]);
|
|
36
38
|
const withoutGuidance = (text) => text.replace(/[A-Za-z0-9_][A-Za-z0-9_.\-/]{2,}/g, (w) => GUIDANCE.has(stemOf(w).toLowerCase()) ? " " : w);
|
|
37
39
|
const fileRefs = (text) => text.match(/(?:\/|\.\/|\.\.\/)?[A-Za-z0-9_][A-Za-z0-9_.\/-]*\.[A-Za-z][A-Za-z0-9]*(?![A-Za-z0-9_.\/-])/g) ?? [];
|
|
38
|
-
const CONTINUE_RE = /继续|接着|续篇|上一轮|上次|刚才|此前|follow[ -]?up|continue|previous (?:task|change)|your (?:change|patch)/i;
|
|
39
|
-
// 独立验收与否定续篇优先; 历史背景里提到「刚才」不能把新活变成续篇。
|
|
40
|
-
const SEPARATE_RE = /(?:不要|别|无需|不再|不是|并非|不用|不能|不应).{0,8}(?:继续|接着|续篇|上一轮|上次)|独立(?:的)?(?:新)?(?:任务|问题|事项|核查|核实|检查)|新(?:的)?(?:任务|问题)|(?:do not|don't|never|not)\s+(?:continue|resume|follow[ -]?up)|(?:independent|unrelated|separate|new)\s+(?:task|question|check)/i;
|
|
41
40
|
const UNSETTLED = new Set(["working", "blocked", "needs-input", "deferred", "errored", "queued"]);
|
|
42
41
|
/** 没开工单的任务也占用: 接入的欠着, 派出的在等; spinner 闲不代表已交差。 */
|
|
43
42
|
export const routeReceiptDutiesOf = (inflight, target) => inflight
|
|
@@ -65,45 +64,242 @@ const near = (a, b) => !!a && !!b && (a === b || a.startsWith(`${b}/`) || b.star
|
|
|
65
64
|
const stemsOf = (text) => new Set((text.match(/[A-Za-z0-9_][A-Za-z0-9_.\-/]{2,}/g) ?? []).map((w) => stemOf(w).toLowerCase()).filter((w) => w.length >= 3 && !STOP.has(w)));
|
|
66
65
|
/** 同名文件可能是不同任务的材料, 只去除重复路径。 */
|
|
67
66
|
const uniqueFiles = (files) => [...new Set(files)];
|
|
68
|
-
/** 公共文件:
|
|
67
|
+
/** 公共文件: 按规范化完整路径、每候选一次统计 (web/chat.js、shared/role-view.ts 这类) —— 谁都读过, 不构成选人理由。
|
|
69
68
|
* 统计类至少 3 个候选读过且占到池子的三成; 项目指引在任何池子里固定降权。 */
|
|
69
|
+
const fullPath = (cwd, path) => {
|
|
70
|
+
try {
|
|
71
|
+
const p = path.startsWith("file://") ? fileURLToPath(path) : path.startsWith("~/") ? resolve(homedir(), path.slice(2)) : path;
|
|
72
|
+
return cwd || isAbsolute(p) ? resolve(cwd, p) : "";
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return "";
|
|
76
|
+
}
|
|
77
|
+
};
|
|
70
78
|
export const commonStems = (rows) => {
|
|
71
79
|
const need = Math.max(3, Math.ceil(rows.length * 0.3));
|
|
72
|
-
const tally = rows.flatMap((r) => [...new Set(r.
|
|
73
|
-
.reduce((m,
|
|
74
|
-
return new Set([...
|
|
80
|
+
const tally = rows.flatMap((r) => [...new Set((r.materials ?? []).filter((m) => m.confirmed).map((m) => fullPath(r.cwd, m.path)))])
|
|
81
|
+
.reduce((m, p) => m.set(p, (m.get(p) ?? 0) + 1), new Map());
|
|
82
|
+
return new Set([...tally].filter(([, n]) => n >= need).map(([p]) => p));
|
|
83
|
+
};
|
|
84
|
+
// Strong targets use a small affirmative instruction grammar, not arbitrary prose.
|
|
85
|
+
// Negated/conditional/reference clauses and unsupported sentence shapes stay unknown.
|
|
86
|
+
const TARGET_ACTION = /^(?:(?:请|只读|独立|本次|这次|现在|直接|继续|先|再|负责|帮我|协助|需要|实际|只|已|已经)\s*)*(?:检查|核查|核实|查看|查明|查找|读取|读|扫描|审查|审阅|评审|修复|实现|完善|优化|修改|调整|维护|验证|确认|迁移|移动|移除|卸载|删除|定位|排查|搜索|查验|找出|找到|更新|完成|交付|check\b|verify\b|inspect\b|read\b|scan\b|audit\b|review\b|fix\b|implement\b|update\b|move\b|remove\b|uninstall\b|delete\b|locate\b|find\b|search\b)/i;
|
|
87
|
+
const targetText = (text) => text.split(/[。;;\n,,]/).map((clause) => clause.trim()
|
|
88
|
+
.replace(/^(?:(?:用户(?:原话|要求|问)|任务|目标|需求|RESULT)\s*[::]\s*)+/i, "")
|
|
89
|
+
.replace(/^[『「“"'`]+/, "")).filter((clause) => !/[不别勿未无非()()\[\]【】{}]|依据|基于|根据|参照|借助|对照|用作|作为|例如|比如|否定|否认|禁止|停止|取消|省略|免于|避免|排除|忽略|之外|以外|背景|历史|刚才|此前|上次|上一轮|已知|已确证|已有核查|归档副本|当前上下文|来源路径|另有|参考|示例|假设|假如|如果|\b(?:no|not|never|without|except|exclude|skip|avoid|ignore|omit|stop|cancel|background|previous|unless|if)\b/i.test(clause)
|
|
90
|
+
&& !/(?:使用|用 |应用|遵循|请读取|先.*读|use |using |apply ).*(?:skill|技能|SKILL\.md)/i.test(clause)
|
|
91
|
+
&& TARGET_ACTION.test(clause)).filter((clause) => {
|
|
92
|
+
const paths = refsOf(clause, "/");
|
|
93
|
+
if (paths.size !== 1)
|
|
94
|
+
return paths.size === 0;
|
|
95
|
+
const object = clause.replace(TARGET_ACTION, "").trim().replace(/^(?:文件|目录|技能|模块|代码文件|路径|对)\s*/, "");
|
|
96
|
+
const first = /^(?:[`"']([^`"']+)[`"']|(\S+))/.exec(object);
|
|
97
|
+
// A path must be the instruction's direct object, not an incidental reference later
|
|
98
|
+
// in an otherwise positive sentence. Multiple/unknown path roles remain ambiguous.
|
|
99
|
+
return !!first && paths.has(fullPath("/", first[1] ?? first[2]));
|
|
100
|
+
}).join("\n");
|
|
101
|
+
// Match a whole token once, including ~/ and its trailing slash. Searching separately
|
|
102
|
+
// for absolute/relative fragments invented extra paths inside the same operand.
|
|
103
|
+
const pathTokensOf = (text, cwd) => {
|
|
104
|
+
const local = text.replace(/\b(?!file:)[a-z][a-z0-9+.-]*:\/\/[^\s`"',。;;<>]+/gi, (url) => " ".repeat(url.length));
|
|
105
|
+
return [...local.matchAll(/[`"']([^`"'\n]+)[`"']|(?<![A-Za-z0-9_./~%+:一-鿿-])((?:file:\/\/)?[A-Za-z0-9_./~%+-]+)/g)].flatMap((m) => {
|
|
106
|
+
const raw = m[1] ?? m[2];
|
|
107
|
+
if (!raw.includes("/") && !/\.[a-z][a-z0-9]*$/i.test(raw))
|
|
108
|
+
return [];
|
|
109
|
+
if (!m[1] && raw.endsWith("/") && /[^\s,。;;、::))\]]/.test(local[m.index + m[0].length] ?? ""))
|
|
110
|
+
return [];
|
|
111
|
+
const path = fullPath(cwd, raw);
|
|
112
|
+
return path ? [{ path, start: m.index, end: m.index + m[0].length }] : [];
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
const refsOf = (text, cwd) => new Set(pathTokensOf(text, cwd).map((p) => p.path));
|
|
116
|
+
const roleClauses = (text) => text.split(/[。;;\n,,]/).map((s) => s.trim().replace(/^RESULT\s*[::]\s*/i, "")).filter(Boolean);
|
|
117
|
+
const NEGATIVE_ROLE = /[不别勿未无非]|否认|否定|禁止|停止|取消|省略|免于|避免|排除|忽略|之外|以外|假设|假如|如果|\b(?:no|not|never|without|except|exclude|skip|avoid|ignore|omit|stop|cancel|unless|if)\b/i;
|
|
118
|
+
/** Only a label followed by exactly one path can assert a snapshot/authority location. */
|
|
119
|
+
const labeledLocations = (text, cwd, label) => new Set(roleClauses(text).flatMap((clause) => {
|
|
120
|
+
if (NEGATIVE_ROLE.test(clause) || TARGET_ACTION.test(clause))
|
|
121
|
+
return [];
|
|
122
|
+
const value = label.exec(clause)?.[1]?.trim();
|
|
123
|
+
if (!value)
|
|
124
|
+
return [];
|
|
125
|
+
const paths = pathTokensOf(value, cwd);
|
|
126
|
+
return paths.length === 1 && paths[0].start === 0 && !value.slice(paths[0].end).trim() ? [paths[0].path] : [];
|
|
127
|
+
}));
|
|
128
|
+
/** A delivered location list states where the objects are, without claiming any file read. */
|
|
129
|
+
const deliveredLocations = (text, cwd) => new Set(roleClauses(text).flatMap((clause) => {
|
|
130
|
+
if (NEGATIVE_ROLE.test(clause) || /背景|示例|参考|假设/.test(clause))
|
|
131
|
+
return [];
|
|
132
|
+
const value = /^(?:[一-鿿A-Za-z -]{0,24})(?:目录|路径|位置)(?:是|为|[::])\s*(.+)$/.exec(clause)?.[1];
|
|
133
|
+
if (!value)
|
|
134
|
+
return [];
|
|
135
|
+
const paths = pathTokensOf(value, cwd);
|
|
136
|
+
const remainder = paths.reduceRight((v, p) => v.slice(0, p.start) + v.slice(p.end), value);
|
|
137
|
+
return paths.length && /^(?:\s|和|及|以及|and|、)*$/i.test(remainder) ? paths.map((p) => p.path) : [];
|
|
138
|
+
}));
|
|
139
|
+
/** Unknown operation suffixes cannot confirm a source, even without repeating its path. */
|
|
140
|
+
const affirmativeOperationTail = (tail) => {
|
|
141
|
+
const bare = "[~./A-Za-z0-9_<>-][A-Za-z0-9_<>./~-]*/[A-Za-z0-9_<>./~-]*";
|
|
142
|
+
const path = `(?:${[bare, ...["`", '"', "'"].map((q) => `${q}${bare}${q}`)].join("|")})`;
|
|
143
|
+
const location = new RegExp(`^(?:${path}|(?:扫描|原)路径之外的(?:带时间戳)?备份目录)$`);
|
|
144
|
+
const suggestions = new RegExp(`^建议\\s*${path}(?:\\s*(?:和|及|以及|、|and)\\s*${path})*$`);
|
|
145
|
+
const [destination, ...constraints] = tail.split(/[,,]/).map((c) => c.trim());
|
|
146
|
+
const target = /^(?:到|至|进|出|回)\s*(.+)$/.exec(destination ?? "")?.[1];
|
|
147
|
+
return (!destination || !!target && location.test(target)) && constraints.every((c) => suggestions.test(c) || /^保留(?:各自|原有)?来源层级$/.test(c) || /^不覆盖(?:已有|现有)?备份$/.test(c));
|
|
148
|
+
};
|
|
149
|
+
/** Operation roles are closed: unclassified qualifications retract prior sources. */
|
|
150
|
+
const allowsOperationSource = (clause, sources, cwd) => {
|
|
151
|
+
const paths = pathTokensOf(clause, cwd);
|
|
152
|
+
// Only a complete direct instruction can prove that a path names another object.
|
|
153
|
+
if (paths.length === 1 && sources.every((p) => !near(p, paths[0].path))
|
|
154
|
+
&& /^(?:不|不要|别|勿|无需|不需要)?(?:检查|核查|扫描|读取|移动|迁移|删除|复制|备份|操作)\s*$/.test(clause.slice(0, paths[0].start))
|
|
155
|
+
&& !clause.slice(paths[0].end).trim())
|
|
156
|
+
return true;
|
|
157
|
+
if (paths.length === 1 && /^(?:检查|核查|扫描|读取|验证|确认)\s*$/.test(clause.slice(0, paths[0].start))
|
|
158
|
+
&& !clause.slice(paths[0].end).trim())
|
|
159
|
+
return true;
|
|
160
|
+
if (/^(?:保留(?:各自|原有)?来源层级|不覆盖(?:已有|现有)?备份|(?:移动|迁移)链接本身|(?:勿|不要|不)操作链接目标)$/.test(clause))
|
|
161
|
+
return true;
|
|
162
|
+
if (/^(?:验证|检查|核查|确认)(?:移动|迁移|复制|备份)(?:结果|完整性|数量|项完整|是否完成|成功)$/.test(clause)
|
|
163
|
+
|| /^验证备份项完整(?:、原扫描路径(?:用户)?(?:技能|文件|目录|资源|对象)已移出)?$/.test(clause)
|
|
164
|
+
|| /^(?:交付|报告)(?:确切)?备份(?:绝对)?路径(?:、(?:移动|迁移|复制|备份)数量(?:与原目录状态)?)?$/.test(clause)
|
|
165
|
+
|| /^(?:移动|迁移|复制|备份)数量(?:与原目录状态)?$/.test(clause)
|
|
166
|
+
|| /^先核查当前实物后(?:移动|迁移|移除|复制|备份)所有(?:该范围)?(?:用户)?(?:技能|文件|目录|资源|对象)$/.test(clause)
|
|
167
|
+
|| /^(?:此为|这是)?用户(?:明确)?授权的可逆(?:移动|迁移|复制|备份)$/.test(clause))
|
|
168
|
+
return true;
|
|
169
|
+
// Resource inventories are data-only lists, not free-form background prose.
|
|
170
|
+
if (/^(?:已知\s+)?[A-Za-z0-9_-]+\s+有\s+[A-Za-z0-9_.-]+(?:、[A-Za-z0-9_.-]+)*$/.test(clause))
|
|
171
|
+
return true;
|
|
172
|
+
if (paths.length === 1 && /^明确排除\s*$/.test(clause.slice(0, paths[0].start))
|
|
173
|
+
&& /^(?:系统技能|系统文件|系统目录)(?:、插件缓存和 [A-Za-z0-9_-]+ 内容存储)?$/.test(clause.slice(paths[0].end).trim()))
|
|
174
|
+
return true;
|
|
175
|
+
if (/^(?:包括(?:目录|文件)(?:或符号链接)?|无需再次确认|不要自动重启会话)$/.test(clause)
|
|
176
|
+
|| /^不(?:改|修改)(?:任何)?(?:配置真源|配置|锁文件|项目文档)(?:、(?:配置真源|配置|锁文件|项目文档))*(?:或(?:配置真源|配置|锁文件|项目文档))?$/.test(clause)
|
|
177
|
+
|| /^说明(?:当前)?会话启动快照(?:仍)?可能显示旧清单(?:即可)?$/.test(clause))
|
|
178
|
+
return true;
|
|
179
|
+
// Every later clause needs a complete known role. Unrecognized wording is not
|
|
180
|
+
// evidence that the operation still stands, regardless of nouns or pronouns.
|
|
181
|
+
return false;
|
|
182
|
+
};
|
|
183
|
+
/** A supported 将/把 source list and its complete operation must be affirmative. */
|
|
184
|
+
const operationSources = (text, cwd) => {
|
|
185
|
+
const denied = new Set(roleClauses(text).filter((c) => NEGATIVE_ROLE.test(c)).flatMap((c) => [...refsOf(c, cwd)]));
|
|
186
|
+
const sentences = text.split(/[。;;\n]/);
|
|
187
|
+
return new Set(sentences.flatMap((sentence, index) => {
|
|
188
|
+
const operation = /^(?:请\s*)?(?:将|把)\s+(.+?)\s*(?:实际|统一|全部)?(?:移动|迁移|移除|删除|复制|搬移|备份)(?=到|至|进|出|回|[,,]|$)/.exec(sentence.trim());
|
|
189
|
+
const source = operation?.[1];
|
|
190
|
+
if (!source || NEGATIVE_ROLE.test(source) || !affirmativeOperationTail(sentence.trim().slice(operation[0].length)))
|
|
191
|
+
return [];
|
|
192
|
+
const entries = source.replace(/[,,]\s*$/, "").split(/[,,]\s*(?:以及|和|及|and)?\s*|\s+and\s+/i);
|
|
193
|
+
const paths = entries.map((entry) => {
|
|
194
|
+
const value = entry.trim(), tokens = pathTokensOf(value, cwd);
|
|
195
|
+
if (tokens.length !== 1 || tokens[0].start !== 0)
|
|
196
|
+
return "";
|
|
197
|
+
const selector = value.slice(tokens[0].end).trim();
|
|
198
|
+
return !selector || /^下(?:的)?[一-鿿A-Za-z0-9_ -]{0,32}(?:技能|文件|目录|资源|对象)$/.test(selector) ? tokens[0].path : "";
|
|
199
|
+
});
|
|
200
|
+
const later = roleClauses(sentences.slice(index + 1).join("。").replace(/[()()]/g, ","));
|
|
201
|
+
const objects = [...paths, ...refsOf(sentence, cwd)];
|
|
202
|
+
return paths.length && paths.every(Boolean) && later.every((c) => allowsOperationSource(c, objects, cwd))
|
|
203
|
+
? paths.filter((p) => !denied.has(p)) : [];
|
|
204
|
+
}));
|
|
75
205
|
};
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
const
|
|
83
|
-
const
|
|
84
|
-
const
|
|
206
|
+
const mentions = (text, object) => object.length >= 4 && !["skills", "plugins", "cache", "tree", ".system"].includes(object)
|
|
207
|
+
&& new RegExp(`(?<![A-Za-z0-9_-])${object.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}(?![A-Za-z0-9_-])`, "i").test(text);
|
|
208
|
+
const evidenceOf = (text, task, stems, common, taskCwd, now) => (row) => {
|
|
209
|
+
const active = targetText(text);
|
|
210
|
+
const positions = refsOf(text, taskCwd);
|
|
211
|
+
const sources = operationSources(text, taskCwd);
|
|
212
|
+
const targets = new Set([...refsOf(active, taskCwd), ...sources]);
|
|
213
|
+
const clauses = roleClauses(text);
|
|
214
|
+
const denied = new Set(clauses.filter((c) => NEGATIVE_ROLE.test(c)).flatMap((c) => [...refsOf(c, taskCwd)]));
|
|
215
|
+
const referenceObjects = clauses.flatMap((c) => {
|
|
216
|
+
if (NEGATIVE_ROLE.test(c))
|
|
217
|
+
return [];
|
|
218
|
+
const ref = /^指(?:刚刚|刚)?(?:找到|查到|发现|确认)的\s*[`"']?([A-Za-z0-9_][A-Za-z0-9_.-]*)[`"']?(?:\s*[((][^()()]*[))])?$/.exec(c);
|
|
219
|
+
return ref ? [ref[1]] : [];
|
|
220
|
+
});
|
|
221
|
+
const identityQuery = active.split("\n").some((c) => /^(?:其|该技能的?|该对象的?|它的|这个技能的?)(?:上游)?(?:来源|身份|出处|作者|仓库|元数据)/.test(c.replace(TARGET_ACTION, "").trim()));
|
|
222
|
+
const snapshots = labeledLocations(text, taskCwd, /^(?:已知)?本地快照\s*[::]?\s*(.+)$/);
|
|
223
|
+
const archives = labeledLocations(text, taskCwd, /^(?:[A-Za-z0-9_.-]+\s+)?归档副本\s*[::]?\s*(.+)$/);
|
|
224
|
+
const materials = row.materials ?? [];
|
|
225
|
+
const hit = uniqueFiles(row.files.map((f) => fullPath(row.cwd, f)).filter((f) => stems.has(stemOf(f).toLowerCase())));
|
|
226
|
+
const isCommon = (f) => GUIDANCE.has(stemOf(f).toLowerCase()) || common.has(f);
|
|
227
|
+
const current = materials.filter((m) => m.confirmed && m.task && m.taskAt > 0 && m.at >= m.taskAt
|
|
228
|
+
&& now >= m.at && now - m.taskAt <= 3_600_000 && now - m.at <= 3_600_000
|
|
229
|
+
&& (!row.sessionId || m.session === row.sessionId));
|
|
230
|
+
const related = current.filter((m) => {
|
|
231
|
+
const path = fullPath(row.cwd, m.path);
|
|
232
|
+
if (isCommon(path))
|
|
233
|
+
return false;
|
|
234
|
+
const object = basename(dirname(path));
|
|
235
|
+
const skill = basename(path).toLowerCase() === "skill.md";
|
|
236
|
+
// A helper's skill read is not expertise. The skill itself must be the delivered object.
|
|
237
|
+
if (skill) {
|
|
238
|
+
if (m.kind !== "read")
|
|
239
|
+
return false;
|
|
240
|
+
const instance = dirname(path);
|
|
241
|
+
// Explicit child files constrain the instance too. Unknown/negative positions cannot
|
|
242
|
+
// be recovered through a same-name fallback, even when that costs a valid reuse.
|
|
243
|
+
const discovered = refsOf(m.reply ?? "", m.cwd).has(path) && (m.reply ?? "").split(/[。;;\n]/).some((clause) => !NEGATIVE_ROLE.test(clause) && mentions(clause, object) && /最匹配|找到|找出|发现|\bfound\b|\bidentified\b|\bmatch\b/i.test(clause));
|
|
244
|
+
const authority = labeledLocations(m.reply ?? "", m.cwd, /^(?:权威源文件|源文件|技能文件|技能路径)\s*[::]\s*(.+)$/);
|
|
245
|
+
const excluded = [...denied].some((p) => p === instance || p.startsWith(`${instance}/`));
|
|
246
|
+
const archiveQuery = clauses.some((c) => /归档副本/.test(c)
|
|
247
|
+
&& !labeledLocations(c, taskCwd, /^(?:[A-Za-z0-9_.-]+\s+)?归档副本\s*[::]?\s*(.+)$/).size);
|
|
248
|
+
const deliveredObjects = roleClauses(m.reply ?? "").flatMap((c) => {
|
|
249
|
+
if (NEGATIVE_ROLE.test(c))
|
|
250
|
+
return [];
|
|
251
|
+
const name = /^(?:最匹配的是|找到的(?:技能|对象)是|发现的(?:技能|对象)是|已找到|已确认)\s*([A-Za-z0-9_][A-Za-z0-9_.-]*)$/.exec(c.replace(/[*`"']/g, ""))?.[1];
|
|
252
|
+
return name ? [name] : [];
|
|
253
|
+
});
|
|
254
|
+
const sameObject = (name) => name.toLowerCase() === object.toLowerCase();
|
|
255
|
+
const referenced = !excluded && identityQuery && referenceObjects.some(sameObject) && referenceObjects.every(sameObject)
|
|
256
|
+
&& deliveredObjects.some(sameObject) && deliveredObjects.every(sameObject)
|
|
257
|
+
&& snapshots.size === 1 && snapshots.has(path) && authority.size === 1 && authority.has(path) && discovered;
|
|
258
|
+
const compatible = [...positions].every((p) => referenced && (snapshots.has(p) || archives.has(p) && !targets.has(p) && !archiveQuery)
|
|
259
|
+
|| targets.has(p) && (p === instance || p.startsWith(`${instance}/`)));
|
|
260
|
+
if (!compatible)
|
|
261
|
+
return false;
|
|
262
|
+
const helper = m.task.split(/[。;;\n,,]/).some((clause) => mentions(clause, object)
|
|
263
|
+
&& /(?:使用|应用|遵循|用(?!户|途)|\buse\b|\busing\b|\bapply\b)/i.test(clause));
|
|
264
|
+
if (helper || !mentions(m.reply ?? "", object))
|
|
265
|
+
return false;
|
|
266
|
+
const originalTarget = refsOf(targetText(m.task), m.cwd).has(path);
|
|
267
|
+
return (originalTarget || discovered) && (referenced || targets.has(path)
|
|
268
|
+
|| active.split("\n").some((clause) => /skill|技能/i.test(clause) && mentions(clause, object)));
|
|
269
|
+
}
|
|
270
|
+
if (m.kind === "scan" && [fullPath(row.cwd, "."), "/", homedir()].includes(path))
|
|
271
|
+
return false;
|
|
272
|
+
// Scans match that exact directory only; they never claim files under it were read.
|
|
273
|
+
return targets.has(path) && (refsOf(targetText(m.task), m.cwd).has(path) || refsOf(targetText(m.reply ?? ""), m.cwd).has(path) || deliveredLocations(m.reply ?? "", m.cwd).has(path));
|
|
274
|
+
});
|
|
275
|
+
const files = uniqueFiles(related.filter((m) => m.kind === "read").map((m) => fullPath(row.cwd, m.path)));
|
|
85
276
|
return {
|
|
86
|
-
row,
|
|
87
|
-
|
|
277
|
+
row, continuity: related.length > 0, matched: related,
|
|
278
|
+
targetRoles: { direct: [...refsOf(active, taskCwd)], operationSources: [...sources], referenceObjects,
|
|
279
|
+
snapshots: [...snapshots], archiveBackground: [...archives] },
|
|
280
|
+
objects: [...new Set(related.map((m) => basename(m.path).toLowerCase() === "skill.md" ? basename(dirname(m.path)) : m.path))],
|
|
281
|
+
materialIssues: [
|
|
282
|
+
...(materials.some((m) => !m.confirmed) ? ["未确认的工具形状仅作线索, 不计材料"] : []),
|
|
283
|
+
...(!materials.length ? ["无确认材料 (缺失、尾部截断或最新轮无可识别读取)"] : []),
|
|
284
|
+
...(materials.some((m) => m.truncated) ? ["仅取 compact 后 1MB 尾部, 更早证据未知"] : []),
|
|
285
|
+
...(materials.length && !current.length ? ["材料不属已知当前任务/session 或已超过 1 小时"] : []),
|
|
286
|
+
],
|
|
88
287
|
clues: hit.filter((f) => !isCommon(f) && !files.includes(f)),
|
|
89
|
-
desc: shared(task, row.description),
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
files,
|
|
93
|
-
common: hit.filter(isCommon),
|
|
288
|
+
desc: shared(task, row.description), exp: shared(task, row.expertise ?? ""),
|
|
289
|
+
asks: [...new Set(row.asks.flatMap((a) => shared(task, a)))], files,
|
|
290
|
+
common: uniqueFiles([...hit, ...materials.map((m) => fullPath(row.cwd, m.path))].filter(isCommon)),
|
|
94
291
|
sameCwd: near(row.cwd, taskCwd),
|
|
95
292
|
};
|
|
96
293
|
};
|
|
97
294
|
// 排序只是让最有证据的先被看到: 文件命中 (它真读过) > 职责 > 最近的话; 同工作区只用来打破平手。
|
|
98
295
|
// 专长是它自己声明的「熟哪块」, 与职责同权。
|
|
99
|
-
const weight = (e) => e.
|
|
296
|
+
const weight = (e) => e.matched.length * 3 + e.clues.length + (e.desc.length + e.exp.length) * 2 + e.asks.length;
|
|
100
297
|
/** 有交集的候选, 证据最强的在前。 */
|
|
101
298
|
export const rankCandidates = (task, taskCwd, rows, hot) => {
|
|
102
299
|
// 平手时缓存热的优先 (同一把尺 wakeCostOf: 没冷 = 唤醒只读缓存); 不给 hot 就不分。
|
|
103
300
|
const warm = (r) => (hot && !wakeCostOf(r.contextTokens, touchOf(r), hot.now, r.cacheTtlMs ?? hot.ttlMs).cold ? 1 : 0);
|
|
104
301
|
return rows
|
|
105
|
-
.map(evidenceOf(task, termsOf(withoutGuidance(task)), stemsOf(task), commonStems(rows), taskCwd))
|
|
106
|
-
.filter((e) => weight(e) > 0 || e.common.length > 0)
|
|
302
|
+
.map(evidenceOf(task, termsOf(withoutGuidance(task)), stemsOf(task), commonStems(rows), taskCwd, hot?.now ?? Date.now()))
|
|
107
303
|
.sort((x, y) => weight(y) - weight(x) || Number(y.sameCwd) - Number(x.sameCwd) || warm(y.row) - warm(x.row) || y.row.lastActivity - x.row.lastActivity);
|
|
108
304
|
};
|
|
109
305
|
// 白板 spawn 的起步 ctx: CLI 自带 system prompt + charter (~2.6k) + 工具定义 (~18k)。
|
|
@@ -144,6 +340,17 @@ const SMALL_RE = /改(?:名|文案|颜色|字号|字体|间距|边距|圆角)|
|
|
|
144
340
|
const FILE_CHECK_RE = /(?:核实|确认|检查|查一下|查看|check|verify).*(?:存在|加载|路径|exists?|load|path)/i;
|
|
145
341
|
export const isSmallTask = (task) => task.length <= 160 && !COMPLEX_RE.test(withoutGuidance(task))
|
|
146
342
|
&& (SMALL_RE.test(task) || (fileRefs(task).length > 0 && FILE_CHECK_RE.test(task)));
|
|
343
|
+
const CODING_RE = /(?:实现|编写|新增|添加|修改|修复|调整|删除|迁移|更新|重构|(?<![A-Za-z0-9_])(?:implement|write|add|create|change|modify|fix|update|remove|refactor)(?![A-Za-z0-9_]))/i;
|
|
344
|
+
const CODE_TARGET_RE = /(?:\b[\w./-]+\.(?:ts|tsx|js|jsx|mjs|cjs|py|go|rs|java|kt|swift|vue|svelte|css|scss|html|sql|rb|php|c|h|cpp)\b|(?:登录|提交|保存|确认|取消|搜索|发送|解析|认证|用户|订单|支付)(?:函数|接口|按钮|方法|组件|路由)|(?:函数|接口|按钮|方法|组件|路由)(?:的)?(?:逻辑|定义|返回值|参数|点击|校验|空字符串|空值|回调|状态|错误处理)|\b(?:login|submit|save|confirm|cancel|search|send|parse|auth|user|order|payment)[ -](?:function|interface|button|method|component|route|class|endpoint)\b)/i;
|
|
345
|
+
const CODE_SYMBOL_RE = /(?<![A-Za-z0-9_])[a-z][A-Za-z0-9]*[A-Z][A-Za-z0-9]*(?![A-Za-z0-9_])/;
|
|
346
|
+
const CODE_CONTEXT_RE = /函数|方法|参数|返回(?:值)?|空字符串|空输入|空值|回调|调用|校验|处理|点击|function|parameter|argument|return|empty (?:string|input)|callback|handler/i;
|
|
347
|
+
const CODING_RISK_RE = /并发|竞态|死锁|安全|权限|认证|授权|隐私|加密|漏洞|支付|扣款|幂等|事务|回滚|迁移|(?<![A-Za-z0-9_])(?:security|concurren(?:cy|t)|race|deadlock|auth(?:entication|orization)?|permissions?|privacy|crypt(?:o|graph)|vulnerabilit(?:y|ies)|exploit|payment|charge|idempotenc\w*|transaction|rollback|migration)(?![A-Za-z0-9_])/i;
|
|
348
|
+
const GLOBAL_SCOPE_RE = /全部|所有|整个|全局|全量|各个模块|跨(?:多个)?模块|跨项目|(?<![A-Za-z0-9_])(?:all|entire|across)(?![A-Za-z0-9_])/i;
|
|
349
|
+
const isCodingTask = (task) => !CODING_RISK_RE.test(task)
|
|
350
|
+
&& !COMPLEX_RE.test(withoutGuidance(task))
|
|
351
|
+
&& CODING_RE.test(withoutGuidance(task))
|
|
352
|
+
&& (CODE_TARGET_RE.test(withoutGuidance(task))
|
|
353
|
+
|| (CODE_SYMBOL_RE.test(withoutGuidance(task)) && CODE_CONTEXT_RE.test(withoutGuidance(task))));
|
|
147
354
|
const smallFor = (task, tier) => tier ? tier === "mini" || tier === "light" : isSmallTask(task);
|
|
148
355
|
/** 证据弱 (没碰过这件活点到的文件; 小活则少于 3 个) 又贵 (冷且 ≥60k, 或热但 ≥150k) → 不划算。 */
|
|
149
356
|
const notWorth = (e, w, small, ctx) => (e.files.length === 0 || (small && e.files.length < 3)) && ctx >= (w.cold ? BIG_COLD : BIG_WARM);
|
|
@@ -164,7 +371,7 @@ const costLines = (e, c) => {
|
|
|
164
371
|
const w = wakeCostOf(ctx, touchOf(e.row), c.now, ttlMs);
|
|
165
372
|
const ttl = `${Math.round(ttlMs / 60_000)} 分钟`;
|
|
166
373
|
const wake = w.cold
|
|
167
|
-
? `缓存冷 (超过 TTL ${ttl}) · 唤醒要重写 ~${k(w.write)} 缓存 ≈ 白板 spawn 的 ${w.times} 倍${ctx >= BIG_COLD ? " · 大 ctx 已冷, 默认不转" : ""}`
|
|
374
|
+
? `缓存冷 (超过 TTL ${ttl}) · 唤醒要重写 ~${k(w.write)} 缓存 ≈ 白板 spawn 的 ${w.times} 倍${ctx >= BIG_COLD ? c.force ? " · force 已越过冷成本门槛" : " · 大 ctx 已冷, 默认不转" : ""}`
|
|
168
375
|
: `缓存热 (TTL ${ttl}内) · 唤醒只读缓存`;
|
|
169
376
|
const need = e.files.length
|
|
170
377
|
? `这件活点到它读过的 ${e.files.length}/${e.row.files.length} 个文件`
|
|
@@ -186,7 +393,7 @@ const renderOne = (e, c) => {
|
|
|
186
393
|
e.common.length ? `降权的公共文件 ${e.common.slice(-4).map((f) => relTo(r.cwd, f)).join(" ")}${e.common.length > 4 ? ` +${e.common.length - 4}` : ""} (公共指引或多人读过, 不计证据)` : "",
|
|
187
394
|
].filter(Boolean);
|
|
188
395
|
return [
|
|
189
|
-
[`\`${addr(r)}\` ${r.busy ? "忙" : r.alive ? "闲" : "冷"}`, where, ctxOf(r.contextTokens) || "ctx ?", agoOf(r.lastActivity, now)]
|
|
396
|
+
[`\`${addr(r)}\` ${r.busy ? "忙" : r.alive ? "闲" : "冷"}`, where, ctxOf(r.contextTokens) || "ctx ?", r.model || "model ?", agoOf(r.lastActivity, now)]
|
|
190
397
|
.filter(Boolean).join(" · "),
|
|
191
398
|
...(r.description ? [` 职责: ${r.description}`] : []),
|
|
192
399
|
...(r.expertise ? [` 专长: ${r.expertise}`] : []),
|
|
@@ -194,16 +401,17 @@ const renderOne = (e, c) => {
|
|
|
194
401
|
...(e.clues.length ? [` 同名文件线索: ${e.clues.map((f) => basename(f)).join(" ")} (路径未对上, 不证明连续性)`] : []),
|
|
195
402
|
...(r.lead ? [" 占用: lead 身份"] : []),
|
|
196
403
|
...(r.duties?.length ? [` 占用: ${r.duties.join(" · ")}`] : []),
|
|
197
|
-
`
|
|
198
|
-
|
|
404
|
+
` 材料关联: ${e.continuity ? e.matched.map((m) => `${m.kind} ${m.path} · ${m.source} · ${agoOf(m.at, now)}`).join("; ") : "未证实"}`,
|
|
405
|
+
...e.materialIssues.map((x) => ` 证据范围: ${x}`),
|
|
406
|
+
` 自动复用: ${vetoOf(e, now, c.ttlMs, c.small, c.force) || "可选; 真实续篇优先 tell_peer re"}`,
|
|
199
407
|
...(r.files.length ? [` 上下文: 读过 ${r.files.length} 个文件 (${spread(r.cwd, r.files)})`] : []),
|
|
200
408
|
...costLines(e, c),
|
|
201
409
|
...(r.summary ? [` 最近: ${r.summary}`] : []),
|
|
202
410
|
];
|
|
203
411
|
};
|
|
204
412
|
/** 给管家读的候选表。末尾永远留着「新 spawn」这一项 —— 它是没有好候选时的默认。 */
|
|
205
|
-
export const renderCandidates = (task, cands, now, ttlMs, home = "") => {
|
|
206
|
-
const c = { now, home, ttlMs, small:
|
|
413
|
+
export const renderCandidates = (task, cands, now, ttlMs, home = "", options = {}) => {
|
|
414
|
+
const c = { now, home, ttlMs, small: smallFor(task, options.tier), force: options.force === true };
|
|
207
415
|
return [
|
|
208
416
|
cands.length
|
|
209
417
|
? `和这件活有交集的已有 wizard ${cands.length} 个, 证据强的在前 (文件命中 = 它真读过; 词面重叠只是线索):`
|
|
@@ -216,26 +424,43 @@ export const renderCandidates = (task, cands, now, ttlMs, home = "") => {
|
|
|
216
424
|
].join("\n");
|
|
217
425
|
};
|
|
218
426
|
/** 一个候选为什么不转给它; "" = 可以转。 */
|
|
219
|
-
const
|
|
220
|
-
const r = e.row;
|
|
221
|
-
const ctx = r.contextTokens;
|
|
427
|
+
const vetoesOf = (e, now, ttlMs, small, force) => {
|
|
428
|
+
const r = e.row, ctx = r.contextTokens;
|
|
222
429
|
const w = wakeCostOf(ctx, touchOf(r), now, r.cacheTtlMs ?? ttlMs);
|
|
223
|
-
return
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
430
|
+
return [
|
|
431
|
+
...(small && r.budgetModel && r.model?.trim().toLowerCase() !== r.budgetModel.trim().toLowerCase()
|
|
432
|
+
? [`轻任务模型不符 (当前 ${r.model || "未知"}, 本次 ${r.budgetModel}); 按本次档位白板执行`] : []),
|
|
433
|
+
...(r.lead ? ["lead 身份, 独立任务不自动复用 (续篇用 tell_peer re)"] : []),
|
|
434
|
+
...(r.duties?.length ? [`任务占用 (${r.duties.join(" · ")})`] : []),
|
|
435
|
+
...(!r.alive ? ["不在线"] : []), ...(r.busy ? ["正忙"] : []),
|
|
436
|
+
...(!(ctx > 0 && Number.isFinite(ctx)) ? ["ctx 未知, 不能按免费上下文复用"] : []),
|
|
437
|
+
...(!e.continuity ? ["未证实近期真实任务的实际材料关联"] : []),
|
|
438
|
+
...(notWorth(e, w, small, ctx) ? [`不划算 (${small ? "小活" : "证据弱"}却要${w.cold ? "整段重写" : "一直背着"} ${k(ctx)})`] : []),
|
|
439
|
+
...(w.cold && ctx >= BIG_COLD && !force ? [`缓存冷且 ctx ${k(ctx)} (大 ctx 已冷默认不转; 活真依赖它的上下文就 to+force)`] : []),
|
|
440
|
+
];
|
|
231
441
|
};
|
|
442
|
+
const vetoOf = (e, now, ttlMs, small, force) => vetoesOf(e, now, ttlMs, small, force).join("; ");
|
|
443
|
+
export const routeDiagnostics = (task, cands, now, ttlMs, force = false, tier) => ({
|
|
444
|
+
total: cands.length, shown: cands.length, truncated: false,
|
|
445
|
+
scope: "current session, latest real task, compact boundary / 1MB tail, <=1h",
|
|
446
|
+
candidates: cands.map((e) => ({
|
|
447
|
+
name: e.row.address || e.row.name, sessionId: e.row.sessionId, model: e.row.model || "unknown",
|
|
448
|
+
targetRoles: e.targetRoles,
|
|
449
|
+
matchedPaths: e.matched.map((m) => m.path), objects: e.objects, materials: e.matched,
|
|
450
|
+
observed: (e.row.materials ?? []).map(({ path, kind, source, at, taskAt, turn, session, confirmed }) => ({ path, kind, source, at, taskAt, turn, session, confirmed })),
|
|
451
|
+
common: e.common, issues: e.materialIssues, contextTokens: e.row.contextTokens || null, contextKnown: e.row.contextTokens > 0,
|
|
452
|
+
cache: wakeCostOf(e.row.contextTokens, touchOf(e.row), now, e.row.cacheTtlMs ?? ttlMs),
|
|
453
|
+
veto: vetoOf(e, now, ttlMs, smallFor(task, tier), force),
|
|
454
|
+
vetoes: vetoesOf(e, now, ttlMs, smallFor(task, tier), force),
|
|
455
|
+
})),
|
|
456
|
+
});
|
|
232
457
|
const evidenceLine = (e) => [
|
|
233
|
-
e.
|
|
458
|
+
e.matched.length ? `实际材料 ${e.matched.map((m) => `${m.kind} ${m.path}`).join(", ")}` : "",
|
|
234
459
|
e.desc.length ? `职责${quoted(e.desc, 3)}` : "",
|
|
235
460
|
e.exp.length ? `专长${quoted(e.exp, 3)}` : "",
|
|
236
461
|
e.row.contextTokens ? ctxOf(e.row.contextTokens) : "",
|
|
237
462
|
].filter(Boolean).join(" · ");
|
|
238
|
-
/** 默认决定: 候选按证据排好 (rankCandidates), 取头一个没被否决的; 一个都没有 → spawn,
|
|
463
|
+
/** 默认决定: 候选按证据排好 (rankCandidates), 取头一个没被否决的; 一个都没有 → spawn, 理由保留全部候选的否决。 */
|
|
239
464
|
export const decide = (task, cands, now, ttlMs, force = false, tier) => {
|
|
240
465
|
const small = smallFor(task, tier);
|
|
241
466
|
const vetoes = cands.map((e) => ({ e, veto: vetoOf(e, now, ttlMs, small, force) }));
|
|
@@ -245,13 +470,13 @@ export const decide = (task, cands, now, ttlMs, force = false, tier) => {
|
|
|
245
470
|
return {
|
|
246
471
|
kind: "spawn",
|
|
247
472
|
why: vetoes.length
|
|
248
|
-
? `白板 spawn —— ${vetoes.
|
|
473
|
+
? `白板 spawn —— ${vetoes.map((v) => `${addr(v.e.row)} ${v.veto}`).join("; ")}`
|
|
249
474
|
: "白板 spawn —— 没有哪个已有 wizard 和这件活有交集",
|
|
250
475
|
};
|
|
251
476
|
};
|
|
252
|
-
/** spawn 时的默认档:
|
|
477
|
+
/** spawn 时的默认档: 明确简单动作或有可识别代码对象的普通实现 → light; 其余 standard —— 默认不上 hard。
|
|
253
478
|
* 以前按 COMPLEX_RE 把「设计 / 排障 / 审查」这类措辞自动升到 hard, 而这些词在真活里太常见,
|
|
254
479
|
* 于是几乎每个派出去的活都落 opus; 现在 hard / ultra 只由调用方显式给 (`tier:"hard"`),
|
|
255
480
|
* lead 是唯一的例外 (它本来就是「要判断」的那一档)。 */
|
|
256
|
-
export const tierFor = (task, lead) => lead ? "hard" : isSmallTask(task) ? "light" : "standard";
|
|
481
|
+
export const tierFor = (task, lead) => lead ? "hard" : CODING_RISK_RE.test(task) || GLOBAL_SCOPE_RE.test(task) ? "standard" : isSmallTask(task) || isCodingTask(task) ? "light" : "standard";
|
|
257
482
|
//# sourceMappingURL=route.js.map
|
package/dist/daemon/route.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../daemon/route.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../daemon/route.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,8 +40,7 @@ import { activateBackend, resolveCliBackend } from "../shared/cli-backends.js";
|
|
|
40
40
|
import { selectModel } from "./model-select.js";
|
|
41
41
|
import { hasRegistry, sessionOnPane } from "./wezard-session.js";
|
|
42
42
|
import { startupConfirmation, workspaceTrustPrompt, workspaceTrustConfig } from "../shared/workspace-trust.js";
|
|
43
|
-
//
|
|
44
|
-
// `cli` is retained on SpawnArgs only to identify a resumed transcript's owner.
|
|
43
|
+
// New sessions follow configuration; resumed transcripts retain their backend.
|
|
45
44
|
export const backendFor = (cfg) => {
|
|
46
45
|
const backend = resolveCliBackend(cfg.wrc);
|
|
47
46
|
activateBackend(backend);
|
|
@@ -386,10 +385,10 @@ const charterArg = (cfg, backend, sessionId, charter, log) => {
|
|
|
386
385
|
}
|
|
387
386
|
};
|
|
388
387
|
export const spawnTmuxClaude = async ({ cfg, log, resumeSessionId, sessionId: freshSessionId, windowName, cwdOverride, cli, model, effort, systemPrompt, forkSession }) => {
|
|
389
|
-
const backend =
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
388
|
+
const backend = resumeSessionId && cli
|
|
389
|
+
? resolveCliBackend({ ...cfg.wrc, defaultCli: cli })
|
|
390
|
+
: backendFor(cfg);
|
|
391
|
+
activateBackend(backend);
|
|
393
392
|
const cwd = expandHome((cwdOverride ?? "").trim() || cfg.wrc.cwd);
|
|
394
393
|
const projectDir = join(expandHome(backend.projectsDir), backend.encodeProjectDir(cwd));
|
|
395
394
|
let sessionId = resumeSessionId ?? freshSessionId ?? randomUUID();
|
|
@@ -434,7 +433,7 @@ export const spawnTmuxClaude = async ({ cfg, log, resumeSessionId, sessionId: fr
|
|
|
434
433
|
if (backend.name === "codex") {
|
|
435
434
|
const conflict = sandboxDisabled ? codexSandboxArgConflict(cfg.wrc.extraArgs) : undefined;
|
|
436
435
|
if (conflict)
|
|
437
|
-
return { ok: false, reason: `Codex extraArgs ${conflict} conflicts with wrc.cliBackends.codex.disableSandbox; remove the shortcut and use the sandbox config` };
|
|
436
|
+
return { ok: false, retryable: false, reason: `Codex extraArgs ${conflict} conflicts with wrc.cliBackends.codex.disableSandbox; remove the shortcut and use the sandbox config` };
|
|
438
437
|
const hookEntry = fileURLToPath(new URL("../cli/codex-hook.js", import.meta.url));
|
|
439
438
|
const command = codexHookCommand(loadConfig().sourcePath, `http://127.0.0.1:${cfg.daemon.port}`, hookEntry);
|
|
440
439
|
try {
|