@te-river/opencode-team-mode 1.5.14 → 1.6.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.
Files changed (101) hide show
  1. package/README.md +788 -674
  2. package/README.zh-CN.md +712 -618
  3. package/dist/agents.d.ts +5 -3
  4. package/dist/agents.d.ts.map +1 -1
  5. package/dist/agents.js +19 -8
  6. package/dist/agents.js.map +1 -1
  7. package/dist/capabilities.d.ts +1 -1
  8. package/dist/capabilities.js +2 -2
  9. package/dist/capabilities.js.map +1 -1
  10. package/dist/host-hooks.d.ts +13 -2
  11. package/dist/host-hooks.d.ts.map +1 -1
  12. package/dist/host-hooks.js +19 -5
  13. package/dist/host-hooks.js.map +1 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +54 -14
  16. package/dist/index.js.map +1 -1
  17. package/dist/prompts/lead.d.ts +1 -1
  18. package/dist/prompts/lead.d.ts.map +1 -1
  19. package/dist/prompts/lead.js +135 -17
  20. package/dist/prompts/lead.js.map +1 -1
  21. package/dist/prompts/shared.d.ts +2 -2
  22. package/dist/prompts/shared.d.ts.map +1 -1
  23. package/dist/prompts/shared.js +94 -16
  24. package/dist/prompts/shared.js.map +1 -1
  25. package/dist/prompts/specialists.d.ts +2 -2
  26. package/dist/prompts/specialists.d.ts.map +1 -1
  27. package/dist/prompts/specialists.js +43 -10
  28. package/dist/prompts/specialists.js.map +1 -1
  29. package/dist/task-offload.d.ts +67 -0
  30. package/dist/task-offload.d.ts.map +1 -0
  31. package/dist/task-offload.js +123 -0
  32. package/dist/task-offload.js.map +1 -0
  33. package/dist/tm/args-schema.d.ts +4 -0
  34. package/dist/tm/args-schema.d.ts.map +1 -1
  35. package/dist/tm/args-schema.js +44 -3
  36. package/dist/tm/args-schema.js.map +1 -1
  37. package/dist/tm/board.d.ts +113 -0
  38. package/dist/tm/board.d.ts.map +1 -0
  39. package/dist/tm/board.js +275 -0
  40. package/dist/tm/board.js.map +1 -0
  41. package/dist/tm/browser.d.ts +325 -6
  42. package/dist/tm/browser.d.ts.map +1 -1
  43. package/dist/tm/browser.js +1329 -135
  44. package/dist/tm/browser.js.map +1 -1
  45. package/dist/tm/config.d.ts +36 -1
  46. package/dist/tm/config.d.ts.map +1 -1
  47. package/dist/tm/config.js +29 -1
  48. package/dist/tm/config.js.map +1 -1
  49. package/dist/tm/dispatch.d.ts +118 -31
  50. package/dist/tm/dispatch.d.ts.map +1 -1
  51. package/dist/tm/dispatch.js +385 -131
  52. package/dist/tm/dispatch.js.map +1 -1
  53. package/dist/tm/dupe-guard.js +1 -1
  54. package/dist/tm/dupe-guard.js.map +1 -1
  55. package/dist/tm/egress.d.ts +44 -0
  56. package/dist/tm/egress.d.ts.map +1 -0
  57. package/dist/tm/egress.js +191 -0
  58. package/dist/tm/egress.js.map +1 -0
  59. package/dist/tm/guard.js +1 -1
  60. package/dist/tm/guard.js.map +1 -1
  61. package/dist/tm/index.d.ts +28 -2
  62. package/dist/tm/index.d.ts.map +1 -1
  63. package/dist/tm/index.js +198 -10
  64. package/dist/tm/index.js.map +1 -1
  65. package/dist/tm/perm-ask.d.ts +47 -5
  66. package/dist/tm/perm-ask.d.ts.map +1 -1
  67. package/dist/tm/perm-ask.js +98 -7
  68. package/dist/tm/perm-ask.js.map +1 -1
  69. package/dist/tm/pipelines.d.ts.map +1 -1
  70. package/dist/tm/pipelines.js +24 -2
  71. package/dist/tm/pipelines.js.map +1 -1
  72. package/dist/tm/ptc/tool.d.ts.map +1 -1
  73. package/dist/tm/ptc/tool.js +2 -4
  74. package/dist/tm/ptc/tool.js.map +1 -1
  75. package/dist/tm/pty.d.ts.map +1 -1
  76. package/dist/tm/pty.js +6 -3
  77. package/dist/tm/pty.js.map +1 -1
  78. package/dist/tm/search.d.ts +5 -0
  79. package/dist/tm/search.d.ts.map +1 -1
  80. package/dist/tm/search.js +19 -17
  81. package/dist/tm/search.js.map +1 -1
  82. package/dist/tm/stats.d.ts +46 -0
  83. package/dist/tm/stats.d.ts.map +1 -1
  84. package/dist/tm/stats.js +124 -7
  85. package/dist/tm/stats.js.map +1 -1
  86. package/dist/tm/store.d.ts +3 -0
  87. package/dist/tm/store.d.ts.map +1 -1
  88. package/dist/tm/store.js +6 -1
  89. package/dist/tm/store.js.map +1 -1
  90. package/dist/tm/webfetch.d.ts +52 -0
  91. package/dist/tm/webfetch.d.ts.map +1 -1
  92. package/dist/tm/webfetch.js +128 -22
  93. package/dist/tm/webfetch.js.map +1 -1
  94. package/dist/tool-coerce.d.ts +24 -0
  95. package/dist/tool-coerce.d.ts.map +1 -0
  96. package/dist/tool-coerce.js +63 -0
  97. package/dist/tool-coerce.js.map +1 -0
  98. package/dist/types.d.ts +7 -1
  99. package/dist/types.d.ts.map +1 -1
  100. package/docs/installation.md +69 -2
  101. package/package.json +61 -59
