@agent-beam/beam 0.2.3 → 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.
Files changed (97) hide show
  1. package/README.md +6 -0
  2. package/Skills/README.md +64 -0
  3. package/Skills/agent-cost-abuse-review/SKILL.md +63 -0
  4. package/Skills/agent-incident-response/SKILL.md +109 -0
  5. package/Skills/agent-monitoring-review/SKILL.md +104 -0
  6. package/Skills/agent-network-segmentation/SKILL.md +70 -0
  7. package/Skills/agent-permissions-review/SKILL.md +107 -0
  8. package/Skills/agent-plugin-marketplace-review/SKILL.md +68 -0
  9. package/Skills/agent-transport-security/SKILL.md +108 -0
  10. package/Skills/agent-web-security/SKILL.md +103 -0
  11. package/Skills/agents/README.md +43 -0
  12. package/Skills/agents/claude/beam-ai-auditor.md +25 -0
  13. package/Skills/agents/claude/beam-appsec-auditor.md +25 -0
  14. package/Skills/agents/claude/beam-findings-reviewer.md +25 -0
  15. package/Skills/agents/claude/beam-incident-analyst.md +25 -0
  16. package/Skills/agents/claude/beam-infrastructure-auditor.md +25 -0
  17. package/Skills/agents/claude/beam-mcp-auditor.md +25 -0
  18. package/Skills/agents/claude/beam-skill-auditor.md +25 -0
  19. package/Skills/agents/codex/beam-ai-auditor.toml +23 -0
  20. package/Skills/agents/codex/beam-appsec-auditor.toml +23 -0
  21. package/Skills/agents/codex/beam-findings-reviewer.toml +23 -0
  22. package/Skills/agents/codex/beam-incident-analyst.toml +23 -0
  23. package/Skills/agents/codex/beam-infrastructure-auditor.toml +23 -0
  24. package/Skills/agents/codex/beam-mcp-auditor.toml +23 -0
  25. package/Skills/agents/codex/beam-skill-auditor.toml +23 -0
  26. package/Skills/ai-asset-scanner/SKILL.md +69 -0
  27. package/Skills/ai-security/SKILL.md +59 -0
  28. package/Skills/api-auth-security/SKILL.md +106 -0
  29. package/Skills/browser-agent-security/SKILL.md +77 -0
  30. package/Skills/cicd-agent-security/SKILL.md +108 -0
  31. package/Skills/cloud-agent-security/SKILL.md +101 -0
  32. package/Skills/container-sandbox-security/SKILL.md +101 -0
  33. package/Skills/data-retention-privacy-review/SKILL.md +69 -0
  34. package/Skills/dependency-supply-chain/SKILL.md +106 -0
  35. package/Skills/llm-output-handling/SKILL.md +66 -0
  36. package/Skills/manifest.json +147 -0
  37. package/Skills/mcp-scanner/SKILL.md +64 -0
  38. package/Skills/model-artifact-scanner/SKILL.md +108 -0
  39. package/Skills/multi-agent-trust-review/SKILL.md +71 -0
  40. package/Skills/prompt-injection-review/SKILL.md +102 -0
  41. package/Skills/rag-memory-security/SKILL.md +105 -0
  42. package/Skills/scripts/validate-skills.mjs +113 -0
  43. package/Skills/secrets-egress-review/SKILL.md +105 -0
  44. package/Skills/security-assessment/SKILL.md +73 -0
  45. package/Skills/security-reporting/SKILL.md +73 -0
  46. package/Skills/skill-scanner/SKILL.md +68 -0
  47. package/Skills/tool-schema-review/SKILL.md +66 -0
  48. package/Skills/training-data-security/SKILL.md +70 -0
  49. package/Skills/webhook-callback-security/SKILL.md +71 -0
  50. package/dist/agents.d.ts +2 -1
  51. package/dist/agents.js +24 -8
  52. package/dist/agents.js.map +1 -1
  53. package/dist/approvals.d.ts +65 -0
  54. package/dist/approvals.js +86 -0
  55. package/dist/approvals.js.map +1 -0
  56. package/dist/banner.js +7 -2
  57. package/dist/banner.js.map +1 -1
  58. package/dist/cli.js +71 -15
  59. package/dist/cli.js.map +1 -1
  60. package/dist/client.js +107 -3
  61. package/dist/client.js.map +1 -1
  62. package/dist/color.d.ts +5 -0
  63. package/dist/color.js +15 -0
  64. package/dist/color.js.map +1 -0
  65. package/dist/data-detectors.d.ts +18 -0
  66. package/dist/data-detectors.js +33 -0
  67. package/dist/data-detectors.js.map +1 -0
  68. package/dist/forward.js +7 -2
  69. package/dist/forward.js.map +1 -1
  70. package/dist/hook-adapters.js +13 -2
  71. package/dist/hook-adapters.js.map +1 -1
  72. package/dist/install.js +63 -8
  73. package/dist/install.js.map +1 -1
  74. package/dist/owl.d.ts +6 -0
  75. package/dist/owl.js +50 -0
  76. package/dist/owl.js.map +1 -0
  77. package/dist/policy.d.ts +66 -6
  78. package/dist/policy.js +132 -40
  79. package/dist/policy.js.map +1 -1
  80. package/dist/prompts.d.ts +1 -0
  81. package/dist/prompts.js +22 -6
  82. package/dist/prompts.js.map +1 -1
  83. package/dist/run.d.ts +1 -0
  84. package/dist/run.js +48 -0
  85. package/dist/run.js.map +1 -0
  86. package/dist/sandbox.d.ts +13 -0
  87. package/dist/sandbox.js +116 -0
  88. package/dist/sandbox.js.map +1 -0
  89. package/dist/setup.js +45 -5
  90. package/dist/setup.js.map +1 -1
  91. package/dist/shims.d.ts +13 -0
  92. package/dist/shims.js +85 -0
  93. package/dist/shims.js.map +1 -0
  94. package/dist/store.d.ts +16 -0
  95. package/dist/store.js +19 -2
  96. package/dist/store.js.map +1 -1
  97. package/package.json +35 -6
