@te-river/opencode-team-mode 1.6.0 → 1.6.2

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 (150) hide show
  1. package/README.md +80 -15
  2. package/README.zh-CN.md +67 -18
  3. package/dist/host/note.d.ts +7 -0
  4. package/dist/host/note.d.ts.map +1 -0
  5. package/dist/host/note.js +31 -0
  6. package/dist/host/note.js.map +1 -0
  7. package/dist/host/v1.d.ts +14 -0
  8. package/dist/host/v1.d.ts.map +1 -0
  9. package/dist/host/v1.js +340 -0
  10. package/dist/host/v1.js.map +1 -0
  11. package/dist/host/v2-browser-gate.d.ts +45 -0
  12. package/dist/host/v2-browser-gate.d.ts.map +1 -0
  13. package/dist/host/v2-browser-gate.js +319 -0
  14. package/dist/host/v2-browser-gate.js.map +1 -0
  15. package/dist/host/v2-capabilities.d.ts +78 -0
  16. package/dist/host/v2-capabilities.d.ts.map +1 -0
  17. package/dist/host/v2-capabilities.js +173 -0
  18. package/dist/host/v2-capabilities.js.map +1 -0
  19. package/dist/host/v2-client.d.ts +53 -0
  20. package/dist/host/v2-client.d.ts.map +1 -0
  21. package/dist/host/v2-client.js +193 -0
  22. package/dist/host/v2-client.js.map +1 -0
  23. package/dist/host/v2-events.d.ts +56 -0
  24. package/dist/host/v2-events.d.ts.map +1 -0
  25. package/dist/host/v2-events.js +158 -0
  26. package/dist/host/v2-events.js.map +1 -0
  27. package/dist/host/v2-guard.d.ts +101 -0
  28. package/dist/host/v2-guard.d.ts.map +1 -0
  29. package/dist/host/v2-guard.js +199 -0
  30. package/dist/host/v2-guard.js.map +1 -0
  31. package/dist/host/v2-offload.d.ts +148 -0
  32. package/dist/host/v2-offload.d.ts.map +1 -0
  33. package/dist/host/v2-offload.js +288 -0
  34. package/dist/host/v2-offload.js.map +1 -0
  35. package/dist/host/v2-permissions.d.ts +123 -0
  36. package/dist/host/v2-permissions.d.ts.map +1 -0
  37. package/dist/host/v2-permissions.js +190 -0
  38. package/dist/host/v2-permissions.js.map +1 -0
  39. package/dist/host/v2-probe.d.ts +85 -0
  40. package/dist/host/v2-probe.d.ts.map +1 -0
  41. package/dist/host/v2-probe.js +268 -0
  42. package/dist/host/v2-probe.js.map +1 -0
  43. package/dist/host/v2-scope.d.ts +51 -0
  44. package/dist/host/v2-scope.d.ts.map +1 -0
  45. package/dist/host/v2-scope.js +58 -0
  46. package/dist/host/v2-scope.js.map +1 -0
  47. package/dist/host/v2-session-client.d.ts +105 -0
  48. package/dist/host/v2-session-client.d.ts.map +1 -0
  49. package/dist/host/v2-session-client.js +390 -0
  50. package/dist/host/v2-session-client.js.map +1 -0
  51. package/dist/host/v2-session.d.ts +85 -0
  52. package/dist/host/v2-session.d.ts.map +1 -0
  53. package/dist/host/v2-session.js +171 -0
  54. package/dist/host/v2-session.js.map +1 -0
  55. package/dist/host/v2-subagent.d.ts +157 -0
  56. package/dist/host/v2-subagent.d.ts.map +1 -0
  57. package/dist/host/v2-subagent.js +286 -0
  58. package/dist/host/v2-subagent.js.map +1 -0
  59. package/dist/host/v2-tool.d.ts +67 -0
  60. package/dist/host/v2-tool.d.ts.map +1 -0
  61. package/dist/host/v2-tool.js +209 -0
  62. package/dist/host/v2-tool.js.map +1 -0
  63. package/dist/host/v2-transcript.d.ts +73 -0
  64. package/dist/host/v2-transcript.d.ts.map +1 -0
  65. package/dist/host/v2-transcript.js +151 -0
  66. package/dist/host/v2-transcript.js.map +1 -0
  67. package/dist/host/v2-types.d.ts +229 -0
  68. package/dist/host/v2-types.d.ts.map +1 -0
  69. package/dist/host/v2-types.js +17 -0
  70. package/dist/host/v2-types.js.map +1 -0
  71. package/dist/host/v2.d.ts +42 -0
  72. package/dist/host/v2.d.ts.map +1 -0
  73. package/dist/host/v2.js +853 -0
  74. package/dist/host/v2.js.map +1 -0
  75. package/dist/index.d.ts +23 -17
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +29 -366
  78. package/dist/index.js.map +1 -1
  79. package/dist/prompts/lead.d.ts +1 -1
  80. package/dist/prompts/lead.d.ts.map +1 -1
  81. package/dist/prompts/lead.js +456 -426
  82. package/dist/prompts/lead.js.map +1 -1
  83. package/dist/prompts/shared.d.ts +2 -2
  84. package/dist/prompts/shared.d.ts.map +1 -1
  85. package/dist/prompts/shared.js +38 -11
  86. package/dist/prompts/shared.js.map +1 -1
  87. package/dist/prompts/specialists.d.ts +2 -2
  88. package/dist/prompts/specialists.d.ts.map +1 -1
  89. package/dist/prompts/specialists.js +7 -6
  90. package/dist/prompts/specialists.js.map +1 -1
  91. package/dist/task-offload.d.ts +16 -0
  92. package/dist/task-offload.d.ts.map +1 -1
  93. package/dist/task-offload.js +51 -0
  94. package/dist/task-offload.js.map +1 -1
  95. package/dist/tm/browser.d.ts.map +1 -1
  96. package/dist/tm/browser.js +41 -10
  97. package/dist/tm/browser.js.map +1 -1
  98. package/dist/tm/dispatch.d.ts +86 -1
  99. package/dist/tm/dispatch.d.ts.map +1 -1
  100. package/dist/tm/dispatch.js +360 -39
  101. package/dist/tm/dispatch.js.map +1 -1
  102. package/dist/tm/dupe-guard.d.ts +16 -3
  103. package/dist/tm/dupe-guard.d.ts.map +1 -1
  104. package/dist/tm/dupe-guard.js +27 -7
  105. package/dist/tm/dupe-guard.js.map +1 -1
  106. package/dist/tm/index.d.ts +40 -1
  107. package/dist/tm/index.d.ts.map +1 -1
  108. package/dist/tm/index.js +40 -11
  109. package/dist/tm/index.js.map +1 -1
  110. package/dist/tm/ledger.d.ts +114 -0
  111. package/dist/tm/ledger.d.ts.map +1 -0
  112. package/dist/tm/ledger.js +308 -0
  113. package/dist/tm/ledger.js.map +1 -0
  114. package/dist/tm/perm-ask.d.ts +1 -3
  115. package/dist/tm/perm-ask.d.ts.map +1 -1
  116. package/dist/tm/perm-ask.js +10 -1
  117. package/dist/tm/perm-ask.js.map +1 -1
  118. package/dist/tm/preview.d.ts +55 -0
  119. package/dist/tm/preview.d.ts.map +1 -1
  120. package/dist/tm/preview.js +225 -0
  121. package/dist/tm/preview.js.map +1 -1
  122. package/dist/tm/search.d.ts.map +1 -1
  123. package/dist/tm/search.js +40 -10
  124. package/dist/tm/search.js.map +1 -1
  125. package/dist/tm/serp-loop.d.ts +45 -0
  126. package/dist/tm/serp-loop.d.ts.map +1 -0
  127. package/dist/tm/serp-loop.js +80 -0
  128. package/dist/tm/serp-loop.js.map +1 -0
  129. package/dist/tm/stats.d.ts +29 -0
  130. package/dist/tm/stats.d.ts.map +1 -1
  131. package/dist/tm/stats.js +278 -4
  132. package/dist/tm/stats.js.map +1 -1
  133. package/dist/tm/webfetch.d.ts +4 -0
  134. package/dist/tm/webfetch.d.ts.map +1 -1
  135. package/dist/tm/webfetch.js +75 -8
  136. package/dist/tm/webfetch.js.map +1 -1
  137. package/docs/installation-v2.md +445 -0
  138. package/docs/installation.md +12 -0
  139. package/docs/research/agent-data-exchange.md +117 -0
  140. package/docs/research/browser-pane.md +89 -0
  141. package/docs/research/host-http-api.md +132 -0
  142. package/docs/research/host-subagent-injection.md +187 -0
  143. package/docs/research/plugin-loader-contract.md +261 -0
  144. package/docs/research/v2-builtin-tools.md +447 -0
  145. package/docs/v2-port-notes.md +413 -0
  146. package/index.js +7 -0
  147. package/package.json +64 -61
  148. package/scripts/gen-v2-config.mjs +304 -0
  149. package/scripts/lib/config-surgery.cjs +239 -0
  150. package/scripts/lib/fake-ctx.mjs +169 -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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"}
