@agent-beam/beam 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/Skills/README.md +64 -0
- package/Skills/agent-cost-abuse-review/SKILL.md +63 -0
- package/Skills/agent-incident-response/SKILL.md +109 -0
- package/Skills/agent-monitoring-review/SKILL.md +104 -0
- package/Skills/agent-network-segmentation/SKILL.md +70 -0
- package/Skills/agent-permissions-review/SKILL.md +107 -0
- package/Skills/agent-plugin-marketplace-review/SKILL.md +68 -0
- package/Skills/agent-transport-security/SKILL.md +108 -0
- package/Skills/agent-web-security/SKILL.md +103 -0
- package/Skills/agents/README.md +43 -0
- package/Skills/agents/claude/beam-ai-auditor.md +25 -0
- package/Skills/agents/claude/beam-appsec-auditor.md +25 -0
- package/Skills/agents/claude/beam-findings-reviewer.md +25 -0
- package/Skills/agents/claude/beam-incident-analyst.md +25 -0
- package/Skills/agents/claude/beam-infrastructure-auditor.md +25 -0
- package/Skills/agents/claude/beam-mcp-auditor.md +25 -0
- package/Skills/agents/claude/beam-skill-auditor.md +25 -0
- package/Skills/agents/codex/beam-ai-auditor.toml +23 -0
- package/Skills/agents/codex/beam-appsec-auditor.toml +23 -0
- package/Skills/agents/codex/beam-findings-reviewer.toml +23 -0
- package/Skills/agents/codex/beam-incident-analyst.toml +23 -0
- package/Skills/agents/codex/beam-infrastructure-auditor.toml +23 -0
- package/Skills/agents/codex/beam-mcp-auditor.toml +23 -0
- package/Skills/agents/codex/beam-skill-auditor.toml +23 -0
- package/Skills/ai-asset-scanner/SKILL.md +69 -0
- package/Skills/ai-security/SKILL.md +59 -0
- package/Skills/api-auth-security/SKILL.md +106 -0
- package/Skills/browser-agent-security/SKILL.md +77 -0
- package/Skills/cicd-agent-security/SKILL.md +108 -0
- package/Skills/cloud-agent-security/SKILL.md +101 -0
- package/Skills/container-sandbox-security/SKILL.md +101 -0
- package/Skills/data-retention-privacy-review/SKILL.md +69 -0
- package/Skills/dependency-supply-chain/SKILL.md +106 -0
- package/Skills/llm-output-handling/SKILL.md +66 -0
- package/Skills/manifest.json +147 -0
- package/Skills/mcp-scanner/SKILL.md +64 -0
- package/Skills/model-artifact-scanner/SKILL.md +108 -0
- package/Skills/multi-agent-trust-review/SKILL.md +71 -0
- package/Skills/prompt-injection-review/SKILL.md +102 -0
- package/Skills/rag-memory-security/SKILL.md +105 -0
- package/Skills/scripts/validate-skills.mjs +113 -0
- package/Skills/secrets-egress-review/SKILL.md +105 -0
- package/Skills/security-assessment/SKILL.md +73 -0
- package/Skills/security-reporting/SKILL.md +73 -0
- package/Skills/skill-scanner/SKILL.md +68 -0
- package/Skills/tool-schema-review/SKILL.md +66 -0
- package/Skills/training-data-security/SKILL.md +70 -0
- package/Skills/webhook-callback-security/SKILL.md +71 -0
- package/dist/agents.d.ts +2 -1
- package/dist/agents.js +24 -8
- package/dist/agents.js.map +1 -1
- package/dist/approvals.d.ts +65 -0
- package/dist/approvals.js +86 -0
- package/dist/approvals.js.map +1 -0
- package/dist/client.js +107 -3
- package/dist/client.js.map +1 -1
- package/dist/data-detectors.d.ts +18 -0
- package/dist/data-detectors.js +33 -0
- package/dist/data-detectors.js.map +1 -0
- package/dist/forward.js +7 -2
- package/dist/forward.js.map +1 -1
- package/dist/hook-adapters.js +13 -2
- package/dist/hook-adapters.js.map +1 -1
- package/dist/install.js +34 -3
- package/dist/install.js.map +1 -1
- package/dist/owl.d.ts +6 -0
- package/dist/owl.js +50 -0
- package/dist/owl.js.map +1 -0
- package/dist/policy.d.ts +66 -6
- package/dist/policy.js +132 -40
- package/dist/policy.js.map +1 -1
- package/dist/prompts.js +5 -2
- package/dist/prompts.js.map +1 -1
- package/dist/setup.js +3 -0
- package/dist/setup.js.map +1 -1
- package/dist/store.d.ts +16 -0
- package/dist/store.js +19 -2
- package/dist/store.js.map +1 -1
- package/package.json +34 -5
package/dist/policy.d.ts
CHANGED
|
@@ -1,27 +1,87 @@
|
|
|
1
|
+
import type { CustomDetector } from "./data-detectors.js";
|
|
2
|
+
import type { ApprovalPolicy } from "./approvals.js";
|
|
1
3
|
export type PolicyMode = "observe" | "advisory" | "enforce";
|
|
4
|
+
export type PolicyAction = "ALLOW" | "ASK" | "BLOCK" | "REDACT" | "AUDIT";
|
|
5
|
+
export interface PolicyRule {
|
|
6
|
+
id: string;
|
|
7
|
+
title?: string;
|
|
8
|
+
action: PolicyAction;
|
|
9
|
+
risk?: number;
|
|
10
|
+
tool?: string;
|
|
11
|
+
command?: string;
|
|
12
|
+
args?: string[];
|
|
13
|
+
path?: string;
|
|
14
|
+
url?: string;
|
|
15
|
+
role?: string;
|
|
16
|
+
user?: string;
|
|
17
|
+
agent?: string;
|
|
18
|
+
cwd?: string;
|
|
19
|
+
repository?: string;
|
|
20
|
+
branch?: string;
|
|
21
|
+
environment?: string;
|
|
22
|
+
time?: {
|
|
23
|
+
after?: string;
|
|
24
|
+
before?: string;
|
|
25
|
+
};
|
|
26
|
+
reason?: string;
|
|
27
|
+
approval?: ApprovalPolicy;
|
|
28
|
+
}
|
|
2
29
|
export interface PolicyRules {
|
|
3
30
|
mode: PolicyMode;
|
|
4
31
|
blockedTools: string[];
|
|
5
32
|
blockedCommandPatterns: string[];
|
|
6
33
|
disabledAgents: string[];
|
|
34
|
+
rules?: PolicyRule[];
|
|
35
|
+
risk?: {
|
|
36
|
+
askAt?: number;
|
|
37
|
+
blockAt?: number;
|
|
38
|
+
};
|
|
39
|
+
customDetectors?: CustomDetector[];
|
|
7
40
|
}
|
|
8
41
|
export interface PolicyBundle {
|
|
9
42
|
version: number;
|
|
10
43
|
rules: PolicyRules;
|
|
11
44
|
notAfter: string | null;
|
|
45
|
+
errors?: string[];
|
|
12
46
|
}
|
|
13
47
|
export declare function policyPath(): string;
|
|
48
|
+
export declare function lastGoodPolicyPath(): string;
|
|
14
49
|
export declare function readPolicy(): Promise<PolicyBundle | null>;
|
|
15
|
-
export type DecisionAction = "allow" | "warn" | "deny";
|
|
50
|
+
export type DecisionAction = "allow" | "ask" | "block" | "redact" | "audit" | "warn" | "deny";
|
|
51
|
+
export interface ActionContext {
|
|
52
|
+
agent: string;
|
|
53
|
+
tool: string;
|
|
54
|
+
command: string;
|
|
55
|
+
args?: string[];
|
|
56
|
+
path?: string;
|
|
57
|
+
url?: string;
|
|
58
|
+
role?: string;
|
|
59
|
+
user?: string;
|
|
60
|
+
cwd?: string;
|
|
61
|
+
repository?: string;
|
|
62
|
+
branch?: string;
|
|
63
|
+
environment?: string;
|
|
64
|
+
time?: string;
|
|
65
|
+
}
|
|
16
66
|
export interface Decision {
|
|
17
67
|
action: DecisionAction;
|
|
18
68
|
reason?: string;
|
|
19
69
|
mode: PolicyMode;
|
|
20
70
|
policyVersion: number;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
71
|
+
policy?: string;
|
|
72
|
+
rule?: string;
|
|
73
|
+
approval?: ApprovalPolicy;
|
|
74
|
+
actor?: string;
|
|
75
|
+
role?: string;
|
|
76
|
+
agent?: string;
|
|
77
|
+
tool?: string;
|
|
78
|
+
command?: string;
|
|
79
|
+
args?: string[];
|
|
80
|
+
resource?: string;
|
|
81
|
+
riskScore: number;
|
|
82
|
+
riskLevel: "LOW" | "MEDIUM" | "HIGH" | "CRITICAL";
|
|
83
|
+
riskFactors: string[];
|
|
84
|
+
customDetectors?: CustomDetector[];
|
|
85
|
+
errors?: string[];
|
|
26
86
|
}
|
|
27
87
|
export declare function evaluate(bundle: PolicyBundle | null, ctx: ActionContext): Decision;
|
package/dist/policy.js
CHANGED
|
@@ -1,59 +1,151 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { getDataDirectory } from "./config.js";
|
|
4
|
-
const EMPTY = { mode: "observe", blockedTools: [], blockedCommandPatterns: [], disabledAgents: [] };
|
|
5
|
-
export function policyPath() {
|
|
6
|
-
|
|
4
|
+
const EMPTY = { mode: "observe", blockedTools: [], blockedCommandPatterns: [], disabledAgents: [], rules: [], customDetectors: [] };
|
|
5
|
+
export function policyPath() { return join(getDataDirectory(), "policy.json"); }
|
|
6
|
+
export function lastGoodPolicyPath() { return join(getDataDirectory(), "policy.last-good.json"); }
|
|
7
|
+
function validAction(v) { return ["ALLOW", "ASK", "BLOCK", "REDACT", "AUDIT"].includes(String(v).toUpperCase()); }
|
|
8
|
+
function validRule(v, index, errors) {
|
|
9
|
+
if (!v || typeof v !== "object" || Array.isArray(v)) {
|
|
10
|
+
errors.push(`rules[${index}] must be an object`);
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const r = v;
|
|
14
|
+
if (typeof r.id !== "string" || !r.id.trim()) {
|
|
15
|
+
errors.push(`rules[${index}].id is required`);
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
if (!validAction(r.action)) {
|
|
19
|
+
errors.push(`rules[${index}] (${r.id}) has an invalid action`);
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
if (r.args !== undefined && (!Array.isArray(r.args) || r.args.some(a => typeof a !== "string"))) {
|
|
23
|
+
errors.push(`rules[${index}] (${r.id}).args must be strings`);
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
if (r.risk !== undefined && (typeof r.risk !== "number" || r.risk < 0 || r.risk > 100)) {
|
|
27
|
+
errors.push(`rules[${index}] (${r.id}).risk must be 0-100`);
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
return { ...r, action: String(r.action).toUpperCase() };
|
|
7
31
|
}
|
|
8
32
|
export async function readPolicy() {
|
|
33
|
+
const read = async (path) => {
|
|
34
|
+
const parsed = JSON.parse(await readFile(path, "utf8"));
|
|
35
|
+
if (!parsed.rules || typeof parsed.rules !== "object")
|
|
36
|
+
throw new Error("missing rules");
|
|
37
|
+
const errors = [];
|
|
38
|
+
const source = parsed.rules;
|
|
39
|
+
if (source.customDetectors !== undefined && (!Array.isArray(source.customDetectors) || source.customDetectors.some(d => !d || typeof d.name !== "string" || typeof d.pattern !== "string" || typeof d.replacement !== "string")))
|
|
40
|
+
errors.push("customDetectors must contain name, pattern, and replacement strings");
|
|
41
|
+
for (const detector of Array.isArray(source.customDetectors) ? source.customDetectors : []) {
|
|
42
|
+
try {
|
|
43
|
+
new RegExp(detector.pattern);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
errors.push(`Invalid custom detector pattern: ${detector.name}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const rules = Array.isArray(source.rules) ? source.rules.map((r, i) => validRule(r, i, errors)).filter((r) => Boolean(r)) : [];
|
|
50
|
+
if (source.rules !== undefined && !Array.isArray(source.rules))
|
|
51
|
+
errors.push("rules must be an array");
|
|
52
|
+
return { version: typeof parsed.version === "number" ? parsed.version : 0, notAfter: typeof parsed.notAfter === "string" ? parsed.notAfter : null, rules: { ...EMPTY, ...source, rules }, errors };
|
|
53
|
+
};
|
|
9
54
|
try {
|
|
10
|
-
|
|
11
|
-
|
|
55
|
+
return await read(policyPath());
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (error.code === "ENOENT")
|
|
12
59
|
return null;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
60
|
+
try {
|
|
61
|
+
return await read(lastGoodPolicyPath());
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// A present but malformed policy with no last-known-good copy fails closed.
|
|
65
|
+
return { version: 0, notAfter: null, errors: ["Policy file is malformed or unreadable; no last-known-good policy is available."], rules: { ...EMPTY, mode: "enforce" } };
|
|
66
|
+
}
|
|
18
67
|
}
|
|
19
|
-
|
|
20
|
-
|
|
68
|
+
}
|
|
69
|
+
const safety = { ALLOW: 0, AUDIT: 1, REDACT: 2, ASK: 3, BLOCK: 4 };
|
|
70
|
+
function glob(pattern, value) { const e = pattern.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/\*\*/g, "§§").replace(/\*/g, "[^/]*").replace(/§§/g, ".*").replace(/\?/g, "."); return new RegExp(`^${e}$`, "i").test(value); }
|
|
71
|
+
function same(a, b) { return !a || (b ?? "").toLowerCase() === a.toLowerCase(); }
|
|
72
|
+
function riskInfo(c) { const s = `${c.command} ${c.path ?? ""} ${c.url ?? ""}`; const factors = []; let n = 0; if (/\brm\s+.*-rf\s+\//i.test(s)) {
|
|
73
|
+
n += 98;
|
|
74
|
+
factors.push("destructive operation");
|
|
75
|
+
}
|
|
76
|
+
else if (/\brm\b/i.test(s)) {
|
|
77
|
+
n += 45;
|
|
78
|
+
factors.push("filesystem operation");
|
|
79
|
+
} if (/\bsudo\b/i.test(s)) {
|
|
80
|
+
n += 35;
|
|
81
|
+
factors.push("privileged operation");
|
|
82
|
+
} if (/\b(curl|wget)\b|https?:\/\//i.test(s)) {
|
|
83
|
+
n += 25;
|
|
84
|
+
factors.push("external destination");
|
|
85
|
+
} if (/\.env|\.ssh|\.aws|private.?key|api.?key|token|secret/i.test(s)) {
|
|
86
|
+
n += 35;
|
|
87
|
+
factors.push("sensitive data or file");
|
|
88
|
+
} const score = Math.min(100, n); return { score, level: score >= 90 ? "CRITICAL" : score >= 70 ? "HIGH" : score >= 30 ? "MEDIUM" : "LOW", factors }; }
|
|
89
|
+
function matches(r, c) {
|
|
90
|
+
if (!same(r.tool, c.tool) || !same(r.role, c.role) || !same(r.user, c.user) || !same(r.agent, c.agent) || !same(r.repository, c.repository) || !same(r.branch, c.branch) || !same(r.environment, c.environment))
|
|
91
|
+
return false;
|
|
92
|
+
if (r.cwd && !glob(r.cwd, c.cwd ?? ""))
|
|
93
|
+
return false;
|
|
94
|
+
if (r.command && !glob(r.command, c.command.split(/\s+/)[0] ?? ""))
|
|
95
|
+
return false;
|
|
96
|
+
if (r.path && !glob(r.path, c.path ?? ""))
|
|
97
|
+
return false;
|
|
98
|
+
if (r.url && !glob(r.url, c.url ?? ""))
|
|
99
|
+
return false;
|
|
100
|
+
if (r.args && r.args.some((a, i) => !glob(a, c.args?.[i] ?? "")))
|
|
101
|
+
return false;
|
|
102
|
+
if (r.risk !== undefined && c.riskScore < r.risk)
|
|
103
|
+
return false;
|
|
104
|
+
if (r.time && c.time) {
|
|
105
|
+
const t = c.time.slice(11, 16);
|
|
106
|
+
if (r.time.after && t < r.time.after || r.time.before && t > r.time.before)
|
|
107
|
+
return false;
|
|
21
108
|
}
|
|
109
|
+
return true;
|
|
22
110
|
}
|
|
23
|
-
|
|
111
|
+
function specificity(r) { return [r.tool, r.command, r.args?.length, r.path, r.url, r.role, r.user, r.agent, r.cwd, r.repository, r.branch, r.environment, r.time].filter(Boolean).length; }
|
|
24
112
|
export function evaluate(bundle, ctx) {
|
|
113
|
+
const info = riskInfo(ctx);
|
|
114
|
+
const score = info.score;
|
|
115
|
+
const base = { mode: bundle?.rules.mode ?? "observe", policyVersion: bundle?.version ?? 0, riskScore: score, riskLevel: info.level, riskFactors: info.factors, customDetectors: bundle?.rules.customDetectors ?? [], actor: ctx.user, role: ctx.role, agent: ctx.agent, tool: ctx.tool, command: ctx.command, args: ctx.args, resource: ctx.path ?? ctx.url, errors: bundle?.errors };
|
|
25
116
|
if (!bundle)
|
|
26
|
-
return { action: "allow", mode: "observe", policyVersion: 0 };
|
|
27
|
-
const { rules, version } = bundle;
|
|
28
|
-
const base = { mode: rules.mode, policyVersion: version };
|
|
29
|
-
if (rules.mode === "observe")
|
|
30
117
|
return { action: "allow", ...base };
|
|
31
|
-
|
|
32
|
-
|
|
118
|
+
if (bundle.errors?.length)
|
|
119
|
+
return { action: "deny", ...base, reason: `Security policy rejected: ${bundle.errors.join("; ")}`, rule: "policy.invalid" };
|
|
120
|
+
if (bundle.rules.mode === "observe" || (bundle.notAfter && Date.parse(bundle.notAfter) < Date.now()))
|
|
33
121
|
return { action: "allow", ...base };
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
for (const pattern of rules.blockedCommandPatterns) {
|
|
46
|
-
if (!ctx.command)
|
|
47
|
-
break;
|
|
122
|
+
const candidates = [];
|
|
123
|
+
for (const r of bundle.rules.rules ?? [])
|
|
124
|
+
if (matches(r, { ...ctx, riskScore: score }))
|
|
125
|
+
candidates.push({ r, rank: specificity(r) });
|
|
126
|
+
for (const tool of bundle.rules.blockedTools) {
|
|
127
|
+
const r = { id: `legacy.tool.${tool}`, tool, action: "BLOCK", reason: `The ${tool} tool is blocked by workspace policy.` };
|
|
128
|
+
if (matches(r, { ...ctx, riskScore: score }))
|
|
129
|
+
candidates.push({ r, rank: 1 });
|
|
130
|
+
}
|
|
131
|
+
if (bundle.rules.disabledAgents.some(a => a.toLowerCase() === ctx.agent.toLowerCase()))
|
|
132
|
+
candidates.push({ r: { id: "legacy.disabled-agent", agent: ctx.agent, action: "BLOCK", reason: `${ctx.agent} is disabled by workspace policy.` }, rank: 1 });
|
|
133
|
+
for (const pattern of bundle.rules.blockedCommandPatterns) {
|
|
48
134
|
try {
|
|
49
|
-
if (new RegExp(pattern, "i").test(ctx.command))
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
catch {
|
|
54
|
-
/* ignore an unparseable pattern */
|
|
135
|
+
if (new RegExp(pattern, "i").test(ctx.command))
|
|
136
|
+
candidates.push({ r: { id: `legacy.command.${pattern}`, action: "BLOCK", reason: `Command matches blocked pattern: /${pattern}/` }, rank: 1 });
|
|
55
137
|
}
|
|
138
|
+
catch { /* preserve legacy fail-open behavior; structured rules are validated and reported */ }
|
|
56
139
|
}
|
|
57
|
-
|
|
140
|
+
const selected = candidates.sort((a, b) => b.rank - a.rank || safety[b.r.action] - safety[a.r.action])[0]?.r;
|
|
141
|
+
const thresholds = bundle.rules.risk ?? { askAt: 30, blockAt: 70 };
|
|
142
|
+
let action = selected?.action ?? "ALLOW";
|
|
143
|
+
if (!selected && score >= (thresholds.blockAt ?? 70))
|
|
144
|
+
action = "BLOCK";
|
|
145
|
+
else if (!selected && score >= (thresholds.askAt ?? 30))
|
|
146
|
+
action = "ASK";
|
|
147
|
+
const reason = selected?.reason ?? (action === "BLOCK" ? `Risk score ${score} exceeds the block threshold.` : action === "ASK" ? `Risk score ${score} requires approval.` : action === "REDACT" ? "Sensitive data must be transformed before this action." : undefined);
|
|
148
|
+
const mapped = action === "BLOCK" ? (bundle.rules.mode === "enforce" ? "deny" : "warn") : action === "ASK" && bundle.rules.mode === "advisory" ? "warn" : action.toLowerCase();
|
|
149
|
+
return { ...base, action: mapped, reason, policy: "local policy", rule: selected?.id, approval: selected?.approval };
|
|
58
150
|
}
|
|
59
151
|
//# sourceMappingURL=policy.js.map
|
package/dist/policy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts.js
CHANGED
|
@@ -64,7 +64,10 @@ export async function checkbox(title, items) {
|
|
|
64
64
|
process.stdin.on("keypress", onKeypress);
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
|
-
|
|
67
|
+
// Beam's own spinner: a watchful eye that opens and closes — the owl keeping
|
|
68
|
+
// an eye on your agents. Doubled ends hold the shut/wide-open frames a beat
|
|
69
|
+
// longer, so it reads as a blink-and-pulse rather than a flat cycle.
|
|
70
|
+
const FRAMES = ["·", "·", "∘", "○", "◎", "◉", "◉", "◎", "○", "∘"];
|
|
68
71
|
// Runs `fn` while animating a spinner in place on the current line, then replaces it with a
|
|
69
72
|
// ✔/✖ result line. Falls back to plain "label..." on a non-TTY stdout (nothing to animate).
|
|
70
73
|
export async function withSpinner(label, fn) {
|
|
@@ -85,7 +88,7 @@ export async function withSpinner(label, fn) {
|
|
|
85
88
|
const timer = setInterval(() => {
|
|
86
89
|
frame = (frame + 1) % FRAMES.length;
|
|
87
90
|
process.stdout.write(`\r${FRAMES[frame]} ${label}`);
|
|
88
|
-
},
|
|
91
|
+
}, 110);
|
|
89
92
|
try {
|
|
90
93
|
const result = await fn();
|
|
91
94
|
clearInterval(timer);
|
package/dist/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.js
CHANGED
|
@@ -7,6 +7,7 @@ import { installService } from "./service.js";
|
|
|
7
7
|
import { openBrowser } from "./open-browser.js";
|
|
8
8
|
import { getIdentityPath } from "./config.js";
|
|
9
9
|
import { checkbox, renderTable, withSpinner } from "./prompts.js";
|
|
10
|
+
import { showFirstRunWelcome } from "./owl.js";
|
|
10
11
|
const TOTAL_STEPS = 4;
|
|
11
12
|
function step(n, title) {
|
|
12
13
|
console.log(`\nStep ${n}/${TOTAL_STEPS}: ${title}`);
|
|
@@ -35,6 +36,8 @@ export async function promptYesNo(question, defaultYes = true) {
|
|
|
35
36
|
// sudo via runWithSudoFallback -- service install never does, since it must write into the
|
|
36
37
|
// invoking user's own home directory, not root's.
|
|
37
38
|
export async function runSetup() {
|
|
39
|
+
// Owl says hello, but only the first time this machine is ever set up.
|
|
40
|
+
await showFirstRunWelcome();
|
|
38
41
|
console.log("Setting up Beam — 4 quick steps.");
|
|
39
42
|
const agentRows = [];
|
|
40
43
|
let dashboardStatus = "not connected";
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,SAAS,IAAI,CAAC,CAAS,EAAE,KAAa;IACpC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,UAAU,GAAG,IAAI;IACnE,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,MAAM,0CAA0C,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QACzG,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAClF,IAAI,CAAC,MAAM;YAAE,OAAO,UAAU,CAAC;QAC/B,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,yFAAyF;AACzF,+FAA+F;AAC/F,+FAA+F;AAC/F,2FAA2F;AAC3F,kDAAkD;AAClD,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,uEAAuE;IACvE,MAAM,mBAAmB,EAAE,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,eAAe,GAAG,eAAe,CAAC;IACtC,IAAI,aAAa,GAAG,aAAa,CAAC;IAElC,kFAAkF;IAClF,IAAI,CAAC,CAAC,EAAE,qCAAqC,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC;IAChF,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAElF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,WAAW;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,uCAAuC,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,WAAW,WAAW,CAAC,MAAM,SAAS,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gCAAgC,EACzG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CACzD,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,uBAAuB,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnG,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1F,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,cAAc,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,6BAA6B,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;IACjI,CAAC;IAED,6FAA6F;IAC7F,IAAI,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAC;IAC7C,IAAI,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,+BAA+B,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;QAClE,eAAe,GAAG,cAAc,QAAQ,CAAC,QAAQ,GAAG,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,mDAAmD,CAAC,CAAC;QAC7F,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,qCAAqC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAChE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,QAAQ,GAAG,MAAM,WAAW,CAAC,0CAA0C,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/F,OAAO,CAAC,GAAG,CACT,iBAAiB,QAAQ,CAAC,KAAK,IAAI;gBACnC,iBAAiB,QAAQ,CAAC,OAAO,IAAI;gBACrC,iBAAiB,eAAe,EAAE,SAAS,CAC5C,CAAC;YACF,eAAe,GAAG,cAAc,QAAQ,CAAC,QAAQ,GAAG,CAAC;YAErD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,QAAS,CAAC,CAAC,CAAC;YAChH,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW;gBAAE,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;iBAC5G,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,wCAAwC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YACpH,iGAAiG;QACnG,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,IAAI,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,mEAAmE,CAAC,CAAC;IAC3G,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,0CAA0C,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;YACrG,aAAa,GAAG,YAAY,MAAM,CAAC,QAAQ,GAAG,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,aAAa,GAAG,WAAY,GAAa,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,+GAA+G,CAAC,CAAC;QAC7H,aAAa,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QACtB,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;QACjF,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE;QAC9C,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE;KAC3C,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;AACpE,CAAC"}
|
package/dist/store.d.ts
CHANGED
|
@@ -1,13 +1,29 @@
|
|
|
1
1
|
import type { Event, Scan } from "./core.js";
|
|
2
|
+
import type { ApprovalRequest, ApprovalDecision } from "./approvals.js";
|
|
3
|
+
export type ApprovalAudit = {
|
|
4
|
+
event: string;
|
|
5
|
+
request_id: string;
|
|
6
|
+
policy_id?: string;
|
|
7
|
+
user?: string;
|
|
8
|
+
agent: string;
|
|
9
|
+
decision?: string;
|
|
10
|
+
timestamp: string;
|
|
11
|
+
reason?: string;
|
|
12
|
+
};
|
|
2
13
|
export declare class Store {
|
|
3
14
|
readonly directory: string;
|
|
4
15
|
events: Event[];
|
|
5
16
|
scans: Scan[];
|
|
6
17
|
reviews: Record<string, boolean>;
|
|
18
|
+
approvals: ApprovalRequest[];
|
|
19
|
+
approvalAudit: ApprovalAudit[];
|
|
7
20
|
private queue;
|
|
8
21
|
readonly maxEvents = 10000;
|
|
9
22
|
constructor(directory: string);
|
|
10
23
|
init(): Promise<void>;
|
|
24
|
+
addApproval(request: ApprovalRequest): Promise<ApprovalRequest>;
|
|
25
|
+
auditApproval(event: ApprovalAudit): Promise<ApprovalAudit>;
|
|
26
|
+
resolveApproval(requestId: string, decision: ApprovalDecision, approver: string, apply: (request: ApprovalRequest, decision: ApprovalDecision, approver: string) => ApprovalRequest): Promise<ApprovalRequest>;
|
|
11
27
|
private serialized;
|
|
12
28
|
private replace;
|
|
13
29
|
addEvents(rows: Event[]): Promise<{
|
package/dist/store.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { chmod, mkdir, readFile, rename, stat, writeFile } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { detectSequenceFindings } from "./sequences.js";
|
|
4
|
+
import { approvalAuditEvent, validateApprovalRequest } from "./approvals.js";
|
|
4
5
|
export class Store {
|
|
5
6
|
directory;
|
|
6
7
|
events = [];
|
|
7
8
|
scans = [];
|
|
8
9
|
reviews = {};
|
|
10
|
+
approvals = [];
|
|
11
|
+
approvalAudit = [];
|
|
9
12
|
queue = Promise.resolve();
|
|
10
13
|
maxEvents = 10_000;
|
|
11
14
|
constructor(directory) {
|
|
@@ -14,7 +17,7 @@ export class Store {
|
|
|
14
17
|
async init() {
|
|
15
18
|
await mkdir(this.directory, { recursive: true, mode: 0o700 });
|
|
16
19
|
await chmod(this.directory, 0o700);
|
|
17
|
-
for (const name of ["events", "scans", "reviews"]) {
|
|
20
|
+
for (const name of ["events", "scans", "reviews", "approvals", "approval-audit"]) {
|
|
18
21
|
const file = join(this.directory, `${name}.ndjson`);
|
|
19
22
|
let contents = "";
|
|
20
23
|
try {
|
|
@@ -37,8 +40,15 @@ export class Store {
|
|
|
37
40
|
this.events.push(row);
|
|
38
41
|
else if (name === "scans")
|
|
39
42
|
this.scans.push(row);
|
|
40
|
-
else
|
|
43
|
+
else if (name === "reviews")
|
|
41
44
|
this.reviews[row.id] = row.reviewed;
|
|
45
|
+
else if (name === "approvals") {
|
|
46
|
+
if (!validateApprovalRequest(row))
|
|
47
|
+
throw new Error(`Invalid approval record at line ${i + 1}; refuse to load it.`);
|
|
48
|
+
this.approvals.push(row);
|
|
49
|
+
}
|
|
50
|
+
else
|
|
51
|
+
this.approvalAudit.push(row);
|
|
42
52
|
}
|
|
43
53
|
catch {
|
|
44
54
|
throw new Error(`Invalid ${name} store at line ${i + 1}; preserve and repair this file before restarting.`);
|
|
@@ -48,6 +58,13 @@ export class Store {
|
|
|
48
58
|
this.events = this.events.slice(-this.maxEvents);
|
|
49
59
|
this.scans = this.scans.slice(-500);
|
|
50
60
|
}
|
|
61
|
+
addApproval(request) { return this.serialized(async () => { if (!validateApprovalRequest(request))
|
|
62
|
+
throw new Error("Invalid approval request; refusing to persist it."); this.approvals = [...this.approvals.filter(r => r.request_id !== request.request_id), request].slice(-1000); await this.replace("approvals", this.approvals); const audit = { event: "approval_requested", request_id: request.request_id, policy_id: request.policy_id, user: request.user, agent: request.agent, timestamp: new Date().toISOString() }; this.approvalAudit = [...this.approvalAudit, audit].slice(-5000); await this.replace("approval-audit", this.approvalAudit); return request; }); }
|
|
63
|
+
auditApproval(event) { return this.serialized(async () => { this.approvalAudit = [...this.approvalAudit, event].slice(-5000); await this.replace("approval-audit", this.approvalAudit); return event; }); }
|
|
64
|
+
resolveApproval(requestId, decision, approver, apply) {
|
|
65
|
+
return this.serialized(async () => { const request = this.approvals.find(r => r.request_id === requestId); if (!request)
|
|
66
|
+
throw new Error("Approval request not found."); const next = apply(request, decision, approver); const event = approvalAuditEvent(request, next, approver); const timestamp = new Date().toISOString(); const audit = { event, request_id: requestId, policy_id: next.policy_id, user: next.user, agent: next.agent, decision: next.decision || decision, timestamp, reason: event === "approval_invalid" ? "Malformed or unsupported approval record." : undefined }; const records = event === "approved" ? [audit, { ...audit, event: "approval_approved", reason: "Legacy compatibility alias for approved." }] : [audit]; this.approvals = this.approvals.map(r => r.request_id === requestId ? next : r); await this.replace("approvals", this.approvals); this.approvalAudit = [...this.approvalAudit, ...records].slice(-5000); await this.replace("approval-audit", this.approvalAudit); return next; });
|
|
67
|
+
}
|
|
51
68
|
serialized(fn) {
|
|
52
69
|
const result = this.queue.then(fn);
|
|
53
70
|
this.queue = result.catch(() => { });
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,42 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-beam/beam",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.2.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
|
+
"keywords": [
|
|
6
|
+
"ai agent security",
|
|
7
|
+
"agent observability",
|
|
8
|
+
"claude code",
|
|
9
|
+
"claude code hooks",
|
|
10
|
+
"codex cli",
|
|
11
|
+
"cursor",
|
|
12
|
+
"mcp security",
|
|
13
|
+
"mcp scanner",
|
|
14
|
+
"model context protocol",
|
|
15
|
+
"prompt injection",
|
|
16
|
+
"llm security",
|
|
17
|
+
"secret redaction",
|
|
18
|
+
"risk scanning",
|
|
19
|
+
"heuristic detection",
|
|
20
|
+
"ai safety",
|
|
21
|
+
"cli"
|
|
22
|
+
],
|
|
23
|
+
"homepage": "https://agentbeam.com",
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/whyashthakker/beam-cli.git"
|
|
27
|
+
},
|
|
28
|
+
"bugs": {
|
|
29
|
+
"url": "https://github.com/whyashthakker/beam-cli/issues"
|
|
30
|
+
},
|
|
31
|
+
"author": "Yash Thakker",
|
|
5
32
|
"license": "AGPL-3.0-only",
|
|
6
33
|
"type": "module",
|
|
7
34
|
"bin": {
|
|
8
35
|
"beam": "dist/cli.js"
|
|
9
36
|
},
|
|
10
37
|
"files": [
|
|
11
|
-
"dist"
|
|
38
|
+
"dist",
|
|
39
|
+
"Skills"
|
|
12
40
|
],
|
|
13
41
|
"scripts": {
|
|
14
42
|
"build": "tsc -p tsconfig.json && chmod +x dist/cli.js",
|
|
@@ -17,8 +45,9 @@
|
|
|
17
45
|
"test": "node --no-warnings --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand",
|
|
18
46
|
"test:watch": "node --no-warnings --experimental-vm-modules node_modules/jest/bin/jest.js --watch",
|
|
19
47
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
20
|
-
"prepublishOnly": "npm run typecheck && npm test && npm run build",
|
|
21
|
-
"setup:global": "bash scripts/setup-global.sh"
|
|
48
|
+
"prepublishOnly": "npm run validate:skills && npm run typecheck && npm test && npm run build",
|
|
49
|
+
"setup:global": "bash scripts/setup-global.sh",
|
|
50
|
+
"validate:skills": "node Skills/scripts/validate-skills.mjs"
|
|
22
51
|
},
|
|
23
52
|
"publishConfig": {
|
|
24
53
|
"access": "public"
|