@@ -0,0 +1,86 @@
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ export class LocalApproverResolver {
3
+ users;
4
+ escalation;
5
+ constructor(users, escalation = {}) {
6
+ this.users = users;
7
+ this.escalation = escalation;
8
+ }
9
+ getManager(user) { return this.users[user]?.manager; }
10
+ getApprovers(request, policy) {
11
+ if (policy.approver)
12
+ return [policy.approver];
13
+ if (policy.level === "USER")
14
+ return request.user ? [request.user] : [];
15
+ if (policy.level === "MANAGER")
16
+ return request.user ? [this.getManager(request.user)].filter((x) => Boolean(x)) : [];
17
+ if (policy.level === "SECURITY")
18
+ return this.escalation.security || policy.securityApprover ? [policy.securityApprover || this.escalation.security].filter(Boolean) : [];
19
+ if (policy.level === "ADMIN")
20
+ return this.escalation.admin || policy.adminApprover ? [policy.adminApprover || this.escalation.admin].filter(Boolean) : [];
21
+ return [];
22
+ }
23
+ }
24
+ export function riskLevel(score) { return score >= 90 ? "CRITICAL" : score >= 70 ? "HIGH" : score >= 30 ? "MEDIUM" : "LOW"; }
25
+ export function approvalFingerprint(input) {
26
+ return createHash("sha256").update(JSON.stringify(input)).digest("hex");
27
+ }
28
+ export function createApprovalRequest(input, timeoutMs = 60_000) {
29
+ validateApprovalInput(input);
30
+ const request = { ...input, request_id: randomUUID(), created_at: new Date().toISOString(), expires_at: new Date(Date.now() + timeoutMs).toISOString(), status: "PENDING", fingerprint: "" };
31
+ request.fingerprint = approvalFingerprint(input);
32
+ return request;
33
+ }
34
+ function validateApprovalInput(input) {
35
+ if (input.mode !== "SINGLE" || !["USER", "MANAGER", "SECURITY", "ADMIN"].includes(input.level))
36
+ throw new Error("Invalid approval policy: only SINGLE approval with a known level is supported.");
37
+ if (!Number.isInteger(input.policy_version) || input.policy_version < 1 || !Number.isFinite(input.risk_score))
38
+ throw new Error("Invalid approval policy metadata.");
39
+ if (!Array.isArray(input.approver) || input.approver.length !== 1 || !input.approver[0])
40
+ throw new Error("Invalid approval request: exactly one approver is required.");
41
+ }
42
+ export function validateApprovalRequest(request) {
43
+ try {
44
+ validateApprovalInput(request);
45
+ return Boolean(request.request_id && request.created_at && request.expires_at && request.fingerprint && ["PENDING", "APPROVED", "DENIED", "EXPIRED"].includes(request.status));
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ export function approvalAuditEvent(previous, next, approver) {
52
+ if (!validateApprovalRequest(previous))
53
+ return "approval_invalid";
54
+ if (Date.parse(previous.expires_at) <= Date.now() || next.status === "EXPIRED")
55
+ return "approval_expired";
56
+ if (previous.level !== "USER" && previous.user && approver === previous.user)
57
+ return "self_approval_rejected";
58
+ if (!previous.approver.includes(approver))
59
+ return "approver_not_authorized";
60
+ if (next.status === "DENIED")
61
+ return "approval_denied";
62
+ return "approved";
63
+ }
64
+ export function formatApprovalRequest(request) {
65
+ const resource = request.path || request.url || request.command || request.tool;
66
+ return `[${request.level}] ${request.agent} ${request.tool}: ${resource} (risk ${request.risk_score}/100 ${request.risk_level})`;
67
+ }
68
+ export function applyApproval(request, decision, approver, now = Date.now()) {
69
+ if (!validateApprovalRequest(request))
70
+ return { ...request, status: "DENIED", decision: "DENY" };
71
+ if (Date.parse(request.expires_at) <= now || decision === "EXPIRE")
72
+ return { ...request, status: "EXPIRED", decision: "EXPIRE" };
73
+ if (request.level !== "USER" && approver === request.user)
74
+ return { ...request, status: "DENIED", decision: "DENY" };
75
+ if (!request.approver.includes(approver))
76
+ return { ...request, status: "DENIED", decision: "DENY" };
77
+ if (decision === "DENY")
78
+ return { ...request, status: "DENIED", decision };
79
+ if (request.status !== "PENDING")
80
+ return request;
81
+ return { ...request, status: "APPROVED", decision };
82
+ }
83
+ export function approvalStillValid(request, current, now = Date.now()) {
84
+ return request.status === "APPROVED" && Date.parse(request.expires_at) > now && request.fingerprint === approvalFingerprint(current);
85
+ }
86
+ //# sourceMappingURL=approvals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAgBrD,MAAM,OAAO,qBAAqB;IACH;IAAsD;IAAnF,YAA6B,KAAmC,EAAmB,aAAoD,EAAE;QAA5G,UAAK,GAAL,KAAK,CAA8B;QAAmB,eAAU,GAAV,UAAU,CAA4C;IAAG,CAAC;IAC7I,UAAU,CAAC,IAAY,IAAwB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,YAAY,CAAC,OAAwB,EAAE,MAAsB;QAC3D,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClI,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1K,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,KAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3J,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AACD,MAAM,UAAU,SAAS,CAAC,KAAa,IAAmC,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACpK,MAAM,UAAU,mBAAmB,CAAC,KAAmG;IACrI,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AACD,MAAM,UAAU,qBAAqB,CAAC,KAAmG,EAAE,SAAS,GAAG,MAAM;IAC3J,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,SAA2B,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAC/M,OAAO,CAAC,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAAC,OAAO,OAAO,CAAC;AACnE,CAAC;AACD,SAAS,qBAAqB,CAAC,KAA6F;IAC1H,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IAClM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACpK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;AAC1K,CAAC;AACD,MAAM,UAAU,uBAAuB,CAAC,OAAwB;IAC9D,IAAI,CAAC;QAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAAC,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AACjP,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,QAAyB,EAAE,IAAqB,EAAE,QAAgB;IACnG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;QAAE,OAAO,kBAAkB,CAAC;IAClE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,kBAAkB,CAAC;IAC1G,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,KAAK,QAAQ,CAAC,IAAI;QAAE,OAAO,wBAAwB,CAAC;IAC9G,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,yBAAyB,CAAC;IAC5E,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC;IACvD,OAAO,UAAU,CAAC;AACpB,CAAC;AACD,MAAM,UAAU,qBAAqB,CAAC,OAAwB;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAChF,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,UAAU,OAAO,CAAC,UAAU,QAAQ,OAAO,CAAC,UAAU,GAAG,CAAC;AACnI,CAAC;AACD,MAAM,UAAU,aAAa,CAAC,OAAwB,EAAE,QAA0B,EAAE,QAAgB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACpH,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACjG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACjI,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,CAAC,IAAI;QAAE,OAAO,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACrH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACpG,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC3E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACjD,OAAO,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AACtD,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,OAAwB,EAAE,OAAqG,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAClL,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,WAAW,KAAK,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACvI,CAAC"}
package/dist/banner.js CHANGED
@@ -2,9 +2,14 @@ const BANNER = String.raw ` __ ___ ____ __ _ ____ ____ ____ __ _ _
2
2
  / _\ / __)( __)( ( \(_ _)( _ \( __) / _\ ( \/ )
3
3
  / \( (_ \ ) _) / / )( ) _ ( ) _) / \/ \/ \
4
4
  \_/\_/ \___/(____)\_)__) (__) (____/(____)\_/\_/\_)(_/`;
5
+ import { indigo } from "./color.js";
5
6
  // Printed to stderr (never stdout) so it never corrupts JSON/plain output that other tools or
6
- // scripts pipe from commands like 'beam scan' or 'beam agent extract'.
7
+ // scripts pipe from commands like 'beam scan' or 'beam agent extract'. Scripts that shell out to
8
+ // several 'beam' subcommands in a row (e.g. scripts/setup-global.sh) set BEAM_NO_BANNER=1 so the
9
+ // art prints once instead of once per invocation.
7
10
  export function printBanner() {
8
- console.error(BANNER);
11
+ if (process.env.BEAM_NO_BANNER)
12
+ return;
13
+ console.error(indigo(BANNER));
9
14
  }
10
15
  //# sourceMappingURL=banner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;uDAG8B,CAAC;AAExD,8FAA8F;AAC9F,uEAAuE;AACvE,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;uDAG8B,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,8FAA8F;AAC9F,iGAAiG;AACjG,iGAAiG;AACjG,kDAAkD;AAClD,MAAM,UAAU,WAAW;IACzB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO;IACvC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAChC,CAAC"}
package/dist/cli.js CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import fs from "node:fs";
3
+ import path from "node:path";
3
4
  import { Command } from "commander";
4
5
  import { startServer } from "./serve.js";
5
6
  import { captureHook, extractPreview, extractSave, importEvents, readToken, reloadRemoteRules, scanFile } from "./client.js";
@@ -20,7 +21,36 @@ import { loadCustomRules } from "./custom-rules.js";
20
21
  import { sequenceRuleCatalog } from "./sequences.js";
21
22
  import { printBanner } from "./banner.js";
22
23
  import { runWithSudoFallback } from "./elevate.js";
23
- printBanner();
24
+ import { renderColumns, withSpinner } from "./prompts.js";
25
+ import { cyan, green } from "./color.js";
26
+ import { runAgent } from "./run.js";
27
+ import { AGENT_BINARIES, installShims, listShims, pathExportLine, shimDir, uninstallShims } from "./shims.js";
28
+ // Lets 'BEAM_API_URL=... beam connect' style overrides live in a .env file instead of the
29
+ // shell profile. Checked in cwd first (handy when developing from the repo), then in
30
+ // ~/.beam so overrides still apply when 'beam' is run globally from any directory.
31
+ for (const envPath of [path.join(process.cwd(), ".env"), path.join(getBeamHome(), ".env")]) {
32
+ try {
33
+ process.loadEnvFile(envPath);
34
+ }
35
+ catch {
36
+ // no .env file at this location -- fine, env vars set another way still apply
37
+ }
38
+ }
39
+ // The banner is a nice hello for a bare 'beam', 'beam --help', or 'beam setup', but printing the
40
+ // full ASCII art before every single subcommand (agent list, service status, ...) is just noise
41
+ // -- especially once several 'beam' calls run back-to-back from a script.
42
+ const argv = process.argv.slice(2);
43
+ const wantsBanner = argv.length === 0 || argv[0] === "help" || argv[0] === "setup" || argv.includes("--help") || argv.includes("-h");
44
+ if (wantsBanner)
45
+ printBanner();
46
+ // Handled before Commander ever sees argv: the wrapped agent (claude, codex, etc.) has its own
47
+ // flags (e.g. `--dangerously-skip-permissions`), which Commander's own option parser would try
48
+ // to interpret as beam's own options if `run` were a normal Commander subcommand. Everything
49
+ // after `run` is passed through untouched.
50
+ if (process.argv[2] === "run") {
51
+ const [command, ...rest] = process.argv.slice(3);
52
+ await runAgent(command, rest);
53
+ }
24
54
  const packageJson = JSON.parse(fs.readFileSync(new URL("../package.json", import.meta.url), "utf8"));
25
55
  const program = new Command()
26
56
  .name("beam")
@@ -102,11 +132,11 @@ program.command("enroll")
102
132
  if (existing)
103
133
  console.error(`Replacing the existing enrollment (device ${existing.deviceId}).`);
104
134
  const identity = await enrollDevice(options);
105
- console.log(`✔ Enrolled device ${identity.deviceId}\n` +
135
+ console.log(`${green("✔")} Enrolled device ${identity.deviceId}\n` +
106
136
  ` org: ${identity.orgId}\n` +
107
137
  ` api: ${identity.apiBase}\n` +
108
138
  ` identity: ${getIdentityPath()} (0600)\n\n` +
109
- `Next: beam agent install-all && beam start`);
139
+ cyan(`Next: beam agent install-all && beam start`));
110
140
  });
