@te-river/opencode-team-mode 1.5.12 → 1.5.14

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 (88) hide show
  1. package/README.md +30 -6
  2. package/README.zh-CN.md +28 -4
  3. package/dist/agents.d.ts +5 -1
  4. package/dist/agents.d.ts.map +1 -1
  5. package/dist/agents.js +24 -2
  6. package/dist/agents.js.map +1 -1
  7. package/dist/capabilities.d.ts +66 -0
  8. package/dist/capabilities.d.ts.map +1 -0
  9. package/dist/capabilities.js +165 -0
  10. package/dist/capabilities.js.map +1 -0
  11. package/dist/host-hooks.d.ts +115 -0
  12. package/dist/host-hooks.d.ts.map +1 -0
  13. package/dist/host-hooks.js +270 -0
  14. package/dist/host-hooks.js.map +1 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +103 -4
  17. package/dist/index.js.map +1 -1
  18. package/dist/prompts/lead.d.ts +1 -1
  19. package/dist/prompts/lead.d.ts.map +1 -1
  20. package/dist/prompts/lead.js +71 -8
  21. package/dist/prompts/lead.js.map +1 -1
  22. package/dist/prompts/shared.d.ts +1 -1
  23. package/dist/prompts/shared.d.ts.map +1 -1
  24. package/dist/prompts/shared.js +51 -2
  25. package/dist/prompts/shared.js.map +1 -1
  26. package/dist/prompts/specialists.d.ts +1 -1
  27. package/dist/prompts/specialists.d.ts.map +1 -1
  28. package/dist/prompts/specialists.js +38 -17
  29. package/dist/prompts/specialists.js.map +1 -1
  30. package/dist/tm/args-schema.d.ts +7 -1
  31. package/dist/tm/args-schema.d.ts.map +1 -1
  32. package/dist/tm/args-schema.js +9 -3
  33. package/dist/tm/args-schema.js.map +1 -1
  34. package/dist/tm/bash-timeout.d.ts +72 -0
  35. package/dist/tm/bash-timeout.d.ts.map +1 -0
  36. package/dist/tm/bash-timeout.js +100 -0
  37. package/dist/tm/bash-timeout.js.map +1 -0
  38. package/dist/tm/browser.d.ts +91 -5
  39. package/dist/tm/browser.d.ts.map +1 -1
  40. package/dist/tm/browser.js +564 -89
  41. package/dist/tm/browser.js.map +1 -1
  42. package/dist/tm/cache.d.ts +68 -0
  43. package/dist/tm/cache.d.ts.map +1 -0
  44. package/dist/tm/cache.js +157 -0
  45. package/dist/tm/cache.js.map +1 -0
  46. package/dist/tm/config.d.ts +87 -0
  47. package/dist/tm/config.d.ts.map +1 -1
  48. package/dist/tm/config.js +66 -0
  49. package/dist/tm/config.js.map +1 -1
  50. package/dist/tm/dispatch.d.ts +123 -0
  51. package/dist/tm/dispatch.d.ts.map +1 -0
  52. package/dist/tm/dispatch.js +476 -0
  53. package/dist/tm/dispatch.js.map +1 -0
  54. package/dist/tm/dupe-guard.d.ts +58 -0
  55. package/dist/tm/dupe-guard.d.ts.map +1 -0
  56. package/dist/tm/dupe-guard.js +105 -0
  57. package/dist/tm/dupe-guard.js.map +1 -0
  58. package/dist/tm/index.d.ts +32 -4
  59. package/dist/tm/index.d.ts.map +1 -1
  60. package/dist/tm/index.js +58 -5
  61. package/dist/tm/index.js.map +1 -1
  62. package/dist/tm/perm-ask.d.ts +1 -0
  63. package/dist/tm/perm-ask.d.ts.map +1 -1
  64. package/dist/tm/perm-ask.js +15 -1
  65. package/dist/tm/perm-ask.js.map +1 -1
  66. package/dist/tm/pipelines.d.ts.map +1 -1
  67. package/dist/tm/pipelines.js +11 -0
  68. package/dist/tm/pipelines.js.map +1 -1
  69. package/dist/tm/pty.d.ts +70 -0
  70. package/dist/tm/pty.d.ts.map +1 -0
  71. package/dist/tm/pty.js +242 -0
  72. package/dist/tm/pty.js.map +1 -0
  73. package/dist/tm/search.d.ts +56 -7
  74. package/dist/tm/search.d.ts.map +1 -1
  75. package/dist/tm/search.js +195 -41
  76. package/dist/tm/search.js.map +1 -1
  77. package/dist/tm/stats.d.ts +117 -0
  78. package/dist/tm/stats.d.ts.map +1 -0
  79. package/dist/tm/stats.js +296 -0
  80. package/dist/tm/stats.js.map +1 -0
  81. package/dist/tm/webfetch.d.ts +23 -0
  82. package/dist/tm/webfetch.d.ts.map +1 -1
  83. package/dist/tm/webfetch.js +97 -8
  84. package/dist/tm/webfetch.js.map +1 -1
  85. package/dist/types.d.ts +16 -0
  86. package/dist/types.d.ts.map +1 -1
  87. package/docs/installation.md +216 -17
  88. package/package.json +2 -2
@@ -132,6 +132,51 @@ export const SEARCH_PAGE_RE = /(?:cn\.bing\.com|www\.bing\.com)\/search|\.baidu\
132
132
  * surfaces ai.so.com as a "hit" (its own AI search tab), which is an
133
133
  * internal page, not an external result. */
134
134
  const ENGINE_TRACKER_RE = /bing\.com\/ck\/|baidu\.com\/link\?|sogou\.com\/link\?|go\.microsoft\.com\/fwlink|so\.com\/link\?|ai\.so\.com/i;