@@ -113,8 +113,37 @@ 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>>;
128
+ /** A2: the sentence about roles the editor snapshot did not list — ONE definition,
129
+ * printed by both places that used to paste "配置里缺角色". That phrase was a false
130
+ * assertion: measured on 2.0.20 all six role files exist and the host runs them
131
+ * (`--agent team` resolves, child sessions start), while `ctx.agent.transform` hands
132
+ * the agent set from BEFORE the config directory merged.
133
+ *
134
+ * "已装" is a PER-ID observation, so the line is built per id. The first version only
135
+ * required `agents_resolved_in_request` to be non-empty and then asserted "installed,
136
+ * snapshot blind" for the WHOLE unseen list — but on a cold 2.0.20 boot the pre-merge
137
+ * snapshot misses all six while the request has resolved just `team`, so five roles
138
+ * nobody had ever observed were written up as a conclusion. Two strengths, never mixed
139
+ * inside one sentence; when both sets are non-empty the line says them as two segments:
140
+ * · unseen AND resolved in a request ⇒ installed, snapshot blind;
141
+ * · unseen and never resolved anywhere ⇒ this process cannot tell the two apart, so
142
+ * the segment names the deciding observation (that id appearing in
143
+ * agents_resolved_in_request) instead of asserting either half;
144
+ * · a legacy row (pre-A2 build, still inside the window) carrying `agents_missing`
145
+ * ⇒ printed as what that field actually measured, not as a claim about files. */
146
+ export declare function agentVisibilityLine(line: Record<string, unknown>): string;
118
147
  /** Markdown, in the shapes the host renders fastest (tables, not prose). */