111
141
  program.command("whoami")
112
142
  .description("Show this device's enrollment, if any")
@@ -226,6 +256,29 @@ program.command("sync")
226
256
  throw new Error("Could not reach the Beam workspace. Check the network or 'beam whoami'.");
227
257
  console.log(result.status === "updated" ? `✔ Policy v${result.version} synced → ${result.path}` : "✔ Policy already up to date.");
228
258
  });
259
+ const shims = program.command("shims").description("Make agent CLIs (claude, codex, ...) sandboxed automatically, without typing 'beam run'");
260
+ shims.command("install")
261
+ .description("Install PATH shims for the given agents (default: all known agents found on this machine)")
262
+ .argument("[agents...]", `Agent ids: ${Object.keys(AGENT_BINARIES).join(", ")}`)
263
+ .action((agents) => {
264
+ const results = installShims(agents.length ? agents : undefined);
265
+ for (const r of results) {
266
+ console.log(r.status === "installed" ? `✔ ${r.binary} (${r.agentId}) — shimmed` : `— ${r.binary} (${r.agentId}) — not found on PATH, skipped`);
267
+ }
268
+ if (results.some(r => r.status === "installed")) {
269
+ console.log(`\nAdd this to your shell rc (~/.zshrc), then restart your shell:\n ${pathExportLine()}`);
270
+ console.log(`\nOnce that's in your PATH, typing e.g. 'claude' or 'codex' runs it through beam's sandbox automatically.`);
271
+ }
272
+ });
273
+ shims.command("list")
274
+ .description("Show which shims are currently installed")
275
+ .action(() => {
276
+ const installed = listShims();
277
+ console.log(installed.length ? installed.join("\n") : `No shims installed. Run 'beam shims install' first.\nShim directory: ${shimDir()}`);
278
+ });
279
+ shims.command("uninstall")
280
+ .description("Remove all installed shims")
281
+ .action(() => { uninstallShims(); console.log("✔ Removed all shims. (Remove the PATH line from your shell rc manually if you added it.)"); });
229
282
  program.command("token")
