@te-river/opencode-team-mode 1.5.11 → 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.
Files changed (112) hide show
  1. package/README.md +154 -57
  2. package/README.zh-CN.md +126 -47
  3. package/dist/agents.d.ts +5 -1
  4. package/dist/agents.d.ts.map +1 -1
  5. package/dist/agents.js +37 -11
  6. package/dist/agents.js.map +1 -1
  7. package/dist/approval-gate.d.ts +54 -16
  8. package/dist/approval-gate.d.ts.map +1 -1
  9. package/dist/approval-gate.js +163 -42
  10. package/dist/approval-gate.js.map +1 -1
  11. package/dist/host-hooks.d.ts +115 -0
  12. package/dist/host-hooks.d.ts.map +1 -0
  13. package/dist/host-hooks.js +270 -0
  14. package/dist/host-hooks.js.map +1 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +68 -4
  17. package/dist/index.js.map +1 -1
  18. package/dist/prompts/lead.d.ts +1 -1
  19. package/dist/prompts/lead.d.ts.map +1 -1
  20. package/dist/prompts/lead.js +88 -6
  21. package/dist/prompts/lead.js.map +1 -1
  22. package/dist/prompts/shared.d.ts +1 -1
  23. package/dist/prompts/shared.d.ts.map +1 -1
  24. package/dist/prompts/shared.js +203 -119
  25. package/dist/prompts/shared.js.map +1 -1
  26. package/dist/prompts/specialists.d.ts +2 -2
  27. package/dist/prompts/specialists.d.ts.map +1 -1
  28. package/dist/prompts/specialists.js +73 -23
  29. package/dist/prompts/specialists.js.map +1 -1
  30. package/dist/tm/args-schema.d.ts +31 -1
  31. package/dist/tm/args-schema.d.ts.map +1 -1
  32. package/dist/tm/args-schema.js +155 -39
  33. package/dist/tm/args-schema.js.map +1 -1
  34. package/dist/tm/bash-timeout.d.ts +72 -0
  35. package/dist/tm/bash-timeout.d.ts.map +1 -0
  36. package/dist/tm/bash-timeout.js +100 -0
  37. package/dist/tm/bash-timeout.js.map +1 -0
  38. package/dist/tm/browser.d.ts +250 -20
  39. package/dist/tm/browser.d.ts.map +1 -1
  40. package/dist/tm/browser.js +1200 -143
  41. package/dist/tm/browser.js.map +1 -1
  42. package/dist/tm/config.d.ts +129 -0
  43. package/dist/tm/config.d.ts.map +1 -1
  44. package/dist/tm/config.js +117 -1
  45. package/dist/tm/config.js.map +1 -1
  46. package/dist/tm/dispatch.d.ts +95 -0
  47. package/dist/tm/dispatch.d.ts.map +1 -0
  48. package/dist/tm/dispatch.js +369 -0
  49. package/dist/tm/dispatch.js.map +1 -0
  50. package/dist/tm/index.d.ts +32 -7
  51. package/dist/tm/index.d.ts.map +1 -1
  52. package/dist/tm/index.js +74 -5
  53. package/dist/tm/index.js.map +1 -1
  54. package/dist/tm/memory.d.ts +88 -10
  55. package/dist/tm/memory.d.ts.map +1 -1
  56. package/dist/tm/memory.js +881 -99
  57. package/dist/tm/memory.js.map +1 -1
  58. package/dist/tm/pipelines.d.ts +26 -3
  59. package/dist/tm/pipelines.d.ts.map +1 -1
  60. package/dist/tm/pipelines.js +167 -11
  61. package/dist/tm/pipelines.js.map +1 -1
  62. package/dist/tm/ptc/budgets.d.ts +22 -1
  63. package/dist/tm/ptc/budgets.d.ts.map +1 -1
  64. package/dist/tm/ptc/budgets.js +87 -8
  65. package/dist/tm/ptc/budgets.js.map +1 -1
  66. package/dist/tm/ptc/contract.d.ts +49 -9
  67. package/dist/tm/ptc/contract.d.ts.map +1 -1
  68. package/dist/tm/ptc/contract.js +41 -3
  69. package/dist/tm/ptc/contract.js.map +1 -1
  70. package/dist/tm/ptc/driver.d.ts +5 -2
  71. package/dist/tm/ptc/driver.d.ts.map +1 -1
  72. package/dist/tm/ptc/driver.js +47 -15
  73. package/dist/tm/ptc/driver.js.map +1 -1
  74. package/dist/tm/ptc/engines.d.ts +15 -4
  75. package/dist/tm/ptc/engines.d.ts.map +1 -1
  76. package/dist/tm/ptc/engines.js +281 -28
  77. package/dist/tm/ptc/engines.js.map +1 -1
  78. package/dist/tm/ptc/index.d.ts +4 -4
  79. package/dist/tm/ptc/index.d.ts.map +1 -1
  80. package/dist/tm/ptc/index.js +2 -2
  81. package/dist/tm/ptc/index.js.map +1 -1
  82. package/dist/tm/ptc/pscan.d.ts +20 -1
  83. package/dist/tm/ptc/pscan.d.ts.map +1 -1
  84. package/dist/tm/ptc/pscan.js +328 -14
  85. package/dist/tm/ptc/pscan.js.map +1 -1
  86. package/dist/tm/ptc/summary.d.ts.map +1 -1
  87. package/dist/tm/ptc/summary.js +23 -1
  88. package/dist/tm/ptc/summary.js.map +1 -1
  89. package/dist/tm/ptc/tool.d.ts +34 -3
  90. package/dist/tm/ptc/tool.d.ts.map +1 -1
  91. package/dist/tm/ptc/tool.js +117 -20
  92. package/dist/tm/ptc/tool.js.map +1 -1
  93. package/dist/tm/pty.d.ts +70 -0
  94. package/dist/tm/pty.d.ts.map +1 -0
  95. package/dist/tm/pty.js +242 -0
  96. package/dist/tm/pty.js.map +1 -0
  97. package/dist/tm/search.d.ts +128 -15
  98. package/dist/tm/search.d.ts.map +1 -1
  99. package/dist/tm/search.js +556 -47
  100. package/dist/tm/search.js.map +1 -1
  101. package/dist/tm/shell-bridge.d.ts +14 -1
  102. package/dist/tm/shell-bridge.d.ts.map +1 -1
  103. package/dist/tm/shell-bridge.js +57 -10
  104. package/dist/tm/shell-bridge.js.map +1 -1
  105. package/dist/tm/webfetch.d.ts +29 -7
  106. package/dist/tm/webfetch.d.ts.map +1 -1
  107. package/dist/tm/webfetch.js +117 -15
  108. package/dist/tm/webfetch.js.map +1 -1
  109. package/dist/types.d.ts +16 -0
  110. package/dist/types.d.ts.map +1 -1
  111. package/docs/installation.md +216 -17
  112. package/package.json +5 -2
