@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.
Files changed (129) hide show
  1. package/README.md +6 -8
  2. package/dist/config/schema.d.ts +6 -2
  3. package/dist/config/schema.d.ts.map +1 -1
  4. package/dist/config/schema.js +6 -2
  5. package/dist/config/schema.js.map +1 -1
  6. package/dist/events/to-wire-record.d.ts.map +1 -1
  7. package/dist/events/to-wire-record.js +24 -2
  8. package/dist/events/to-wire-record.js.map +1 -1
  9. package/dist/events/wire-schema.d.ts +10 -10
  10. package/dist/lifecycle/annotate-parser.d.ts +4 -2
  11. package/dist/lifecycle/annotate-parser.d.ts.map +1 -1
  12. package/dist/lifecycle/annotate-parser.js +45 -53
  13. package/dist/lifecycle/annotate-parser.js.map +1 -1
  14. package/dist/lifecycle/annotate-prompts.d.ts.map +1 -1
  15. package/dist/lifecycle/annotate-prompts.js +9 -3
  16. package/dist/lifecycle/annotate-prompts.js.map +1 -1
  17. package/dist/lifecycle/derive-completion.d.ts +25 -0
  18. package/dist/lifecycle/derive-completion.d.ts.map +1 -0
  19. package/dist/lifecycle/derive-completion.js +67 -0
  20. package/dist/lifecycle/derive-completion.js.map +1 -0
  21. package/dist/lifecycle/handlers/annotate-stage.d.ts.map +1 -1
  22. package/dist/lifecycle/handlers/annotate-stage.js +9 -1
  23. package/dist/lifecycle/handlers/annotate-stage.js.map +1 -1
  24. package/dist/lifecycle/handlers/enrich-runtime-result.d.ts.map +1 -1
  25. package/dist/lifecycle/handlers/enrich-runtime-result.js +0 -5
  26. package/dist/lifecycle/handlers/enrich-runtime-result.js.map +1 -1
  27. package/dist/lifecycle/handlers/git-commit-handler.d.ts.map +1 -1
  28. package/dist/lifecycle/handlers/git-commit-handler.js +3 -2
  29. package/dist/lifecycle/handlers/git-commit-handler.js.map +1 -1
  30. package/dist/lifecycle/handlers/review-stage.js +7 -2
  31. package/dist/lifecycle/handlers/review-stage.js.map +1 -1
  32. package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +1 -1
  33. package/dist/lifecycle/handlers/terminal-handlers.js +19 -6
  34. package/dist/lifecycle/handlers/terminal-handlers.js.map +1 -1
  35. package/dist/lifecycle/perform-implementation.d.ts.map +1 -1
  36. package/dist/lifecycle/perform-implementation.js +38 -5
  37. package/dist/lifecycle/perform-implementation.js.map +1 -1
  38. package/dist/lifecycle/research-pre-loop.d.ts +21 -0
  39. package/dist/lifecycle/research-pre-loop.d.ts.map +1 -0
  40. package/dist/lifecycle/research-pre-loop.js +54 -0
  41. package/dist/lifecycle/research-pre-loop.js.map +1 -0
  42. package/dist/lifecycle/task-executor.js +1 -1
  43. package/dist/lifecycle/task-executor.js.map +1 -1
  44. package/dist/lifecycle/tool-config-types.d.ts +1 -1
  45. package/dist/lifecycle/tool-config-types.d.ts.map +1 -1
  46. package/dist/providers/runner-types.d.ts +0 -6
  47. package/dist/providers/runner-types.d.ts.map +1 -1
  48. package/dist/research/adapters/arxiv.d.ts.map +1 -1
  49. package/dist/research/adapters/arxiv.js +5 -1
  50. package/dist/research/adapters/arxiv.js.map +1 -1
  51. package/dist/research/adapters/github-search.d.ts +1 -0
  52. package/dist/research/adapters/github-search.d.ts.map +1 -1
  53. package/dist/research/adapters/github-search.js +15 -12
  54. package/dist/research/adapters/github-search.js.map +1 -1
  55. package/dist/research/adapters/index.d.ts +5 -1
  56. package/dist/research/adapters/index.d.ts.map +1 -1
  57. package/dist/research/adapters/index.js +7 -3
  58. package/dist/research/adapters/index.js.map +1 -1
  59. package/dist/research/adapters/semantic-scholar.d.ts +1 -0
  60. package/dist/research/adapters/semantic-scholar.d.ts.map +1 -1
  61. package/dist/research/adapters/semantic-scholar.js +11 -1
  62. package/dist/research/adapters/semantic-scholar.js.map +1 -1
  63. package/dist/research/evidence-pack.d.ts +33 -0
  64. package/dist/research/evidence-pack.d.ts.map +1 -0
  65. package/dist/research/evidence-pack.js +132 -0
  66. package/dist/research/evidence-pack.js.map +1 -0
  67. package/dist/research/index.d.ts +1 -2
  68. package/dist/research/index.d.ts.map +1 -1
  69. package/dist/research/index.js +1 -3
  70. package/dist/research/index.js.map +1 -1
  71. package/dist/research/orchestrator.d.ts +24 -0
  72. package/dist/research/orchestrator.d.ts.map +1 -0
  73. package/dist/research/orchestrator.js +162 -0
  74. package/dist/research/orchestrator.js.map +1 -0
  75. package/dist/research/query-plan.d.ts +18 -0
  76. package/dist/research/query-plan.d.ts.map +1 -0
  77. package/dist/research/query-plan.js +36 -0
  78. package/dist/research/query-plan.js.map +1 -0
  79. package/dist/research/user-agent.d.ts +5 -0
  80. package/dist/research/user-agent.d.ts.map +1 -0
  81. package/dist/research/user-agent.js +17 -0
  82. package/dist/research/user-agent.js.map +1 -0
  83. package/dist/research/web-fetch.d.ts +6 -21
  84. package/dist/research/web-fetch.d.ts.map +1 -1
  85. package/dist/research/web-fetch.js +97 -58
  86. package/dist/research/web-fetch.js.map +1 -1
  87. package/dist/research/web-search.d.ts.map +1 -1
  88. package/dist/research/web-search.js +2 -0
  89. package/dist/research/web-search.js.map +1 -1
  90. package/dist/review/parse-review-report.d.ts.map +1 -1
  91. package/dist/review/parse-review-report.js +9 -2
  92. package/dist/review/parse-review-report.js.map +1 -1
  93. package/dist/review/templates/rework.js +1 -1
  94. package/dist/review/templates/rework.js.map +1 -1
  95. package/dist/tools/delegate/brief-slot.d.ts.map +1 -1
  96. package/dist/tools/delegate/brief-slot.js +3 -1
  97. package/dist/tools/delegate/brief-slot.js.map +1 -1
  98. package/dist/tools/delegate/implementer-criteria.d.ts +7 -0
  99. package/dist/tools/delegate/implementer-criteria.d.ts.map +1 -1
  100. package/dist/tools/delegate/implementer-criteria.js +15 -0
  101. package/dist/tools/delegate/implementer-criteria.js.map +1 -1
  102. package/dist/tools/execute-plan/implementer-criteria.d.ts.map +1 -1
  103. package/dist/tools/execute-plan/implementer-criteria.js +5 -1
  104. package/dist/tools/execute-plan/implementer-criteria.js.map +1 -1
  105. package/dist/tools/research/brief-slot.d.ts +17 -0
  106. package/dist/tools/research/brief-slot.d.ts.map +1 -1
  107. package/dist/tools/research/brief-slot.js +61 -0
  108. package/dist/tools/research/brief-slot.js.map +1 -1
  109. package/dist/tools/research/implementer-criteria.d.ts +4 -11
  110. package/dist/tools/research/implementer-criteria.d.ts.map +1 -1
  111. package/dist/tools/research/implementer-criteria.js +77 -14
  112. package/dist/tools/research/implementer-criteria.js.map +1 -1
  113. package/dist/tools/research/tool-config.d.ts.map +1 -1
  114. package/dist/tools/research/tool-config.js +10 -2
  115. package/dist/tools/research/tool-config.js.map +1 -1
  116. package/dist/tools/research/two-turn-driver.d.ts +20 -0
  117. package/dist/tools/research/two-turn-driver.d.ts.map +1 -0
  118. package/dist/tools/research/two-turn-driver.js +41 -0
  119. package/dist/tools/research/two-turn-driver.js.map +1 -0
  120. package/dist/types/config.d.ts +2 -0
  121. package/dist/types/config.d.ts.map +1 -1
  122. package/dist/types/enums.d.ts +3 -3
  123. package/dist/types/task-spec.d.ts +14 -10
  124. package/dist/types/task-spec.d.ts.map +1 -1
  125. package/package.json +1 -1
  126. package/dist/research/types.d.ts +0 -14
  127. package/dist/research/types.d.ts.map +0 -1
  128. package/dist/research/types.js +0 -2
  129. 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 { REDIRECT_ERR_CODE_MAP, validateAndPinURL, extractContentType, isRedirect, extractLocation, extractBodyFromHTML, stripCredentialsFromURL, readBody, drainBody, closeDispatcher, mapRequestError, } from './web-fetch-helpers.js';
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
- const ALLOWED_CT = new Set([
12
- 'text/html',
13
- 'text/plain',
14
- 'application/xml',
15
- 'application/atom+xml',
16
- 'application/rss+xml',
17
- 'application/json',
18
- ]);
19
- /** Post-extraction text cap default 64 KiB. */
20
- const RETURNED_TEXT_CAP = 64 * 1024;
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
- // Build IP-pinning dispatcher. In tests createDispatcher returns undefined
61
- // so undici falls back to the global dispatcher (MockAgent).
62
- const usingDefaultDispatcher = input.createDispatcher === undefined;
63
- const dispatcher = (input.createDispatcher ?? defaultIPPinningDispatcher)(v.host, v.pinnedIP, cfg);
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
- ...(dispatcher ? { dispatcher } : {}),
128
+ headers: { 'user-agent': USER_AGENT },
129
+ ...(agent ? { dispatcher: agent } : {}),
72
130
  signal: totalCtrl.signal,