230
283
  .description("Print the Beam collector pairing token")
231
284
  .action(async () => console.log(await readToken()));
@@ -236,21 +289,20 @@ program.command("connect")
236
289
  if (existing)
237
290
  console.error(`Replacing the existing enrollment (device ${existing.deviceId}).`);
238
291
  const session = await startConnect();
239
- console.log(`Connect Beam CLI to Agentbeam:\n${session.url}`);
292
+ console.log(`Connect Beam CLI to Agentbeam:\n${cyan(session.url)}\n`);
240
293
  openBrowser(session.url);
241
- console.log("\nWaiting for you to finish in the browser…");
242
- const identity = await session.poll();
243
- console.log(`✔ Connected device ${identity.deviceId}\n` +
294
+ const identity = await withSpinner("Waiting for you to finish in the browser", () => session.poll());
295
+ console.log(`${green("✔")} Connected device ${identity.deviceId}\n` +
244
296
  ` org: ${identity.orgId}\n` +
245
297
  ` api: ${identity.apiBase}\n` +
246
298
  ` identity: ${getIdentityPath()} (0600)`);
247
- const enterprise = await installEnterprisePackage(identity);
299
+ const enterprise = await withSpinner("Checking for beam-enterprise", () => installEnterprisePackage(identity));
248
300
  if (enterprise.status === "installed")
249
- console.log("✔ beam-enterprise installed (OS-level monitoring enabled).");
301
+ console.log(`${green("✔")} beam-enterprise installed (OS-level monitoring enabled).`);
250
302
  else if (enterprise.status === "error")
251
303
  console.error(`✖ Could not install beam-enterprise: ${enterprise.message}`);
252
304
  // "not-entitled": org isn't on the enterprise plan -- nothing to print, this is the normal case.
253
- console.log("\nNext: beam agent install-all && beam start");
305
+ console.log(cyan("\nNext: beam agent install-all && beam start"));
254
306
  });
255
307
  program.command("import")
256
308
  .description("Send a normalized events file (JSON/NDJSON) to the collector")
