@zhixuan92/multi-model-agent-core 4.7.7 → 4.7.9
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 +6 -8
- package/dist/config/schema.d.ts +6 -2
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +6 -2
- package/dist/config/schema.js.map +1 -1
- package/dist/events/to-wire-record.d.ts.map +1 -1
- package/dist/events/to-wire-record.js +24 -2
- package/dist/events/to-wire-record.js.map +1 -1
- package/dist/events/wire-schema.d.ts +10 -10
- package/dist/lifecycle/annotate-parser.d.ts +4 -2
- package/dist/lifecycle/annotate-parser.d.ts.map +1 -1
- package/dist/lifecycle/annotate-parser.js +45 -53
- package/dist/lifecycle/annotate-parser.js.map +1 -1
- package/dist/lifecycle/annotate-prompts.d.ts.map +1 -1
- package/dist/lifecycle/annotate-prompts.js +9 -3
- package/dist/lifecycle/annotate-prompts.js.map +1 -1
- package/dist/lifecycle/derive-completion.d.ts +25 -0
- package/dist/lifecycle/derive-completion.d.ts.map +1 -0
- package/dist/lifecycle/derive-completion.js +67 -0
- package/dist/lifecycle/derive-completion.js.map +1 -0
- package/dist/lifecycle/handlers/annotate-stage.d.ts.map +1 -1
- package/dist/lifecycle/handlers/annotate-stage.js +9 -1
- package/dist/lifecycle/handlers/annotate-stage.js.map +1 -1
- package/dist/lifecycle/handlers/enrich-runtime-result.d.ts.map +1 -1
- package/dist/lifecycle/handlers/enrich-runtime-result.js +0 -5
- package/dist/lifecycle/handlers/enrich-runtime-result.js.map +1 -1
- package/dist/lifecycle/handlers/git-commit-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/git-commit-handler.js +3 -2
- package/dist/lifecycle/handlers/git-commit-handler.js.map +1 -1
- package/dist/lifecycle/handlers/review-stage.js +7 -2
- package/dist/lifecycle/handlers/review-stage.js.map +1 -1
- package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/terminal-handlers.js +19 -6
- package/dist/lifecycle/handlers/terminal-handlers.js.map +1 -1
- package/dist/lifecycle/perform-implementation.d.ts.map +1 -1
- package/dist/lifecycle/perform-implementation.js +38 -5
- package/dist/lifecycle/perform-implementation.js.map +1 -1
- package/dist/lifecycle/research-pre-loop.d.ts +21 -0
- package/dist/lifecycle/research-pre-loop.d.ts.map +1 -0
- package/dist/lifecycle/research-pre-loop.js +54 -0
- package/dist/lifecycle/research-pre-loop.js.map +1 -0
- package/dist/lifecycle/task-executor.js +1 -1
- package/dist/lifecycle/task-executor.js.map +1 -1
- package/dist/lifecycle/tool-config-types.d.ts +1 -1
- package/dist/lifecycle/tool-config-types.d.ts.map +1 -1
- package/dist/providers/runner-types.d.ts +0 -6
- package/dist/providers/runner-types.d.ts.map +1 -1
- package/dist/research/adapters/arxiv.d.ts.map +1 -1
- package/dist/research/adapters/arxiv.js +5 -1
- package/dist/research/adapters/arxiv.js.map +1 -1
- package/dist/research/adapters/github-search.d.ts +1 -0
- package/dist/research/adapters/github-search.d.ts.map +1 -1
- package/dist/research/adapters/github-search.js +15 -12
- package/dist/research/adapters/github-search.js.map +1 -1
- package/dist/research/adapters/index.d.ts +5 -1
- package/dist/research/adapters/index.d.ts.map +1 -1
- package/dist/research/adapters/index.js +7 -3
- package/dist/research/adapters/index.js.map +1 -1
- package/dist/research/adapters/semantic-scholar.d.ts +1 -0
- package/dist/research/adapters/semantic-scholar.d.ts.map +1 -1
- package/dist/research/adapters/semantic-scholar.js +11 -1
- package/dist/research/adapters/semantic-scholar.js.map +1 -1
- package/dist/research/evidence-pack.d.ts +33 -0
- package/dist/research/evidence-pack.d.ts.map +1 -0
- package/dist/research/evidence-pack.js +132 -0
- package/dist/research/evidence-pack.js.map +1 -0
- package/dist/research/index.d.ts +1 -2
- package/dist/research/index.d.ts.map +1 -1
- package/dist/research/index.js +1 -3
- package/dist/research/index.js.map +1 -1
- package/dist/research/orchestrator.d.ts +24 -0
- package/dist/research/orchestrator.d.ts.map +1 -0
- package/dist/research/orchestrator.js +162 -0
- package/dist/research/orchestrator.js.map +1 -0
- package/dist/research/query-plan.d.ts +18 -0
- package/dist/research/query-plan.d.ts.map +1 -0
- package/dist/research/query-plan.js +36 -0
- package/dist/research/query-plan.js.map +1 -0
- package/dist/research/user-agent.d.ts +5 -0
- package/dist/research/user-agent.d.ts.map +1 -0
- package/dist/research/user-agent.js +17 -0
- package/dist/research/user-agent.js.map +1 -0
- package/dist/research/web-fetch.d.ts +6 -21
- package/dist/research/web-fetch.d.ts.map +1 -1
- package/dist/research/web-fetch.js +97 -58
- package/dist/research/web-fetch.js.map +1 -1
- package/dist/research/web-search.d.ts.map +1 -1
- package/dist/research/web-search.js +2 -0
- package/dist/research/web-search.js.map +1 -1
- package/dist/review/parse-review-report.d.ts.map +1 -1
- package/dist/review/parse-review-report.js +9 -2
- package/dist/review/parse-review-report.js.map +1 -1
- package/dist/review/templates/rework.js +1 -1
- package/dist/review/templates/rework.js.map +1 -1
- package/dist/tools/delegate/brief-slot.d.ts.map +1 -1
- package/dist/tools/delegate/brief-slot.js +3 -1
- package/dist/tools/delegate/brief-slot.js.map +1 -1
- package/dist/tools/delegate/implementer-criteria.d.ts +7 -0
- package/dist/tools/delegate/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/delegate/implementer-criteria.js +15 -0
- package/dist/tools/delegate/implementer-criteria.js.map +1 -1
- package/dist/tools/execute-plan/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/execute-plan/implementer-criteria.js +5 -1
- package/dist/tools/execute-plan/implementer-criteria.js.map +1 -1
- package/dist/tools/research/brief-slot.d.ts +17 -0
- package/dist/tools/research/brief-slot.d.ts.map +1 -1
- package/dist/tools/research/brief-slot.js +61 -0
- package/dist/tools/research/brief-slot.js.map +1 -1
- package/dist/tools/research/implementer-criteria.d.ts +4 -11
- package/dist/tools/research/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/research/implementer-criteria.js +77 -14
- package/dist/tools/research/implementer-criteria.js.map +1 -1
- package/dist/tools/research/tool-config.d.ts.map +1 -1
- package/dist/tools/research/tool-config.js +10 -2
- package/dist/tools/research/tool-config.js.map +1 -1
- package/dist/tools/research/two-turn-driver.d.ts +20 -0
- package/dist/tools/research/two-turn-driver.d.ts.map +1 -0
- package/dist/tools/research/two-turn-driver.js +41 -0
- package/dist/tools/research/two-turn-driver.js.map +1 -0
- package/dist/types/config.d.ts +2 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/enums.d.ts +3 -3
- package/dist/types/task-spec.d.ts +14 -10
- package/dist/types/task-spec.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/research/types.d.ts +0 -14
- package/dist/research/types.d.ts.map +0 -1
- package/dist/research/types.js +0 -2
- package/dist/research/types.js.map +0 -1
|
@@ -1,6 +1,23 @@
|
|
|
1
|
+
// packages/core/src/research/web-fetch.ts
|
|
2
|
+
//
|
|
3
|
+
// Replaces the previous IP-pinning dispatcher (which failed 100% of real
|
|
4
|
+
// requests on Node 25 / undici current) with a connect-callback re-validation
|
|
5
|
+
// SSRF guard: undici resolves the host normally; the connect callback compares
|
|
6
|
+
// the resolved IP against ssrf-guard's public-IP classification and aborts
|
|
7
|
+
// the connection if it's private/loopback/metadata. validateAndPinURL still
|
|
8
|
+
// runs first as the pre-request defense.
|
|
1
9
|
import { request, Agent } from 'undici';
|
|
10
|
+
import { USER_AGENT } from './user-agent.js';
|
|
2
11
|
import { wrapFetchedContent } from './untrusted-content.js';
|
|
3
|
-
import {
|
|
12
|
+
import { classifyIP } from './ssrf-guard.js';
|
|
13
|
+
import { REDIRECT_ERR_CODE_MAP, validateAndPinURL, extractContentType, isRedirect, extractLocation, extractBodyFromHTML, stripCredentialsFromURL, readBody, drainBody, mapRequestError, } from './web-fetch-helpers.js';
|
|
14
|
+
const ALLOWED_CT = new Set([
|
|
15
|
+
'text/html', 'text/plain',
|
|
16
|
+
'application/xml', 'application/atom+xml', 'application/rss+xml',
|
|
17
|
+
'application/json',
|
|
18
|
+
]);
|
|
19
|
+
const RETURNED_TEXT_CAP = 64 * 1024;
|
|
20
|
+
/** @deprecated — kept for test compatibility; no longer used in production. */
|
|
4
21
|
export const defaultIPPinningDispatcher = (host, pinnedIP, cfg) => new Agent({
|
|
5
22
|
connect: {
|
|
6
23
|
lookup: (_h, _o, cb) => cb(null, pinnedIP, pinnedIP.includes(':') ? 6 : 4),
|
|
@@ -8,21 +25,51 @@ export const defaultIPPinningDispatcher = (host, pinnedIP, cfg) => new Agent({
|
|
|
8
25
|
},
|
|
9
26
|
connectTimeout: cfg.connectTimeoutMs,
|
|
10
27
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
28
|
+
/** Build a shared agent that re-validates the resolved IP at connect time. */
|
|
29
|
+
function makeConnectGuardAgent(allowPrivateNetwork, testResolvedIp, connectTimeoutMs) {
|
|
30
|
+
return new Agent({
|
|
31
|
+
connect: {
|
|
32
|
+
lookup: (host, _opts, cb) => {
|
|
33
|
+
// If test seam present, return that IP; otherwise let Node resolve.
|
|
34
|
+
if (testResolvedIp) {
|
|
35
|
+
const fam = testResolvedIp.includes(':') ? 6 : 4;
|
|
36
|
+
// Re-validate test IP via ssrf-guard classification.
|
|
37
|
+
if (!allowPrivateNetwork) {
|
|
38
|
+
const klass = classifyIP(testResolvedIp);
|
|
39
|
+
if (klass !== 'public') {
|
|
40
|
+
cb(new Error('web_fetch_ssrf_postresolve_block'), '', 4);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
cb(null, testResolvedIp, fam);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// Production path: defer to Node's default lookup then re-validate.
|
|
48
|
+
import('node:dns').then(({ lookup }) => {
|
|
49
|
+
lookup(host, (err, address, family) => {
|
|
50
|
+
if (err) {
|
|
51
|
+
cb(err, '', 4);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (!allowPrivateNetwork) {
|
|
55
|
+
const klass = classifyIP(address);
|
|
56
|
+
if (klass !== 'public') {
|
|
57
|
+
cb(new Error('web_fetch_ssrf_postresolve_block'), '', 4);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
cb(null, address, family);
|
|
62
|
+
});
|
|
63
|
+
}).catch(e => cb(e, '', 4));
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
connectTimeout: connectTimeoutMs,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
21
69
|
export async function webFetch(input) {
|
|
22
70
|
const { cfg, hostAllowlist } = input;
|
|
23
71
|
const privateNetworkHosts = input.privateNetworkHosts ?? new Set();
|
|
24
72
|
let credentialsStripped = false;
|
|
25
|
-
// Strip credentials BEFORE any logging. Mutate to avoid leaking via toString.
|
|
26
73
|
let initial;
|
|
27
74
|
try {
|
|
28
75
|
initial = new URL(input.url);
|
|
@@ -31,15 +78,12 @@ export async function webFetch(input) {
|
|
|
31
78
|
return { status: 'error', reasonCode: 'web_fetch_invalid_url', credentialsStripped };
|
|
32
79
|
}
|
|
33
80
|
credentialsStripped = stripCredentialsFromURL(initial);
|
|
34
|
-
// Total-deadline AbortController scopes the entire op (including DNS, redirects, body reads).
|
|
35
81
|
const totalCtrl = new AbortController();
|
|
36
82
|
const totalTimer = setTimeout(() => totalCtrl.abort(), cfg.totalDeadlineMs);
|
|
37
83
|
try {
|
|
38
84
|
let currentURL = initial.toString();
|
|
39
85
|
let redirects = 0;
|
|
40
86
|
while (true) {
|
|
41
|
-
// validateAndPinURL is raced against totalCtrl.signal so a hanging DNS
|
|
42
|
-
// resolver (including injected resolveIP) cannot exceed totalDeadlineMs.
|
|
43
87
|
let v;
|
|
44
88
|
try {
|
|
45
89
|
v = await validateAndPinURL(currentURL, hostAllowlist, privateNetworkHosts, input.resolveIP, totalCtrl.signal);
|
|
@@ -57,38 +101,53 @@ export async function webFetch(input) {
|
|
|
57
101
|
}
|
|
58
102
|
return { status: 'error', reasonCode: v.reasonCode, host: v.host, credentialsStripped };
|
|
59
103
|
}
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
|
|
63
|
-
|
|
104
|
+
// Honor createDispatcher hook for tests: when present, use whatever it
|
|
105
|
+
// returns (or skip dispatcher entirely if undefined → MockAgent
|
|
106
|
+
// intercepts via global). In production, fall back to the connect-guard
|
|
107
|
+
// agent for post-resolve SSRF re-validation.
|
|
108
|
+
let agent;
|
|
109
|
+
if (input.createDispatcher !== undefined) {
|
|
110
|
+
agent = input.createDispatcher(v.host, v.pinnedIP, cfg);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
agent = makeConnectGuardAgent(cfg.allowPrivateNetwork ?? false, input._testConnectResolvedIp, cfg.connectTimeoutMs);
|
|
114
|
+
}
|
|
115
|
+
const closeAgent = async () => {
|
|
116
|
+
if (agent && typeof agent.close === 'function') {
|
|
117
|
+
try {
|
|
118
|
+
await agent.close();
|
|
119
|
+
}
|
|
120
|
+
catch { /* ignore */ }
|
|
121
|
+
}
|
|
122
|
+
};
|
|
64
123
|
let res;
|
|
65
124
|
try {
|
|
66
|
-
// undici 8 `request()` does not follow redirects by default; we handle
|
|
67
|
-
// them manually below to re-validate against the per-task allowlist.
|
|
68
125
|
res = await request(v.url.toString(), {
|
|
69
126
|
method: 'GET',
|
|
70
127
|
headersTimeout: cfg.connectTimeoutMs,
|
|
71
|
-
|
|
128
|
+
headers: { 'user-agent': USER_AGENT },
|
|
129
|
+
...(agent ? { dispatcher: agent } : {}),
|
|
72
130
|
signal: totalCtrl.signal,
|
|
73
131
|
});
|
|
74
132
|
}
|
|
75
133
|
catch (e) {
|
|
76
|
-
|
|
77
|
-
|
|
134
|
+
await closeAgent();
|
|
135
|
+
// Map our connect-callback abort to a stable reasonCode.
|
|
136
|
+
const msg = e?.message ?? '';
|
|
137
|
+
if (msg.includes('web_fetch_ssrf_postresolve_block')) {
|
|
138
|
+
return { status: 'error', reasonCode: 'web_fetch_ssrf_postresolve_block', host: v.host, credentialsStripped };
|
|
139
|
+
}
|
|
78
140
|
return { ...mapRequestError(e, totalCtrl.signal, v.host), credentialsStripped };
|
|
79
141
|
}
|
|
80
|
-
// Handle redirects manually (maxRedirections: 0 on undici)
|
|
81
142
|
if (isRedirect(res.statusCode)) {
|
|
82
143
|
redirects++;
|
|
83
144
|
if (redirects > cfg.maxRedirects) {
|
|
84
|
-
|
|
85
|
-
closeDispatcher(dispatcher);
|
|
145
|
+
await closeAgent();
|
|
86
146
|
return { status: 'error', reasonCode: 'web_fetch_too_many_redirects', host: v.host, credentialsStripped };
|
|
87
147
|
}
|
|
88
148
|
const location = extractLocation(res.headers);
|
|
89
149
|
if (!location) {
|
|
90
|
-
|
|
91
|
-
closeDispatcher(dispatcher);
|
|
150
|
+
await closeAgent();
|
|
92
151
|
return { status: 'error', reasonCode: 'web_fetch_redirect_missing_location', host: v.host, credentialsStripped };
|
|
93
152
|
}
|
|
94
153
|
let nextURL;
|
|
@@ -96,34 +155,27 @@ export async function webFetch(input) {
|
|
|
96
155
|
nextURL = new URL(location, v.url);
|
|
97
156
|
}
|
|
98
157
|
catch {
|
|
99
|
-
|
|
100
|
-
closeDispatcher(dispatcher);
|
|
158
|
+
await closeAgent();
|
|
101
159
|
return { status: 'error', reasonCode: 'web_fetch_redirect_invalid_url', host: v.host, credentialsStripped };
|
|
102
160
|
}
|
|
103
161
|
credentialsStripped = stripCredentialsFromURL(nextURL) || credentialsStripped;
|
|
104
162
|
currentURL = nextURL.toString();
|
|
105
|
-
// Drain redirect body with cap to free connection
|
|
106
163
|
await drainBody(res.body, totalCtrl.signal);
|
|
107
|
-
|
|
108
|
-
closeDispatcher(dispatcher);
|
|
164
|
+
await closeAgent();
|
|
109
165
|
if (totalCtrl.signal.aborted) {
|
|
110
166
|
return { status: 'error', reasonCode: 'web_fetch_timeout', host: v.host, credentialsStripped };
|
|
111
167
|
}
|
|
112
168
|
continue;
|
|
113
169
|
}
|
|
114
|
-
// Check content type. Missing content-type (empty) is allowed through;
|
|
115
|
-
// only explicit unsupported types are rejected.
|
|
116
170
|
const contentType = extractContentType(res.headers);
|
|
117
171
|
if (contentType && !ALLOWED_CT.has(contentType)) {
|
|
118
172
|
await drainBody(res.body, totalCtrl.signal);
|
|
119
|
-
|
|
120
|
-
closeDispatcher(dispatcher);
|
|
173
|
+
await closeAgent();
|
|
121
174
|
if (totalCtrl.signal.aborted) {
|
|
122
175
|
return { status: 'error', reasonCode: 'web_fetch_timeout', host: v.host, credentialsStripped };
|
|
123
176
|
}
|
|
124
177
|
return { status: 'error', reasonCode: 'web_fetch_unsupported_content_type', host: v.host, credentialsStripped };
|
|
125
178
|
}
|
|
126
|
-
// Read body with size cap. Stream errors map to web_fetch_body_read_failed.
|
|
127
179
|
let rawText;
|
|
128
180
|
let bytesReturned;
|
|
129
181
|
let truncated;
|
|
@@ -135,8 +187,7 @@ export async function webFetch(input) {
|
|
|
135
187
|
truncated = result.truncated;
|
|
136
188
|
}
|
|
137
189
|
catch (e) {
|
|
138
|
-
|
|
139
|
-
closeDispatcher(dispatcher);
|
|
190
|
+
await closeAgent();
|
|
140
191
|
if (e instanceof DOMException && e.name === 'AbortError') {
|
|
141
192
|
return { status: 'error', reasonCode: 'web_fetch_timeout', host: v.host, credentialsStripped };
|
|
142
193
|
}
|
|
@@ -145,33 +196,21 @@ export async function webFetch(input) {
|
|
|
145
196
|
}
|
|
146
197
|
return { status: 'error', reasonCode: 'web_fetch_body_read_failed', host: v.host, credentialsStripped };
|
|
147
198
|
}
|
|
148
|
-
|
|
149
|
-
closeDispatcher(dispatcher);
|
|
150
|
-
// Extract content for the worker-facing body
|
|
199
|
+
await closeAgent();
|
|
151
200
|
let extracted = rawText;
|
|
152
|
-
if (contentType === 'text/html')
|
|
201
|
+
if (contentType === 'text/html')
|
|
153
202
|
extracted = extractBodyFromHTML(rawText);
|
|
154
|
-
}
|
|
155
|
-
// Apply post-extraction text cap
|
|
156
203
|
let textTruncated = false;
|
|
157
204
|
if (extracted.length > RETURNED_TEXT_CAP) {
|
|
158
205
|
extracted = extracted.slice(0, RETURNED_TEXT_CAP);
|
|
159
206
|
textTruncated = true;
|
|
160
207
|
}
|
|
161
208
|
const wrapped = wrapFetchedContent({
|
|
162
|
-
url: v.url.toString(),
|
|
163
|
-
host: v.host,
|
|
164
|
-
content: extracted,
|
|
209
|
+
url: v.url.toString(), host: v.host, content: extracted,
|
|
165
210
|
});
|
|
166
211
|
return {
|
|
167
|
-
status: 'ok',
|
|
168
|
-
|
|
169
|
-
rawText,
|
|
170
|
-
host: v.host,
|
|
171
|
-
bytesReturned,
|
|
172
|
-
truncated,
|
|
173
|
-
textTruncated,
|
|
174
|
-
credentialsStripped,
|
|
212
|
+
status: 'ok', body: wrapped, rawText, host: v.host,
|
|
213
|
+
bytesReturned, truncated, textTruncated, credentialsStripped,
|
|
175
214
|
};
|
|
176
215
|
}
|
|
177
216
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-fetch.js","sourceRoot":"","sources":["../../src/research/web-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,qBAAqB,
|
|
1
|
+
{"version":3,"file":"web-fetch.js","sourceRoot":"","sources":["../../src/research/web-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../src/research/web-search.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../src/research/web-search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,iBAAiB;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE;AACnF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;CACjE;AAsBD,qBAAa,WAAW;IAcpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAbtB,OAAO,CAAC,YAAY,CAAK;IAMzB,OAAO,CAAC,SAAS,CAAoC;IAGrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;gBAGpB,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,EAC7C,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;KAAE;YAM3D,gBAAgB;IAmBxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA0E/E"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
|
+
import { USER_AGENT } from './user-agent.js';
|
|
2
3
|
function validateBraveResults(body) {
|
|
3
4
|
if (body == null || typeof body !== 'object')
|
|
4
5
|
return [];
|
|
@@ -92,6 +93,7 @@ export class BraveClient {
|
|
|
92
93
|
method: 'GET',
|
|
93
94
|
headers: {
|
|
94
95
|
'accept': 'application/json',
|
|
96
|
+
'user-agent': USER_AGENT,
|
|
95
97
|
'x-subscription-token': key,
|
|
96
98
|
},
|
|
97
99
|
signal: ctrl.signal,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../src/research/web-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../src/research/web-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-review-report.d.ts","sourceRoot":"","sources":["../../src/review/parse-review-report.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,UAAU,GAAG,kBAAkB,CAAC;IACzC,QAAQ,EAAE,KAAK,CAAC;QACd,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjD,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAKD,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAEvE,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,aAAa,GAAE,SAAS,mBAAmB,EAAyC,EACpF,QAAQ,CAAC,EAAE,QAAQ,GAClB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"parse-review-report.d.ts","sourceRoot":"","sources":["../../src/review/parse-review-report.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,UAAU,GAAG,kBAAkB,CAAC;IACzC,QAAQ,EAAE,KAAK,CAAC;QACd,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjD,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAKD,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAEvE,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,aAAa,GAAE,SAAS,mBAAmB,EAAyC,EACpF,QAAQ,CAAC,EAAE,QAAQ,GAClB,kBAAkB,CAsCpB"}
|
|
@@ -24,8 +24,15 @@ export function parseReviewReport(text, legalOutcomes = ['found', 'clean', 'not_
|
|
|
24
24
|
: '';
|
|
25
25
|
const result = parseFindings(findingsSection, 'reviewer', legalOutcomes, warnSink);
|
|
26
26
|
const findings = result.findings;
|
|
27
|
-
//
|
|
28
|
-
|
|
27
|
+
// Severity-gated verdict override. The reviewer prompt is explicit that
|
|
28
|
+
// "approved" means ship-able and that medium/low findings are nice-to-fix,
|
|
29
|
+
// not blockers (see review/templates/quality-review.ts:23-24). A blanket
|
|
30
|
+
// "any finding flips approved → changes_required" rule contradicted that
|
|
31
|
+
// contract and triggered a full rework cycle for a single low-severity
|
|
32
|
+
// nit. Only critical/high findings are blockers, matching the ladder the
|
|
33
|
+
// LLM was instructed to use.
|
|
34
|
+
if (verdict === 'approved'
|
|
35
|
+
&& findings.some(f => f.severity === 'critical' || f.severity === 'high')) {
|
|
29
36
|
verdict = 'changes_required';
|
|
30
37
|
}
|
|
31
38
|
return { verdict, findings };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-review-report.js","sourceRoot":"","sources":["../../src/review/parse-review-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAchE,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAC7C,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAI/C,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,gBAAgD,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,EACpF,QAAmB;IAEnB,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAElD,IAAI,OAAO,GAAoC,kBAAkB,CAAC;IAClE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACrF,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,OAAO,GAAG,UAAU,CAAC;QACvB,CAAC;IACH,CAAC;SAAM,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/E,OAAO,GAAG,UAAU,CAAC;IACvB,CAAC;IAED,qEAAqE;IACrE,2EAA2E;IAC3E,+EAA+E;IAC/E,MAAM,eAAe,GAAG,aAAa;QACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEjC,
|
|
1
|
+
{"version":3,"file":"parse-review-report.js","sourceRoot":"","sources":["../../src/review/parse-review-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAchE,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAC7C,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAI/C,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,gBAAgD,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,EACpF,QAAmB;IAEnB,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAElD,IAAI,OAAO,GAAoC,kBAAkB,CAAC;IAClE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACrF,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,OAAO,GAAG,UAAU,CAAC;QACvB,CAAC;IACH,CAAC;SAAM,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/E,OAAO,GAAG,UAAU,CAAC;IACvB,CAAC;IAED,qEAAqE;IACrE,2EAA2E;IAC3E,+EAA+E;IAC/E,MAAM,eAAe,GAAG,aAAa;QACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEjC,wEAAwE;IACxE,2EAA2E;IAC3E,yEAAyE;IACzE,yEAAyE;IACzE,uEAAuE;IACvE,yEAAyE;IACzE,6BAA6B;IAC7B,IAAI,OAAO,KAAK,UAAU;WACnB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC;QAC9E,OAAO,GAAG,kBAAkB,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -18,7 +18,7 @@ export const reworkTemplate = {
|
|
|
18
18
|
'When done: write summary "Fixed: <list of deviations>. Could not fix: <list with reasons>." End your turn.',
|
|
19
19
|
'',
|
|
20
20
|
'workerStatus calibration (this is where rework workers commonly under-rate themselves):',
|
|
21
|
-
'- "done" — you applied a fix for EVERY listed deviation. This is the correct value even though the reviewer originally flagged concerns. Being asked to rework is not, by itself, a "concern" — addressing the rework IS the success path.',
|
|
21
|
+
'- "done" — you applied a fix for EVERY listed deviation. This is the correct value even though the reviewer originally flagged concerns. Being asked to rework is not, by itself, a "concern" — addressing the rework IS the success path. Verification of the fix is the reviewer\'s responsibility on the next round — do not mark yourself failed because you couldn\'t independently verify.',
|
|
22
22
|
'- "done_with_concerns" — you addressed every listed deviation AND noticed a NEW unrelated issue you couldn\'t fix in this turn. Put the new issue in `unresolved`.',
|
|
23
23
|
'- "blocked" / "failed" — you were unable to apply a fix for ONE OR MORE of the listed deviations (conflicting constraints, missing source, ambiguous instruction). Put those entries in the "Could not fix" line AND in `unresolved`.',
|
|
24
24
|
'If your summary line is "Fixed: <every deviation>. Could not fix: (none)." then workerStatus MUST be "done".',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rework.js","sourceRoot":"","sources":["../../../src/review/templates/rework.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,YAAY,EAAE;QACZ,sIAAsI;QACtI,4DAA4D;QAC5D,EAAE;QACF,wLAAwL;QACxL,EAAE;QACF,0BAA0B;QAC1B,oEAAoE;QACpE,wCAAwC;QACxC,mDAAmD;QACnD,EAAE;QACF,aAAa;QACb,+EAA+E;QAC/E,iKAAiK;QACjK,8CAA8C;QAC9C,EAAE;QACF,4GAA4G;QAC5G,EAAE;QACF,yFAAyF;QACzF,
|
|
1
|
+
{"version":3,"file":"rework.js","sourceRoot":"","sources":["../../../src/review/templates/rework.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,YAAY,EAAE;QACZ,sIAAsI;QACtI,4DAA4D;QAC5D,EAAE;QACF,wLAAwL;QACxL,EAAE;QACF,0BAA0B;QAC1B,oEAAoE;QACpE,wCAAwC;QACxC,mDAAmD;QACnD,EAAE;QACF,aAAa;QACb,+EAA+E;QAC/E,iKAAiK;QACjK,8CAA8C;QAC9C,EAAE;QACF,4GAA4G;QAC5G,EAAE;QACF,yFAAyF;QACzF,8YAA8Y;QAC9Y,oKAAoK;QACpK,wOAAwO;QACxO,8GAA8G;KAC/G,CAAC,IAAI,CAAC,IAAI,CAAC;IAEZ,eAAe,CAAC,GAAG;QACjB,oEAAoE;QACpE,sEAAsE;QACtE,kEAAkE;QAClE,2DAA2D;QAC3D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CACR,iCAAiC,GAAG,CAAC,aAAa;iBAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;iBAC/B,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;QAC3G,CAAC;QACD,KAAK,CAAC,IAAI,CACR,YAAY;YACZ,mCAAmC;YACnC,kEAAkE;YAClE,4CAA4C;YAC5C,kRAAkR,CACnR,CAAC;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brief-slot.d.ts","sourceRoot":"","sources":["../../../src/tools/delegate/brief-slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"brief-slot.d.ts","sourceRoot":"","sources":["../../../src/tools/delegate/brief-slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAUjE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AA2CD,eAAO,MAAM,iBAAiB,GAAI,OAAO,KAAK,KAAG,aAAa,EAQzD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DELEGATE_PURPOSE_ORIENTATION, DELEGATE_SCOPE_RULE, DELEGATE_FAILURE_MODES, COMPLETENESS_REMINDER_DELEGATE, TURN_BUDGET_DELEGATE, } from './implementer-criteria.js';
|
|
1
|
+
import { DELEGATE_PURPOSE_ORIENTATION, DELEGATE_SCOPE_RULE, DELEGATE_FAILURE_MODES, COMPLETENESS_REMINDER_DELEGATE, WORKER_SELF_ASSESSMENT_DELEGATE, TURN_BUDGET_DELEGATE, } from './implementer-criteria.js';
|
|
2
2
|
/**
|
|
3
3
|
* Compile a delegate worker prompt — slimmed in 4.2.3 from ~9 KB to
|
|
4
4
|
* ~3 KB. Cheap workers respond to long layered prompts by spinning on
|
|
@@ -34,6 +34,8 @@ function compileDelegatePrompt(input) {
|
|
|
34
34
|
'',
|
|
35
35
|
COMPLETENESS_REMINDER_DELEGATE,
|
|
36
36
|
'',
|
|
37
|
+
WORKER_SELF_ASSESSMENT_DELEGATE,
|
|
38
|
+
'',
|
|
37
39
|
TURN_BUDGET_DELEGATE,
|
|
38
40
|
].join('\n');
|
|
39
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brief-slot.js","sourceRoot":"","sources":["../../../src/tools/delegate/brief-slot.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAWnC;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,qBAAqB,CAAC,KAA+C;IAC5E,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QACnE,CAAC,CAAC,+EAA+E,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,2SAA2S;QAC7a,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,4BAA4B;QAC5B,EAAE;QACF,gFAAgF;QAChF,EAAE;QACF,KAAK,CAAC,MAAM;QACZ,eAAe;QACf,EAAE;QACF,mBAAmB;QACnB,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,8BAA8B;QAC9B,EAAE;QACF,oBAAoB;KACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAmB,EAAE,CACjE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtB,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3E,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,UAAU;IACpC,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,MAAM;IACtC,eAAe,EAAE,CAAC,CAAC,eAAe;CACnC,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"brief-slot.js","sourceRoot":"","sources":["../../../src/tools/delegate/brief-slot.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,+BAA+B,EAC/B,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAWnC;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,qBAAqB,CAAC,KAA+C;IAC5E,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QACnE,CAAC,CAAC,+EAA+E,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,2SAA2S;QAC7a,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,4BAA4B;QAC5B,EAAE;QACF,gFAAgF;QAChF,EAAE;QACF,KAAK,CAAC,MAAM;QACZ,eAAe;QACf,EAAE;QACF,mBAAmB;QACnB,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,8BAA8B;QAC9B,EAAE;QACF,+BAA+B;QAC/B,EAAE;QACF,oBAAoB;KACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAmB,EAAE,CACjE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtB,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3E,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,UAAU;IACpC,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,MAAM;IACtC,eAAe,EAAE,CAAC,CAAC,eAAe;CACnC,CAAC,CAAC,CAAC"}
|
|
@@ -36,6 +36,13 @@ export declare const DELEGATE_FAILURE_MODES: string;
|
|
|
36
36
|
* dropped (cheap models can apply the rule directly without it).
|
|
37
37
|
*/
|
|
38
38
|
export declare const COMPLETENESS_REMINDER_DELEGATE: string;
|
|
39
|
+
/**
|
|
40
|
+
* Self-assessment honesty — the deterministic gate (4.7.8+) derives
|
|
41
|
+
* completion from objective signals; worker self-assessment is telemetry
|
|
42
|
+
* only. This block tells workers not to mark themselves 'failed' purely
|
|
43
|
+
* because they couldn't run verification.
|
|
44
|
+
*/
|
|
45
|
+
export declare const WORKER_SELF_ASSESSMENT_DELEGATE: string;
|
|
39
46
|
/**
|
|
40
47
|
* Turn budget — calibration block. Same rationale as execute-plan's:
|
|
41
48
|
* cheap models default to "be thorough" and treat each turn as
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/delegate/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;GAEG;AACH,eAAO,MAAM,4BAA4B,QAU7B,CAAC;AAEb,eAAO,MAAM,mBAAmB,QAMpB,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAOvB,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,8BAA8B,QAS/B,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAMrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/delegate/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;GAEG;AACH,eAAO,MAAM,4BAA4B,QAU7B,CAAC;AAEb,eAAO,MAAM,mBAAmB,QAMpB,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAOvB,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,8BAA8B,QAS/B,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,QAQhC,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAMrB,CAAC"}
|
|
@@ -68,6 +68,21 @@ export const COMPLETENESS_REMINDER_DELEGATE = [
|
|
|
68
68
|
'',
|
|
69
69
|
'"Smallest" means no extras. "Complete" means no gaps. Both at once.',
|
|
70
70
|
].join('\n');
|
|
71
|
+
/**
|
|
72
|
+
* Self-assessment honesty — the deterministic gate (4.7.8+) derives
|
|
73
|
+
* completion from objective signals; worker self-assessment is telemetry
|
|
74
|
+
* only. This block tells workers not to mark themselves 'failed' purely
|
|
75
|
+
* because they couldn't run verification.
|
|
76
|
+
*/
|
|
77
|
+
export const WORKER_SELF_ASSESSMENT_DELEGATE = [
|
|
78
|
+
'Worker self-assessment:',
|
|
79
|
+
'',
|
|
80
|
+
'Report workerSelfAssessment: "done" when the requested code changes are complete. Verification (running tests, checking build, ensuring CI would pass) is the system\'s job, not yours. Environment limitations (sandbox denials, missing commands, missing credentials) go in the summary field, not into a "failed" self-assessment.',
|
|
81
|
+
'',
|
|
82
|
+
'The system independently verifies via reviewer + commit-stage signals. Your self-assessment never gates completion.',
|
|
83
|
+
'',
|
|
84
|
+
'Report workerSelfAssessment: "failed" ONLY when you could not complete the requested code changes (you got stuck, the brief was impossible, you decided to bail). Inability to independently verify is not failure.',
|
|
85
|
+
].join('\n');
|
|
71
86
|
/**
|
|
72
87
|
* Turn budget — calibration block. Same rationale as execute-plan's:
|
|
73
88
|
* cheap models default to "be thorough" and treat each turn as
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/delegate/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,gHAAgH;IAChH,+MAA+M;IAC/M,EAAE;IACF,QAAQ;IACR,kEAAkE;IAClE,gRAAgR;IAChR,kFAAkF;IAClF,2KAA2K;IAC3K,iHAAiH;CAClH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ;IACR,oGAAoG;IACpG,iOAAiO;IACjO,uLAAuL;IACvL,gIAAgI;CACjI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,oGAAoG;IACpG,EAAE;IACF,mJAAmJ;IACnJ,kOAAkO;IAClO,2HAA2H;IAC3H,yOAAyO;CAC1O,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,sDAAsD;IACtD,EAAE;IACF,2BAA2B;IAC3B,kEAAkE;IAClE,yFAAyF;IACzF,kJAAkJ;IAClJ,EAAE;IACF,qEAAqE;CACtE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc;IACd,EAAE;IACF,kXAAkX;IAClX,EAAE;IACF,6HAA6H;CAC9H,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/delegate/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,gHAAgH;IAChH,+MAA+M;IAC/M,EAAE;IACF,QAAQ;IACR,kEAAkE;IAClE,gRAAgR;IAChR,kFAAkF;IAClF,2KAA2K;IAC3K,iHAAiH;CAClH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ;IACR,oGAAoG;IACpG,iOAAiO;IACjO,uLAAuL;IACvL,gIAAgI;CACjI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,oGAAoG;IACpG,EAAE;IACF,mJAAmJ;IACnJ,kOAAkO;IAClO,2HAA2H;IAC3H,yOAAyO;CAC1O,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,sDAAsD;IACtD,EAAE;IACF,2BAA2B;IAC3B,kEAAkE;IAClE,yFAAyF;IACzF,kJAAkJ;IAClJ,EAAE;IACF,qEAAqE;CACtE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,yBAAyB;IACzB,EAAE;IACF,wUAAwU;IACxU,EAAE;IACF,qHAAqH;IACrH,EAAE;IACF,qNAAqN;CACtN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc;IACd,EAAE;IACF,kXAAkX;IAClX,EAAE;IACF,6HAA6H;CAC9H,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/execute-plan/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;GAGG;AACH,eAAO,MAAM,gCAAgC,QAUjC,CAAC;AAEb,eAAO,MAAM,uBAAuB,QAKxB,CAAC;AAEb;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAO3B,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,QAU9B,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/execute-plan/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;GAGG;AACH,eAAO,MAAM,gCAAgC,QAUjC,CAAC;AAEb,eAAO,MAAM,uBAAuB,QAKxB,CAAC;AAEb;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAO3B,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,QAU9B,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAalB,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAMZ,CAAC"}
|
|
@@ -86,7 +86,11 @@ export const SELF_VERIFICATION = [
|
|
|
86
86
|
' Self-verification:',
|
|
87
87
|
' - $ <command> PASS / FAIL (<N> tests)',
|
|
88
88
|
'',
|
|
89
|
-
'If
|
|
89
|
+
'If a command FAILS for a real reason (the code is wrong): investigate, fix, re-run. A failing test is your output, not the reviewer\'s problem.',
|
|
90
|
+
'',
|
|
91
|
+
'If you CANNOT run a command (shell unavailable, dependency missing, sandbox denied, missing credentials): say so explicitly in your summary AND still report workerSelfAssessment: "done" if the code changes are complete. Inability to verify is not the same as failure. The system independently verifies via reviewer + commit-stage signals; your self-assessment never gates completion.',
|
|
92
|
+
'',
|
|
93
|
+
'Mark workerSelfAssessment: "failed" ONLY when you could not complete the requested code changes (you got stuck on the implementation itself, the brief was impossible, you decided to bail).',
|
|
90
94
|
].join('\n');
|
|
91
95
|
/**
|
|
92
96
|
* Turn budget — calibration block. Cheap models default to "be
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/execute-plan/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,+FAA+F;IAC/F,8FAA8F;IAC9F,EAAE;IACF,0JAA0J;IAC1J,EAAE;IACF,wDAAwD;IACxD,gMAAgM;IAChM,8IAA8I;IAC9I,kIAAkI;CACnI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,QAAQ;IACR,2EAA2E;IAC3E,mHAAmH;IACnH,mHAAmH;CACpH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,mGAAmG;IACnG,EAAE;IACF,qOAAqO;IACrO,uJAAuJ;IACvJ,qKAAqK;IACrK,gNAAgN;CACjN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,gCAAgC;IAChC,EAAE;IACF,gMAAgM;IAChM,EAAE;IACF,mDAAmD;IACnD,6GAA6G;IAC7G,0EAA0E;IAC1E,EAAE;IACF,gUAAgU;CACjU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,0CAA0C;IAC1C,EAAE;IACF,6MAA6M;IAC7M,EAAE;IACF,sBAAsB;IACtB,0CAA0C;IAC1C,EAAE;IACF,
|
|
1
|
+
{"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/execute-plan/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,+FAA+F;IAC/F,8FAA8F;IAC9F,EAAE;IACF,0JAA0J;IAC1J,EAAE;IACF,wDAAwD;IACxD,gMAAgM;IAChM,8IAA8I;IAC9I,kIAAkI;CACnI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,QAAQ;IACR,2EAA2E;IAC3E,mHAAmH;IACnH,mHAAmH;CACpH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,mGAAmG;IACnG,EAAE;IACF,qOAAqO;IACrO,uJAAuJ;IACvJ,qKAAqK;IACrK,gNAAgN;CACjN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,gCAAgC;IAChC,EAAE;IACF,gMAAgM;IAChM,EAAE;IACF,mDAAmD;IACnD,6GAA6G;IAC7G,0EAA0E;IAC1E,EAAE;IACF,gUAAgU;CACjU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,0CAA0C;IAC1C,EAAE;IACF,6MAA6M;IAC7M,EAAE;IACF,sBAAsB;IACtB,0CAA0C;IAC1C,EAAE;IACF,iJAAiJ;IACjJ,EAAE;IACF,iYAAiY;IACjY,EAAE;IACF,8LAA8L;CAC/L,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,cAAc;IACd,EAAE;IACF,8WAA8W;IAC9W,EAAE;IACF,mLAAmL;CACpL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -16,4 +16,21 @@ export interface ResearchBrief {
|
|
|
16
16
|
contextBlockIds: string[];
|
|
17
17
|
}
|
|
18
18
|
export declare const researchBriefSlot: (input: EnrichedResearchInput) => ResearchBrief[];
|
|
19
|
+
import { type EvidencePack } from '../../research/evidence-pack.js';
|
|
20
|
+
export declare const TOTAL_PREFIX_BUDGET_BYTES: number;
|
|
21
|
+
export interface Turn1Inputs {
|
|
22
|
+
researchQuestion: string;
|
|
23
|
+
background?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface PrefixInputs {
|
|
26
|
+
researchQuestion: string;
|
|
27
|
+
background?: string;
|
|
28
|
+
pack: EvidencePack;
|
|
29
|
+
contextBlocks: Array<{
|
|
30
|
+
id: string;
|
|
31
|
+
content: string;
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
export declare function compileTurn1PlanPrompt(inp: Turn1Inputs): string;
|
|
35
|
+
export declare function compileResearchImplementerPrefix(inp: PrefixInputs): string;
|
|
19
36
|
//# sourceMappingURL=brief-slot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brief-slot.d.ts","sourceRoot":"","sources":["../../../src/tools/research/brief-slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAYzC,MAAM,WAAW,oBAAoB;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE;AAEtE,MAAM,WAAW,qBAAsB,SAAQ,KAAK;IAClD,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,qEAAqE;IACrE,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B;+CAC2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAuCD,eAAO,MAAM,iBAAiB,GAAI,OAAO,qBAAqB,KAAG,aAAa,EAS7E,CAAC"}
|
|
1
|
+
{"version":3,"file":"brief-slot.d.ts","sourceRoot":"","sources":["../../../src/tools/research/brief-slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAYzC,MAAM,WAAW,oBAAoB;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE;AAEtE,MAAM,WAAW,qBAAsB,SAAQ,KAAK;IAClD,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,qEAAqE;IACrE,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B;+CAC2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAuCD,eAAO,MAAM,iBAAiB,GAAI,OAAO,qBAAqB,KAAG,aAAa,EAS7E,CAAC;AAaF,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE3F,eAAO,MAAM,yBAAyB,QAAY,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAO,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAO,MAAM,CAAC;IACzB,IAAI,EAAc,YAAY,CAAC;IAC/B,aAAa,EAAK,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAI/D;AA6CD,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAU1E"}
|