@@ -23,7 +23,7 @@
23
23
  * HTML stripped to text before governance.
24
24
  */
25
25
  import { isEnvFilePath } from "../envprotect.js";
26
- import { askFnOf, askUserForTarget } from "./perm-ask.js";
26
+ import { askFnOf, askGrantNote, askRefusalNote, askUserForTarget, askUserForTargetDetailed } from "./perm-ask.js";
27
27
  import { shorten, DEFAULT_WEBFETCH_DOMAINS } from "./config.js";
28
28
  /** T4 (tm_search quality upgrade): the two new no-key engine hosts.
29
29
  * DEFAULT_WEBFETCH_DOMAINS itself lives in config.ts (owned by the P0
@@ -37,6 +37,7 @@ export function seedWebfetchDomains(allowlist) {
37
37
  allowlist.every((d, i) => d === DEFAULT_WEBFETCH_DOMAINS[i]);
38
38
  return isDefaultSeed ? [...allowlist, ...T4_SEEDED_DOMAINS] : [...allowlist];
39
39
  }
40
+ import { classifyHost } from "./egress.js";
40
41
  import { detectContentType } from "./preview.js";
41
42
  import { tmError, toToolResult } from "./result.js";
42
43
  import { projectJsonFields } from "./pipelines.js";
@@ -47,6 +48,23 @@ import { projectJsonFields } from "./pipelines.js";
47
48
  * filters downstream still apply. */
48
49
  const WEBFETCH_UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36";
49
50
  const WEBFETCH_ACCEPT = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8";
