@agent-beam/beam 0.2.28 → 0.2.29
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 +69 -13
- package/Skills/agentbeam-app-monitoring/SKILL.md +15 -3
- package/dist/cli.js +43 -4
- package/dist/cli.js.map +1 -1
- package/dist/client.js +103 -81
- package/dist/client.js.map +1 -1
- package/dist/monitor-config.d.ts +39 -0
- package/dist/monitor-config.js +134 -0
- package/dist/monitor-config.js.map +1 -0
- package/dist/monitor-llm.d.ts +50 -7
- package/dist/monitor-llm.js +227 -31
- package/dist/monitor-llm.js.map +1 -1
- package/dist/monitor-pipeline.d.ts +65 -2
- package/dist/monitor-pipeline.js +145 -21
- package/dist/monitor-pipeline.js.map +1 -1
- package/dist/monitor-rules.d.ts +8 -4
- package/dist/monitor-rules.js +106 -12
- package/dist/monitor-rules.js.map +1 -1
- package/dist/monitor.d.ts +30 -3
- package/dist/monitor.js +198 -30
- package/dist/monitor.js.map +1 -1
- package/dist/prompt-attacks.d.ts +29 -0
- package/dist/prompt-attacks.js +237 -0
- package/dist/prompt-attacks.js.map +1 -0
- package/dist/rule-catalog.js +36 -6
- package/dist/rule-catalog.js.map +1 -1
- package/dist/sdk.d.ts +54 -1
- package/dist/sdk.js +198 -58
- package/dist/sdk.js.map +1 -1
- package/package.json +4 -2
package/dist/sdk.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { MonitorPipeline } from "./monitor-pipeline.js";
|
|
1
|
+
import { CpuBudget, MonitorPipeline } from "./monitor-pipeline.js";
|
|
2
|
+
import { matchLine } from "./monitor-rules.js";
|
|
3
|
+
import { containsCanary } from "./prompt-attacks.js";
|
|
2
4
|
const TOKEN = /^beam_app_[\w-]{40,}$/;
|
|
3
5
|
const CONFIG_EVERY_MS = 5 * 60 * 1000;
|
|
4
6
|
const CONFIG_RETRY_MS = 60 * 1000;
|
|
@@ -9,18 +11,103 @@ function env(name) {
|
|
|
9
11
|
function withTimeout(ms) {
|
|
10
12
|
const controller = new AbortController();
|
|
11
13
|
const timer = setTimeout(() => controller.abort(), ms);
|
|
14
|
+
// Never keep the app's process alive for a report (Node returns a Timeout with unref; edge runtimes a number).
|
|
15
|
+
timer.unref?.();
|
|
12
16
|
return { signal: controller.signal, done: () => clearTimeout(timer) };
|
|
13
17
|
}
|
|
14
|
-
const
|
|
18
|
+
const REQUEST_TIMEOUT_MS = 5_000;
|
|
19
|
+
const MAX_BACKOFF_MS = 5 * 60_000;
|
|
20
|
+
const REVOKED_RECHECK_MS = 15 * 60_000;
|
|
21
|
+
const MAX_PAUSE_MS = 24 * 60 * 60_000;
|
|
22
|
+
/** Doubling delays with jitter, so many app instances don't retry an outage in lockstep. */
|
|
23
|
+
const backoff = (base, failures) => Math.min(MAX_BACKOFF_MS, base * 2 ** Math.min(failures, 10)) * (0.5 + Math.random() / 2);
|
|
24
|
+
/** A server-provided resume time, sanity-checked: never in the past, never more than a day away. */
|
|
25
|
+
function pauseUntil(resetAt) {
|
|
26
|
+
const at = typeof resetAt === "string" ? Date.parse(resetAt) : Number.NaN;
|
|
27
|
+
const now = Date.now();
|
|
28
|
+
return Number.isFinite(at) && at > now ? Math.min(at, now + MAX_PAUSE_MS) : now + 60_000;
|
|
29
|
+
}
|
|
30
|
+
const SEVERITY_RANK = { critical: 3, high: 2, medium: 1, low: 0 };
|
|
31
|
+
const clean = () => ({ flagged: false, severity: null, matches: [] });
|
|
32
|
+
function canaryRule(canaries) {
|
|
33
|
+
const usable = canaries.filter(c => typeof c === "string" && c.replace(/[^a-z0-9]/gi, "").length >= 8);
|
|
34
|
+
return usable.length
|
|
35
|
+
? [{ id: "llm.system_prompt_leak", title: "System prompt leaked in model output", severity: "critical", category: "llm", sources: ["output"],
|
|
36
|
+
match: (_s, raw) => containsCanary(raw, usable) }]
|
|
37
|
+
: [];
|
|
38
|
+
}
|
|
39
|
+
// Rules read 16 KB at a time; a long retrieved document is read in overlapping windows, up to 256 KB.
|
|
40
|
+
const WINDOW = 16_384;
|
|
41
|
+
const OVERLAP = 512;
|
|
42
|
+
const MAX_TEXT = 262_144;
|
|
43
|
+
/** The check, and the window that matched (what gets reported). */
|
|
44
|
+
function scan(text, source, extra = []) {
|
|
45
|
+
try {
|
|
46
|
+
if (typeof text !== "string" || !text.trim())
|
|
47
|
+
return { result: clean(), window: "" };
|
|
48
|
+
const all = text.slice(0, MAX_TEXT);
|
|
49
|
+
let window = all.slice(0, WINDOW);
|
|
50
|
+
let rules = [];
|
|
51
|
+
for (let at = 0; at < all.length && !rules.length; at += WINDOW - OVERLAP) {
|
|
52
|
+
window = all.slice(at, at + WINDOW);
|
|
53
|
+
rules = matchLine(window, source, extra);
|
|
54
|
+
}
|
|
55
|
+
if (!rules.length)
|
|
56
|
+
return { result: clean(), window: all.slice(0, WINDOW) };
|
|
57
|
+
const matches = rules.map(r => ({ ruleId: r.id, title: r.title, severity: r.severity }))
|
|
58
|
+
.filter((m, i, list) => list.findIndex(o => o.ruleId === m.ruleId) === i);
|
|
59
|
+
const severity = matches.reduce((worst, m) => (SEVERITY_RANK[m.severity] > SEVERITY_RANK[worst] ? m.severity : worst), matches[0].severity);
|
|
60
|
+
return { result: { flagged: true, severity, matches }, window };
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return { result: clean(), window: "" };
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const check = (text, source, extra) => scan(text, source, extra).result;
|
|
67
|
+
/** Checks text bound for an LLM, locally, without reporting it anywhere. Never throws. */
|
|
68
|
+
export function checkPrompt(text) {
|
|
69
|
+
return check(text, "prompt");
|
|
70
|
+
}
|
|
71
|
+
/** Checks model output, locally, without reporting it anywhere. Pass your system prompt's canaries to catch leaks. */
|
|
72
|
+
export function checkOutput(text, options = {}) {
|
|
73
|
+
return check(text, "output", canaryRule(options.canaries ?? []));
|
|
74
|
+
}
|
|
75
|
+
// Without a token the checks still work locally; nothing is reported.
|
|
76
|
+
const noop = {
|
|
77
|
+
request() { }, log() { }, flush: async () => { }, enabled: false,
|
|
78
|
+
prompt: text => checkPrompt(text),
|
|
79
|
+
output: text => checkOutput(text),
|
|
80
|
+
};
|
|
15
81
|
export function createAppMonitor(options = {}) {
|
|
82
|
+
try {
|
|
83
|
+
return start(options ?? {});
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
// A bad option or an unusual runtime: monitoring is off, and the app carries on.
|
|
87
|
+
return noop;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function start(options) {
|
|
16
91
|
const report = (message) => { try {
|
|
17
92
|
options.onError?.(message);
|
|
18
93
|
}
|
|
19
94
|
catch { /* never throw */ } };
|
|
20
|
-
const token = options.token
|
|
95
|
+
const token = (typeof options.token === "string" ? options.token.trim() : "") || env("BEAM_APP_TOKEN");
|
|
96
|
+
const canaries = canaryRule(Array.isArray(options.canaries) ? options.canaries : []);
|
|
97
|
+
const percent = Math.min(50, Math.max(0.1, Number(options.maxCpuPercent) || 2));
|
|
98
|
+
// 1% of a core = 600 ms per minute. Traffic and logs get one budget; prompt() and output() get
|
|
99
|
+
// their own, so a flood of requests can't switch off the checks an app may block on.
|
|
100
|
+
const budget = new CpuBudget(600 * percent);
|
|
101
|
+
const localBudget = new CpuBudget(600 * percent);
|
|
102
|
+
const budgeted = (text, source, extra = []) => localBudget.run(() => scan(text, source, extra)) ?? { result: { ...clean(), skipped: true }, window: "" };
|
|
103
|
+
const local = { ...noop, prompt: text => budgeted(text, "prompt").result, output: text => budgeted(text, "output", canaries).result };
|
|
21
104
|
if (!token || !TOKEN.test(token)) {
|
|
22
105
|
report("AgentBeam App monitoring is off: set BEAM_APP_TOKEN to the app's token (beam_app_…) from the dashboard.");
|
|
23
|
-
return
|
|
106
|
+
return local;
|
|
107
|
+
}
|
|
108
|
+
if (typeof fetch !== "function" || typeof AbortController !== "function") {
|
|
109
|
+
report("AgentBeam App monitoring is off: this runtime has no fetch.");
|
|
110
|
+
return local;
|
|
24
111
|
}
|
|
25
112
|
const base = (options.dashboardUrl || env("BEAM_DASHBOARD_URL") || "https://app.agentbeam.com").replace(/\/+$/, "");
|
|
26
113
|
let url;
|
|
@@ -29,43 +116,54 @@ export function createAppMonitor(options = {}) {
|
|
|
29
116
|
}
|
|
30
117
|
catch {
|
|
31
118
|
report(`AgentBeam App monitoring is off: ${base} isn't a valid URL.`);
|
|
32
|
-
return
|
|
119
|
+
return local;
|
|
33
120
|
}
|
|
34
121
|
if (url.protocol !== "https:" && !["localhost", "127.0.0.1", "[::1]"].includes(url.hostname)) {
|
|
35
122
|
report("AgentBeam App monitoring is off: refusing to send the app token over plain HTTP.");
|
|
36
|
-
return
|
|
123
|
+
return local;
|
|
37
124
|
}
|
|
38
|
-
const flushEvery = Math.max(1000, options.flushIntervalMs
|
|
125
|
+
const flushEvery = Math.max(1000, Number(options.flushIntervalMs) || 5000);
|
|
39
126
|
const headers = { Authorization: `Bearer ${token}`, "Content-Type": "application/json" };
|
|
40
127
|
let level = null;
|
|
41
|
-
|
|
128
|
+
// A 401 pauses reporting and is checked again later: during an AgentBeam incident a working token
|
|
129
|
+
// can be rejected for a while, and the app shouldn't need a restart to resume.
|
|
130
|
+
let revokedUntil = 0;
|
|
42
131
|
let pausedUntil = 0;
|
|
43
132
|
let configAt = 0;
|
|
133
|
+
let configFailures = 0;
|
|
44
134
|
let configInFlight = false;
|
|
45
135
|
let lastFlush = 0;
|
|
136
|
+
let sendFailures = 0;
|
|
137
|
+
let nextSendAt = 0;
|
|
46
138
|
let flushing = null;
|
|
47
|
-
|
|
139
|
+
let budgetReportedAt = 0;
|
|
140
|
+
const revoked = () => Date.now() < revokedUntil;
|
|
141
|
+
const pipeline = new MonitorPipeline({ level: () => (!revoked() && Date.now() >= pausedUntil ? level : null), budget });
|
|
48
142
|
const refreshConfig = async () => {
|
|
49
143
|
configInFlight = true;
|
|
50
|
-
const t = withTimeout(
|
|
144
|
+
const t = withTimeout(REQUEST_TIMEOUT_MS);
|
|
51
145
|
try {
|
|
52
146
|
const response = await fetch(`${base}/v1/monitor/config`, { headers, signal: t.signal });
|
|
53
147
|
const body = (await response.json().catch(() => ({})));
|
|
54
|
-
|
|
148
|
+
configFailures = response.status >= 500 ? configFailures + 1 : 0;
|
|
149
|
+
if (response.ok) {
|
|
55
150
|
level = body.level ?? "standard";
|
|
151
|
+
revokedUntil = 0;
|
|
152
|
+
}
|
|
56
153
|
else if (response.status === 401) {
|
|
57
|
-
revoked
|
|
58
|
-
|
|
154
|
+
if (!revoked())
|
|
155
|
+
report("AgentBeam App monitoring paused: this app token was rejected (rotated or removed). Checking again in 15 minutes.");
|
|
156
|
+
revokedUntil = Date.now() + REVOKED_RECHECK_MS;
|
|
59
157
|
}
|
|
60
158
|
else if (response.status === 403) {
|
|
61
159
|
level = null;
|
|
62
|
-
report(body.error
|
|
160
|
+
report(typeof body.error === "string" ? body.error : "AgentBeam App monitoring is turned off for this workspace.");
|
|
63
161
|
}
|
|
64
162
|
else if (response.status === 429)
|
|
65
|
-
pausedUntil =
|
|
163
|
+
pausedUntil = pauseUntil(body.resetAt);
|
|
66
164
|
}
|
|
67
165
|
catch {
|
|
68
|
-
|
|
166
|
+
configFailures++; // unreachable or slow: keep the last known level and back off
|
|
69
167
|
}
|
|
70
168
|
finally {
|
|
71
169
|
t.done();
|
|
@@ -74,58 +172,76 @@ export function createAppMonitor(options = {}) {
|
|
|
74
172
|
}
|
|
75
173
|
};
|
|
76
174
|
const ensureConfig = () => {
|
|
77
|
-
if (
|
|
175
|
+
if (configInFlight || revoked())
|
|
78
176
|
return;
|
|
79
|
-
const every = level ? CONFIG_EVERY_MS : CONFIG_RETRY_MS;
|
|
177
|
+
const every = level && !configFailures ? CONFIG_EVERY_MS : backoff(CONFIG_RETRY_MS, configFailures);
|
|
80
178
|
if (!configAt || Date.now() - configAt >= every)
|
|
81
179
|
void refreshConfig();
|
|
82
180
|
};
|
|
83
181
|
const send = async (batch) => {
|
|
84
|
-
const t = withTimeout(
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
182
|
+
const t = withTimeout(REQUEST_TIMEOUT_MS);
|
|
183
|
+
const outcome = await (async () => {
|
|
184
|
+
try {
|
|
185
|
+
const response = await fetch(`${base}/v1/monitor/findings`, { method: "POST", headers, body: JSON.stringify({ findings: batch }), signal: t.signal });
|
|
186
|
+
if (response.ok)
|
|
187
|
+
return "sent";
|
|
188
|
+
const body = (await response.json().catch(() => ({})));
|
|
189
|
+
if (response.status === 401) {
|
|
190
|
+
if (!revoked())
|
|
191
|
+
report("AgentBeam App monitoring paused: this app token was rejected (rotated or removed). Checking again in 15 minutes.");
|
|
192
|
+
revokedUntil = Date.now() + REVOKED_RECHECK_MS;
|
|
193
|
+
return "drop";
|
|
194
|
+
}
|
|
195
|
+
if (response.status === 403) {
|
|
196
|
+
level = null;
|
|
197
|
+
return "drop";
|
|
198
|
+
}
|
|
199
|
+
if (response.status === 429) {
|
|
200
|
+
pausedUntil = pauseUntil(body.resetAt);
|
|
201
|
+
return "drop";
|
|
202
|
+
}
|
|
203
|
+
return response.status >= 500 ? "retry" : "drop";
|
|
94
204
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return "drop";
|
|
205
|
+
catch {
|
|
206
|
+
return "retry";
|
|
98
207
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
return "drop";
|
|
208
|
+
finally {
|
|
209
|
+
t.done();
|
|
102
210
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
t.done();
|
|
110
|
-
}
|
|
211
|
+
})();
|
|
212
|
+
if (outcome === "retry")
|
|
213
|
+
nextSendAt = Date.now() + backoff(flushEvery, ++sendFailures);
|
|
214
|
+
else
|
|
215
|
+
sendFailures = 0;
|
|
216
|
+
return outcome;
|
|
111
217
|
};
|
|
112
218
|
const flush = (force = false) => {
|
|
113
219
|
if (flushing)
|
|
114
220
|
return flushing;
|
|
115
221
|
if (!pipeline.pending.length)
|
|
116
222
|
return Promise.resolve();
|
|
117
|
-
|
|
223
|
+
const now = Date.now();
|
|
224
|
+
if (!force && (now - lastFlush < flushEvery || now < nextSendAt))
|
|
118
225
|
return Promise.resolve();
|
|
119
|
-
lastFlush =
|
|
226
|
+
lastFlush = now;
|
|
120
227
|
flushing = pipeline.flush(send).catch(() => { }).finally(() => { flushing = null; });
|
|
121
228
|
return flushing;
|
|
122
229
|
};
|
|
123
|
-
const
|
|
230
|
+
const noteBudget = () => {
|
|
231
|
+
if (Date.now() - budgetReportedAt < 60_000)
|
|
232
|
+
return;
|
|
233
|
+
const skipped = budget.takeSkipped() + localBudget.takeSkipped();
|
|
234
|
+
budgetReportedAt = Date.now();
|
|
235
|
+
if (skipped)
|
|
236
|
+
report(`AgentBeam App monitoring skipped ${skipped} checks in the last minute to stay under ${percent}% of a CPU (maxCpuPercent).`);
|
|
237
|
+
};
|
|
238
|
+
const ingest = (line, file, ingestOptions) => {
|
|
124
239
|
try {
|
|
125
240
|
ensureConfig();
|
|
126
|
-
|
|
241
|
+
noteBudget();
|
|
242
|
+
if (!level || revoked())
|
|
127
243
|
return;
|
|
128
|
-
pipeline.ingestLine(line, file);
|
|
244
|
+
pipeline.ingestLine(line, file, ingestOptions);
|
|
129
245
|
if (Date.now() - lastFlush >= flushEvery)
|
|
130
246
|
void flush();
|
|
131
247
|
}
|
|
@@ -133,26 +249,50 @@ export function createAppMonitor(options = {}) {
|
|
|
133
249
|
/* never let monitoring affect the app */
|
|
134
250
|
}
|
|
135
251
|
};
|
|
252
|
+
const llmText = (text, source, info) => {
|
|
253
|
+
const { result, window } = budgeted(text, source, source === "output" ? canaries : []);
|
|
254
|
+
try {
|
|
255
|
+
if (!window.trim())
|
|
256
|
+
return result;
|
|
257
|
+
const client = String(info?.ip ?? info?.user ?? "").trim().slice(0, 80) || undefined;
|
|
258
|
+
const label = typeof info?.label === "string" && info.label.trim() ? info.label.trim().slice(0, 60) : source === "prompt" ? "prompts" : "model output";
|
|
259
|
+
// Clean prompts are still counted per sender, to spot floods.
|
|
260
|
+
if (result.flagged || (source === "prompt" && client))
|
|
261
|
+
ingest(window, label, { source, client, rules: source === "output" ? canaries : undefined, excerpt: options.excerpts !== false });
|
|
262
|
+
}
|
|
263
|
+
catch {
|
|
264
|
+
/* never let monitoring affect the app */
|
|
265
|
+
}
|
|
266
|
+
return result;
|
|
267
|
+
};
|
|
136
268
|
void refreshConfig();
|
|
137
269
|
return {
|
|
138
270
|
enabled: true,
|
|
139
271
|
request(info) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
272
|
+
try {
|
|
273
|
+
if (!info || typeof info.url !== "string")
|
|
274
|
+
return;
|
|
275
|
+
const text = (v, max) => (v === null || v === undefined ? undefined : String(v).slice(0, max));
|
|
276
|
+
// Same JSON shape as an access-log line, so the rules see method, path+query, client and agent.
|
|
277
|
+
ingest(JSON.stringify({
|
|
278
|
+
method: String(info.method || "GET").toUpperCase().slice(0, 16),
|
|
279
|
+
path: info.url.slice(0, 8192),
|
|
280
|
+
httpStatus: typeof info.status === "number" ? info.status : undefined,
|
|
281
|
+
srcIp: text(info.ip, 64),
|
|
282
|
+
clientUa: text(info.userAgent, 512),
|
|
283
|
+
}), "requests");
|
|
284
|
+
}
|
|
285
|
+
catch {
|
|
286
|
+
/* never let monitoring affect the app */
|
|
287
|
+
}
|
|
150
288
|
},
|
|
151
289
|
log(line) {
|
|
152
290
|
if (typeof line === "string" && line.trim())
|
|
153
291
|
ingest(line.slice(0, 16_384), "app log");
|
|
154
292
|
},
|
|
155
|
-
|
|
293
|
+
prompt: (text, info) => llmText(text, "prompt", info),
|
|
294
|
+
output: (text, info) => llmText(text, "output", info),
|
|
295
|
+
flush: (opts) => flush(Boolean(opts?.force)).catch(() => { }),
|
|
156
296
|
};
|
|
157
297
|
}
|
|
158
298
|
//# sourceMappingURL=sdk.js.map
|
package/dist/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-beam/beam",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.29",
|
|
4
4
|
"description": "Local-first observation and heuristic risk scanning for AI coding agents (Claude Code, Codex, Cursor, Copilot CLI, Gemini). Redacts secrets, flags risky tool calls, scans skills and MCP configs offline.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai agent security",
|
|
@@ -62,7 +62,8 @@
|
|
|
62
62
|
"prepublishOnly": "npm run validate:skills && npm run typecheck && npm test && npm run build",
|
|
63
63
|
"setup": "npm run build && node dist/cli.js setup",
|
|
64
64
|
"setup:global": "bash scripts/setup-global.sh",
|
|
65
|
-
"validate:skills": "node Skills/scripts/validate-skills.mjs"
|
|
65
|
+
"validate:skills": "node Skills/scripts/validate-skills.mjs",
|
|
66
|
+
"stress": "npm run build && node --expose-gc scripts/stress-report.mjs"
|
|
66
67
|
},
|
|
67
68
|
"publishConfig": {
|
|
68
69
|
"access": "public"
|
|
@@ -71,6 +72,7 @@
|
|
|
71
72
|
"node": ">=20.17.0"
|
|
72
73
|
},
|
|
73
74
|
"dependencies": {
|
|
75
|
+
"@anthropic-ai/sdk": "^1.2.0",
|
|
74
76
|
"commander": "^13.0.0"
|
|
75
77
|
},
|
|
76
78
|
"devDependencies": {
|