@@ -2,25 +2,339 @@
2
2
  * tm_ptc_run — static pre-scan: the FIRST gate. runPtc and buildPtcRunTool
3
3
  * both reject a rejected program before any engine runs. Auxiliary guard,
4
4
  * not a security boundary (design §3 trust model). Split out of the former
5
- * monolithic ptc.ts; behavior unchanged.
5
+ * monolithic ptc.ts.
6
+ *
7
+ * C1 fix batch: the old single-regex stripper deleted an ENTIRE template
8
+ * literal including its `${…}` executable interpolations, so
9
+ * `` `x ${process.exit(1)} y` `` was a FALSE NEGATIVE (a real escape written
10
+ * inside an interpolation sailed through). The scanner below is a tiny
11
+ * hand-written lexer that:
12
+ * - drops line/block comments and '…'/"…" string bodies (data, not code),
13
+ * - drops the LITERAL TEXT of a template but RECURSIVELY SCANS every
14
+ * `${…}` interpolation body (that text IS executed), and
15
+ * - drops regex-literal bodies, so `{ pattern: /\brequire\b/ }` (a plain
16
+ * DATA regex) no longer rejects the whole program.
17
+ * Everything is fail-CLOSED: an unterminated literal/comment/interpolation
18
+ * leaves its remainder in place to be scanned, so an open quote can never
19
+ * hide a banned token behind it.
6
20
  */
