clawmoat 0.2.1 → 0.4.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/CHANGELOG.md +32 -0
- package/Dockerfile +22 -0
- package/README.md +134 -5
- package/SECURITY.md +63 -0
- package/docs/ai-agent-security-scanner.html +691 -0
- package/docs/apple-touch-icon.png +0 -0
- package/docs/blog/host-guardian-launch.html +345 -0
- package/docs/blog/host-guardian-launch.md +249 -0
- package/docs/blog/index.html +2 -0
- package/docs/blog/langchain-security-tutorial.html +319 -0
- package/docs/blog/owasp-agentic-ai-top10.html +2 -0
- package/docs/blog/securing-ai-agents.html +2 -0
- package/docs/compare.html +2 -0
- package/docs/favicon.png +0 -0
- package/docs/icon-192.png +0 -0
- package/docs/index.html +258 -65
- package/docs/integrations/langchain.html +2 -0
- package/docs/integrations/openai.html +2 -0
- package/docs/integrations/openclaw.html +2 -0
- package/docs/logo.png +0 -0
- package/docs/logo.svg +60 -0
- package/docs/mark-with-moat.svg +33 -0
- package/docs/mark.png +0 -0
- package/docs/mark.svg +30 -0
- package/docs/og-image.png +0 -0
- package/docs/playground.html +440 -0
- package/docs/positioning-v2.md +155 -0
- package/docs/report-demo.html +399 -0
- package/docs/thanks.html +2 -0
- package/examples/github-action-workflow.yml +94 -0
- package/logo.png +0 -0
- package/logo.svg +60 -0
- package/mark-with-moat.svg +33 -0
- package/mark.png +0 -0
- package/mark.svg +30 -0
- package/package.json +1 -1
- package/server/index.js +9 -5
- package/skill/README.md +57 -0
- package/skill/SKILL.md +49 -30
- package/skill/scripts/audit.sh +28 -0
- package/skill/scripts/scan.sh +32 -0
- package/skill/scripts/test.sh +13 -0
- package/src/guardian/index.js +542 -0
- package/src/index.js +37 -0
- package/src/scanners/excessive-agency.js +88 -0
- package/wiki/Architecture.md +103 -0
- package/wiki/CLI-Reference.md +167 -0
- package/wiki/FAQ.md +135 -0
- package/wiki/Home.md +70 -0
- package/wiki/Policy-Engine.md +229 -0
- package/wiki/Scanner-Modules.md +224 -0
package/docs/index.html
CHANGED
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
|
+
<link rel="icon" type="image/png" href="/favicon.png">
|
|
5
|
+
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
|
4
6
|
<meta charset="UTF-8">
|
|
5
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>ClawMoat —
|
|
7
|
-
<meta name="description" content="
|
|
8
|
+
<title>ClawMoat — Your Machine. Your Agent. Your Rules.</title>
|
|
9
|
+
<meta name="description" content="The trust layer between AI agents and your laptop. Run self-hosted agents fearlessly with runtime security, permission tiers, and full audit trails.">
|
|
8
10
|
<link rel="canonical" href="https://clawmoat.com/">
|
|
9
11
|
|
|
10
12
|
<!-- Open Graph -->
|
|
11
|
-
<meta property="og:title" content="ClawMoat —
|
|
12
|
-
<meta property="og:description" content="
|
|
13
|
+
<meta property="og:title" content="ClawMoat — Your Machine. Your Agent. Your Rules.">
|
|
14
|
+
<meta property="og:description" content="The trust layer between AI agents and your laptop. Run self-hosted agents fearlessly with runtime security, permission tiers, and full audit trails.">
|
|
13
15
|
<meta property="og:image" content="https://clawmoat.com/og-image.png">
|
|
14
16
|
<meta property="og:url" content="https://clawmoat.com">
|
|
15
17
|
<meta property="og:type" content="website">
|
|
16
18
|
|
|
17
19
|
<!-- Twitter Card -->
|
|
18
20
|
<meta name="twitter:card" content="summary_large_image">
|
|
19
|
-
<meta name="twitter:title" content="ClawMoat —
|
|
20
|
-
<meta name="twitter:description" content="
|
|
21
|
+
<meta name="twitter:title" content="ClawMoat — Your Machine. Your Agent. Your Rules.">
|
|
22
|
+
<meta name="twitter:description" content="The trust layer between AI agents and your laptop. Run self-hosted agents fearlessly with runtime security, permission tiers, and full audit trails.">
|
|
21
23
|
<meta name="twitter:image" content="https://clawmoat.com/og-image.png">
|
|
22
24
|
|
|
23
25
|
<!-- Structured Data -->
|
|
@@ -28,28 +30,28 @@
|
|
|
28
30
|
"name": "ClawMoat",
|
|
29
31
|
"applicationCategory": "SecurityApplication",
|
|
30
32
|
"operatingSystem": "Node.js",
|
|
31
|
-
"description": "
|
|
33
|
+
"description": "The trust layer between AI agents and your laptop. Run self-hosted agents fearlessly with runtime security, permission tiers, and full audit trails.",
|
|
32
34
|
"offers": [
|
|
33
35
|
{
|
|
34
36
|
"@type": "Offer",
|
|
35
37
|
"name": "Free",
|
|
36
38
|
"price": "0",
|
|
37
39
|
"priceCurrency": "USD",
|
|
38
|
-
"description": "Open source
|
|
40
|
+
"description": "Open source Host Guardian, scanners & CLI"
|
|
39
41
|
},
|
|
40
42
|
{
|
|
41
43
|
"@type": "Offer",
|
|
42
44
|
"name": "Pro",
|
|
43
|
-
"price": "
|
|
45
|
+
"price": "14.99",
|
|
44
46
|
"priceCurrency": "USD",
|
|
45
|
-
"description": "
|
|
47
|
+
"description": "Threat intelligence, persistent audit logs, dashboard, real-time alerts"
|
|
46
48
|
},
|
|
47
49
|
{
|
|
48
50
|
"@type": "Offer",
|
|
49
51
|
"name": "Team",
|
|
50
52
|
"price": "49",
|
|
51
53
|
"priceCurrency": "USD",
|
|
52
|
-
"description": "
|
|
54
|
+
"description": "Fleet dashboard, centralized policy, compliance reports"
|
|
53
55
|
}
|
|
54
56
|
],
|
|
55
57
|
"url": "https://clawmoat.com",
|
|
@@ -64,7 +66,7 @@
|
|
|
64
66
|
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🏰</text></svg>">
|
|
65
67
|
<style>
|
|
66
68
|
*{margin:0;padding:0;box-sizing:border-box}
|
|
67
|
-
:root{--navy:#0F172A;--navy-light:#1E293B;--navy-mid:#334155;--blue:#3B82F6;--emerald:#10B981;--white:#F8FAFC;--gray:#94A3B8;--red:#EF4444}
|
|
69
|
+
:root{--navy:#0F172A;--navy-light:#1E293B;--navy-mid:#334155;--blue:#3B82F6;--emerald:#10B981;--white:#F8FAFC;--gray:#94A3B8;--red:#EF4444;--amber:#F59E0B}
|
|
68
70
|
html{scroll-behavior:smooth}
|
|
69
71
|
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--navy);color:var(--white);line-height:1.6;overflow-x:hidden}
|
|
70
72
|
a{color:var(--blue);text-decoration:none}
|
|
@@ -74,12 +76,13 @@ a:hover{text-decoration:underline}
|
|
|
74
76
|
/* Nav */
|
|
75
77
|
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(15,23,42,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(59,130,246,.15);padding:16px 0}
|
|
76
78
|
nav .container{display:flex;align-items:center;justify-content:space-between}
|
|
77
|
-
.logo{font-size:1.25rem;font-weight:700;display:flex;align-items:center;gap:8px;color:var(--white)}
|
|
79
|
+
.logo{font-size:1.25rem;font-weight:700;display:flex;align-items:center;gap:8px;color:var(--white);margin-right:40px;flex-shrink:0}
|
|
78
80
|
.logo span{color:var(--emerald)}
|
|
81
|
+
.logo img{height:44px;width:auto}
|
|
79
82
|
.nav-links{display:flex;gap:28px;align-items:center}
|
|
80
83
|
.nav-links a{color:var(--gray);font-size:.9rem;transition:color .2s}
|
|
81
84
|
.nav-links a:hover{color:var(--white);text-decoration:none}
|
|
82
|
-
.nav-links .btn-sm{color:var(--navy);background:var(--emerald);padding:
|
|
85
|
+
.nav-links .btn-sm{color:var(--navy);background:var(--emerald);padding:6px 28px;border-radius:20px;font-weight:600;font-size:.85rem;white-space:nowrap}
|
|
83
86
|
.nav-links .btn-sm:hover{opacity:.9}
|
|
84
87
|
.menu-toggle{display:none;background:none;border:none;color:var(--white);font-size:1.5rem;cursor:pointer}
|
|
85
88
|
|
|
@@ -154,6 +157,29 @@ section{padding:100px 0}
|
|
|
154
157
|
.terminal-body .safe{color:var(--emerald)}
|
|
155
158
|
.terminal-body .info{color:var(--blue)}
|
|
156
159
|
|
|
160
|
+
/* Permission Tiers */
|
|
161
|
+
.tiers-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:32px}
|
|
162
|
+
@media(max-width:768px){.tiers-grid{grid-template-columns:repeat(2,1fr)}}
|
|
163
|
+
@media(max-width:480px){.tiers-grid{grid-template-columns:1fr}}
|
|
164
|
+
.tier-card{background:var(--navy);border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:24px;text-align:center;transition:border-color .2s}
|
|
165
|
+
.tier-card:hover{border-color:var(--emerald)}
|
|
166
|
+
.tier-card .tier-icon{font-size:2.5rem;margin-bottom:12px}
|
|
167
|
+
.tier-card h3{font-size:1.1rem;margin-bottom:4px}
|
|
168
|
+
.tier-card .tier-level{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--emerald);margin-bottom:12px}
|
|
169
|
+
.tier-card ul{list-style:none;text-align:left;font-size:.85rem;color:var(--gray)}
|
|
170
|
+
.tier-card li{padding:3px 0}
|
|
171
|
+
.tier-card li::before{content:'✓ ';color:var(--emerald);font-weight:700}
|
|
172
|
+
.tier-card li.blocked::before{content:'✗ ';color:var(--red)}
|
|
173
|
+
.tier-card li.blocked{color:var(--red);opacity:.7}
|
|
174
|
+
|
|
175
|
+
/* Forbidden Zones */
|
|
176
|
+
.zones-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:32px}
|
|
177
|
+
.zone-card{background:var(--navy);border:1px solid rgba(239,68,68,.2);border-radius:14px;padding:20px;text-align:center;transition:border-color .2s}
|
|
178
|
+
.zone-card:hover{border-color:var(--red)}
|
|
179
|
+
.zone-card .zone-icon{font-size:2rem;margin-bottom:8px}
|
|
180
|
+
.zone-card h4{font-size:.95rem;margin-bottom:4px}
|
|
181
|
+
.zone-card code{font-size:.75rem;color:var(--red);background:rgba(239,68,68,.1);padding:2px 8px;border-radius:4px}
|
|
182
|
+
|
|
157
183
|
/* Pricing */
|
|
158
184
|
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px}
|
|
159
185
|
.price-card{background:var(--navy-light);border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:32px;display:flex;flex-direction:column}
|
|
@@ -214,20 +240,22 @@ footer{border-top:1px solid rgba(255,255,255,.06);padding:48px 0 32px;color:var(
|
|
|
214
240
|
<!-- Nav -->
|
|
215
241
|
<nav>
|
|
216
242
|
<div class="container">
|
|
217
|
-
<div class="logo"
|
|
243
|
+
<div class="logo"><a href="/"><img src="/logo.svg" alt="ClawMoat" style="height:44px"></a></div>
|
|
218
244
|
<button class="menu-toggle" onclick="document.querySelector('.nav-links').classList.toggle('open')" aria-label="Menu">☰</button>
|
|
219
245
|
<div class="nav-links">
|
|
220
246
|
<a href="#problem">Why</a>
|
|
221
|
-
<a href="#
|
|
247
|
+
<a href="#guardian">Guardian</a>
|
|
222
248
|
<a href="#features">Features</a>
|
|
223
249
|
<a href="#demo">Demo</a>
|
|
224
250
|
<a href="#badge">Badge</a>
|
|
225
251
|
<a href="#pricing">Pricing</a>
|
|
252
|
+
<a href="/playground.html">Playground</a>
|
|
226
253
|
<a href="/compare.html">Compare</a>
|
|
227
254
|
<a href="/integrations/langchain.html">Integrations</a>
|
|
255
|
+
<a href="/report-demo.html">Sample Report</a>
|
|
228
256
|
<a href="/blog/">Blog</a>
|
|
229
257
|
<a href="https://github.com/darfaz/clawmoat">GitHub</a>
|
|
230
|
-
<a href="#waitlist" class="btn-sm">
|
|
258
|
+
<a href="#waitlist" class="btn-sm">Join Waitlist</a>
|
|
231
259
|
</div>
|
|
232
260
|
</div>
|
|
233
261
|
</nav>
|
|
@@ -241,16 +269,18 @@ footer{border-top:1px solid rgba(255,255,255,.06);padding:48px 0 32px;color:var(
|
|
|
241
269
|
<div class="hero-video-overlay"></div>
|
|
242
270
|
</div>
|
|
243
271
|
<div class="container">
|
|
244
|
-
<h1
|
|
245
|
-
<p>
|
|
272
|
+
<h1><span class="highlight">Your Machine.</span> Your Agent.<br>Your Rules.</h1>
|
|
273
|
+
<p>The trust layer between AI agents and your laptop. Run self-hosted agents fearlessly with runtime security, permission tiers, and full audit trails.</p>
|
|
246
274
|
<div class="hero-btns">
|
|
247
275
|
<a href="#waitlist" class="btn btn-primary">Get Early Access</a>
|
|
248
276
|
<a href="https://github.com/darfaz/clawmoat" class="btn btn-outline">⭐ Star on GitHub</a>
|
|
249
277
|
</div>
|
|
250
278
|
<div class="hero-badges">
|
|
251
|
-
<span
|
|
279
|
+
<span><a href="https://www.npmjs.com/package/clawmoat"><img src="https://img.shields.io/npm/v/clawmoat?style=flat-square&color=3B82F6" alt="npm" style="height:18px;vertical-align:middle"></a></span>
|
|
280
|
+
<span>🛡️ Host Guardian</span>
|
|
281
|
+
<span>🔒 4 Permission Tiers</span>
|
|
252
282
|
<span>⚡ Zero Dependencies</span>
|
|
253
|
-
<span>✅
|
|
283
|
+
<span>✅ 68 Tests Passing</span>
|
|
254
284
|
<span>📦 MIT License</span>
|
|
255
285
|
</div>
|
|
256
286
|
</div>
|
|
@@ -287,6 +317,159 @@ footer{border-top:1px solid rgba(255,255,255,.06);padding:48px 0 32px;color:var(
|
|
|
287
317
|
</div>
|
|
288
318
|
</section>
|
|
289
319
|
|
|
320
|
+
<!-- Host Guardian — THE LEAD STORY -->
|
|
321
|
+
<section id="guardian">
|
|
322
|
+
<div class="container">
|
|
323
|
+
<div class="section-label">Host Guardian</div>
|
|
324
|
+
<h2 class="section-title">The security layer between AI and your laptop</h2>
|
|
325
|
+
<p class="section-sub">Permission tiers let you dial up access as trust grows. Start locked down, open up gradually — like hiring a new employee.</p>
|
|
326
|
+
|
|
327
|
+
<div class="tiers-grid">
|
|
328
|
+
<div class="tier-card">
|
|
329
|
+
<div class="tier-icon">👁️</div>
|
|
330
|
+
<div class="tier-level">Observer</div>
|
|
331
|
+
<h3>Read Only</h3>
|
|
332
|
+
<ul>
|
|
333
|
+
<li>Read files</li>
|
|
334
|
+
<li>List directories</li>
|
|
335
|
+
<li>View system info</li>
|
|
336
|
+
<li class="blocked">Write files</li>
|
|
337
|
+
<li class="blocked">Run commands</li>
|
|
338
|
+
<li class="blocked">Network access</li>
|
|
339
|
+
</ul>
|
|
340
|
+
</div>
|
|
341
|
+
<div class="tier-card">
|
|
342
|
+
<div class="tier-icon">🔨</div>
|
|
343
|
+
<div class="tier-level">Worker</div>
|
|
344
|
+
<h3>Safe Commands</h3>
|
|
345
|
+
<ul>
|
|
346
|
+
<li>Read & write files</li>
|
|
347
|
+
<li>Safe shell commands</li>
|
|
348
|
+
<li>Git operations</li>
|
|
349
|
+
<li>Package managers</li>
|
|
350
|
+
<li class="blocked">Dangerous commands</li>
|
|
351
|
+
<li class="blocked">Credential access</li>
|
|
352
|
+
</ul>
|
|
353
|
+
</div>
|
|
354
|
+
<div class="tier-card" style="border-color:var(--blue)">
|
|
355
|
+
<div class="tier-icon">⚡</div>
|
|
356
|
+
<div class="tier-level">Standard</div>
|
|
357
|
+
<h3>Recommended</h3>
|
|
358
|
+
<ul>
|
|
359
|
+
<li>Most shell commands</li>
|
|
360
|
+
<li>Network requests</li>
|
|
361
|
+
<li>File system access</li>
|
|
362
|
+
<li>Forbidden zones enforced</li>
|
|
363
|
+
<li class="blocked">Credential directories</li>
|
|
364
|
+
<li class="blocked">System-level changes</li>
|
|
365
|
+
</ul>
|
|
366
|
+
</div>
|
|
367
|
+
<div class="tier-card">
|
|
368
|
+
<div class="tier-icon">🔓</div>
|
|
369
|
+
<div class="tier-level">Full</div>
|
|
370
|
+
<h3>Unrestricted</h3>
|
|
371
|
+
<ul>
|
|
372
|
+
<li>All commands</li>
|
|
373
|
+
<li>All file access</li>
|
|
374
|
+
<li>Network unrestricted</li>
|
|
375
|
+
<li>Forbidden zones still active</li>
|
|
376
|
+
<li>Full audit trail</li>
|
|
377
|
+
<li>⚠️ Use with caution</li>
|
|
378
|
+
</ul>
|
|
379
|
+
</div>
|
|
380
|
+
</div>
|
|
381
|
+
|
|
382
|
+
<!-- Code Example -->
|
|
383
|
+
<div style="margin-top:48px">
|
|
384
|
+
<div class="terminal">
|
|
385
|
+
<div class="terminal-bar">
|
|
386
|
+
<span class="terminal-dot"></span>
|
|
387
|
+
<span class="terminal-dot"></span>
|
|
388
|
+
<span class="terminal-dot"></span>
|
|
389
|
+
<span class="terminal-title">host-guardian.js — usage example</span>
|
|
390
|
+
</div>
|
|
391
|
+
<div class="terminal-body">
|
|
392
|
+
<span class="info">import</span> <span class="cmd">{ HostGuardian }</span> <span class="info">from</span> <span class="safe">'clawmoat'</span><span class="cmd">;</span>
|
|
393
|
+
|
|
394
|
+
<span class="output">// Initialize with a permission tier</span>
|
|
395
|
+
<span class="info">const</span> <span class="cmd">guardian</span> = <span class="info">new</span> <span class="cmd">HostGuardian({</span>
|
|
396
|
+
<span class="cmd">tier:</span> <span class="safe">'standard'</span><span class="cmd">,</span>
|
|
397
|
+
<span class="cmd">forbiddenZones:</span> <span class="safe">'default'</span><span class="cmd">,</span> <span class="output">// SSH, AWS, crypto wallets, etc.</span>
|
|
398
|
+
<span class="cmd">auditLog:</span> <span class="safe">true</span>
|
|
399
|
+
<span class="cmd">});</span>
|
|
400
|
+
|
|
401
|
+
<span class="output">// Validate before every agent action</span>
|
|
402
|
+
<span class="info">const</span> <span class="cmd">result</span> = <span class="cmd">guardian.validate({</span>
|
|
403
|
+
<span class="cmd">action:</span> <span class="safe">'file.read'</span><span class="cmd">,</span>
|
|
404
|
+
<span class="cmd">path:</span> <span class="safe">'~/.ssh/id_rsa'</span>
|
|
405
|
+
<span class="cmd">});</span>
|
|
406
|
+
|
|
407
|
+
<span class="output">// result → { allowed: false, reason: 'Forbidden zone: SSH keys' }</span>
|
|
408
|
+
|
|
409
|
+
<span class="info">const</span> <span class="cmd">ok</span> = <span class="cmd">guardian.validate({</span>
|
|
410
|
+
<span class="cmd">action:</span> <span class="safe">'shell.exec'</span><span class="cmd">,</span>
|
|
411
|
+
<span class="cmd">command:</span> <span class="safe">'git status'</span>
|
|
412
|
+
<span class="cmd">});</span>
|
|
413
|
+
|
|
414
|
+
<span class="output">// ok → { allowed: true, tier: 'standard' }</span>
|
|
415
|
+
</div>
|
|
416
|
+
</div>
|
|
417
|
+
</div>
|
|
418
|
+
</div>
|
|
419
|
+
</section>
|
|
420
|
+
|
|
421
|
+
<!-- What We Protect — Forbidden Zones -->
|
|
422
|
+
<section class="problem" id="protect">
|
|
423
|
+
<div class="container">
|
|
424
|
+
<div class="section-label">What We Protect</div>
|
|
425
|
+
<h2 class="section-title">Forbidden zones — auto-protected, always</h2>
|
|
426
|
+
<p class="section-sub">These sensitive areas are off-limits by default, regardless of permission tier. Your credentials stay yours.</p>
|
|
427
|
+
|
|
428
|
+
<div class="zones-grid">
|
|
429
|
+
<div class="zone-card">
|
|
430
|
+
<div class="zone-icon">🔑</div>
|
|
431
|
+
<h4>SSH Keys</h4>
|
|
432
|
+
<code>~/.ssh/*</code>
|
|
433
|
+
</div>
|
|
434
|
+
<div class="zone-card">
|
|
435
|
+
<div class="zone-icon">☁️</div>
|
|
436
|
+
<h4>AWS Credentials</h4>
|
|
437
|
+
<code>~/.aws/*</code>
|
|
438
|
+
</div>
|
|
439
|
+
<div class="zone-card">
|
|
440
|
+
<div class="zone-icon">🌐</div>
|
|
441
|
+
<h4>Browser Data</h4>
|
|
442
|
+
<code>cookies, passwords, sessions</code>
|
|
443
|
+
</div>
|
|
444
|
+
<div class="zone-card">
|
|
445
|
+
<div class="zone-icon">💰</div>
|
|
446
|
+
<h4>Crypto Wallets</h4>
|
|
447
|
+
<code>seed phrases, wallet files</code>
|
|
448
|
+
</div>
|
|
449
|
+
<div class="zone-card">
|
|
450
|
+
<div class="zone-icon">🔐</div>
|
|
451
|
+
<h4>GPG / PGP Keys</h4>
|
|
452
|
+
<code>~/.gnupg/*</code>
|
|
453
|
+
</div>
|
|
454
|
+
<div class="zone-card">
|
|
455
|
+
<div class="zone-icon">📦</div>
|
|
456
|
+
<h4>Package Tokens</h4>
|
|
457
|
+
<code>.npmrc, .pypirc, .gem</code>
|
|
458
|
+
</div>
|
|
459
|
+
<div class="zone-card">
|
|
460
|
+
<div class="zone-icon">🗄️</div>
|
|
461
|
+
<h4>Database Creds</h4>
|
|
462
|
+
<code>.pgpass, .my.cnf</code>
|
|
463
|
+
</div>
|
|
464
|
+
<div class="zone-card">
|
|
465
|
+
<div class="zone-icon">🏗️</div>
|
|
466
|
+
<h4>Cloud Configs</h4>
|
|
467
|
+
<code>~/.azure, ~/.gcloud, ~/.kube</code>
|
|
468
|
+
</div>
|
|
469
|
+
</div>
|
|
470
|
+
</div>
|
|
471
|
+
</section>
|
|
472
|
+
|
|
290
473
|
<!-- How It Works -->
|
|
291
474
|
<section id="how">
|
|
292
475
|
<div class="container">
|
|
@@ -328,12 +511,12 @@ footer{border-top:1px solid rgba(255,255,255,.06);padding:48px 0 32px;color:var(
|
|
|
328
511
|
</div>
|
|
329
512
|
</section>
|
|
330
513
|
|
|
331
|
-
<!-- Features -->
|
|
514
|
+
<!-- Features (Scanners — now supporting features) -->
|
|
332
515
|
<section class="problem" id="features">
|
|
333
516
|
<div class="container">
|
|
334
|
-
<div class="section-label">Features</div>
|
|
335
|
-
<h2 class="section-title">
|
|
336
|
-
<p class="section-sub">
|
|
517
|
+
<div class="section-label">Scanners & Features</div>
|
|
518
|
+
<h2 class="section-title">Comprehensive scanning built in</h2>
|
|
519
|
+
<p class="section-sub">Host Guardian is the gatekeeper. Scanners are the intelligence — detecting threats before they reach your machine.</p>
|
|
337
520
|
<div class="features-grid">
|
|
338
521
|
<div class="feature-card">
|
|
339
522
|
<div class="icon">🛡️</div>
|
|
@@ -381,10 +564,10 @@ footer{border-top:1px solid rgba(255,255,255,.06);padding:48px 0 32px;color:var(
|
|
|
381
564
|
<div class="owasp-grid">
|
|
382
565
|
<div class="owasp-item"><span class="code">ASI01</span><div><strong>Agent Goal Hijack</strong><p>Prompt injection scanning on all inbound content</p></div></div>
|
|
383
566
|
<div class="owasp-item"><span class="code">ASI02</span><div><strong>Tool Misuse</strong><p>Policy engine validates every tool call</p></div></div>
|
|
384
|
-
<div class="owasp-item"><span class="code">ASI03</span><div><strong>Privilege Abuse</strong><p>
|
|
567
|
+
<div class="owasp-item"><span class="code">ASI03</span><div><strong>Privilege Abuse</strong><p>Permission tiers & Host Guardian enforce least privilege</p></div></div>
|
|
385
568
|
<div class="owasp-item"><span class="code">ASI04</span><div><strong>Supply Chain</strong><p>Skill/plugin static analysis (v0.3)</p></div></div>
|
|
386
569
|
<div class="owasp-item"><span class="code">ASI05</span><div><strong>Code Execution</strong><p>Shell command validation & allowlists</p></div></div>
|
|
387
|
-
<div class="owasp-item"><span class="code">ASI06</span><div><strong>Data Leakage</strong><p>
|
|
570
|
+
<div class="owasp-item"><span class="code">ASI06</span><div><strong>Data Leakage</strong><p>Forbidden zones + outbound PII & secret scanning</p></div></div>
|
|
388
571
|
</div>
|
|
389
572
|
</div>
|
|
390
573
|
</div>
|
|
@@ -486,69 +669,78 @@ footer{border-top:1px solid rgba(255,255,255,.06);padding:48px 0 32px;color:var(
|
|
|
486
669
|
<div class="container">
|
|
487
670
|
<div class="section-label">Pricing</div>
|
|
488
671
|
<h2 class="section-title">Protect every agent, any scale</h2>
|
|
489
|
-
<p class="section-sub">Open source core is free forever.
|
|
672
|
+
<p class="section-sub">Open source core is free forever. All paid plans include a <strong>30-day free trial</strong> and <strong>14-day money-back guarantee</strong>.</p>
|
|
490
673
|
<div class="pricing-grid">
|
|
491
674
|
<div class="price-card">
|
|
492
675
|
<h3>Free</h3>
|
|
493
676
|
<div class="price">$0</div>
|
|
494
|
-
<div class="desc">Open source
|
|
677
|
+
<div class="desc">Open source — forever free</div>
|
|
495
678
|
<ul>
|
|
679
|
+
<li>Host Guardian (all 4 tiers)</li>
|
|
680
|
+
<li>20+ forbidden zone patterns</li>
|
|
496
681
|
<li>Prompt injection scanning</li>
|
|
497
682
|
<li>Jailbreak detection</li>
|
|
498
683
|
<li>Secret scanning</li>
|
|
499
684
|
<li>Policy engine (YAML)</li>
|
|
500
|
-
<li>
|
|
685
|
+
<li>Audit trail (in-memory)</li>
|
|
501
686
|
<li>Community support</li>
|
|
502
687
|
</ul>
|
|
503
688
|
<a href="https://github.com/darfaz/clawmoat" class="btn btn-outline">Install Free</a>
|
|
504
689
|
</div>
|
|
690
|
+
<div class="price-card">
|
|
691
|
+
<h3>Security Kit</h3>
|
|
692
|
+
<div class="price">$29</div>
|
|
693
|
+
<div class="desc">Pay what you want — own it forever</div>
|
|
694
|
+
<ul>
|
|
695
|
+
<li>Everything in Free</li>
|
|
696
|
+
<li>OpenClaw security skill</li>
|
|
697
|
+
<li>Real-time scanning</li>
|
|
698
|
+
<li>Custom policy rules</li>
|
|
699
|
+
<li>Scan history & audit log</li>
|
|
700
|
+
<li>1 year of pattern updates</li>
|
|
701
|
+
</ul>
|
|
702
|
+
<a href="https://buy.stripe.com/test_9B65kC5WJ6DMgbI7C35wI00" class="btn btn-primary">Buy — pay what you want</a>
|
|
703
|
+
<p style="font-size:.75rem;color:var(--gray);margin-top:8px;text-align:center">14-day money-back guarantee</p>
|
|
704
|
+
</div>
|
|
505
705
|
<div class="price-card popular">
|
|
506
706
|
<h3>Pro</h3>
|
|
507
|
-
<div class="price">$
|
|
508
|
-
<div class="desc"
|
|
707
|
+
<div class="price">$14.99<span>/mo</span></div>
|
|
708
|
+
<div class="desc">First month free — continuous protection</div>
|
|
509
709
|
<ul>
|
|
510
|
-
<li>Everything in
|
|
511
|
-
<li>
|
|
512
|
-
<li>
|
|
513
|
-
<li>
|
|
514
|
-
<li>
|
|
515
|
-
<li>
|
|
710
|
+
<li>Everything in Security Kit</li>
|
|
711
|
+
<li>Threat intelligence feed</li>
|
|
712
|
+
<li>Persistent audit logs (queryable)</li>
|
|
713
|
+
<li>Real-time alerts (Telegram/Slack/Discord/email)</li>
|
|
714
|
+
<li>Security dashboard</li>
|
|
715
|
+
<li>Custom forbidden zones (YAML)</li>
|
|
716
|
+
<li>Priority pattern updates</li>
|
|
717
|
+
<li>Email support</li>
|
|
516
718
|
</ul>
|
|
517
719
|
<div style="display:flex;gap:8px;flex-direction:column">
|
|
518
|
-
<a href="#" onclick="checkout('
|
|
519
|
-
<a href="#" onclick="checkout('
|
|
720
|
+
<a href="#" onclick="checkout('shield-monthly');return false" class="btn btn-primary">Start free trial</a>
|
|
721
|
+
<a href="#" onclick="checkout('shield-yearly');return false" class="btn btn-outline" style="font-size:.9rem">$149/year — save 17%</a>
|
|
520
722
|
</div>
|
|
723
|
+
<p style="font-size:.75rem;color:var(--gray);margin-top:8px;text-align:center">30 days free · 14-day refund guarantee</p>
|
|
521
724
|
</div>
|
|
522
725
|
<div class="price-card">
|
|
523
726
|
<h3>Team</h3>
|
|
524
727
|
<div class="price">$49<span>/mo</span></div>
|
|
525
|
-
<div class="desc"
|
|
728
|
+
<div class="desc">First month free — multi-agent security</div>
|
|
526
729
|
<ul>
|
|
527
730
|
<li>Everything in Pro</li>
|
|
528
|
-
<li>
|
|
529
|
-
<li>
|
|
530
|
-
<li>
|
|
531
|
-
<li>
|
|
731
|
+
<li>Fleet dashboard (all machines)</li>
|
|
732
|
+
<li>Centralized policy management</li>
|
|
733
|
+
<li>Compliance reports (SOC2-style)</li>
|
|
734
|
+
<li>Shared threat intelligence</li>
|
|
735
|
+
<li>Role-based policies</li>
|
|
736
|
+
<li>Up to 10 machines</li>
|
|
532
737
|
<li>Priority support</li>
|
|
533
738
|
</ul>
|
|
534
739
|
<div style="display:flex;gap:8px;flex-direction:column">
|
|
535
|
-
<a href="#" onclick="checkout('team-monthly');return false" class="btn btn-primary"
|
|
740
|
+
<a href="#" onclick="checkout('team-monthly');return false" class="btn btn-primary">Start free trial</a>
|
|
536
741
|
<a href="#" onclick="checkout('team-yearly');return false" class="btn btn-outline" style="font-size:.9rem">$499/year — save 15%</a>
|
|
537
742
|
</div>
|
|
538
|
-
|
|
539
|
-
<div class="price-card">
|
|
540
|
-
<h3>Enterprise</h3>
|
|
541
|
-
<div class="price">Custom</div>
|
|
542
|
-
<div class="desc">On-prem, compliance, SLA</div>
|
|
543
|
-
<ul>
|
|
544
|
-
<li>Everything in Team</li>
|
|
545
|
-
<li>Unlimited members</li>
|
|
546
|
-
<li>Self-hosted option</li>
|
|
547
|
-
<li>SSO / SAML</li>
|
|
548
|
-
<li>Compliance reports</li>
|
|
549
|
-
<li>Dedicated support</li>
|
|
550
|
-
</ul>
|
|
551
|
-
<a href="mailto:hello@clawmoat.com" class="btn btn-outline">Contact Sales</a>
|
|
743
|
+
<p style="font-size:.75rem;color:var(--gray);margin-top:8px;text-align:center">30 days free · 14-day refund guarantee</p>
|
|
552
744
|
</div>
|
|
553
745
|
</div>
|
|
554
746
|
</div>
|
|
@@ -565,7 +757,7 @@ footer{border-top:1px solid rgba(255,255,255,.06);padding:48px 0 32px;color:var(
|
|
|
565
757
|
<div class="oss-badges">
|
|
566
758
|
<a href="https://github.com/darfaz/clawmoat"><img src="https://img.shields.io/github/stars/darfaz/clawmoat?style=social" alt="GitHub stars"></a>
|
|
567
759
|
<a href="https://github.com/darfaz/clawmoat/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
|
|
568
|
-
<a href="https://www.npmjs.com/package/clawmoat"><img src="https://img.shields.io/
|
|
760
|
+
<a href="https://www.npmjs.com/package/clawmoat"><img src="https://img.shields.io/npm/v/clawmoat" alt="npm"></a>
|
|
569
761
|
</div>
|
|
570
762
|
</div>
|
|
571
763
|
</div>
|
|
@@ -576,7 +768,7 @@ footer{border-top:1px solid rgba(255,255,255,.06);padding:48px 0 32px;color:var(
|
|
|
576
768
|
<div class="container">
|
|
577
769
|
<div class="section-label">Early Access</div>
|
|
578
770
|
<h2 class="section-title">Get ClawMoat Pro before launch</h2>
|
|
579
|
-
<p class="section-sub" style="margin:16px auto 0">Join the waitlist for early access to the
|
|
771
|
+
<p class="section-sub" style="margin:16px auto 0">Join the waitlist for early access to the dashboard, threat intelligence feed, and team features.</p>
|
|
580
772
|
<form class="cta-form" id="waitlist-form" action="https://formsubmit.co/hello@clawmoat.com" method="POST">
|
|
581
773
|
<input type="email" name="email" placeholder="you@company.com" required aria-label="Email">
|
|
582
774
|
<input type="hidden" name="_subject" value="🏰 New ClawMoat Waitlist Signup">
|
|
@@ -602,11 +794,12 @@ footer{border-top:1px solid rgba(255,255,255,.06);padding:48px 0 32px;color:var(
|
|
|
602
794
|
<div class="container">
|
|
603
795
|
<div class="footer-grid">
|
|
604
796
|
<div>
|
|
605
|
-
<div class="logo" style="margin-bottom:12px"
|
|
606
|
-
<p style="color:var(--gray);font-size:.85rem;max-width:280px">
|
|
797
|
+
<div class="logo" style="margin-bottom:12px"><a href="/"><img src="/logo.svg" alt="ClawMoat" style="height:44px"></a></div>
|
|
798
|
+
<p style="color:var(--gray);font-size:.85rem;max-width:280px">The trust layer between AI agents and your laptop. Runtime security, permission tiers, and full audit trails.</p>
|
|
607
799
|
</div>
|
|
608
800
|
<div>
|
|
609
801
|
<h4>Product</h4>
|
|
802
|
+
<a href="#guardian">Host Guardian</a>
|
|
610
803
|
<a href="#features">Features</a>
|
|
611
804
|
<a href="#pricing">Pricing</a>
|
|
612
805
|
<a href="#demo">Demo</a>
|
|
@@ -634,7 +827,7 @@ footer{border-top:1px solid rgba(255,255,255,.06);padding:48px 0 32px;color:var(
|
|
|
634
827
|
</footer>
|
|
635
828
|
|
|
636
829
|
<script>
|
|
637
|
-
const API_URL = 'https://clawmoat-
|
|
830
|
+
const API_URL = 'https://clawmoat-production.up.railway.app';
|
|
638
831
|
async function checkout(plan) {
|
|
639
832
|
try {
|
|
640
833
|
const res = await fetch(API_URL + '/api/checkout', {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
|
+
<link rel="icon" type="image/png" href="/favicon.png">
|
|
5
|
+
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
|
4
6
|
<meta charset="UTF-8">
|
|
5
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
8
|
<title>Secure Your LangChain Agent with ClawMoat</title>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
|
+
<link rel="icon" type="image/png" href="/favicon.png">
|
|
5
|
+
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
|
4
6
|
<meta charset="UTF-8">
|
|
5
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
8
|
<title>Securing OpenAI Function Calling with ClawMoat</title>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
|
+
<link rel="icon" type="image/png" href="/favicon.png">
|
|
5
|
+
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
|
4
6
|
<meta charset="UTF-8">
|
|
5
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
8
|
<title>ClawMoat + OpenClaw: Complete Agent Security</title>
|
package/docs/logo.png
ADDED
|
Binary file
|
package/docs/logo.svg
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="Layer_2" data-name="Layer 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1862.61 409.05">
|
|
3
|
+
<defs>
|
|
4
|
+
<style>
|
|
5
|
+
.cls-1 {
|
|
6
|
+
fill: #58adb2;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.cls-1, .cls-2, .cls-3 {
|
|
10
|
+
stroke-width: 0px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.cls-2 {
|
|
14
|
+
fill: #35c7b3;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.cls-3 {
|
|
18
|
+
fill: #ec4443;
|
|
19
|
+
}
|
|
20
|
+
</style>
|
|
21
|
+
</defs>
|
|
22
|
+
<g id="Layer_1-2" data-name="Layer 1">
|
|
23
|
+
<g>
|
|
24
|
+
<path class="cls-3" d="M106.84,204.73c-26.6,0-45.79,15.05-45.79,49.51s18.36,51.8,46.22,50.31c27.23-1.46,37.47-16.43,42.92-37.63l57.12-1.07c-4.49,49.64-36.81,88.21-98.74,88.21C43.17,354.06,0,320.79,0,255.83s42.3-100.22,107.27-100.22,93.35,32.39,100.29,85.31l-57.56,1.44c-4.79-21.79-16.57-37.63-43.17-37.63Z"/>
|
|
25
|
+
<path class="cls-3" d="M297.55,348.52h-59.74V105.7h59.74v242.82Z"/>
|
|
26
|
+
<path class="cls-3" d="M454.77,302.57h-.87c-9.16,32.09-31.83,49.91-66.72,49.91s-62.79-17.82-62.79-54.66c0-34.07,22.24-57.44,76.75-57.44h53.64v-7.92c0-20.2-9.59-31.29-32.27-31.29-19.62,0-32.27,7.92-36.19,29.71l-55.82.6c4.84-42.57,30.52-75.07,94.63-75.07s88.96,27.73,88.96,75.66v116.46h-59.31v-45.95ZM454.77,276.42v-5.55h-44.48c-17.44,0-27.91,7.13-27.91,17.43,0,11.49,7.85,20.6,30.52,20.6,25.29,0,41.86-13.47,41.86-32.48Z"/>
|
|
27
|
+
<path class="cls-1" d="M1651.6,302.57h-.87c-9.16,32.09-31.83,49.91-66.72,49.91s-62.79-17.82-62.79-54.66c0-34.07,22.24-57.44,76.75-57.44h53.64v-7.92c0-20.2-9.59-31.29-32.27-31.29-19.62,0-32.27,7.92-36.19,29.71l-55.82.6c4.84-42.57,30.52-75.07,94.63-75.07s88.96,27.73,88.96,75.66v116.46h-59.31v-45.95ZM1651.6,276.42v-5.55h-44.48c-17.44,0-27.91,7.13-27.91,17.43,0,11.49,7.85,20.6,30.52,20.6,25.29,0,41.86-13.47,41.86-32.48Z"/>
|
|
28
|
+
<path class="cls-1" d="M1290.36,254.64c0-62.59,41.86-99.03,107.27-99.03s106.84,36.44,106.84,99.03-40.55,99.42-106.84,99.42-107.27-37.63-107.27-99.42ZM1350.1,254.24c0,30.5,16.57,50.31,47.09,50.31s47.97-19.81,47.97-50.31-17.44-49.51-47.53-49.51-47.53,19.41-47.53,49.51Z"/>
|
|
29
|
+
<path class="cls-1" d="M1745.74,205.92h-23.98v-45.16h23.98v-47.14h59.31v47.14h54.51v45.16h-54.51v73.28c0,15.05,6.11,22.18,23.98,22.18,9.16,0,19.62-2.77,27.04-4.36l6.54,49.91c-15.7,4.36-26.16,7.13-48.84,7.13-47.97,0-68.03-28.92-68.03-64.57v-83.58Z"/>
|
|
30
|
+
<g>
|
|
31
|
+
<path class="cls-3" d="M825.16,99.44c-1.19-3.03-2.51-6.64-3.44-9.86-1-3.45-.42-7.14,1.53-10.16,2.57-3.99,4.84-8.47-1.36-13.45-2.12-1.71-8-8-.02-13.88.79-.59.93-1.72.28-2.46-2.32-2.64-6.17-8.59.56-13.44.93-.67,1-1.99.1-2.7-2.29-1.81-5.14-5.76-2.12-13.4.62-1.56-1.32-2.87-2.51-1.69-14.64,14.5-45.52,51.95-35.16,101.9.4,1.91,2.28,3.13,4.2,2.79,6.44-1.16,20.82-4.45,34.15-12.41,3.85-2.3,5.42-7.07,3.79-11.24Z"/>
|
|
32
|
+
<g>
|
|
33
|
+
<path class="cls-3" d="M854.92,197.55c-13.4,20.57-21.39,75.28-27.17,110.91l-7.15,40.64h-85.04l-21.37-116.44c-2.21-12.34-4.49-25.34-6.75-38.57-3.13-18.14-6.18-36.67-8.96-54.32h-5.66c-2.77,17.65-5.83,36.17-8.96,54.32-2.26,13.23-4.54,26.23-6.75,38.57l-21.36,116.44h-85.04l-7.14-40.64c-5.81-35.63-13.77-90.35-27.17-110.91-35.28-54.27-81.51-123.35,7.94-197.05,2.23-1.83,5.17,1.81,3.6,4.25-4.3,6.72-7.17,16.78.21,29.1.54.92.31,2.07-.61,2.61-2.68,1.62-7,5.41-1.1,11,.78.73.73,2-.09,2.7-2.44,2.07-5.78,6.32,1.5,10.27,1.11.59,1.36,2.09.52,2.99-2.92,3.08-3.46,8.63,2.3,9.71,1.2.23,1.27,2.04.45,2.91-1.72,1.79-3.06,5.15-1.34,8.51.71,1.36,2.82,2.75,4.32,3.1,1.69.4,4.35,2.94,4.49,5.34.28,5.17-18.69,22.99,50.02,37.14,4.49.92,8.3,6.35,5.41,9.92-4.18,5.17-6.04,14.06,2.99,20.26,1.48,1.03,1.41,3.24-.12,4.21-5.78,3.62-11.14,10.34-2.28,19.44,1.79,1.83,2.14,4.63.68,6.77-1.95,2.84-4.47,9.19-6.23,18.03-4,19.84-5.73,26.25-3.22,49.1,1.32,11.99,4.28,22.99,7.64,35.44h3.03c5.69-32.27,11.35-62.8,17.46-93.76l1.2-5.43,23.64-106.64h73.68l23.64,106.64,1.2,5.43c6.11,30.95,11.78,61.49,17.46,93.76h3.03c3.34-12.46,6.32-23.46,7.64-35.44,2.52-22.85.75-29.26-3.22-49.1-1.79-8.84-4.3-15.18-6.23-18.03-1.46-2.14-1.1-4.94.68-6.77,8.86-9.1,3.48-15.82-2.3-19.44-1.53-.96-1.6-3.17-.12-4.21,9.03-6.2,7.19-15.09,3.01-20.26-2.89-3.57.92-9,5.41-9.92,68.7-14.15,49.73-31.96,50.02-37.14.14-2.4,2.8-4.94,4.49-5.34,1.48-.35,3.62-1.74,4.3-3.1,1.72-3.36.38-6.72-1.34-8.51-.82-.87-.75-2.68.45-2.91,5.76-1.08,5.22-6.63,2.33-9.71-.85-.89-.61-2.4.49-2.99,7.31-3.95,3.97-8.2,1.53-10.27-.82-.71-.87-1.97-.09-2.7,5.9-5.59,1.57-9.38-1.1-11-.92-.54-1.15-1.69-.61-2.61,7.38-12.32,4.51-22.38.21-29.1-1.57-2.44,1.36-6.09,3.6-4.25,89.43,73.71,43.22,142.78,7.94,197.05Z"/>
|
|
34
|
+
<path class="cls-3" d="M566.18,99.44c1.19-3.03,2.51-6.64,3.44-9.86,1-3.45.42-7.14-1.53-10.16-2.57-3.99-4.84-8.47,1.36-13.45,2.12-1.71,8-8,.02-13.88-.79-.59-.93-1.72-.28-2.46,2.32-2.64,6.17-8.59-.56-13.44-.93-.67-1-1.99-.1-2.7,2.29-1.81,5.14-5.76,2.12-13.4-.62-1.56,1.32-2.87,2.51-1.69,14.64,14.5,45.52,51.95,35.16,101.9-.4,1.91-2.28,3.13-4.2,2.79-6.44-1.16-20.82-4.45-34.15-12.41-3.85-2.3-5.42-7.07-3.79-11.24Z"/>
|
|
35
|
+
</g>
|
|
36
|
+
</g>
|
|
37
|
+
<rect class="cls-2" x="960.4" y="87.36" width=".02" height=".12"/>
|
|
38
|
+
<rect class="cls-2" x="997.51" y="87.36" width=".07" height=".12"/>
|
|
39
|
+
<rect class="cls-1" x="1034.67" y="87.36" width=".07" height=".12"/>
|
|
40
|
+
<path class="cls-1" d="M1238.87,87.36v.12h1.01v-.12h-1.01ZM1201.69,87.36v.12h1.01v-.12h-1.01Z"/>
|
|
41
|
+
<rect class="cls-2" x="960.4" y="87.36" width=".02" height=".12"/>
|
|
42
|
+
<rect class="cls-2" x="997.51" y="87.36" width=".07" height=".12"/>
|
|
43
|
+
<rect class="cls-1" x="1034.67" y="87.36" width=".07" height=".12"/>
|
|
44
|
+
<rect class="cls-1" x="1201.76" y="87.36" width=".94" height=".12"/>
|
|
45
|
+
<rect class="cls-1" x="1213.32" y="87.36" width=".07" height=".12"/>
|
|
46
|
+
<rect class="cls-1" x="1238.94" y="87.36" width=".94" height=".12"/>
|
|
47
|
+
<rect class="cls-2" x="960.4" y="87.36" width=".02" height=".12"/>
|
|
48
|
+
<rect class="cls-2" x="997.51" y="87.36" width=".07" height=".12"/>
|
|
49
|
+
<rect class="cls-1" x="1034.67" y="87.36" width=".07" height=".12"/>
|
|
50
|
+
<rect class="cls-1" x="1201.76" y="87.36" width=".94" height=".12"/>
|
|
51
|
+
<rect class="cls-1" x="1213.32" y="87.36" width=".07" height=".12"/>
|
|
52
|
+
<rect class="cls-1" x="1238.94" y="87.36" width=".94" height=".12"/>
|
|
53
|
+
<rect class="cls-1" x="1213.32" y="87.36" width=".07" height=".12"/>
|
|
54
|
+
<g>
|
|
55
|
+
<path class="cls-1" d="M1238.49,61.93v25.55h-.02v261.52h-59.75v-109.46c0-32.27,0-69.34.42-101.18h-.42c-9.59,34.46-20.5,73.71-34.46,118.18l-7.69,23.27-13.96,42.31-8.88,26.89h-66.26l-8.88-26.89-13.96-42.31-7.69-23.27c-13.96-44.47-24.87-83.72-34.46-118.18h-.42c.42,31.85.42,68.91.42,101.18v109.46h-59.75V87.48h.02v-.12h-.02v.12h-.05v-25.55h25.52v25.55h.07v-.12h11.56v.12h.07v-.12h-.07v-25.43h25.55v25.55h.07v-.12h11.54v.12h.07v-.12h-.07v-25.43h25.55v25.55h.07v-.05l34.86,103.7c5.99,17.13,15.35,51.07,23.13,83.65,7.76-32.58,17.11-66.52,23.1-83.65l34.83-103.65h-.07v-25.55h25.55v25.55h1.01v-.12h10.62v.12h.07v-.12h-.07v-25.43h25.55v25.55h1.01v-.12h10.72v-25.43h25.55Z"/>
|
|
56
|
+
<path class="cls-1" d="M1148.97,279.81l-13.99,42.31h31.99v-42.31h-18ZM1012.25,279.81h-18v42.31h31.99l-13.98-42.31ZM1250.22,281.22v45.34c5.41,4.09,8.93,10.58,8.93,17.86,0,12.32-10.01,22.33-22.3,22.33h-312.48c-12.29,0-22.3-10.01-22.3-22.33,0-7.29,3.53-13.77,8.93-17.86v-45.34c-29.24,6.16-51.24,32.18-51.24,63.2,0,35.63,28.98,64.63,64.61,64.63h312.48c35.63,0,64.61-29,64.61-64.63,0-31.02-22-57.04-51.24-63.2ZM1148.97,279.81l-13.99,42.31h31.99v-42.31h-18ZM1012.25,279.81h-18v42.31h31.99l-13.98-42.31Z"/>
|
|
57
|
+
</g>
|
|
58
|
+
</g>
|
|
59
|
+
</g>
|
|
60
|
+
</svg>
|