@@ -271,11 +323,13 @@ agent.command("list")
271
323
  .alias("ls")
272
324
  .description("List supported agents and their hook payload verification status")
273
325
  .action(() => {
274
- for (const a of AGENTS) {
275
- const install = a.hookConfigPath ? "installable" : "config wiring not built yet";
276
- const payload = a.verifiedPayload ? "payload verified" : "payload best-effort";
277
- console.log(`${a.id}\t${a.name}\t${install}\t${payload}`);
278
- }
326
+ const rows = AGENTS.map(a => [
327
+ a.id,
328
+ a.name,
329
+ a.hookConfigPath ? "installable" : "config wiring not built yet",
330
+ a.verifiedPayload ? "payload verified" : "payload best-effort",
331
+ ]);
332
+ console.log(renderColumns(["id", "name", "status", "payload"], rows));
279
333
  });
280
334
  agent.command("install")
281
335
  .description("Wire beam's hook into an agent's own hook config file, without disturbing existing hooks")
@@ -320,6 +374,8 @@ agent.command("install-all")
320
374
  const acted = results.filter(r => r.status === "installed" || r.status === "already-installed");
321
375
  if (!acted.length)
322
376
  console.log("No supported agents detected on this machine. Run 'beam agent list' to see what's supported.");
377
+ if (acted.length && !(await readIdentity()))
378
+ console.log(cyan("\nTip: run 'beam connect' to link this device to your dashboard and see this activity."));
323
379
  });
324
380
  const rule = program.command("rule").description("Inspect the active detection rule catalog");