51
+ /**
52
+ * Markdown-first, for the ONE path that reads a whole page: tm_webfetch.
53
+ * Measured on the user's own connection, 3 samples each (2026-09-24):
54
+ * `learn.microsoft.com` answers this header with `text/markdown` at **11 449 B
55
+ * where the browser-shaped request gets 60 778 B of HTML** — a 5.3× cut on a
56
+ * seeded documentation host, for free. Every other host tried (MDN,
57
+ * docs.python.org, cn.bing.com SERP, csdn, zhihu) returns the SAME document
58
+ * either way, so asking costs nothing where the hint is ignored; the csdn 521
59
+ * seen once also happened on the browser-shaped request, so it is not
60
+ * negotiation-related.
61
+ * The tail stays byte-identical to Chrome's (`image/avif`, `image/webp`) — the
62
+ * header is part of the fingerprint the UA disguise buys us, so only the
63
+ * preference is added, never the shape changed. tm_search's engine legs keep
64
+ * `WEBFETCH_ACCEPT` verbatim: the 2026-09-14 anti-bot benchmark calibrated
65
+ * exactly that string, and a SERP is not a document.
66
+ */
67
+ export const WEBFETCH_ACCEPT_MD = "text/markdown,text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8";
50
68
  const WEBFETCH_ACCEPT_LANGUAGE = "zh-CN,zh;q=0.9,en;q=0.8";
51
69
  const WEBFETCH_TIMEOUT_MS = 20_000;
52
70
  const WEBFETCH_MAX_BYTES = 2_000_000;