135
+ /** BING WRAPS EVERY RESULT of its international layout (`…&ensearch=1`) in
136
+ * `https://www.bing.com/ck/a?...&u=a1<base64(destination)>`. Dropping those
137
+ * anchors (what ENGINE_TRACKER_RE does) is why the 2026-09-14 benchmark
138
+ * recorded "bing-int serves an anti-bot shell / 100% empty" — the shell was
139
+ * fine, our extractor threw every hit away (re-probed 2026-09-19: 10 real
140
+ * `b_algo` results, 0 extracted). Decode the wrapper so the hit survives;
141
+ * anything unrecognised still falls through to the skip. */
142
+ export function decodeEngineWrapperUrl(href) {
143
+ if (!/bing\.com\/ck\//i.test(href))
144
+ return null;
145
+ let params;
146
+ try {
147
+ params = new URL(href).searchParams;
148
+ }
149
+ catch {
150
+ return null;
151
+ }
152
+ const u = params.get("u") ?? params.get("url");
153
+ if (!u)
154
+ return null;
155
+ // bing prefixes the base64 with an `a1` marker; strip it, then tolerate
156
+ // missing padding (base64 without `=` decodes fine in Node).
157
+ const b64 = u.startsWith("a1") ? u.slice(2) : u;
158
+ if (!/^[A-Za-z0-9+/=_-]{8,}$/.test(b64))
159
+ return null;
160
+ try {
161
+ const decoded = Buffer.from(b64.replace(/[-_]/g, (c) => (c === "-" ? "+" : "/")), "base64").toString("utf8");
162
+ return /^https?:\/\/[^\s]+$/i.test(decoded) ? decoded : null;
163
+ }
164
+ catch {
165
+ return null;
166
+ }
167
+ }
168
+ /** The engine's OWN pages. bing returns /images, /academic, /dict, /news,
169
+ * its own CN landing page and `www.microsoft.com` chrome as "results";
170
+ * those are never the answer to a lookup about something else, and they
171
+ * made the hit list look like the engine was recommending itself. The
172
+ * engine hosts stay on the FETCH allowlist (tm_webfetch can still read a
173
+ * bing SERP on purpose) — this only stops them being rendered as results. */
174
+ const ENGINE_OWN_HOST_RE = /(^|\.)bing\.(com|cn|net)$|(^|\.)microsofttranslator\.com$/i;
175
+ /** Sponsored-slot marker (bing CN wraps an ad in `class="b_ad"`, which is
176
+ * distinct from the organic `b_algo` — a substring test cannot confuse
177
+ * them). Checked in the 320 chars preceding the anchor, i.e. the slot it
178
+ * lives in, never the whole page. */
179
+ const AD_SLOT_RE = /b_ad\b|ads-title|data-kq="dsp\.srp\./i;
135
180
  /** Domains that collide with common search terms (e.g. maimai.cn is the
136
181
  * Chinese professional-networking site 脉脉, NOT the SEGA maimai DX rhythm
137
182
  * game — a real session showed bing returning 10/10 maimai.cn hits for
@@ -184,7 +229,12 @@ export function extractSearchHits(html, max = 10, blacklist = hitDomainBlacklist
184
229
  const anchors = [...html.matchAll(ANCHOR_RE)];
185
230
  for (let ai = 0; ai < anchors.length; ai++) {
186
231
  const m = anchors[ai];
187
- const href = decodeEntities((m[1] ?? m[2] ?? "").trim());
232
+ let href = decodeEntities((m[1] ?? m[2] ?? "").trim());
233
+ // a tracker wrapper is only "engine chrome" when we cannot see through
234
+ // it — bing's /ck/a carries the real destination, so decode first
235
+ const unwrapped = decodeEngineWrapperUrl(href);
236
+ if (unwrapped)
237
+ href = unwrapped;
188
238
  if (!/^https?:\/\//i.test(href))
189
239
  continue;
190
240
  if (ENGINE_TRACKER_RE.test(href))
@@ -200,20 +250,36 @@ export function extractSearchHits(html, max = 10, blacklist = hitDomainBlacklist
200
250
  continue;
201
251
  // domain blacklist: same-name-different-site collisions (maimai.cn 脉脉
202
252
  // vs the maimai DX game) must not ride the hit list as "results"
253
+ let host = "";
203
254
  try {
204
- const host = new URL(href).hostname.toLowerCase();
255
+ host = new URL(href).hostname.toLowerCase();
205
256
  if (blacklist.some((d) => host === d || host.endsWith("." + d)))
206
257
  continue;
258
+ // the engine's own chrome (bing /images, /dict, /news …) is not a result
259
+ if (ENGINE_OWN_HOST_RE.test(host))
260
+ continue;
207
261
  }
208
262
  catch {
209
263
  /* URL parse fail: keep the hit (the anchor scan already vetted it) */
210
264
  }
265
+ // sponsored slot: the markup immediately BEFORE this anchor decides
266
+ // whether the hit is an ad — bounded so it cannot bleed in from earlier
267
+ // results on the page.
268
+ const slotStart = Math.max(0, (m.index ?? 0) - 320);
269
+ if (AD_SLOT_RE.test(html.slice(slotStart, m.index ?? 0)))
270
+ continue;
211
271
  seen.add(key);
212
- // snippet window: this anchor's end up to the NEXT anchor (or 600
213
- // chars) — bounded so a SERP chrome wall can't bleed in
272
+ // snippet window: this anchor's end up to the NEXT organic result
273
+ // (`b_algo`) when the SERP marks those, else the next anchor, else 600
274
+ // chars. The b_algo bound matters: bing puts a nested <a> INSIDE the
275
+ // caption, so an "up to the next anchor" window cut nearly every CN
276
+ // snippet off before the text started.
214
277
  const start = (m.index ?? 0) + m[0].length;