325
381
  rule.command("list")
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC7H,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3H,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,WAAW,EAAE,CAAC;AAEd,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAwB,CAAC;AAE5H,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,qEAAqE,CAAC;KAClF,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;KACrB,WAAW,CAAC,mIAAmI,CAAC;KAChJ,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEpB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;KACrB,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;IAC3C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5F,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,MAAM,CAAC,WAAW,CAAC,MAAM,SAAS,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzI,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM;QAAE,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,8DAA8D,CAAC;IACxI,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM;QACvC,CAAC,CAAC,4BAA4B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC1E,CAAC,CAAC,EAAE,CAAC;IACP,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,+DAA+D,MAAM,CAAC,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,gHAAgH,CAAC,CAAC;AACtP,CAAC,CAAC,CAAC;AAEL,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,uFAAuF,CAAC,CAAC;AAEhJ,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;KACvB,WAAW,CAAC,+EAA+E,CAAC;KAC5F,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,6CAA6C,MAAM,CAAC,QAAQ,gBAAgB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/G,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;KACzB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,wCAAwC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxJ,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,uCAAuC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAErJ,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;KACtB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,QAAQ,gBAAgB,MAAM,CAAC,OAAO,cAAc,MAAM,CAAC,OAAO,IAAI,SAAS,aAAa,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AACnJ,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;KACpB,WAAW,CAAC,+EAA+E,CAAC;KAC5F,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,GAAG,aAAa,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpF,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;KACtB,WAAW,CAAC,mDAAmD,CAAC;KAChE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC,MAAM,CAAC;IACxC,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QAAC,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;IAAC,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,GAAI,CAAW,CAAC,OAAO,mDAAmD,CAAC,CAAC;IAAC,CAAC;IAC1G,IAAI,CAAC;QAAC,MAAM,KAAK,CAAC,GAAG,MAAM,SAAS,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAAC,CAAC;IAC/E,MAAM,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;IAAC,CAAC;IAC3G,WAAW,CAAC,GAAG,MAAM,WAAW,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;KACtB,WAAW,CAAC,4EAA4E,CAAC;KACzF,cAAc,CAAC,eAAe,EAAE,2CAA2C,CAAC;KAC5E,MAAM,CAAC,aAAa,EAAE,wEAAwE,CAAC;KAC/F,MAAM,CAAC,KAAK,EAAE,OAAuC,EAAE,EAAE;IACxD,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,IAAI,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,6CAA6C,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;IAChG,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CACT,qBAAqB,QAAQ,CAAC,QAAQ,IAAI;QAC1C,eAAe,QAAQ,CAAC,KAAK,IAAI;QACjC,eAAe,QAAQ,CAAC,OAAO,IAAI;QACnC,eAAe,eAAe,EAAE,aAAa;QAC7C,4CAA4C,CAC7C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;KACtB,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAChG,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,QAAQ,aAAa,QAAQ,CAAC,KAAK,aAAa,QAAQ,CAAC,OAAO,aAAa,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,cAAc,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;AACrL,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;KACvB,WAAW,CAAC,mEAAmE,CAAC;KAChF,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;IAClH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CACT,WAAW,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI;QACtF,WAAW,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK;QACrD,WAAW,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI;QACtG,WAAW,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CACxC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;KACtB,WAAW,CAAC,8EAA8E,CAAC;KAC3F,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,qBAAqB,QAAQ,CAAC,OAAO,2BAA4B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACtG,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,aAAa,EAAE,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,yBAAyB,eAAe,EAAE,GAAG,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;KACzB,WAAW,CAAC,8KAA8K,CAAC;KAC3L,MAAM,CAAC,OAAO,EAAE,8BAA8B,CAAC;KAC/C,MAAM,CAAC,gBAAgB,EAAE,8EAA8E,CAAC;KACxG,MAAM,CAAC,KAAK,EAAE,OAAiD,EAAE,EAAE;IAClE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IAEnC,OAAO,CAAC,GAAG,CACT,qBAAqB;QACrB,kDAAkD;QAClD,iEAAiE;QACjE,OAAO,QAAQ,wDAAwD;QACvE,yDAAyD;QACzD,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iFAAiF,CAAC,CAC/G,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,gBAAgB,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,iCAAkC,CAAW,CAAC,OAAO,IAAI,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,YAAY;YAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpG,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,CAAC,OAAO,2BAA4B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,GAAG,CAAC,CAAC;IAEtC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,mBAAmB,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;QACvD,CAAC;QACD,uFAAuF;QACvF,sFAAsF;QACtF,4DAA4D;QAC5D,IAAI,CAAC;YACH,MAAM,mBAAmB,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,6DAA8D,CAAW,CAAC,OAAO,qDAAqD,CAAC,CAAC;QACtJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;KACpB,WAAW,CAAC,+EAA+E,CAAC;KAC5F,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACvH,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAChI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,OAAO,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;AACpI,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;KACrB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,CAAC;AAEtD,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;KACvB,WAAW,CAAC,6EAA6E,CAAC;KAC1F,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,IAAI,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,6CAA6C,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;IAEhG,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,mCAAmC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9D,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACtC,OAAO,CAAC,GAAG,CACT,sBAAsB,QAAQ,CAAC,QAAQ,IAAI;QAC3C,eAAe,QAAQ,CAAC,KAAK,IAAI;QACjC,eAAe,QAAQ,CAAC,OAAO,IAAI;QACnC,eAAe,eAAe,EAAE,SAAS,CAC1C,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;SAC5G,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,wCAAwC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACpH,iGAAiG;IAEjG,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;KACtB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,QAAQ,CAAC,QAAQ,EAAE,8CAA8C,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAElG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;KACpB,WAAW,CAAC,sDAAsD,CAAC;KACnE,QAAQ,CAAC,QAAQ,EAAE,+CAA+C,CAAC;KACnE,MAAM,CAAC,OAAO,EAAE,2DAA2D,CAAC;KAC5E,MAAM,CAAC,QAAQ,EAAE,+CAA+C,CAAC;KACjE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAA0C,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnJ,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;KACpB,WAAW,CAAC,qKAAqK,CAAC;KAClL,QAAQ,CAAC,gBAAgB,EAAE,kEAAkE,EAAE,aAAa,CAAC;KAC7G,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC;AAEjG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;KAClB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,kEAAkE,CAAC;KAC/E,MAAM,CAAC,GAAG,EAAE;IACX,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,6BAA6B,CAAC;QACjF,MAAM,OAAO,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;KACrB,WAAW,CAAC,0FAA0F,CAAC;KACvG,QAAQ,CAAC,SAAS,EAAE,wDAAwD,CAAC;KAC7E,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;IAChC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,2BAA2B,MAAM,CAAC,KAAK,SAAS,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,6BAA6B,MAAM,CAAC,KAAK,SAAS,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACzK,CAAC,CAAC,CAAC;AAEL,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;KACrB,WAAW,CAAC,mHAAmH,CAAC;KAChI,QAAQ,CAAC,SAAS,EAAE,0CAA0C,CAAC;KAC/D,MAAM,CAAC,QAAQ,EAAE,qFAAqF,CAAC;KACvG,MAAM,CAAC,aAAa,EAAE,gDAAgD,EAAE,KAAK,CAAC;KAC9E,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAA2C,EAAE,EAAE;IAC7E,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,OAAO,uCAAuC,CAAC,CAAC;IAC1I,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,KAAK,qBAAqB,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,kCAAkC,MAAM,CAAC,QAAQ,oBAAoB,MAAM,CAAC,UAAU,0CAA0C,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACrP,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,qBAAqB,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,mBAAmB,MAAM,CAAC,SAAS,uEAAuE,CAAC,CAAC;IAC7L,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;KACzB,WAAW,CAAC,kGAAkG,CAAC;KAC/G,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,OAAO,GAAG,MAAM,uBAAuB,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aACjF,IAAI,CAAC,CAAC,MAAM,KAAK,mBAAmB;YAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aACvF,IAAI,CAAC,CAAC,MAAM,KAAK,eAAe;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,oDAAoD,CAAC,CAAC;aAC/G,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACtE,wGAAwG;IAC1G,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC;IAChG,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;AACjI,CAAC,CAAC,CAAC;AAEL,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,2CAA2C,CAAC,CAAC;AAE9F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KACjB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,+FAA+F,CAAC;KAC5G,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;YAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnG,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,mBAAmB;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;IACnH,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,qBAAqB,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,aAAa,mBAAmB,CAAC,MAAM,iBAAiB,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC3M,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC;QAAC,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAAC,CAAC;AACrK,CAAC,CAAC,CAAC;AAEL,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;KACnB,WAAW,CAAC,6EAA6E,CAAC;KAC1F,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,MAAM,eAAe,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;IACzG,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC5C,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -8,6 +8,7 @@ import { forwardEvents } from "./forward.js";
8
8
  import { evaluate, readPolicy } from "./policy.js";
9
9
  import { extractAgent } from "./extract.js";
10
10
  import { loadCustomRules } from "./custom-rules.js";