119
148
  export declare function renderStats(stats: TmStats, opts: {
120
149
  runDirs: number;
@@ -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,103 @@ 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
+ // NEWEST FIRST, by the event's own timestamp — NOT by array position. The window
253
+ // arrives newest-first (`listTrajectoryRuns` is newest-first), so an index sort here
254
+ // selected the OLDEST boots in the window and printed them as the current process,
255
+ // which is exactly the row a user reads after an upgrade or a re-install. A live
256
+ // session caught it: the process that had just restarted was absent from the section
257
+ // and the model invented a "配置 A(较新)" column to explain rows that were stale.
258
+ const timeOf = (i) => {
259
+ const t = Date.parse(String(lines[i]?.ts ?? ""));
260
+ return Number.isFinite(t) ? t : -1;
261
+ };
262
+ // Two questions the old code answered with one array sort, in the wrong direction for
263
+ // the second one:
264
+ // · within one process's run, the LAST write is the informative one (the surface
265
+ // snapshot is throttled and rewritten as the host surface changes);
266
+ // · across processes, tm_stats feeds these NEWEST-run-first, so an index sort promoted
267
+ // the OLDEST boots and the row a user reads after an upgrade was simply absent.
268
+ // So: order by the event's own timestamp when there is one, and keep "last write wins"
269
+ // only as the tie-break for rows that carry no timestamp at all.
270
+ const byNewest = (a, b) => {
271
+ const dt = timeOf(b) - timeOf(a);
272
+ return dt !== 0 ? dt : b - a;
273
+ };
274
+ const idx = [...last.values()].sort(byNewest);
275
+ // The boot record is the line that answers "which personality ran, and what did
276
+ // it find missing" — and it is also the only carrier of the Team-scope counts and
277
+ // the native-browser gate line. A plain newest-N used to drop it: the probe writes
278
+ // `v2-surface` whenever the host surface changes, so a long session pushed
279
+ // `v2-boot` out of the window and tm_stats quietly stopped showing the two facts
280
+ // the user asked about (a live session searched the output for them and found
281
+ // neither). Reserve the slots for the records that matter, then fill.
282
+ const prio = (i) => {
283
+ const s = String(lines[i]?.step_id ?? "");
284
+ return s === "v2-shutdown" ? 1 : s === "v2-boot" || s === "boot" ? 0 : 2;
285
+ };
286
+ const ordered = [...idx].sort((a, b) => prio(a) - prio(b) || byNewest(a, b));
287
+ return ordered.slice(0, Math.max(1, limit)).map((i) => lines[i]);
288
+ }
289
+ /** A2: the sentence about roles the editor snapshot did not list — ONE definition,
290
+ * printed by both places that used to paste "配置里缺角色". That phrase was a false
291
+ * assertion: measured on 2.0.20 all six role files exist and the host runs them
292
+ * (`--agent team` resolves, child sessions start), while `ctx.agent.transform` hands
293
+ * the agent set from BEFORE the config directory merged.
294
+ *
295
+ * "已装" is a PER-ID observation, so the line is built per id. The first version only
296
+ * required `agents_resolved_in_request` to be non-empty and then asserted "installed,
297
+ * snapshot blind" for the WHOLE unseen list — but on a cold 2.0.20 boot the pre-merge
298
+ * snapshot misses all six while the request has resolved just `team`, so five roles
299
+ * nobody had ever observed were written up as a conclusion. Two strengths, never mixed
300
+ * inside one sentence; when both sets are non-empty the line says them as two segments:
301
+ * · unseen AND resolved in a request ⇒ installed, snapshot blind;
302
+ * · unseen and never resolved anywhere ⇒ this process cannot tell the two apart, so
303
+ * the segment names the deciding observation (that id appearing in
304
+ * agents_resolved_in_request) instead of asserting either half;
305
+ * · a legacy row (pre-A2 build, still inside the window) carrying `agents_missing`
306
+ * ⇒ printed as what that field actually measured, not as a claim about files. */
307
+ export function agentVisibilityLine(line) {
308
+ const unseen = String(line.agents_editor_unseen ?? "").trim();
309
+ const resolved = String(line.agents_resolved_in_request ?? "").trim();
310
+ if (unseen) {
311
+ const rounds = String(line.agents_editor_rounds ?? "?");
312
+ const splitIds = (s) => s.split(/[,\s;]+/).map((x) => x.trim()).filter(Boolean);
313
+ const resolvedSet = new Set(splitIds(resolved));
314
+ const unseenIds = splitIds(unseen);
315
+ const observed = unseenIds.filter((id) => resolvedSet.has(id));
316
+ const neverObserved = unseenIds.filter((id) => !resolvedSet.has(id));
317
+ const segments = [];
318
+ if (observed.length) {
319
+ segments.push(`editor 快照里看不到 ${observed.join(",")}(transform 观察 ${rounds} 次,那是配置合并前的角色集)——宿主请求里已解析这些 id,所以是已装而看不见,不是文件缺失`);
320
+ }
321
+ if (neverObserved.length) {
322
+ segments.push(`editor 快照里看不到 ${neverObserved.join(",")}(transform 观察 ${rounds} 次),宿主请求里也没出现过这些 id——本进程无法区分两种情况,不写成结论:真没装的判据是宿主连 --agent team 都解析不到(交给安装器),已装而看不见的判据是该 id 出现在本行的 agents_resolved_in_request 里`);
323
+ }
324
+ return segments.join(";");
325
+ }
326
+ const legacy = String(line.agents_missing ?? "").trim();
327
+ return legacy
328
+ ? `旧版行的 editor 未列角色:${legacy}(该字段记的是合并前的 editor 快照,不作为文件缺失的结论)`
329
+ : "";
330
+ }
331
+ /** A3: where a row's observation counters were read — the shutdown row is the final
332
+ * total, a surface row a value-in-progress, and the attach-time row has none at all.
333
+ * Collapsing these is how "0" gets read as "never fired". */
334
+ function countersSourceLine(line) {
335
+ const at = String(line.counters_at ?? "");
336
+ if (!at)
337
+ return "";
338
+ const gloss = at === "shutdown" ? "终值" : at === "surface" ? "快照进行值" : "未接上(请求层/事件流当时还没注册)";
339
+ return `观察计数器来源=${at}(${gloss})`;
340
+ }
241
341
  /** Markdown, in the shapes the host renders fastest (tables, not prose). */
242
342
  export function renderStats(stats, opts) {
243
343
  const now = opts.now ?? Date.now();
@@ -256,6 +356,174 @@ export function renderStats(stats, opts) {
256
356
  out.push(`| **合计** | | | | | **${savedTotal.toLocaleString("en-US")}** |`);
257
357
  const d = stats.dispatch;
258
358
  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} 次是连续等待——等待期间你没有产出` : ""})` : "—"} |`);
359
+ const b = stats.boot;
360
+ if (b.length) {
361
+ out.push("", "### 启动与人格(哪一半在跑、它说自己缺什么)", "");
362
+ for (const line of bootSnapshots(b)) {
363
+ const s = String(line.step_id ?? "?");
364
+ const api = line.api === 2 ? "v2" : line.api === 1 ? "v1" : String(line.api ?? "?");
365
+ // The native-offload counters are rendered here too: they are written on the
366
+ // same snapshot, and a fact that is recorded but never printed is the exact
367
+ // defect this section was added to remove.
368
+ const offBits = [
369
+ line.native_offload_active === undefined ? "" : `原生工具治理 ${line.native_offload_active ? "开" : "关(见上方原因)"}`,
370
+ line.native_seen !== undefined ? `原生调用 ${line.native_seen} 次` : "",
371
+ // #23: the denominator. `原生调用` counts only tools on the governed list,
372
+ // so without these two the sentence "most of Team's calls are JIT-governed"
373
+ // would be measured against a number that already excluded what it might miss.
374
+ line.native_ours !== undefined ? `本会话族共 ${line.native_ours} 次调用` : "",
375
+ line.native_unmatched ? `其中不在治理面 ${line.native_unmatched} 次(没碰,也不算治理过)` : "",
376
+ line.native_offloaded !== undefined ? `卸载 ${line.native_offloaded} 次` : "",
377
+ // Recognised is not the same as rewritten: this is the number that says
378
+ // "we can read this host's envelope format", and its being 0 while
379
+ // sub-agents clearly ran says the opposite.
380
+ line.native_envelopes !== undefined ? `认出的子代理信封 ${line.native_envelopes} 个` : "",
381
+ line.native_tokens_saved !== undefined && Number(line.native_tokens_saved) > 0 ? `省 ${line.native_tokens_saved} token` : "",
382
+ // Which session seam actually fired, and did the host's completion envelope
383
+ // settle anything. Both counters print even when zero: "the host never fired it"
384
+ // and "we never looked" have to stay distinguishable.
385
+ line.completion_context_fired !== undefined
386
+ ? `完成注入监听:session.context 触发 ${line.completion_context_fired} 次(${line.completion_skipped ?? 0} 次因无待结算子代理而跳过)· 认出信封 ${line.completion_envelopes ?? 0} 个 → 结算 ${line.completion_settled ?? 0} 个` +
387
+ (!Number(line.completion_context_fired)
388
+ ? "(这条缝一次都没响:宿主没把请求历史经过插件,别把 0 当成没有子代理)"
389
+ : "")
390
+ : "",
391
+ ].filter(Boolean);
392
+ // Each row carries WHEN that process booted and which run it was, because without
393
+ // it a reader cannot tell the current build from an older one in the same window —
394
+ // and the model filling that gap invents an ordering (it did: "配置 A(较新)").
395
+ const stamp = `${String(line.ts ?? "?").slice(0, 16).replace("T", " ")} · run ${String(line.run_id ?? "?").replace(/^r-/, "").slice(0, 15)}`;
396
+ if (s === "v2-agents") {
397
+ const vis = agentVisibilityLine(line);
398
+ out.push(`- \`${s}\` · ${stamp} · 人格 **${api}** · 默认角色 ${line.agents_default ?? "?"} · 归一化完成${line.agents_unmapped ? ` · 无 v2 对应的动作:${line.agents_unmapped}` : ""}`);
399
+ if (vis)
400
+ out.push(` - ${vis}`);
401
+ continue;
402
+ }
403
+ const bits = [
404
+ `人格 **${api}**`,
405
+ // A3: label WHERE the counters on this row were read. The shutdown row is the
406
+ // final total, a surface row a value-in-progress, and the attach row has none —
407
+ // three different readings of the same absent field, so the row says which.
408
+ countersSourceLine(line),
409
+ line.tools_registered !== undefined ? `工具 ${line.tools_registered}/${line.tools_total}` : "",
410
+ line.tools_v1_only ? `v1 独有 \`${line.tools_v1_only}\`` : "",
411
+ line.request_hooks ? `请求层 ${line.request_hooks} 钩子` : "",
412
+ line.request_temperature !== undefined ? `温度 ${line.request_temperature}` : "",
413
+ line.subagent_background ? `子代理 ${line.subagent_background}` : "",
414
+ line.guard_hooks ? `门禁 ${line.guard_hooks} 钩子` : "",
415
+ line.guard_shell_coarse === undefined ? "" : `shell 粗粒度 ask ${line.guard_shell_coarse ? "开" : "关"}`,
416
+ line.agents_default ? `默认角色 ${line.agents_default}` : "",
417
+ line.guard_seen !== undefined ? `门禁看到 ${line.guard_seen} 次评估(${line.guard_actions || "无动作"})` : "",
418
+ line.guard_shell_matched !== undefined ? `其中 shell 命中分类器 ${line.guard_shell_matched} 次` : "",
419
+ line.subagent_forced !== undefined ? `子代理强制后台 ${line.subagent_forced}/${line.subagent_seen}` : "",
420
+ line.tools_removed ? `本轮从请求里删掉:${line.tools_removed}` : "",
421
+ line.note_pushed === undefined ? "" : `黑板注记 ${line.note_pushed ? "已送达" : "未触发"}`,
422
+ // #22: the isolation counts are the proof that "we only touch Team" is a
423
+ // measured property, not a claim. `未判定` is never folded into 我们 — a
424
+ // host that stopped shipping `agent` on its events must show up as a number.
425
+ line.scope_ours !== undefined
426
+ ? `作用域:我们 ${line.scope_ours} · 他人 ${line.scope_foreign} · 未判定 ${line.scope_unknown}`
427
+ : "",
428
+ line.guard_foreign_skipped ? `门禁为非 Team 会话让路 ${line.guard_foreign_skipped} 次` : "",
429
+ line.browser_gate ? `原生 browser_* 门禁:${line.browser_gate}` : "",
430
+ // The honest half of the delivery question: what we SENT (tools_codemode) and
431
+ // what the assembled request actually CARRIED (tools_in_request). On 2.0.16 the
432
+ // two disagree, and printing only the first would let a boot line claim a
433
+ // delivery mode the host never gave.
434
+ line.tools_codemode ? `工具交付:发出=${line.tools_codemode} · 请求内实际可见=同 run 的 surface/shutdown 行(来源标在行首)` : "",
435
+ // The boot row cannot carry this observation — the first request has not happened
436
+ // when it is written. Since A3 both the throttled surface row and the shutdown
437
+ // row do, so a sent flag can never be read as an outcome, and a run that never
438
+ // reaches dispose still shows what the host actually delivered.
439
+ line.tools_in_request ? `工具交付:请求内实际可见=${line.tools_in_request}(direct 是否被宿主采纳只看这一项)` : "",
440
+ line.browser_gate_note ? ` ${line.browser_gate_note}` : "",
441
+ line.native_capped !== undefined ? `快照按寻址预算截断 ${line.native_capped} 次(不是卸载:ref 留在上下文里)` : "",
442
+ line.native_report_capped !== undefined ? `报告型输出保留表格截断散文 ${line.native_report_capped} 次(表格整份留下,句柄装全文)` : "",
443
+ // The collect side's own coverage. `seen > 0` with `registered = 0` is the tm_join
444
+ // gap STILL OPEN, and it must not be readable as "no background child ran this
445
+ // process" — that is the exact silence this feature exists to remove.
446
+ line.host_subagent_seen !== undefined
447
+ ? `宿主 subagent 确认 ${line.host_subagent_seen} 次 → tm_join 登记 ${line.host_children_registered ?? 0} 个` +
448
+ // The run id is part of the sentence, not decoration: one CLI invocation boots
449
+ // more than one server process, each with its own counters, and a 0 from the
450
+ // sibling reads as "nothing was dispatched" unless the row says whose it is.
451
+ `(run ${String(line.run_id ?? "?").replace(/^r-/, "").slice(0, 15)})` +
452
+ (Number(line.host_children_unpaired) > 0 ? `(${line.host_children_unpaired} 个没配到派发行)` : "") +
453
+ (Number(line.host_children_settled_at_once) > 0 ? `;${line.host_children_settled_at_once} 次是同步子代理(结果本身就是正文,无需登记)` : "") +
454
+ (Number(line.host_subagent_seen) > 0 && !Number(line.host_children_registered)
455
+ ? " —— 看到了却一个都没登记:认领没生效,不要读成「这一轮没有后台子代理」"
456
+ : "") +
457
+ // A zero on a non-final row is a moment, not a fact about the run: three CLI
458
+ // runs on 2.0.20 wrote no shutdown row at all, so the surface row is often the
459
+ // only reading there is — and "nothing was dispatched" must never be printed
460
+ // from a snapshot taken before anybody answered.
461
+ (Number(line.host_subagent_seen) === 0 && String(line.counters_at ?? "") !== "shutdown"
462
+ ? " —— 0 且来源不是终值行:只说明写下这一行时本进程没听到 subagent 确认,不说明没有派发"
463
+ : "")
464
+ : "",
465
+ // Did the session-read seam answer? `sessionID` is the shape the host's own code
466
+ // uses; `(none)` after a real lookup attempt means the bridge is wrong again, not
467
+ // that the host lacks the method.
468
+ line.session_get_attempts !== undefined
469
+ ? `会话读取缝:查 ${line.session_get_attempts} 次 → 成功 ${line.session_get_resolved} 次(生效形状 ${line.session_get_shape ?? "(none)"})` +
470
+ (Number(line.session_context_ok) > 0 ? ` · context 返回 ${line.session_context_ok} 次,键=${line.session_context_keys}` : " · context 未成功") +
471
+ (line.session_get_error ? ` · 最后一次错误:${String(line.session_get_error).slice(0, 90)}` : "")
472
+ : "",
473
+ // #33 — the STOP seam, printed separately from the read seam because the two fail
474
+ // for different reasons and the user's question ("can the lead kill it?") has only
475
+ // this row as an answer. `tried=0` is not evidence the host lacks it, so that case
476
+ // says nobody asked, rather than reading as a defect.
477
+ line.stop_tried !== undefined
478
+ ? `中断缝:试 ${line.stop_tried} 次 → 宿主确认停止 ${line.stop_confirmed ?? 0} · idle no-op ${line.stop_refused ?? 0} · 未回布尔 ${line.stop_unknown ?? 0}` +
479
+ (line.stop_keys ? ` · 键=${line.stop_keys}` : "") +
480
+ (line.stop_error ? ` · 最后一次错误:${String(line.stop_error).slice(0, 90)}` : "") +
481
+ (Number(line.stop_tried) === 0 ? "(本进程没人用过 cancel:true,这一行还证明不了宿主真能停)" : "")
482
+ : "",
483
+ ].filter(Boolean);
484
+ out.push(`- \`${s}\` · ${stamp} · ${bits.join(" · ")}`);
485
+ // The attach-time row says out loud the counters were not wired yet; that note is
486
+ // the only thing standing between a missing `guard_seen` and a reader who takes it
487
+ // for "never fired", so it is printed verbatim and never folded into a 0.
488
+ if (line.counters_note)
489
+ out.push(` - ${line.counters_note}`);
490
+ if (line.scope_unknown !== undefined && Number(line.scope_unknown) > 0) {
491
+ out.push(` - 未判定 ${line.scope_unknown} 次:宿主事件里没带 agent。这些调用我们一律没碰(隔离优先于覆盖率),` +
492
+ `所以它们也没被 JIT 治理——不是"治理过了",是"没资格治理"。`);
493
+ }
494
+ // A2: generic rows (v2-boot / v2-surface / v2-shutdown) go through the SAME
495
+ // three-state definition as the v2-agents row instead of pasting 配置里缺角色 —
496
+ // that phrase was a conclusion about files drawn from a snapshot which is blind
497
+ // before the config directory merges. A legacy row that only carries
498
+ // `agents_missing` still prints, but as what that field actually measured.
499
+ const genericVis = agentVisibilityLine(line);
500
+ if (genericVis)
501
+ out.push(` - ${genericVis}`);
502
+ if (line.tools_missing)
503
+ out.push(` - 未出现在宿主表面:${line.tools_missing}`);
504
+ // The probe is the only place the host's own surface is recorded rather than
505
+ // described, so it prints separately: a 60-name tool list would bury the
506
+ // twelve lines above it that say what WE did.
507
+ const probe = [
508
+ line.probe_tool_count !== undefined ? `宿主工具面 ${line.probe_tool_count} 个(含 browser ${line.probe_browser_tools ? String(line.probe_browser_tools).split(" ").filter(Boolean).length : 0} 个)` : "",
509
+ line.probe_agents ? `观测到角色 ${line.probe_agents}` : "",
510
+ line.probe_executed ? `execute.before 见到:${line.probe_executed}` : "",
511
+ line.probe_executed_after ? `execute.after 见到:${line.probe_executed_after}` : "",
512
+ line.probe_evaluations !== undefined ? `permission.evaluate ${line.probe_evaluations} 次(动作:${line.probe_actions || "无"})` : "",
513
+ line.probe_url_resources !== undefined ? `其中资源里带 URL 的 ${line.probe_url_resources} 次` : "",
514
+ line.probe_ctx_domains ? `ctx 给了:${line.probe_ctx_domains}` : "",
515
+ line.probe_messages !== undefined ? `请求里消息数 ${line.probe_messages} · 注入的 <task> 信封 ${line.probe_task_envelopes} 个(最长 ${line.probe_max_envelope_chars} 字符)` : "",
516
+ line.probe_hooks_missing ? `挂不上的钩子:${line.probe_hooks_missing}` : "",
517
+ ].filter(Boolean);
518
+ const allBits = [...offBits, ...probe];
519
+ if (allBits.length)
520
+ out.push(` - 原生面与探针 · ${allBits.join(" · ")}`);
521
+ if (line.probe_browser_tools && line.probe_browser_tools !== "")
522
+ out.push(` - 原生浏览器工具名:${String(line.probe_browser_tools).split(" ").filter(Boolean).map((n) => `\`${n}\``).join(" ")}`);
523
+ if (line.note)
524
+ out.push(` - ${line.note}`);
525
+ }
526
+ }
259
527
  const p = stats.ptc;
260
528
  const g = stats.governance;
261
529
  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} |`);
