@te-river/opencode-team-mode 1.5.12 → 1.5.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -6
- package/README.zh-CN.md +25 -4
- package/dist/agents.d.ts +5 -1
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +20 -0
- package/dist/agents.js.map +1 -1
- package/dist/host-hooks.d.ts +115 -0
- package/dist/host-hooks.d.ts.map +1 -0
- package/dist/host-hooks.js +270 -0
- package/dist/host-hooks.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -4
- package/dist/index.js.map +1 -1
- package/dist/prompts/lead.d.ts +1 -1
- package/dist/prompts/lead.d.ts.map +1 -1
- package/dist/prompts/lead.js +71 -8
- package/dist/prompts/lead.js.map +1 -1
- package/dist/prompts/shared.d.ts +1 -1
- package/dist/prompts/shared.d.ts.map +1 -1
- package/dist/prompts/shared.js +51 -2
- package/dist/prompts/shared.js.map +1 -1
- package/dist/prompts/specialists.d.ts +1 -1
- package/dist/prompts/specialists.d.ts.map +1 -1
- package/dist/prompts/specialists.js +38 -17
- package/dist/prompts/specialists.js.map +1 -1
- package/dist/tm/args-schema.d.ts +7 -1
- package/dist/tm/args-schema.d.ts.map +1 -1
- package/dist/tm/args-schema.js +9 -3
- package/dist/tm/args-schema.js.map +1 -1
- package/dist/tm/bash-timeout.d.ts +72 -0
- package/dist/tm/bash-timeout.d.ts.map +1 -0
- package/dist/tm/bash-timeout.js +100 -0
- package/dist/tm/bash-timeout.js.map +1 -0
- package/dist/tm/browser.d.ts +66 -5
- package/dist/tm/browser.d.ts.map +1 -1
- package/dist/tm/browser.js +476 -89
- package/dist/tm/browser.js.map +1 -1
- package/dist/tm/config.d.ts +68 -0
- package/dist/tm/config.d.ts.map +1 -1
- package/dist/tm/config.js +62 -0
- package/dist/tm/config.js.map +1 -1
- package/dist/tm/dispatch.d.ts +95 -0
- package/dist/tm/dispatch.d.ts.map +1 -0
- package/dist/tm/dispatch.js +369 -0
- package/dist/tm/dispatch.js.map +1 -0
- package/dist/tm/index.d.ts +27 -4
- package/dist/tm/index.d.ts.map +1 -1
- package/dist/tm/index.js +38 -3
- package/dist/tm/index.js.map +1 -1
- package/dist/tm/pty.d.ts +70 -0
- package/dist/tm/pty.d.ts.map +1 -0
- package/dist/tm/pty.js +242 -0
- package/dist/tm/pty.js.map +1 -0
- package/dist/tm/search.d.ts +51 -7
- package/dist/tm/search.d.ts.map +1 -1
- package/dist/tm/search.js +151 -37
- package/dist/tm/search.js.map +1 -1
- package/dist/tm/webfetch.d.ts +4 -0
- package/dist/tm/webfetch.d.ts.map +1 -1
- package/dist/tm/webfetch.js +33 -5
- package/dist/tm/webfetch.js.map +1 -1
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/installation.md +216 -17
- package/package.json +2 -2
|
@@ -210,24 +210,41 @@ by the team — flag prominently if that is the case.
|
|
|
210
210
|
## Web lookups (two channels)
|
|
211
211
|
You are one of the two network roles (the other is the team lead).
|
|
212
212
|
1. HIGH priority — TeamMode governed tools:
|
|
213
|
-
- tm_search (open-ended lookups):
|
|
214
|
-
engine
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
213
|
+
- tm_search (open-ended lookups): pass the RAW query with
|
|
214
|
+
engine:"auto" (the default) — it classifies the query, fans the
|
|
215
|
+
matching engines out IN PARALLEL, dedupes and fuses them into one
|
|
216
|
+
ranked hit list, so a hit two engines agree on outranks one
|
|
217
|
+
engine's confident junk. Engines behind auto: bing (the only live
|
|
218
|
+
CN HTML SERP) · stackoverflow · hn · github · npm · moegirl ·
|
|
219
|
+
bilibili; name one explicitly only for a second opinion.
|
|
220
|
+
ONE SEARCH IS A SAMPLE, NOT A SEARCH: if the list does not answer
|
|
221
|
+
the question, re-query 2-3 times with a narrowed or translated
|
|
222
|
+
phrasing (a Chinese concept often has better material under its
|
|
223
|
+
English term, and vice versa) BEFORE concluding "not found", and
|
|
224
|
+
record what each query was for in EVIDENCE. An empty result names
|
|
225
|
+
the alternative engines — switch, never retry the same one.
|
|
219
226
|
- tm_webfetch (known URL): one governed GET of an allowlisted page;
|
|
220
|
-
search-engine result pages it fetches are auto-extracted to hit
|
|
227
|
+
search-engine result pages it fetches are auto-extracted to hit
|
|
228
|
+
lists. A hit tagged (域名不在白名单,需批准)needs the approval
|
|
229
|
+
dialog before it can be read — prefer a hit you can fetch, or
|
|
230
|
+
tm_browser it.
|
|
221
231
|
- tm_browser (interactive): snapshot-first automation — open →
|
|
222
232
|
take_snapshot → act ONLY on the [uid=eN] tokens → observe again.
|
|
223
233
|
16 playwright verbs (navigate_page, take_snapshot, click, fill,
|
|
224
234
|
hover, drag, press_key, select_page, upload_file, wait_for,
|
|
225
235
|
evaluate_script, list_console_messages, list_network_requests,
|
|
226
236
|
list_pages, take_screenshot, handle_dialog) plus compat verbs open
|
|
227
|
-
/ navigate / read (page text) / screenshot / close.
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
237
|
+
/ navigate / read (page text) / screenshot / close. On a desktop
|
|
238
|
+
this opens a VISIBLE window of the user's OWN browser channel (an
|
|
239
|
+
Edge Beta default opens Edge Beta); headless only when the operator
|
|
240
|
+
sets TM_BROWSER_HEADLESS — there is no headless parameter for you
|
|
241
|
+
to pass. When a snapshot ends with "N 个子资源请求被拦截" the
|
|
242
|
+
governance gate trimmed the page: that is NOT "the site has no
|
|
243
|
+
images" — report the blocked hosts in FINDINGS instead. When your
|
|
244
|
+
UI work is done, action:"close" and quote the tool's own line
|
|
245
|
+
(已确认关闭 vs 警告:关闭未完全成功) — never tell the user a window
|
|
246
|
+
is gone because you asked for it to close. Isolated temp profile;
|
|
247
|
+
navigation is domain-allowlisted at the network layer.
|
|
231
248
|
2. FALLBACK — user-configured MCP/plugin tools (browser automation, web
|
|
232
249
|
search, page fetchers) for what tm_search / tm_browser / tm_webfetch
|
|
233
250
|
cannot do.
|
|
@@ -235,17 +252,19 @@ You are one of the two network roles (the other is the team lead).
|
|
|
235
252
|
TM_WEBFETCH_ALLOWED_DOMAINS):
|
|
236
253
|
- wiki term: https://mobile.moegirl.org.cn/TERM
|
|
237
254
|
- bilibili: https://search.bilibili.com/all?keyword=QUERY
|
|
238
|
-
- bing: https://cn.bing.com/search?q=QUERY
|
|
239
|
-
|
|
240
|
-
-
|
|
241
|
-
- sogou: https://www.sogou.com/web?query=QUERY
|
|
242
|
-
- 360: https://www.so.com/s?q=QUERY
|
|
255
|
+
- bing: https://cn.bing.com/search?q=QUERY
|
|
256
|
+
- SO question: https://api.stackexchange.com/2.3/search/advanced?order=desc&sort=relevance&q=QUERY&site=stackoverflow
|
|
257
|
+
- HN story: https://hn.algolia.com/api/v1/search?query=QUERY&tags=story
|
|
243
258
|
- npm pkg: https://registry.npmjs.org/<pkg>/latest
|
|
244
259
|
- npm search: https://registry.npmjs.org/-/v1/search?text=QUERY
|
|
245
260
|
- gh repos: https://api.github.com/search/repositories?q=QUERY
|
|
246
261
|
- gh raw: https://raw.githubusercontent.com/<owner>/<repo>/<branch>/<path>
|
|
247
262
|
- gh mirror: https://ghproxy.net/https://raw.githubusercontent.com/...
|
|
248
263
|
(use when raw.githubusercontent.com is unreachable)
|
|
264
|
+
sogou / so(360) / baidu / international bing are DEAD ENDS from a CN
|
|
265
|
+
host (a live benchmark showed anti-bot shells and 100% empty pages) —
|
|
266
|
+
never build a search URL there, even though their domains stay on the
|
|
267
|
+
fetch allowlist.
|
|
249
268
|
URL-encode the query (CJK terms too). Expand colloquial, abbreviated,
|
|
250
269
|
or aliased terms to canonical forms and fetch BOTH spellings before
|
|
251
270
|
concluding "not found".
|
|
@@ -258,7 +277,9 @@ Local-repo recon is PTC-first: multi-file reading, bulk grep+read
|
|
|
258
277
|
aggregation, cross-referencing searches → ONE tm_ptc_run program
|
|
259
278
|
(tm.read / tm.grep / tm.bash ride inside; ALWAYS \`return\` the
|
|
260
279
|
aggregated findings). Firing single lookups one at a time for one
|
|
261
|
-
question wastes the team's time and tokens.
|
|
280
|
+
question wastes the team's time and tokens. The same rule covers
|
|
281
|
+
independent web calls: two unrelated tm_search queries belong in one
|
|
282
|
+
round (or one PTC program), never in two.
|
|
262
283
|
|
|
263
284
|
## Behavioral constraints
|
|
264
285
|
- When analyzing dependencies, output call-graph diagrams in mermaid format.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specialists.js","sourceRoot":"","sources":["../../src/prompts/specialists.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B/B,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBjC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C9B,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2E5B,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG
|
|
1
|
+
{"version":3,"file":"specialists.js","sourceRoot":"","sources":["../../src/prompts/specialists.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B/B,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBjC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C9B,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2E5B,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+GhC,CAAA"}
|
package/dist/tm/args-schema.d.ts
CHANGED
|
@@ -59,8 +59,14 @@ export declare function buildMemoryArgsSchema(): Promise<Record<string, unknown>
|
|
|
59
59
|
* (BROWSER_PLAYWRIGHT_ACTIONS, browser.ts:505) + the 5 compat verbs consume
|
|
60
60
|
* 19 fields across execute/act (args.uid/selector/targetUid/targetSelector/
|
|
61
61
|
* text/key/function/expression/filePath/files/index/timeoutMs/dialogAction/
|
|
62
|
-
* promptText/clear/fullPage, browser.ts
|
|
62
|
+
* promptText/clear/fullPage/image, browser.ts act() + execute()) — every one
|
|
63
63
|
* is declared below, or the corresponding verb silently loses its input.
|
|
64
|
+
*
|
|
65
|
+
* `headless` is DELIBERATELY not declared (2026-09-18): it used to be a model
|
|
66
|
+
* arg, `Boolean("false")` read as true, and one such call pinned the whole
|
|
67
|
+
* host process to a headless browser that every anti-bot gate then rejected.
|
|
68
|
+
* Mode is an operator setting (TM_BROWSER_HEADLESS) — a closed surface here
|
|
69
|
+
* is the fix, not a validation layer.
|
|
64
70
|
*/
|
|
65
71
|
export declare function buildBrowserArgsSchema(): Promise<Record<string, unknown>>;
|
|
66
72
|
//# sourceMappingURL=args-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args-schema.d.ts","sourceRoot":"","sources":["../../src/tm/args-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoCH,iBAAe,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAuFlF;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAE3B;;;;;GAKG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA2D3E;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6BhF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA2BlC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA+C9E;AAED
|
|
1
|
+
{"version":3,"file":"args-schema.d.ts","sourceRoot":"","sources":["../../src/tm/args-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoCH,iBAAe,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAuFlF;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAE3B;;;;;GAKG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA2D3E;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6BhF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA2BlC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA+C9E;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiE/E"}
|
package/dist/tm/args-schema.js
CHANGED
|
@@ -264,8 +264,14 @@ export async function buildMemoryArgsSchema() {
|
|
|
264
264
|
* (BROWSER_PLAYWRIGHT_ACTIONS, browser.ts:505) + the 5 compat verbs consume
|
|
265
265
|
* 19 fields across execute/act (args.uid/selector/targetUid/targetSelector/
|
|
266
266
|
* text/key/function/expression/filePath/files/index/timeoutMs/dialogAction/
|
|
267
|
-
* promptText/clear/fullPage, browser.ts
|
|
267
|
+
* promptText/clear/fullPage/image, browser.ts act() + execute()) — every one
|
|
268
268
|
* is declared below, or the corresponding verb silently loses its input.
|
|
269
|
+
*
|
|
270
|
+
* `headless` is DELIBERATELY not declared (2026-09-18): it used to be a model
|
|
271
|
+
* arg, `Boolean("false")` read as true, and one such call pinned the whole
|
|
272
|
+
* host process to a headless browser that every anti-bot gate then rejected.
|
|
273
|
+
* Mode is an operator setting (TM_BROWSER_HEADLESS) — a closed surface here
|
|
274
|
+
* is the fix, not a validation layer.
|
|
269
275
|
*/
|
|
270
276
|
export async function buildBrowserArgsSchema() {
|
|
271
277
|
const z = await loadZod();
|
|
@@ -274,7 +280,7 @@ export async function buildBrowserArgsSchema() {
|
|
|
274
280
|
return {
|
|
275
281
|
action: { descriptor: `action: ${ACTION_LIST} (required)` },
|
|
276
282
|
url: { descriptor: "url: string (open/navigate/navigate_page, allowlisted https)" },
|
|
277
|
-
|
|
283
|
+
image: { descriptor: "image: true with take_screenshot — inline the PNG pixels in this result" },
|
|
278
284
|
uid: { descriptor: "uid: snapshot [uid=eN] token (click/fill/hover/drag/upload_file/wait_for)" },
|
|
279
285
|
selector: { descriptor: "selector: CSS/text locator escape hatch (only when a snapshot cannot express the node)" },
|
|
280
286
|
targetUid: { descriptor: "targetUid: drag destination uid" },
|
|
@@ -301,7 +307,7 @@ export async function buildBrowserArgsSchema() {
|
|
|
301
307
|
return {
|
|
302
308
|
action: zz.string().describe(ACTION_LIST),
|
|
303
309
|
url: str("Absolute https URL on an allowlisted host (open/navigate/navigate_page). URL-encode the query (CJK terms too)."),
|
|
304
|
-
|
|
310
|
+
image: bool("take_screenshot only: inline the PNG pixels into this tool result (default false = path only; pixels cost context, so ask only when the screenshot IS the evidence)."),
|
|
305
311
|
uid: str("Snapshot [uid=eN] token from the LATEST take_snapshot (click/fill/hover/drag source/upload_file/wait_for)."),
|
|
306
312
|
selector: str("CSS/text locator escape hatch — only for a node the snapshot cannot express; never guess locators."),
|
|
307
313
|
targetUid: str("drag destination uid from the latest take_snapshot."),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args-schema.js","sourceRoot":"","sources":["../../src/tm/args-schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"args-schema.js","sourceRoot":"","sources":["../../src/tm/args-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in bash TIMEOUT discipline (issue #6 of 2026-09-18).
|
|
3
|
+
*
|
|
4
|
+
* Where the 120 s comes from: the host's shell tool resolves
|
|
5
|
+
* `flags.bashDefaultTimeoutMs ?? 2 * 60 * 1e3` (verified in the shipped
|
|
6
|
+
* desktop bundle) — so when a model omits `timeout`, 120 s is the HOST
|
|
7
|
+
* default, and models that do pass one routinely pass 120000+ for a
|
|
8
|
+
* `Get-ChildItem`. Three serialised probes then cost the user six minutes
|
|
9
|
+
* of dead air, and every one of them was allowed to run for a reason no
|
|
10
|
+
* model ever had.
|
|
11
|
+
*
|
|
12
|
+
* The plugin owns no shell timer, so the ONE non-invasive lever is the
|
|
13
|
+
* official `tool.execute.before` hook, whose `output.args` is explicitly
|
|
14
|
+
* mutable. Two ceilings, both opt-out:
|
|
15
|
+
* - `TM_BASH_TIMEOUT_PROBE_MS` (default 60 000) — only for a command the
|
|
16
|
+
* P3 read-only allowlist already accepts (ls / grep / rg / cat /
|
|
17
|
+
* Get-ChildItem …). A pure probe has no legitimate reason to outlive
|
|
18
|
+
* a minute, and this is where the wasted 120 s actually sits.
|
|
19
|
+
* - `TM_BASH_TIMEOUT_MAX_MS` (default 0 = OFF) — a global cap for
|
|
20
|
+
* everything else. Off by default on purpose: a build/test run may
|
|
21
|
+
* legitimately need minutes, and silently killing one is worse than a
|
|
22
|
+
* slow one. A user who wants the ceiling sets it.
|
|
23
|
+
*
|
|
24
|
+
* This clamps a number the model already volunteered; it never ADDS a
|
|
25
|
+
* timeout where the model supplied none (that would turn the host's default
|
|
26
|
+
* into OUR default, which is not this plugin's call to make).
|
|
27
|
+
*/
|
|
28
|
+
export type BashTimeoutVerdict = {
|
|
29
|
+
changed: false;
|
|
30
|
+
via: "none" | "already-short";
|
|
31
|
+
} | {
|
|
32
|
+
changed: true;
|
|
33
|
+
via: "probe" | "max";
|
|
34
|
+
from: number;
|
|
35
|
+
to: number;
|
|
36
|
+
};
|
|
37
|
+
/** Parse the model-supplied timeout defensively: the host schema says a
|
|
38
|
+
* positive integer of MILLISECONDS, but an LLM hands us `"120000"`,
|
|
39
|
+
* `120000.0`, or omits it entirely. Anything unreadable means "no
|
|
40
|
+
* timeout was supplied" and is left alone. */
|
|
41
|
+
export declare function parseTimeoutArg(raw: unknown): number | null;
|
|
42
|
+
/**
|
|
43
|
+
* Decide the clamped timeout for one bash call.
|
|
44
|
+
* `probeMs`/`maxMs` of 0 disable that ceiling.
|
|
45
|
+
*/
|
|
46
|
+
export declare function resolveBashTimeout(opts: {
|
|
47
|
+
command: string;
|
|
48
|
+
timeoutMs: number | null;
|
|
49
|
+
probeMs: number;
|
|
50
|
+
maxMs: number;
|
|
51
|
+
readonlyAllowed: readonly string[];
|
|
52
|
+
}): BashTimeoutVerdict;
|
|
53
|
+
/**
|
|
54
|
+
* The hook fragment. Returns true when it mutated `args.timeout` — the
|
|
55
|
+
* caller may log that, and the trajectory keeps a count so a user asking
|
|
56
|
+
* "why did my probe get killed at 60 s?" has an answer.
|
|
57
|
+
*
|
|
58
|
+
* Everything here is defensive by contract: `output.args` is `any` on the
|
|
59
|
+
* host side, a non-bash tool must be untouched, and a malformed payload
|
|
60
|
+
* must never turn into a thrown error inside a permission-adjacent hook.
|
|
61
|
+
*/
|
|
62
|
+
export declare function createBashTimeoutHook(deps: {
|
|
63
|
+
probeMs: number;
|
|
64
|
+
maxMs: number;
|
|
65
|
+
readonlyAllowed: readonly string[];
|
|
66
|
+
onClamp?: (info: {
|
|
67
|
+
via: string;
|
|
68
|
+
from: number;
|
|
69
|
+
to: number;
|
|
70
|
+
}) => void;
|
|
71
|
+
}): (input: unknown, output: unknown) => boolean;
|
|
72
|
+
//# sourceMappingURL=bash-timeout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bash-timeout.d.ts","sourceRoot":"","sources":["../../src/tm/bash-timeout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,GACjD;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAErE;;;+CAG+C;AAC/C,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAO3D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,SAAS,MAAM,EAAE,CAAA;CACnC,GAAG,kBAAkB,CAQrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACpE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAyB/C"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in bash TIMEOUT discipline (issue #6 of 2026-09-18).
|
|
3
|
+
*
|
|
4
|
+
* Where the 120 s comes from: the host's shell tool resolves
|
|
5
|
+
* `flags.bashDefaultTimeoutMs ?? 2 * 60 * 1e3` (verified in the shipped
|
|
6
|
+
* desktop bundle) — so when a model omits `timeout`, 120 s is the HOST
|
|
7
|
+
* default, and models that do pass one routinely pass 120000+ for a
|
|
8
|
+
* `Get-ChildItem`. Three serialised probes then cost the user six minutes
|
|
9
|
+
* of dead air, and every one of them was allowed to run for a reason no
|
|
10
|
+
* model ever had.
|
|
11
|
+
*
|
|
12
|
+
* The plugin owns no shell timer, so the ONE non-invasive lever is the
|
|
13
|
+
* official `tool.execute.before` hook, whose `output.args` is explicitly
|
|
14
|
+
* mutable. Two ceilings, both opt-out:
|
|
15
|
+
* - `TM_BASH_TIMEOUT_PROBE_MS` (default 60 000) — only for a command the
|
|
16
|
+
* P3 read-only allowlist already accepts (ls / grep / rg / cat /
|
|
17
|
+
* Get-ChildItem …). A pure probe has no legitimate reason to outlive
|
|
18
|
+
* a minute, and this is where the wasted 120 s actually sits.
|
|
19
|
+
* - `TM_BASH_TIMEOUT_MAX_MS` (default 0 = OFF) — a global cap for
|
|
20
|
+
* everything else. Off by default on purpose: a build/test run may
|
|
21
|
+
* legitimately need minutes, and silently killing one is worse than a
|
|
22
|
+
* slow one. A user who wants the ceiling sets it.
|
|
23
|
+
*
|
|
24
|
+
* This clamps a number the model already volunteered; it never ADDS a
|
|
25
|
+
* timeout where the model supplied none (that would turn the host's default
|
|
26
|
+
* into OUR default, which is not this plugin's call to make).
|
|
27
|
+
*/
|
|
28
|
+
import { classifyReadonlyCommand } from "./guard.js";
|
|
29
|
+
/** Parse the model-supplied timeout defensively: the host schema says a
|
|
30
|
+
* positive integer of MILLISECONDS, but an LLM hands us `"120000"`,
|
|
31
|
+
* `120000.0`, or omits it entirely. Anything unreadable means "no
|
|
32
|
+
* timeout was supplied" and is left alone. */
|
|
33
|
+
export function parseTimeoutArg(raw) {
|
|
34
|
+
if (typeof raw === "number" && Number.isFinite(raw) && raw > 0)
|
|
35
|
+
return Math.trunc(raw);
|
|
36
|
+
if (typeof raw === "string") {
|
|
37
|
+
const n = Number(raw.trim());
|
|
38
|
+
if (Number.isFinite(n) && n > 0)
|
|
39
|
+
return Math.trunc(n);
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Decide the clamped timeout for one bash call.
|
|
45
|
+
* `probeMs`/`maxMs` of 0 disable that ceiling.
|
|
46
|
+
*/
|
|
47
|
+
export function resolveBashTimeout(opts) {
|
|
48
|
+
const t = opts.timeoutMs;
|
|
49
|
+
if (t === null)
|
|
50
|
+
return { changed: false, via: "none" };
|
|
51
|
+
const probe = opts.probeMs > 0 && classifyReadonlyCommand(opts.command, opts.readonlyAllowed).ok;
|
|
52
|
+
if (probe && t > opts.probeMs)
|
|
53
|
+
return { changed: true, via: "probe", from: t, to: opts.probeMs };
|
|
54
|
+
if (opts.maxMs > 0 && t > opts.maxMs)
|
|
55
|
+
return { changed: true, via: "max", from: t, to: opts.maxMs };
|
|
56
|
+
if (!probe && opts.maxMs === 0)
|
|
57
|
+
return { changed: false, via: "none" };
|
|
58
|
+
return { changed: false, via: "already-short" };
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The hook fragment. Returns true when it mutated `args.timeout` — the
|
|
62
|
+
* caller may log that, and the trajectory keeps a count so a user asking
|
|
63
|
+
* "why did my probe get killed at 60 s?" has an answer.
|
|
64
|
+
*
|
|
65
|
+
* Everything here is defensive by contract: `output.args` is `any` on the
|
|
66
|
+
* host side, a non-bash tool must be untouched, and a malformed payload
|
|
67
|
+
* must never turn into a thrown error inside a permission-adjacent hook.
|
|
68
|
+
*/
|
|
69
|
+
export function createBashTimeoutHook(deps) {
|
|
70
|
+
return (input, output) => {
|
|
71
|
+
try {
|
|
72
|
+
const tool = String(input?.tool ?? "").trim().toLowerCase();
|
|
73
|
+
if (tool !== "bash")
|
|
74
|
+
return false;
|
|
75
|
+
const args = output?.args;
|
|
76
|
+
if (!args || typeof args !== "object")
|
|
77
|
+
return false;
|
|
78
|
+
const command = typeof args.command === "string" ? args.command : "";
|
|
79
|
+
if (!command)
|
|
80
|
+
return false;
|
|
81
|
+
const verdict = resolveBashTimeout({
|
|
82
|
+
command,
|
|
83
|
+
timeoutMs: parseTimeoutArg(args.timeout),
|
|
84
|
+
probeMs: deps.probeMs,
|
|
85
|
+
maxMs: deps.maxMs,
|
|
86
|
+
readonlyAllowed: deps.readonlyAllowed,
|
|
87
|
+
});
|
|
88
|
+
if (!verdict.changed)
|
|
89
|
+
return false;
|
|
90
|
+
args.timeout = verdict.to;
|
|
91
|
+
deps.onClamp?.({ via: verdict.via, from: verdict.from, to: verdict.to });
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
/* a timeout clamp must never break the call it is trying to speed up */
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=bash-timeout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bash-timeout.js","sourceRoot":"","sources":["../../src/tm/bash-timeout.ts"],"names":[],"mappings":"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"}
|
package/dist/tm/browser.d.ts
CHANGED
|
@@ -30,16 +30,21 @@
|
|
|
30
30
|
* Hardening (unchanged from the CDP era, ported to both engines):
|
|
31
31
|
* - isolated temp profile (never the user's real browser profile);
|
|
32
32
|
* persistent login is ONLY via an explicit TM_BROWSER_USER_DATA_DIR;
|
|
33
|
-
* - domain allowlist enforced at the NETWORK layer
|
|
34
|
-
* context.route
|
|
35
|
-
*
|
|
33
|
+
* - domain allowlist enforced at the NETWORK layer on the NAVIGATION
|
|
34
|
+
* (playwright context.route / CDP Fetch interception), re-checked on
|
|
35
|
+
* every redirect hop; SUBRESOURCES then follow TM_BROWSER_SUBRESOURCE
|
|
36
|
+
* (default same-site: passive types load, an executable resource loads
|
|
37
|
+
* when it belongs to a site this session opened). Gating every request
|
|
38
|
+
* by the content allowlist is what made pages render picture-less — the
|
|
39
|
+
* 21 seeded hosts contain no CDN, so img/css/js died silently;
|
|
36
40
|
* - out-of-allowlist open/navigate routes through the OFFICIAL dialog
|
|
37
41
|
* BEFORE any spawn; approved hosts also pass the network layer;
|
|
38
42
|
* - hardened context: real-Chrome UA + zh-CN Accept-Language,
|
|
39
43
|
* no-first-run / no-extensions / mute launch flags, 3 s default action
|
|
40
44
|
* timeout (the prompt's "3000 ms budget" is the tool's default, not an
|
|
41
45
|
* aspiration), no networkidle waits anywhere;
|
|
42
|
-
* - dispose
|
|
46
|
+
* - dispose AWAITS the close, and an idle session reaps itself
|
|
47
|
+
* (TM_BROWSER_IDLE_MS) — an orphaned visible window is a user-facing bug.
|
|
43
48
|
*
|
|
44
49
|
* Environment adaptivity (different OpenCode hosts):
|
|
45
50
|
* - headful by default (Plan C); display-less Linux (no DISPLAY/
|
|
@@ -74,6 +79,18 @@ export declare function parseDesktopExec(text: string): string | null;
|
|
|
74
79
|
* null → the caller falls back to the per-OS probe list (detection is
|
|
75
80
|
* best-effort and must never throw into tool discovery). */
|
|
76
81
|
export declare function defaultBrowserExecutable(env?: Record<string, string | undefined>, run?: CommandRunner): string | null;
|
|
82
|
+
/** Playwright's `channel` launch IGNORES the executable we discovered —
|
|
83
|
+
* `channel:"msedge"` resolves whatever playwright thinks the stable Edge is,
|
|
84
|
+
* so a correct Edge-Beta discovery still opened stable (the decisive half of
|
|
85
|
+
* the 2026-09-18 report). The channel spelling is therefore only correct
|
|
86
|
+
* for the exact stable-channel install dir; everything else (Beta/Dev/
|
|
87
|
+
* Canary, portable, an explicit TM_BROWSER_PATH) rides on executablePath. */
|
|
88
|
+
export declare function playwrightLaunchTarget(executable: string, opts?: {
|
|
89
|
+
explicitOverride?: boolean;
|
|
90
|
+
}): {
|
|
91
|
+
executablePath: string;
|
|
92
|
+
channel?: string;
|
|
93
|
+
};
|
|
77
94
|
/** Resolve the browser executable: TM_BROWSER_PATH override → the user's
|
|
78
95
|
* DEFAULT browser (Chromium-family only) → per-OS candidate paths.
|
|
79
96
|
* %LOCALAPPDATA% style vars are expanded on win32. */
|
|
@@ -86,6 +103,36 @@ export declare function findBrowserExecutable(env?: Record<string, string | unde
|
|
|
86
103
|
* display possible (Linux without DISPLAY/WAYLAND_DISPLAY).
|
|
87
104
|
*/
|
|
88
105
|
export declare function resolveHeadless(env?: Record<string, string | undefined>): boolean;
|
|
106
|
+
/** Approximate registrable site (eTLD+1) of a hostname. */
|
|
107
|
+
export declare function siteOf(host: string): string;
|
|
108
|
+
/** playwright and CDP spell resource types differently (`Image` vs `image`,
|
|
109
|
+
* `Stylesheet` vs `stylesheet`) — one normalizer keeps both engines on the
|
|
110
|
+
* same verdict table. */
|
|
111
|
+
export declare function normalizeResourceType(raw: unknown): string;
|
|
112
|
+
export declare function isPassiveResource(raw: unknown): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* One subresource verdict, shared VERBATIM by both engines so playwright and
|
|
115
|
+
* cdp-legacy can never drift. `allowedSites` holds the registrable sites of
|
|
116
|
+
* every host this session actually navigated to (allowlist hit or dialog
|
|
117
|
+
* approval), which is what makes a page's own JS/CSS work without opening
|
|
118
|
+
* the whole internet: the governance boundary moves from "21 content domains"
|
|
119
|
+
* to "the site you approved", and an off-site SCRIPT still needs a dialog.
|
|
120
|
+
*/
|
|
121
|
+
export declare function subresourcePass(opts: {
|
|
122
|
+
url: string;
|
|
123
|
+
resourceType: unknown;
|
|
124
|
+
policy: "same-site" | "passive" | "off";
|
|
125
|
+
allowlistHit: boolean;
|
|
126
|
+
approvedHost: boolean;
|
|
127
|
+
allowedSites: ReadonlySet<string>;
|
|
128
|
+
}): {
|
|
129
|
+
pass: boolean;
|
|
130
|
+
via: string;
|
|
131
|
+
};
|
|
132
|
+
/** A navigation (or a host the dialog approved) widens the subresource
|
|
133
|
+
* footprint to its own site. Called for EVERY top-level/document request
|
|
134
|
+
* that passed the allowlist side. */
|
|
135
|
+
export declare function rememberSite(allowedSites: Set<string>, url: string): void;
|
|
89
136
|
export type BrowserEngineKind = "playwright" | "cdp-legacy";
|
|
90
137
|
/** playwright-core 1.63 targets node >= 20; on anything older we refuse the
|
|
91
138
|
* engine up-front and stay on the zero-dependency CDP pipe (the node>=18
|
|
@@ -165,6 +212,10 @@ export interface PwRoute {
|
|
|
165
212
|
export interface PwRequestInfo {
|
|
166
213
|
url(): string;
|
|
167
214
|
method?(): string;
|
|
215
|
+
/** playwright resource type ("document"|"script"|"image"|…). Optional on
|
|
216
|
+
* the seam so a stale mock cannot break the gate — an absent type is
|
|
217
|
+
* treated as EXECUTABLE (the strict side of the subresource policy). */
|
|
218
|
+
resourceType?(): string;
|
|
168
219
|
}
|
|
169
220
|
export interface PwConsoleMessage {
|
|
170
221
|
type(): string;
|
|
@@ -224,11 +275,21 @@ export declare function buildTmBrowserTool(deps: {
|
|
|
224
275
|
importPlaywright?: () => Promise<unknown>;
|
|
225
276
|
/** Test seam: pretend node major version for the engine gate. */
|
|
226
277
|
nodeMajor?: number;
|
|
278
|
+
/** Best-effort user notification (host toast) — used by the idle reaper,
|
|
279
|
+
* which closes a window the agent forgot and must say so out loud. */
|
|
280
|
+
notify?: (message: string) => void;
|
|
281
|
+
/** Test seam for the DISCOVERY result (not the TM_BROWSER_PATH override —
|
|
282
|
+
* the override is read from env so the channel-substitution rule stays
|
|
283
|
+
* honest in tests too). */
|
|
284
|
+
findExecutable?: (env: Record<string, string | undefined>) => string | null;
|
|
227
285
|
}): {
|
|
228
286
|
description: string;
|
|
229
287
|
args: Record<string, unknown>;
|
|
230
288
|
execute: (rawArgs: Record<string, unknown>, ctx: unknown) => Promise<ToolResult>;
|
|
231
|
-
|
|
289
|
+
/** Async on purpose: the host's `dispose` hook is `() => Promise<void>`,
|
|
290
|
+
* and a fire-and-forget close could exit before the browser child was
|
|
291
|
+
* killed (leaving a visible orphan window). */
|
|
292
|
+
dispose: () => Promise<void>;
|
|
232
293
|
engineInfo: () => {
|
|
233
294
|
kind: BrowserEngineKind | null;
|
|
234
295
|
reason: string | null;
|
package/dist/tm/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/tm/browser.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/tm/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAUH,OAAO,KAAK,EAAkB,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AA6CjD,6EAA6E;AAC7E,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAA;AAWnE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGzD;AAED;;4DAE4D;AAC5D,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG7D;AAED,oDAAoD;AACpD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5D;AA2CD;;6DAE6D;AAC7D,wBAAgB,wBAAwB,CACtC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,GAAG,GAAE,aAA6B,GACjC,MAAM,GAAG,IAAI,CAuDf;AAED;;;;;8EAK8E;AAC9E,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAQ9C;AAED;;uDAEuD;AACvD,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,MAAM,GAAG,IAAI,CAkB1G;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,OAAO,CAM9F;AAiBD,2DAA2D;AAC3D,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ3C;AAED;;0BAE0B;AAC1B,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAG1D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,KAAK,CAAA;IACvC,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAClC,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAcjC;AAED;;sCAEsC;AACtC,wBAAgB,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAOzE;AA6ED,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,YAAY,CAAA;AAE3D;;;mEAGmE;AACnE,eAAO,MAAM,yBAAyB,KAAK,CAAA;AAE3C;2CAC2C;AAC3C,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,iBAAiB,CAAA;IACvB,4EAA4E;IAC5E,EAAE,CAAC,EAAE,QAAQ,CAAA;IACb,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;qCAGqC;AACrC,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CAGhE;AAED;;;+DAG+D;AAC/D,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CACzC,GAAG,OAAO,CAAC,eAAe,CAAC,CAuB3B;AAQD,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE;QACR,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;QACzD,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;KACvG,CAAA;CACF;AACD,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACrE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AACD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACvH,KAAK,IAAI,MAAM,EAAE,CAAA;IACjB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AACD,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACnE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAClE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAA;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAChD,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAC/D,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAA;IAC1D,GAAG,IAAI,MAAM,CAAA;IACb,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACzB,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/B;AACD,MAAM,WAAW,SAAS;IACxB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/B,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IACzB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACrC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACzD,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACzD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC5C;AACD,MAAM,WAAW,OAAO;IACtB,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5B,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAC1B;AACD,MAAM,WAAW,aAAa;IAC5B,GAAG,IAAI,MAAM,CAAA;IACb,MAAM,CAAC,IAAI,MAAM,CAAA;IACjB;;6EAEyE;IACzE,YAAY,CAAC,IAAI,MAAM,CAAA;CACxB;AACD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,MAAM,CAAA;IACd,IAAI,IAAI,MAAM,CAAA;CACf;AACD,MAAM,WAAW,cAAc;IAC7B,GAAG,IAAI,MAAM,CAAA;IACb,MAAM,IAAI,MAAM,CAAA;IAChB,OAAO,IAAI,aAAa,CAAA;CACzB;AACD,MAAM,WAAW,QAAQ;IACvB,IAAI,IAAI,MAAM,CAAA;IACd,OAAO,IAAI,MAAM,CAAA;IACjB,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7C,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAC5B;AAID,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;;;;;;2BAQ2B;AAC3B,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,IAAI,CAAI;IAEhB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IA8B9B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI3C;yEACqE;IACrE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAUxD;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAID,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,6PAiB7B,CAAA;AAEV,qEAAqE;AACrE,eAAO,MAAM,sBAAsB,8DAA+D,CAAA;AAElG;oEACoE;AACpE,eAAO,MAAM,sBAAsB,mIAUzB,CAAA;AAyCV,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,SAAS,EAAE,WAAW,CAAA;IACtB,GAAG,EAAE,QAAQ,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACzC,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;2EACuE;IACvE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC;;gCAE4B;IAC5B,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KAAK,MAAM,GAAG,IAAI,CAAA;CAC5E,GAAG;IACF,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAChF;;oDAEgD;IAChD,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,UAAU,EAAE,MAAM;QAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAC5E,CAw7BA"}
|