@repobit/dex-system-design 0.24.4 → 0.24.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/package.json +4 -4
- package/src/components/accordion/accordion.css.js +40 -0
- package/src/components/accordion/accordion.js +31 -0
- package/src/components/accordion/accordion.stories.js +147 -4
- package/src/components/agent-endpoints/agent-endpoints.css.js +92 -0
- package/src/components/agent-endpoints/agent-endpoints.js +86 -0
- package/src/components/agent-endpoints/agent-endpoints.stories.js +148 -0
- package/src/components/ai-guardian-demo.stories.js +669 -0
- package/src/components/awards/awards-flex.css.js +169 -0
- package/src/components/awards/awards-flex.js +269 -0
- package/src/components/awards/awards-flex.stories.js +657 -0
- package/src/components/bento-grid/bento-grid.css.js +57 -0
- package/src/components/bento-grid/bento-grid.js +186 -0
- package/src/components/bento-grid/bento-grid.stories.js +440 -0
- package/src/components/bento-grid/bento-item.css.js +79 -0
- package/src/components/bento-grid/bento-item.js +54 -0
- package/src/components/button/button.css.js +26 -0
- package/src/components/button/button.js +8 -0
- package/src/components/button/button.stories.js +12 -0
- package/src/components/comparison-panel/comparison-panel.css.js +104 -0
- package/src/components/comparison-panel/comparison-panel.js +100 -0
- package/src/components/comparison-panel/comparison-panel.stories.js +223 -0
- package/src/components/compatibility-table/compatibility-table.css.js +243 -0
- package/src/components/compatibility-table/compatibility-table.js +123 -0
- package/src/components/compatibility-table/compatibility-table.stories.js +189 -0
- package/src/components/cta-banner/cta-banner.css.js +60 -0
- package/src/components/cta-banner/cta-banner.js +63 -0
- package/src/components/dropdown/dropdown.css.js +1 -1
- package/src/components/footer/footer.css.js +0 -1
- package/src/components/header/header-code.css.js +125 -0
- package/src/components/header/header-code.js +69 -0
- package/src/components/header/header-code.stories.js +226 -0
- package/src/components/heading/heading.css.js +3 -0
- package/src/components/icons/bd-ai-icon.js +27 -0
- package/src/components/list/list-item/list-item.css.js +3 -3
- package/src/components/list/list-item/list-item.js +10 -4
- package/src/components/overview/overview.css.js +121 -0
- package/src/components/overview/overview.js +63 -0
- package/src/components/overview/overview.stories.js +193 -0
- package/src/components/page-switcher/page-switcher.css.js +100 -0
- package/src/components/page-switcher/page-switcher.js +42 -0
- package/src/components/paragraph/paragraph.js +7 -3
- package/src/components/process-steps/process-steps.css.js +95 -0
- package/src/components/process-steps/process-steps.js +72 -0
- package/src/components/process-steps/process-steps.stories.js +144 -0
- package/src/components/quick-answer/quick-answer.css.js +67 -0
- package/src/components/quick-answer/quick-answer.js +59 -0
- package/src/components/quick-answer/quick-answer.stories.js +160 -0
- package/src/components/terminal/terminal-cursor.js +49 -0
- package/src/components/terminal/terminal-message.css.js +161 -0
- package/src/components/terminal/terminal-message.js +169 -0
- package/src/components/terminal/terminal-message.stories.js +321 -0
- package/src/components/trust-panel/trust-panel.css.js +167 -0
- package/src/components/trust-panel/trust-panel.js +116 -0
- package/src/components/trust-panel/trust-panel.stories.js +234 -0
- package/src/tokens/tokens.css +1 -1
- package/src/components/tabsComponent/tabsComponent.css.js +0 -267
- package/src/components/tabsComponent/tabsComponent.js +0 -193
- package/src/components/tabsComponent/tabsComponent.stories.js +0 -134
- package/src/components/tabsComponentFamily/tabsComponentFamily.css.js +0 -181
- package/src/components/tabsComponentFamily/tabsComponentFamily.js +0 -180
- package/src/components/tabsComponentFamily/tabsComponentFamily.stories.js +0 -319
|
@@ -0,0 +1,669 @@
|
|
|
1
|
+
import { LitElement, html } from "lit";
|
|
2
|
+
import "./accordion/accordion-bg.js";
|
|
3
|
+
import "./accordion/accordion.js";
|
|
4
|
+
import "./agent-endpoints/agent-endpoints.js";
|
|
5
|
+
import "./anchor/anchor-nav.js";
|
|
6
|
+
import "./bento-grid/bento-grid.js";
|
|
7
|
+
import "./bento-grid/bento-item.js";
|
|
8
|
+
import "./button/button.js";
|
|
9
|
+
import "./comparison-panel/comparison-panel.js";
|
|
10
|
+
import "./compatibility-table/compatibility-table.js";
|
|
11
|
+
import "./cta-banner/cta-banner.js";
|
|
12
|
+
import "./footer/footer.js";
|
|
13
|
+
import "./header/header-code.js";
|
|
14
|
+
import "./icons/analysis-icon.js";
|
|
15
|
+
import "./icons/arrow-up-icon.js";
|
|
16
|
+
import "./icons/av-comparatives-icon.js";
|
|
17
|
+
import "./icons/best-brands-icon.js";
|
|
18
|
+
import "./icons/close-icon.js";
|
|
19
|
+
import "./icons/family-icon.js";
|
|
20
|
+
import "./icons/globe-icon.js";
|
|
21
|
+
import "./icons/guide-icon.js";
|
|
22
|
+
import "./icons/individual-icon.js";
|
|
23
|
+
import "./icons/laurel-icon.js";
|
|
24
|
+
import "./icons/machine-learning-icon.js";
|
|
25
|
+
import "./icons/pc-mag-icon.js";
|
|
26
|
+
import "./icons/top-product-icon.js";
|
|
27
|
+
import "./overview/overview.js";
|
|
28
|
+
import "./page-switcher/page-switcher.js";
|
|
29
|
+
import "./process-steps/process-steps.js";
|
|
30
|
+
import "./quick-answer/quick-answer.js";
|
|
31
|
+
import "./terminal/terminal-message.js";
|
|
32
|
+
import "./trust-panel/trust-panel.js";
|
|
33
|
+
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
// Conținutul (fără page-switcher, fără footer — alea sunt comune,
|
|
36
|
+
// randate o singură dată de wrapper-ul de mai jos) pentru fiecare "pagină".
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
|
|
39
|
+
function aiGuardianBody() {
|
|
40
|
+
return html`
|
|
41
|
+
<bd-header-code
|
|
42
|
+
eyebrow="Security for autonomous AI agents"
|
|
43
|
+
title="Bitdefender AI Guardian"
|
|
44
|
+
description="A security layer between your AI agents and the actions they take — policies, guardrails, and monitoring that let agents run safely."
|
|
45
|
+
terminal-caption="AI Guardian CLI · first-run setup"
|
|
46
|
+
>
|
|
47
|
+
<bd-button-link
|
|
48
|
+
slot="primary-button"
|
|
49
|
+
label="Download BETA Today"
|
|
50
|
+
kind="primary"
|
|
51
|
+
size="md"
|
|
52
|
+
font-size="18px"
|
|
53
|
+
font-weight="600"
|
|
54
|
+
>Download BETA Today</bd-button-link>
|
|
55
|
+
|
|
56
|
+
<bd-button-link
|
|
57
|
+
slot="secondary-button"
|
|
58
|
+
label="See how it works"
|
|
59
|
+
kind="primary-outline"
|
|
60
|
+
size="md"
|
|
61
|
+
font-size="18px"
|
|
62
|
+
font-weight="600"
|
|
63
|
+
>See how it works</bd-button-link>
|
|
64
|
+
|
|
65
|
+
<bd-terminal-message
|
|
66
|
+
slot="terminal-content"
|
|
67
|
+
show-titlebar
|
|
68
|
+
panel-label="Welcome"
|
|
69
|
+
icon="👋"
|
|
70
|
+
greeting="Hi, I'm AI Guardian."
|
|
71
|
+
intro="I keep an eye on what your AI assistant can access and do:"
|
|
72
|
+
.items=${["which tools it can use", "which credentials to watch", "which MCP servers to trust"]}
|
|
73
|
+
footer-bold="Let's get started."
|
|
74
|
+
footer="It only takes a minute, and nothing changes until you confirm it."
|
|
75
|
+
show-cursor
|
|
76
|
+
hint="[Enter] to continue · [esc] to cancel"
|
|
77
|
+
></bd-terminal-message>
|
|
78
|
+
</bd-header-code>
|
|
79
|
+
|
|
80
|
+
<section>
|
|
81
|
+
<div style="max-width: 1200px; margin: 0 auto;">
|
|
82
|
+
<bd-quick-answer
|
|
83
|
+
label="Quick answer"
|
|
84
|
+
text="Bitdefender AI Guardian is a security layer for autonomous AI agents on macOS. It inspects what an agent does — tool calls, file access, prompts, skills — and returns a verdict of allowed, flagged or blocked against a policy baseline you set. It targets prompt injection, MCP tool poisoning, credential leakage and unauthorised actions. Currently in open BETA."
|
|
85
|
+
.items=${[
|
|
86
|
+
{ label: "PLATFORM", value: "macOS" },
|
|
87
|
+
{ label: "STATUS", value: "Open BETA" },
|
|
88
|
+
{ label: "MADE BY", value: "Bitdefender" }
|
|
89
|
+
]}
|
|
90
|
+
></bd-quick-answer>
|
|
91
|
+
</div>
|
|
92
|
+
</section>
|
|
93
|
+
|
|
94
|
+
<div style="max-width: 1200px; margin: 0 auto;">
|
|
95
|
+
<bd-anchor-nav
|
|
96
|
+
aria-label="Page sections"
|
|
97
|
+
cta-label="Download BETA Today"
|
|
98
|
+
cta-href="#download"
|
|
99
|
+
.items=${[
|
|
100
|
+
{ title: "Overview" },
|
|
101
|
+
{ title: "Compatibility" },
|
|
102
|
+
{ title: "Protections" },
|
|
103
|
+
{ title: "How it works" },
|
|
104
|
+
{ title: "Outcomes" },
|
|
105
|
+
{ title: "Risk mapping" },
|
|
106
|
+
{ title: "How it runs" },
|
|
107
|
+
{ title: "FAQ" },
|
|
108
|
+
{ title: "Why trust it" }
|
|
109
|
+
]}
|
|
110
|
+
style="margin-bottom: 0;"
|
|
111
|
+
>
|
|
112
|
+
</bd-anchor-nav>
|
|
113
|
+
|
|
114
|
+
<section id="anchor-1-section" style="margin-top: 0; padding-top: 0;">
|
|
115
|
+
<div style="padding: 48px 24px 24px;">
|
|
116
|
+
<bd-overview
|
|
117
|
+
title="What is AI Guardian?"
|
|
118
|
+
description="AI Guardian is a Bitdefender security product that helps protect people and organisations from the risks of autonomous AI agents — prompt injection, unsafe tool use, data leakage, and unauthorised actions. It adds a baseline security model of policies, permissions, and auditing, guardrails for tool execution, and monitoring and response workflows."
|
|
119
|
+
.facts=${[
|
|
120
|
+
{ label: "CATEGORY", value: "AI agent security" },
|
|
121
|
+
{ label: "PLATFORM", value: "macOS (initial)" },
|
|
122
|
+
{ label: "RUNS AS", value: "Background service" },
|
|
123
|
+
{ label: "VERDICTS", value: "Allowed / Flagged / Blocked" }
|
|
124
|
+
]}
|
|
125
|
+
></bd-overview>
|
|
126
|
+
</div>
|
|
127
|
+
</section>
|
|
128
|
+
|
|
129
|
+
<section id="anchor-2-section">
|
|
130
|
+
<div style="padding: 24px;">
|
|
131
|
+
<bd-compatibility-table
|
|
132
|
+
title="What does AI Guardian work with?"
|
|
133
|
+
description="AI Guardian attaches to the agent runtime on macOS, so coverage follows what an agent does on the machine rather than which vendor built it."
|
|
134
|
+
.rows=${[
|
|
135
|
+
{ environment: "MCP clients and servers", coverage: "Supported in BETA", notes: "Tool inspection at the Model Context Protocol layer" },
|
|
136
|
+
{ environment: "Agent skills and plugins", coverage: "Supported in BETA", notes: "Skill vetting before a skill executes" },
|
|
137
|
+
{ environment: "CLI coding agents", coverage: "Supported in BETA", notes: "Claude Code 2.1.121+ and OpenClaw 2026.6.6+" },
|
|
138
|
+
{ environment: "IDE-embedded agents", coverage: "Coming soon", notes: "Editor assistants with tool access" },
|
|
139
|
+
{ environment: "macOS", coverage: "Supported in BETA", notes: "Initial platform" },
|
|
140
|
+
{ environment: "Windows and Linux", coverage: "Planned", notes: "Not available in BETA" }
|
|
141
|
+
]}
|
|
142
|
+
></bd-compatibility-table>
|
|
143
|
+
</div>
|
|
144
|
+
</section>
|
|
145
|
+
|
|
146
|
+
<section id="anchor-3-section">
|
|
147
|
+
<div style="padding: 24px 24px 48px;">
|
|
148
|
+
<bd-bento-grid
|
|
149
|
+
eyebrow="Protection"
|
|
150
|
+
title="What does AI Guardian protect against?"
|
|
151
|
+
description="AI Guardian watches how an AI agent behaves and secures six of the highest-risk areas in agentic workflows. Each protection returns a verdict in real time."
|
|
152
|
+
>
|
|
153
|
+
<bd-bento-item title="MCP tool protection">
|
|
154
|
+
<bd-individual-icon slot="icon" width="32" height="32" color="#006DFF"></bd-individual-icon>
|
|
155
|
+
<bd-p>Detects and blocks malicious MCP tools (tool poisoning) before an agent can call them.</bd-p>
|
|
156
|
+
</bd-bento-item>
|
|
157
|
+
<bd-bento-item title="Skill vetting">
|
|
158
|
+
<bd-globe-icon slot="icon" width="32" height="32" color="#006DFF"></bd-globe-icon>
|
|
159
|
+
<bd-p>Scans and validates agent skills before they run, so unreviewed skills don't execute silently.</bd-p>
|
|
160
|
+
</bd-bento-item>
|
|
161
|
+
<bd-bento-item title="Prompt injection detection">
|
|
162
|
+
<bd-machine-learning-icon slot="icon" width="32" height="32" color="#006DFF"></bd-machine-learning-icon>
|
|
163
|
+
<bd-p>Catches attempts to hijack an agent through crafted inputs and hidden instructions.</bd-p>
|
|
164
|
+
</bd-bento-item>
|
|
165
|
+
<bd-bento-item title="Tool-call monitoring">
|
|
166
|
+
<bd-analysis-icon slot="icon" width="32" height="32" color="#006DFF"></bd-analysis-icon>
|
|
167
|
+
<bd-p>Watches every tool an agent invokes in real time, building an auditable record of actions.</bd-p>
|
|
168
|
+
</bd-bento-item>
|
|
169
|
+
<bd-bento-item title="Credential leak detection">
|
|
170
|
+
<bd-family-icon slot="icon" width="32" height="32" color="#006DFF"></bd-family-icon>
|
|
171
|
+
<bd-p>Detects exposure of secrets such as API keys before they leave the machine.</bd-p>
|
|
172
|
+
</bd-bento-item>
|
|
173
|
+
<bd-bento-item title="Sensitive file protection">
|
|
174
|
+
<bd-arrow-up-icon slot="icon" width="32" height="32" color="#006DFF"></bd-arrow-up-icon>
|
|
175
|
+
<bd-p>Blocks unauthorised access to sensitive files such as SSH keys and system credentials.</bd-p>
|
|
176
|
+
</bd-bento-item>
|
|
177
|
+
</bd-bento-grid>
|
|
178
|
+
</div>
|
|
179
|
+
|
|
180
|
+
<div style="padding: 0 24px 48px;">
|
|
181
|
+
<bd-comparison-panel
|
|
182
|
+
title="What it is, and what it isn't"
|
|
183
|
+
description="AI Guardian secures the actions an AI agent takes. It is not a traditional antivirus, a network VPN, or a chatbot content filter."
|
|
184
|
+
positive-title="AI Guardian is"
|
|
185
|
+
negative-title="AI Guardian is not"
|
|
186
|
+
.positiveItems=${[
|
|
187
|
+
"A security layer for autonomous AI agents.",
|
|
188
|
+
"A baseline model of policies, permissions, and auditing.",
|
|
189
|
+
"Guardrails and monitoring around tool execution.",
|
|
190
|
+
"Focused on agent actions, tool calls, and data access.",
|
|
191
|
+
"Built for macOS first, with more platforms planned."
|
|
192
|
+
]}
|
|
193
|
+
.negativeItems=${[
|
|
194
|
+
"A traditional endpoint antivirus.",
|
|
195
|
+
"A network firewall or VPN.",
|
|
196
|
+
"A replacement for your agent framework or LLM.",
|
|
197
|
+
"A content-quality filter for chatbot text."
|
|
198
|
+
]}
|
|
199
|
+
></bd-comparison-panel>
|
|
200
|
+
</div>
|
|
201
|
+
</section>
|
|
202
|
+
|
|
203
|
+
<section id="anchor-4-section">
|
|
204
|
+
<bd-process-steps
|
|
205
|
+
title="Policy, guardrail, verdict"
|
|
206
|
+
description="AI Guardian works in three stages: you set a policy baseline, it enforces guardrails at execution, and it monitors and responds to what happens."
|
|
207
|
+
.steps=${[
|
|
208
|
+
{
|
|
209
|
+
icon : html`<bd-guide-icon width="40" height="40" color="#60a5fa"></bd-guide-icon>`,
|
|
210
|
+
title : "Set a policy baseline",
|
|
211
|
+
description: "Define what agents are allowed to do — permissions, policies, and auditing for tools, files, and actions."
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
icon : html`<bd-close-icon width="40" height="40" color="#60a5fa"></bd-close-icon>`,
|
|
215
|
+
title : "Guardrails at execution",
|
|
216
|
+
description: "Every tool call and action is checked against policy in real time and gets a verdict: allowed, flagged, or blocked."
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
icon : html`<bd-globe-icon width="40" height="40" color="#60a5fa"></bd-globe-icon>`,
|
|
220
|
+
title : "Monitor and respond",
|
|
221
|
+
description: "Security events feed monitoring and response workflows, so teams can review what agents did and why."
|
|
222
|
+
}
|
|
223
|
+
]}
|
|
224
|
+
></bd-process-steps>
|
|
225
|
+
</section>
|
|
226
|
+
|
|
227
|
+
<section id="anchor-5-section">
|
|
228
|
+
<div style="padding: 24px 24px 48px;">
|
|
229
|
+
<bd-compatibility-table
|
|
230
|
+
variant="outcome"
|
|
231
|
+
title="The same agent, with and without AI Guardian"
|
|
232
|
+
.rows=${[
|
|
233
|
+
{ event: "Prompt injection", without: "Agent may follow the injected instruction", with: "Flagged or blocked before it acts" },
|
|
234
|
+
{ event: "Malicious MCP tool", without: "Tool runs and can steer the agent", with: "Blocked before the agent calls it" },
|
|
235
|
+
{ event: "API key in a prompt", without: "Secret can leave the machine", with: "Credential exposure is detected" },
|
|
236
|
+
{ event: "Access to ~/.ssh/id_rsa", without: "Sensitive files readable by the agent", with: "Unauthorised access is blocked" },
|
|
237
|
+
{ event: "Unreviewed skill", without: "Runs without inspection", with: "Vetted before it runs" }
|
|
238
|
+
]}
|
|
239
|
+
></bd-compatibility-table>
|
|
240
|
+
</div>
|
|
241
|
+
</section>
|
|
242
|
+
|
|
243
|
+
<section id="anchor-6-section">
|
|
244
|
+
<div style="padding: 24px 24px 48px;">
|
|
245
|
+
<bd-h as="h2" font-weight="700" style="margin: 0 0 8px;">Coverage against agentic AI risk categories</bd-h>
|
|
246
|
+
<bd-p kind="regular" style="color: var(--color-neutral-700); margin: 0 0 24px;">
|
|
247
|
+
How AI Guardian maps to the risk categories the industry is standardising on for agentic applications.
|
|
248
|
+
</bd-p>
|
|
249
|
+
|
|
250
|
+
<bd-accordion-item chevron title="Show the full mapping (6 categories)">
|
|
251
|
+
<bd-compatibility-table
|
|
252
|
+
variant="risk"
|
|
253
|
+
.rows=${[
|
|
254
|
+
{ category: "Prompt injection", coverage: "Inspects agent inputs and actions; returns allowed, flagged or blocked" },
|
|
255
|
+
{ category: "Tool and MCP misuse", coverage: "Detects and blocks malicious or tampered MCP tools before invocation" },
|
|
256
|
+
{ category: "Excessive or unscoped permissions", coverage: "Policy baseline defines what agents may do with tools, files and actions" },
|
|
257
|
+
{ category: "Sensitive data exposure", coverage: "Detects credential and secret exposure before it leaves the machine" },
|
|
258
|
+
{ category: "Unvetted extensions and skills", coverage: "Scans and validates skills before they run" },
|
|
259
|
+
{ category: "Unmonitored agent activity", coverage: "Real-time tool-call monitoring with an auditable record" }
|
|
260
|
+
]}
|
|
261
|
+
></bd-compatibility-table>
|
|
262
|
+
</bd-accordion-item>
|
|
263
|
+
|
|
264
|
+
<bd-p kind="small" style="color: var(--color-neutral-500); margin-top: 16px;">
|
|
265
|
+
Category naming follows OWASP Top 10 for Agentic Applications (2026).
|
|
266
|
+
</bd-p>
|
|
267
|
+
</div>
|
|
268
|
+
</section>
|
|
269
|
+
|
|
270
|
+
<section id="anchor-7-section">
|
|
271
|
+
<div style="padding: 24px 24px 48px;">
|
|
272
|
+
<bd-h as="h2" font-weight="700" style="margin: 0 0 8px;">How it runs</bd-h>
|
|
273
|
+
<bd-p kind="regular" style="color: var(--color-neutral-700); margin: 0 0 24px;">
|
|
274
|
+
AI Guardian installs from a signed macOS installer and runs as a background service; the rows below list how it installs, where analysis happens, and what the BETA costs.
|
|
275
|
+
</bd-p>
|
|
276
|
+
|
|
277
|
+
<bd-accordion-item chevron title="Show operational details (11 rows)">
|
|
278
|
+
<bd-compatibility-table
|
|
279
|
+
variant="light"
|
|
280
|
+
.rows=${[
|
|
281
|
+
{ label: "Runs as", value: "Background service on the endpoint" },
|
|
282
|
+
{ label: "Install method", value: "Download the macOS installer (.dmg)" },
|
|
283
|
+
{ label: "System permissions required", value: "Granted during install, when the Bitdefender agent asks" },
|
|
284
|
+
{ label: "Installer", value: "Signed with a Bitdefender Apple Developer ID and recognised by macOS" },
|
|
285
|
+
{ label: "Agent version checks", value: "Handled by the installer" },
|
|
286
|
+
{ label: "Where analysis happens", value: "On-device, with some checks (such as URL reputation) using Bitdefender cloud services" },
|
|
287
|
+
{ label: "Prompt data", value: "Analysed on-device — prompts never leave your Mac" },
|
|
288
|
+
{ label: "Offline operation", value: "Some features" },
|
|
289
|
+
{ label: "Performance overhead", value: "Designed to be minimal; not yet measured" },
|
|
290
|
+
{ label: "Availability", value: "Open BETA, free download" },
|
|
291
|
+
{ label: "Price during BETA", value: "Free" }
|
|
292
|
+
]}
|
|
293
|
+
></bd-compatibility-table>
|
|
294
|
+
</bd-accordion-item>
|
|
295
|
+
</div>
|
|
296
|
+
</section>
|
|
297
|
+
|
|
298
|
+
<section id="anchor-8-section">
|
|
299
|
+
<bd-trust-panel
|
|
300
|
+
eyebrow="Why trust it"
|
|
301
|
+
title="Built by Bitdefender"
|
|
302
|
+
description="AI Guardian is made by Bitdefender, the company that has protected people and organisations since 2001. The figures and recognitions below describe Bitdefender the company — not the AI Guardian product, which is in BETA."
|
|
303
|
+
link-label="Why millions trust Bitdefender"
|
|
304
|
+
link-href="#"
|
|
305
|
+
.stats=${[
|
|
306
|
+
{ value: "50B+", label: "threats blocked every year" },
|
|
307
|
+
{ value: "580+", label: "technology patents" },
|
|
308
|
+
{ value: "170+", label: "countries protected" },
|
|
309
|
+
{ value: "15+", label: "years of AI-driven security" },
|
|
310
|
+
{ value: "50%+", label: "of employees work in R&D" },
|
|
311
|
+
{ value: "30+", label: "law-enforcement partnerships" }
|
|
312
|
+
]}
|
|
313
|
+
.cards=${[
|
|
314
|
+
{
|
|
315
|
+
eyebrow : "Brand partnership",
|
|
316
|
+
title : "Trusted by Ferrari as cybersecurity partner",
|
|
317
|
+
description: "A partnership born from a passion for high performance and technological innovation — Bitdefender supports Ferrari with Advanced Threat Intelligence to improve detection and response to cyber threats.",
|
|
318
|
+
linkLabel : "Learn more",
|
|
319
|
+
linkHref : "#"
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
eyebrow : "Brand recognition",
|
|
323
|
+
title : "Award-winning security software you can trust. Always.",
|
|
324
|
+
description: "Consistently top-ranked by the world's leading independent testing labs and tech publications.",
|
|
325
|
+
linkLabel : "Learn more",
|
|
326
|
+
linkHref : "#"
|
|
327
|
+
}
|
|
328
|
+
]}
|
|
329
|
+
>
|
|
330
|
+
<span slot="card-1-logos" style="font-weight:700; color:#006DFF; font-size:18px;">Bitdefender</span>
|
|
331
|
+
<span slot="card-1-logos" style="font-size:12px; color:#374151; font-weight:600;">FERRARI TEAM PARTNER</span>
|
|
332
|
+
|
|
333
|
+
<bd-pc-mag-icon slot="card-2-logos" height="32"></bd-pc-mag-icon>
|
|
334
|
+
<bd-av-comparatives-icon slot="card-2-logos" height="32"></bd-av-comparatives-icon>
|
|
335
|
+
<bd-top-product-icon slot="card-2-logos" height="32"></bd-top-product-icon>
|
|
336
|
+
<bd-best-brands-icon slot="card-2-logos" height="32"></bd-best-brands-icon>
|
|
337
|
+
<bd-laurel-icon slot="card-2-logos" height="32"></bd-laurel-icon>
|
|
338
|
+
</bd-trust-panel>
|
|
339
|
+
</section>
|
|
340
|
+
|
|
341
|
+
<section id="anchor-9-section" class="faq">
|
|
342
|
+
<bd-accordion-bg title="Questions about agent security">
|
|
343
|
+
<bd-accordion-bg-item title="What is prompt injection and how does AI Guardian stop it?">
|
|
344
|
+
<bd-p>Prompt injection is an attack where crafted input tricks an AI agent into following instructions it should ignore. AI Guardian inspects agent inputs and actions and returns a verdict — allowed, flagged, or blocked — so a hijacked instruction can be caught before it turns into an action.</bd-p>
|
|
345
|
+
</bd-accordion-bg-item>
|
|
346
|
+
|
|
347
|
+
<bd-accordion-bg-item title="What is MCP tool poisoning?">
|
|
348
|
+
<bd-p>MCP tool poisoning is when a Model Context Protocol tool is malicious or has been tampered with, so an agent that calls it can be steered into harmful behaviour. AI Guardian detects and blocks malicious MCP tools before an agent uses them.</bd-p>
|
|
349
|
+
</bd-accordion-bg-item>
|
|
350
|
+
|
|
351
|
+
<bd-accordion-bg-item title="How does AI Guardian decide to block, flag, or allow an action?">
|
|
352
|
+
<bd-p>Every agent action and tool call is checked in real time against a policy baseline. AI Guardian then returns one of three verdicts: allowed lets the action proceed, flagged surfaces it for review, and blocked stops it.</bd-p>
|
|
353
|
+
</bd-accordion-bg-item>
|
|
354
|
+
|
|
355
|
+
<bd-accordion-bg-item title="How do I secure an AI agent that can run shell commands and edit files?">
|
|
356
|
+
<bd-p>Constrain it with a policy baseline, vet the tools and skills it can reach, and monitor every call it makes. AI Guardian applies all three on macOS: it vets skills and MCP tools before execution, checks each tool call and file access against policy, and records an auditable trail of what the agent did.</bd-p>
|
|
357
|
+
</bd-accordion-bg-item>
|
|
358
|
+
|
|
359
|
+
<bd-accordion-bg-item title="Is AI Guardian an antivirus for AI?">
|
|
360
|
+
<bd-p>No. AI Guardian is not a traditional endpoint antivirus, a network firewall or VPN, or a content filter for chatbot text. It secures the actions an agent takes — tool calls, file access, skills and prompts — which is a different layer from malware scanning.</bd-p>
|
|
361
|
+
</bd-accordion-bg-item>
|
|
362
|
+
|
|
363
|
+
<bd-accordion-bg-item title="Does AI Guardian work with my agent framework?">
|
|
364
|
+
<bd-p>In BETA, AI Guardian supports two agents: Claude Code 2.1.121 or newer, and OpenClaw 2026.6.6 or newer. It integrates with each through a small plugin — the OpenClaw gateway plugin and the Claude Code hook — so support is per-agent rather than automatic for anything running on the machine. It also covers MCP clients and servers, and agent skills and plugins. IDE-embedded agents are coming next; other agents are not supported yet.</bd-p>
|
|
365
|
+
</bd-accordion-bg-item>
|
|
366
|
+
|
|
367
|
+
<bd-accordion-bg-item title="Does AI Guardian work on Windows?">
|
|
368
|
+
<bd-p>AI Guardian runs on macOS at launch. Support for additional platforms is planned.</bd-p>
|
|
369
|
+
</bd-accordion-bg-item>
|
|
370
|
+
|
|
371
|
+
<bd-accordion-bg-item title="How much does AI Guardian cost and how do I get it?">
|
|
372
|
+
<bd-p>AI Guardian is free during BETA. Download the macOS installer and run it — there is no waitlist and no licence key. It will stay free for early adopters after BETA.</bd-p>
|
|
373
|
+
</bd-accordion-bg-item>
|
|
374
|
+
|
|
375
|
+
<bd-accordion-bg-item title="Will AI Guardian slow down my AI agents?">
|
|
376
|
+
<bd-p>Checking every action an agent takes has some cost, so you may notice a small difference. AI Guardian is built to keep it minimal.</bd-p>
|
|
377
|
+
</bd-accordion-bg-item>
|
|
378
|
+
</bd-accordion-bg>
|
|
379
|
+
</section>
|
|
380
|
+
|
|
381
|
+
<bd-cta-banner
|
|
382
|
+
title="Run your AI agents with a guardrail"
|
|
383
|
+
description="AI Guardian is in open BETA on macOS. Download the BETA and secure your agentic workflows."
|
|
384
|
+
caption="Downloads the macOS BETA (.dmg). Free during BETA."
|
|
385
|
+
>
|
|
386
|
+
<bd-button-link
|
|
387
|
+
slot="primary-button"
|
|
388
|
+
label="Download BETA Today"
|
|
389
|
+
kind="white"
|
|
390
|
+
size="md"
|
|
391
|
+
strong
|
|
392
|
+
>Download BETA Today</bd-button-link>
|
|
393
|
+
|
|
394
|
+
<bd-button-link
|
|
395
|
+
slot="secondary-button"
|
|
396
|
+
label="Read the docs"
|
|
397
|
+
kind="outline-white"
|
|
398
|
+
size="md"
|
|
399
|
+
strong
|
|
400
|
+
>Read the docs</bd-button-link>
|
|
401
|
+
</bd-cta-banner>
|
|
402
|
+
|
|
403
|
+
<section id="anchor-10-section">
|
|
404
|
+
<bd-agent-endpoints
|
|
405
|
+
eyebrow="For AI agents and assistants"
|
|
406
|
+
title="Machine-readable endpoints"
|
|
407
|
+
description="This site is built to be read by AI assistants, browsers, and agents. Structured, curated context is available at:"
|
|
408
|
+
.endpoints=${[
|
|
409
|
+
{ label: "/llms.txt", href: "/llms.txt" },
|
|
410
|
+
{ label: "/llms-full.txt", href: "/llms-full.txt" },
|
|
411
|
+
{ label: "/index.md", href: "/index.md" },
|
|
412
|
+
{ label: "/sitemap.xml", href: "/sitemap.xml" },
|
|
413
|
+
{ label: "/robots.txt", href: "/robots.txt" }
|
|
414
|
+
]}
|
|
415
|
+
.assistants=${[
|
|
416
|
+
{ label: "Ask ChatGPT", href: "https://chatgpt.com/?q=Summarize%20https%3A%2F%2Fai.bitdefender.com%2F", icon: "/openai-brands-solid-full.svg" },
|
|
417
|
+
{ label: "Ask Perplexity", href: "https://www.perplexity.ai/search?q=Summarize%20https%3A%2F%2Fai.bitdefender.com%2F", icon: "/perplexity-icon-dark.svg" },
|
|
418
|
+
{ label: "Ask Gemini", href: "https://gemini.google.com/app?q=Summarize%20https%3A%2F%2Fai.bitdefender.com%2F", icon: "/Google_Gemini_icon_2025.svg" },
|
|
419
|
+
{ label: "Ask Copilot", href: "https://copilot.microsoft.com/?q=Summarize%20https%3A%2F%2Fai.bitdefender.com%2F", icon: "/microsoft-copilot.svg" }
|
|
420
|
+
]}
|
|
421
|
+
></bd-agent-endpoints>
|
|
422
|
+
</section>
|
|
423
|
+
|
|
424
|
+
<section id="legal">
|
|
425
|
+
<div style="max-width: 1200px; margin: 0 auto; padding: 24px;">
|
|
426
|
+
<bd-p kind="small" style="color: var(--color-neutral-500); border-top: 1px solid var(--color-neutral-100); max-width: 90ch; padding-top: var(--spacing-4)">
|
|
427
|
+
No security product guarantees complete protection. Effectiveness depends on configuration, runtime environment and the type of agents used. Features and availability may vary. Initially available on macOS, with further platforms to follow.
|
|
428
|
+
</bd-p>
|
|
429
|
+
</div>
|
|
430
|
+
</section>
|
|
431
|
+
</div>
|
|
432
|
+
`;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
function skillScannerBody() {
|
|
436
|
+
return html`
|
|
437
|
+
<bd-header-code
|
|
438
|
+
eyebrow="Supply-chain security for agent skills"
|
|
439
|
+
title="Agent Skill Scanner"
|
|
440
|
+
description="A skill is code you hand to your agent. Scan it before you trust it: every file, every indicator, one verdict."
|
|
441
|
+
terminal-caption="Agent Skill Scanner · install and first scan"
|
|
442
|
+
>
|
|
443
|
+
<span slot="breadcrumb">Bitdefender AI</span>
|
|
444
|
+
<span slot="breadcrumb">skill-scanner</span>
|
|
445
|
+
|
|
446
|
+
<bd-button-link
|
|
447
|
+
slot="primary-button"
|
|
448
|
+
label="Install now"
|
|
449
|
+
kind="primary"
|
|
450
|
+
size="md"
|
|
451
|
+
font-size="18px"
|
|
452
|
+
font-weight="600"
|
|
453
|
+
>Install now</bd-button-link>
|
|
454
|
+
|
|
455
|
+
<bd-button-link
|
|
456
|
+
slot="secondary-button"
|
|
457
|
+
label="View on GitHub"
|
|
458
|
+
kind="primary-outline"
|
|
459
|
+
size="md"
|
|
460
|
+
font-size="18px"
|
|
461
|
+
font-weight="600"
|
|
462
|
+
>View on GitHub</bd-button-link>
|
|
463
|
+
|
|
464
|
+
<span slot="badge">AVAILABLE</span>
|
|
465
|
+
|
|
466
|
+
<bd-terminal-message
|
|
467
|
+
slot="terminal-content"
|
|
468
|
+
show-titlebar
|
|
469
|
+
.lines=${[
|
|
470
|
+
{ type: "cmd", text: "$ npx skills add bitdefender/agent-skill-scanner" },
|
|
471
|
+
{ type: "ok", text: "✓ agent-skill-scanner installed" },
|
|
472
|
+
{ type: "sep" },
|
|
473
|
+
{ type: "ask", text: "> scan the my-skill skill for security risks" },
|
|
474
|
+
{ type: "sep" },
|
|
475
|
+
{ type: "strong", text: "# Skill Scan: my-skill" },
|
|
476
|
+
{ type: "space" },
|
|
477
|
+
{ type: "dim", text: "- Severity: CLEAN" },
|
|
478
|
+
{ type: "dim", text: "- Scan Date: 2026-06-15" },
|
|
479
|
+
{ type: "space" },
|
|
480
|
+
{ type: "dim", text: "No security findings detected." }
|
|
481
|
+
]}
|
|
482
|
+
></bd-terminal-message>
|
|
483
|
+
</bd-header-code>
|
|
484
|
+
|
|
485
|
+
<section>
|
|
486
|
+
<div style="max-width: 1200px; margin: 0 auto;">
|
|
487
|
+
<bd-quick-answer
|
|
488
|
+
label="Quick answer"
|
|
489
|
+
text='Agent Skill Scanner is a Bitdefender agent skill that audits another agent skill before you install or trust it. It walks every file, runs 71 behavioural detectors across 16 threat categories, extracts 18 indicator types, and returns an LLM-generated report with a risk level, summary and per-file findings. Install it with "npx skills add bitdefender/agent-skill-scanner", from GitHub, or as a zip archive.'
|
|
490
|
+
.items=${[
|
|
491
|
+
{ label: "ANALYSES", value: "Agent skills" },
|
|
492
|
+
{ label: "STATUS", value: "Available — skills.sh & GitHub" },
|
|
493
|
+
{ label: "REQUIRES", value: "Python 3.12 or 3.13" },
|
|
494
|
+
{ label: "MADE BY", value: "Bitdefender" }
|
|
495
|
+
]}
|
|
496
|
+
></bd-quick-answer>
|
|
497
|
+
</div>
|
|
498
|
+
</section>
|
|
499
|
+
|
|
500
|
+
<!--
|
|
501
|
+
TODO: restul secțiunilor pentru pagina Skill Scanner
|
|
502
|
+
(compatibility table, features/protections, FAQ, trust panel etc.)
|
|
503
|
+
nu au fost specificate încă — se adaugă când vine conținutul.
|
|
504
|
+
-->
|
|
505
|
+
`;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
function sharedFooter() {
|
|
509
|
+
return html`
|
|
510
|
+
<bd-footer>
|
|
511
|
+
<span slot="logo" style="font-size:24px; font-weight:700; color:#fff;">
|
|
512
|
+
Bitdefender <span style="font-weight:400; opacity:0.85;">AI</span>
|
|
513
|
+
</span>
|
|
514
|
+
|
|
515
|
+
<div slot="top-right" style="display:flex; align-items:center; gap:12px; color:#fff;">
|
|
516
|
+
<span style="width:40px; height:40px; border-radius:50%; background:#ff2d2d; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:18px;">B</span>
|
|
517
|
+
<span style="line-height:1.2;">Trusted.<br />Always.</span>
|
|
518
|
+
</div>
|
|
519
|
+
|
|
520
|
+
<div slot="nav">
|
|
521
|
+
<bd-link href="/consumer/" kind="light">For Consumer</bd-link>
|
|
522
|
+
<bd-link href="/small-business/" kind="light">For Small Business</bd-link>
|
|
523
|
+
<bd-link href="/business/" kind="light">For Enterprise</bd-link>
|
|
524
|
+
<bd-link href="/partners/" kind="light">For Partners</bd-link>
|
|
525
|
+
</div>
|
|
526
|
+
|
|
527
|
+
<bd-footer-links-group slot="quick-links" title="Quick links">
|
|
528
|
+
<bd-link href="/ai-guardian/" kind="light">AI Guardian</bd-link>
|
|
529
|
+
<bd-link href="/docs/" kind="light">Documentation</bd-link>
|
|
530
|
+
<bd-link href="/agent-skill-scanner/" kind="light">Agent Skill Scanner</bd-link>
|
|
531
|
+
<bd-link href="https://www.bitdefender.com" kind="light">bitdefender.com</bd-link>
|
|
532
|
+
</bd-footer-links-group>
|
|
533
|
+
|
|
534
|
+
<bd-footer-links-group slot="quick-links" title="For agents">
|
|
535
|
+
<bd-link href="/llms.txt" kind="light">llms.txt</bd-link>
|
|
536
|
+
<bd-link href="/llms-full.txt" kind="light">llms-full.txt</bd-link>
|
|
537
|
+
<bd-link href="/index.md" kind="light">index.md</bd-link>
|
|
538
|
+
<bd-link href="/sitemap.xml" kind="light">Sitemap</bd-link>
|
|
539
|
+
<bd-link href="/robots.txt" kind="light">robots.txt</bd-link>
|
|
540
|
+
</bd-footer-links-group>
|
|
541
|
+
|
|
542
|
+
<div slot="secondary-nav">
|
|
543
|
+
<bd-link href="/legal/" kind="light">Legal</bd-link>
|
|
544
|
+
<bd-divider-vertical color="white" opacity="0.4"></bd-divider-vertical>
|
|
545
|
+
<bd-link href="/privacy-policy/" kind="light">Privacy Policy</bd-link>
|
|
546
|
+
<bd-divider-vertical color="white" opacity="0.4"></bd-divider-vertical>
|
|
547
|
+
<bd-link href="/company/" kind="light">Company</bd-link>
|
|
548
|
+
<bd-divider-vertical color="white" opacity="0.4"></bd-divider-vertical>
|
|
549
|
+
<bd-link href="/support/" kind="light">Support</bd-link>
|
|
550
|
+
<bd-divider-vertical color="white" opacity="0.4"></bd-divider-vertical>
|
|
551
|
+
<bd-link href="#" kind="light">Cookie settings</bd-link>
|
|
552
|
+
</div>
|
|
553
|
+
|
|
554
|
+
<div slot="address" style="color:#fff; opacity:0.85; font-size:14px;">
|
|
555
|
+
© 2001–2026 Bitdefender
|
|
556
|
+
</div>
|
|
557
|
+
|
|
558
|
+
<div slot="copyright" style="max-width: 1200px; color: rgba(255,255,255,0.75); font-size: 12px; line-height: 1.5;">
|
|
559
|
+
Bitdefender trademarks and registered trademarks are the property of Bitdefender or its affiliates. Claude and Claude Code are trademarks of Anthropic. ChatGPT and Codex are trademarks of OpenAI. Gemini and Google are trademarks of Google LLC. Copilot and Microsoft are trademarks of Microsoft Corporation. Perplexity is a trademark of Perplexity AI, Inc. Hermes Agent is a mark of Nous Research. The OpenClaw and opencode marks are the property of their owners. All other names and marks are the property of their respective owners. Third-party names and logos on this page, including those on the buttons that open an assistant, are used for identification only. Their use does not imply any affiliation with, sponsorship by, or endorsement from those owners.
|
|
560
|
+
</div>
|
|
561
|
+
</bd-footer>
|
|
562
|
+
`;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
// ---------------------------------------------------------------------------
|
|
566
|
+
// Wrapper interactiv: ține starea "activeTab" și intercepta click-ul pe
|
|
567
|
+
// page-switcher (preventDefault pe anchor-ul intern) în loc să lase browserul
|
|
568
|
+
// să navigheze la un URL care nu există în Storybook (de-asta dădea 404).
|
|
569
|
+
// ---------------------------------------------------------------------------
|
|
570
|
+
|
|
571
|
+
class AiGuardianSkillScannerDemo extends LitElement {
|
|
572
|
+
static properties = {
|
|
573
|
+
activeTab: { state: true }
|
|
574
|
+
};
|
|
575
|
+
|
|
576
|
+
// light DOM: evenimentul de click (composed) tot ajunge aici din shadow-ul
|
|
577
|
+
// intern al bd-page-switcher / bd-link, deci putem intercepta navigarea.
|
|
578
|
+
createRenderRoot() {
|
|
579
|
+
return this;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
constructor() {
|
|
583
|
+
super();
|
|
584
|
+
this.activeTab = "ai-guardian";
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
// Folosim fragmente "#..." în loc de căi reale (/ai-guardian/, /agent-skill-scanner/):
|
|
588
|
+
// un fragment nu navighează niciodată către altă pagină, deci nu poate da 404,
|
|
589
|
+
// indiferent cum gestionează bd-link intern click-ul.
|
|
590
|
+
_onNavClick(event) {
|
|
591
|
+
const path = event.composedPath();
|
|
592
|
+
const anchor = path.find(
|
|
593
|
+
(el) => el?.tagName === "A" || el?.tagName === "BD-LINK"
|
|
594
|
+
);
|
|
595
|
+
if (!anchor || typeof anchor.getAttribute !== "function") return;
|
|
596
|
+
|
|
597
|
+
const href = anchor.getAttribute("href");
|
|
598
|
+
if (href === "#ai-guardian") {
|
|
599
|
+
event.preventDefault();
|
|
600
|
+
this.activeTab = "ai-guardian";
|
|
601
|
+
} else if (href === "#skill-scanner") {
|
|
602
|
+
event.preventDefault();
|
|
603
|
+
this.activeTab = "skill-scanner";
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
render() {
|
|
608
|
+
const isAiGuardian = this.activeTab === "ai-guardian";
|
|
609
|
+
|
|
610
|
+
return html`
|
|
611
|
+
<div @click=${this._onNavClick}>
|
|
612
|
+
<bd-page-switcher
|
|
613
|
+
.items=${[
|
|
614
|
+
{ title: "AI Guardian", href: "#ai-guardian", active: isAiGuardian },
|
|
615
|
+
{ title: "Skill Scanner", href: "#skill-scanner", active: !isAiGuardian }
|
|
616
|
+
]}
|
|
617
|
+
></bd-page-switcher>
|
|
618
|
+
|
|
619
|
+
${isAiGuardian ? aiGuardianBody() : skillScannerBody()}
|
|
620
|
+
|
|
621
|
+
${sharedFooter()}
|
|
622
|
+
</div>
|
|
623
|
+
`;
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
customElements.define("demo-ai-guardian-skill-scanner", AiGuardianSkillScannerDemo);
|
|
628
|
+
|
|
629
|
+
// ---------------------------------------------------------------------------
|
|
630
|
+
// Storybook
|
|
631
|
+
// ---------------------------------------------------------------------------
|
|
632
|
+
|
|
633
|
+
export default {
|
|
634
|
+
title : "Demos/AI Guardian Landing",
|
|
635
|
+
tags : ["autodocs"],
|
|
636
|
+
parameters: {
|
|
637
|
+
layout: "fullscreen",
|
|
638
|
+
docs : {
|
|
639
|
+
description: {
|
|
640
|
+
component: `
|
|
641
|
+
Interactive demo: sticky top-level product nav (\`AI Guardian\` / \`Skill Scanner\`)
|
|
642
|
+
switches, in place, between two full "pages" without any real navigation —
|
|
643
|
+
clicking a tab intercepts the anchor click and swaps local state instead of
|
|
644
|
+
following the href (which has no route in Storybook and would 404).
|
|
645
|
+
|
|
646
|
+
**AI Guardian** page: \`bd-header-code\`, \`bd-quick-answer\`, sticky \`bd-anchor-nav\`
|
|
647
|
+
(9 items) wrapping \`bd-overview\`, \`bd-compatibility-table\` (default variant), the
|
|
648
|
+
"Protections" section (\`bd-bento-grid\` + \`bd-comparison-panel\`), \`bd-process-steps\`,
|
|
649
|
+
\`bd-compatibility-table\` (\`variant="outcome"\`), two chevron \`bd-accordion-item\`s
|
|
650
|
+
revealing \`bd-compatibility-table\` (\`variant="risk"\` / \`variant="light"\`), an FAQ
|
|
651
|
+
section (\`bd-accordion-bg\`, 9 questions), \`bd-cta-banner\`, \`bd-agent-endpoints\`,
|
|
652
|
+
and \`bd-trust-panel\`.
|
|
653
|
+
|
|
654
|
+
**Skill Scanner** page: same top nav (tab now active), a dedicated
|
|
655
|
+
\`bd-header-code\` for Agent Skill Scanner. Only the header is fully specified for
|
|
656
|
+
this page today — the rest of its sections are a placeholder until content is
|
|
657
|
+
provided.
|
|
658
|
+
|
|
659
|
+
Both pages share the same \`bd-footer\` at the bottom.
|
|
660
|
+
`
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
};
|
|
665
|
+
|
|
666
|
+
export const Default = {
|
|
667
|
+
name : "AI Guardian ↔ Skill Scanner (interactive)",
|
|
668
|
+
render: () => html`<demo-ai-guardian-skill-scanner></demo-ai-guardian-skill-scanner>`
|
|
669
|
+
};
|