@@ -84,6 +102,28 @@ export function checkWebUrl(raw, allowlist) {
84
102
  if (url.protocol !== "https:" && url.protocol !== "http:") {
85
103
  return { ok: false, message: `仅允许 http(s) 抓取(收到 ${url.protocol})——file:// 等本地协议一律拒绝` };
86
104
  }
105
+ // The egress red line runs BEFORE the allowlist, because "*" is a documented
106
+ // operator setting and an allowlist that answers for `169.254.169.254` is a
107
+ // credential leak with a config file behind it. Private space is the softer
108
+ // half: a local dev API is a real target, so it asks — every time.
109
+ const egress = classifyHost(url.hostname);
110
+ if (egress.level === "forbidden") {
111
+ return {
112
+ ok: false,
113
+ message: `目标 ${url.hostname} 落在不可路由 / 元数据地址段(${egress.via})——R6 同级红线,不可批准。` +
114
+ `这类地址没有"看起来对不对"可供判断:云元数据端点会把临时凭据直接送进上下文、run store 和 trajectory。` +
115
+ `要本机服务请用 tm_browser(有头窗口由用户自己看着),要公网内容请给公开主机名。`,
116
+ };
117
+ }
118
+ if (egress.level === "private") {
119
+ return {
120
+ ok: false,
121
+ askable: true,
122
+ url,
123
+ message: `目标 ${url.hostname} 属于私网 / 回环地址段(${egress.via}),域名白名单——包括 "*"——不能替你放行,只能逐次经用户批准。` +
124
+ `正在请求官方确认窗;批准仅对本次有效。本地开发服务器的 UI 验证更该用 tm_browser(那才是为它设计的通道)。`,
125
+ };
126
+ }
87
127
  if (!allowlist.includes("*") && !hostAllowed(url.hostname, allowlist)) {
88
128
  return {
89
129
  ok: false,
@@ -293,8 +333,28 @@ export function extractSearchHits(html, max = 10, blacklist = hitDomainBlacklist
293
333
  /** Compact numbered rendering — what actually enters the context. Carries
294
334
  * the engine-provided snippet (one line) and the fusion source tag when
295
335
  * the caller supplied them; plain title+URL otherwise. */
336
+ /**
337
+ * Today, in the words the model reads — computed at render time, never baked
338
+ * into a constant.
339
+ *
340
+ * The desktop is a long-lived process (the README's whole "quit and restart"
341
+ * section exists because of it), so anything that captures a date at plugin
342
+ * startup goes stale precisely in the sessions that run for days — and a stale
343
+ * "current month" is what makes a model search `react latest version 2025` in
344
+ * 2026. ZCode solves this on its side with `get description()`, re-rendered per
345
+ * read; we cannot copy that surface, because this plugin has no evidence that
346
+ * the host re-reads a tool description after registration (capabilities.ts would
347
+ * grade that `unverified`, and acting on it would be a guess). The REPLY, on
348
+ * the other hand, is ours to build on every call — so the date lives there, on
349
+ * the one header every search route renders. ~20 tokens per lookup, once.
350
+ */
351
+ export function searchDateLine(now = new Date()) {
352
+ const p = (n) => String(n).padStart(2, "0");
353
+ return (`(检索于 ${now.getFullYear()}-${p(now.getMonth() + 1)}-${p(now.getDate())}:` +
354
+ `判断"最新/最近/今年"以这一天为准,不要用训练记忆里的年份)`);
355
+ }
296
356
  export function renderSearchHits(query, engine, hits) {
297
- const lines = [`[search] ${engine} × "${query}" → ${hits.length} 条结果:`];
357
+ const lines = [`[search] ${engine} × "${query}" → ${hits.length} 条结果 ${searchDateLine()}`];
298
358
  hits.forEach((h, i) => {
299
359
  lines.push(`${i + 1}. ${h.source ? `[${h.source}] ` : ""}${h.title}`);
300
360
  lines.push(` ${h.url}`);
@@ -330,6 +390,20 @@ async function readBodyCapped(res, maxBytes) {
330
390
  }
331
391
  return out + decoder.decode();
332
392
  }
393
+ /** A 429/503 that says WHEN, not just NO. Only the delta-seconds spelling
394
+ * becomes a sentence: an HTTP-date would be laundered into a countdown the
395
+ * agent has no way to honor (there is no sleep in this toolset), and a wrong
396
+ * number is worse than no number. */
397
+ export function retryAfterNote(raw) {
398
+ const v = String(raw ?? "").trim();
399
+ if (!/^\d{1,6}$/.test(v))
400
+ return "";
401
+ const s = Number(v);
402
+ if (!s)
403
+ return "";
404
+ return (` · Retry-After: ${s} 秒——这是"待会儿再来",不是"这页没了"。` +
405
+ `本轮先换别的来源(tm_search 其它引擎 / 直接源站),别对同一 URL 原地重试。`);
406
+ }
333
407
  /**
334
408
  * Fetch a URL with hard timeout, byte cap, and MANUAL redirects — every
335
409
  * hop is re-checked against the allowlist before it is requested.
@@ -342,9 +416,21 @@ export async function fetchWebText(url, allowlist, opts = {}) {
342
416
  }
343
417
  const timeoutMs = opts.timeoutMs ?? WEBFETCH_TIMEOUT_MS;
344
418
  const maxBytes = opts.maxBytes ?? WEBFETCH_MAX_BYTES;
419
+ const accept = (opts.accept && opts.accept.trim()) || WEBFETCH_ACCEPT;
345
420
  let current = url;
346
421
  const approvedHosts = opts.skipAskHosts ?? new Set();
422
+ // Every hop, in order. Without this an allowlisted shortener that bounces
423
+ // off-site produced a refusal naming ONLY the off-site host, which reads as
424
+ // "this site will not fetch" — and sent the agent back to retry the very
425
+ // entry URL it had just watched fail. The chain is the fact; the last host
426
+ // is only where it stopped.
427
+ const hopHosts = [];
428
+ const trail = () => {
429
+ const seq = hopHosts.filter((h, i) => i === 0 || h !== hopHosts[i - 1]);
430
+ return seq.length > 1 ? ` · 跳转链: ${seq.join(" → ")}(停在第 ${hopHosts.length} 跳)` : "";
431
+ };
347
432
  for (let hop = 0; hop <= WEBFETCH_MAX_REDIRECTS; hop++) {
433
+ hopHosts.push(current.hostname);
348
434
  // every hop re-checked — an allowlisted shortener cannot bounce off-site
349
435
  const verdict = checkWebUrl(current.toString(), allowlist);
350
436
  const staticAllow = verdict.ok;
@@ -352,25 +438,25 @@ export async function fetchWebText(url, allowlist, opts = {}) {
352
438
  // an ASKABLE miss (allowlist only) can be walked through the official
353
439
  // dialog; hard red lines (scheme / env-file / bad URL) never ask
354
440
  if (!verdict.askable || !verdict.url)
355
- throw new Error(verdict.message);
441
+ throw new Error(verdict.message + trail());
356
442
  const host = verdict.url.hostname;
357
443
  if (!approvedHosts.has(host)) {
358
444
  if (!opts.ask)
359
- throw new Error(verdict.message);
445
+ throw new Error(verdict.message + trail());
360
446
  const outcome = await askUserForTarget({ ask: opts.ask }, {
361
447
  permission: "tm_webfetch",
362
448
  patterns: [current.toString()],
363
449
  metadata: { source: "tm_webfetch redirect" },
364
450
  });
365
451
  if (outcome !== "approved")
366
- throw new Error(verdict.message);
452
+ throw new Error(verdict.message + " " + askRefusalNote(outcome) + trail());
367
453
  approvedHosts.add(host);
368
454
  }
369
455
  }
370
456
  // CACHE — reached only when the STATIC allowlist admitted this hop, so a
371
457
  // hit can neither resurrect a now-disallowed host nor skip consent the
372
458
  // current config asks for. A cache failure is a miss, never an error.
373
- if (staticAllow && opts.cache?.enabled()) {
459
+ if (staticAllow && !opts.noCacheRead && opts.cache?.enabled()) {
374
460
  const hit = opts.cache.get(current.toString());
375
461
  if (hit)
376
462
  return { text: hit.body, contentType: hit.contentType, finalUrl: current.toString(), cachedAt: hit.at };
@@ -383,14 +469,14 @@ export async function fetchWebText(url, allowlist, opts = {}) {
383
469
  signal: ctrl.signal,
384
470
  headers: {
385
471
  "user-agent": WEBFETCH_UA,
386
- accept: WEBFETCH_ACCEPT,
472
+ accept,
387
473
  "accept-language": WEBFETCH_ACCEPT_LANGUAGE,
388
474
  },
389
475
  }));
390
476
  if (REDIRECT_STATUSES.has(res.status)) {
391
477
  const loc = res.headers.get("location");
392
478
  if (!loc)
393
- throw new Error(`重定向 ${res.status} 缺少 Location 头`);
479
+ throw new Error(`重定向 ${res.status} 缺少 Location 头${trail()}`);
394
480
  current = new URL(loc, current);
395
481
  continue;
396
482
  }
@@ -406,10 +492,10 @@ export async function fetchWebText(url, allowlist, opts = {}) {
406
492
  : "";
407
493
  throw new Error(`HTTP ${res.status}${known}——伪装浏览器请求头后仍被拒,该站需要真实浏览器会话。` +
408
494
  `下一步:调用 tm_browser 打开此 URL(action:"open" → action:"read")` +
409
- `(${shorten(u, 120)});或换 tm_search 引擎 / 找直接源站。`);
495
+ `(${shorten(u, 120)});或换 tm_search 引擎 / 找直接源站。${trail()}`);
410
496
  }
411
497
  if (res.status < 200 || res.status >= 300) {
412
- throw new Error(`HTTP ${res.status}(最终 URL: ${shorten(current.toString(), 120)})`);
498
+ throw new Error(`HTTP ${res.status}(最终 URL: ${shorten(current.toString(), 120)})${retryAfterNote(res.headers.get("retry-after"))}${trail()}`);
413
499
  }
414
500
  const contentType = (res.headers.get("content-type") ?? "text/plain").toLowerCase();
415
501
  const raw = await readBodyCapped(res, maxBytes);
@@ -435,12 +521,13 @@ export function extractWebResponse(raw, contentType) {
435
521
  return { text: raw, isHtml: false };
436
522
  }
437
523
  // ---------- tool definition ----------
438
- 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.
439
-
440
- - 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.
441
- - 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.
442
- - Governance: only http(s), hosts must be allowlisted (extend via TM_WEBFETCH_ALLOWED_DOMAINS, "*" opens all), redirects re-checked per hop, HTML stripped to text; output above TM_OFFLOAD_THRESHOLD tokens is offloaded to a handle — page with tm_fetch (try mode:"structure" first).
443
- - 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.`;
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.
530
+ - 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.`;
444
531
  /** Build the tm_webfetch ToolDefinition over the SHARED main pipelines
445
532
  * instance (same step counter as tm_read/tm_grep/tm_bash — refs stay
446
533
  * unambiguous). `fetchImpl` is injectable for tests. */
@@ -460,6 +547,7 @@ export function buildTmWebfetchTool(deps) {
460
547
  try {
461
548
  const args = rawArgs ?? {};
462
549
  const requested = typeof args.url === "string" ? args.url.trim() : "";
550
+ let grantNote = "";
463
551
  const verdict = checkWebUrl(requested, allowlist);
464
552
  if (!verdict.ok) {
465
553
  // ASKABLE miss (allowlist only) → the OFFICIAL dialog decides, the
@@ -467,25 +555,37 @@ export function buildTmWebfetchTool(deps) {
467
555
  if (!verdict.askable || !verdict.url) {
468
556
  return toToolResult(tmError(tool, "permission", verdict.message));
469
557
  }
470
- const outcome = await askUserForTarget(ctx, {
558
+ const res = await askUserForTargetDetailed(ctx, {
471
559
  permission: tool,
472
560
  patterns: [verdict.url.toString()],
473
561
  metadata: { tool, url: shorten(requested, 200) },
474
562
  });
475
- if (outcome !== "approved") {
476
- return toToolResult(tmError(tool, "permission", verdict.message +
477
- (outcome === "rejected" ? "。用户未批准。" : "。宿主无法弹出确认窗口(旧版协议)。")));
563
+ if (res.outcome !== "approved") {
564
+ return toToolResult(tmError(tool, "permission", verdict.message + " " + askRefusalNote(res.outcome)));
478
565
  }
566
+ // Same reporting duty as tm_browser: the page came because a rule
567
+ // allowed it, and "an always the user clicked in another session"
568
+ // must not read as "this host is on the allowlist".
569
+ grantNote = askGrantNote(res);
479
570
  }
480
571
  const stepId = pipelines.nextStepId();
481
572
  pipelines.store.appendTrajectory({ tool, step_id: stepId, event: "call" });
482
573
  const approvedHosts = new Set([verdict.ok ? verdict.url.hostname : new URL(requested).hostname]);
483
574
  const askFn = askFnOf(ctx) ?? undefined;
575
+ // `fresh` is the model-visible escape hatch on the cache: a cached
576
+ // body is a PAST observation, and "did this page change?" can only be
577
+ // answered by asking it again.
578
+ const fresh = args.fresh === true || String(args.fresh).toLowerCase() === "true";
484
579
  const res = await fetchWebText(verdict.ok ? verdict.url : new URL(requested), allowlist, {
485
580
  fetchImpl: deps.fetchImpl,
486
581
  ask: askFn,
487
582
  skipAskHosts: approvedHosts,
488
583
  cache: deps.cache,
584
+ noCacheRead: fresh,
585
+ // The page GET asks for Markdown first (measured 5.3× smaller on
586
+ // learn.microsoft.com, no-op elsewhere); the engine legs never come
587
+ // through here, so their calibrated browser-shaped header stands.
588
+ accept: WEBFETCH_ACCEPT_MD,
489
589
  });
490
590
  // A re-served page is stated as such — an agent that believes a cache
491
591
  // hit is a fresh observation propagates a stale fact into the plan.
@@ -504,7 +604,7 @@ export function buildTmWebfetchTool(deps) {
504
604
  if (hits.length > 0) {
505
605
  const sp = (verdict.ok ? verdict.url : new URL(requested)).searchParams;
506
606
  const query = sp.get("q") ?? sp.get("wd") ?? sp.get("query") ?? sp.get("keyword") ?? "";
507
- const listing = renderSearchHits(query || res.finalUrl, "webfetch", hits) + cacheNote;
607
+ const listing = renderSearchHits(query || res.finalUrl, "webfetch", hits) + cacheNote + grantNote;
508
608
  return toToolResult(pipelines.govern(stepId, tool, listing, {
509
609
  contentType: detectContentType(listing),
510
610
  clue: `search url=${shorten(res.finalUrl, 120)}`,
@@ -512,6 +612,12 @@ export function buildTmWebfetchTool(deps) {
512
612
  }
513
613
  }
514
614
  const { text } = extractWebResponse(res.text, res.contentType);
615
+ // A Markdown body is the source text, not markup — say so, because an
616
+ // agent that sees `#` and `](` can otherwise spend a round deciding the
617
+ // page is a raw file dump.
618
+ const mdNote = res.contentType.includes("markdown")
619
+ ? "\n(正文以 Markdown 送达:站点按 Accept 直接给了源文本,未经 HTML 抽取。)"
620
+ : "";
515
621
  if (!text.trim()) {
516
622
  // anti-bot / JS-rendered pages (baidu is the usual offender) return
517
623
  // an empty shell — tell the agent instead of storing nothing
@@ -544,7 +650,7 @@ export function buildTmWebfetchTool(deps) {
544
650
  }));
545
651
  }
546
652
  }
547
- return toToolResult(pipelines.govern(stepId, tool, text + cacheNote, {
653
+ return toToolResult(pipelines.govern(stepId, tool, text + cacheNote + mdNote + grantNote, {
548
654
  contentType,
549
655
  clue: `url=${shorten(res.finalUrl, 120)}`,
550
656
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"webfetch.js","sourceRoot":"","sources":["../../src/tm/webfetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webfetch.js","sourceRoot":"","sources":["../../src/tm/webfetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Coerce the handful of built-in tool arguments the host validates strictly
3
+ * and the model sends as strings.
4
+ *
5
+ * WHY (live evidence, 2026-09-20): a lead following our own "use the host's
6
+ * visible background sub-agent" advice burned two failed `task` calls before
7
+ * it got through — first `"background": "True"`, then `"background": "true"`.
8
+ * The host's schema is `Schema.Boolean` and rejects a string outright, while
9
+ * models routinely serialize booleans as text (every tm_* tool here already
10
+ * tolerates `cancel: "true"` for exactly that reason). So the trap is real,
11
+ * reproducible, and on the path we recommend.
12
+ *
13
+ * This is the same mutable-args surface the bash timeout clamp uses
14
+ * (`tool.execute.before`), and the same discipline applies:
15
+ * - narrow scope — one known boolean per known tool, listed below;
16
+ * - lossless — only the strings true/false (any case) are converted, and
17
+ * anything else is left exactly as the model wrote it;
18
+ * - never invents an argument the model omitted, never widens what may run;
19
+ * - cannot throw into the hook: a bad coercion would fail the user's call.
20
+ */
21
+ /** Mutates `output.args` in place. Returns the keys it converted (empty when
22
+ * it did nothing, which is the overwhelmingly common case). */
23
+ export declare function coerceToolArgs(input: unknown, output: unknown): string[];
24
+ //# sourceMappingURL=tool-coerce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-coerce.d.ts","sourceRoot":"","sources":["../src/tool-coerce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAUH;gEACgE;AAChE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,OAAO,GACd,MAAM,EAAE,CA6BV"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Coerce the handful of built-in tool arguments the host validates strictly
3
+ * and the model sends as strings.
4
+ *
5
+ * WHY (live evidence, 2026-09-20): a lead following our own "use the host's
6
+ * visible background sub-agent" advice burned two failed `task` calls before
7
+ * it got through — first `"background": "True"`, then `"background": "true"`.
8
+ * The host's schema is `Schema.Boolean` and rejects a string outright, while
9
+ * models routinely serialize booleans as text (every tm_* tool here already
10
+ * tolerates `cancel: "true"` for exactly that reason). So the trap is real,
11
+ * reproducible, and on the path we recommend.
12
+ *
13
+ * This is the same mutable-args surface the bash timeout clamp uses
14
+ * (`tool.execute.before`), and the same discipline applies:
15
+ * - narrow scope — one known boolean per known tool, listed below;
16
+ * - lossless — only the strings true/false (any case) are converted, and
17
+ * anything else is left exactly as the model wrote it;
18
+ * - never invents an argument the model omitted, never widens what may run;
19
+ * - cannot throw into the hook: a bad coercion would fail the user's call.
20
+ */
21
+ /** tool id (lower-cased, suffix-matched) → the boolean args it validates. */
22
+ const BOOLEAN_ARGS = {
23
+ task: ["background"],
24
+ };
25
+ const TRUE_RE = /^(true|1|yes|on)$/i;
26
+ const FALSE_RE = /^(false|0|no|off)$/i;
27
+ /** Mutates `output.args` in place. Returns the keys it converted (empty when
28
+ * it did nothing, which is the overwhelmingly common case). */
29
+ export function coerceToolArgs(input, output) {
30
+ try {
31
+ const rawID = String(input?.tool ??
32
+ input?.toolID ?? "").trim().toLowerCase();
33
+ if (!rawID)
34
+ return [];
35
+ const key = Object.keys(BOOLEAN_ARGS).find((k) => rawID === k || rawID.endsWith(`:${k}`) || rawID.endsWith(`/${k}`));
36
+ if (!key)
37
+ return [];
38
+ const args = output?.args;
39
+ if (!args || typeof args !== "object" || Array.isArray(args))
40
+ return [];
41
+ const changed = [];
42
+ for (const name of BOOLEAN_ARGS[key]) {
43
+ const value = args[name];
44
+ if (typeof value !== "string")
45
+ continue;
46
+ const t = value.trim();
47
+ if (TRUE_RE.test(t)) {
48
+ args[name] = true;
49
+ changed.push(name);
50
+ }
51
+ else if (FALSE_RE.test(t)) {
52
+ args[name] = false;
53
+ changed.push(name);
54
+ }
55
+ // any other string is the model meaning something we do not interpret
56
+ }
57
+ return changed;
58
+ }
59
+ catch {
60
+ return [];
61
+ }
62
+ }
63
+ //# sourceMappingURL=tool-coerce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-coerce.js","sourceRoot":"","sources":["../src/tool-coerce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,6EAA6E;AAC7E,MAAM,YAAY,GAA6B;IAC7C,IAAI,EAAE,CAAC,YAAY,CAAC;CACrB,CAAA;AAED,MAAM,OAAO,GAAG,oBAAoB,CAAA;AACpC,MAAM,QAAQ,GAAG,qBAAqB,CAAA;AAEtC;gEACgE;AAChE,MAAM,UAAU,cAAc,CAC5B,KAAc,EACd,MAAe;IAEf,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAE,KAAqD,EAAE,IAAI;YAC9E,KAAqC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAC5E,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAA;QACrB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CACzE,CAAA;QACD,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAA;QACnB,MAAM,IAAI,GAAI,MAAoD,EAAE,IAAI,CAAA;QACxE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAA;QACvE,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;YACxB,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,SAAQ;YACvC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;YACtB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;gBACjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpB,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;gBAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpB,CAAC;YACD,sEAAsE;QACxE,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC"}
package/dist/types.d.ts CHANGED
@@ -207,7 +207,13 @@ export interface Hooks {
207
207
  sessionID?: string;
208
208
  agent?: string;
209
209
  [key: string]: unknown;
210
- }, output?: unknown) => void | Promise<void>;
210
+ }, output?: {
211
+ message?: {
212
+ role?: unknown;
213
+ [key: string]: unknown;
214
+ };
215
+ parts?: Array<Record<string, unknown>>;
216
+ }) => void | Promise<void>;
211
217
  /** Process teardown (clear the gate's poll interval + pending timers). */
212
218
  dispose?: () => void | Promise<void>;
213
219
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}