averecion-lite 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +161 -0
- package/dashboard/dash.css +1085 -0
- package/dashboard/dash.js +898 -0
- package/dashboard/index.html +312 -0
- package/dashboard/landing.html +360 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +409 -0
- package/dist/hooks.d.ts +25 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +68 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +64 -0
- package/dist/injectionGuard.d.ts +9 -0
- package/dist/injectionGuard.d.ts.map +1 -0
- package/dist/injectionGuard.js +16 -0
- package/dist/log-watcher.d.ts +26 -0
- package/dist/log-watcher.d.ts.map +1 -0
- package/dist/log-watcher.js +397 -0
- package/dist/metrics.d.ts +53 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +58 -0
- package/dist/policy.d.ts +11 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +60 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +226 -0
- package/dist/src/capability-manifest.d.ts +16 -0
- package/dist/src/capability-manifest.d.ts.map +1 -0
- package/dist/src/capability-manifest.js +228 -0
- package/dist/src/http-proxy.d.ts +4 -0
- package/dist/src/http-proxy.d.ts.map +1 -0
- package/dist/src/http-proxy.js +266 -0
- package/dist/src/risk-engine.d.ts +43 -0
- package/dist/src/risk-engine.d.ts.map +1 -0
- package/dist/src/risk-engine.js +258 -0
- package/dist/src/shell-wrapper.d.ts +3 -0
- package/dist/src/shell-wrapper.d.ts.map +1 -0
- package/dist/src/shell-wrapper.js +264 -0
- package/dist/storage.d.ts +28 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +144 -0
- package/examples/INTEGRATION.md +162 -0
- package/examples/claude-desktop-agent.json +32 -0
- package/examples/clawdbot-agent.json +44 -0
- package/examples/custom-agent.json +20 -0
- package/lite-policy.json +5 -0
- package/package.json +56 -0
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Clawguard - Agent-Agnostic AI Governance</title>
|
|
7
|
+
<link rel="stylesheet" href="/static/dash.css">
|
|
8
|
+
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js"></script>
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div class="stars"></div>
|
|
12
|
+
|
|
13
|
+
<div id="app">
|
|
14
|
+
<div id="onboarding" class="screen">
|
|
15
|
+
<header class="hero">
|
|
16
|
+
<div class="mascot">🦞</div>
|
|
17
|
+
<h1>See Everything Your <span class="highlight">ClawdBot</span> Does</h1>
|
|
18
|
+
<p class="tagline">Real-time monitoring for AI agents. Local-only, no code changes required.</p>
|
|
19
|
+
</header>
|
|
20
|
+
|
|
21
|
+
<div class="wizard">
|
|
22
|
+
<div class="steps">
|
|
23
|
+
<div class="step active" data-step="1">
|
|
24
|
+
<div class="step-num">1</div>
|
|
25
|
+
<span>Connect</span>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="step-line"></div>
|
|
28
|
+
<div class="step" data-step="2">
|
|
29
|
+
<div class="step-num">2</div>
|
|
30
|
+
<span>Configure</span>
|
|
31
|
+
</div>
|
|
32
|
+
<div class="step-line"></div>
|
|
33
|
+
<div class="step" data-step="3">
|
|
34
|
+
<div class="step-num">3</div>
|
|
35
|
+
<span>Go!</span>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
<div class="wizard-content">
|
|
40
|
+
<div class="wizard-panel active" data-panel="1">
|
|
41
|
+
<h2>👋 Let's connect Clawguard</h2>
|
|
42
|
+
<p>Paste your secret key to get started. This keeps your dashboard secure.</p>
|
|
43
|
+
<div class="input-group">
|
|
44
|
+
<input type="password" id="secret-input" placeholder="Paste your secret here..." data-testid="input-secret">
|
|
45
|
+
<button id="btn-connect" class="btn-primary" data-testid="button-connect">Connect</button>
|
|
46
|
+
</div>
|
|
47
|
+
<p class="hint">💡 Find this in your terminal where you started Averecion Lite</p>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<div class="wizard-panel" data-panel="2">
|
|
51
|
+
<h2>🛡️ Pick your protection level</h2>
|
|
52
|
+
<p>How careful should we be with your bot's actions?</p>
|
|
53
|
+
<div class="protection-levels">
|
|
54
|
+
<label class="level-card" data-testid="level-relaxed">
|
|
55
|
+
<input type="radio" name="protection" value="relaxed">
|
|
56
|
+
<div class="level-content">
|
|
57
|
+
<div class="level-emoji">😊</div>
|
|
58
|
+
<div class="level-name">Relaxed</div>
|
|
59
|
+
<div class="level-desc">Flag only critical threats</div>
|
|
60
|
+
</div>
|
|
61
|
+
</label>
|
|
62
|
+
<label class="level-card selected" data-testid="level-balanced">
|
|
63
|
+
<input type="radio" name="protection" value="balanced" checked>
|
|
64
|
+
<div class="level-content">
|
|
65
|
+
<div class="level-emoji">⚖️</div>
|
|
66
|
+
<div class="level-name">Balanced</div>
|
|
67
|
+
<div class="level-desc">Flag risky actions for review</div>
|
|
68
|
+
</div>
|
|
69
|
+
</label>
|
|
70
|
+
<label class="level-card" data-testid="level-strict">
|
|
71
|
+
<input type="radio" name="protection" value="strict">
|
|
72
|
+
<div class="level-content">
|
|
73
|
+
<div class="level-emoji">🔒</div>
|
|
74
|
+
<div class="level-name">Strict</div>
|
|
75
|
+
<div class="level-desc">Flag everything for visibility</div>
|
|
76
|
+
</div>
|
|
77
|
+
</label>
|
|
78
|
+
</div>
|
|
79
|
+
<button id="btn-configure" class="btn-primary" data-testid="button-configure">Continue</button>
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
<div class="wizard-panel" data-panel="3">
|
|
83
|
+
<h2>🎉 You're all set!</h2>
|
|
84
|
+
<p>Clawguard is now monitoring your ClawdBot. Here's what's active:</p>
|
|
85
|
+
<div class="summary-card">
|
|
86
|
+
<div class="summary-item">✓ Real-time activity monitoring</div>
|
|
87
|
+
<div class="summary-item">✓ Detecting prompt injection attempts</div>
|
|
88
|
+
<div class="summary-item">✓ Flagging dangerous commands</div>
|
|
89
|
+
<div class="summary-item">✓ Logging everything locally</div>
|
|
90
|
+
</div>
|
|
91
|
+
<p class="hint">💡 Clawguard watches your logs - no ClawdBot changes needed</p>
|
|
92
|
+
<button id="btn-go" class="btn-primary" data-testid="button-go-dashboard">Go to Dashboard</button>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
<div id="dashboard" class="screen hidden">
|
|
99
|
+
<header class="dash-header">
|
|
100
|
+
<div class="logo">
|
|
101
|
+
<span class="mascot-small">🦞</span>
|
|
102
|
+
<div class="logo-text">
|
|
103
|
+
<span class="logo-name">Clawguard</span>
|
|
104
|
+
<span class="logo-tagline">by Averecion</span>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
<div class="header-actions">
|
|
108
|
+
<button id="btn-notifications" class="notification-toggle" data-testid="btn-notifications" title="Enable browser notifications">
|
|
109
|
+
🔔 Notifications
|
|
110
|
+
</button>
|
|
111
|
+
<div class="status-badge protected" id="global-status" data-testid="badge-status">
|
|
112
|
+
● Monitoring
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
</header>
|
|
116
|
+
|
|
117
|
+
<main class="dash-main">
|
|
118
|
+
<section class="legend-section">
|
|
119
|
+
<div class="legend" data-testid="legend">
|
|
120
|
+
<div class="legend-item">
|
|
121
|
+
<span class="legend-dot safe"></span>
|
|
122
|
+
<span>Safe</span>
|
|
123
|
+
<span class="legend-help" data-tooltip="Action was approved - no issues detected">?</span>
|
|
124
|
+
</div>
|
|
125
|
+
<div class="legend-item">
|
|
126
|
+
<span class="legend-dot manual"></span>
|
|
127
|
+
<span>Reviewed</span>
|
|
128
|
+
<span class="legend-help" data-tooltip="An action you reviewed in the activity log">?</span>
|
|
129
|
+
</div>
|
|
130
|
+
<div class="legend-item">
|
|
131
|
+
<span class="legend-dot blocked"></span>
|
|
132
|
+
<span>Flagged</span>
|
|
133
|
+
<span class="legend-help" data-tooltip="Dangerous action was detected and flagged">?</span>
|
|
134
|
+
</div>
|
|
135
|
+
<div class="legend-item">
|
|
136
|
+
<span class="legend-dot attack"></span>
|
|
137
|
+
<span>Caught Attack</span>
|
|
138
|
+
<span class="legend-help" data-tooltip="Prompt injection attempt was detected">?</span>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
</section>
|
|
142
|
+
|
|
143
|
+
<section class="protection-section">
|
|
144
|
+
<div class="protection-score" data-testid="protection-score">
|
|
145
|
+
<div class="score-header">
|
|
146
|
+
<span class="score-value" id="score-value">4/4</span>
|
|
147
|
+
<span class="score-label">Protection Score</span>
|
|
148
|
+
</div>
|
|
149
|
+
<div class="score-bars">
|
|
150
|
+
<div class="score-bar active" id="bar-local" data-tooltip="Dashboard only accessible from your computer">
|
|
151
|
+
<span class="bar-icon">🏠</span>
|
|
152
|
+
<span class="bar-label">Local Only</span>
|
|
153
|
+
</div>
|
|
154
|
+
<div class="score-bar active" id="bar-secret" data-tooltip="Your dashboard is protected by a secret key">
|
|
155
|
+
<span class="bar-icon">🔑</span>
|
|
156
|
+
<span class="bar-label">Secret Key</span>
|
|
157
|
+
</div>
|
|
158
|
+
<div class="score-bar active" id="bar-injection" data-tooltip="Detecting prompt injection attempts in real-time">
|
|
159
|
+
<span class="bar-icon">🛡️</span>
|
|
160
|
+
<span class="bar-label">Injection Detection</span>
|
|
161
|
+
</div>
|
|
162
|
+
<div class="score-bar active" id="bar-approval" data-tooltip="Real-time visibility into all agent activity">
|
|
163
|
+
<span class="bar-icon">👁️</span>
|
|
164
|
+
<span class="bar-label">Live Monitoring</span>
|
|
165
|
+
</div>
|
|
166
|
+
</div>
|
|
167
|
+
</div>
|
|
168
|
+
</section>
|
|
169
|
+
|
|
170
|
+
<section class="safety-section">
|
|
171
|
+
<h2>Safety Checks</h2>
|
|
172
|
+
<div class="safety-grid">
|
|
173
|
+
<div class="safety-item pass" id="check-local" data-testid="check-local">
|
|
174
|
+
<span class="check-icon">✓</span>
|
|
175
|
+
<span>Dashboard is local-only</span>
|
|
176
|
+
<span class="legend-help" data-tooltip="Only you can see this dashboard - no remote access">?</span>
|
|
177
|
+
</div>
|
|
178
|
+
<div class="safety-item pass" id="check-secret" data-testid="check-secret">
|
|
179
|
+
<span class="check-icon">✓</span>
|
|
180
|
+
<span>Secret key protected</span>
|
|
181
|
+
<span class="legend-help" data-tooltip="Your dashboard is locked with a secret key">?</span>
|
|
182
|
+
</div>
|
|
183
|
+
<div class="safety-item pass" id="check-injection" data-testid="check-injection">
|
|
184
|
+
<span class="check-icon">✓</span>
|
|
185
|
+
<span>Prompt injection detection active</span>
|
|
186
|
+
<span class="legend-help" data-tooltip="Detecting hidden attack instructions in real-time">?</span>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
</section>
|
|
190
|
+
|
|
191
|
+
<section class="extensions-section">
|
|
192
|
+
<h2>ClawdBot Extensions <span class="extension-count" id="extension-count">0</span></h2>
|
|
193
|
+
<div class="extensions-grid" id="extensions-grid" data-testid="grid-extensions">
|
|
194
|
+
<div class="extension-card" data-type="skills">
|
|
195
|
+
<div class="ext-icon">🎯</div>
|
|
196
|
+
<div class="ext-info">
|
|
197
|
+
<div class="ext-name">Skills</div>
|
|
198
|
+
<div class="ext-status" id="skills-status">Not configured</div>
|
|
199
|
+
</div>
|
|
200
|
+
<div class="ext-count" id="skills-count">0</div>
|
|
201
|
+
</div>
|
|
202
|
+
<div class="extension-card" data-type="tools">
|
|
203
|
+
<div class="ext-icon">🔧</div>
|
|
204
|
+
<div class="ext-info">
|
|
205
|
+
<div class="ext-name">MCP Tools</div>
|
|
206
|
+
<div class="ext-status" id="tools-status">Not configured</div>
|
|
207
|
+
</div>
|
|
208
|
+
<div class="ext-count" id="tools-count">0</div>
|
|
209
|
+
</div>
|
|
210
|
+
<div class="extension-card" data-type="plugins">
|
|
211
|
+
<div class="ext-icon">🔌</div>
|
|
212
|
+
<div class="ext-info">
|
|
213
|
+
<div class="ext-name">Plugins</div>
|
|
214
|
+
<div class="ext-status" id="plugins-status">Not configured</div>
|
|
215
|
+
</div>
|
|
216
|
+
<div class="ext-count" id="plugins-count">0</div>
|
|
217
|
+
</div>
|
|
218
|
+
<div class="extension-card" data-type="bash">
|
|
219
|
+
<div class="ext-icon">💻</div>
|
|
220
|
+
<div class="ext-info">
|
|
221
|
+
<div class="ext-name">Bash/Shell</div>
|
|
222
|
+
<div class="ext-status" id="bash-status">Monitoring</div>
|
|
223
|
+
</div>
|
|
224
|
+
<div class="ext-count" id="bash-count">✓</div>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
</section>
|
|
228
|
+
|
|
229
|
+
<section class="bot-section">
|
|
230
|
+
<h2>Activity Summary</h2>
|
|
231
|
+
<div class="bot-card" data-testid="card-bot">
|
|
232
|
+
<div class="bot-avatar">🛡️</div>
|
|
233
|
+
<div class="bot-info">
|
|
234
|
+
<div class="bot-name">Clawguard</div>
|
|
235
|
+
<div class="bot-status online" id="clawguard-status">● Active</div>
|
|
236
|
+
</div>
|
|
237
|
+
<div class="bot-stats">
|
|
238
|
+
<div class="stat">
|
|
239
|
+
<span class="stat-value" id="stat-approved">0</span>
|
|
240
|
+
<span class="stat-label">Monitored</span>
|
|
241
|
+
</div>
|
|
242
|
+
<div class="stat">
|
|
243
|
+
<span class="stat-value warning" id="stat-blocked">0</span>
|
|
244
|
+
<span class="stat-label">Flagged</span>
|
|
245
|
+
</div>
|
|
246
|
+
<div class="stat">
|
|
247
|
+
<span class="stat-value" id="stat-manual">0</span>
|
|
248
|
+
<span class="stat-label">Alerts</span>
|
|
249
|
+
</div>
|
|
250
|
+
</div>
|
|
251
|
+
</div>
|
|
252
|
+
</section>
|
|
253
|
+
|
|
254
|
+
<section class="control-section">
|
|
255
|
+
<h2>Protection Level</h2>
|
|
256
|
+
<div class="protection-toggle" data-testid="protection-toggle">
|
|
257
|
+
<button class="toggle-btn" data-level="relaxed" data-testid="toggle-relaxed">
|
|
258
|
+
<span class="toggle-emoji">😊</span>
|
|
259
|
+
<span class="toggle-name">Relaxed</span>
|
|
260
|
+
</button>
|
|
261
|
+
<button class="toggle-btn active" data-level="balanced" data-testid="toggle-balanced">
|
|
262
|
+
<span class="toggle-emoji">⚖️</span>
|
|
263
|
+
<span class="toggle-name">Balanced</span>
|
|
264
|
+
</button>
|
|
265
|
+
<button class="toggle-btn" data-level="strict" data-testid="toggle-strict">
|
|
266
|
+
<span class="toggle-emoji">🔒</span>
|
|
267
|
+
<span class="toggle-name">Strict</span>
|
|
268
|
+
</button>
|
|
269
|
+
</div>
|
|
270
|
+
<p class="control-hint" id="level-hint">Flag risky actions for review</p>
|
|
271
|
+
</section>
|
|
272
|
+
|
|
273
|
+
<!-- Approvals section hidden in lite monitoring mode -->
|
|
274
|
+
<section class="approvals-section" id="approvals-section" style="display: none;">
|
|
275
|
+
<h2>Flagged for Review <span class="approval-count" id="approval-count">0</span></h2>
|
|
276
|
+
<div class="approvals-list" id="approvals-list" data-testid="list-approvals">
|
|
277
|
+
</div>
|
|
278
|
+
</section>
|
|
279
|
+
|
|
280
|
+
<section class="activity-section">
|
|
281
|
+
<h2>Recent Activity</h2>
|
|
282
|
+
<div class="activity-list" id="activity-list" data-testid="list-activity">
|
|
283
|
+
<div class="activity-empty">
|
|
284
|
+
<p>🦞 Your bot hasn't done anything yet. When it does, you'll see it here!</p>
|
|
285
|
+
</div>
|
|
286
|
+
</div>
|
|
287
|
+
</section>
|
|
288
|
+
|
|
289
|
+
<section class="chart-section">
|
|
290
|
+
<h2>Last 24 Hours</h2>
|
|
291
|
+
<div class="chart-container">
|
|
292
|
+
<canvas id="chart-timeline" height="120"></canvas>
|
|
293
|
+
</div>
|
|
294
|
+
</section>
|
|
295
|
+
</main>
|
|
296
|
+
|
|
297
|
+
<footer class="dash-footer">
|
|
298
|
+
<div class="footer-links">
|
|
299
|
+
<a href="https://averecion.com/docs/clawguard" target="_blank">Clawguard Documentation</a>
|
|
300
|
+
<span class="footer-divider">•</span>
|
|
301
|
+
<a href="https://averecion.com/docs/security" target="_blank">AI Agent Security</a>
|
|
302
|
+
</div>
|
|
303
|
+
<p class="footer-note">Clawguard monitors ClawdBot activity in real-time, detecting dangerous commands and prompt injection attempts as they happen.</p>
|
|
304
|
+
</footer>
|
|
305
|
+
</div>
|
|
306
|
+
</div>
|
|
307
|
+
|
|
308
|
+
<div class="tooltip" id="tooltip"></div>
|
|
309
|
+
|
|
310
|
+
<script src="/static/dash.js"></script>
|
|
311
|
+
</body>
|
|
312
|
+
</html>
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Clawguard - AI Safety for ClawdBot</title>
|
|
7
|
+
<style>
|
|
8
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
9
|
+
body {
|
|
10
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
11
|
+
background: linear-gradient(135deg, #0f0f23 0%, #1a1a3e 50%, #0f0f23 100%);
|
|
12
|
+
color: #fff;
|
|
13
|
+
min-height: 100vh;
|
|
14
|
+
}
|
|
15
|
+
.container { max-width: 1100px; margin: 0 auto; padding: 0 24px; }
|
|
16
|
+
|
|
17
|
+
/* Header */
|
|
18
|
+
header {
|
|
19
|
+
display: flex;
|
|
20
|
+
justify-content: space-between;
|
|
21
|
+
align-items: center;
|
|
22
|
+
padding: 20px 0;
|
|
23
|
+
}
|
|
24
|
+
.logo { display: flex; align-items: center; gap: 12px; }
|
|
25
|
+
.logo-emoji { font-size: 32px; }
|
|
26
|
+
.logo-text { font-size: 20px; font-weight: 600; }
|
|
27
|
+
.logo-tagline { font-size: 12px; color: #888; }
|
|
28
|
+
.btn-dashboard {
|
|
29
|
+
background: rgba(255,255,255,0.1);
|
|
30
|
+
border: 1px solid rgba(255,255,255,0.2);
|
|
31
|
+
color: #fff;
|
|
32
|
+
padding: 10px 20px;
|
|
33
|
+
border-radius: 8px;
|
|
34
|
+
text-decoration: none;
|
|
35
|
+
font-weight: 500;
|
|
36
|
+
transition: all 0.2s;
|
|
37
|
+
}
|
|
38
|
+
.btn-dashboard:hover { background: rgba(255,255,255,0.2); }
|
|
39
|
+
|
|
40
|
+
/* Hero */
|
|
41
|
+
.hero {
|
|
42
|
+
text-align: center;
|
|
43
|
+
padding: 80px 0 60px;
|
|
44
|
+
}
|
|
45
|
+
.hero-emoji { font-size: 80px; margin-bottom: 24px; }
|
|
46
|
+
.hero h1 { font-size: 48px; font-weight: 700; margin-bottom: 16px; }
|
|
47
|
+
.hero h1 .highlight { color: #ff6b6b; }
|
|
48
|
+
.hero p { font-size: 20px; color: #a0a0c0; max-width: 600px; margin: 0 auto 32px; }
|
|
49
|
+
.hero-buttons { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
|
|
50
|
+
.btn-primary {
|
|
51
|
+
background: linear-gradient(135deg, #ff6b6b, #ff8e53);
|
|
52
|
+
color: #fff;
|
|
53
|
+
padding: 14px 32px;
|
|
54
|
+
border-radius: 12px;
|
|
55
|
+
text-decoration: none;
|
|
56
|
+
font-weight: 600;
|
|
57
|
+
font-size: 16px;
|
|
58
|
+
transition: transform 0.2s, box-shadow 0.2s;
|
|
59
|
+
}
|
|
60
|
+
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(255,107,107,0.3); }
|
|
61
|
+
.btn-secondary {
|
|
62
|
+
background: transparent;
|
|
63
|
+
border: 2px solid rgba(255,255,255,0.3);
|
|
64
|
+
color: #fff;
|
|
65
|
+
padding: 12px 30px;
|
|
66
|
+
border-radius: 12px;
|
|
67
|
+
text-decoration: none;
|
|
68
|
+
font-weight: 600;
|
|
69
|
+
font-size: 16px;
|
|
70
|
+
transition: all 0.2s;
|
|
71
|
+
}
|
|
72
|
+
.btn-secondary:hover { border-color: #fff; background: rgba(255,255,255,0.1); }
|
|
73
|
+
|
|
74
|
+
/* Features */
|
|
75
|
+
.features { padding: 60px 0; }
|
|
76
|
+
.features h2 { text-align: center; font-size: 28px; margin-bottom: 48px; }
|
|
77
|
+
.features-grid {
|
|
78
|
+
display: grid;
|
|
79
|
+
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
|
80
|
+
gap: 32px;
|
|
81
|
+
}
|
|
82
|
+
.feature {
|
|
83
|
+
background: rgba(255,255,255,0.05);
|
|
84
|
+
border: 1px solid rgba(255,255,255,0.1);
|
|
85
|
+
border-radius: 16px;
|
|
86
|
+
padding: 32px;
|
|
87
|
+
text-align: center;
|
|
88
|
+
}
|
|
89
|
+
.feature-emoji { font-size: 40px; margin-bottom: 16px; }
|
|
90
|
+
.feature h3 { font-size: 18px; margin-bottom: 12px; }
|
|
91
|
+
.feature p { font-size: 14px; color: #a0a0c0; line-height: 1.6; }
|
|
92
|
+
|
|
93
|
+
/* Quick Start */
|
|
94
|
+
.quickstart { padding: 60px 0; }
|
|
95
|
+
.quickstart h2 { text-align: center; font-size: 28px; margin-bottom: 48px; }
|
|
96
|
+
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
|
|
97
|
+
.step {
|
|
98
|
+
background: rgba(255,255,255,0.05);
|
|
99
|
+
border: 1px solid rgba(255,255,255,0.1);
|
|
100
|
+
border-radius: 16px;
|
|
101
|
+
padding: 28px;
|
|
102
|
+
}
|
|
103
|
+
.step-num {
|
|
104
|
+
width: 36px; height: 36px;
|
|
105
|
+
background: linear-gradient(135deg, #ff6b6b, #ff8e53);
|
|
106
|
+
border-radius: 50%;
|
|
107
|
+
display: flex; align-items: center; justify-content: center;
|
|
108
|
+
font-weight: 700; margin-bottom: 16px;
|
|
109
|
+
}
|
|
110
|
+
.step h3 { font-size: 18px; margin-bottom: 12px; }
|
|
111
|
+
.step p { font-size: 14px; color: #a0a0c0; line-height: 1.6; }
|
|
112
|
+
.code-block {
|
|
113
|
+
background: #1e1e3f;
|
|
114
|
+
border-radius: 8px;
|
|
115
|
+
padding: 12px 16px;
|
|
116
|
+
margin-top: 12px;
|
|
117
|
+
font-family: 'Monaco', 'Consolas', monospace;
|
|
118
|
+
font-size: 13px;
|
|
119
|
+
color: #7dd3fc;
|
|
120
|
+
display: flex;
|
|
121
|
+
justify-content: space-between;
|
|
122
|
+
align-items: center;
|
|
123
|
+
}
|
|
124
|
+
.copy-btn {
|
|
125
|
+
background: rgba(255,255,255,0.1);
|
|
126
|
+
border: none;
|
|
127
|
+
color: #fff;
|
|
128
|
+
padding: 4px 10px;
|
|
129
|
+
border-radius: 4px;
|
|
130
|
+
cursor: pointer;
|
|
131
|
+
font-size: 12px;
|
|
132
|
+
}
|
|
133
|
+
.copy-btn:hover { background: rgba(255,255,255,0.2); }
|
|
134
|
+
|
|
135
|
+
/* Pricing */
|
|
136
|
+
.pricing { padding: 60px 0; }
|
|
137
|
+
.pricing h2 { text-align: center; font-size: 28px; margin-bottom: 12px; }
|
|
138
|
+
.pricing-subtitle { text-align: center; color: #a0a0c0; margin-bottom: 48px; max-width: 600px; margin-left: auto; margin-right: auto; }
|
|
139
|
+
.pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; max-width: 700px; margin: 0 auto; }
|
|
140
|
+
.pricing-card {
|
|
141
|
+
background: rgba(255,255,255,0.05);
|
|
142
|
+
border: 1px solid rgba(255,255,255,0.1);
|
|
143
|
+
border-radius: 20px;
|
|
144
|
+
padding: 32px;
|
|
145
|
+
position: relative;
|
|
146
|
+
}
|
|
147
|
+
.pricing-card.recommended {
|
|
148
|
+
border-color: #ff6b6b;
|
|
149
|
+
background: rgba(255,107,107,0.05);
|
|
150
|
+
}
|
|
151
|
+
.recommended-badge {
|
|
152
|
+
position: absolute;
|
|
153
|
+
top: -12px;
|
|
154
|
+
left: 50%;
|
|
155
|
+
transform: translateX(-50%);
|
|
156
|
+
background: linear-gradient(135deg, #ff6b6b, #ff8e53);
|
|
157
|
+
padding: 4px 16px;
|
|
158
|
+
border-radius: 12px;
|
|
159
|
+
font-size: 12px;
|
|
160
|
+
font-weight: 600;
|
|
161
|
+
}
|
|
162
|
+
.pricing-card h3 { font-size: 22px; margin-bottom: 8px; }
|
|
163
|
+
.pricing-card .price { font-size: 32px; font-weight: 700; margin-bottom: 24px; }
|
|
164
|
+
.pricing-card .price span { font-size: 14px; font-weight: 400; color: #a0a0c0; }
|
|
165
|
+
.pricing-list { list-style: none; margin-bottom: 24px; }
|
|
166
|
+
.pricing-list li {
|
|
167
|
+
padding: 8px 0;
|
|
168
|
+
font-size: 14px;
|
|
169
|
+
display: flex;
|
|
170
|
+
align-items: center;
|
|
171
|
+
gap: 10px;
|
|
172
|
+
}
|
|
173
|
+
.pricing-list li.included::before { content: '✓'; color: #4ade80; }
|
|
174
|
+
.pricing-list li.excluded { color: #666; }
|
|
175
|
+
.pricing-list li.excluded::before { content: '✗'; color: #666; }
|
|
176
|
+
.pricing-btn {
|
|
177
|
+
display: block;
|
|
178
|
+
width: 100%;
|
|
179
|
+
padding: 14px;
|
|
180
|
+
border-radius: 10px;
|
|
181
|
+
text-align: center;
|
|
182
|
+
text-decoration: none;
|
|
183
|
+
font-weight: 600;
|
|
184
|
+
transition: all 0.2s;
|
|
185
|
+
}
|
|
186
|
+
.pricing-btn.outline {
|
|
187
|
+
background: transparent;
|
|
188
|
+
border: 2px solid rgba(255,255,255,0.3);
|
|
189
|
+
color: #fff;
|
|
190
|
+
}
|
|
191
|
+
.pricing-btn.outline:hover { border-color: #fff; }
|
|
192
|
+
.pricing-btn.filled {
|
|
193
|
+
background: linear-gradient(135deg, #ff6b6b, #ff8e53);
|
|
194
|
+
border: none;
|
|
195
|
+
color: #fff;
|
|
196
|
+
}
|
|
197
|
+
.pricing-btn.filled:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(255,107,107,0.3); }
|
|
198
|
+
|
|
199
|
+
/* Security Banner */
|
|
200
|
+
.security-banner {
|
|
201
|
+
background: rgba(255,255,255,0.05);
|
|
202
|
+
border: 1px solid rgba(255,255,255,0.1);
|
|
203
|
+
border-radius: 16px;
|
|
204
|
+
padding: 32px;
|
|
205
|
+
text-align: center;
|
|
206
|
+
margin: 40px 0;
|
|
207
|
+
}
|
|
208
|
+
.security-banner h3 { font-size: 20px; margin-bottom: 12px; }
|
|
209
|
+
.security-banner h3::before { content: '🔒 '; }
|
|
210
|
+
.security-banner p { color: #a0a0c0; max-width: 600px; margin: 0 auto; }
|
|
211
|
+
|
|
212
|
+
/* Footer */
|
|
213
|
+
footer {
|
|
214
|
+
padding: 40px 0;
|
|
215
|
+
border-top: 1px solid rgba(255,255,255,0.1);
|
|
216
|
+
text-align: center;
|
|
217
|
+
}
|
|
218
|
+
.footer-links { margin-bottom: 16px; }
|
|
219
|
+
.footer-links a {
|
|
220
|
+
color: #a0a0c0;
|
|
221
|
+
text-decoration: none;
|
|
222
|
+
margin: 0 16px;
|
|
223
|
+
font-size: 14px;
|
|
224
|
+
}
|
|
225
|
+
.footer-links a:hover { color: #fff; }
|
|
226
|
+
.footer-credit { color: #666; font-size: 13px; }
|
|
227
|
+
</style>
|
|
228
|
+
</head>
|
|
229
|
+
<body>
|
|
230
|
+
<div class="container">
|
|
231
|
+
<header>
|
|
232
|
+
<div class="logo">
|
|
233
|
+
<span class="logo-emoji">🦞</span>
|
|
234
|
+
<div>
|
|
235
|
+
<div class="logo-text">Clawguard</div>
|
|
236
|
+
<div class="logo-tagline">by Averecion</div>
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
<a href="/clawguard" class="btn-dashboard">Open Dashboard</a>
|
|
240
|
+
</header>
|
|
241
|
+
|
|
242
|
+
<section class="hero">
|
|
243
|
+
<div class="hero-emoji">🦞</div>
|
|
244
|
+
<h1>See Everything Your <span class="highlight">ClawdBot</span> Does</h1>
|
|
245
|
+
<p>Real-time monitoring for OpenClaw agents. Local-only visibility into AI actions, no code changes required.</p>
|
|
246
|
+
<div class="hero-buttons">
|
|
247
|
+
<a href="/clawguard" class="btn-primary">Get Started Free</a>
|
|
248
|
+
<a href="https://averecion.com" target="_blank" class="btn-secondary">See Full Version</a>
|
|
249
|
+
</div>
|
|
250
|
+
</section>
|
|
251
|
+
|
|
252
|
+
<section class="features">
|
|
253
|
+
<h2>What Clawguard Does</h2>
|
|
254
|
+
<div class="features-grid">
|
|
255
|
+
<div class="feature">
|
|
256
|
+
<div class="feature-emoji">🏠</div>
|
|
257
|
+
<h3>100% Local</h3>
|
|
258
|
+
<p>Your data never leaves your machine. No cloud accounts, no tracking, no subscriptions.</p>
|
|
259
|
+
</div>
|
|
260
|
+
<div class="feature">
|
|
261
|
+
<div class="feature-emoji">🛡️</div>
|
|
262
|
+
<h3>Threat Detection</h3>
|
|
263
|
+
<p>Detects prompt injection attempts and dangerous commands in real-time as your agent runs.</p>
|
|
264
|
+
</div>
|
|
265
|
+
<div class="feature">
|
|
266
|
+
<div class="feature-emoji">👁️</div>
|
|
267
|
+
<h3>Live Monitoring</h3>
|
|
268
|
+
<p>Watch every action your bot takes. Get alerts when risky operations are detected.</p>
|
|
269
|
+
</div>
|
|
270
|
+
<div class="feature">
|
|
271
|
+
<div class="feature-emoji">📊</div>
|
|
272
|
+
<h3>Activity Dashboard</h3>
|
|
273
|
+
<p>See everything your bot does. Track monitored, flagged, and alert-worthy actions at a glance.</p>
|
|
274
|
+
</div>
|
|
275
|
+
</div>
|
|
276
|
+
</section>
|
|
277
|
+
|
|
278
|
+
<section class="quickstart">
|
|
279
|
+
<h2>Quick Start</h2>
|
|
280
|
+
<div class="steps">
|
|
281
|
+
<div class="step">
|
|
282
|
+
<div class="step-num">1</div>
|
|
283
|
+
<h3>Install</h3>
|
|
284
|
+
<p>One command sets up everything in your project.</p>
|
|
285
|
+
<div class="code-block">
|
|
286
|
+
<code>npx averecion-lite init</code>
|
|
287
|
+
<button class="copy-btn" onclick="navigator.clipboard.writeText('npx averecion-lite init')">Copy</button>
|
|
288
|
+
</div>
|
|
289
|
+
</div>
|
|
290
|
+
<div class="step">
|
|
291
|
+
<div class="step-num">2</div>
|
|
292
|
+
<h3>Copy Secret</h3>
|
|
293
|
+
<p>The CLI will display a secret key. Keep it safe - you'll need it to access your dashboard.</p>
|
|
294
|
+
<div class="code-block" style="color: #4ade80;">
|
|
295
|
+
<code>✓ Secret key: claw_abc123...xyz</code>
|
|
296
|
+
</div>
|
|
297
|
+
</div>
|
|
298
|
+
<div class="step">
|
|
299
|
+
<div class="step-num">3</div>
|
|
300
|
+
<h3>Open Dashboard</h3>
|
|
301
|
+
<p>Visit /clawguard in your browser, paste your secret, and start monitoring!</p>
|
|
302
|
+
<a href="/clawguard" class="btn-primary" style="display: inline-block; margin-top: 12px; padding: 10px 20px; font-size: 14px;">Go to Dashboard</a>
|
|
303
|
+
</div>
|
|
304
|
+
</div>
|
|
305
|
+
</section>
|
|
306
|
+
|
|
307
|
+
<section class="pricing">
|
|
308
|
+
<h2>Need More Power?</h2>
|
|
309
|
+
<p class="pricing-subtitle">Clawguard is perfect for local development. When you're ready for production, Averecion Full has you covered.</p>
|
|
310
|
+
<div class="pricing-grid">
|
|
311
|
+
<div class="pricing-card">
|
|
312
|
+
<h3>Clawguard</h3>
|
|
313
|
+
<div class="price">Free</div>
|
|
314
|
+
<ul class="pricing-list">
|
|
315
|
+
<li class="included">Local-only monitoring</li>
|
|
316
|
+
<li class="included">Prompt injection detection</li>
|
|
317
|
+
<li class="included">Dangerous command alerts</li>
|
|
318
|
+
<li class="included">Activity dashboard</li>
|
|
319
|
+
<li class="excluded">Team collaboration</li>
|
|
320
|
+
<li class="excluded">Cloud sync</li>
|
|
321
|
+
<li class="excluded">Compliance reports</li>
|
|
322
|
+
<li class="excluded">Multi-agent support</li>
|
|
323
|
+
</ul>
|
|
324
|
+
<a href="/clawguard" class="pricing-btn outline">Use Clawguard</a>
|
|
325
|
+
</div>
|
|
326
|
+
<div class="pricing-card recommended">
|
|
327
|
+
<div class="recommended-badge">Recommended</div>
|
|
328
|
+
<h3>Averecion Full</h3>
|
|
329
|
+
<div class="price">From $99<span>/mo</span></div>
|
|
330
|
+
<ul class="pricing-list">
|
|
331
|
+
<li class="included">Everything in Clawguard</li>
|
|
332
|
+
<li class="included">Team collaboration</li>
|
|
333
|
+
<li class="included">Cloud dashboard</li>
|
|
334
|
+
<li class="included">Compliance & audit logs</li>
|
|
335
|
+
<li class="included">Multi-agent governance</li>
|
|
336
|
+
<li class="included">A/B testing for agents</li>
|
|
337
|
+
<li class="included">SSO & HIPAA options</li>
|
|
338
|
+
<li class="included">Priority support</li>
|
|
339
|
+
</ul>
|
|
340
|
+
<a href="https://averecion.com" target="_blank" class="pricing-btn filled">Upgrade to Full</a>
|
|
341
|
+
</div>
|
|
342
|
+
</div>
|
|
343
|
+
</section>
|
|
344
|
+
|
|
345
|
+
<div class="security-banner">
|
|
346
|
+
<h3>Built for OpenClaw Security</h3>
|
|
347
|
+
<p>Clawguard monitors for known ClawdBot vulnerabilities including exposed admin panels, credential theft, and prompt injection attacks.</p>
|
|
348
|
+
</div>
|
|
349
|
+
</div>
|
|
350
|
+
|
|
351
|
+
<footer>
|
|
352
|
+
<div class="footer-links">
|
|
353
|
+
<a href="/clawguard">Dashboard</a>
|
|
354
|
+
<a href="https://docs.openclaw.com" target="_blank">OpenClaw Docs</a>
|
|
355
|
+
<a href="https://averecion.com" target="_blank">Averecion Full</a>
|
|
356
|
+
</div>
|
|
357
|
+
<p class="footer-credit">Clawguard by Averecion. Open source AI governance.</p>
|
|
358
|
+
</footer>
|
|
359
|
+
</body>
|
|
360
|
+
</html>
|
package/dist/cli.d.ts
ADDED