73
131
  });
74
132
  }
75
133
  catch (e) {
76
- if (usingDefaultDispatcher)
77
- closeDispatcher(dispatcher);
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
- if (usingDefaultDispatcher)
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
- if (usingDefaultDispatcher)
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
- if (usingDefaultDispatcher)
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
- if (usingDefaultDispatcher)
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
- if (usingDefaultDispatcher)
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
- if (usingDefaultDispatcher)
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
- if (usingDefaultDispatcher)
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
- body: wrapped,
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":"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"}
1
+ {"version":3,"file":"web-fetch.js","sourceRoot":"","sources":["../../src/research/web-fetch.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,yEAAyE;AACzE,8EAA8E;AAC9E,+EAA+E;AAC/E,2EAA2E;AAC3E,4EAA4E;AAC5E,yCAAyC;AAEzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,qBAAqB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EACxE,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,QAAQ,EACvE,SAAS,EAAE,eAAe,GAE3B,MAAM,wBAAwB,CAAC;AA2BhC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,WAAW,EAAE,YAAY;IACzB,iBAAiB,EAAE,sBAAsB,EAAE,qBAAqB;IAChE,kBAAkB;CACnB,CAAC,CAAC;AACH,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC;AAEpC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAE,GAA4B,EAAE,EAAE,CACzG,IAAI,KAAK,CAAC;IACR,OAAO,EAAE;QACP,MAAM,EAAE,CAAC,EAAU,EAAE,EAAW,EAAE,EAA+D,EAAE,EAAE,CACnG,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,UAAU,EAAE,IAAI;KACjB;IACD,cAAc,EAAE,GAAG,CAAC,gBAAgB;CACrC,CAAC,CAAC;AAEL,8EAA8E;AAC9E,SAAS,qBAAqB,CAC5B,mBAA4B,EAC5B,cAAkC,EAClC,gBAAwB;IAExB,OAAO,IAAI,KAAK,CAAC;QACf,OAAO,EAAE;YACP,MAAM,EAAE,CAAC,IAAY,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;gBAClC,oEAAoE;gBACpE,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjD,qDAAqD;oBACrD,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACzB,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;wBACzC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;4BACvB,EAAE,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;4BACzD,OAAO;wBACT,CAAC;oBACH,CAAC;oBACD,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,GAAY,CAAC,CAAC;oBACvC,OAAO;gBACT,CAAC;gBACD,oEAAoE;gBACpE,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;oBACrC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;wBACpC,IAAI,GAAG,EAAE,CAAC;4BAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;4BAAC,OAAO;wBAAC,CAAC;wBACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;4BACzB,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;4BAClC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gCACvB,EAAE,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gCACzD,OAAO;4BACT,CAAC;wBACH,CAAC;wBACD,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAe,CAAC,CAAC;oBACrC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,CAAC;SACF;QACD,cAAc,EAAE,gBAAgB;KACjC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAoB;IACjD,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,IAAI,IAAI,GAAG,EAAU,CAAC;IAC3E,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAEhC,IAAI,OAAY,CAAC;IACjB,IAAI,CAAC;QAAC,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IACrC,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,CAAC;IAAC,CAAC;IAC/F,mBAAmB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEvD,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;IAE5E,IAAI,CAAC;QACH,IAAI,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAkC,CAAC;YACvC,IAAI,CAAC;gBACH,CAAC,GAAG,MAAM,iBAAiB,CACzB,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAC9C,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAClC,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;gBACnF,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,iCAAiC,EAAE,mBAAmB,EAAE,CAAC;YACjG,CAAC;YACD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACV,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,MAAM,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;oBACnE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;gBACpF,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;YAC1F,CAAC;YAED,uEAAuE;YACvE,gEAAgE;YAChE,wEAAwE;YACxE,6CAA6C;YAC7C,IAAI,KAA8C,CAAC;YACnD,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACzC,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,qBAAqB,CAC3B,GAAG,CAAC,mBAAmB,IAAI,KAAK,EAChC,KAAK,CAAC,sBAAsB,EAC5B,GAAG,CAAC,gBAAgB,CACrB,CAAC;YACJ,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;gBAC5B,IAAI,KAAK,IAAI,OAAQ,KAAyC,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;oBACpF,IAAI,CAAC;wBAAC,MAAO,KAAwC,CAAC,KAAK,EAAE,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,GAAG,CAAC;YACR,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;oBACpC,MAAM,EAAE,KAAK;oBACb,cAAc,EAAE,GAAG,CAAC,gBAAgB;oBACpC,OAAO,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE;oBACrC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvC,MAAM,EAAE,SAAS,CAAC,MAAM;iBACzB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,UAAU,EAAE,CAAC;gBACnB,yDAAyD;gBACzD,MAAM,GAAG,GAAI,CAA0B,EAAE,OAAO,IAAI,EAAE,CAAC;gBACvD,IAAI,GAAG,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;oBACrD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,kCAAkC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;gBAChH,CAAC;gBACD,OAAO,EAAE,GAAG,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;YAClF,CAAC;YAED,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,SAAS,EAAE,CAAC;gBACZ,IAAI,SAAS,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;oBACjC,MAAM,UAAU,EAAE,CAAC;oBACnB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;gBAC5G,CAAC;gBACD,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,OAA4C,CAAC,CAAC;gBACnF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,UAAU,EAAE,CAAC;oBACnB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,qCAAqC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;gBACnH,CAAC;gBACD,IAAI,OAAY,CAAC;gBACjB,IAAI,CAAC;oBAAC,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,CAAC;gBAC3C,MAAM,CAAC;oBAAC,MAAM,UAAU,EAAE,CAAC;oBAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,gCAAgC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;gBAAC,CAAC;gBAC1I,mBAAmB,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC;gBAC9E,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAChC,MAAM,SAAS,CAAC,GAAG,CAAC,IAAqC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC7E,MAAM,UAAU,EAAE,CAAC;gBACnB,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC7B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;gBACjG,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAA4C,CAAC,CAAC;YACzF,IAAI,WAAW,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChD,MAAM,SAAS,CAAC,GAAG,CAAC,IAAqC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC7E,MAAM,UAAU,EAAE,CAAC;gBACnB,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC7B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;gBACjG,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,oCAAoC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;YAClH,CAAC;YAED,IAAI,OAAe,CAAC;YAAC,IAAI,aAAqB,CAAC;YAAC,IAAI,SAAkB,CAAC;YACvE,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,GAAG,CAAC,IAAwC,CAAC;gBAC7D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC3E,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;gBAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;gBAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YAC5F,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,UAAU,EAAE,CAAC;gBACnB,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;gBACjG,CAAC;gBACD,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC7B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;gBACjG,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,4BAA4B,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;YAC1G,CAAC;YACD,MAAM,UAAU,EAAE,CAAC;YAEnB,IAAI,SAAS,GAAG,OAAO,CAAC;YACxB,IAAI,WAAW,KAAK,WAAW;gBAAE,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAE1E,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,SAAS,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;gBACzC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;gBAClD,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;YAED,MAAM,OAAO,GAAG,kBAAkB,CAAC;gBACjC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS;aACxD,CAAC,CAAC;YACH,OAAO;gBACL,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;gBAClD,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB;aAC7D,CAAC;QACJ,CAAC;IACH,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../src/research/web-search.ts"],"names":[],"mappings":"AACA,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;CAyE/E"}
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":"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"}
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,CA+BpB"}
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
- // approved + findings changes_required per design spec §4
28
- if (verdict === 'approved' && findings.length > 0) {
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,4DAA4D;IAC5D,IAAI,OAAO,KAAK,UAAU,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,GAAG,kBAAkB,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
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,wPAAwP;QACxP,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
+ {"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;AASjE,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;AAyCD,eAAO,MAAM,iBAAiB,GAAI,OAAO,KAAK,KAAG,aAAa,EAQzD,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,QASlB,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAMZ,CAAC"}
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 any command FAILS: do NOT declare "done". Investigate, fix, re-run. A failing test is your output, not the reviewer\'s problem. If you cannot run a command (shell unavailable, dependency missing): say so explicitly AND treat the task as incomplete.',
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,6PAA6P;CAC9P,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"}
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"}