11
+ import { redactSensitive } from "./data-detectors.js";
11
12
  export async function readToken() {
12
13
  if (process.env.BEAM_TOKEN)
13
14
  return process.env.BEAM_TOKEN;
@@ -100,7 +101,7 @@ export async function captureHook(sourceAgent = "claude-code") {
100
101
  try {
101
102
  const input = await readStdin(100_000);
102
103
  const raw = JSON.parse(input);
103
- const data = adaptHookPayload(sourceAgent, raw);
104
+ let data = adaptHookPayload(sourceAgent, raw);
104
105
  data.source_agent = sourceAgent;
105
106
  data.source_type = "hook";
106
107
  if (data.hook_event_name === "UserPromptSubmit" && typeof data.prompt === "string") {
@@ -113,17 +114,42 @@ export async function captureHook(sourceAgent = "claude-code") {
113
114
  // (the default) is a no-op and Beam stays observation-only.
114
115
  const toolInput = data.tool_input && typeof data.tool_input === "object"
115
116
  ? data.tool_input : {};
117
+ const command = String(data.command ?? toolInput.command ?? "");
116
118
  const decision = evaluate(await readPolicy().catch(() => null), {
117
119
  agent: sourceAgent,
118
120
  tool: String(data.tool_name ?? ""),
119
- command: String(data.command ?? toolInput.command ?? ""),
121
+ command,
122
+ args: Array.isArray(toolInput.args) ? toolInput.args.map(String) : command.split(/\s+/).slice(1),
123
+ path: String(toolInput.file_path ?? toolInput.path ?? data.file_path ?? ""),
124
+ url: String(toolInput.url ?? data.url ?? ""),
125
+ role: typeof data.role === "string" ? data.role : undefined,
126
+ user: typeof data.user === "string" ? data.user : undefined,
127
+ cwd: typeof data.cwd === "string" ? data.cwd : undefined,
128
+ repository: typeof data.repository === "string" ? data.repository : undefined,
129
+ branch: typeof data.branch === "string" ? data.branch : undefined,
130
+ environment: typeof data.environment === "string" ? data.environment : undefined,
131
+ time: typeof data.timestamp === "string" ? data.timestamp : undefined,
120
132
  });
133
+ data.policy_decision = { action: decision.action, rule: decision.rule, reason: decision.reason, risk_score: decision.riskScore, risk_level: decision.riskLevel, risk_factors: decision.riskFactors };
121
134
  let event = safeNormalize(data);
122
135
  if (decision.action === "deny") {
123
136
  if (event)
124
137
  event = { ...event, findings: [...event.findings, blockedFinding(decision.reason)] };
125
138
  emitDeny(sourceAgent, decision.reason ?? "Blocked by workspace policy.");
126
139
  }
140
+ else if (decision.action === "ask") {
141
+ emitAsk(sourceAgent, decision.reason ?? "This action requires approval.");
142
+ }
143
+ else if (decision.action === "redact") {
144
+ const transformed = redactPayload(data, decision);
145
+ if (!transformed.changed) {
146
+ emitAllow(sourceAgent, decision.reason);
147
+ }
148
+ else {
149
+ emitRedacted(sourceAgent, transformed.data, decision.reason);
150
+ data = transformed.data;
151
+ }
152
+ }
127
153
  else if (decision.action === "warn") {
128
154
  process.stderr.write(`\n⚠ Beam policy (advisory): ${decision.reason}\n`);
129
155
  }
@@ -150,6 +176,17 @@ export async function captureHook(sourceAgent = "claude-code") {
150
176
  }
151
177
  catch (error) {
152
178
  console.error(error instanceof Error ? error.message : String(error));
179
+ // If a security policy exists, a hook-side failure must not become an implicit allow. The
180
+ // vendor-specific response is still emitted where possible; exit 2 is the documented
181
+ // fail-closed signal for Claude/Cursor/Copilot and is also treated as failure by OpenCode's
182
+ // native plugin wrapper. Gemini's runtime is documented fail-open for hook failures, so its
183
+ // strongest available boundary is the denial JSON itself.
184
+ const policy = await readPolicy().catch(() => null);
185
+ if (policy && (policy.rules.mode === "enforce" || policy.errors?.length)) {
186
+ emitDeny(sourceAgent, "Beam security policy could not complete safely; execution is denied.");
187
+ if (["claude-code", "codex", "cursor", "copilot-cli", "opencode"].includes(sourceAgent))
188
+ process.exitCode = 2;
189
+ }
153
190
  }
154
191
  }
155
192
  function safeNormalize(data) {
@@ -163,6 +200,60 @@ function safeNormalize(data) {
163
200
  function blockedFinding(reason = "Blocked by workspace policy.") {
164
201
  return { id: "policy.blocked", title: "Blocked by workspace policy", severity: "high", explanation: reason, evidence: "" };
165
202
  }
203
+ function redactPayload(data, decision) {
204
+ const copy = structuredClone(data);
205
+ let changed = false;
206
+ const redactValue = (value) => {
207
+ if (typeof value === "string") {
208
+ const result = redactSensitive(value, decision.customDetectors);
209
+ changed ||= result.text !== value;
210
+ return result.text;
211
+ }
212
+ if (Array.isArray(value))
213
+ return value.map(redactValue);
214
+ if (value && typeof value === "object")
215
+ return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, redactValue(v)]));
216
+ return value;
217
+ };
218
+ return { data: redactValue(copy), changed };
219
+ }
220
+ function emitAsk(agent, reason) {
221
+ if (agent === "claude-code" || agent === "codex") {
222
+ process.stdout.write(JSON.stringify({ hookSpecificOutput: { hookEventName: "PreToolUse", permissionDecision: "ask", permissionDecisionReason: `Beam: ${reason}` } }));
223
+ }
224
+ else if (agent === "cursor" || agent === "copilot-cli") {
225
+ // These hook contracts do not provide a reliable interactive approval channel in Beam's
226
+ // command-hook path. Fail closed rather than silently allowing an ASK decision.
227
+ emitDeny(agent, `${reason} Interactive approval is unavailable for this agent hook.`);
228
+ }
229
+ else if (agent === "gemini") {
230
+ emitDeny(agent, `${reason} Interactive approval is unavailable for Gemini pre_tool_execution.`);
231
+ }
232
+ else {
233
+ emitDeny(agent, reason);
234
+ }
235
+ }
236
+ function emitRedacted(agent, data, reason) {
237
+ const input = data.tool_input;
238
+ if (agent === "claude-code" || agent === "codex")
239
+ process.stdout.write(JSON.stringify({ hookSpecificOutput: { hookEventName: "PreToolUse", permissionDecision: "allow", permissionDecisionReason: `Beam: ${reason ?? "Sensitive data redacted."}`, updatedInput: input } }));
240
+ else if (agent === "cursor")
241
+ process.stdout.write(JSON.stringify({ permission: "allow", updated_input: input }));
242
+ else if (agent === "copilot-cli")
243
+ process.stdout.write(JSON.stringify({ permissionDecision: "allow", updatedInput: input }));
244
+ else
245
+ emitDeny(agent, "Beam cannot safely return transformed input through this hook contract.");
246
+ }
247
+ function emitAllow(agent, reason) {
248
+ if (agent === "claude-code" || agent === "codex")
249
+ process.stdout.write(JSON.stringify({ hookSpecificOutput: { hookEventName: "PreToolUse", permissionDecision: "allow", permissionDecisionReason: reason } }));
250
+ else if (agent === "cursor")
251
+ process.stdout.write(JSON.stringify({ permission: "allow" }));
252
+ else if (agent === "copilot-cli")
253
+ process.stdout.write(JSON.stringify({ permissionDecision: "allow", permissionDecisionReason: reason }));
254
+ else if (agent === "gemini")
255
+ process.stdout.write(JSON.stringify({ decision: "allow" }));
256
+ }
166
257
  // Claude Code / Codex PreToolUse contract: a JSON decision on stdout denies the tool call.
167
258
  // Other agents get a stderr note only (their block contracts differ and aren't verified).
168
259
  function emitDeny(agent, reason) {
@@ -175,8 +266,21 @@ function emitDeny(agent, reason) {
175
266
  },
176
267
  }));
177
268
  }
