@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.
- package/README.md +143 -56
- package/README.zh-CN.md +116 -47
- 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 +203 -18
- package/dist/tm/browser.d.ts.map +1 -1
- package/dist/tm/browser.js +853 -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 +7 -5
- package/dist/tm/index.d.ts.map +1 -1
- package/dist/tm/index.js +38 -4
- 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 +33 -8
- package/dist/tm/webfetch.d.ts.map +1 -1
- package/dist/tm/webfetch.js +131 -20
- package/dist/tm/webfetch.js.map +1 -1
- package/package.json +5 -2
package/dist/tm/ptc/pscan.js
CHANGED
|
@@ -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
|
|
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
|
|
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(
|
|
23
|
-
tokens.push(
|
|
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
|
}
|
package/dist/tm/ptc/pscan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pscan.js","sourceRoot":"","sources":["../../../src/tm/ptc/pscan.ts"],"names":[],"mappings":"AAAA
|
|
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,
|
|
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"}
|
package/dist/tm/ptc/summary.js
CHANGED
|
@@ -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:
|
|
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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"}
|
package/dist/tm/ptc/tool.d.ts
CHANGED
|
@@ -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
|
|
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,
|
|
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"}
|