7
- /** Banned identifier tokens for the program source. */
21
+ /** Banned tokens for the program source. The last three (constructor(,
22
+ * Function(, eval() are the C1 escape call-sites; dynamic `import(` is
23
+ * already covered by the `import` word token. */
8
24
  const PSCAN_PATTERNS = [
9
- /\brequire\b/,
10
- /\bimport\b/,
11
- /\bprocess\b/,
12
- /\bglobalThis\b/,
13
- /\bDeno\b/,
14
- /\bBun\b/,
15
- /\bfs\b/,
16
- /\bnet\b/,
17
- /\bchild_process\b/,
25
+ { name: "require", re: /\brequire\b/ },
26
+ { name: "import", re: /\bimport\b/ },
27
+ { name: "process", re: /\bprocess\b/ },
28
+ { name: "globalThis", re: /\bglobalThis\b/ },
29
+ { name: "Deno", re: /\bDeno\b/ },
30
+ { name: "Bun", re: /\bBun\b/ },
31
+ { name: "fs", re: /\bfs\b/ },
32
+ { name: "net", re: /\bnet\b/ },
33
+ { name: "child_process", re: /\bchild_process\b/ },
34
+ { name: "constructor(", re: /\bconstructor\s*\(/ },
35
+ { name: "Function(", re: /\bFunction\s*\(/ },
36
+ { name: "eval(", re: /\beval\s*\(/ },
18
37
  ];
38
+ // Chars after which a `/` STARTS a regex literal (an operator/punctuator that
39
+ // cannot END an operand). Anything else (identifier, number, `)`, `]`, a
40
+ // closing quote) means the `/` is a DIVISION, so its right-hand side stays
41
+ // live code and is scanned.
42
+ const REGEX_POS_CHARS = new Set([
43
+ "(", ",", "=", ":", "[", "!", "&", "|", "?", "{", "}", ";", "+", "-", "*",
44
+ "%", "<", ">", "^", "~", "&", "|",
45
+ ]);
46
+ // Keywords after which a `/` is a regex (e.g. `return /x/`, `typeof /x/`).
47
+ const KEYWORDS_BEFORE_REGEX = new Set([
48
+ "return", "typeof", "instanceof", "in", "of", "new", "delete", "void",
49
+ "throw", "case", "do", "else", "yield", "await",
50
+ ]);
51
+ const isWordChar = (c) => (c >= "a" && c <= "z") || (c >= "A" && c <= "Z") || (c >= "0" && c <= "9") ||
52
+ c === "_" || c === "$";
53
+ /** s[start] is a quote; return the index AFTER the closing quote honouring
54
+ * backslash escapes, or -1 when the string runs off the end (unterminated). */
55
+ function scanString(s, start) {
56
+ const q = s[start];
57
+ let i = start + 1;
58
+ while (i < s.length) {
59
+ const c = s[i];
60
+ if (c === "\\") {
61
+ i += 2;
62
+ continue;
63
+ }
64
+ if (c === q)
65
+ return i + 1;
66
+ if (c === "\n")
67
+ return -1; // a plain string cannot span a newline → not a string
68
+ i++;
69
+ }
70
+ return -1;
71
+ }
72
+ /** s[start] is `/`; return the index AFTER the closing unescaped `/` (honour
73
+ * a `[...]` char class where `/` is literal), or -1 if it never closes on
74
+ * this line (so it is NOT a regex literal). */
75
+ function scanRegex(s, start) {
76
+ let i = start + 1;
77
+ let inClass = false;
78
+ while (i < s.length) {
79
+ const c = s[i];
80
+ if (c === "\\") {
81
+ i += 2;
82
+ continue;
83
+ }
84
+ if (c === "\n")
85
+ return -1;
86
+ if (c === "[")
87
+ inClass = true;
88
+ else if (c === "]")
89
+ inClass = false;
90
+ else if (c === "/" && !inClass)
91
+ return i + 1;
92
+ i++;
93
+ }
94
+ return -1;
95
+ }
96
+ /** s[start] is a backtick. Collapse the template's LITERAL TEXT to a single
97
+ * space (banned words there are data) and RECURSIVELY SCAN each `${…}`
98
+ * interpolation body (executed code). Returns the stripped text and the
99
+ * index after the closing backtick, or null when unterminated. */
100
+ function scanTemplate(s, start) {
101
+ let i = start + 1;
102
+ let out = "";
103
+ while (i < s.length) {
104
+ const c = s[i];
105
+ if (c === "\\") {
106
+ i += 2;
107
+ continue;
108
+ }
109
+ if (c === "`")
110
+ return { out: out + " ", end: i + 1 };
111
+ if (c === "$" && s[i + 1] === "{") {
112
+ out += " ";
113
+ const inner = scanToCloseBrace(s, i + 2);
114
+ if (!inner)
115
+ return null;
116
+ out += " " + scanCode(inner.code) + " ";
117
+ i = inner.end;
118
+ continue;
119
+ }
120
+ i++; // template text char — dropped (a single space represents the run)
121
+ }
122
+ return null; // unterminated
123
+ }
124
+ /** Start just after a `${`; find the matching `}` (depth-tracked, skipping
125
+ * strings / comments / regex / nested templates so a `}` inside them cannot
126
+ * close early). Returns the inner code (without the braces) + the index
127
+ * after `}`, or null on an unterminated interpolation. */
128
+ function scanToCloseBrace(s, start) {
129
+ let depth = 1;
130
+ let i = start;
131
+ let lastCode = "";
132
+ let lastWord = "";
133
+ let curWord = "";
134
+ const flushWord = () => {
135
+ if (curWord) {
136
+ lastWord = curWord;
137
+ curWord = "";
138
+ }
139
+ else {
140
+ lastWord = "";
141
+ }
142
+ };
143
+ while (i < s.length) {
144
+ const c = s[i];
145
+ if (c === "/" && s[i + 1] === "/") {
146
+ while (i < s.length && s[i] !== "\n")
147
+ i++;
148
+ flushWord();
149
+ continue;
150
+ }
151
+ if (c === "/" && s[i + 1] === "*") {
152
+ const e = s.indexOf("*/", i + 2);
153
+ if (e < 0)
154
+ return null;
155
+ i = e + 2;
156
+ flushWord();
157
+ continue;
158
+ }
159
+ if (c === '"' || c === "'") {
160
+ const e = scanString(s, i);
161
+ if (e < 0)
162
+ return null;
163
+ i = e;
164
+ lastCode = c;
165
+ flushWord();
166
+ continue;
167
+ }
168
+ if (c === "`") {
169
+ const r = scanTemplate(s, i);
170
+ if (!r)
171
+ return null;
172
+ i = r.end;
173
+ lastCode = "`";
174
+ flushWord();
175
+ continue;
176
+ }
177
+ if (c === "/") {
178
+ const regexPos = lastCode === "" || REGEX_POS_CHARS.has(lastCode) || KEYWORDS_BEFORE_REGEX.has(lastWord);
179
+ if (regexPos) {
180
+ const e = scanRegex(s, i);
181
+ if (e > 0) {
182
+ i = e;
183
+ lastCode = ")";
184
+ flushWord();
185
+ continue;
186
+ }
187
+ }
188
+ lastCode = "/";
189
+ flushWord();
190
+ i++;
191
+ continue;
192
+ }
193
+ if (c === "{") {
194
+ depth++;
195
+ lastCode = "{";
196
+ flushWord();
197
+ i++;
198
+ continue;
199
+ }
200
+ if (c === "}") {
201
+ depth--;
202
+ if (depth === 0)
203
+ return { code: s.slice(start, i), end: i + 1 };
204
+ lastCode = "}";
205
+ flushWord();
206
+ i++;
207
+ continue;
208
+ }
209
+ if (isWordChar(c)) {
210
+ curWord += c;
211
+ lastCode = c;
212
+ }
213
+ else {
214
+ flushWord();
215
+ if (c !== " " && c !== "\t" && c !== "\n" && c !== "\r")
216
+ lastCode = c;
217
+ }
218
+ i++;
219
+ }
220
+ return null; // ran off the end before the interpolation closed
221
+ }
222
+ /** Scan a code region: strip comments / strings / template-text / regex, keep
223
+ * interpolation bodies (recursively scanned) and all other code. */
224
+ function scanCode(s) {
225
+ let out = "";
226
+ let i = 0;
227
+ let lastCode = "";
228
+ let lastWord = "";
229
+ let curWord = "";
230
+ const flushWord = () => {
231
+ if (curWord) {
232
+ lastWord = curWord;
233
+ curWord = "";
234
+ }
235
+ else {
236
+ lastWord = "";
237
+ }
238
+ };
239
+ while (i < s.length) {
240
+ const c = s[i];
241
+ // line comment → collapse to a single space, keep the newline
242
+ if (c === "/" && s[i + 1] === "/") {
243
+ let k = i + 2;
244
+ while (k < s.length && s[k] !== "\n")
245
+ k++;
246
+ out += " ";
247
+ i = k;
248
+ flushWord();
249
+ continue;
250
+ }
251
+ // block comment → collapse to a single space; unterminated = fail closed
252
+ if (c === "/" && s[i + 1] === "*") {
253
+ const e = s.indexOf("*/", i + 2);
254
+ if (e < 0) {
255
+ out += s.slice(i);
256
+ break;
257
+ }
258
+ out += " ";
259
+ i = e + 2;
260
+ flushWord();
261
+ continue;
262
+ }
263
+ // string literal → single space; unterminated = fail closed (scan raw rest)
264
+ if (c === '"' || c === "'") {
265
+ const e = scanString(s, i);
266
+ if (e < 0) {
267
+ out += s.slice(i);
268
+ break;
269
+ }
270
+ out += " ";
271
+ i = e;
272
+ lastCode = c;
273
+ flushWord();
274
+ continue;
275
+ }
276
+ // template literal → text dropped, ${…} bodies scanned; unterminated = raw
277
+ if (c === "`") {
278
+ const r = scanTemplate(s, i);
279
+ if (!r) {
280
+ out += s.slice(i);
281
+ break;
282
+ }
283
+ out += r.out;
284
+ i = r.end;
285
+ lastCode = "`";
286
+ flushWord();
287
+ continue;
288
+ }
289
+ // `/` → regex literal (in a regex position) else division operator
290
+ if (c === "/") {
291
+ const regexPos = lastCode === "" || REGEX_POS_CHARS.has(lastCode) || KEYWORDS_BEFORE_REGEX.has(lastWord);
292
+ if (regexPos) {
293
+ const e = scanRegex(s, i);
294
+ if (e > 0) {
295
+ out += " ";
296
+ i = e;
297
+ lastCode = ")";
298
+ flushWord();
299
+ continue;
300
+ }
301
+ }
302
+ out += "/";
303
+ i++;
304
+ lastCode = "/";
305
+ flushWord();
306
+ continue;
307
+ }
308
+ // ordinary code char
309
+ out += c;
310
+ if (isWordChar(c)) {
311
+ curWord += c;
312
+ lastCode = c;
313
+ }
314
+ else {
315
+ flushWord();
316
+ if (c !== " " && c !== "\t" && c !== "\n" && c !== "\r")
317
+ lastCode = c;
318
+ }
319
+ i++;
320
+ }
321
+ return out;
322
+ }
323
+ /** The program source with string / comment / template-text / regex-literal
324
+ * bodies removed but `${…}` interpolation bodies retained and scanned.
325
+ * Each removed literal becomes a single SPACE (not "") so a token split
326
+ * across two literals cannot re-form, and word boundaries stay intact. */
327
+ export function stripNonExecutable(program) {
328
+ return scanCode(program);
329
+ }
19
330
  export function staticPscan(program) {
331
+ // Scan the EXECUTABLE surface only — string/comment/regex/template-text are
332
+ // data, but template interpolations ARE code and are retained by the scan.
333
+ const code = stripNonExecutable(program);
20
334
  const tokens = [];
21
- for (const re of PSCAN_PATTERNS) {
22
- if (re.test(program))
23
- tokens.push(re.source.replace(/\\b/g, "").replace(/\b/g, ""));
335
+ for (const { name, re } of PSCAN_PATTERNS) {
336
+ if (re.test(code))
337
+ tokens.push(name);
24
338
  }
25
339
  return { rejected: tokens.length > 0, tokens };
26
340
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pscan.js","sourceRoot":"","sources":["../../../src/tm/ptc/pscan.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uDAAuD;AACvD,MAAM,cAAc,GAAsB;IACxC,aAAa;IACb,YAAY;IACZ,aAAa;IACb,gBAAgB;IAChB,UAAU;IACV,SAAS;IACT,QAAQ;IACR,SAAS;IACT,mBAAmB;CACpB,CAAA;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;QAChC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;IACrF,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"pscan.js","sourceRoot":"","sources":["../../../src/tm/ptc/pscan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../src/tm/ptc/summary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,eAAe,CAAA;AAGjE,eAAO,MAAM,kBAAkB,qBAAW,CAAA;AAC1C,eAAO,MAAM,cAAc,oGAAyB,CAAA;AACpD,eAAO,MAAM,aAAa,qEAAiD,CAAA;AAC3E,eAAO,MAAM,eAAe,0FAA8B,CAAA;AAC1D,eAAO,MAAM,cAAc,gEAAsD,CAAA;AACjF,eAAO,MAAM,iBAAiB,yBAAU,CAAA;AACxC,eAAO,MAAM,oBAAoB,+BAAW,CAAA;AAU5C;6EAC6E;AAC7E,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,aAAa,EAChB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAClD,MAAM,CAmER"}
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../src/tm/ptc/summary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,eAAe,CAAA;AAGjE,eAAO,MAAM,kBAAkB,qBAAW,CAAA;AAC1C,eAAO,MAAM,cAAc,oGAAyB,CAAA;AACpD,eAAO,MAAM,aAAa,qEAAiD,CAAA;AAC3E,eAAO,MAAM,eAAe,0FAA8B,CAAA;AAC1D,eAAO,MAAM,cAAc,gEAAsD,CAAA;AACjF,eAAO,MAAM,iBAAiB,yBAAU,CAAA;AACxC,eAAO,MAAM,oBAAoB,+BAAW,CAAA;AAU5C;6EAC6E;AAC7E,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,aAAa,EAChB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAClD,MAAM,CAsFR"}
@@ -25,6 +25,25 @@ export function renderPtcSummary(o, offload) {
25
25
  const lines = [];
26
26
  lines.push(`${PTC_SUMMARY_HEADER} · ${o.label} · status=${o.status}`);
27
27
  lines.push(`steps=${o.okCount + o.errCount} ok=${o.okCount} err=${o.errCount} retries=${o.retries} ms=${o.ms} engine=${engineLabel(o)}`);
28
+ // budgets echo (fix batch T1): the operator must SEE the effective values
29
+ // and any clamping — a silently-clamped budget is an invisible contract
30
+ // change. Absent on hand-built outcomes (backward compatible).
31
+ // T6: the note now names WHICH fields the caller set (custom=) AND which
32
+ // were clamped (CLAMPED=), so a mixed run (one field tightened, one clamped)
33
+ // is fully transparent — not just "some numbers changed".
34
+ if (o.budgets) {
35
+ const b = o.budgets;
36
+ const setBy = b.setByUser && b.setByUser.length > 0 ? b.setByUser.join(", ") : "";
37
+ const clamp = b.clamped && b.clamped.length > 0 ? b.clamped.join(", ") : "";
38
+ let note;
39
+ if (clamp)
40
+ note = `(custom: ${setBy || "—"} · CLAMPED: ${clamp})`;
41
+ else if (setBy)
42
+ note = `(custom: ${setBy})`;
43
+ else
44
+ note = "(defaults)";
45
+ lines.push(`budgets: calls≤${b.maxCalls} err≤${b.maxErrors} to=${b.timeoutMs}ms ${note}`);
46
+ }
28
47
  const okSteps = o.steps.filter((s) => s.ok);
29
48
  const errSteps = o.steps.filter((s) => !s.ok);
30
49
  lines.push(PTC_OK_SECTION);
@@ -43,13 +62,16 @@ export function renderPtcSummary(o, offload) {
43
62
  for (const s of errSteps)
44
63
  lines.push(errRow(s));
45
64
  if (o.engineError) {
65
+ // T5: program faults and engine faults render DISTINCTLY so the
66
+ // operator can tell a bad program from a bad engine at a glance.
67
+ const faultKind = o.status === "program-error" ? "程序错误" : "引擎错误";
46
68
  lines.push(errRow({
47
69
  n: 0,
48
70
  tool: "tm_ptc_run",
49
71
  phase: o.engineError.phase,
50
72
  line: o.engineError.line,
51
73
  retry: false,
52
- message: `程序抛出:${o.engineError.message}`,
74
+ message: `${faultKind}:${o.engineError.message}`,
53
75
  }));
54
76
  }
55
77
  if (errSteps.length === 0 && !o.engineError)
@@ -1 +1 @@
1
- {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/tm/ptc/summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/tm/ptc/summary.ts"],"names":[],"mappings":"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"}
@@ -5,18 +5,48 @@
5
5
  * threshold offload + handles, TTL). PTC is NOT a bypass layer.
6
6
  * Split out of the former monolithic ptc.ts; behavior unchanged.
7
7
  */
8
- import type { ToolDefinition } from "../../types.js";
8
+ import type { ToolDefinition, ToolResult } from "../../types.js";
9
9
  import { type TmConfig } from "../config.js";
10
10
  import type { RunStore } from "../store.js";
11
+ import { type TmAskRequest } from "../perm-ask.js";
11
12
  import type { TmPipelines } from "../pipelines.js";
12
- import type { PtcBridge, PtcEngine } from "./contract.js";
13
+ import type { BridgeTool, PtcBridge, PtcEngine } from "./contract.js";
13
14
  /**
14
15
  * Real bridge: delegate each call to the corresponding exported pipeline,
15
16
  * `ctx` passed through untouched, and normalize the pipeline's `unknown`
16
17
  * result into `PtcCallResult` (TmErrorBody -> ok:false; anything else -> the
17
18
  * already-governed data). Governance is entirely the pipelines'.
19
+ *
20
+ * T6 web bridges: `web` carries the LIVE tm_search / tm_webfetch tool handles
21
+ * (built over the SAME secondary pipeline instance, so their step ids share
22
+ * the "ptc-" namespace). A bridged `tm.search()` / `tm.webfetch()` runs that
23
+ * tool's real execute under `ctx` — which means the host evaluates its
24
+ * `permission.asked` (the out-of-allowlist dialog AND the caller's own
25
+ * ruleset) against the CALLER'S session, so a non-web role is denied with a
26
+ * permission error and the denial is recorded as a failed step. When `web`
27
+ * is absent (TM_PTC_WEB_BRIDGE=off, or the secondary tools were not wired)
28
+ * the two web tools are rejected with an explicit args error.
18
29
  */
19
- export declare function pipelineBridge(pipelines: TmPipelines, ctx: unknown): PtcBridge;
30
+ export interface PtcWebHandles {
31
+ tm_search: {
32
+ execute: (rawArgs: Record<string, unknown>, ctx: unknown) => Promise<ToolResult>;
33
+ };
34
+ tm_webfetch: {
35
+ execute: (rawArgs: Record<string, unknown>, ctx: unknown) => Promise<ToolResult>;
36
+ };
37
+ }
38
+ /**
39
+ * Build the OFFICIAL permission request the bridge raises for a bridged web
40
+ * call. The permission name is the tool itself (`tm_search` / `tm_webfetch`),
41
+ * so the host evaluates the CALLER'S own ruleset — exactly as a direct tool
42
+ * call would: `deny` for a non-web role, and for a web-granted role
43
+ * (lead/researcher) the default ruleset is `ask`, so each bridged web call
44
+ * pops a confirmation dialog (store an `allow` rule to skip it) — NOT a
45
+ * silent pass. The patterns carry the target host (webfetch) / engine
46
+ * (search) so any dialog that DOES pop is informative and no-secret.
47
+ */
48
+ export declare function webBridgeAsk(tool: BridgeTool, args: Record<string, unknown>): TmAskRequest;
49
+ export declare function pipelineBridge(pipelines: TmPipelines, ctx: unknown, web?: PtcWebHandles): PtcBridge;
20
50
  /** Build the tm_ptc_run ToolDefinition. Registered in the tool segment
21
51
  * when the agent's whitelist grants tm_ptc_run (M3). `deps.args` is the
22
52
  * ZodRawShape from tools.buildPtcArgsSchema() when zod is available — the
@@ -31,5 +61,6 @@ export declare function buildPtcRunTool(deps: {
31
61
  engine?: PtcEngine;
32
62
  pipelines?: TmPipelines;
33
63
  bridge?: PtcBridge;
64
+ webTools?: PtcWebHandles;
34
65
  }): ToolDefinition;
35
66
  //# sourceMappingURL=tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../src/tm/ptc/tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAA0C,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAGpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAc,SAAS,EAAiB,SAAS,EAAgB,MAAM,eAAe,CAAA;AAUlG;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,GAAG,SAAS,CAqB9E;AAaD;;;mEAGmE;AACnE,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,GAAG,EAAE,QAAQ,CAAA;IACb,KAAK,EAAE,QAAQ,CAAA;IACf,UAAU,EAAE,MAAM,MAAM,CAAA;IACxB,GAAG,EAAE,OAAO,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,SAAS,CAAC,EAAE,WAAW,CAAA;IACvB,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB,GAAG,cAAc,CA+EjB"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../src/tm/ptc/tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAA0C,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAGpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAiB,SAAS,EAAgB,MAAM,eAAe,CAAA;AAUlG;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE;QAAE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;KAAE,CAAA;IAC/F,WAAW,EAAE;QAAE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;KAAE,CAAA;CAClG;AAsBD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAqB1F;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,SAAS,CAsEnG;AAcD;;;mEAGmE;AACnE,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,GAAG,EAAE,QAAQ,CAAA;IACb,KAAK,EAAE,QAAQ,CAAA;IACf,UAAU,EAAE,MAAM,MAAM,CAAA;IACxB,GAAG,EAAE,OAAO,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,SAAS,CAAC,EAAE,WAAW,CAAA;IACvB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,QAAQ,CAAC,EAAE,aAAa,CAAA;CACzB,GAAG,cAAc,CAyFjB"}