@@ -361,10 +629,10 @@ export function buildStatsTool(deps) {
361
629
  return all;
362
630
  };
363
631
  return {
364
- description: `Read the plugin's OWN trajectory back as numbers: what it saved and where it broke.
365
- - The throughput argument in one call — tokens kept out of the context window by offloading, and seconds saved by dispatch overlap (serial cost minus the wall-clock the children actually used), plus governance counts (blocked subresources, refused tm_pty starts, clamped bash timeouts, engine fallbacks).
366
- - It also renders the HOST CAPABILITY MATRIX: every OpenCode surface this plugin leans on, marked 已验证 / 存在未用 / 待观察 / 缺失. After an OpenCode upgrade, call this FIRST — a missing row names the feature that silently went away.
367
- - { runs: 10 } recent run dirs (default 10, max 50); { capabilities: false } to skip the matrix. Read-only over files this plugin wrote: no network, no shell, no secrets (the trajectory never records command text or values).
632
+ description: `Read the plugin's OWN trajectory back as numbers: what it saved and where it broke.
633
+ - The throughput argument in one call — tokens kept out of the context window by offloading, and seconds saved by dispatch overlap (serial cost minus the wall-clock the children actually used), plus governance counts (blocked subresources, refused tm_pty starts, clamped bash timeouts, engine fallbacks).
634
+ - It also renders the HOST CAPABILITY MATRIX: every OpenCode surface this plugin leans on, marked 已验证 / 存在未用 / 待观察 / 缺失. After an OpenCode upgrade, call this FIRST — a missing row names the feature that silently went away.
635
+ - { runs: 10 } recent run dirs (default 10, max 50); { capabilities: false } to skip the matrix. Read-only over files this plugin wrote: no network, no shell, no secrets (the trajectory never records command text or values).
368
636
  - { recent: 20 } appends a call-by-call recap — the host renders a plugin tool as a one-line card nobody can open, so this is where an offloaded result's handle AND its payload file path are named out loud. When the user asks "what did that tool actually return", call this and paste the table.`,
369
637
  args: {
370
638
  runs: { descriptor: "runs: number (optional, how many recent run dirs to read; default 10, max 50)" },
@@ -398,6 +666,12 @@ export function buildStatsTool(deps) {
398
666
  }
399
667
  lines += "\n" + renderRecent(recentCalls(events, recentLimit, rows, deps.store.stepsRoot())).join("\n");
400
668
  }
669
+ // Measured on this host: the chat bubble renders GFM tables, but a code fence
670
+ // shows literally and a plugin tool's card is not expandable. So the table is
671
+ // only useful to the user once the agent relays it into its reply UNFENCED.
672
+ // Saying nothing here is how "the renderer is broken" gets blamed on the tool.
673
+ lines += `\n(要把这张表给用户看:写进回复正文,别包进 \`\`\` 围栏——围栏里的表格必然显示原文;`
674
+ + `工具卡片本身不可展开,Markdown 是否渲染我们没测过,所以正文才是你该控制的那一块。)`;
401
675
  // Deliberately NOT offloaded: the point of this tool is the table the
402
676
  // user (or the lead) reads whole; it is bounded by construction (one
403
677
  // row per tool, per degraded seam, per capability).
@@ -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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"}
@@ -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