215
- const nextStart = ai + 1 < anchors.length ? (anchors[ai + 1].index ?? start + 600) : start + 600;
216
- const snippet = extractCaptionSnippet(html.slice(start, Math.min(nextStart, start + 600)));
278
+ const capEnd = start + 600;
279
+ const nextAnchor = ai + 1 < anchors.length ? (anchors[ai + 1].index ?? capEnd) : capEnd;
280
+ const nextAlgo = html.indexOf("b_algo", start);
281
+ const end = nextAlgo > -1 && nextAlgo < capEnd ? nextAlgo : Math.min(nextAnchor, capEnd);
282
+ const snippet = extractCaptionSnippet(html.slice(start, end));
217
283
  hits.push({
218
284
  title: title.length > 110 ? title.slice(0, 110) + "…" : title,
219
285
  url: href,
@@ -281,6 +347,7 @@ export async function fetchWebText(url, allowlist, opts = {}) {
281
347
  for (let hop = 0; hop <= WEBFETCH_MAX_REDIRECTS; hop++) {
282
348
  // every hop re-checked — an allowlisted shortener cannot bounce off-site
283
349
  const verdict = checkWebUrl(current.toString(), allowlist);
350
+ const staticAllow = verdict.ok;
284
351
  if (!verdict.ok) {
285
352
  // an ASKABLE miss (allowlist only) can be walked through the official
286
353
  // dialog; hard red lines (scheme / env-file / bad URL) never ask
@@ -300,6 +367,14 @@ export async function fetchWebText(url, allowlist, opts = {}) {
300
367
  approvedHosts.add(host);
301
368
  }
302
369
  }
370
+ // CACHE — reached only when the STATIC allowlist admitted this hop, so a
371
+ // hit can neither resurrect a now-disallowed host nor skip consent the
372
+ // current config asks for. A cache failure is a miss, never an error.
373
+ if (staticAllow && opts.cache?.enabled()) {
374
+ const hit = opts.cache.get(current.toString());
375
+ if (hit)
376
+ return { text: hit.body, contentType: hit.contentType, finalUrl: current.toString(), cachedAt: hit.at };
377
+ }
303
378
  const ctrl = new AbortController();
304
379
  const timer = setTimeout(() => ctrl.abort(), timeoutMs);
305
380
  try {
@@ -338,6 +413,11 @@ export async function fetchWebText(url, allowlist, opts = {}) {
338
413
  }
339
414
  const contentType = (res.headers.get("content-type") ?? "text/plain").toLowerCase();
340
415
  const raw = await readBodyCapped(res, maxBytes);
416
+ // Store the RAW body (pre-extraction) under the SAME static-allowlist
417
+ // condition; a 2xx-only rule keeps an error page from outliving itself
418
+ // as "the content of that URL".
419
+ if (staticAllow && opts.cache?.enabled())
420
+ opts.cache.put(current.toString(), { status: res.status, contentType, body: raw });
341
421
  return { text: raw, contentType, finalUrl: current.toString() };
342
422
  }
343
423
  finally {
@@ -405,7 +485,16 @@ export function buildTmWebfetchTool(deps) {
405
485
  fetchImpl: deps.fetchImpl,
406
486
  ask: askFn,
407
487
  skipAskHosts: approvedHosts,
488
+ cache: deps.cache,
408
489
  });
490
+ // A re-served page is stated as such — an agent that believes a cache
491
+ // hit is a fresh observation propagates a stale fact into the plan.
492
+ let cacheNote = "";
493
+ if (typeof res.cachedAt === "number") {
494
+ const ageS = Math.max(0, Math.round((Date.now() - res.cachedAt) / 1000));
495
+ cacheNote = `\n(缓存命中:${ageS}s 前抓取的同一 URL,TM_WEB_CACHE_TTL_SEC=${deps.cache?.ttlSec ?? 0};需要最新内容请等 TTL 过期或换 URL)`;
496
+ pipelines.store.appendTrajectory({ tool, step_id: stepId, event: "cache_hit", age_s: ageS });
497
+ }
409
498
  // Search-engine result pages collapse to a clean hit list (title +
410
499
  // URL) BEFORE governance — the stripped page text is ~90% engine
411
500
  // chrome. Thin extraction (markup changed / anti-bot shell) falls
@@ -415,7 +504,7 @@ export function buildTmWebfetchTool(deps) {
415
504
  if (hits.length > 0) {
416
505
  const sp = (verdict.ok ? verdict.url : new URL(requested)).searchParams;
417
506
  const query = sp.get("q") ?? sp.get("wd") ?? sp.get("query") ?? sp.get("keyword") ?? "";
418
- const listing = renderSearchHits(query || res.finalUrl, "webfetch", hits);
507
+ const listing = renderSearchHits(query || res.finalUrl, "webfetch", hits) + cacheNote;
419
508
  return toToolResult(pipelines.govern(stepId, tool, listing, {
420
509
  contentType: detectContentType(listing),
421
510
  clue: `search url=${shorten(res.finalUrl, 120)}`,
@@ -455,7 +544,7 @@ export function buildTmWebfetchTool(deps) {
455
544
  }));
456
545
  }
457
546
  }
458
- return toToolResult(pipelines.govern(stepId, tool, text, {
547
+ return toToolResult(pipelines.govern(stepId, tool, text + cacheNote, {
459
548
  contentType,
460
549
  clue: `url=${shorten(res.finalUrl, 120)}`,
461
550
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"webfetch.js","sourceRoot":"","sources":["../../src/tm/webfetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAgB,MAAM,eAAe,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAiB,MAAM,aAAa,CAAA;AAE9E;;;;;6EAK6E;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAsB,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAA;AAE/F,MAAM,UAAU,mBAAmB,CAAC,SAA4B;IAC9D,MAAM,aAAa,GACjB,SAAS,CAAC,MAAM,KAAK,wBAAwB,CAAC,MAAM;QACpD,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9D,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;AAC9E,CAAC;AACD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAoB,MAAM,gBAAgB,CAAA;AAEpE;;;;sCAIsC;AACtC,MAAM,WAAW,GACf,iHAAiH,CAAA;AACnH,MAAM,eAAe,GACnB,uFAAuF,CAAA;AACzF,MAAM,wBAAwB,GAAG,yBAAyB,CAAA;AAC1D,MAAM,mBAAmB,GAAG,MAAM,CAAA;AAClC,MAAM,kBAAkB,GAAG,SAAS,CAAA;AACpC,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAEhC,2CAA2C;AAE3C,sEAAsE;AACtE,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,SAA4B;IACxE,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACtD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAClD,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG;YAAE,OAAO,KAAK,CAAA;QACrC,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;AACJ,CAAC;AAcD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY,EAAE,SAA4B;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;IACrD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAA;IAC7E,CAAC;IACD,IAAI,GAAQ,CAAA;IACZ,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAA;IACzE,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,GAAG,CAAC,QAAQ,sBAAsB,EAAE,CAAA;IACxF,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QACtE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,IAAI;YACb,GAAG;YACH,OAAO,EACL,OAAO,GAAG,CAAC,QAAQ,+BAA+B,CAAC,GAAG,wBAAwB,EAAE,GAAG,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACpH,kFAAkF;SACrF,CAAA;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;AAC1B,CAAC;AAED,oCAAoC;AAEpC;4DAC4D;AAC5D,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI;SACR,OAAO,CAAC,gCAAgC,EAAE,GAAG,CAAC;SAC9C,OAAO,CAAC,8BAA8B,EAAE,GAAG,CAAC;SAC5C,OAAO,CAAC,oCAAoC,EAAE,GAAG,CAAC;SAClD,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;SAChC,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC;SACpC,OAAO,CAAC,4DAA4D,EAAE,IAAI,CAAC;SAC3E,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;SAChC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;SAC1B,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;SACxB,IAAI,EAAE,CAAA;AACX,CAAC;AAED,iDAAiD;AAEjD;sBACsB;AACtB,MAAM,SAAS,GAAG,uEAAuE,CAAA;AAEzF;4EAC4E;AAC5E,MAAM,CAAC,MAAM,cAAc,GACzB,qHAAqH,CAAA;AAEvH;;;;;6CAK6C;AAC7C,MAAM,iBAAiB,GACrB,+GAA+G,CAAA;AAEjH;;;;6EAI6E;AAC7E,MAAM,CAAC,MAAM,4BAA4B,GAAsB,CAAC,WAAW,CAAC,CAAA;AAE5E,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAA;IAC9C,OAAO;QACL,GAAG,4BAA4B;QAC/B,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;KACxE,CAAA;AACH,CAAC;AAcD,SAAS,cAAc,CAAC,CAAS;IAC/B,OAAO,CAAC;SACL,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;AACrC,CAAC;AAED;;;yCAGyC;AACzC,MAAM,UAAU,GAAG,iDAAiD,CAAA;AAEpE,SAAS,qBAAqB,CAAC,MAAc;IAC3C,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACjC,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IACxB,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;SACvD,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAA;IACT,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,GAAG,GAAG,EAAE,EACR,YAA+B,kBAAkB,EAAE;IAEnD,MAAM,IAAI,GAAgB,EAAE,CAAA;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;IAC7C,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAA;QACrB,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QACxD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAQ;QACzC,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAQ;QAC1C,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;aACxD,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,IAAI,EAAE,CAAA;QACT,6EAA6E;QAC7E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAQ;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAQ;QAC3B,sEAAsE;QACtE,iEAAiE;QACjE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;YACjD,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAQ;QAC3E,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACb,kEAAkE;QAClE,wDAAwD;QACxD,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QAC1C,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAA;QAChG,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAC1F,IAAI,CAAC,IAAI,CAAC;YACR,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK;YAC7D,GAAG,EAAE,IAAI;YACT,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChC,CAAC,CAAA;QACF,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;YAAE,MAAK;IAC/B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;2DAE2D;AAC3D,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,MAAc,EAAE,IAAiB;IAC/E,MAAM,KAAK,GAAG,CAAC,YAAY,MAAM,OAAO,KAAK,OAAO,IAAI,CAAC,MAAM,OAAO,CAAC,CAAA;IACvE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QACrE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QACzB,IAAI,CAAC,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IACF,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;IAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAmBD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AAE5D,KAAK,UAAU,cAAc,CAAC,GAG7B,EAAE,QAAgB;IACjB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAA;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,oEAAoE;QACpE,4CAA4C;QAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1C,OAAO,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9E,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,SAAS,CAAC;QACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAC3C,IAAI,IAAI;YAAE,MAAK;QACf,KAAK,IAAI,KAAK,CAAC,UAAU,CAAA;QACzB,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9C,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YACtB,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YACpC,GAAG,IAAI,oBAAoB,CAAA;YAC3B,MAAK;QACP,CAAC;IACH,CAAC;IACD,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAQ,EACR,SAA4B,EAC5B,OAWI,EAAE;IAEN,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAK,UAAoC,CAAC,KAAK,CAAA;IAC7E,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,mBAAmB,CAAA;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAA;IACpD,IAAI,OAAO,GAAG,GAAG,CAAA;IACjB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,GAAG,EAAU,CAAA;IAC5D,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,sBAAsB,EAAE,GAAG,EAAE,EAAE,CAAC;QACvD,yEAAyE;QACzE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAA;QAC1D,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,sEAAsE;YACtE,iEAAiE;YACjE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACtE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAA;YACjC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,GAAG;oBAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAC/C,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;oBACxD,UAAU,EAAE,aAAa;oBACzB,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC9B,QAAQ,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE;iBAC7C,CAAC,CAAA;gBACF,IAAI,OAAO,KAAK,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAC5D,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;QACvD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;gBAC7C,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE;oBACP,YAAY,EAAE,WAAW;oBACzB,MAAM,EAAE,eAAe;oBACvB,iBAAiB,EAAE,wBAAwB;iBAC5C;aACF,CAAC,CAAmC,CAAA;YACrC,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;gBACvC,IAAI,CAAC,GAAG;oBAAE,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,MAAM,gBAAgB,CAAC,CAAA;gBAC5D,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;gBAC/B,SAAQ;YACV,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7C,mEAAmE;gBACnE,iEAAiE;gBACjE,4DAA4D;gBAC5D,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;gBAC5B,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;oBACzC,CAAC,CAAC,+BAA+B;oBACjC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;wBACvB,CAAC,CAAC,oBAAoB;wBACtB,CAAC,CAAC,EAAE,CAAA;gBACR,MAAM,IAAI,KAAK,CACb,QAAQ,GAAG,CAAC,MAAM,GAAG,KAAK,6BAA6B;oBACrD,0DAA0D;oBAC1D,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,4BAA4B,CAClD,CAAA;YACH,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,YAAY,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;YACpF,CAAC;YACD,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,YAAY,CAAC,CAAC,WAAW,EAAE,CAAA;YACnF,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC/C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAA;QACjE,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,SAAS,sBAAsB,SAAS,CAAC,CAAA;AAC3D,CAAC;AAED;8DAC8D;AAC9D,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,WAAmB;IACjE,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACnF,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAChD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AACrC,CAAC;AAED,wCAAwC;AAExC,MAAM,oBAAoB,GAAG;;;;;iOAKoM,CAAA;AAEjO;;0DAE0D;AAC1D,MAAM,UAAU,mBAAmB,CAAC,IAKnC;IAKC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAC/B,uEAAuE;IACvE,sEAAsE;IACtE,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IACjE,OAAO;QACL,WAAW,EAAE,oBAAoB;QACjC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI;YACjB,GAAG,EAAE,EAAE,UAAU,EAAE,sFAAsF,EAAE;YAC3G,MAAM,EAAE,EAAE,UAAU,EAAE,kHAAkH,EAAE;SAC3I;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAuB,EAAE;YACnD,MAAM,IAAI,GAAG,aAAa,CAAA;YAC1B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,CAAA;gBAC1B,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;gBACrE,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;gBACjD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;oBAChB,mEAAmE;oBACnE,2DAA2D;oBAC3D,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;wBACrC,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;oBACnE,CAAC;oBACD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;wBAC1C,UAAU,EAAE,IAAI;wBAChB,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;wBAClC,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;qBACjD,CAAC,CAAA;oBACF,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;wBAC3B,OAAO,YAAY,CACjB,OAAO,CACL,IAAI,EACJ,YAAY,EACZ,OAAO,CAAC,OAAO;4BACb,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAC9D,CACF,CAAA;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,CAAA;gBACrC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;gBAC1E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;gBACxG,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,CAAA;gBACvC,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE;oBACvF,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,GAAG,EAAE,KAAK;oBACV,YAAY,EAAE,aAAa;iBAC5B,CAAC,CAAA;gBACF,mEAAmE;gBACnE,iEAAiE;gBACjE,mEAAmE;gBACnE,kCAAkC;gBAClC,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtC,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBACxC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpB,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAA;wBACvE,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;wBACvF,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;wBACzE,OAAO,YAAY,CACjB,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;4BACtC,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC;4BACvC,IAAI,EAAE,cAAc,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;yBACjD,CAAC,CACH,CAAA;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;gBAC9D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBACjB,oEAAoE;oBACpE,6DAA6D;oBAC7D,OAAO,YAAY,CACjB,OAAO,CACL,IAAI,EACJ,SAAS,EACT,8IAA8I,CAC/I,CACF,CAAA;gBACH,CAAC;gBACD,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;gBAC3C,oEAAoE;gBACpE,gEAAgE;gBAChE,mEAAmE;gBACnE,oEAAoE;gBACpE,kEAAkE;gBAClE,oEAAoE;gBACpE,qEAAqE;gBACrE,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;gBACxE,IAAI,MAAM,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;oBACrC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAA;oBAC/D,IAAI,IAAI,EAAE,CAAC;wBACT,MAAM,IAAI,GAAG;4BACX,qBAAqB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;4BACjD,WAAW,MAAM,eAAe,IAAI,CAAC,OAAO,GAC1C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,aAAa,UAAU,CAAC,CAAC,CAAC,EAC1D,EAAE;4BACF,IAAI,CAAC,OAAO,KAAK,CAAC;gCAChB,CAAC,CAAC,uDAAuD;gCACzD,CAAC,CAAC,4BAA4B;4BAChC,YAAY;yBACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;wBACZ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;wBAClF,OAAO,YAAY,CACjB,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;4BACxC,WAAW,EAAE,MAAM;4BACnB,IAAI,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;yBACxE,CAAC,CACH,CAAA;oBACH,CAAC;gBACH,CAAC;gBACD,OAAO,YAAY,CACjB,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;oBACnC,WAAW;oBACX,IAAI,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;iBAC1C,CAAC,CACH,CAAA;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,GAA2C,CAAA;gBACrD,IAAI,CAAC,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC7B,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,0BAA0B,CAAC,CAAC,CAAA;gBAC3E,CAAC;gBACD,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,IAAI,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAA;YAC3F,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"webfetch.js","sourceRoot":"","sources":["../../src/tm/webfetch.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -74,9 +74,25 @@ export interface ToolExecuteBeforeOutput {
74
74
  * sees. Anything else (bare handles, structured error objects) breaks the
75
75
  * host's result pipeline — real-session crash `c.split` on a non-string —
76
76
  * so every return path must ride inside `output`.
77
+ *
78
+ * `attachments` is the SAME contract (tool.d.ts:33-38 `ToolAttachment`): a
79
+ * `{type:"file", mime, url}` entry the host turns into a FilePart on the tool
80
+ * result, which is how tm_browser hands a screenshot's PIXELS to a vision
81
+ * model instead of only a path. It is opt-in per call (token economy) and
82
+ * every attachment-producing path still writes the file and prints its path,
83
+ * so a host that ignores `attachments` degrades to the old path-only
84
+ * behavior rather than losing the artifact.
77
85
  */
86
+ export interface ToolAttachment {
87
+ type: "file";
88
+ mime: string;
89
+ /** data: URL (base64) or a file/asset URL the host understands. */
90
+ url: string;
91
+ filename?: string;
92
+ }
78
93
  export interface ToolResultObject {
79
94
  output: string;
95
+ attachments?: ToolAttachment[];
80
96
  [key: string]: unknown;
81
97
  }
82
98
  export type ToolResult = string | ToolResultObject;
@@ -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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"}
@@ -47,8 +47,10 @@ unreachable from mainland-China networks. If fetching it fails, retry with
47
47
  the mirror prefix — `https://ghproxy.net/` + the same full URL. Both hosts
48
48
  are on TeamMode's seeded `tm_webfetch` allowlist, so the governed fetch tool
49
49
  can read either. After the plugin is installed and OpenCode restarted, the
50
- same guide also ships inside the package at
51
- `<opencode-cache>/packages/@te_river+opencode-team-mode@<version>/docs/installation.md`.
50
+ same guide also ships inside the package, under whichever cache layout this
51
+ machine uses: scoped
52
+ `<opencode-cache>/packages/@te-river/opencode-team-mode@<version>/docs/installation.md`
53
+ or flat `<opencode-cache>/packages/@te_river+opencode-team-mode@<version>/docs/installation.md`.
52
54
 
53
55
  ### Step 4 — Verify
54
56
 
@@ -56,16 +58,27 @@ After restart, verify in this order:
56
58
 
57
59
  1. The agent picker (`@` mentions) lists: **team, architect, implementer, reviewer, tester, researcher**.
58
60
  2. Slash commands `/team-plan`, `/team-implement`, `/team-review`, `/team-test`, `/team-research`, `/team-run` autocomplete.
59
- 3. Optional deeper check: `npm view @te-river/opencode-team-mode version` shows the latest published version; ask the user to start a chat and confirm the **team** agent responds.
61
+ 3. Optional deeper check: `npm view @te-river/opencode-team-mode version` shows the latest **published** version — but it queries the npm registry, **not** what OpenCode actually loads, so it misleads after an update. To confirm the **running** version, either read the `version` field of the cached `package.json` (`~/.cache/opencode/packages/@te-river/opencode-team-mode@latest/package.json` in the scoped layout, or `.../packages/@te_river+opencode-team-mode@latest/package.json` flat), or probe a feature that exists only in the new version (e.g. ask an agent to run `tm_memory` with `action: compact` — old builds reject it). Finally, ask the user to start a chat and confirm the **team** agent responds.
60
62
 
61
63
  Report which checks passed. If verification fails, see Troubleshooting.
62
64
 
63
65
  ### Updating
64
66
 
67
+ > ⚠️ **OpenCode loads the plugin from this spec-string cache under
68
+ > `~/.cache/opencode/packages/` — NOT from the `~/.config/opencode/node_modules`
69
+ > copy.** The cache dir has two layouts: **scoped**
70
+ > (`packages/@te-river/opencode-team-mode@latest/`, observed on real machines)
71
+ > and **flat** (`packages/@te_river+opencode-team-mode@latest/`). A purge that
72
+ > only globs the *top level* of `packages/` never sees the scoped copy nested
73
+ > inside `@te-river/` — the upgrade then **silently fails** and OpenCode keeps
74
+ > loading the old version after restart. **The purge must RECURSE down to the
75
+ > `@te-river` scope layer** (both installers now do).
76
+
65
77
  > The installer is idempotent: **re-running it IS the update.** It re-patches
66
- > the config (no-op when present), purges the stale plugin cache, and
67
- > re-resolves any npm-installed copy. This exists because OpenCode caches
68
- > plugins by spec string (`~/.cache/opencode/packages/<name>@latest`) and
78
+ > the config (no-op when present), recursively purges the stale plugin cache
79
+ > (both layouts), and re-resolves any npm-installed copy. This exists because
80
+ > OpenCode caches plugins by spec string
81
+ > (`~/.cache/opencode/packages/<scope>/<name>@latest`) and
69
82
  > does not re-resolve `@latest` when a new version publishes (upstream
70
83
  > limitation).
71
84
 
@@ -93,9 +106,101 @@ https://raw.githubusercontent.com/Te-River/Opencode-TeamMode/main/docs/installat
93
106
 
94
107
  **Path 3 — manual** (what the scripts automate):
95
108
 
96
- 1. Delete the cached package directory: `rm -rf ~/.cache/opencode/packages/@te_river+opencode-team-mode@latest` (Windows PowerShell: `Remove-Item -Recurse -Force "$env:LOCALAPPDATA\opencode\cache\packages\@te_river+opencode-team-mode@latest"` — also check `~/.cache/opencode/packages/` under the user profile; remove any directory matching `*opencode-team-mode*`).
109
+ 1. Delete the cached package directory — **recursively**, covering BOTH layouts:
110
+ scoped `~/.cache/opencode/packages/@te-river/opencode-team-mode@latest` and
111
+ flat `~/.cache/opencode/packages/@te_river+opencode-team-mode@latest` (the
112
+ scoped one is what a top-level glob misses):
113
+
114
+ ```bash
115
+ # macOS / Linux — GNU/BSD-safe POSIX form (`xargs -r` is GNU-only and fails
116
+ # on macOS). -prune lists each match without descending into it, so a
117
+ # bundled node_modules/@te-river/opencode-team-mode never appears (its
118
+ # parent rm already took it)
119
+ find ~/.cache/opencode/packages -type d -name '*opencode-team-mode*' -prune -exec rm -rf {} +
120
+ ```
121
+
122
+ ```powershell
123
+ # Windows PowerShell — run for BOTH roots; Test-Path guards each, because
124
+ # the second root often does not exist (avoids red error noise).
125
+ # Sort by path length = parents first; vanished children absorbed by SilentlyContinue.
126
+ foreach ($root in "$HOME\.cache\opencode\packages", "$env:LOCALAPPDATA\opencode\cache\packages") {
127
+ if (Test-Path $root) {
128
+ Get-ChildItem -Path $root -Directory -Recurse -Filter '*opencode-team-mode*' -ErrorAction SilentlyContinue |
129
+ Sort-Object { $_.FullName.Length } |
130
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
131
+ }
132
+ }
133
+ ```
134
+
135
+ Both commands delete the `@latest` dirs in either layout and leave the
136
+ `@te-river` scope directory itself in place.
97
137
  2. If the plugin was also npm-installed into `~/.config/opencode` (check its `package.json` / `package-lock.json`), run `npm install @te-river/opencode-team-mode@latest` there.
98
- 3. Restart OpenCode and re-verify.
138
+ 3. Restart OpenCode and re-verify — see **Verifying the update actually took
139
+ effect** below.
140
+
141
+ #### Verifying the update actually took effect
142
+
143
+ 1. Fully quit and restart OpenCode (the plugin loads once at startup).
144
+ 2. **Do not trust `npm view @te-river/opencode-team-mode version`** — it
145
+ queries the npm registry and reports the latest *published* version even
146
+ when OpenCode is still loading the stale cache. Confirm the **running**
147
+ version instead:
148
+ - Read the `version` field of the cache directory's `package.json` after
149
+ the restart re-resolves it —
150
+ `~/.cache/opencode/packages/@te-river/opencode-team-mode@latest/package.json`
151
+ (scoped) or
152
+ `~/.cache/opencode/packages/@te_river+opencode-team-mode@latest/package.json`
153
+ (flat). That file is what OpenCode just loaded; compare it with `npm view`.
154
+ - Or probe a feature that only exists in the new version — e.g. have an
155
+ agent call `tm_memory` with `action: compact`: builds without the memory
156
+ compaction release reject the unknown action.
157
+ 3. Still the old version? Re-run the recursive delete from step 1 — a
158
+ non-recursive glob that misses the `@te-river` scope layer is the usual
159
+ culprit — then restart again.
160
+
161
+ ### Manual, script-free procedure (fallback if the installer is unavailable or misbehaves)
162
+
163
+ The one-line installer only automates the steps below — you can do all of them
164
+ by hand. Run the full sequence for a fresh install; for an update, **step 2
165
+ (recursive cache purge) is the part that matters** (a stale `@latest` cache is
166
+ never re-resolved on its own).
167
+
168
+ 1. **Point the config at the plugin.** Ensure `~/.config/opencode/opencode.jsonc`
169
+ exists (if only `opencode.json` is present, copy it to `.jsonc` first — the
170
+ `.jsonc` wins) and that its `"plugin"` array contains the entry. Merge, don't
171
+ clobber unrelated keys:
172
+ ```jsonc
173
+ { "$schema": "https://opencode.ai/config.json",
174
+ "plugin": ["@te-river/opencode-team-mode@latest"] }
175
+ ```
176
+ 2. **Purge any stale cache — recursively, both layouts.** OpenCode loads from
177
+ `~/.cache/opencode/packages/` and caches by spec string, so a previously
178
+ cached `@latest` is NOT refreshed on its own. A top-level glob misses the
179
+ scoped copy nested under `@te-river/` — recurse:
180
+ - macOS / Linux (GNU/BSD-safe; `-prune` lists each match without descending):
181
+ ```bash
182
+ find ~/.cache/opencode/packages -type d -name '*opencode-team-mode*' -prune -exec rm -rf {} +
183
+ ```
184
+ - Windows PowerShell (run for BOTH roots; `Test-Path` guards the often-missing
185
+ second; parents deleted before their nested matches):
186
+ ```powershell
187
+ foreach ($root in "$HOME\.cache\opencode\packages", "$env:LOCALAPPDATA\opencode\cache\packages") {
188
+ if (Test-Path $root) {
189
+ Get-ChildItem $root -Directory -Recurse -Filter '*opencode-team-mode*' -ErrorAction SilentlyContinue |
190
+ Sort-Object { $_.FullName.Length } |
191
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
192
+ }
193
+ }
194
+ ```
195
+ 3. **Resolve it with npm** (also fixes a `package-lock.json` pin in the config
196
+ dir): `cd ~/.config/opencode && npm install @te-river/opencode-team-mode@latest`.
197
+ If that dir has no `package.json`, OpenCode resolves `@latest` from the config
198
+ entry on next start — this step is then optional but harmless.
199
+ 4. **Fully quit and restart OpenCode** (tray/menu quit, not just closing the
200
+ window) — the plugin loads once at startup.
201
+ 5. **Verify the RUNNING version** — read the cached `package.json`'s `version`,
202
+ or probe a new-version-only feature (`tm_memory action: compact`). Do **not**
203
+ trust `npm view` alone (it reports the registry, not what OpenCode loaded).
99
204
 
100
205
  ### Uninstalling
101
206
 
@@ -108,7 +213,8 @@ https://raw.githubusercontent.com/Te-River/Opencode-TeamMode/main/docs/installat
108
213
  | Symptom | Cause | Fix |
109
214
  |---|---|---|
110
215
  | Agents don't appear | OpenCode not restarted, or config file is the wrong one | Fully restart; confirm the file you edited is the one OpenCode loads |
111
- | Version is old despite `@latest` | Plugin cache never invalidates | See Updating — delete the cache dir |
216
+ | Version is old despite `@latest` | Plugin cache never invalidates | See Updating — delete the cache dir (recursively; both layouts) |
217
+ | Still the old version after bumping the version or re-running the installer | The scoped cache `packages/@te-river/opencode-team-mode@latest` is nested below the top-level `packages/*opencode-team-mode*` glob, so the stale copy was never purged | Recursively delete that cache dir (`Get-ChildItem -Recurse -Filter '*opencode-team-mode*'` / `find -type d -name '*opencode-team-mode*' -prune`), then restart — the current installers already recurse |
112
218
  | Node version error on startup | npm needs Node ≥ 18 | Upgrade Node |
113
219
  | Env-var commands suddenly prompt for confirmation | That's the plugin's R6 protection working as designed | Approve once per operation, or set `TM_ENV_PROTECT=off` (not recommended) |
114
220
  | A user-defined agent named `team`/`architect`/… got shadowed | Plugin injects defaults; your own definitions always win | The plugin never clobbers user agents — check for typos in your agent names |
@@ -153,8 +259,9 @@ https://raw.githubusercontent.com/Te-River/Opencode-TeamMode/main/docs/installat
153
259
  本指南托管在 `raw.githubusercontent.com`,中国大陆网络经常无法直达。抓取
154
260
  失败时改用镜像前缀重试——`https://ghproxy.net/` + 同样的完整 URL。两个主机
155
261
  都在 TeamMode 的 `tm_webfetch` 种子白名单内,受治理的抓取工具可以直读。
156
- 插件装好、OpenCode 重启之后,同一份指南也在包内:
157
- `<opencode-cache>/packages/@te_river+opencode-team-mode@<版本>/docs/installation.md`。
262
+ 插件装好、OpenCode 重启之后,同一份指南也在包内,路径取决于本机缓存布局——
263
+ 作用域式:`<opencode-cache>/packages/@te-river/opencode-team-mode@<版本>/docs/installation.md`;
264
+ 扁平式:`<opencode-cache>/packages/@te_river+opencode-team-mode@<版本>/docs/installation.md`。
158
265
 
159
266
  ### 第 4 步 — 验证
160
267
 
@@ -162,15 +269,25 @@ https://raw.githubusercontent.com/Te-River/Opencode-TeamMode/main/docs/installat
162
269
 
163
270
  1. Agent 选择器(`@` 提及)里出现:**team、architect、implementer、reviewer、tester、researcher**。
164
271
  2. 斜杠命令 `/team-plan`、`/team-implement`、`/team-review`、`/team-test`、`/team-research`、`/team-run` 可以自动补全。
165
- 3. 可选的深度检查:`npm view @te-river/opencode-team-mode version` 显示最新发布版本;请用户开一个会话确认 **team** agent 能正常响应。
272
+ 3. 可选的深度检查:`npm view @te-river/opencode-team-mode version` 显示**已发布**的最新版本——但它查的是 npm registry,**不是** OpenCode 实际加载的东西,升级后会造成误判。要确认**运行版本**:读缓存目录里 `package.json` 的 `version`(作用域式 `~/.cache/opencode/packages/@te-river/opencode-team-mode@latest/package.json`,扁平式 `.../packages/@te_river+opencode-team-mode@latest/package.json`),或用只存在于新版的特性做探针(例:让 agent 调用 `tm_memory` 的 `action: compact`——旧版没有该 action 会报错)。最后请用户开一个会话确认 **team** agent 能正常响应。
166
273
 
167
274
  报告哪些检查通过。验证失败时看"故障排查"。
168
275
 
169
276
  ### 更新
170
277
 
278
+ > ⚠️ **OpenCode 加载插件用的是这份按 spec 字符串缓存的副本——
279
+ > `~/.cache/opencode/packages/` 下的目录,不是 `~/.config/opencode/node_modules`
280
+ > 里的那份。** 缓存目录有两种布局:**作用域式**
281
+ > (`packages/@te-river/opencode-team-mode@latest/`,本机实测就是这种)和
282
+ > **扁平式**(`packages/@te_river+opencode-team-mode@latest/`)。只匹配
283
+ > `packages/` **顶层**的清理逻辑扫不到嵌在 `@te-river/` 作用域层里的缓存——
284
+ > 升级会**静默失效**,重启后仍从旧版缓存加载。**purge 必须递归到
285
+ > `@te-river` 作用域层**(两个安装器现已改为递归清理)。
286
+
171
287
  > 安装器是幂等的:**重跑安装器就是更新。** 它会补齐配置(已存在则跳过)、
172
- > 清掉过期插件缓存、并重解析 npm 安装的副本。之所以需要这一步:OpenCode
173
- > 按 spec 字符串缓存插件(`~/.cache/opencode/packages/<name>@latest`),
288
+ > **递归**清掉过期插件缓存(两种布局都清)、并重解析 npm 安装的副本。
289
+ > 之所以需要这一步:OpenCode 按 spec 字符串缓存插件
290
+ > (`~/.cache/opencode/packages/<scope>/<name>@latest`),
174
291
  > 新版本发布后不会重新解析 `@latest`(上游已知问题)。
175
292
 
176
293
  **路径一 —— 重跑一行安装器:**
@@ -197,9 +314,90 @@ https://raw.githubusercontent.com/Te-River/Opencode-TeamMode/main/docs/installat
197
314
 
198
315
  **路径三 —— 手动**(脚本自动化的内容):
199
316
 
200
- 1. 删除缓存的包目录:`rm -rf ~/.cache/opencode/packages/@te_river+opencode-team-mode@latest`(Windows PowerShell:`Remove-Item -Recurse -Force "$env:LOCALAPPDATA\opencode\cache\packages\@te_river+opencode-team-mode@latest"`——用户目录下的 `~/.cache/opencode/packages/` 也要检查;删除所有匹配 `*opencode-team-mode*` 的目录)。
317
+ 1. **递归**删除缓存的包目录,两种布局都要覆盖:作用域式
318
+ `~/.cache/opencode/packages/@te-river/opencode-team-mode@latest` 与扁平式
319
+ `~/.cache/opencode/packages/@te_river+opencode-team-mode@latest`
320
+ (作用域式正是顶层通配符漏掉的那种):
321
+
322
+ ```bash
323
+ # macOS / Linux —— GNU/BSD 双安全的 POSIX 写法(`xargs -r` 是 GNU 专有,macOS 会报错)
324
+ # find -prune 命中即停、不再下钻,
325
+ # 因此包内自带的 node_modules/@te-river/opencode-team-mode 不会被列出
326
+ # (随父目录一起被删)
327
+ find ~/.cache/opencode/packages -type d -name '*opencode-team-mode*' -prune -exec rm -rf {} +
328
+ ```
329
+
330
+ ```powershell
331
+ # Windows PowerShell —— 两个根都要跑,并用 Test-Path 逐个包住:
332
+ # 第二个 root 常常不存在,避免红字噪音。
333
+ # 按路径长度排序 = 父目录先删;已随父消失的子项由 SilentlyContinue 兜住。
334
+ foreach ($root in "$HOME\.cache\opencode\packages", "$env:LOCALAPPDATA\opencode\cache\packages") {
335
+ if (Test-Path $root) {
336
+ Get-ChildItem -Path $root -Directory -Recurse -Filter '*opencode-team-mode*' -ErrorAction SilentlyContinue |
337
+ Sort-Object { $_.FullName.Length } |
338
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
339
+ }
340
+ }
341
+ ```
342
+
343
+ 两条命令都会删掉两种布局的 `@latest` 目录,且不动 `@te-river` 作用域目录本身。
201
344
  2. 如果插件还被 npm 装进了 `~/.config/opencode`(检查它的 `package.json` / `package-lock.json`),在那里执行 `npm install @te-river/opencode-team-mode@latest`。
202
- 3. 重启 OpenCode 并重新验证。
345
+ 3. 重启 OpenCode 并重新验证——见下方**验证升级真的生效**。
346
+
347
+ #### 验证升级真的生效
348
+
349
+ 1. 完全退出并重启 OpenCode(插件只在启动时加载一次)。
350
+ 2. **别只看 `npm view @te-river/opencode-team-mode version`**——它查的是
351
+ npm registry,OpenCode 明明还在加载旧缓存时它照样报最新版,会误导你。
352
+ 要确认的是**运行版本**:
353
+ - 重启重新拉取后,读缓存目录里的 `package.json` 的 `version`——
354
+ `~/.cache/opencode/packages/@te-river/opencode-team-mode@latest/package.json`
355
+ (作用域式)或
356
+ `~/.cache/opencode/packages/@te_river+opencode-team-mode@latest/package.json`
357
+ (扁平式)。那里才是 OpenCode 刚加载的版本,再与 `npm view` 对比。
358
+ - 或用只存在于新版的特性做探针——例:让 agent 调用 `tm_memory` 的
359
+ `action: compact`,没有该 action 的旧版会直接报错。
360
+ 3. 仍是旧版?把第 1 步的递归删除再跑一遍(非递归 glob 漏掉 `@te-river`
361
+ 作用域层是最常见原因),然后再重启。
362
+
363
+ ### 纯手动流程(安装脚本不可用或出错时的回退方案)
364
+
365
+ 一行安装器只是把下面这些步骤自动化了——你完全可以手动执行。全新安装跑完整序列;**升级时第 2 步(递归清缓存)是关键**(旧的 `@latest` 缓存不会自行刷新)。
366
+
367
+ 1. **让配置指向插件。** 确认 `~/.config/opencode/opencode.jsonc` 存在(若只有
368
+ `opencode.json`,先复制成 `.jsonc`——`.jsonc` 优先),且其 `"plugin"` 数组含该
369
+ 条目。合并,别覆盖无关的键:
370
+ ```jsonc
371
+ { "$schema": "https://opencode.ai/config.json",
372
+ "plugin": ["@te-river/opencode-team-mode@latest"] }
373
+ ```
374
+ 2. **递归清理过期缓存——两种布局都覆盖。** OpenCode 从
375
+ `~/.cache/opencode/packages/` 加载、按 spec 字符串缓存,旧的 `@latest` 不会自行
376
+ 刷新。顶层通配符扫不到嵌在 `@te-river/` 下的作用域副本——必须递归:
377
+ - macOS / Linux(GNU/BSD 双安全;`-prune` 命中即停、不下钻):
378
+ ```bash
379
+ find ~/.cache/opencode/packages -type d -name '*opencode-team-mode*' -prune -exec rm -rf {} +
380
+ ```
381
+ - Windows PowerShell(两个根都跑;`Test-Path` 包住常缺失的第二个;父目录先于其
382
+ 嵌套匹配删除):
383
+ ```powershell
384
+ foreach ($root in "$HOME\.cache\opencode\packages", "$env:LOCALAPPDATA\opencode\cache\packages") {
385
+ if (Test-Path $root) {
386
+ Get-ChildItem $root -Directory -Recurse -Filter '*opencode-team-mode*' -ErrorAction SilentlyContinue |
387
+ Sort-Object { $_.FullName.Length } |
388
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
389
+ }
390
+ }
391
+ ```
392
+ 3. **用 npm 解析**(同时修掉 config 目录里的 `package-lock.json` 锁版本):
393
+ `cd ~/.config/opencode && npm install @te-river/opencode-team-mode@latest`。
394
+ 若该目录没有 `package.json`,OpenCode 会在下次启动按配置里的 `@latest` 解析——
395
+ 此步可跳过但无害。
396
+ 4. **完全退出并重启 OpenCode**(从托盘/菜单退出,不是只关窗口)——插件只在启动时
397
+ 加载一次。
398
+ 5. **验证运行版本**——读缓存目录里 `package.json` 的 `version`,或用只存在于新版的
399
+ 特性探针(`tm_memory action: compact`)。**别只信 `npm view`**(它查 registry,
400
+ 不是 OpenCode 实际加载的东西)。
203
401
 
204
402
  ### 卸载
205
403
 
@@ -212,7 +410,8 @@ https://raw.githubusercontent.com/Te-River/Opencode-TeamMode/main/docs/installat
212
410
  | 症状 | 原因 | 修复 |
213
411
  |---|---|---|
214
412
  | Agents 没出现 | OpenCode 没重启,或改错了配置文件 | 完全重启;确认改的文件就是 OpenCode 加载的那个 |
215
- | 用着 `@latest` 版本还是旧的 | 插件缓存永不失效 | 见"更新"——删除缓存目录 |
413
+ | 用着 `@latest` 版本还是旧的 | 插件缓存永不失效 | 见"更新"——递归删除缓存目录(两种布局) |
414
+ | 改了版本/重跑安装器后仍是旧版 | 作用域缓存 `packages/@te-river/opencode-team-mode@latest` 嵌在顶层 `packages/*opencode-team-mode*` 通配符扫不到的下一层,旧副本根本没被清掉 | 递归删除该缓存目录(`Get-ChildItem -Recurse -Filter '*opencode-team-mode*'` / `find -type d -name '*opencode-team-mode*' -prune`)后重启——当前安装器已改为递归清理 |
216
415
  | 启动报 Node 版本错误 | npm 需要 Node ≥ 18 | 升级 Node |
217
416
  | 环境变量命令突然弹确认框 | 这是插件的 R6 保护在正常工作 | 每个操作选"一次",或设 `TM_ENV_PROTECT=off`(不推荐) |
218
417
  | 用户自定义的 `team`/`architect` 等 agent 被遮蔽 | 插件注入默认值;你的定义永远优先 | 插件从不覆盖用户 agent——检查你的 agent 名字有没有拼错 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@te-river/opencode-team-mode",
3
- "version": "1.5.12",
3
+ "version": "1.5.14",
4
4
  "description": "Team collaboration mode plugin for OpenCode Desktop — injects specialized agents (architect, reviewer, implementer, tester, researcher) and team workflow commands into your OpenCode workspace.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -20,7 +20,7 @@
20
20
  ],
21
21
  "scripts": {
22
22
  "build": "tsc",
23
- "test": "tsc && node test-blackboard.mjs && node test-envprotect.mjs && node test-tm-tools.mjs && node test-default-agent.mjs && node test-memory.mjs && node test-browser.mjs",
23
+ "test": "tsc && node test-blackboard.mjs && node test-envprotect.mjs && node test-tm-tools.mjs && node test-hosthooks.mjs && node test-default-agent.mjs && node test-memory.mjs && node test-browser.mjs",
24
24
  "prepublishOnly": "tsc",
25
25
  "dev": "tsc --watch"
26
26
  },