@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
|
@@ -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
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0FhC,CAAA"}
|
package/dist/tm/args-schema.d.ts
CHANGED
|
@@ -27,8 +27,20 @@ export declare function buildWebfetchArgsSchema(): Promise<Record<string, unknow
|
|
|
27
27
|
* tm_search args — same ZodRawShape treatment (BUG#3 class); descriptor
|
|
28
28
|
* fallback when zod is absent. tm/index awaits this and passes the result
|
|
29
29
|
* into buildTmSearchTool as `deps.args`.
|
|
30
|
+
*
|
|
31
|
+
* Wave B M1 — the engine list is DERIVED from search.ts's live
|
|
32
|
+
* `SEARCH_ENGINE_NAMES` + `AUTO_ENGINE_KEY`, never hand-written: a static
|
|
33
|
+
* copy here once drifted to a dead roster (bing-int/sogou/so/baidu kept,
|
|
34
|
+
* stackoverflow/hn/auto missing, default lied "bing"). Because
|
|
35
|
+
* buildTmSearchTool uses `deps.args ?? fallback`, this schema IS the
|
|
36
|
+
* model-visible surface in production (the search.ts fallback never fires),
|
|
37
|
+
* so it must not go stale. `defaultEngine` falls back to
|
|
38
|
+
* resolveTmConfig().searchDefaultEngine so the descriptor states the real
|
|
39
|
+
* default (auto) — callers may pass cfg.searchDefaultEngine explicitly.
|
|
40
|
+
* The §6m-s anti-drift test asserts the descriptor names every
|
|
41
|
+
* SEARCH_ENGINE_NAMES entry and none of the removed engines.
|
|
30
42
|
*/
|
|
31
|
-
export declare function buildSearchArgsSchema(): Promise<Record<string, unknown>>;
|
|
43
|
+
export declare function buildSearchArgsSchema(defaultEngine?: string): Promise<Record<string, unknown>>;
|
|
32
44
|
/**
|
|
33
45
|
* tm_memory args — same ZodRawShape treatment (BUG#3 class); descriptor
|
|
34
46
|
* fallback when zod is absent.
|
|
@@ -37,6 +49,18 @@ export declare function buildMemoryArgsSchema(): Promise<Record<string, unknown>
|
|
|
37
49
|
/**
|
|
38
50
|
* tm_browser args — same ZodRawShape treatment (BUG#3 class); descriptor
|
|
39
51
|
* fallback when zod is absent.
|
|
52
|
+
*
|
|
53
|
+
* STRIP BEHAVIOR / WHY EVERY FIELD IS DECLARED: this is a RAW shape, never
|
|
54
|
+
* wrapped in z.object() (BUG#3), so no zod-level .strip()/.passthrough()
|
|
55
|
+
* applies and execute() reads rawArgs verbatim. But the host serializes
|
|
56
|
+
* exactly these keys into the LLM parameter spec — an undeclared field is
|
|
57
|
+
* invisible to the model and never reaches browser.ts, i.e. the shape is a
|
|
58
|
+
* CLOSED param surface in effect. T5's 16 playwright verbs
|
|
59
|
+
* (BROWSER_PLAYWRIGHT_ACTIONS, browser.ts:505) + the 5 compat verbs consume
|
|
60
|
+
* 19 fields across execute/act (args.uid/selector/targetUid/targetSelector/
|
|
61
|
+
* text/key/function/expression/filePath/files/index/timeoutMs/dialogAction/
|
|
62
|
+
* promptText/clear/fullPage, browser.ts:956-1100, :1130-1170) — every one
|
|
63
|
+
* is declared below, or the corresponding verb silently loses its input.
|
|
40
64
|
*/
|
|
41
65
|
export declare function buildBrowserArgsSchema(): Promise<Record<string, unknown>>;
|
|
42
66
|
//# 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;
|
|
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;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiE/E"}
|
package/dist/tm/args-schema.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* ...}}` garbage args in real sessions (the model wrapped its args 3/3
|
|
9
9
|
* times), even though flat args reached execute fine.
|
|
10
10
|
*/
|
|
11
|
+
import { resolveTmConfig } from "./config.js";
|
|
11
12
|
/**
|
|
12
13
|
* Load zod when the host environment provides it (opencode ships it as a
|
|
13
14
|
* peer); fall back to plain arg descriptors so the plugin never hard-depends
|
|
@@ -41,7 +42,7 @@ async function buildArgsSchemas() {
|
|
|
41
42
|
tm_read: describe(null, null, "path: string (required)"),
|
|
42
43
|
tm_grep: describe(null, null, "pattern: string (required), path: string (optional)"),
|
|
43
44
|
tm_bash: describe(null, null, "command: string (required, read-only allowlisted)"),
|
|
44
|
-
tm_fetch: describe(null, null, "ref: string (required), access_token: string, offset: int, limit: int, mode: lines|structure"),
|
|
45
|
+
tm_fetch: describe(null, null, "ref: string (required), access_token: string, offset: int, limit: int, mode: lines|structure, fields: dot-path (json handle projection)"),
|
|
45
46
|
};
|
|
46
47
|
}
|
|
47
48
|
const zz = z;
|
|
@@ -54,10 +55,13 @@ async function buildArgsSchemas() {
|
|
|
54
55
|
},
|
|
55
56
|
tm_grep: {
|
|
56
57
|
pattern: zz.string().describe("Regex to search (ripgrep syntax)."),
|
|
58
|
+
// describe-LAST on every optional chain — zod v4 drops a description
|
|
59
|
+
// applied before .optional() when the shape is serialized (see
|
|
60
|
+
// buildMemoryArgsSchema); a required field's describe stays first.
|
|
57
61
|
path: zz
|
|
58
62
|
.string()
|
|
59
|
-
.
|
|
60
|
-
.
|
|
63
|
+
.optional()
|
|
64
|
+
.describe("Optional directory scope, relative to the project root."),
|
|
61
65
|
},
|
|
62
66
|
tm_bash: {
|
|
63
67
|
command: zz
|
|
@@ -70,24 +74,28 @@ async function buildArgsSchemas() {
|
|
|
70
74
|
.describe("Offload handle ref: tm://runs/{run_id}/steps/{step_id}/result"),
|
|
71
75
|
access_token: zz
|
|
72
76
|
.string()
|
|
73
|
-
.
|
|
74
|
-
.
|
|
77
|
+
.optional()
|
|
78
|
+
.describe("HMAC token from the offload handle (may also ride the ref fragment)."),
|
|
75
79
|
offset: zz
|
|
76
80
|
.number()
|
|
77
81
|
.int()
|
|
78
82
|
.min(0)
|
|
79
|
-
.
|
|
80
|
-
.
|
|
83
|
+
.optional()
|
|
84
|
+
.describe("0-based line offset of the first line to return."),
|
|
81
85
|
limit: zz
|
|
82
86
|
.number()
|
|
83
87
|
.int()
|
|
84
88
|
.min(1)
|
|
85
|
-
.
|
|
86
|
-
.
|
|
89
|
+
.optional()
|
|
90
|
+
.describe("Max lines per fetch, capped at TM_FETCH_MAX_LINES (default 2000)."),
|
|
87
91
|
mode: zz
|
|
88
92
|
.enum(["lines", "structure"])
|
|
89
|
-
.
|
|
90
|
-
.
|
|
93
|
+
.optional()
|
|
94
|
+
.describe("structure = ~100-token TOC / key tree / error-line map; try it first."),
|
|
95
|
+
fields: zz
|
|
96
|
+
.string()
|
|
97
|
+
.optional()
|
|
98
|
+
.describe("Dot-path projection over a JSON handle (T4): e.g. items[].name or user.email; returns ONLY the matched values. Ignored on a non-JSON handle."),
|
|
91
99
|
},
|
|
92
100
|
};
|
|
93
101
|
}
|
|
@@ -104,7 +112,7 @@ export async function buildPtcArgsSchema() {
|
|
|
104
112
|
return {
|
|
105
113
|
program: { descriptor: "program: string (required, async fn body, ≤TM_PTC_MAX_PROGRAM_CHARS)" },
|
|
106
114
|
label: { descriptor: "label: string (optional, ≤80 chars)" },
|
|
107
|
-
budgets: { descriptor: "budgets: { max_calls?, max_errors?, timeout_ms? } (optional, tighten-only)" },
|
|
115
|
+
budgets: { descriptor: "budgets: { max_calls?, max_errors?, timeout_ms? } (optional, tighten-only; any other key is rejected)" },
|
|
108
116
|
};
|
|
109
117
|
}
|
|
110
118
|
const zz = z;
|
|
@@ -112,11 +120,25 @@ export async function buildPtcArgsSchema() {
|
|
|
112
120
|
program: zz
|
|
113
121
|
.string()
|
|
114
122
|
.describe("Async function body. Available: tm.read(args), tm.grep(args), tm.bash(args), tm.fetch(args) — each returns {ok:true, data} or {ok:false, error:{tool,phase,line?,message}}. `return` a value for the aggregation summary."),
|
|
115
|
-
|
|
123
|
+
// Wave B Minor③: zod v4 DROPS a description set before .optional() when
|
|
124
|
+
// the shape is serialized, so every optional chain here is describe-LAST
|
|
125
|
+
// (matches buildMemoryArgsSchema / buildBrowserArgsSchema).
|
|
126
|
+
label: zz.string().optional().describe("Optional run label (≤80 chars)."),
|
|
127
|
+
// Fix batch T1: an EXPLICIT zod object — z.any() let host-side arg
|
|
128
|
+
// handling mangle the budgets value so parsePtcArgs never saw it and
|
|
129
|
+
// the caller's budgets silently fell back to the defaults.
|
|
130
|
+
// Wave B Minor②: .strict() rejects unknown budget keys (a typo like
|
|
131
|
+
// max_call silently read as an omitted default before — now it fails
|
|
132
|
+
// loudly). parsePtcArgs enforces the same at the runtime layer.
|
|
116
133
|
budgets: zz
|
|
117
|
-
.
|
|
118
|
-
.describe("
|
|
119
|
-
.optional(),
|
|
134
|
+
.object({
|
|
135
|
+
max_calls: zz.number().int().min(1).optional().describe("Max bridged tm_* calls (tighten-only)."),
|
|
136
|
+
max_errors: zz.number().int().min(1).optional().describe("Max failed bridged calls (tighten-only)."),
|
|
137
|
+
timeout_ms: zz.number().int().min(1).optional().describe("Wall-clock budget in ms (floor 5000, tighten-only)."),
|
|
138
|
+
})
|
|
139
|
+
.strict()
|
|
140
|
+
.optional()
|
|
141
|
+
.describe("Optional budgets object { max_calls?, max_errors?, timeout_ms? } — tighten-only, clamped to the TM_PTC_* ceilings. Unknown keys are rejected."),
|
|
120
142
|
};
|
|
121
143
|
}
|
|
122
144
|
/**
|
|
@@ -129,35 +151,58 @@ export async function buildWebfetchArgsSchema() {
|
|
|
129
151
|
if (!z) {
|
|
130
152
|
return {
|
|
131
153
|
url: { descriptor: "url: string (required, absolute https URL on an allowlisted host, query URL-encoded)" },
|
|
154
|
+
fields: { descriptor: "fields: string (optional, dot-path projection over a JSON response, e.g. items[].name; ignored on non-JSON)" },
|
|
132
155
|
};
|
|
133
156
|
}
|
|
157
|
+
// describe-LAST on the optional `fields` chain (zod v4 drops a
|
|
158
|
+
// description set before .optional(); see buildMemoryArgsSchema).
|
|
134
159
|
const zz = z;
|
|
135
160
|
return {
|
|
136
161
|
url: zz
|
|
137
162
|
.string()
|
|
138
|
-
.describe("Absolute https URL on an allowlisted host (seeded: mobile.moegirl.org.cn, search.bilibili.com, cn.bing.com, www.baidu.com, www.sogou.com, www.so.com, registry.npmjs.org, api.github.com). URL-encode the query (CJK terms too)."),
|
|
163
|
+
.describe("Absolute https URL on an allowlisted host (seeded: mobile.moegirl.org.cn, search.bilibili.com, cn.bing.com, www.baidu.com, www.sogou.com, www.so.com, registry.npmjs.org, api.github.com, api.stackexchange.com, hn.algolia.com). URL-encode the query (CJK terms too)."),
|
|
164
|
+
fields: zz
|
|
165
|
+
.string()
|
|
166
|
+
.optional()
|
|
167
|
+
.describe("Dot-path projection over a JSON response body (Wave B M2): e.g. items[].name or user.email — returns ONLY the matched values, mirroring tm_fetch's `fields`. Ignored when the response is not JSON."),
|
|
139
168
|
};
|
|
140
169
|
}
|
|
141
170
|
/**
|
|
142
171
|
* tm_search args — same ZodRawShape treatment (BUG#3 class); descriptor
|
|
143
172
|
* fallback when zod is absent. tm/index awaits this and passes the result
|
|
144
173
|
* into buildTmSearchTool as `deps.args`.
|
|
174
|
+
*
|
|
175
|
+
* Wave B M1 — the engine list is DERIVED from search.ts's live
|
|
176
|
+
* `SEARCH_ENGINE_NAMES` + `AUTO_ENGINE_KEY`, never hand-written: a static
|
|
177
|
+
* copy here once drifted to a dead roster (bing-int/sogou/so/baidu kept,
|
|
178
|
+
* stackoverflow/hn/auto missing, default lied "bing"). Because
|
|
179
|
+
* buildTmSearchTool uses `deps.args ?? fallback`, this schema IS the
|
|
180
|
+
* model-visible surface in production (the search.ts fallback never fires),
|
|
181
|
+
* so it must not go stale. `defaultEngine` falls back to
|
|
182
|
+
* resolveTmConfig().searchDefaultEngine so the descriptor states the real
|
|
183
|
+
* default (auto) — callers may pass cfg.searchDefaultEngine explicitly.
|
|
184
|
+
* The §6m-s anti-drift test asserts the descriptor names every
|
|
185
|
+
* SEARCH_ENGINE_NAMES entry and none of the removed engines.
|
|
145
186
|
*/
|
|
146
|
-
export async function buildSearchArgsSchema() {
|
|
187
|
+
export async function buildSearchArgsSchema(defaultEngine) {
|
|
188
|
+
const { AUTO_ENGINE_KEY, SEARCH_ENGINE_NAMES } = await import("./search.js");
|
|
189
|
+
const defEngine = (defaultEngine && defaultEngine.trim()) || resolveTmConfig().searchDefaultEngine || AUTO_ENGINE_KEY;
|
|
190
|
+
const engineList = `${AUTO_ENGINE_KEY}|${SEARCH_ENGINE_NAMES.join("|")}`;
|
|
191
|
+
const engineDesc = `engine: ${engineList} (optional, default ${defEngine}). ` +
|
|
192
|
+
`"${AUTO_ENGINE_KEY}" classifies the query and fans the matching engines out in parallel ` +
|
|
193
|
+
`(weighted-RRF fused top-10); an explicit name runs that single engine ` +
|
|
194
|
+
`(bing = the live CN HTML SERP; stackoverflow/hn/npm/github/moegirl/bilibili = structured JSON).`;
|
|
147
195
|
const z = await loadZod();
|
|
148
196
|
if (!z) {
|
|
149
197
|
return {
|
|
150
198
|
query: { descriptor: "query: string (required, raw text — CJK fine, encoded here)" },
|
|
151
|
-
engine: { descriptor:
|
|
199
|
+
engine: { descriptor: engineDesc },
|
|
152
200
|
};
|
|
153
201
|
}
|
|
154
202
|
const zz = z;
|
|
155
203
|
return {
|
|
156
204
|
query: zz.string().describe("Raw search query — pass text as-is; the tool URL-encodes it (CJK included)."),
|
|
157
|
-
engine: zz
|
|
158
|
-
.string()
|
|
159
|
-
.describe("bing (default) | bing-int (international results) | sogou | so (360) | baidu | bilibili | moegirl (wiki search API, structured) | npm (registry search, structured) | github (repo search API, structured).")
|
|
160
|
-
.optional(),
|
|
205
|
+
engine: zz.string().optional().describe(engineDesc),
|
|
161
206
|
};
|
|
162
207
|
}
|
|
163
208
|
/**
|
|
@@ -168,46 +213,111 @@ export async function buildMemoryArgsSchema() {
|
|
|
168
213
|
const z = await loadZod();
|
|
169
214
|
if (!z) {
|
|
170
215
|
return {
|
|
171
|
-
action: { descriptor: "action: add|search|list|forget (required)" },
|
|
216
|
+
action: { descriptor: "action: add|search|list|forget|compact (required)" },
|
|
172
217
|
title: { descriptor: "title: string (add/forget)" },
|
|
173
218
|
content: { descriptor: "content: string (add, ≤4000 chars)" },
|
|
174
219
|
category: { descriptor: "category: string (add, optional)" },
|
|
175
220
|
keywords: { descriptor: "keywords: string[] or comma string (add, optional)" },
|
|
176
221
|
usage_scenario: { descriptor: "usage_scenario: string[] or comma string (add, optional)" },
|
|
177
222
|
query: { descriptor: "query: string (search)" },
|
|
178
|
-
scope: { descriptor:
|
|
223
|
+
scope: { descriptor: 'scope: project|global|session (optional, default project; compact also accepts "all")' },
|
|
224
|
+
apply: { descriptor: "apply: boolean (compact only; absent = dry-run, true performs the merges)" },
|
|
179
225
|
};
|
|
180
226
|
}
|
|
227
|
+
// `.optional().describe(...)` — the description MUST be applied to the
|
|
228
|
+
// FINAL wrapper: zod (v4 confirmed) drops a description set before
|
|
229
|
+
// .optional() when the host serializes the shape, so describe-first would
|
|
230
|
+
// leave the model blind to the very text this descriptor exists to carry.
|
|
181
231
|
const zz = z;
|
|
182
232
|
return {
|
|
183
|
-
action: zz.string().describe("add | search | list | forget."),
|
|
184
|
-
title: zz.string().describe("Memory title (add/forget).")
|
|
185
|
-
content: zz.string().describe("One condensed fact, ≤4000 chars (add).")
|
|
186
|
-
category: zz.string().describe("Category slug, e.g. project_tech_stack (add, optional).")
|
|
187
|
-
keywords: zz.string().describe("Comma-separated keywords (add, optional).")
|
|
188
|
-
usage_scenario: zz.string().describe("Comma-separated when-to-use scenarios (add, optional).")
|
|
189
|
-
query: zz.string().describe("Search query (search).")
|
|
190
|
-
scope: zz
|
|
233
|
+
action: zz.string().describe("add | search | list | forget | compact."),
|
|
234
|
+
title: zz.string().optional().describe("Memory title (add/forget)."),
|
|
235
|
+
content: zz.string().optional().describe("One condensed fact, ≤4000 chars (add)."),
|
|
236
|
+
category: zz.string().optional().describe("Category slug, e.g. project_tech_stack (add, optional)."),
|
|
237
|
+
keywords: zz.string().optional().describe("Comma-separated keywords (add, optional)."),
|
|
238
|
+
usage_scenario: zz.string().optional().describe("Comma-separated when-to-use scenarios (add, optional)."),
|
|
239
|
+
query: zz.string().optional().describe("Search query (search)."),
|
|
240
|
+
scope: zz
|
|
241
|
+
.string()
|
|
242
|
+
.optional()
|
|
243
|
+
.describe('project (default) | global | session (transient, this conversation only); compact also accepts "all".'),
|
|
244
|
+
// memory.ts execute() reads args.apply (truthy gate on compact); the raw
|
|
245
|
+
// shape IS the model-visible param surface (the host serializes it into
|
|
246
|
+
// the LLM parameter spec), so an undeclared key is unreachable — declare
|
|
247
|
+
// it here or the model can never request a real compaction.
|
|
248
|
+
apply: zz
|
|
249
|
+
.boolean()
|
|
250
|
+
.optional()
|
|
251
|
+
.describe("compact only: absent = dry-run (report planned merges), true = perform them (originals backed up under memories/.compact-backup/)."),
|
|
191
252
|
};
|
|
192
253
|
}
|
|
193
254
|
/**
|
|
194
255
|
* tm_browser args — same ZodRawShape treatment (BUG#3 class); descriptor
|
|
195
256
|
* fallback when zod is absent.
|
|
257
|
+
*
|
|
258
|
+
* STRIP BEHAVIOR / WHY EVERY FIELD IS DECLARED: this is a RAW shape, never
|
|
259
|
+
* wrapped in z.object() (BUG#3), so no zod-level .strip()/.passthrough()
|
|
260
|
+
* applies and execute() reads rawArgs verbatim. But the host serializes
|
|
261
|
+
* exactly these keys into the LLM parameter spec — an undeclared field is
|
|
262
|
+
* invisible to the model and never reaches browser.ts, i.e. the shape is a
|
|
263
|
+
* CLOSED param surface in effect. T5's 16 playwright verbs
|
|
264
|
+
* (BROWSER_PLAYWRIGHT_ACTIONS, browser.ts:505) + the 5 compat verbs consume
|
|
265
|
+
* 19 fields across execute/act (args.uid/selector/targetUid/targetSelector/
|
|
266
|
+
* text/key/function/expression/filePath/files/index/timeoutMs/dialogAction/
|
|
267
|
+
* promptText/clear/fullPage, browser.ts:956-1100, :1130-1170) — every one
|
|
268
|
+
* is declared below, or the corresponding verb silently loses its input.
|
|
196
269
|
*/
|
|
197
270
|
export async function buildBrowserArgsSchema() {
|
|
198
271
|
const z = await loadZod();
|
|
272
|
+
const ACTION_LIST = "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 (16 playwright verbs) | open | navigate | read | screenshot | close (compat verbs).";
|
|
199
273
|
if (!z) {
|
|
200
274
|
return {
|
|
201
|
-
action: { descriptor:
|
|
202
|
-
url: { descriptor:
|
|
203
|
-
headless: { descriptor:
|
|
275
|
+
action: { descriptor: `action: ${ACTION_LIST} (required)` },
|
|
276
|
+
url: { descriptor: "url: string (open/navigate/navigate_page, allowlisted https)" },
|
|
277
|
+
headless: { descriptor: "headless: boolean (open, optional — default auto)" },
|
|
278
|
+
uid: { descriptor: "uid: snapshot [uid=eN] token (click/fill/hover/drag/upload_file/wait_for)" },
|
|
279
|
+
selector: { descriptor: "selector: CSS/text locator escape hatch (only when a snapshot cannot express the node)" },
|
|
280
|
+
targetUid: { descriptor: "targetUid: drag destination uid" },
|
|
281
|
+
targetSelector: { descriptor: "targetSelector: drag destination selector" },
|
|
282
|
+
text: { descriptor: "text: fill value / wait_for visible text" },
|
|
283
|
+
key: { descriptor: "key: press_key chord, e.g. Enter|Control+A" },
|
|
284
|
+
function: { descriptor: "function: JS function source for evaluate_script" },
|
|
285
|
+
expression: { descriptor: "expression: alias of function (evaluate_script)" },
|
|
286
|
+
filePath: { descriptor: "filePath: local file path for upload_file" },
|
|
287
|
+
files: { descriptor: "files: alias of filePath — single path or array of paths" },
|
|
288
|
+
index: { descriptor: "index: select_page target tab index from list_pages" },
|
|
289
|
+
timeoutMs: { descriptor: "timeoutMs: wait_for budget in ms (default 3000, clamped 100..30000)" },
|
|
290
|
+
dialogAction: { descriptor: "dialogAction: accept|dismiss for handle_dialog (default accept)" },
|
|
291
|
+
promptText: { descriptor: "promptText: prompt-dialog reply text for handle_dialog accept" },
|
|
292
|
+
clear: { descriptor: "clear: drain the console buffer after list_console_messages" },
|
|
293
|
+
fullPage: { descriptor: "fullPage: take_screenshot captures the full page (default viewport only)" },
|
|
204
294
|
};
|
|
205
295
|
}
|
|
296
|
+
// describe-LAST on every optional chain — zod v4 drops a description set
|
|
297
|
+
// before .optional() when the shape is serialized (see buildMemoryArgsSchema).
|
|
206
298
|
const zz = z;
|
|
299
|
+
const str = (d) => zz.string().optional().describe(d);
|
|
300
|
+
const bool = (d) => zz.boolean().optional().describe(d);
|
|
207
301
|
return {
|
|
208
|
-
action: zz.string().describe(
|
|
209
|
-
url:
|
|
210
|
-
headless:
|
|
302
|
+
action: zz.string().describe(ACTION_LIST),
|
|
303
|
+
url: str("Absolute https URL on an allowlisted host (open/navigate/navigate_page). URL-encode the query (CJK terms too)."),
|
|
304
|
+
headless: bool("Force headless/headful on open (optional — default auto by display availability)."),
|
|
305
|
+
uid: str("Snapshot [uid=eN] token from the LATEST take_snapshot (click/fill/hover/drag source/upload_file/wait_for)."),
|
|
306
|
+
selector: str("CSS/text locator escape hatch — only for a node the snapshot cannot express; never guess locators."),
|
|
307
|
+
targetUid: str("drag destination uid from the latest take_snapshot."),
|
|
308
|
+
targetSelector: str("drag destination selector escape hatch."),
|
|
309
|
+
text: str("fill value, or the visible text to wait for with wait_for (uid or text — one of them)."),
|
|
310
|
+
key: str('press_key chord, e.g. "Enter" or "Control+A".'),
|
|
311
|
+
function: str("JS function/expression source for evaluate_script (returns the JSON-serialized value)."),
|
|
312
|
+
expression: str("Alias of function for evaluate_script."),
|
|
313
|
+
filePath: str("Local file path for upload_file (must exist on disk)."),
|
|
314
|
+
files: zz.any().optional().describe("Alias of filePath for upload_file — a single path or an array of paths."),
|
|
315
|
+
index: zz.number().int().min(0).optional().describe("select_page target tab index (0-based, from list_pages)."),
|
|
316
|
+
timeoutMs: zz.number().int().min(100).optional().describe("wait_for visibility budget in ms (engine default 3000, clamped to 30000)."),
|
|
317
|
+
dialogAction: str("handle_dialog verdict: accept (default) | dismiss."),
|
|
318
|
+
promptText: str("Reply text when handle_dialog accepts a prompt()-type dialog."),
|
|
319
|
+
clear: bool("Drain the buffered console messages after list_console_messages."),
|
|
320
|
+
fullPage: bool("take_screenshot captures the full page (default: viewport only)."),
|
|
211
321
|
};
|
|
212
322
|
}
|
|
213
323
|
//# sourceMappingURL=args-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args-schema.js","sourceRoot":"","sources":["../../src/tm/args-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;GAIG;AACH,KAAK,UAAU,OAAO;IACpB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,KAAK,CAAA;QAClB,MAAM,GAAG,GAAY,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;QACvC,MAAM,CAAC,GACJ,GAAuB,EAAE,CAAC;YAC1B,GAAqC,EAAE,OAAO,EAAE,CAAC;YAClD,IAAI,CAAA;QACN,OAAO,CAAC,IAAI,OAAQ,CAA0B,CAAC,MAAM,KAAK,UAAU;YAClE,CAAC,CAAE,CAA6B;YAChC,CAAC,CAAC,IAAI,CAAA;IACV,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CACf,CAAiC,EACjC,MAAe,EACf,QAAgB;IAEhB,IAAI,CAAC,IAAI,OAAQ,CAA0B,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAClE,OAAO,MAAiC,CAAA;IAC1C,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAA;AACjC,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,MAAM,CAAC,GAAG,MAAM,OAAO,EAAE,CAAA;IACzB,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,yBAAyB,CAAC;YACxD,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,qDAAqD,CAAC;YACpF,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,mDAAmD,CAAC;YAClF,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"args-schema.js","sourceRoot":"","sources":["../../src/tm/args-schema.ts"],"names":[],"mappings":"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"}
|