@te-river/opencode-team-mode 1.6.0 → 1.6.1
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/README.md +80 -15
- package/README.zh-CN.md +67 -18
- package/dist/host/note.d.ts +7 -0
- package/dist/host/note.d.ts.map +1 -0
- package/dist/host/note.js +28 -0
- package/dist/host/note.js.map +1 -0
- package/dist/host/v1.d.ts +14 -0
- package/dist/host/v1.d.ts.map +1 -0
- package/dist/host/v1.js +340 -0
- package/dist/host/v1.js.map +1 -0
- package/dist/host/v2-browser-gate.d.ts +45 -0
- package/dist/host/v2-browser-gate.d.ts.map +1 -0
- package/dist/host/v2-browser-gate.js +319 -0
- package/dist/host/v2-browser-gate.js.map +1 -0
- package/dist/host/v2-capabilities.d.ts +68 -0
- package/dist/host/v2-capabilities.d.ts.map +1 -0
- package/dist/host/v2-capabilities.js +146 -0
- package/dist/host/v2-capabilities.js.map +1 -0
- package/dist/host/v2-client.d.ts +53 -0
- package/dist/host/v2-client.d.ts.map +1 -0
- package/dist/host/v2-client.js +193 -0
- package/dist/host/v2-client.js.map +1 -0
- package/dist/host/v2-events.d.ts +56 -0
- package/dist/host/v2-events.d.ts.map +1 -0
- package/dist/host/v2-events.js +158 -0
- package/dist/host/v2-events.js.map +1 -0
- package/dist/host/v2-guard.d.ts +101 -0
- package/dist/host/v2-guard.d.ts.map +1 -0
- package/dist/host/v2-guard.js +199 -0
- package/dist/host/v2-guard.js.map +1 -0
- package/dist/host/v2-offload.d.ts +148 -0
- package/dist/host/v2-offload.d.ts.map +1 -0
- package/dist/host/v2-offload.js +288 -0
- package/dist/host/v2-offload.js.map +1 -0
- package/dist/host/v2-permissions.d.ts +123 -0
- package/dist/host/v2-permissions.d.ts.map +1 -0
- package/dist/host/v2-permissions.js +190 -0
- package/dist/host/v2-permissions.js.map +1 -0
- package/dist/host/v2-probe.d.ts +85 -0
- package/dist/host/v2-probe.d.ts.map +1 -0
- package/dist/host/v2-probe.js +268 -0
- package/dist/host/v2-probe.js.map +1 -0
- package/dist/host/v2-scope.d.ts +51 -0
- package/dist/host/v2-scope.d.ts.map +1 -0
- package/dist/host/v2-scope.js +58 -0
- package/dist/host/v2-scope.js.map +1 -0
- package/dist/host/v2-session-client.d.ts +74 -0
- package/dist/host/v2-session-client.d.ts.map +1 -0
- package/dist/host/v2-session-client.js +171 -0
- package/dist/host/v2-session-client.js.map +1 -0
- package/dist/host/v2-session.d.ts +85 -0
- package/dist/host/v2-session.d.ts.map +1 -0
- package/dist/host/v2-session.js +171 -0
- package/dist/host/v2-session.js.map +1 -0
- package/dist/host/v2-subagent.d.ts +157 -0
- package/dist/host/v2-subagent.d.ts.map +1 -0
- package/dist/host/v2-subagent.js +286 -0
- package/dist/host/v2-subagent.js.map +1 -0
- package/dist/host/v2-tool.d.ts +67 -0
- package/dist/host/v2-tool.d.ts.map +1 -0
- package/dist/host/v2-tool.js +209 -0
- package/dist/host/v2-tool.js.map +1 -0
- package/dist/host/v2-transcript.d.ts +73 -0
- package/dist/host/v2-transcript.d.ts.map +1 -0
- package/dist/host/v2-transcript.js +151 -0
- package/dist/host/v2-transcript.js.map +1 -0
- package/dist/host/v2-types.d.ts +229 -0
- package/dist/host/v2-types.d.ts.map +1 -0
- package/dist/host/v2-types.js +17 -0
- package/dist/host/v2-types.js.map +1 -0
- package/dist/host/v2.d.ts +42 -0
- package/dist/host/v2.d.ts.map +1 -0
- package/dist/host/v2.js +706 -0
- package/dist/host/v2.js.map +1 -0
- package/dist/index.d.ts +23 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -366
- package/dist/index.js.map +1 -1
- package/dist/prompts/lead.d.ts +1 -1
- package/dist/prompts/lead.d.ts.map +1 -1
- package/dist/prompts/lead.js +452 -426
- package/dist/prompts/lead.js.map +1 -1
- package/dist/prompts/shared.d.ts +2 -2
- package/dist/prompts/shared.d.ts.map +1 -1
- package/dist/prompts/shared.js +30 -10
- package/dist/prompts/shared.js.map +1 -1
- package/dist/prompts/specialists.d.ts +2 -2
- package/dist/prompts/specialists.d.ts.map +1 -1
- package/dist/prompts/specialists.js +7 -6
- package/dist/prompts/specialists.js.map +1 -1
- package/dist/task-offload.d.ts +16 -0
- package/dist/task-offload.d.ts.map +1 -1
- package/dist/task-offload.js +51 -0
- package/dist/task-offload.js.map +1 -1
- package/dist/tm/browser.d.ts.map +1 -1
- package/dist/tm/browser.js +41 -10
- package/dist/tm/browser.js.map +1 -1
- package/dist/tm/dispatch.d.ts +47 -0
- package/dist/tm/dispatch.d.ts.map +1 -1
- package/dist/tm/dispatch.js +230 -31
- package/dist/tm/dispatch.js.map +1 -1
- package/dist/tm/dupe-guard.d.ts +16 -3
- package/dist/tm/dupe-guard.d.ts.map +1 -1
- package/dist/tm/dupe-guard.js +27 -7
- package/dist/tm/dupe-guard.js.map +1 -1
- package/dist/tm/index.d.ts +40 -1
- package/dist/tm/index.d.ts.map +1 -1
- package/dist/tm/index.js +40 -11
- package/dist/tm/index.js.map +1 -1
- package/dist/tm/ledger.d.ts +114 -0
- package/dist/tm/ledger.d.ts.map +1 -0
- package/dist/tm/ledger.js +308 -0
- package/dist/tm/ledger.js.map +1 -0
- package/dist/tm/perm-ask.d.ts +1 -3
- package/dist/tm/perm-ask.d.ts.map +1 -1
- package/dist/tm/perm-ask.js +10 -1
- package/dist/tm/perm-ask.js.map +1 -1
- package/dist/tm/preview.d.ts +55 -0
- package/dist/tm/preview.d.ts.map +1 -1
- package/dist/tm/preview.js +225 -0
- package/dist/tm/preview.js.map +1 -1
- package/dist/tm/search.d.ts.map +1 -1
- package/dist/tm/search.js +40 -10
- package/dist/tm/search.js.map +1 -1
- package/dist/tm/serp-loop.d.ts +45 -0
- package/dist/tm/serp-loop.d.ts.map +1 -0
- package/dist/tm/serp-loop.js +80 -0
- package/dist/tm/serp-loop.js.map +1 -0
- package/dist/tm/stats.d.ts +10 -0
- package/dist/tm/stats.d.ts.map +1 -1
- package/dist/tm/stats.js +160 -0
- package/dist/tm/stats.js.map +1 -1
- package/dist/tm/webfetch.d.ts +4 -0
- package/dist/tm/webfetch.d.ts.map +1 -1
- package/dist/tm/webfetch.js +75 -8
- package/dist/tm/webfetch.js.map +1 -1
- package/docs/installation-v2.md +436 -0
- package/docs/installation.md +12 -0
- package/docs/research/agent-data-exchange.md +117 -0
- package/docs/research/browser-pane.md +89 -0
- package/docs/research/host-http-api.md +132 -0
- package/docs/research/host-subagent-injection.md +187 -0
- package/docs/research/plugin-loader-contract.md +261 -0
- package/docs/research/v2-builtin-tools.md +447 -0
- package/docs/v2-port-notes.md +315 -0
- package/index.js +7 -0
- package/package.json +64 -61
- package/scripts/gen-v2-config.mjs +304 -0
- package/scripts/lib/config-surgery.cjs +239 -0
- package/scripts/lib/fake-ctx.mjs +146 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The search-results-page loop guard (#14).
|
|
3
|
+
*
|
|
4
|
+
* A live v2 session spent ~30 browser navigations going to
|
|
5
|
+
* `cn.bing.com/search?q=…`, one query per round trip, each snapshot 200-500
|
|
6
|
+
* tokens. That is the exact pattern design goal 3 exists to kill, happening on
|
|
7
|
+
* the web channel: `tm_search` already queries bing (and six other engines) and
|
|
8
|
+
* returns a deduped, RRF-fused hit list in ONE call, so a browser navigation to
|
|
9
|
+
* a SERP is a slower, dumber version of a tool the agent already has.
|
|
10
|
+
*
|
|
11
|
+
* The browser is still the legitimate fallback — bing's HTML is sometimes an
|
|
12
|
+
* anti-bot shell and only a real browser gets through — so this is a RATE
|
|
13
|
+
* LIMIT, not a ban: the first `limit` SERP navigations go through with the
|
|
14
|
+
* redirect named in the reply, and past that the navigation is refused until the
|
|
15
|
+
* agent has tried `tm_search`. Refusing outright would remove the one path that
|
|
16
|
+
* survives a JS challenge, and removing a working fallback to fix a misuse is
|
|
17
|
+
* the wrong trade.
|
|
18
|
+
*/
|
|
19
|
+
const queryOf = (u) => {
|
|
20
|
+
for (const k of ["q", "query", "wd", "keyword", "searchterms"]) {
|
|
21
|
+
const v = (u.searchParams.get(k) ?? "").trim();
|
|
22
|
+
if (v)
|
|
23
|
+
return v;
|
|
24
|
+
}
|
|
25
|
+
return "";
|
|
26
|
+
};
|
|
27
|
+
/** Pure: a search-results URL tm_search can already produce, or null. */
|
|
28
|
+
export function serpTarget(raw) {
|
|
29
|
+
let u;
|
|
30
|
+
try {
|
|
31
|
+
u = new URL(String(raw ?? ""));
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const host = u.hostname.toLowerCase();
|
|
37
|
+
const path = u.pathname.toLowerCase();
|
|
38
|
+
const query = queryOf(u);
|
|
39
|
+
if (!query)
|
|
40
|
+
return null;
|
|
41
|
+
if (host === "cn.bing.com" || host === "www.bing.com" || host === "bing.com") {
|
|
42
|
+
return { engine: "bing", query, host };
|
|
43
|
+
}
|
|
44
|
+
if (host === "stackoverflow.com" && path.startsWith("/search")) {
|
|
45
|
+
return { engine: "stackoverflow", query, host };
|
|
46
|
+
}
|
|
47
|
+
if (host === "github.com" && path.startsWith("/search")) {
|
|
48
|
+
return { engine: "github", query, host };
|
|
49
|
+
}
|
|
50
|
+
if (host === "www.bilibili.com" && path.startsWith("/search")) {
|
|
51
|
+
return { engine: "bilibili", query, host };
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
export const SERP_NAV_LIMIT = 3;
|
|
56
|
+
export function createSerpLoopGuard(limit = SERP_NAV_LIMIT) {
|
|
57
|
+
let seenCount = 0;
|
|
58
|
+
return {
|
|
59
|
+
observe(url) {
|
|
60
|
+
const target = serpTarget(url);
|
|
61
|
+
if (!target)
|
|
62
|
+
return null;
|
|
63
|
+
seenCount += 1;
|
|
64
|
+
return { target, count: seenCount, limit, blocked: seenCount > limit };
|
|
65
|
+
},
|
|
66
|
+
seen: () => seenCount,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/** The line the agent reads. It names the replacement call rather than just
|
|
70
|
+
* refusing, because "don't do that" without "do this instead" costs a second
|
|
71
|
+
* round for the model to work the difference out. */
|
|
72
|
+
export function serpRedirect(v) {
|
|
73
|
+
return `这是一个搜索结果页(${v.target.host},查询「${v.target.query.slice(0, 60)}」)。tm_search 的 ${v.target.engine} 引擎一条调用就能拿到去重+RRF 融合后的命中表,比开浏览器抓 SERP 快且不占快照预算。`;
|
|
74
|
+
}
|
|
75
|
+
export function serpRefusal(v) {
|
|
76
|
+
return (`本次不导航:这已是本进程第 ${v.count} 次用浏览器打开搜索结果页(上限 ${v.limit} 次)。` +
|
|
77
|
+
` ${serpRedirect(v)} 如果 tm_search 对该词返回的是反爬壳子而不是结果,` +
|
|
78
|
+
`那就把这条判断如实写进交付、或者用宿主的子代理(v1 task / v2 subagent)派一份自包含的调研任务,而不是继续换词开网页。`);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=serp-loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serp-loop.js","sourceRoot":"","sources":["../../src/tm/serp-loop.ts"],"names":[],"mappings":"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"}
|
package/dist/tm/stats.d.ts
CHANGED
|
@@ -113,8 +113,18 @@ export interface TmStats {
|
|
|
113
113
|
seam: string;
|
|
114
114
|
reason: string;
|
|
115
115
|
}>;
|
|
116
|
+
/** `tool:"host"` lines — which personality booted, what it could not do.
|
|
117
|
+
* Without this the v2 boot record is written and never read back, so "the
|
|
118
|
+
* plugin loaded" stays a claim the user cannot check from a session. */
|
|
119
|
+
boot: Array<Record<string, unknown>>;
|
|
116
120
|
}
|
|
117
121
|
export declare function summarizeEvents(events: readonly TrajEvent[]): TmStats;
|
|
122
|
+
/** Newest-first host lines worth showing. A run appends several `v2-surface`
|
|
123
|
+
* snapshots of itself (one at attach, then one whenever the counters move), and
|
|
124
|
+
* the early ones are legitimately all-zero — showing them buries the line that
|
|
125
|
+
* says what actually happened, which is how a working native offload read as a
|
|
126
|
+
* dead tool. Per (run, step_id) the LAST snapshot supersedes the earlier ones. */
|
|
127
|
+
export declare function bootSnapshots(lines: ReadonlyArray<Record<string, unknown>>, limit?: number): Array<Record<string, unknown>>;
|
|
118
128
|
/** Markdown, in the shapes the host renders fastest (tables, not prose). */
|
|
119
129
|
export declare function renderStats(stats: TmStats, opts: {
|
|
120
130
|
runDirs: number;
|
package/dist/tm/stats.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/tm/stats.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/tm/stats.ts"],"names":[],"mappings":"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"}
|
package/dist/tm/stats.js
CHANGED
|
@@ -88,6 +88,7 @@ export function summarizeEvents(events) {
|
|
|
88
88
|
ptc: { runs: 0, calls: 0, errors: 0, retries: 0, sumMs: 0 },
|
|
89
89
|
governance: { blockedSubresources: 0, blockedHosts: [], ptyRefused: 0, clampedTimeouts: 0, clampSavedMs: 0, offloadDegraded: 0, webCacheHits: 0, evalMasks: 0, taskEnvelopes: 0, taskOffloads: 0, taskOffloadTokens: 0, argsCoerced: 0 },
|
|
90
90
|
degrades: [],
|
|
91
|
+
boot: [],
|
|
91
92
|
};
|
|
92
93
|
const byTool = new Map();
|
|
93
94
|
const hosts = new Set();
|
|
@@ -120,6 +121,8 @@ export function summarizeEvents(events) {
|
|
|
120
121
|
if (at > last)
|
|
121
122
|
last = at;
|
|
122
123
|
}
|
|
124
|
+
if (tool === "host" && e.step_id)
|
|
125
|
+
stats.boot.push({ ...e });
|
|
123
126
|
if (ev === "call")
|
|
124
127
|
row(tool).calls++;
|
|
125
128
|
if (ev === "result") {
|
|
@@ -238,6 +241,29 @@ export function summarizeEvents(events) {
|
|
|
238
241
|
function secs(ms) {
|
|
239
242
|
return `${(ms / 1000).toFixed(ms >= 10_000 ? 0 : 1)}s`;
|
|
240
243
|
}
|
|
244
|
+
/** Newest-first host lines worth showing. A run appends several `v2-surface`
|
|
245
|
+
* snapshots of itself (one at attach, then one whenever the counters move), and
|
|
246
|
+
* the early ones are legitimately all-zero — showing them buries the line that
|
|
247
|
+
* says what actually happened, which is how a working native offload read as a
|
|
248
|
+
* dead tool. Per (run, step_id) the LAST snapshot supersedes the earlier ones. */
|
|
249
|
+
export function bootSnapshots(lines, limit = 5) {
|
|
250
|
+
const last = new Map();
|
|
251
|
+
lines.forEach((line, i) => last.set(`${String(line.run_id ?? "?")}|${String(line.step_id ?? "?")}`, i));
|
|
252
|
+
const idx = [...last.values()].sort((a, b) => b - a);
|
|
253
|
+
// The boot record is the line that answers "which personality ran, and what did
|
|
254
|
+
// it find missing" — and it is also the only carrier of the Team-scope counts and
|
|
255
|
+
// the native-browser gate line. A plain newest-N used to drop it: the probe writes
|
|
256
|
+
// `v2-surface` whenever the host surface changes, so a long session pushed
|
|
257
|
+
// `v2-boot` out of the window and tm_stats quietly stopped showing the two facts
|
|
258
|
+
// the user asked about (a live session searched the output for them and found
|
|
259
|
+
// neither). Reserve the slots for the records that matter, then fill.
|
|
260
|
+
const prio = (i) => {
|
|
261
|
+
const s = String(lines[i]?.step_id ?? "");
|
|
262
|
+
return s === "v2-shutdown" ? 1 : s === "v2-boot" || s === "boot" ? 0 : 2;
|
|
263
|
+
};
|
|
264
|
+
const ordered = [...idx].sort((a, b) => prio(a) - prio(b) || b - a);
|
|
265
|
+
return ordered.slice(0, Math.max(1, limit)).map((i) => lines[i]);
|
|
266
|
+
}
|
|
241
267
|
/** Markdown, in the shapes the host renders fastest (tables, not prose). */
|
|
242
268
|
export function renderStats(stats, opts) {
|
|
243
269
|
const now = opts.now ?? Date.now();
|
|
@@ -256,6 +282,134 @@ export function renderStats(stats, opts) {
|
|
|
256
282
|
out.push(`| **合计** | | | | | **${savedTotal.toLocaleString("en-US")}** |`);
|
|
257
283
|
const d = stats.dispatch;
|
|
258
284
|
out.push("", "### 并行度(Team 的存在理由)", "", "| 指标 | 值 |", "|---|---|", `| 子代理结算 / 失败 / 取消(派活走宿主 task) | ${d.settled} / ${d.failed} / ${d.cancelled}${d.starts ? ` · 旧版 tm_dispatch 派发 ${d.starts}` : ""} |`, `| 单个子代理耗时(最长 / 合计=串行代价) | ${d.maxMs ? secs(d.maxMs) : "—"} / ${d.sumMs ? secs(d.sumMs) : "—"} |`, `| **重叠省下**(串行 − 实际墙钟) | ${d.overlapSavedMs ? `**${secs(d.overlapSavedMs)}**` : "—(只看到一个子代理,或它们本就串行)"} |`, `| 由宿主会话树接管 / 认领宿主 task 子会话 | ${d.adopted} / ${d.claims} |`, `| lead 在 tm_join 里干等 | ${d.waitMs ? `${secs(d.waitMs)}(${d.waits} 次等待${d.repeatWaits ? ` · 其中 ${d.repeatWaits} 次是连续等待——等待期间你没有产出` : ""})` : "—"} |`);
|
|
285
|
+
const b = stats.boot;
|
|
286
|
+
if (b.length) {
|
|
287
|
+
out.push("", "### 启动与人格(哪一半在跑、它说自己缺什么)", "");
|
|
288
|
+
for (const line of bootSnapshots(b)) {
|
|
289
|
+
const s = String(line.step_id ?? "?");
|
|
290
|
+
const api = line.api === 2 ? "v2" : line.api === 1 ? "v1" : String(line.api ?? "?");
|
|
291
|
+
// The native-offload counters are rendered here too: they are written on the
|
|
292
|
+
// same snapshot, and a fact that is recorded but never printed is the exact
|
|
293
|
+
// defect this section was added to remove.
|
|
294
|
+
const offBits = [
|
|
295
|
+
line.native_offload_active === undefined ? "" : `原生工具治理 ${line.native_offload_active ? "开" : "关(见上方原因)"}`,
|
|
296
|
+
line.native_seen !== undefined ? `原生调用 ${line.native_seen} 次` : "",
|
|
297
|
+
// #23: the denominator. `原生调用` counts only tools on the governed list,
|
|
298
|
+
// so without these two the sentence "most of Team's calls are JIT-governed"
|
|
299
|
+
// would be measured against a number that already excluded what it might miss.
|
|
300
|
+
line.native_ours !== undefined ? `本会话族共 ${line.native_ours} 次调用` : "",
|
|
301
|
+
line.native_unmatched ? `其中不在治理面 ${line.native_unmatched} 次(没碰,也不算治理过)` : "",
|
|
302
|
+
line.native_offloaded !== undefined ? `卸载 ${line.native_offloaded} 次` : "",
|
|
303
|
+
// Recognised is not the same as rewritten: this is the number that says
|
|
304
|
+
// "we can read this host's envelope format", and its being 0 while
|
|
305
|
+
// sub-agents clearly ran says the opposite.
|
|
306
|
+
line.native_envelopes !== undefined ? `认出的子代理信封 ${line.native_envelopes} 个` : "",
|
|
307
|
+
line.native_tokens_saved !== undefined && Number(line.native_tokens_saved) > 0 ? `省 ${line.native_tokens_saved} token` : "",
|
|
308
|
+
// Which session seam actually fired, and did the host's completion envelope
|
|
309
|
+
// settle anything. Both counters print even when zero: "the host never fired it"
|
|
310
|
+
// and "we never looked" have to stay distinguishable.
|
|
311
|
+
line.completion_context_fired !== undefined
|
|
312
|
+
? `完成注入监听:session.context 触发 ${line.completion_context_fired} 次(${line.completion_skipped ?? 0} 次因无待结算子代理而跳过)· 认出信封 ${line.completion_envelopes ?? 0} 个 → 结算 ${line.completion_settled ?? 0} 个` +
|
|
313
|
+
(!Number(line.completion_context_fired)
|
|
314
|
+
? "(这条缝一次都没响:宿主没把请求历史经过插件,别把 0 当成没有子代理)"
|
|
315
|
+
: "")
|
|
316
|
+
: "",
|
|
317
|
+
].filter(Boolean);
|
|
318
|
+
if (s === "v2-agents") {
|
|
319
|
+
out.push(`- \`${s}\` · 人格 **${api}** · 默认角色 ${line.agents_default ?? "?"} · 归一化完成${line.agents_missing ? ` · 配置里缺角色:${line.agents_missing}` : ""}${line.agents_unmapped ? ` · 无 v2 对应的动作:${line.agents_unmapped}` : ""}`);
|
|
320
|
+
continue;
|
|
321
|
+
}
|
|
322
|
+
const bits = [
|
|
323
|
+
`人格 **${api}**`,
|
|
324
|
+
line.tools_registered !== undefined ? `工具 ${line.tools_registered}/${line.tools_total}` : "",
|
|
325
|
+
line.tools_v1_only ? `v1 独有 \`${line.tools_v1_only}\`` : "",
|
|
326
|
+
line.request_hooks ? `请求层 ${line.request_hooks} 钩子` : "",
|
|
327
|
+
line.request_temperature !== undefined ? `温度 ${line.request_temperature}` : "",
|
|
328
|
+
line.subagent_background ? `子代理 ${line.subagent_background}` : "",
|
|
329
|
+
line.guard_hooks ? `门禁 ${line.guard_hooks} 钩子` : "",
|
|
330
|
+
line.guard_shell_coarse === undefined ? "" : `shell 粗粒度 ask ${line.guard_shell_coarse ? "开" : "关"}`,
|
|
331
|
+
line.agents_default ? `默认角色 ${line.agents_default}` : "",
|
|
332
|
+
line.guard_seen !== undefined ? `门禁看到 ${line.guard_seen} 次评估(${line.guard_actions || "无动作"})` : "",
|
|
333
|
+
line.guard_shell_matched !== undefined ? `其中 shell 命中分类器 ${line.guard_shell_matched} 次` : "",
|
|
334
|
+
line.subagent_forced !== undefined ? `子代理强制后台 ${line.subagent_forced}/${line.subagent_seen}` : "",
|
|
335
|
+
line.tools_removed ? `本轮从请求里删掉:${line.tools_removed}` : "",
|
|
336
|
+
line.note_pushed === undefined ? "" : `黑板注记 ${line.note_pushed ? "已送达" : "未触发"}`,
|
|
337
|
+
// #22: the isolation counts are the proof that "we only touch Team" is a
|
|
338
|
+
// measured property, not a claim. `未判定` is never folded into 我们 — a
|
|
339
|
+
// host that stopped shipping `agent` on its events must show up as a number.
|
|
340
|
+
line.scope_ours !== undefined
|
|
341
|
+
? `作用域:我们 ${line.scope_ours} · 他人 ${line.scope_foreign} · 未判定 ${line.scope_unknown}`
|
|
342
|
+
: "",
|
|
343
|
+
line.guard_foreign_skipped ? `门禁为非 Team 会话让路 ${line.guard_foreign_skipped} 次` : "",
|
|
344
|
+
line.browser_gate ? `原生 browser_* 门禁:${line.browser_gate}` : "",
|
|
345
|
+
// The honest half of the delivery question: what we SENT (tools_codemode) and
|
|
346
|
+
// what the assembled request actually CARRIED (tools_in_request). On 2.0.16 the
|
|
347
|
+
// two disagree, and printing only the first would let a boot line claim a
|
|
348
|
+
// delivery mode the host never gave.
|
|
349
|
+
line.tools_codemode ? `工具交付:发出=${line.tools_codemode} · 请求内实际可见=见下方 shutdown 行` : "",
|
|
350
|
+
// The shutdown line is the only one that can carry the observation, since the
|
|
351
|
+
// first request has not happened at boot. Both halves print, so a sent flag can
|
|
352
|
+
// never be read as an outcome again.
|
|
353
|
+
line.tools_in_request ? `工具交付:请求内实际可见=${line.tools_in_request}(direct 是否被宿主采纳只看这一项)` : "",
|
|
354
|
+
line.browser_gate_note ? ` ${line.browser_gate_note}` : "",
|
|
355
|
+
line.native_capped !== undefined ? `快照按寻址预算截断 ${line.native_capped} 次(不是卸载:ref 留在上下文里)` : "",
|
|
356
|
+
line.native_report_capped !== undefined ? `报告型输出保留表格截断散文 ${line.native_report_capped} 次(表格整份留下,句柄装全文)` : "",
|
|
357
|
+
// The collect side's own coverage. `seen > 0` with `registered = 0` is the tm_join
|
|
358
|
+
// gap STILL OPEN, and it must not be readable as "no background child ran this
|
|
359
|
+
// process" — that is the exact silence this feature exists to remove.
|
|
360
|
+
line.host_subagent_seen !== undefined
|
|
361
|
+
? `宿主 subagent 确认 ${line.host_subagent_seen} 次 → tm_join 登记 ${line.host_children_registered ?? 0} 个` +
|
|
362
|
+
// The run id is part of the sentence, not decoration: one CLI invocation boots
|
|
363
|
+
// more than one server process, each with its own counters, and a 0 from the
|
|
364
|
+
// sibling reads as "nothing was dispatched" unless the row says whose it is.
|
|
365
|
+
`(run ${String(line.run_id ?? "?").replace(/^r-/, "").slice(0, 15)})` +
|
|
366
|
+
(Number(line.host_children_unpaired) > 0 ? `(${line.host_children_unpaired} 个没配到派发行)` : "") +
|
|
367
|
+
(Number(line.host_children_settled_at_once) > 0 ? `;${line.host_children_settled_at_once} 次是同步子代理(结果本身就是正文,无需登记)` : "") +
|
|
368
|
+
(Number(line.host_subagent_seen) > 0 && !Number(line.host_children_registered)
|
|
369
|
+
? " —— 看到了却一个都没登记:认领没生效,不要读成「这一轮没有后台子代理」"
|
|
370
|
+
: "")
|
|
371
|
+
: "",
|
|
372
|
+
// Did the session-read seam answer? `sessionID` is the shape the host's own code
|
|
373
|
+
// uses; `(none)` after a real lookup attempt means the bridge is wrong again, not
|
|
374
|
+
// that the host lacks the method.
|
|
375
|
+
line.session_get_attempts !== undefined
|
|
376
|
+
? `会话读取缝:查 ${line.session_get_attempts} 次 → 成功 ${line.session_get_resolved} 次(生效形状 ${line.session_get_shape ?? "(none)"})` +
|
|
377
|
+
(Number(line.session_context_ok) > 0 ? ` · context 返回 ${line.session_context_ok} 次,键=${line.session_context_keys}` : " · context 未成功") +
|
|
378
|
+
(line.session_get_error ? ` · 最后一次错误:${String(line.session_get_error).slice(0, 90)}` : "")
|
|
379
|
+
: "",
|
|
380
|
+
].filter(Boolean);
|
|
381
|
+
out.push(`- \`${s}\` · ${bits.join(" · ")}`);
|
|
382
|
+
if (line.scope_unknown !== undefined && Number(line.scope_unknown) > 0) {
|
|
383
|
+
out.push(` - 未判定 ${line.scope_unknown} 次:宿主事件里没带 agent。这些调用我们一律没碰(隔离优先于覆盖率),` +
|
|
384
|
+
`所以它们也没被 JIT 治理——不是"治理过了",是"没资格治理"。`);
|
|
385
|
+
}
|
|
386
|
+
if (line.agents_missing)
|
|
387
|
+
out.push(` - 配置里缺角色:${line.agents_missing}`);
|
|
388
|
+
if (line.tools_missing)
|
|
389
|
+
out.push(` - 未出现在宿主表面:${line.tools_missing}`);
|
|
390
|
+
// The probe is the only place the host's own surface is recorded rather than
|
|
391
|
+
// described, so it prints separately: a 60-name tool list would bury the
|
|
392
|
+
// twelve lines above it that say what WE did.
|
|
393
|
+
const probe = [
|
|
394
|
+
line.probe_tool_count !== undefined ? `宿主工具面 ${line.probe_tool_count} 个(含 browser ${line.probe_browser_tools ? String(line.probe_browser_tools).split(" ").filter(Boolean).length : 0} 个)` : "",
|
|
395
|
+
line.probe_agents ? `观测到角色 ${line.probe_agents}` : "",
|
|
396
|
+
line.probe_executed ? `execute.before 见到:${line.probe_executed}` : "",
|
|
397
|
+
line.probe_executed_after ? `execute.after 见到:${line.probe_executed_after}` : "",
|
|
398
|
+
line.probe_evaluations !== undefined ? `permission.evaluate ${line.probe_evaluations} 次(动作:${line.probe_actions || "无"})` : "",
|
|
399
|
+
line.probe_url_resources !== undefined ? `其中资源里带 URL 的 ${line.probe_url_resources} 次` : "",
|
|
400
|
+
line.probe_ctx_domains ? `ctx 给了:${line.probe_ctx_domains}` : "",
|
|
401
|
+
line.probe_messages !== undefined ? `请求里消息数 ${line.probe_messages} · 注入的 <task> 信封 ${line.probe_task_envelopes} 个(最长 ${line.probe_max_envelope_chars} 字符)` : "",
|
|
402
|
+
line.probe_hooks_missing ? `挂不上的钩子:${line.probe_hooks_missing}` : "",
|
|
403
|
+
].filter(Boolean);
|
|
404
|
+
const allBits = [...offBits, ...probe];
|
|
405
|
+
if (allBits.length)
|
|
406
|
+
out.push(` - 原生面与探针 · ${allBits.join(" · ")}`);
|
|
407
|
+
if (line.probe_browser_tools && line.probe_browser_tools !== "")
|
|
408
|
+
out.push(` - 原生浏览器工具名:${String(line.probe_browser_tools).split(" ").filter(Boolean).map((n) => `\`${n}\``).join(" ")}`);
|
|
409
|
+
if (line.note)
|
|
410
|
+
out.push(` - ${line.note}`);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
259
413
|
const p = stats.ptc;
|
|
260
414
|
const g = stats.governance;
|
|
261
415
|
out.push("", "### 一次程序 N 次调用(tm_ptc_run)与治理面", "", "| 指标 | 值 |", "|---|---|", `| PTC 程序 / 内部调用 / 重试 / 错误 | ${p.runs} / ${p.calls} / ${p.retries} / ${p.errors}(合计 ${p.sumMs ? secs(p.sumMs) : "—"}) |`, `| 被拦子资源请求(浏览器) | ${g.blockedSubresources}${g.blockedHosts.length ? ` · 域名:${g.blockedHosts.join(", ")}` : ""} |`, `| tm_pty 治理面拒绝 | ${g.ptyRefused} |`, `| web URL 缓存命中(省下的抓取) | ${g.webCacheHits} |`, `| evaluate_script 结果脱敏次数 | ${g.evalMasks} |`, `| 宿主后台 task 注入(经 chat.message 实测) | ${g.taskEnvelopes ? `见到 ${g.taskEnvelopes} 次 · ${g.taskOffloads ? `其中 ${g.taskOffloads} 次超限,挡在上下文外约 ${g.taskOffloadTokens.toLocaleString("en-US")} token` : "全部未超阈值,按设计原样放行(通道是活的)"}` : "0 次 —— 分不清是「没派过后台任务」还是「宿主的注入不再经过 chat.message」(后者才是失效);派一个后台任务再看这行就能分开"} |`, `| bash 超时夹顶 | ${g.clampedTimeouts} 次 · 省 ${g.clampSavedMs ? secs(g.clampSavedMs) : "—"} |`, `| 内置工具参数纠偏(模型把布尔写成字符串) | ${g.argsCoerced || "—"}${g.argsCoerced ? " 次 · 宿主的 schema 会直接拒绝,不纠偏就是白挂一次" : ""} |`, `| 卸载降级(存储写失败→截断) | ${g.offloadDegraded} |`);
|
|
@@ -398,6 +552,12 @@ export function buildStatsTool(deps) {
|
|
|
398
552
|
}
|
|
399
553
|
lines += "\n" + renderRecent(recentCalls(events, recentLimit, rows, deps.store.stepsRoot())).join("\n");
|
|
400
554
|
}
|
|
555
|
+
// Measured on this host: the chat bubble renders GFM tables, but a code fence
|
|
556
|
+
// shows literally and a plugin tool's card is not expandable. So the table is
|
|
557
|
+
// only useful to the user once the agent relays it into its reply UNFENCED.
|
|
558
|
+
// Saying nothing here is how "the renderer is broken" gets blamed on the tool.
|
|
559
|
+
lines += `\n(要把这张表给用户看:写进回复正文,别包进 \`\`\` 围栏——围栏里的表格必然显示原文;`
|
|
560
|
+
+ `工具卡片本身不可展开,Markdown 是否渲染我们没测过,所以正文才是你该控制的那一块。)`;
|
|
401
561
|
// Deliberately NOT offloaded: the point of this tool is the table the
|
|
402
562
|
// user (or the lead) reads whole; it is bounded by construction (one
|
|
403
563
|
// row per tool, per degraded seam, per capability).
|
package/dist/tm/stats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/tm/stats.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/tm/stats.ts"],"names":[],"mappings":"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"}
|
package/dist/tm/webfetch.d.ts
CHANGED
|
@@ -57,6 +57,7 @@ export declare function hostAllowed(hostname: string, allowlist: readonly string
|
|
|
57
57
|
export type UrlVerdict = {
|
|
58
58
|
ok: true;
|
|
59
59
|
url: URL;
|
|
60
|
+
via?: "explicit-host" | "private-allowed";
|
|
60
61
|
} | {
|
|
61
62
|
ok: false;
|
|
62
63
|
message: string;
|
|
@@ -66,6 +67,9 @@ export type UrlVerdict = {
|
|
|
66
67
|
askable?: boolean;
|
|
67
68
|
url?: URL;
|
|
68
69
|
};
|
|
70
|
+
export type PrivateSpacePolicy = "ask" | "allow" | "deny";
|
|
71
|
+
export declare function setPrivateSpacePolicy(raw: unknown): PrivateSpacePolicy;
|
|
72
|
+
export declare function privateSpacePolicy(): PrivateSpacePolicy;
|
|
69
73
|
/**
|
|
70
74
|
* Validate a fetch target: absolute http(s) URL, host on the allowlist
|
|
71
75
|
* ("*" opens every host), and never an env-file spelling (R6 red line on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webfetch.d.ts","sourceRoot":"","sources":["../../src/tm/webfetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAqF,KAAK,OAAO,EAAE,MAAM,eAAe,CAAA;AAC/H,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAqC,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE9E;;;;;6EAK6E;AAC7E,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAgD,CAAA;AAE/F,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAK1E;AAID,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAW1C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,wGACwE,CAAA;AAQvG,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"webfetch.d.ts","sourceRoot":"","sources":["../../src/tm/webfetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAqF,KAAK,OAAO,EAAE,MAAM,eAAe,CAAA;AAC/H,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAqC,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE9E;;;;;6EAK6E;AAC7E,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAgD,CAAA;AAE/F,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAK1E;AAID,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAW1C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,wGACwE,CAAA;AAQvG,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAoBnF;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,GAAG,CAAC;IAAC,GAAG,CAAC,EAAE,eAAe,GAAG,iBAAiB,CAAA;CAAE,GACjE;IACE,EAAE,EAAE,KAAK,CAAA;IACT,OAAO,EAAE,MAAM,CAAA;IACf;;0BAEsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,GAAG,CAAA;CACV,CAAA;AAEL,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;AAkBzD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CAItE;AAKD,wBAAgB,kBAAkB,IAAI,kBAAkB,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CA4ElF;AAID;4DAC4D;AAC5D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmB/C;AAQD;4EAC4E;AAC5E,eAAO,MAAM,cAAc,QAC4F,CAAA;AAWvH;;;;;;6DAM6D;AAC7D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoBlE;AAgBD;;;;6EAI6E;AAC7E,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAAkB,CAAA;AAE5E,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAM7C;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX;0EACsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;gEAE4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AA4BD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,SAAK,EACR,SAAS,GAAE,SAAS,MAAM,EAAyB,GAClD,SAAS,EAAE,CAwDb;AAED;;2DAE2D;AAC3D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,CAM7D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,CASzF;AAID,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB;iFAC6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IACjF,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE;QAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IAC7C,IAAI,CAAC,EAAE;QAAE,SAAS,IAAI,2BAA2B,CAAC,UAAU,CAAC,CAAA;KAAE,GAAG,IAAI,CAAA;IACtE,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;IACxC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAC7B,CAAC,CAAA;AAgCF;;;sCAGsC;AACtC,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CASnD;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,IAAI,GAAE;IACJ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;2CAEuC;IACvC,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;mDAC+C;IAC/C,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B;;oDAEgD;IAChD,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB;;;;;wCAKoC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;kEAK8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAA;CACX,GACL,OAAO,CAAC,cAAc,CAAC,CAmGzB;AAED;8DAC8D;AAC9D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAKtG;AAYD;;0DAE0D;AAC1D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,SAAS,EAAE,WAAW,CAAA;IACtB,GAAG,EAAE,QAAQ,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;sEACkE;IAClE,KAAK,CAAC,EAAE,QAAQ,CAAA;CACjB,GAAG;IACF,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CACjF,CAoJA"}
|
package/dist/tm/webfetch.js
CHANGED
|
@@ -72,6 +72,20 @@ const WEBFETCH_MAX_REDIRECTS = 5;
|
|
|
72
72
|
// ---------- allowlist matching ----------
|
|
73
73
|
/** True when `hostname` is the domain itself or a subdomain of it. */
|
|
74
74
|
export function hostAllowed(hostname, allowlist) {
|
|
75
|
+
// "*" is an operator setting and it means what it says for EVERY consumer.
|
|
76
|
+
// This predicate used to answer false for it, because the wildcard branch lived
|
|
77
|
+
// here at the call site of checkWebUrl only — so tm_search, which asks this
|
|
78
|
+
// function directly, skipped all four legs of its own fan-out on the v2
|
|
79
|
+
// personality (v2 has no dialog, so it defaults the list to "*"). A search
|
|
80
|
+
// front that reports "没有返回可提取的结果" while its engines were never even
|
|
81
|
+
// asked is the overstated-claim shape this product exists to refuse.
|
|
82
|
+
//
|
|
83
|
+
// What this predicate does NOT decide: the address question. The egress red
|
|
84
|
+
// line is applied by checkWebUrl / classifyHost BEFORE any fetch, per redirect
|
|
85
|
+
// hop, so a wildcard can never open 169.254.169.254 — do not read it as a
|
|
86
|
+
// security check from here.
|
|
87
|
+
if (allowlist.some((raw) => String(raw ?? "").trim() === "*"))
|
|
88
|
+
return true;
|
|
75
89
|
const host = hostname.toLowerCase().replace(/\.$/, "");
|
|
76
90
|
return allowlist.some((raw) => {
|
|
77
91
|
const dom = String(raw ?? "").trim().toLowerCase();
|
|
@@ -80,6 +94,32 @@ export function hostAllowed(hostname, allowlist) {
|
|
|
80
94
|
return host === dom || host.endsWith("." + dom);
|
|
81
95
|
});
|
|
82
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* What happens to a PRIVATE-space target (loopback, RFC1918, ULA, CGNAT,
|
|
99
|
+
* `.localhost`). This is NOT the domain allowlist — it is the one place where an
|
|
100
|
+
* address class, not a hostname, decides — and it stays separate on purpose:
|
|
101
|
+
* the FORBIDDEN ranges (cloud metadata, link-local, reserved, multicast) have no
|
|
102
|
+
* policy at all and are refused under every setting.
|
|
103
|
+
*
|
|
104
|
+
* "ask" is v1's answer, because v1 can raise the host's dialog. On OpenCode 2.x a
|
|
105
|
+
* plugin cannot raise anything (measured: no `ask` on the tool ctx), so "ask" there
|
|
106
|
+
* is a gate with no exit — which is why the v2 personality sets "allow" unless the
|
|
107
|
+
* operator says otherwise. Private space on a laptop is the user's own dev server;
|
|
108
|
+
* the credential-leak class this policy used to conflate with it is handled by the
|
|
109
|
+
* forbidden branch, which comes first and cannot be configured.
|
|
110
|
+
*/
|
|
111
|
+
let privateSpace = "ask";
|
|
112
|
+
export function setPrivateSpacePolicy(raw) {
|
|
113
|
+
const v = String(raw ?? "").trim().toLowerCase();
|
|
114
|
+
privateSpace = v === "allow" || v === "deny" ? v : "ask";
|
|
115
|
+
return privateSpace;
|
|
116
|
+
}
|
|
117
|
+
/** Read at boot from TM_PRIVATE_SPACE so a hand-edited env file works without the
|
|
118
|
+
* personality calling the setter (the setter wins when both are present). */
|
|
119
|
+
setPrivateSpacePolicy(typeof process !== "undefined" ? process.env?.TM_PRIVATE_SPACE : "");
|
|
120
|
+
export function privateSpacePolicy() {
|
|
121
|
+
return privateSpace;
|
|
122
|
+
}
|
|
83
123
|
/**
|
|
84
124
|
* Validate a fetch target: absolute http(s) URL, host on the allowlist
|
|
85
125
|
* ("*" opens every host), and never an env-file spelling (R6 red line on
|
|
@@ -116,15 +156,42 @@ export function checkWebUrl(raw, allowlist) {
|
|
|
116
156
|
};
|
|
117
157
|
}
|
|
118
158
|
if (egress.level === "private") {
|
|
159
|
+
// A gate needs an exit the operator can actually walk. `"*"` deliberately
|
|
160
|
+
// cannot answer for private space (a wildcard opened for one public host also
|
|
161
|
+
// opens the office intranet), but an allowlist that NAMES this host does —
|
|
162
|
+
// that is a decision about `127.0.0.1:8787`, not about every address. This
|
|
163
|
+
// matters most on OpenCode 2.x, where a plugin cannot raise the dialog at all:
|
|
164
|
+
// without it, UI verification of a local dev server had no path through our
|
|
165
|
+
// governed tools at any setting, and the refusal still told the agent to go
|
|
166
|
+
// ask somebody who would never appear.
|
|
167
|
+
const named = allowlist.some((raw) => {
|
|
168
|
+
const dom = String(raw ?? "").trim().toLowerCase().replace(/\.$/, "");
|
|
169
|
+
return !!dom && dom !== "*" && (url.hostname.toLowerCase().replace(/\.$/, "") === dom || url.hostname.toLowerCase().endsWith("." + dom));
|
|
170
|
+
});
|
|
171
|
+
if (named)
|
|
172
|
+
return { ok: true, url, via: "explicit-host" };
|
|
173
|
+
if (privateSpace === "allow")
|
|
174
|
+
return { ok: true, url, via: "private-allowed" };
|
|
175
|
+
if (privateSpace === "deny") {
|
|
176
|
+
return {
|
|
177
|
+
ok: false,
|
|
178
|
+
message: `目标 ${url.hostname} 属于私网 / 回环地址段(${egress.via}),本站点策略不放行私网,且这里没有确认窗可弹(OpenCode 2.x 的插件没有弹窗权限)——` +
|
|
179
|
+
`所以这不是"等人批准",是到此为止。要访问自己的本地服务,两条出路(都要操作者自己改,然后重启宿主):` +
|
|
180
|
+
`TM_PRIVATE_SPACE=allow 放开整段私网,或把这一台主机名写进 TM_WEBFETCH_ALLOWED_DOMAINS(如 127.0.0.1,只放开它自己)。` +
|
|
181
|
+
`公网内容不受此限制。`,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
119
184
|
return {
|
|
120
185
|
ok: false,
|
|
121
186
|
askable: true,
|
|
122
187
|
url,
|
|
123
188
|
message: `目标 ${url.hostname} 属于私网 / 回环地址段(${egress.via}),域名白名单——包括 "*"——不能替你放行,只能逐次经用户批准。` +
|
|
124
|
-
`正在请求官方确认窗;批准仅对本次有效。本地开发服务器的 UI 验证更该用 tm_browser
|
|
189
|
+
`正在请求官方确认窗;批准仅对本次有效。本地开发服务器的 UI 验证更该用 tm_browser(那才是为它设计的通道)。` +
|
|
190
|
+
`如果这个会话的宿主给不出确认窗(OpenCode 2.x 的插件没有弹窗权限),出路只有操作者把这一台主机名写进 ` +
|
|
191
|
+
`TM_WEBFETCH_ALLOWED_DOMAINS(显式主机名,如 127.0.0.1 或 localhost;"*" 不算)后重启宿主。`,
|
|
125
192
|
};
|
|
126
193
|
}
|
|
127
|
-
if (!
|
|
194
|
+
if (!hostAllowed(url.hostname, allowlist)) {
|
|
128
195
|
return {
|
|
129
196
|
ok: false,
|
|
130
197
|
askable: true,
|
|
@@ -521,12 +588,12 @@ export function extractWebResponse(raw, contentType) {
|
|
|
521
588
|
return { text: raw, isHtml: false };
|
|
522
589
|
}
|
|
523
590
|
// ---------- tool definition ----------
|
|
524
|
-
const WEBFETCH_DESCRIPTION = `Fetch a web page through the governed pipeline (domain allowlist + threshold offload) — use it for a KNOWN URL only. For open-ended lookups use tm_search FIRST (multi-engine, extracted hit lists); never hand-build search URLs here.
|
|
525
|
-
|
|
526
|
-
- ANTI-PATTERN: do NOT hand-build search-engine URLs here — that is tm_search's job (multi-engine, extracted hit lists). Use THIS tool for a page you already know: a direct article/wiki term, a registry JSON endpoint, a raw file.
|
|
527
|
-
- Seeded hosts (CN-reachable, no API keys): moegirl.org.cn (parent — all subdomains: mobile. term https://mobile.moegirl.org.cn/TERM, mzh. main site) · search.bilibili.com · cn.bing.com (search: https://cn.bing.com/search?q=QUERY; &ensearch=1 for international results) · baidu.com (parent: www. search /s?wd=QUERY, baike. encyclopedia entries) · www.sogou.com (https://www.sogou.com/web?query=QUERY) · www.so.com (https://www.so.com/s?q=QUERY) · registry.npmjs.org (package JSON: https://registry.npmjs.org/<pkg>/latest, search: https://registry.npmjs.org/-/v1/search?text=QUERY) · api.github.com (repo search: https://api.github.com/search/repositories?q=QUERY) · api.stackexchange.com (question search: https://api.stackexchange.com/2.3/search/advanced?order=desc&sort=relevance&q=QUERY&site=stackoverflow&pagesize=10) · hn.algolia.com (HN story search: https://hn.algolia.com/api/v1/search?query=QUERY&tags=story) · raw.githubusercontent.com + gist.githubusercontent.com + github.com (docs/code/issues) · ghproxy.net (mainland mirror for github raw). URL-encode the query (CJK terms too). Search-engine result pages are auto-extracted to a title+URL hit list. Expand colloquial/abbreviated terms to canonical forms and fetch BOTH spellings.
|
|
528
|
-
- Governance: only http(s), hosts must be allowlisted (extend via TM_WEBFETCH_ALLOWED_DOMAINS, "*" opens all), redirects re-checked per hop (a refusal names the whole hop chain), HTML stripped to text — some documentation hosts (learn.microsoft.com measured 5.3x smaller) are fetched as Markdown when they honour accept: text/markdown, and the reply says so; output above TM_OFFLOAD_THRESHOLD tokens is offloaded to a handle — page with tm_fetch (try mode:"structure" first).
|
|
529
|
-
- Governance: out-of-allowlist hosts route through the OFFICIAL confirmation dialog (approve to proceed once; the 1-min unanswered auto-reject applies); env-file URLs and non-http(s) schemes are hard-rejected with no dialog.
|
|
591
|
+
const WEBFETCH_DESCRIPTION = `Fetch a web page through the governed pipeline (domain allowlist + threshold offload) — use it for a KNOWN URL only. For open-ended lookups use tm_search FIRST (multi-engine, extracted hit lists); never hand-build search URLs here.
|
|
592
|
+
|
|
593
|
+
- ANTI-PATTERN: do NOT hand-build search-engine URLs here — that is tm_search's job (multi-engine, extracted hit lists). Use THIS tool for a page you already know: a direct article/wiki term, a registry JSON endpoint, a raw file.
|
|
594
|
+
- Seeded hosts (CN-reachable, no API keys): moegirl.org.cn (parent — all subdomains: mobile. term https://mobile.moegirl.org.cn/TERM, mzh. main site) · search.bilibili.com · cn.bing.com (search: https://cn.bing.com/search?q=QUERY; &ensearch=1 for international results) · baidu.com (parent: www. search /s?wd=QUERY, baike. encyclopedia entries) · www.sogou.com (https://www.sogou.com/web?query=QUERY) · www.so.com (https://www.so.com/s?q=QUERY) · registry.npmjs.org (package JSON: https://registry.npmjs.org/<pkg>/latest, search: https://registry.npmjs.org/-/v1/search?text=QUERY) · api.github.com (repo search: https://api.github.com/search/repositories?q=QUERY) · api.stackexchange.com (question search: https://api.stackexchange.com/2.3/search/advanced?order=desc&sort=relevance&q=QUERY&site=stackoverflow&pagesize=10) · hn.algolia.com (HN story search: https://hn.algolia.com/api/v1/search?query=QUERY&tags=story) · raw.githubusercontent.com + gist.githubusercontent.com + github.com (docs/code/issues) · ghproxy.net (mainland mirror for github raw). URL-encode the query (CJK terms too). Search-engine result pages are auto-extracted to a title+URL hit list. Expand colloquial/abbreviated terms to canonical forms and fetch BOTH spellings.
|
|
595
|
+
- Governance: only http(s), hosts must be allowlisted (extend via TM_WEBFETCH_ALLOWED_DOMAINS, "*" opens all), redirects re-checked per hop (a refusal names the whole hop chain), HTML stripped to text — some documentation hosts (learn.microsoft.com measured 5.3x smaller) are fetched as Markdown when they honour accept: text/markdown, and the reply says so; output above TM_OFFLOAD_THRESHOLD tokens is offloaded to a handle — page with tm_fetch (try mode:"structure" first).
|
|
596
|
+
- Governance: out-of-allowlist hosts route through the OFFICIAL confirmation dialog (approve to proceed once; the 1-min unanswered auto-reject applies); env-file URLs and non-http(s) schemes are hard-rejected with no dialog.
|
|
530
597
|
- Freshness: a repeated URL is served from a local TTL cache (TM_WEB_CACHE_TTL_SEC, default 300 s) and the reply SAYS 缓存命中 with its age. Need the page as it is NOW? Pass { fresh: true } to bypass the cache and hit the network.`;
|
|
531
598
|
/** Build the tm_webfetch ToolDefinition over the SHARED main pipelines
|
|
532
599
|
* instance (same step counter as tm_read/tm_grep/tm_bash — refs stay
|