@te-river/opencode-team-mode 1.5.11 → 1.5.12
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 +129 -53
- package/README.zh-CN.md +103 -45
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +17 -11
- package/dist/agents.js.map +1 -1
- package/dist/approval-gate.d.ts +54 -16
- package/dist/approval-gate.d.ts.map +1 -1
- package/dist/approval-gate.js +163 -42
- package/dist/approval-gate.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 +22 -3
- 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 +154 -119
- package/dist/prompts/shared.js.map +1 -1
- package/dist/prompts/specialists.d.ts +2 -2
- package/dist/prompts/specialists.d.ts.map +1 -1
- package/dist/prompts/specialists.js +40 -11
- package/dist/prompts/specialists.js.map +1 -1
- package/dist/tm/args-schema.d.ts +25 -1
- package/dist/tm/args-schema.d.ts.map +1 -1
- package/dist/tm/args-schema.js +149 -39
- package/dist/tm/args-schema.js.map +1 -1
- package/dist/tm/browser.d.ts +188 -19
- package/dist/tm/browser.d.ts.map +1 -1
- package/dist/tm/browser.js +781 -111
- package/dist/tm/browser.js.map +1 -1
- package/dist/tm/config.d.ts +61 -0
- package/dist/tm/config.d.ts.map +1 -1
- package/dist/tm/config.js +55 -1
- package/dist/tm/config.js.map +1 -1
- package/dist/tm/index.d.ts +5 -3
- package/dist/tm/index.d.ts.map +1 -1
- package/dist/tm/index.js +36 -2
- package/dist/tm/index.js.map +1 -1
- package/dist/tm/memory.d.ts +88 -10
- package/dist/tm/memory.d.ts.map +1 -1
- package/dist/tm/memory.js +881 -99
- package/dist/tm/memory.js.map +1 -1
- package/dist/tm/pipelines.d.ts +26 -3
- package/dist/tm/pipelines.d.ts.map +1 -1
- package/dist/tm/pipelines.js +167 -11
- package/dist/tm/pipelines.js.map +1 -1
- package/dist/tm/ptc/budgets.d.ts +22 -1
- package/dist/tm/ptc/budgets.d.ts.map +1 -1
- package/dist/tm/ptc/budgets.js +87 -8
- package/dist/tm/ptc/budgets.js.map +1 -1
- package/dist/tm/ptc/contract.d.ts +49 -9
- package/dist/tm/ptc/contract.d.ts.map +1 -1
- package/dist/tm/ptc/contract.js +41 -3
- package/dist/tm/ptc/contract.js.map +1 -1
- package/dist/tm/ptc/driver.d.ts +5 -2
- package/dist/tm/ptc/driver.d.ts.map +1 -1
- package/dist/tm/ptc/driver.js +47 -15
- package/dist/tm/ptc/driver.js.map +1 -1
- package/dist/tm/ptc/engines.d.ts +15 -4
- package/dist/tm/ptc/engines.d.ts.map +1 -1
- package/dist/tm/ptc/engines.js +281 -28
- package/dist/tm/ptc/engines.js.map +1 -1
- package/dist/tm/ptc/index.d.ts +4 -4
- package/dist/tm/ptc/index.d.ts.map +1 -1
- package/dist/tm/ptc/index.js +2 -2
- package/dist/tm/ptc/index.js.map +1 -1
- package/dist/tm/ptc/pscan.d.ts +20 -1
- package/dist/tm/ptc/pscan.d.ts.map +1 -1
- package/dist/tm/ptc/pscan.js +328 -14
- package/dist/tm/ptc/pscan.js.map +1 -1
- package/dist/tm/ptc/summary.d.ts.map +1 -1
- package/dist/tm/ptc/summary.js +23 -1
- package/dist/tm/ptc/summary.js.map +1 -1
- package/dist/tm/ptc/tool.d.ts +34 -3
- package/dist/tm/ptc/tool.d.ts.map +1 -1
- package/dist/tm/ptc/tool.js +117 -20
- package/dist/tm/ptc/tool.js.map +1 -1
- package/dist/tm/search.d.ts +83 -14
- package/dist/tm/search.d.ts.map +1 -1
- package/dist/tm/search.js +440 -45
- package/dist/tm/search.js.map +1 -1
- package/dist/tm/shell-bridge.d.ts +14 -1
- package/dist/tm/shell-bridge.d.ts.map +1 -1
- package/dist/tm/shell-bridge.js +57 -10
- package/dist/tm/shell-bridge.js.map +1 -1
- package/dist/tm/webfetch.d.ts +25 -7
- package/dist/tm/webfetch.d.ts.map +1 -1
- package/dist/tm/webfetch.js +88 -14
- package/dist/tm/webfetch.js.map +1 -1
- package/package.json +5 -2
package/dist/tm/browser.d.ts
CHANGED
|
@@ -1,30 +1,60 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* tm_browser — governed interactive browser (Plan C: the user's own
|
|
3
|
-
* Chromium-family browser
|
|
3
|
+
* Chromium-family browser, headful by default on desktops).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
5
|
+
* T5 engine split (design board ② "TM_BROWSER_ENGINE" + R2 verdict):
|
|
6
|
+
* - PRIMARY engine: playwright-core — dynamic import ONLY (the package is
|
|
7
|
+
* declared in dependencies but NOT installed at build time; a static
|
|
8
|
+
* import would break tsc). A failed import or node < 20 degrades the
|
|
9
|
+
* session to the cdp-legacy engine automatically, per plugin instance.
|
|
10
|
+
* - cdp-legacy engine: the original hand-rolled CDP pipe transport
|
|
11
|
+
* (JSON + NUL framing over fds 3/4, zero deps — smoke-proven) kept
|
|
12
|
+
* verbatim as the fallback. On cdp-legacy only the core subset works
|
|
13
|
+
* (open/navigate/read/screenshot/close + navigate_page/take_screenshot/
|
|
14
|
+
* list_pages/evaluate_script aliases); the snapshot-first actions
|
|
15
|
+
* (take_snapshot + uid addressing, 16-verb chrome-devtools-mcp surface)
|
|
16
|
+
* require the playwright engine.
|
|
17
|
+
*
|
|
18
|
+
* Action surface aligns with chrome-devtools-mcp's 16 verbs (R2 mapping):
|
|
19
|
+
* navigate_page · take_snapshot · click · fill · hover · drag ·
|
|
20
|
+
* press_key · select_page · upload_file · wait_for · evaluate_script ·
|
|
21
|
+
* list_console_messages · list_network_requests · list_pages ·
|
|
22
|
+
* take_screenshot · handle_dialog
|
|
23
|
+
* plus the legacy compatibility verbs open / navigate / read /
|
|
24
|
+
* screenshot / close. Snapshot-first discipline: take_snapshot returns
|
|
25
|
+
* the ariaSnapshot YAML with an INJECTED [uid=eN] per node (playwright has
|
|
26
|
+
* no uid concept — SnapshotIndex below is our own snapshot→locator
|
|
27
|
+
* registry); follow-up actions address nodes by that uid (or an explicit
|
|
28
|
+
* selector escape hatch) instead of guessed locators.
|
|
29
|
+
*
|
|
30
|
+
* Hardening (unchanged from the CDP era, ported to both engines):
|
|
31
|
+
* - isolated temp profile (never the user's real browser profile);
|
|
32
|
+
* persistent login is ONLY via an explicit TM_BROWSER_USER_DATA_DIR;
|
|
33
|
+
* - domain allowlist enforced at the NETWORK layer: playwright
|
|
34
|
+
* context.route() abort / CDP Fetch.requestPaused fail — every request
|
|
35
|
+
* and every redirect hop re-checked (per-hop analog);
|
|
36
|
+
* - out-of-allowlist open/navigate routes through the OFFICIAL dialog
|
|
37
|
+
* BEFORE any spawn; approved hosts also pass the network layer;
|
|
38
|
+
* - hardened context: real-Chrome UA + zh-CN Accept-Language,
|
|
39
|
+
* no-first-run / no-extensions / mute launch flags, 3 s default action
|
|
40
|
+
* timeout (the prompt's "3000 ms budget" is the tool's default, not an
|
|
41
|
+
* aspiration), no networkidle waits anywhere;
|
|
42
|
+
* - dispose kills the child / closes the browser.
|
|
15
43
|
*
|
|
16
44
|
* Environment adaptivity (different OpenCode hosts):
|
|
17
45
|
* - headful by default (Plan C); display-less Linux (no DISPLAY/
|
|
18
46
|
* WAYLAND_DISPLAY) automatically falls back to headless; TM_BROWSER_
|
|
19
47
|
* HEADLESS=1|0 forces either way;
|
|
20
|
-
* - browser discovery
|
|
21
|
-
* browser (Windows registry / Linux
|
|
22
|
-
* Chromium-family — CDP
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
48
|
+
* - browser discovery (SHARED by both engines): TM_BROWSER_PATH
|
|
49
|
+
* override, then the USER'S DEFAULT browser (Windows registry / Linux
|
|
50
|
+
* xdg-settings) when it is Chromium-family — CDP is Chromium-proprietary
|
|
51
|
+
* and playwright channels only speak Chromium too, so a Firefox default
|
|
52
|
+
* falls through — then per-OS candidate paths (Edge first on Windows;
|
|
53
|
+
* Chrome/Chromium elsewhere). No browser → structured error, the agent
|
|
54
|
+
* falls back to tm_webfetch / user MCP tools.
|
|
26
55
|
*
|
|
27
|
-
* Role access mirrors tm_webfetch: network roles (team + researcher) only
|
|
56
|
+
* Role access mirrors tm_webfetch: network roles (team + researcher) only,
|
|
57
|
+
* tester browser-only (UI verification).
|
|
28
58
|
*/
|
|
29
59
|
import type { ToolResult } from "../types.js";
|
|
30
60
|
import type { TmConfig } from "./config.js";
|
|
@@ -34,7 +64,9 @@ export type CommandRunner = (cmd: string, args: string[]) => string;
|
|
|
34
64
|
export declare function isChromiumFamily(exePath: string): boolean;
|
|
35
65
|
/** Parse `reg query "...UrlAssociations\http\UserChoice" /v ProgId` output. */
|
|
36
66
|
export declare function parseProgId(stdout: string): string | null;
|
|
37
|
-
/** Parse `reg query "...\shell\open\command" /ve` output → exe path.
|
|
67
|
+
/** Parse `reg query "...\shell\open\command" /ve` output → exe path.
|
|
68
|
+
* The quoted capture stops at the closing quote, so the `" -- %1"` style
|
|
69
|
+
* URL-template tail never leaks into the returned path. */
|
|
38
70
|
export declare function parseRegCommand(stdout: string): string | null;
|
|
39
71
|
/** Parse the Exec= line of an xdg .desktop file. */
|
|
40
72
|
export declare function parseDesktopExec(text: string): string | null;
|
|
@@ -54,15 +86,152 @@ export declare function findBrowserExecutable(env?: Record<string, string | unde
|
|
|
54
86
|
* display possible (Linux without DISPLAY/WAYLAND_DISPLAY).
|
|
55
87
|
*/
|
|
56
88
|
export declare function resolveHeadless(env?: Record<string, string | undefined>): boolean;
|
|
89
|
+
export type BrowserEngineKind = "playwright" | "cdp-legacy";
|
|
90
|
+
/** playwright-core 1.63 targets node >= 20; on anything older we refuse the
|
|
91
|
+
* engine up-front and stay on the zero-dependency CDP pipe (the node>=18
|
|
92
|
+
* package floor keeps the plugin itself loadable — only the playwright
|
|
93
|
+
* PRIMARY is gated here, cdp-legacy carries node 18/19 hosts). */
|
|
94
|
+
export declare const PLAYWRIGHT_MIN_NODE_MAJOR = 20;
|
|
95
|
+
/** "v22.3.1" / "20" -> major number; unparseable -> 0 (fail toward the
|
|
96
|
+
* always-available cdp-legacy engine). */
|
|
97
|
+
export declare function nodeMajorOf(version: string): number;
|
|
98
|
+
export interface EngineSelection {
|
|
99
|
+
kind: BrowserEngineKind;
|
|
100
|
+
/** The imported playwright-core namespace (present iff kind=playwright). */
|
|
101
|
+
pw?: PwModule;
|
|
102
|
+
/** Why this kind was chosen (preference / node gate / import failure). */
|
|
103
|
+
reason?: string;
|
|
104
|
+
}
|
|
105
|
+
/** The REAL loader — a VARIABLE specifier so tsc never tries to resolve
|
|
106
|
+
* "playwright-core" at build time (types ship inside the package, which may
|
|
107
|
+
* be absent from node_modules). Under ESM, import(variable) yields the
|
|
108
|
+
* module namespace typed as any. */
|
|
109
|
+
export declare function defaultImportPlaywright(): Promise<unknown>;
|
|
110
|
+
/** Pure engine-selection seam (exported for test-browser.mjs):
|
|
111
|
+
* cdp-legacy preference → legacy WITHOUT ever importing; node < 20 →
|
|
112
|
+
* legacy without importing; playwright preference → import, verify the
|
|
113
|
+
* chromium.launch shape, degrade to legacy on ANY failure. */
|
|
114
|
+
export declare function selectBrowserEngine(opts: {
|
|
115
|
+
preference: string | undefined;
|
|
116
|
+
nodeMajor: number;
|
|
117
|
+
importPlaywright: () => Promise<unknown>;
|
|
118
|
+
}): Promise<EngineSelection>;
|
|
119
|
+
export interface PwModule {
|
|
120
|
+
chromium: {
|
|
121
|
+
launch(opts: Record<string, unknown>): Promise<PwBrowser>;
|
|
122
|
+
launchPersistentContext(userDataDir: string, opts: Record<string, unknown>): Promise<PwBrowserContext>;
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
export interface PwBrowser {
|
|
126
|
+
newContext(opts?: Record<string, unknown>): Promise<PwBrowserContext>;
|
|
127
|
+
close(): Promise<void>;
|
|
128
|
+
}
|
|
129
|
+
export interface PwBrowserContext {
|
|
130
|
+
route(pattern: string, handler: (route: PwRoute, request: PwRequestInfo) => Promise<void> | void): Promise<void> | void;
|
|
131
|
+
pages(): PwPage[];
|
|
132
|
+
newPage(): Promise<PwPage>;
|
|
133
|
+
close(): Promise<void>;
|
|
134
|
+
}
|
|
135
|
+
export interface PwPage {
|
|
136
|
+
goto(url: string, opts?: Record<string, unknown>): Promise<unknown>;
|
|
137
|
+
locator(selector: string): PwLocator;
|
|
138
|
+
getByRole(role: string, opts?: Record<string, unknown>): PwLocator;
|
|
139
|
+
getByText(text: string): PwLocator;
|
|
140
|
+
keyboard: {
|
|
141
|
+
press(key: string): Promise<unknown>;
|
|
142
|
+
};
|
|
143
|
+
evaluate(pageFunction: string): Promise<unknown>;
|
|
144
|
+
screenshot(opts?: Record<string, unknown>): Promise<Uint8Array>;
|
|
145
|
+
on(event: string, handler: (...args: any[]) => void): void;
|
|
146
|
+
url(): string;
|
|
147
|
+
title?(): Promise<string>;
|
|
148
|
+
bringToFront?(): Promise<void>;
|
|
149
|
+
}
|
|
150
|
+
export interface PwLocator {
|
|
151
|
+
ariaSnapshot(): Promise<string>;
|
|
152
|
+
click(): Promise<unknown>;
|
|
153
|
+
fill(value: string): Promise<unknown>;
|
|
154
|
+
hover(): Promise<unknown>;
|
|
155
|
+
pressKey(key: string): Promise<unknown>;
|
|
156
|
+
setInputFiles(files: string | string[]): Promise<unknown>;
|
|
157
|
+
waitFor(opts?: Record<string, unknown>): Promise<unknown>;
|
|
158
|
+
nth(index: number): PwLocator;
|
|
159
|
+
dragTo(target: PwLocator): Promise<unknown>;
|
|
160
|
+
}
|
|
161
|
+
export interface PwRoute {
|
|
162
|
+
continue(): Promise<unknown>;
|
|
163
|
+
abort(): Promise<unknown>;
|
|
164
|
+
}
|
|
165
|
+
export interface PwRequestInfo {
|
|
166
|
+
url(): string;
|
|
167
|
+
method?(): string;
|
|
168
|
+
}
|
|
169
|
+
export interface PwConsoleMessage {
|
|
170
|
+
type(): string;
|
|
171
|
+
text(): string;
|
|
172
|
+
}
|
|
173
|
+
export interface PwResponseInfo {
|
|
174
|
+
url(): string;
|
|
175
|
+
status(): number;
|
|
176
|
+
request(): PwRequestInfo;
|
|
177
|
+
}
|
|
178
|
+
export interface PwDialog {
|
|
179
|
+
type(): string;
|
|
180
|
+
message(): string;
|
|
181
|
+
accept(promptText?: string): Promise<unknown>;
|
|
182
|
+
dismiss(): Promise<unknown>;
|
|
183
|
+
}
|
|
184
|
+
export interface SnapshotEntry {
|
|
185
|
+
role: string;
|
|
186
|
+
name?: string;
|
|
187
|
+
nth: number;
|
|
188
|
+
}
|
|
189
|
+
/** ariaSnapshot yields plain YAML with NO addressable id, while the
|
|
190
|
+
* chrome-devtools-mcp muscle memory this tool aligns to is uid-addressed.
|
|
191
|
+
* The missing layer is built here: each take_snapshot re-indexes every YAML
|
|
192
|
+
* node (`- <role> "<name>" …`), injects `[uid=eN]` inline, and remembers
|
|
193
|
+
* (role, name, nth-of-kind); later actions resolve uid →
|
|
194
|
+
* `page.getByRole(role, { name, exact: true }).nth(nth)`. Uids are
|
|
195
|
+
* renumbered on every snapshot (one action, one observation); an
|
|
196
|
+
* unknown/stale uid errors back to take_snapshot instead of falling back
|
|
197
|
+
* to guessed locators. */
|
|
198
|
+
export declare class SnapshotIndex {
|
|
199
|
+
private entries;
|
|
200
|
+
private next;
|
|
201
|
+
get size(): number;
|
|
202
|
+
/** Reset + parse + annotate the ariaSnapshot YAML in one pass. */
|
|
203
|
+
annotate(yaml: string): string;
|
|
204
|
+
get(uid: string): SnapshotEntry | undefined;
|
|
205
|
+
/** uid → playwright locator; null = unknown uid / role the engine cannot
|
|
206
|
+
* address (the caller renders the take_snapshot-first guidance). */
|
|
207
|
+
locatorFor(page: PwPage, uid: string): PwLocator | null;
|
|
208
|
+
}
|
|
209
|
+
/** ariaSnapshot escapes whitespace/quotes inside names (\s \n \t \" \\). */
|
|
210
|
+
export declare function unescapeAriaName(raw: string): string;
|
|
211
|
+
/** The 16 canonical verbs, named byte-identical to chrome-devtools-mcp. */
|
|
212
|
+
export declare const BROWSER_PLAYWRIGHT_ACTIONS: readonly ["navigate_page", "take_snapshot", "click", "fill", "hover", "drag", "press_key", "select_page", "upload_file", "wait_for", "evaluate_script", "list_console_messages", "list_network_requests", "list_pages", "take_screenshot", "handle_dialog"];
|
|
213
|
+
/** Legacy compat verbs that ride on top of the 16 (both engines). */
|
|
214
|
+
export declare const BROWSER_COMPAT_ACTIONS: readonly ["open", "navigate", "read", "screenshot", "close"];
|
|
215
|
+
/** What the cdp-legacy fallback can still do (R2: degradation must keep the
|
|
216
|
+
* §6o behavior; everything snapshot-shaped is playwright-only). */
|
|
217
|
+
export declare const BROWSER_LEGACY_ACTIONS: readonly ["open", "navigate", "navigate_page", "read", "screenshot", "take_screenshot", "list_pages", "evaluate_script", "close"];
|
|
57
218
|
export declare function buildTmBrowserTool(deps: {
|
|
58
219
|
pipelines: TmPipelines;
|
|
59
220
|
cfg: TmConfig;
|
|
60
221
|
env?: Record<string, string | undefined>;
|
|
61
222
|
args?: Record<string, unknown>;
|
|
223
|
+
/** Test seam: replace the dynamic playwright-core import. */
|
|
224
|
+
importPlaywright?: () => Promise<unknown>;
|
|
225
|
+
/** Test seam: pretend node major version for the engine gate. */
|
|
226
|
+
nodeMajor?: number;
|
|
62
227
|
}): {
|
|
63
228
|
description: string;
|
|
64
229
|
args: Record<string, unknown>;
|
|
65
230
|
execute: (rawArgs: Record<string, unknown>, ctx: unknown) => Promise<ToolResult>;
|
|
66
231
|
dispose: () => void;
|
|
232
|
+
engineInfo: () => {
|
|
233
|
+
kind: BrowserEngineKind | null;
|
|
234
|
+
reason: string | null;
|
|
235
|
+
};
|
|
67
236
|
};
|
|
68
237
|
//# sourceMappingURL=browser.d.ts.map
|
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":"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"}
|