269
+ else if (agent === "cursor") {
270
+ process.stdout.write(JSON.stringify({ permission: "deny", user_message: `Beam: ${reason}`, agent_message: `Beam: ${reason}` }));
271
+ }
272
+ else if (agent === "copilot-cli") {
273
+ process.stdout.write(JSON.stringify({ permissionDecision: "deny", permissionDecisionReason: `Beam: ${reason}` }));
274
+ }
275
+ else if (agent === "gemini") {
276
+ process.stdout.write(JSON.stringify({ decision: "deny", reason: `Beam: ${reason}` }));
277
+ }
278
+ else if (agent === "opencode") {
279
+ process.stdout.write(JSON.stringify({ decision: "deny", reason: `Beam: ${reason}` }));
280
+ }
178
281
  else {
179
- process.stderr.write(`\n✖ Beam policy would block this (${agent} enforcement not wired): ${reason}\n`);
282
+ // OpenCode has no installed hook/plugin path in this repository. A message cannot block it.
283
+ process.stderr.write(`\n✖ Beam cannot block this agent (${agent}): no verified enforcement adapter is installed.\n`);
180
284
  }
181
285
  }
182
286
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const indigo: (text: string) => string;
2
+ export declare const green: (text: string) => string;
3
+ export declare const red: (text: string) => string;
4
+ export declare const dim: (text: string) => string;
5
+ export declare const cyan: (text: string) => string;
package/dist/color.js ADDED
@@ -0,0 +1,15 @@
1
+ // Minimal ANSI color helpers -- no dependency pulled in just for this. Each helper is bound to
2
+ // the stream it's meant to wrap (banner/errors go to stderr, everything else to stdout) so color
3
+ // is only ever applied when *that* stream is a TTY, and never when NO_COLOR is set or output is
4
+ // piped/redirected (scripts, `| cat`, CI logs).
5
+ function wrap(code, stream) {
6
+ return (text) => (!process.env.NO_COLOR && stream.isTTY ? `\x1b[${code}m${text}\x1b[0m` : text);
7
+ }
8
+ export const indigo = wrap("38;5;99", process.stderr);
9
+ export const green = wrap("32", process.stdout);
10
+ export const red = wrap("31", process.stdout);
11
+ export const dim = wrap("2", process.stdout);
12
+ // A lighter blue than indigo, for tips/suggestions ("run 'beam connect'") that should stand out
13
+ // from plain text without competing with the green/red step results around them.
14
+ export const cyan = wrap("38;5;74", process.stdout);
15
+ //# sourceMappingURL=color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../src/color.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,iGAAiG;AACjG,gGAAgG;AAChG,gDAAgD;AAChD,SAAS,IAAI,CAAC,IAAY,EAAE,MAA0B;IACpD,OAAO,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7C,gGAAgG;AAChG,iFAAiF;AACjF,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ export type DetectorKind = "EMAIL" | "PHONE" | "SECRET" | "API_KEY" | "PASSWORD" | "PRIVATE_KEY" | "CUSTOM";
2
+ export interface DataFinding {
3
+ kind: DetectorKind;
4
+ confidence: number;
5
+ start: number;
6
+ end: number;
7
+ replacement: string;
8
+ }
9
+ export interface CustomDetector {
10
+ name: string;
11
+ pattern: string;
12
+ replacement: string;
13
+ }
14
+ export declare function detectSensitive(text: string, custom?: CustomDetector[]): DataFinding[];
15
+ export declare function redactSensitive(text: string, custom?: CustomDetector[]): {
16
+ text: string;
17
+ findings: DataFinding[];
18
+ };