@bbradar/mcp 0.2.2 → 0.2.5
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 +48 -5
- package/benchmark/mcp-benchmark.mjs +98 -5
- package/dist/bbradarClient.d.ts +7 -4
- package/dist/bbradarClient.js +41 -9
- package/dist/bbradarClient.js.map +1 -1
- package/dist/sanitize.js +14 -1
- package/dist/sanitize.js.map +1 -1
- package/dist/server.js +993 -67
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -112,9 +112,12 @@ For simple tool selection, call `get_bbradar_guide`. It returns the recommended
|
|
|
112
112
|
|
|
113
113
|
Most tools that accept `program_id` also accept a human program name or handle. The server resolves names automatically when there is one clear match; for ambiguous names, call `resolve_program` first and retry with the returned `platform:handle` id.
|
|
114
114
|
|
|
115
|
-
Self-Hosted programs use IDs such as `Self-Hosted:program-slug`. They are available through program search, exact program detail,
|
|
115
|
+
Self-Hosted programs use IDs such as `Self-Hosted:program-slug`. They are available through program search, exact program detail, reverse target search, program-target tools, and the normal `find_hunt_targets` ranking path. Their `data_capabilities` field identifies unavailable source signals; the MCP server does not invent opportunity scores, public report counts, target-change history, submission costs, repository changes, or numeric competition evidence for that catalog. A Self-Hosted-only hunt skips the unsupported target-change feed and derives recent-target evidence from current inventory timestamps. A Self-Hosted-only repository hunt returns immediately with guidance instead of spending upstream requests on an unsupported feed; mixed repository hunts omit Self-Hosted and continue with supported platforms.
|
|
116
116
|
|
|
117
117
|
`search_programs` accepts a `search` value and sends it to the API for indexed server-side filtering. Name resolution uses the same path automatically, avoiding broad page scans for exact or partial program names.
|
|
118
|
+
The program catalog now includes confirmed paused platform programs. Raw search preserves `program_status` and `is_active`; ranked discovery excludes paused programs so retained scope and historical rewards cannot be presented as huntable. Exact paused-program reads remain available when explicitly requested.
|
|
119
|
+
|
|
120
|
+
The full tool profile also exposes `search_targets`, a one-request low-level wrapper for reverse search and paginated current target inventory. It supports optional `q`, all API match modes, platform/tag filters, eligibility controls, pages up to the negotiated 500-row limit, and compact or full target output.
|
|
118
121
|
|
|
119
122
|
`find_programs_by_target` defaults to flexible target matching. It accepts bare domains, full URLs, wildcard scopes, target names, package/repo-style identifiers, or short phrases like `known api target`.
|
|
120
123
|
It uses the Pro API's direct reverse-target-search route first, including for Self-Hosted targets, and only falls back to sampled target lists when an older API deployment does not expose that route.
|
|
@@ -122,8 +125,30 @@ It uses the Pro API's direct reverse-target-search route first, including for Se
|
|
|
122
125
|
`export_targets` uses the bounded bearer `POST /api/v1/pro/targets/export` route directly. JSON exports preserve `program_id` on every target; CSV previews are capped in the tool result while the complete payload remains available for ten minutes through the returned `bbradar://exports` resource. The local resource store is capped at 25 entries and 64 MiB in aggregate, and CSV formula/control-byte neutralization is applied independently of the API.
|
|
123
126
|
|
|
124
127
|
`get_program_targets` forwards text, target type, eligibility, minimum Target Opportunity Score, Target Opportunity Label, and competition-risk filters to the API. Compact output retains the score, label, competition risk, and Why This Target; full output also includes the score breakdown and reason fields.
|
|
128
|
+
When no local scope filtering is needed, offsets begin at the corresponding upstream
|
|
129
|
+
page instead of rescanning page 1. Filtered traversal streams only the requested
|
|
130
|
+
window in memory and reports an explicit incomplete state at the API's page bound.
|
|
125
131
|
|
|
126
132
|
`get_repository_changes` exposes the read-only repository event feed. It defaults to `include_targets=false` and compact output, never contains source code or diffs, and supports `after_id` cursor polling. Both change-feed tools keep at most 500 cursors keyed separately by endpoint and normalized filters. Seed a stream once with `after_id`, then use `resume_cursor=true`; the server stores `next_after_id` even for an empty page. Cursor reads continue sequentially while `has_more=true`, bounded by `max_cursor_pages` (default `2`) and `cursor_time_budget_ms` (default `3000`). Cursor requests bypass the response cache so an empty page cannot hide newly arriving changes.
|
|
133
|
+
Repository results preserve the API's comparison completeness/method/ancestry evidence plus per-program `match_qualities` and per-target match reasons. Target-change filters accept `readded` as well as added, updated, and removed events.
|
|
134
|
+
|
|
135
|
+
`search_programs`, `search_targets`, `get_recent_changes`, and `get_repository_changes` accept the API's optional stable `snapshot` token. Send `snapshot: "start"` on page 1 and reuse the returned `meta.snapshot` with identical filters until `meta.snapshot_expires_at`. Snapshot responses bypass the local TTL cache, and an expired snapshot 410 is not mistaken for an expired change-feed cursor. Snapshot creation receives a 60-second minimum request timeout because it performs consistency work and can be materially slower; the fast `find_hunt_targets` workflow intentionally keeps live indexed paging and the ordinary configured timeout.
|
|
136
|
+
|
|
137
|
+
If a cursor predates retained API history, the MCP refreshes the relevant current
|
|
138
|
+
target or repository-change inventory within the same page/time bounds. It advances to a new
|
|
139
|
+
baseline only after the bounded inventory completes and unchanged feed probes prove
|
|
140
|
+
that no new event arrived during reconstruction. Otherwise it reports an incomplete
|
|
141
|
+
recovery and retains the previous bookmark. A completed recovery reports
|
|
142
|
+
`history_gap` and emits zero baseline rows as new events.
|
|
143
|
+
Incomplete inventory progress is memory-only, isolated by normalized feed filters,
|
|
144
|
+
and capped at 500 checkpoints. Each call still obeys its page and time budgets.
|
|
145
|
+
The recovery traversal observes and counts current API inventory rows and may warm
|
|
146
|
+
the API cache; it does not return those discarded inventory records or reconcile a
|
|
147
|
+
client-owned cache. Inventory beyond the API's 500-page bound remains explicitly
|
|
148
|
+
incomplete instead of advancing the feed cursor.
|
|
149
|
+
Already-retired historical events cannot be reconstructed. `get_program_targets`
|
|
150
|
+
follows upstream API pages until it can satisfy the requested offset/limit or the
|
|
151
|
+
inventory ends. Missing public scope is treated as out of scope.
|
|
127
152
|
|
|
128
153
|
Cursors are memory-only by default. Set `BBRADAR_MCP_CURSOR_STATE_PATH` to opt into restart-safe cursor persistence. The state file contains only endpoint-prefixed SHA-256 filter hashes and non-negative numeric IDs—never raw filters, API responses, program or target records, credentials, or authorization headers.
|
|
129
154
|
|
|
@@ -131,7 +156,7 @@ Large target and change collections return at most 50 inline records by default.
|
|
|
131
156
|
|
|
132
157
|
## Performance Tuning
|
|
133
158
|
|
|
134
|
-
The defaults expose the
|
|
159
|
+
The defaults expose the 18-tool core surface and compact text results while enabling bounded concurrency, positive response caching, in-flight request coalescing, stale-while-revalidate program metadata, endpoint circuit breakers, and short negative caching for repeated 404/405 lookups. Set the tool profile to `full` when all specialized tools are needed.
|
|
135
160
|
|
|
136
161
|
| Environment variable | Default | Purpose |
|
|
137
162
|
| --- | ---: | --- |
|
|
@@ -141,7 +166,7 @@ The defaults expose the 17-tool core surface and compact text results while enab
|
|
|
141
166
|
| `BBRADAR_MCP_MAX_CONCURRENT_REQUESTS` | `6` | Maximum simultaneous upstream BBRadar API requests. |
|
|
142
167
|
| `BBRADAR_MCP_REQUEST_TIMEOUT_SECONDS` | `30` | Timeout for each active upstream request; queue time is excluded. |
|
|
143
168
|
| `BBRADAR_MCP_COMPACT_TOOL_TEXT` | `true` | Avoid duplicating full results for clients that consume MCP `structuredContent`. Set to `false` for legacy text-only clients. |
|
|
144
|
-
| `BBRADAR_MCP_TOOL_PROFILE` | `core` | Compact
|
|
169
|
+
| `BBRADAR_MCP_TOOL_PROFILE` | `core` | Compact 18-tool discovery surface. Set to `full` for every specialized tool. |
|
|
145
170
|
| `BBRADAR_MCP_PROGRAM_STALE_WHILE_REVALIDATE_SECONDS` | `300` | Maximum stale window for exact program metadata while one background refresh runs. |
|
|
146
171
|
| `BBRADAR_MCP_CIRCUIT_BREAKER_FAILURE_THRESHOLD` | `3` | Consecutive retryable endpoint failures before its circuit opens. |
|
|
147
172
|
| `BBRADAR_MCP_CIRCUIT_BREAKER_COOLDOWN_SECONDS` | `30` | Endpoint circuit cooldown before a new request is admitted. |
|
|
@@ -150,7 +175,7 @@ The defaults expose the 17-tool core surface and compact text results while enab
|
|
|
150
175
|
| `BBRADAR_MCP_CONTINUATION_TTL_SECONDS` | `600` | Lifetime of in-memory continuation results. |
|
|
151
176
|
| `BBRADAR_MCP_ALLOW_INSECURE_HTTP` | `false` | Explicitly allow an HTTP API base URL outside loopback for a trusted private development network. Never enable for internet traffic. |
|
|
152
177
|
|
|
153
|
-
No performance variables are required. Capability-derived page limits, caching, request coalescing, server-side name resolution, reverse-target search, early stopping, bounded concurrency, aggregate-call parallelism, a 64 KiB request-body ceiling, a 16 MiB upstream response ceiling, automatic HTTP compression handling, connection reuse, and upstream quota protection are always active. Unsupported capability-gated tools are removed from discovery. Target responses expose upstream pagination state so an AI client does not mistake a capped page for a complete inventory.
|
|
178
|
+
No performance variables are required. Capability-derived page limits and snapshot support, caching, request coalescing, server-side name resolution, reverse-target search, early stopping, bounded concurrency, aggregate-call parallelism, a 64 KiB request-body ceiling, a 16 MiB upstream response ceiling, automatic HTTP compression handling, connection reuse, and upstream quota protection are always active. Unsupported capability-gated tools are removed from discovery. Target responses expose upstream pagination state so an AI client does not mistake a capped page for a complete inventory.
|
|
154
179
|
|
|
155
180
|
The client learns the API's `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` headers per endpoint group. Once an observed group reaches zero, it blocks additional requests to that group locally until reset instead of repeatedly hitting the API, while unrelated endpoint groups remain usable. Target and repository changes share one quota state and one conservative two-request concurrency pool. A rolling 60-second guard also enforces the documented shared key-and-IP ceiling across uncached upstream requests. Real `423`, `429`, and `503` responses honor `Retry-After` as a local cooldown, capped at ten minutes so a malformed upstream header cannot lock the MCP process indefinitely. Requests are not automatically retried, so one MCP action cannot amplify an admission or rate-limit response into more API calls. The global upstream concurrency default is six and bulk exports are capped at two; cursor page walking is strictly sequential.
|
|
156
181
|
|
|
@@ -162,7 +187,23 @@ Run `npm run benchmark` for the deterministic local performance benchmark. It re
|
|
|
162
187
|
|
|
163
188
|
### Flexible multi-signal discovery
|
|
164
189
|
|
|
165
|
-
Use `
|
|
190
|
+
Use `find_hunt_targets` as the default one-call path when a request combines good rewards, wide scope, Web2/Web3 constraints, competition, target quality, or recently added targets. It performs one catalog pass, fetches the bounded recent-additions feed in parallel, enriches only the finalists with exact in-scope bounty-eligible target samples, and returns a final compact ranking. Its result explicitly requires no follow-up calls; use `get_program_targets` only when the user asks for an exhaustive scope dump for one selected program.
|
|
191
|
+
|
|
192
|
+
`find_hunt_targets` supports arbitrary platform inclusion/exclusion, scope/target/language filters, reward and breadth thresholds, Web2/Web3 modes, target-intelligence filters, freshness windows, and balanced/reward/scope/freshness/competition ranking. It suppresses bulk `bbradar://` resource links while preserving each program's public BBRadar and platform URLs, preventing large shortlists from flooding model context.
|
|
193
|
+
|
|
194
|
+
```json
|
|
195
|
+
{
|
|
196
|
+
"platforms": ["Immunefi", "HackenProof", "BugCrowd", "YesWeHack"],
|
|
197
|
+
"surface_mode": "web2",
|
|
198
|
+
"min_bounty_max": 3000,
|
|
199
|
+
"min_eligible_targets": 3,
|
|
200
|
+
"recent_target_days": 30,
|
|
201
|
+
"max_results": 10,
|
|
202
|
+
"ranking_mode": "balanced"
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Use `find_programs` as the lower-level program-only path when target enrichment is not wanted. Keep its output compact and do not issue parallel alternate-sort calls. When a user describes an exclusion without naming exact platform values, call `list_filters` first and reuse the observed values in one `find_hunt_targets` call.
|
|
166
207
|
|
|
167
208
|
For repository-aware hunting, use `find_repository_hunt_targets`. It fetches repository events and program/reward candidates concurrently inside one MCP call, joins them by program id, filters scored targets, removes non-requested associated platforms, and ranks the final matches by a balanced, reward-first, target-first, or recency-first strategy. The inputs remain generic across platforms and technology stacks, so the AI client does not need to plan and wait for a long sequence of separate calls.
|
|
168
209
|
|
|
@@ -186,12 +227,14 @@ This path uses one recent-changes request. Use `find_wildcard_programs` for a ra
|
|
|
186
227
|
## Full-profile tools
|
|
187
228
|
|
|
188
229
|
- `search_programs`
|
|
230
|
+
- `search_targets`
|
|
189
231
|
- `get_program`
|
|
190
232
|
- `resolve_program`
|
|
191
233
|
- `run_program_name_action`
|
|
192
234
|
- `get_program_targets`
|
|
193
235
|
- `get_recent_changes`
|
|
194
236
|
- `get_repository_changes`
|
|
237
|
+
- `find_hunt_targets`
|
|
195
238
|
- `find_repository_hunt_targets`
|
|
196
239
|
- `get_opportunities`
|
|
197
240
|
- `find_programs`
|
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
import http from "node:http";
|
|
2
2
|
import { performance } from "node:perf_hooks";
|
|
3
3
|
|
|
4
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
5
|
+
import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js";
|
|
6
|
+
|
|
4
7
|
import { BBRadarClient } from "../dist/bbradarClient.js";
|
|
8
|
+
import { createBbradarServer } from "../dist/server.js";
|
|
5
9
|
|
|
6
10
|
const programCount = 100;
|
|
7
11
|
const targetsPerProgram = 20;
|
|
12
|
+
const fixtureNow = new Date().toISOString();
|
|
8
13
|
const programs = Array.from({ length: programCount }, (_, index) => ({
|
|
9
14
|
id: `Platform:program-${index}`,
|
|
15
|
+
handle: `program-${index}`,
|
|
10
16
|
name: `Program ${index}`,
|
|
11
|
-
platform: "Platform"
|
|
17
|
+
platform: "Platform",
|
|
18
|
+
link: `https://example.com/program-${index}`,
|
|
19
|
+
scope_tags: ["domain", "api", "wildcard"],
|
|
20
|
+
added_at: fixtureNow,
|
|
21
|
+
last_updated: fixtureNow,
|
|
22
|
+
bounty_min: 100,
|
|
23
|
+
bounty_max: 5_000 + index * 100,
|
|
24
|
+
report_count: index,
|
|
25
|
+
target_counts: { total: targetsPerProgram, in_scope: targetsPerProgram, eligible_for_bounty: targetsPerProgram, wildcard: 2 },
|
|
26
|
+
target_activity: { latest_change_at: fixtureNow, added_24h: index < 10 ? 1 : 0, added_7d: index < 10 ? 2 : 0 }
|
|
12
27
|
}));
|
|
13
28
|
const targets = new Map(programs.map((program, programIndex) => [
|
|
14
29
|
program.id,
|
|
@@ -16,7 +31,11 @@ const targets = new Map(programs.map((program, programIndex) => [
|
|
|
16
31
|
identifier: `api-${targetIndex}.program-${programIndex}.example`,
|
|
17
32
|
target_type: "domain",
|
|
18
33
|
in_scope: true,
|
|
19
|
-
eligible_for_bounty: true
|
|
34
|
+
eligible_for_bounty: true,
|
|
35
|
+
wildcard: targetIndex < 2,
|
|
36
|
+
targetOpportunityScore: 70 + (targetIndex % 20),
|
|
37
|
+
targetOpportunityLabel: targetIndex < 5 ? "Strong Target" : "Potential Target",
|
|
38
|
+
competitionRisk: programIndex < 25 ? "Low" : "Medium"
|
|
20
39
|
}))
|
|
21
40
|
]));
|
|
22
41
|
const counters = { requests: 0, responseBytes: 0 };
|
|
@@ -28,6 +47,17 @@ const api = http.createServer((req, res) => {
|
|
|
28
47
|
|
|
29
48
|
if (url.pathname === "/api/v1/pro/programs") {
|
|
30
49
|
payload = { programs, meta: { total: programs.length, total_pages: 1 } };
|
|
50
|
+
} else if (url.pathname === "/api/v1/pro/targets/changes") {
|
|
51
|
+
payload = {
|
|
52
|
+
results: programs.slice(0, 10).map((program, index) => ({
|
|
53
|
+
id: index + 1,
|
|
54
|
+
change_type: "added",
|
|
55
|
+
changed_at: fixtureNow,
|
|
56
|
+
program,
|
|
57
|
+
target: targets.get(program.id)[0]
|
|
58
|
+
})),
|
|
59
|
+
meta: { total: 10, total_pages: 1 }
|
|
60
|
+
};
|
|
31
61
|
} else if (url.pathname === "/api/v1/pro/targets/search") {
|
|
32
62
|
payload = {
|
|
33
63
|
results: [{ program: programs[42], target: targets.get(programs[42].id)[0] }],
|
|
@@ -75,7 +105,7 @@ try {
|
|
|
75
105
|
);
|
|
76
106
|
const optimized = snapshot(performance.now() - optimizedStarted);
|
|
77
107
|
|
|
78
|
-
const
|
|
108
|
+
const clientConfig = {
|
|
79
109
|
apiKey: "benchmark",
|
|
80
110
|
apiBaseUrl: baseUrl,
|
|
81
111
|
webBaseUrl: "https://bbradar.io",
|
|
@@ -89,7 +119,8 @@ try {
|
|
|
89
119
|
toolProfile: "core",
|
|
90
120
|
requestTimeoutMs: 5_000,
|
|
91
121
|
validateOnStartup: false
|
|
92
|
-
}
|
|
122
|
+
};
|
|
123
|
+
const client = new BBRadarClient(clientConfig);
|
|
93
124
|
resetCounters();
|
|
94
125
|
const cacheStarted = performance.now();
|
|
95
126
|
for (let index = 0; index < 50; index += 1) {
|
|
@@ -97,6 +128,49 @@ try {
|
|
|
97
128
|
}
|
|
98
129
|
const cachedMetadata = snapshot(performance.now() - cacheStarted);
|
|
99
130
|
|
|
131
|
+
resetCounters();
|
|
132
|
+
const legacyHuntStarted = performance.now();
|
|
133
|
+
for (const sort of ["best", "freshest", "widest"]) {
|
|
134
|
+
await getJson(`${baseUrl}/pro/programs?sort=${sort}`, headers);
|
|
135
|
+
}
|
|
136
|
+
for (const program of programs.slice(0, 9)) {
|
|
137
|
+
await getJson(`${baseUrl}/pro/programs/${encodeURIComponent(program.id)}/targets`, headers);
|
|
138
|
+
}
|
|
139
|
+
for (const targetType of ["domain", "api", "wildcard"]) {
|
|
140
|
+
await getJson(`${baseUrl}/pro/targets/changes?target_type=${targetType}`, headers);
|
|
141
|
+
}
|
|
142
|
+
const legacyHunt = snapshot(performance.now() - legacyHuntStarted);
|
|
143
|
+
|
|
144
|
+
const huntApiClient = new BBRadarClient(clientConfig);
|
|
145
|
+
const huntServer = createBbradarServer(huntApiClient, clientConfig);
|
|
146
|
+
const huntClient = new Client({ name: "hunt-benchmark", version: "1" });
|
|
147
|
+
const [huntClientTransport, huntServerTransport] = InMemoryTransport.createLinkedPair();
|
|
148
|
+
await Promise.all([huntServer.connect(huntServerTransport), huntClient.connect(huntClientTransport)]);
|
|
149
|
+
let optimizedHuntResult;
|
|
150
|
+
let optimizedHunt;
|
|
151
|
+
try {
|
|
152
|
+
resetCounters();
|
|
153
|
+
const optimizedHuntStarted = performance.now();
|
|
154
|
+
optimizedHuntResult = await huntClient.callTool({
|
|
155
|
+
name: "find_hunt_targets",
|
|
156
|
+
arguments: {
|
|
157
|
+
platforms: ["Platform"],
|
|
158
|
+
target_types: ["domain", "api", "wildcard"],
|
|
159
|
+
min_bounty_max: 5_000,
|
|
160
|
+
min_eligible_targets: 5,
|
|
161
|
+
recent_target_days: 30,
|
|
162
|
+
max_program_pages: 1,
|
|
163
|
+
max_results: 10,
|
|
164
|
+
targets_per_result: 5,
|
|
165
|
+
upstream_request_budget: 20
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
optimizedHunt = snapshot(performance.now() - optimizedHuntStarted);
|
|
169
|
+
} finally {
|
|
170
|
+
await huntClient.close();
|
|
171
|
+
await huntServer.close();
|
|
172
|
+
}
|
|
173
|
+
|
|
100
174
|
const largeResult = Array.from({ length: 500 }, (_, index) => ({
|
|
101
175
|
identifier: `target-${index}.example`,
|
|
102
176
|
target_opportunity_score: 70 + (index % 20),
|
|
@@ -107,12 +181,16 @@ try {
|
|
|
107
181
|
const requestReduction = percentReduction(baseline.requests, optimized.requests);
|
|
108
182
|
const byteReduction = percentReduction(baseline.response_bytes, optimized.response_bytes);
|
|
109
183
|
const contextReduction = percentReduction(fullContextBytes, inlineContextBytes);
|
|
184
|
+
const huntRoundTripReduction = percentReduction(15, 1);
|
|
110
185
|
|
|
111
186
|
if (
|
|
112
187
|
requestReduction < 90 ||
|
|
113
188
|
byteReduction < 90 ||
|
|
114
189
|
cachedMetadata.requests !== 1 ||
|
|
115
|
-
contextReduction < 80
|
|
190
|
+
contextReduction < 80 ||
|
|
191
|
+
huntRoundTripReduction < 90 ||
|
|
192
|
+
optimizedHuntResult.structuredContent.matches.length !== 10 ||
|
|
193
|
+
optimizedHuntResult.content.some((item) => item.type === "resource_link")
|
|
116
194
|
) {
|
|
117
195
|
throw new Error("Performance regression threshold failed.");
|
|
118
196
|
}
|
|
@@ -131,6 +209,21 @@ try {
|
|
|
131
209
|
upstream: cachedMetadata,
|
|
132
210
|
cache_hit_ratio: client.diagnostics().response_cache.hits / 50
|
|
133
211
|
},
|
|
212
|
+
ranked_hunt_discovery: {
|
|
213
|
+
legacy_multi_call: {
|
|
214
|
+
model_tool_calls: 15,
|
|
215
|
+
upstream: legacyHunt
|
|
216
|
+
},
|
|
217
|
+
optimized_composite: {
|
|
218
|
+
model_tool_calls: 1,
|
|
219
|
+
upstream: optimizedHunt,
|
|
220
|
+
returned: optimizedHuntResult.structuredContent.matches.length,
|
|
221
|
+
resource_links: optimizedHuntResult.content.filter((item) => item.type === "resource_link").length
|
|
222
|
+
},
|
|
223
|
+
model_round_trip_reduction_percent: huntRoundTripReduction,
|
|
224
|
+
upstream_request_reduction_percent: percentReduction(legacyHunt.requests, optimizedHunt.requests),
|
|
225
|
+
upstream_byte_reduction_percent: percentReduction(legacyHunt.response_bytes, optimizedHunt.response_bytes)
|
|
226
|
+
},
|
|
134
227
|
bounded_model_context: {
|
|
135
228
|
full_500_record_bytes: fullContextBytes,
|
|
136
229
|
inline_50_record_bytes: inlineContextBytes,
|
package/dist/bbradarClient.d.ts
CHANGED
|
@@ -8,7 +8,9 @@ export type ApiRequestOptions = {
|
|
|
8
8
|
cache?: boolean;
|
|
9
9
|
coalesce?: boolean;
|
|
10
10
|
staleWhileRevalidateMs?: number;
|
|
11
|
+
timeoutMs?: number;
|
|
11
12
|
};
|
|
13
|
+
export type ApiReadControls = Pick<ApiRequestOptions, "cache" | "coalesce" | "timeoutMs">;
|
|
12
14
|
export type ApiResult<T> = {
|
|
13
15
|
data: T;
|
|
14
16
|
requestId: string;
|
|
@@ -180,14 +182,15 @@ export declare class BBRadarClient {
|
|
|
180
182
|
endpointCapability(endpoint: string): Record<string, unknown> | undefined;
|
|
181
183
|
endpointNumber(endpoint: string, field: string, fallback: number): number;
|
|
182
184
|
endpointStringArray(endpoint: string, field: string, fallback: readonly string[]): string[];
|
|
185
|
+
supportsStableSnapshot(endpoint: string): boolean;
|
|
183
186
|
private fetchCapabilityContract;
|
|
184
|
-
listPrograms(query: Record<string, QueryValue
|
|
187
|
+
listPrograms(query: Record<string, QueryValue>, controls?: ApiReadControls): Promise<ApiResult<unknown>>;
|
|
185
188
|
getCapabilities(options?: Pick<ApiRequestOptions, "cache" | "coalesce">): Promise<ApiResult<unknown>>;
|
|
186
189
|
getProgram(programId: string): Promise<ApiResult<unknown>>;
|
|
187
190
|
getProgramTargets(programId: string, query?: Record<string, QueryValue>): Promise<ApiResult<unknown>>;
|
|
188
|
-
getRecentChanges(query: Record<string, QueryValue
|
|
189
|
-
getRepositoryChanges(query: Record<string, QueryValue
|
|
190
|
-
searchTargets(query: Record<string, QueryValue
|
|
191
|
+
getRecentChanges(query: Record<string, QueryValue>, controls?: ApiReadControls): Promise<ApiResult<unknown>>;
|
|
192
|
+
getRepositoryChanges(query: Record<string, QueryValue>, controls?: ApiReadControls): Promise<ApiResult<unknown>>;
|
|
193
|
+
searchTargets(query: Record<string, QueryValue>, controls?: ApiReadControls): Promise<ApiResult<unknown>>;
|
|
191
194
|
getOpportunities(level: string, query: Record<string, QueryValue>): Promise<ApiResult<unknown>>;
|
|
192
195
|
exportTargets(body: Record<string, unknown>): Promise<ApiResult<unknown>>;
|
|
193
196
|
request<T = unknown>(options: ApiRequestOptions): Promise<ApiResult<T>>;
|
package/dist/bbradarClient.js
CHANGED
|
@@ -13,6 +13,7 @@ const MAX_REQUEST_BODY_BYTES = 64 * 1024;
|
|
|
13
13
|
const DEFAULT_PROGRAM_SWR_MS = 5 * 60_000;
|
|
14
14
|
const DEFAULT_CIRCUIT_FAILURE_THRESHOLD = 3;
|
|
15
15
|
const DEFAULT_CIRCUIT_COOLDOWN_MS = 30_000;
|
|
16
|
+
const SNAPSHOT_START_MIN_TIMEOUT_MS = 60_000;
|
|
16
17
|
export class BBRadarApiError extends Error {
|
|
17
18
|
requestId;
|
|
18
19
|
upstreamRequestId;
|
|
@@ -176,6 +177,16 @@ export class BBRadarClient {
|
|
|
176
177
|
? [...value]
|
|
177
178
|
: [...fallback];
|
|
178
179
|
}
|
|
180
|
+
supportsStableSnapshot(endpoint) {
|
|
181
|
+
if (this.capabilityState.status !== "negotiated") {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
const contract = asRecord(this.capabilityState.contract);
|
|
185
|
+
const behavior = asRecord(contract?.behavior);
|
|
186
|
+
const stableSnapshots = asRecord(behavior?.stable_snapshots);
|
|
187
|
+
const endpoints = stableSnapshots?.endpoints;
|
|
188
|
+
return Array.isArray(endpoints) && endpoints.includes(endpoint);
|
|
189
|
+
}
|
|
179
190
|
async fetchCapabilityContract() {
|
|
180
191
|
try {
|
|
181
192
|
const result = await this.getCapabilities({ cache: false, coalesce: false });
|
|
@@ -201,10 +212,11 @@ export class BBRadarClient {
|
|
|
201
212
|
throw error;
|
|
202
213
|
}
|
|
203
214
|
}
|
|
204
|
-
listPrograms(query) {
|
|
215
|
+
listPrograms(query, controls = {}) {
|
|
205
216
|
return this.request({
|
|
206
217
|
path: "/pro/programs",
|
|
207
|
-
query
|
|
218
|
+
query,
|
|
219
|
+
...snapshotAwareReadControls(query, controls, true, this.config.requestTimeoutMs)
|
|
208
220
|
});
|
|
209
221
|
}
|
|
210
222
|
getCapabilities(options = {}) {
|
|
@@ -229,24 +241,25 @@ export class BBRadarClient {
|
|
|
229
241
|
}
|
|
230
242
|
});
|
|
231
243
|
}
|
|
232
|
-
getRecentChanges(query) {
|
|
244
|
+
getRecentChanges(query, controls = {}) {
|
|
233
245
|
return this.request({
|
|
234
246
|
path: "/pro/targets/changes",
|
|
235
247
|
query,
|
|
236
|
-
|
|
248
|
+
...snapshotAwareReadControls(query, controls, query.after_id === undefined, this.config.requestTimeoutMs)
|
|
237
249
|
});
|
|
238
250
|
}
|
|
239
|
-
getRepositoryChanges(query) {
|
|
251
|
+
getRepositoryChanges(query, controls = {}) {
|
|
240
252
|
return this.request({
|
|
241
253
|
path: "/pro/repositories/changes",
|
|
242
254
|
query,
|
|
243
|
-
|
|
255
|
+
...snapshotAwareReadControls(query, controls, query.after_id === undefined, this.config.requestTimeoutMs)
|
|
244
256
|
});
|
|
245
257
|
}
|
|
246
|
-
searchTargets(query) {
|
|
258
|
+
searchTargets(query, controls = {}) {
|
|
247
259
|
return this.request({
|
|
248
260
|
path: "/pro/targets/search",
|
|
249
|
-
query
|
|
261
|
+
query,
|
|
262
|
+
...snapshotAwareReadControls(query, controls, true, this.config.requestTimeoutMs)
|
|
250
263
|
});
|
|
251
264
|
}
|
|
252
265
|
getOpportunities(level, query) {
|
|
@@ -380,7 +393,7 @@ export class BBRadarClient {
|
|
|
380
393
|
this.reserveUpstreamRequest(requestId, rateLimitBucket);
|
|
381
394
|
const startedAt = Date.now();
|
|
382
395
|
const controller = new AbortController();
|
|
383
|
-
const timeout = setTimeout(() => controller.abort(), this.config.requestTimeoutMs);
|
|
396
|
+
const timeout = setTimeout(() => controller.abort(), options.timeoutMs ?? this.config.requestTimeoutMs);
|
|
384
397
|
let status;
|
|
385
398
|
let failed = true;
|
|
386
399
|
try {
|
|
@@ -945,6 +958,25 @@ function endpointConcurrencyLimit(endpointGroup) {
|
|
|
945
958
|
}
|
|
946
959
|
return undefined;
|
|
947
960
|
}
|
|
961
|
+
function snapshotAwareReadControls(query, controls, defaultCache, defaultTimeoutMs) {
|
|
962
|
+
const snapshot = typeof query.snapshot === "string" ? query.snapshot : undefined;
|
|
963
|
+
const result = {
|
|
964
|
+
// Snapshot responses are explicitly `Cache-Control: no-store`. Keeping
|
|
965
|
+
// them out of the local TTL cache also prevents an expired token from
|
|
966
|
+
// being replayed after its five-minute API lifetime.
|
|
967
|
+
cache: controls.cache ?? (defaultCache && snapshot === undefined),
|
|
968
|
+
// Two concurrent `snapshot=start` calls must create independent views.
|
|
969
|
+
// Reusing an already-issued token can still coalesce identical live work.
|
|
970
|
+
coalesce: controls.coalesce ?? snapshot !== "start"
|
|
971
|
+
};
|
|
972
|
+
const timeoutMs = controls.timeoutMs ?? (snapshot === "start"
|
|
973
|
+
? Math.max(defaultTimeoutMs, SNAPSHOT_START_MIN_TIMEOUT_MS)
|
|
974
|
+
: undefined);
|
|
975
|
+
if (timeoutMs !== undefined) {
|
|
976
|
+
result.timeoutMs = timeoutMs;
|
|
977
|
+
}
|
|
978
|
+
return result;
|
|
979
|
+
}
|
|
948
980
|
function isNegativeCacheStatus(status) {
|
|
949
981
|
return status === 404 || status === 405;
|
|
950
982
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bbradarClient.js","sourceRoot":"","sources":["../src/bbradarClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bbradarClient.js","sourceRoot":"","sources":["../src/bbradarClient.ts"],"names":[],"mappings":"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"}
|