@te-river/opencode-team-mode 1.5.10 → 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.
Files changed (89) hide show
  1. package/README.md +143 -56
  2. package/README.zh-CN.md +116 -47
  3. package/dist/agents.d.ts.map +1 -1
  4. package/dist/agents.js +17 -11
  5. package/dist/agents.js.map +1 -1
  6. package/dist/approval-gate.d.ts +54 -16
  7. package/dist/approval-gate.d.ts.map +1 -1
  8. package/dist/approval-gate.js +163 -42
  9. package/dist/approval-gate.js.map +1 -1
  10. package/dist/prompts/lead.d.ts +1 -1
  11. package/dist/prompts/lead.d.ts.map +1 -1
  12. package/dist/prompts/lead.js +22 -3
  13. package/dist/prompts/lead.js.map +1 -1
  14. package/dist/prompts/shared.d.ts +1 -1
  15. package/dist/prompts/shared.d.ts.map +1 -1
  16. package/dist/prompts/shared.js +154 -119
  17. package/dist/prompts/shared.js.map +1 -1
  18. package/dist/prompts/specialists.d.ts +2 -2
  19. package/dist/prompts/specialists.d.ts.map +1 -1
  20. package/dist/prompts/specialists.js +40 -11
  21. package/dist/prompts/specialists.js.map +1 -1
  22. package/dist/tm/args-schema.d.ts +25 -1
  23. package/dist/tm/args-schema.d.ts.map +1 -1
  24. package/dist/tm/args-schema.js +149 -39
  25. package/dist/tm/args-schema.js.map +1 -1
  26. package/dist/tm/browser.d.ts +203 -18
  27. package/dist/tm/browser.d.ts.map +1 -1
  28. package/dist/tm/browser.js +853 -111
  29. package/dist/tm/browser.js.map +1 -1
  30. package/dist/tm/config.d.ts +61 -0
  31. package/dist/tm/config.d.ts.map +1 -1
  32. package/dist/tm/config.js +55 -1
  33. package/dist/tm/config.js.map +1 -1
  34. package/dist/tm/index.d.ts +7 -5
  35. package/dist/tm/index.d.ts.map +1 -1
  36. package/dist/tm/index.js +38 -4
  37. package/dist/tm/index.js.map +1 -1
  38. package/dist/tm/memory.d.ts +88 -10
  39. package/dist/tm/memory.d.ts.map +1 -1
  40. package/dist/tm/memory.js +881 -99
  41. package/dist/tm/memory.js.map +1 -1
  42. package/dist/tm/pipelines.d.ts +26 -3
  43. package/dist/tm/pipelines.d.ts.map +1 -1
  44. package/dist/tm/pipelines.js +167 -11
  45. package/dist/tm/pipelines.js.map +1 -1
  46. package/dist/tm/ptc/budgets.d.ts +22 -1
  47. package/dist/tm/ptc/budgets.d.ts.map +1 -1
  48. package/dist/tm/ptc/budgets.js +87 -8
  49. package/dist/tm/ptc/budgets.js.map +1 -1
  50. package/dist/tm/ptc/contract.d.ts +49 -9
  51. package/dist/tm/ptc/contract.d.ts.map +1 -1
  52. package/dist/tm/ptc/contract.js +41 -3
  53. package/dist/tm/ptc/contract.js.map +1 -1
  54. package/dist/tm/ptc/driver.d.ts +5 -2
  55. package/dist/tm/ptc/driver.d.ts.map +1 -1
  56. package/dist/tm/ptc/driver.js +47 -15
  57. package/dist/tm/ptc/driver.js.map +1 -1
  58. package/dist/tm/ptc/engines.d.ts +15 -4
  59. package/dist/tm/ptc/engines.d.ts.map +1 -1
  60. package/dist/tm/ptc/engines.js +281 -28
  61. package/dist/tm/ptc/engines.js.map +1 -1
  62. package/dist/tm/ptc/index.d.ts +4 -4
  63. package/dist/tm/ptc/index.d.ts.map +1 -1
  64. package/dist/tm/ptc/index.js +2 -2
  65. package/dist/tm/ptc/index.js.map +1 -1
  66. package/dist/tm/ptc/pscan.d.ts +20 -1
  67. package/dist/tm/ptc/pscan.d.ts.map +1 -1
  68. package/dist/tm/ptc/pscan.js +328 -14
  69. package/dist/tm/ptc/pscan.js.map +1 -1
  70. package/dist/tm/ptc/summary.d.ts.map +1 -1
  71. package/dist/tm/ptc/summary.js +23 -1
  72. package/dist/tm/ptc/summary.js.map +1 -1
  73. package/dist/tm/ptc/tool.d.ts +34 -3
  74. package/dist/tm/ptc/tool.d.ts.map +1 -1
  75. package/dist/tm/ptc/tool.js +117 -20
  76. package/dist/tm/ptc/tool.js.map +1 -1
  77. package/dist/tm/search.d.ts +83 -14
  78. package/dist/tm/search.d.ts.map +1 -1
  79. package/dist/tm/search.js +440 -45
  80. package/dist/tm/search.js.map +1 -1
  81. package/dist/tm/shell-bridge.d.ts +14 -1
  82. package/dist/tm/shell-bridge.d.ts.map +1 -1
  83. package/dist/tm/shell-bridge.js +57 -10
  84. package/dist/tm/shell-bridge.js.map +1 -1
  85. package/dist/tm/webfetch.d.ts +33 -8
  86. package/dist/tm/webfetch.d.ts.map +1 -1
  87. package/dist/tm/webfetch.js +131 -20
  88. package/dist/tm/webfetch.js.map +1 -1
  89. 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2D5B,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6EhC,CAAA"}
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"}
@@ -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;AAkCH,iBAAe,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CA2ElF;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAE3B;;;;;GAKG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA+B3E;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiBhF;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoB9E;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA2B9E;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAkB/E"}
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"}
@@ -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
- .describe("Optional directory scope, relative to the project root.")
60
- .optional(),
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
- .describe("HMAC token from the offload handle (may also ride the ref fragment).")
74
- .optional(),
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
- .describe("0-based line offset of the first line to return.")
80
- .optional(),
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
- .describe("Max lines per fetch, capped at TM_FETCH_MAX_LINES (default 2000).")
86
- .optional(),
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
- .describe("structure = ~100-token TOC / key tree / error-line map; try it first.")
90
- .optional(),
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
- label: zz.string().describe("Optional run label (≤80 chars).").optional(),
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
- .any()
118
- .describe("Optional budgets object { max_calls?, max_errors?, timeout_ms? } — tighten-only, clamped to the TM_PTC_* ceilings.")
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: "engine: bing|bing-int|sogou|so|baidu|bilibili|npm|github (optional, default bing)" },
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: "scope: project|global (optional, default project)" },
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).").optional(),
185
- content: zz.string().describe("One condensed fact, ≤4000 chars (add).").optional(),
186
- category: zz.string().describe("Category slug, e.g. project_tech_stack (add, optional).").optional(),
187
- keywords: zz.string().describe("Comma-separated keywords (add, optional).").optional(),
188
- usage_scenario: zz.string().describe("Comma-separated when-to-use scenarios (add, optional).").optional(),
189
- query: zz.string().describe("Search query (search).").optional(),
190
- scope: zz.string().describe("project (default) | global.").optional(),
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: 'action: open|navigate|read|screenshot|close (required)' },
202
- url: { descriptor: 'url: string (open/navigate, allowlisted https)' },
203
- headless: { descriptor: 'headless: boolean (open, optional — default auto)' },
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('open | navigate | read | screenshot | close.'),
209
- url: zz.string().describe('Absolute https URL on an allowlisted host (open/navigate). URL-encode the query (CJK terms too).').optional(),
210
- headless: zz.boolean().describe('Force headless/headful on open (optional — default auto by display availability).').optional(),
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":"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"}
1
+ {"version":3,"file":"args-schema.js","sourceRoot":"","sources":["../../src/tm/args-schema.ts"],"names":[],"mappings":"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"}