clawmoat 0.8.0 → 1.0.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.
Files changed (171) hide show
  1. package/.dockerignore +9 -0
  2. package/CHANGELOG.md +18 -0
  3. package/DEMO.md +87 -0
  4. package/Dockerfile +5 -18
  5. package/README.md +232 -8
  6. package/THREAT_MODEL.md +129 -0
  7. package/agent/README.md +131 -0
  8. package/agent/index.js +471 -0
  9. package/agent/install-service.sh +94 -0
  10. package/agent/openclaw-hook.js +453 -0
  11. package/agent/provider-setup.js +649 -0
  12. package/agent/setup.js +274 -0
  13. package/assets/BADGE-USAGE.md +20 -0
  14. package/assets/clawmoat-badge.svg +21 -0
  15. package/bin/clawmoat.js +468 -111
  16. package/docs/affiliates/dashboard.html +124 -0
  17. package/docs/affiliates/index.html +236 -0
  18. package/docs/agent-install.html +183 -0
  19. package/docs/ai-agent-security-scanner.html +10 -6
  20. package/docs/badge/index.html +149 -0
  21. package/docs/badge/scanning.svg +23 -0
  22. package/docs/blog/386-malicious-skills.html +11 -4
  23. package/docs/blog/40000-exposed-openclaw-instances.html +11 -4
  24. package/docs/blog/agent-trust-protocol.html +5 -4
  25. package/docs/blog/ai-agent-earns-commissions.html +230 -0
  26. package/docs/blog/bugmageddon-agent-firewall.html +174 -0
  27. package/docs/blog/calculator-math.html +180 -0
  28. package/docs/blog/clawmoat-vs-llamafirewall-nemo-guardrails.html +10 -4
  29. package/docs/blog/host-guardian-launch.html +18 -8
  30. package/docs/blog/ibm-experts-agent-runtime-protection.html +15 -6
  31. package/docs/blog/index.html +67 -9
  32. package/docs/blog/langchain-security-tutorial.html +18 -8
  33. package/docs/blog/mcp-30-cves-security-crisis.html +11 -4
  34. package/docs/blog/meta-researcher-rogue-agent.html +201 -0
  35. package/docs/blog/microsoft-openclaw-workstation-security.html +5 -4
  36. package/docs/blog/nist-ai-agent-standards-clawmoat.html +16 -8
  37. package/docs/blog/oasis-websocket-hijack.html +11 -4
  38. package/docs/blog/ollama-openclaw-security.html +10 -4
  39. package/docs/blog/openclaw-enterprise-readiness-claw10.html +5 -4
  40. package/docs/blog/openclaw-security-reckoning-2026.html +11 -4
  41. package/docs/blog/owasp-agentic-ai-top10.html +18 -8
  42. package/docs/blog/securing-ai-agents.html +18 -8
  43. package/docs/blog/supply-chain-agents.html +18 -8
  44. package/docs/business/index.html +11 -16
  45. package/docs/business/install.html +21 -7
  46. package/docs/checklist.html +10 -4
  47. package/docs/compare/index.html +122 -0
  48. package/docs/compare/lakera/index.html +62 -0
  49. package/docs/compare/llm-guard/index.html +49 -0
  50. package/docs/compare/snyk-agent-scan/index.html +63 -0
  51. package/docs/compare.html +10 -6
  52. package/docs/dashboard/index.html +520 -0
  53. package/docs/finance/index.html +9 -6
  54. package/docs/guides/business-deployment.html +770 -0
  55. package/docs/hall-of-fame.html +11 -5
  56. package/docs/index.html +266 -137
  57. package/docs/integrations/langchain.html +14 -6
  58. package/docs/integrations/openai.html +14 -6
  59. package/docs/integrations/openclaw.html +55 -7
  60. package/docs/plans/2026-03-26-threat-intel-api.md +255 -0
  61. package/docs/plans/2026-04-14-bugmageddon-marketing-pack.md +329 -0
  62. package/docs/plans/2026-04-14-clawmoat-v1-bugmageddon.md +248 -0
  63. package/docs/plans/2026-04-14-v1-release-update.md +91 -0
  64. package/docs/plans/2026-04-19-supabase-audit.md +68 -0
  65. package/docs/plans/2026-05-12-sales-push.md +303 -0
  66. package/docs/playground/index.html +893 -0
  67. package/docs/playground.html +4 -7
  68. package/docs/rfcs/defense-in-depth.md +467 -0
  69. package/docs/scan/index.html +156 -12
  70. package/docs/services/case-study.html +255 -0
  71. package/docs/services/downloads/install-openclaw.bat +45 -0
  72. package/docs/services/downloads/install-openclaw.command +38 -0
  73. package/docs/services/downloads/install-openclaw.sh +38 -0
  74. package/docs/services/get-started.html +165 -0
  75. package/docs/services/index.html +598 -0
  76. package/docs/services/multi-agent-security.html +284 -0
  77. package/docs/services/one-pager.html +99 -0
  78. package/docs/services/pitch-deck.html +229 -0
  79. package/docs/services/roi-calculator.html +258 -0
  80. package/docs/sitemap.xml +62 -2
  81. package/docs/support/index.html +12 -1
  82. package/docs/templates/customer-service/HEARTBEAT.md +61 -0
  83. package/docs/templates/customer-service/MEMORY.md +89 -0
  84. package/docs/templates/customer-service/SOUL.md +41 -0
  85. package/docs/templates/customer-service/USER.md +56 -0
  86. package/docs/templates/executive/HEARTBEAT.md +86 -0
  87. package/docs/templates/executive/MEMORY.md +92 -0
  88. package/docs/templates/executive/SOUL.md +44 -0
  89. package/docs/templates/executive/USER.md +62 -0
  90. package/docs/templates/finance/HEARTBEAT.md +58 -0
  91. package/docs/templates/finance/MEMORY.md +87 -0
  92. package/docs/templates/finance/SOUL.md +38 -0
  93. package/docs/templates/finance/USER.md +53 -0
  94. package/docs/templates/index.html +115 -0
  95. package/docs/templates/operations/HEARTBEAT.md +63 -0
  96. package/docs/templates/operations/MEMORY.md +68 -0
  97. package/docs/templates/operations/SOUL.md +38 -0
  98. package/docs/templates/operations/USER.md +49 -0
  99. package/docs/templates/sales/HEARTBEAT.md +55 -0
  100. package/docs/templates/sales/MEMORY.md +89 -0
  101. package/docs/templates/sales/SOUL.md +34 -0
  102. package/docs/templates/sales/USER.md +54 -0
  103. package/eslint.config.js +32 -0
  104. package/evals/README.md +29 -0
  105. package/evals/cases.json +390 -0
  106. package/evals/results.md +68 -0
  107. package/evals/run.js +180 -0
  108. package/examples/demo-attack/demo.js +186 -0
  109. package/examples/python-quickstart/README.md +54 -0
  110. package/examples/python-quickstart/clawmoat_client.py +167 -0
  111. package/examples/video-demo/README.md +14 -0
  112. package/examples/video-demo/scene-a-normal.js +29 -0
  113. package/examples/video-demo/scene-b-attack-arrives.js +31 -0
  114. package/examples/video-demo/scene-c-hijack.js +44 -0
  115. package/examples/video-demo/scene-d-clawmoat.js +46 -0
  116. package/integrations/crewai/README.md +32 -0
  117. package/integrations/crewai/clawmoat_crewai/__init__.py +17 -0
  118. package/integrations/crewai/clawmoat_crewai/guard.py +103 -0
  119. package/integrations/crewai/pyproject.toml +21 -0
  120. package/integrations/langchain/README.md +91 -0
  121. package/integrations/langchain/clawmoat_langchain/__init__.py +17 -0
  122. package/integrations/langchain/clawmoat_langchain/callback.py +489 -0
  123. package/integrations/langchain/pyproject.toml +32 -0
  124. package/integrations/litellm/README.md +324 -0
  125. package/integrations/litellm/clawmoat_litellm/__init__.py +21 -0
  126. package/integrations/litellm/clawmoat_litellm/callback.py +329 -0
  127. package/integrations/litellm/clawmoat_litellm/proxy_middleware.py +224 -0
  128. package/integrations/litellm/pyproject.toml +74 -0
  129. package/integrations/openai-agents/README.md +392 -0
  130. package/integrations/openai-agents/clawmoat_openai_agents/__init__.py +20 -0
  131. package/integrations/openai-agents/clawmoat_openai_agents/guardrail.py +431 -0
  132. package/integrations/openai-agents/clawmoat_openai_agents/middleware.py +311 -0
  133. package/integrations/openai-agents/pyproject.toml +76 -0
  134. package/package.json +6 -5
  135. package/plugins/openclaw-adapter/PHASE1.md +439 -0
  136. package/plugins/openclaw-adapter/README.md +103 -0
  137. package/plugins/openclaw-adapter/SPEC.md +1644 -0
  138. package/plugins/openclaw-adapter/package.json +31 -0
  139. package/plugins/openclaw-adapter/src/index.test.ts +226 -0
  140. package/plugins/openclaw-adapter/src/index.ts +140 -0
  141. package/plugins/openclaw-adapter/tsconfig.json +14 -0
  142. package/server/data/threats.json +290 -0
  143. package/server/index.js +142 -7
  144. package/src/adapters/express.js +161 -0
  145. package/src/adapters/index.js +92 -0
  146. package/src/adapters/langchain.js +185 -0
  147. package/src/approval/index.js +456 -0
  148. package/src/ban-scanner.js +200 -0
  149. package/src/boundary-scanner.js +296 -0
  150. package/src/ci-scanner.js +279 -0
  151. package/src/code-scanner.js +245 -0
  152. package/src/enforce.js +166 -0
  153. package/src/formatters/json.js +80 -0
  154. package/src/formatters/sarif.js +388 -0
  155. package/src/guardian/alerts.js +34 -3
  156. package/src/guardian/index.js +41 -2
  157. package/src/index.js +102 -0
  158. package/src/integrations/agentmesh.js +501 -0
  159. package/src/language-detector.js +201 -0
  160. package/src/mcp-scanner.js +253 -0
  161. package/src/multimodal/index.js +579 -0
  162. package/src/obfuscation-scanner.js +457 -0
  163. package/src/policy-engine.js +402 -0
  164. package/src/scanners/dependency-attacks.js +128 -0
  165. package/src/scanners/prompt-injection.js +18 -0
  166. package/src/scanners/supply-chain.js +14 -0
  167. package/src/templates/default-config.yml +90 -0
  168. package/src/vuln-ops/exploitability.js +46 -0
  169. package/src/watch/live-monitor.js +720 -0
  170. package/clawmoat-0.8.0.tgz +0 -0
  171. package/server/index.js.patch +0 -1
@@ -0,0 +1,258 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <link rel="icon" type="image/png" href="/favicon.png">
5
+ <link rel="apple-touch-icon" href="/apple-touch-icon.png">
6
+ <meta charset="UTF-8">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+ <title>AI Agent ROI Calculator — ClawMoat</title>
9
+ <meta name="description" content="Calculate how much your business could save with AI agents. Input your team size and see monthly savings, annual ROI, and payback period.">
10
+ <link rel="canonical" href="https://clawmoat.com/services/roi-calculator.html">
11
+ <meta property="og:title" content="AI Agent ROI Calculator — ClawMoat">
12
+ <meta property="og:description" content="See exactly how much AI agents could save your business. Free ROI calculator.">
13
+ <meta property="og:image" content="https://clawmoat.com/og-image.png">
14
+ <meta property="og:url" content="https://clawmoat.com/services/roi-calculator.html">
15
+ <style>
16
+ *{margin:0;padding:0;box-sizing:border-box}
17
+ :root{--navy:#0F172A;--navy-light:#1E293B;--navy-mid:#334155;--blue:#3B82F6;--emerald:#10B981;--white:#F8FAFC;--gray:#94A3B8;--red:#EF4444;--amber:#F59E0B}
18
+ html{scroll-behavior:smooth}
19
+ body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--navy);color:var(--white);line-height:1.6;overflow-x:hidden}
20
+ a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
21
+ .container{max-width:800px;margin:0 auto;padding:0 24px}
22
+
23
+ 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}
24
+ nav .nav-inner{max-width:1140px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between}
25
+ .logo{font-size:1.25rem;font-weight:700;display:flex;align-items:center;gap:8px;color:var(--white)}
26
+ .nav-links{display:flex;gap:28px;align-items:center}
27
+ .nav-links a{color:var(--gray);font-size:.9rem;transition:color .2s}
28
+ .nav-links a:hover{color:var(--white);text-decoration:none}
29
+ .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}
30
+ .menu-toggle{display:none;background:none;border:none;color:var(--white);font-size:1.5rem;cursor:pointer}
31
+
32
+ .hero{padding:140px 0 40px;text-align:center}
33
+ .hero .label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--emerald);margin-bottom:16px}
34
+ .hero h1{font-size:clamp(1.8rem,4.5vw,2.6rem);font-weight:800;line-height:1.2;margin-bottom:16px;letter-spacing:-.02em}
35
+ .hero p{color:var(--gray);font-size:1.05rem;max-width:600px;margin:0 auto}
36
+
37
+ .calc-section{padding:40px 0 80px}
38
+ .calc-card{background:var(--navy-light);border:2px solid rgba(59,130,246,.2);border-radius:20px;padding:40px;margin-bottom:32px}
39
+
40
+ .input-group{margin-bottom:28px}
41
+ .input-group label{display:block;font-weight:600;margin-bottom:8px;font-size:.95rem}
42
+ .input-group .hint{color:var(--gray);font-size:.82rem;margin-bottom:8px}
43
+ .input-group input[type=range]{width:100%;margin:8px 0;accent-color:var(--blue)}
44
+ .input-row{display:flex;align-items:center;gap:16px}
45
+ .input-row input[type=number]{background:var(--navy);border:1px solid var(--navy-mid);border-radius:8px;padding:10px 14px;color:var(--white);font-size:1.1rem;font-weight:600;width:140px;text-align:right}
46
+ .input-row input[type=number]:focus{outline:none;border-color:var(--blue)}
47
+ .input-row .unit{color:var(--gray);font-size:.9rem}
48
+ .range-labels{display:flex;justify-content:space-between;color:var(--navy-mid);font-size:.75rem}
49
+
50
+ .results-card{background:var(--navy-light);border:2px solid var(--emerald);border-radius:20px;padding:40px;text-align:center}
51
+ .results-card h2{font-size:1.3rem;font-weight:700;margin-bottom:24px;color:var(--emerald)}
52
+ .results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;margin-bottom:32px}
53
+ .result-item{background:var(--navy);border-radius:14px;padding:20px}
54
+ .result-item .num{font-size:1.8rem;font-weight:800;background:linear-gradient(135deg,var(--blue),var(--emerald));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
55
+ .result-item .desc{color:var(--gray);font-size:.82rem;margin-top:4px}
56
+
57
+ .breakdown{text-align:left;margin:24px 0;padding:20px;background:var(--navy);border-radius:12px}
58
+ .breakdown h3{font-size:.9rem;color:var(--emerald);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}
59
+ .breakdown .row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:.9rem}
60
+ .breakdown .row .label{color:var(--gray)}
61
+ .breakdown .row .value{font-weight:600}
62
+ .breakdown .row.total{border-top:2px solid var(--emerald);border-bottom:none;margin-top:8px;padding-top:12px;font-size:1rem}
63
+ .breakdown .row.total .value{color:var(--emerald)}
64
+
65
+ .btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:10px;font-weight:600;font-size:1rem;transition:all .2s;border:none;cursor:pointer}
66
+ .btn-green{background:var(--emerald);color:#fff;font-size:1.1rem;padding:16px 36px}
67
+ .btn-green:hover{background:#059669;text-decoration:none}
68
+
69
+ .note{color:var(--navy-mid);font-size:.8rem;text-align:center;margin-top:24px;font-style:italic}
70
+
71
+ .cta-section{text-align:center;padding:60px 0;border-top:1px solid rgba(255,255,255,.06)}
72
+ .cta-section h2{font-size:1.6rem;font-weight:700;margin-bottom:12px}
73
+ .cta-section p{color:var(--gray);margin-bottom:24px;font-size:1rem}
74
+
75
+ footer{padding:40px 0;border-top:1px solid rgba(255,255,255,.06);text-align:center;color:var(--gray);font-size:.85rem}
76
+ .footer-inner{max-width:1140px;margin:0 auto;padding:0 24px}
77
+
78
+ @media(max-width:768px){
79
+ .nav-links{display:none}
80
+ .nav-links.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--navy);padding:20px;gap:16px;border-bottom:1px solid var(--navy-mid)}
81
+ .menu-toggle{display:block}
82
+ .hero{padding:110px 0 30px}
83
+ .calc-card,.results-card{padding:24px}
84
+ }
85
+ </style>
86
+ </head>
87
+ <body>
88
+
89
+ <nav>
90
+ <div class="container">
91
+ <div class="logo"><a href="/"><img src="/logo.svg" alt="ClawMoat" style="height:44px"></a></div>
92
+ <button class="menu-toggle" onclick="document.querySelector('.nav-links').classList.toggle('open')" aria-label="Menu">☰</button>
93
+ <div class="nav-links">
94
+ <a href="/">Security</a>
95
+ <a href="/services/">AI Agents</a>
96
+ <a href="/blog/">Blog</a>
97
+ <a href="https://github.com/darfaz/clawmoat">GitHub ↗</a>
98
+ <a href="mailto:hello@clawmoat.com?subject=15-Min%20Discovery%20Call" class="btn-sm">Get Started</a>
99
+ </div>
100
+ </div>
101
+ </nav>
102
+
103
+ <section class="hero">
104
+ <div class="container">
105
+ <div class="label">ROI Calculator</div>
106
+ <h1>How Much Could AI Agents Save Your Business?</h1>
107
+ <p>Enter your numbers below. See your potential savings in 30 seconds.</p>
108
+ </div>
109
+ </section>
110
+
111
+ <div class="calc-section">
112
+ <div class="container">
113
+
114
+ <div class="calc-card">
115
+ <div class="input-group">
116
+ <label>Number of Employees Doing Repetitive Tasks</label>
117
+ <div class="hint">Count people who spend significant time on data entry, follow-ups, reporting, or coordination.</div>
118
+ <div class="input-row">
119
+ <input type="number" id="employees" value="10" min="1" max="500" onchange="calculate()">
120
+ <span class="unit">employees</span>
121
+ </div>
122
+ <input type="range" min="1" max="100" value="10" oninput="document.getElementById('employees').value=this.value;calculate()">
123
+ <div class="range-labels"><span>1</span><span>25</span><span>50</span><span>75</span><span>100</span></div>
124
+ </div>
125
+
126
+ <div class="input-group">
127
+ <label>Average Fully-Loaded Annual Salary</label>
128
+ <div class="hint">Include benefits, taxes, overhead. U.S. average for admin/ops roles: $55K–$85K.</div>
129
+ <div class="input-row">
130
+ <span class="unit">$</span>
131
+ <input type="number" id="salary" value="65000" min="20000" max="250000" step="5000" onchange="calculate()">
132
+ <span class="unit">/year</span>
133
+ </div>
134
+ <input type="range" min="20000" max="200000" step="5000" value="65000" oninput="document.getElementById('salary').value=this.value;calculate()">
135
+ <div class="range-labels"><span>$20K</span><span>$60K</span><span>$100K</span><span>$150K</span><span>$200K</span></div>
136
+ </div>
137
+
138
+ <div class="input-group">
139
+ <label>% of Time Spent on Repetitive, Automatable Tasks</label>
140
+ <div class="hint">Industry research suggests 40–60% for most operations and finance roles.</div>
141
+ <div class="input-row">
142
+ <input type="number" id="pct" value="50" min="10" max="90" onchange="calculate()">
143
+ <span class="unit">%</span>
144
+ </div>
145
+ <input type="range" min="10" max="90" value="50" oninput="document.getElementById('pct').value=this.value;calculate()">
146
+ <div class="range-labels"><span>10%</span><span>30%</span><span>50%</span><span>70%</span><span>90%</span></div>
147
+ </div>
148
+ </div>
149
+
150
+ <div class="results-card" id="results">
151
+ <h2>Your Estimated Savings</h2>
152
+ <div class="results-grid">
153
+ <div class="result-item">
154
+ <div class="num" id="r-monthly">$27,083</div>
155
+ <div class="desc">Monthly Savings</div>
156
+ </div>
157
+ <div class="result-item">
158
+ <div class="num" id="r-annual">$325,000</div>
159
+ <div class="desc">Annual Savings</div>
160
+ </div>
161
+ <div class="result-item">
162
+ <div class="num" id="r-roi">10.8x</div>
163
+ <div class="desc">Return on Investment</div>
164
+ </div>
165
+ <div class="result-item">
166
+ <div class="num" id="r-payback">&lt; 1 mo</div>
167
+ <div class="desc">Payback Period</div>
168
+ </div>
169
+ </div>
170
+
171
+ <div class="breakdown">
172
+ <h3>Breakdown</h3>
173
+ <div class="row"><span class="label">Salary cost of automatable work</span><span class="value" id="b-waste">$325,000/yr</span></div>
174
+ <div class="row"><span class="label">Estimated agents needed</span><span class="value" id="b-agents">5 agents</span></div>
175
+ <div class="row"><span class="label">Agent cost ($2,500/agent/month)</span><span class="value" id="b-cost">$150,000/yr</span></div>
176
+ <div class="row total"><span class="label">Net Annual Savings</span><span class="value" id="b-net">$175,000/yr</span></div>
177
+ </div>
178
+
179
+ <div style="margin-top:28px">
180
+ <a href="mailto:hello@clawmoat.com?subject=15-Min%20Discovery%20Call%20—%20ROI%20Calculator" class="btn btn-green">See These Savings in Action — Schedule a Call →</a>
181
+ </div>
182
+ </div>
183
+
184
+ <p class="note">Estimates based on industry averages. Agent cost of $2,500/month vs. industry average of $3,350/month. Actual results vary by business. One agent typically handles work equivalent to 1–2 FTEs on repetitive tasks.</p>
185
+
186
+ </div>
187
+ </div>
188
+
189
+ <section class="cta-section">
190
+ <div class="container">
191
+ <h2>Want a Custom Analysis for Your Business?</h2>
192
+ <p>Our 15-minute discovery call goes deeper — we'll map your specific processes and give you a precise ROI estimate.</p>
193
+ <a href="mailto:hello@clawmoat.com?subject=15-Min%20Discovery%20Call" class="btn btn-green">Schedule a 15-Minute Discovery Call →</a>
194
+ </div>
195
+ </section>
196
+
197
+ <footer>
198
+ <div class="container">
199
+ <div style="display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin-bottom:16px">
200
+ <a href="https://github.com/darfaz/clawmoat" style="color:var(--gray)">GitHub</a>
201
+ <a href="https://www.npmjs.com/package/clawmoat" style="color:var(--gray)">npm</a>
202
+ <a href="/blog/" style="color:var(--gray)">Blog</a>
203
+ <a href="mailto:hello@clawmoat.com" style="color:var(--gray)">hello@clawmoat.com</a>
204
+ </div>
205
+ <p style="text-align:center;color:var(--gray);font-size:.85rem">© 2026 ClawMoat</p>
206
+ </div>
207
+ </footer>
208
+
209
+ <script>
210
+ function calculate() {
211
+ const emp = Math.max(1, parseInt(document.getElementById('employees').value) || 10);
212
+ const sal = Math.max(20000, parseInt(document.getElementById('salary').value) || 65000);
213
+ const pct = Math.max(10, Math.min(90, parseInt(document.getElementById('pct').value) || 50));
214
+
215
+ // Cost of automatable work
216
+ const wasteAnnual = emp * sal * (pct / 100);
217
+ const wasteMonthly = wasteAnnual / 12;
218
+
219
+ // Agents needed: roughly 1 agent per 2 employees' repetitive work
220
+ const agents = Math.max(1, Math.ceil(emp * (pct / 100) / 2));
221
+ const agentCostMonthly = agents * 2500;
222
+ const agentCostAnnual = agentCostMonthly * 12;
223
+
224
+ // Savings (assume agents capture 60% of the automatable work value)
225
+ const captureRate = 0.6;
226
+ const savingsAnnual = (wasteAnnual * captureRate) - agentCostAnnual;
227
+ const savingsMonthly = savingsAnnual / 12;
228
+
229
+ // ROI
230
+ const roi = agentCostAnnual > 0 ? ((wasteAnnual * captureRate) / agentCostAnnual) : 0;
231
+
232
+ // Payback period in months
233
+ const monthlyGross = (wasteAnnual * captureRate) / 12;
234
+ const paybackMonths = agentCostMonthly > 0 && monthlyGross > agentCostMonthly
235
+ ? agentCostMonthly / (monthlyGross - agentCostMonthly) : 99;
236
+
237
+ const fmt = (n) => {
238
+ if (Math.abs(n) >= 1000000) return '$' + (n / 1000000).toFixed(1) + 'M';
239
+ if (Math.abs(n) >= 1000) return '$' + Math.round(n).toLocaleString();
240
+ return '$' + Math.round(n);
241
+ };
242
+
243
+ document.getElementById('r-monthly').textContent = savingsMonthly > 0 ? fmt(savingsMonthly) : '$0';
244
+ document.getElementById('r-annual').textContent = savingsAnnual > 0 ? fmt(savingsAnnual) : '$0';
245
+ document.getElementById('r-roi').textContent = roi > 0 ? roi.toFixed(1) + 'x' : '—';
246
+ document.getElementById('r-payback').textContent = paybackMonths < 1 ? '< 1 mo' : paybackMonths < 12 ? Math.ceil(paybackMonths) + ' mo' : '12+ mo';
247
+
248
+ document.getElementById('b-waste').textContent = fmt(wasteAnnual) + '/yr';
249
+ document.getElementById('b-agents').textContent = agents + ' agent' + (agents !== 1 ? 's' : '');
250
+ document.getElementById('b-cost').textContent = fmt(agentCostAnnual) + '/yr';
251
+ document.getElementById('b-net').textContent = (savingsAnnual > 0 ? fmt(savingsAnnual) : '-' + fmt(Math.abs(savingsAnnual))) + '/yr';
252
+ }
253
+
254
+ calculate();
255
+ </script>
256
+
257
+ </body>
258
+ </html>
package/docs/sitemap.xml CHANGED
@@ -1,10 +1,40 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
+ <url>
4
+ <loc>https://clawmoat.com/blog/bugmageddon-agent-firewall.html</loc>
5
+ <lastmod>2026-04-14</lastmod>
6
+ <priority>0.9</priority>
7
+ </url>
8
+ <url>
9
+ <loc>https://clawmoat.com/blog/ai-agent-earns-commissions.html</loc>
10
+ <lastmod>2026-03-02</lastmod>
11
+ <priority>0.8</priority>
12
+ </url>
13
+ <url>
14
+ <loc>https://clawmoat.com/blog/meta-researcher-rogue-agent.html</loc>
15
+ <lastmod>2026-03-01</lastmod>
16
+ <priority>0.8</priority>
17
+ </url>
18
+ <url>
19
+ <loc>https://clawmoat.com/dashboard/</loc>
20
+ <lastmod>2026-03-01</lastmod>
21
+ <priority>0.8</priority>
22
+ </url>
23
+ <url>
24
+ <loc>https://clawmoat.com/badge/</loc>
25
+ <lastmod>2026-03-01</lastmod>
26
+ <priority>0.7</priority>
27
+ </url>
3
28
  <url>
4
29
  <loc>https://clawmoat.com/</loc>
5
- <lastmod>2026-02-21</lastmod>
30
+ <lastmod>2026-04-14</lastmod>
6
31
  <priority>1.0</priority>
7
32
  </url>
33
+ <url>
34
+ <loc>https://clawmoat.com/guides/business-deployment.html</loc>
35
+ <lastmod>2026-02-28</lastmod>
36
+ <priority>0.9</priority>
37
+ </url>
8
38
  <url>
9
39
  <loc>https://clawmoat.com/blog/nist-ai-agent-standards-clawmoat.html</loc>
10
40
  <lastmod>2026-02-28</lastmod>
@@ -52,7 +82,7 @@
52
82
  </url>
53
83
  <url>
54
84
  <loc>https://clawmoat.com/blog/</loc>
55
- <lastmod>2026-02-27</lastmod>
85
+ <lastmod>2026-04-14</lastmod>
56
86
  <priority>0.8</priority>
57
87
  </url>
58
88
  <url>
@@ -150,9 +180,39 @@
150
180
  <lastmod>2026-02-26</lastmod>
151
181
  <priority>0.6</priority>
152
182
  </url>
183
+ <url>
184
+ <loc>https://clawmoat.com/services/</loc>
185
+ <lastmod>2026-02-28</lastmod>
186
+ <priority>0.9</priority>
187
+ </url>
188
+ <url>
189
+ <loc>https://clawmoat.com/services/pitch-deck.html</loc>
190
+ <lastmod>2026-02-28</lastmod>
191
+ <priority>0.7</priority>
192
+ </url>
193
+ <url>
194
+ <loc>https://clawmoat.com/services/case-study.html</loc>
195
+ <lastmod>2026-02-28</lastmod>
196
+ <priority>0.8</priority>
197
+ </url>
198
+ <url>
199
+ <loc>https://clawmoat.com/services/roi-calculator.html</loc>
200
+ <lastmod>2026-02-28</lastmod>
201
+ <priority>0.8</priority>
202
+ </url>
203
+ <url>
204
+ <loc>https://clawmoat.com/blog/calculator-math.html</loc>
205
+ <lastmod>2026-03-01</lastmod>
206
+ <priority>0.8</priority>
207
+ </url>
153
208
  <url>
154
209
  <loc>https://clawmoat.com/thanks</loc>
155
210
  <lastmod>2026-02-13</lastmod>
156
211
  <priority>0.3</priority>
157
212
  </url>
213
+ <url>
214
+ <loc>https://clawmoat.com/affiliates/</loc>
215
+ <lastmod>2026-03-02</lastmod>
216
+ <priority>0.7</priority>
217
+ </url>
158
218
  </urlset>
@@ -40,7 +40,18 @@ p{color:var(--gray);font-size:.95rem;margin-bottom:16px}
40
40
  </style>
41
41
  </head>
42
42
  <body>
43
- <nav><div class="container"><a href="/" class="logo">🏰 Claw<span>Moat</span></a><div style="display:flex;gap:20px"><a href="/">Home</a><a href="/blog/">Blog</a><a href="/business/">For Business</a></div></div></nav>
43
+ <nav>
44
+ <div class="container">
45
+ <a href="/" class="logo">🏰 Claw<span>Moat</span></a>
46
+ <button class="menu-toggle" onclick="document.querySelector('.nav-links').classList.toggle('open')" aria-label="Menu">☰</button>
47
+ <div class="nav-links">
48
+ <a href="/">Security</a>
49
+ <a href="/services/">AI Agents</a>
50
+ <a href="/blog/">Blog</a>
51
+ <a href="https://github.com/darfaz/clawmoat">GitHub ↗</a>
52
+ </div>
53
+ </div>
54
+ </nav>
44
55
 
45
56
  <div class="container">
46
57
  <div class="hero">
@@ -0,0 +1,61 @@
1
+ # HEARTBEAT.md — Customer Service Agent
2
+
3
+ ## 🔄 Inbox Check (Every 30 min)
4
+
5
+ - [ ] **New Tickets:** Triage incoming emails/tickets. Categorize and prioritize.
6
+ - 🔴 Urgent: Service down, data issue, billing error → respond within 1 hour
7
+ - 🟡 Standard: Feature questions, how-to, general inquiries → respond within 4 hours
8
+ - 🟢 Low: Feedback, feature requests, FYI → respond within 24 hours
9
+ - ⭐ VIP: Any ticket from VIP customer list → respond within 30 minutes
10
+ - [ ] **Pending Replies:** Check for customer responses to open tickets
11
+ - [ ] **SLA Watch:** Flag any ticket approaching SLA breach
12
+
13
+ ## 📅 Morning Review (First heartbeat after 8:00 AM)
14
+
15
+ - [ ] **Overnight Queue:** How many new tickets came in overnight? Any urgent?
16
+ - [ ] **Open Ticket Count:** Total open, by priority, by age
17
+ - [ ] **SLA Status:** Any breached or at-risk tickets
18
+ - [ ] **Escalated Items:** Status of tickets escalated to engineering/management
19
+ - [ ] **CSAT/Feedback:** Any new reviews or feedback scores to note
20
+
21
+ ## 📊 Daily Summary (Last heartbeat after 5:00 PM)
22
+
23
+ - [ ] **Today's Stats:**
24
+ - New tickets: [X]
25
+ - Resolved: [X]
26
+ - Average response time: [X]
27
+ - Average resolution time: [X]
28
+ - CSAT score: [X]
29
+ - [ ] **Unresolved Carry-Over:** List open tickets with age and status
30
+ - [ ] **Recurring Issues:** Any pattern in today's tickets? (Same bug, same question, same confusion)
31
+ - [ ] **Tomorrow's Priority:** What needs attention first thing
32
+
33
+ ## 📋 Weekly Review (Monday morning)
34
+
35
+ - [ ] **Week Stats:** Volume trends, SLA compliance %, CSAT trend, resolution rate
36
+ - [ ] **Top Issues This Week:** Most common ticket categories
37
+ - [ ] **Escalation Summary:** What went to engineering? What was resolved?
38
+ - [ ] **Knowledge Base Gaps:** Questions that don't have good FAQ answers yet
39
+ - [ ] **Customer Sentiment:** Any notable positive or negative trends
40
+
41
+ ## 📦 Monthly Review (1st business day)
42
+
43
+ - [ ] **Monthly Report:** Full metrics dashboard
44
+ - [ ] **Trending Issues:** What's getting worse? What's improving?
45
+ - [ ] **FAQ/KB Updates Needed:** New articles to write based on common questions
46
+ - [ ] **Process Improvements:** What could be automated or streamlined?
47
+ - [ ] **Top Customer Complaints:** Aggregate for product team feedback
48
+
49
+ ## 🚨 Immediate Alerts
50
+
51
+ - Service outage or widespread issue reported: ALERT + begin tracking
52
+ - VIP customer complaint: ALERT
53
+ - Customer mentions legal action, social media, or press: ESCALATE IMMEDIATELY
54
+ - Data breach or privacy concern: ESCALATE IMMEDIATELY
55
+ - Same issue reported by 3+ customers in 1 hour: ALERT (possible systemic issue)
56
+
57
+ ## 💤 After Hours
58
+
59
+ - Check inbox every 2 hours for urgent-only items
60
+ - Auto-acknowledge: "We've received your message and will respond during business hours"
61
+ - True emergencies only get escalated to on-call
@@ -0,0 +1,89 @@
1
+ # MEMORY.md — Customer Service Agent
2
+
3
+ ## FAQ — Top Questions & Answers
4
+
5
+ <!-- Your agent's quick-reference knowledge base. Keep answers concise and accurate. -->
6
+
7
+ ### Getting Started
8
+ | Question | Answer |
9
+ |----------|--------|
10
+ | [How do I reset my password?] | [Go to Settings → Security → Reset Password, or use the "Forgot Password" link on login] |
11
+ | [How do I invite team members?] | [Settings → Team → Invite, enter email, select role] |
12
+ | [What browsers do you support?] | [Chrome, Firefox, Safari, Edge — latest 2 versions] |
13
+
14
+ ### Billing & Account
15
+ | Question | Answer |
16
+ |----------|--------|
17
+ | [How do I upgrade my plan?] | [Settings → Billing → Change Plan] |
18
+ | [Can I get a refund?] | [Within 30 days, full refund. After 30 days, prorated credit.] |
19
+ | [Where's my invoice?] | [Settings → Billing → Invoice History, or check email] |
20
+
21
+ ### Common Issues
22
+ | Issue | Solution | Escalate If |
23
+ |-------|----------|-------------|
24
+ | [Login failures] | [Clear cache, try incognito, reset password] | [Still failing after reset] |
25
+ | [Slow performance] | [Check browser extensions, try different browser] | [Multiple users affected] |
26
+ | [Data not syncing] | [Force refresh, check API status page] | [Data loss suspected] |
27
+
28
+ ## Product Info
29
+
30
+ - **Current Version:** [X.Y.Z]
31
+ - **Status Page:** [URL]
32
+ - **API Documentation:** [URL]
33
+ - **Release Notes:** [URL]
34
+ - **Known Issues:** [URL or list below]
35
+
36
+ ### Known Issues (Active)
37
+ | Issue | Affected Users | Workaround | ETA |
38
+ |-------|---------------|------------|-----|
39
+ | [Bug description] | [Who's affected] | [Workaround steps] | [Expected fix date] |
40
+
41
+ ## Escalation Matrix
42
+
43
+ | Issue Type | L1 Action | Escalate To | Contact | SLA |
44
+ |-----------|-----------|-------------|---------|-----|
45
+ | [Billing dispute] | [Review account, explain charges] | [Billing team] | [#billing-escalations] | [4h] |
46
+ | [Technical bug] | [Reproduce, document steps] | [Engineering] | [#eng-support] | [8h] |
47
+ | [Account access] | [Verify identity, attempt reset] | [Security team] | [security@company.com] | [2h] |
48
+ | [Feature request] | [Log in tracker, thank customer] | [Product team] | [#product-feedback] | [N/A] |
49
+ | [Legal/Compliance] | [Do NOT respond] | [Legal] | [legal@company.com] | [Immediate] |
50
+
51
+ ## VIP Customers
52
+
53
+ <!-- Customers who get priority treatment -->
54
+
55
+ | Customer | Account Value | Contact | Special Notes |
56
+ |----------|-------------|---------|---------------|
57
+ | [Customer 1] | $[X]K ARR | [Contact name] | [Their CSM is X, they have custom SLA] |
58
+ | [Customer 2] | $[X]K ARR | [Contact name] | [Enterprise plan, dedicated support] |
59
+
60
+ ## Response Templates
61
+
62
+ ### Acknowledgment
63
+ > Hi [Name], thanks for reaching out! I see you're experiencing [issue]. Let me look into this for you right away.
64
+
65
+ ### Resolution
66
+ > Great news — I've [resolved the issue / found the solution]. Here's what happened: [explanation]. To prevent this in the future: [tip]. Let me know if you need anything else!
67
+
68
+ ### Escalation Notice
69
+ > I want to make sure this gets the attention it deserves, so I've escalated this to our [team]. You'll hear back within [timeframe]. I'll stay on this to make sure it's resolved.
70
+
71
+ ### Can't Reproduce
72
+ > I wasn't able to reproduce this on my end. Could you help me with a few details? [Browser/OS, steps to reproduce, screenshot if possible]. This will help our team track it down faster.
73
+
74
+ ## Common Issue Patterns
75
+
76
+ <!-- Track recurring issues to report to product team -->
77
+
78
+ | Pattern | Frequency | Last Reported | Product Team Aware? |
79
+ |---------|-----------|---------------|-------------------|
80
+ | [Onboarding confusion at step X] | [5/week] | [Date] | [Yes — fix in v2.3] |
81
+ | [Export fails for large datasets] | [3/week] | [Date] | [No — needs report] |
82
+
83
+ ## Notes
84
+
85
+ <!--
86
+ - "Customers from [Company X] acquisition may have legacy pricing — check before quoting"
87
+ - "Holiday season (Nov-Jan) sees 2x ticket volume"
88
+ - "New feature [X] launching [date] — expect confusion, prep FAQ"
89
+ -->
@@ -0,0 +1,41 @@
1
+ # SOUL.md — Customer Service Agent
2
+
3
+ You are a patient, empathetic, and thorough customer service specialist. Every interaction is a chance to turn a frustrated customer into a loyal advocate. You solve problems completely — no half-answers, no passing the buck.
4
+
5
+ ## Personality
6
+
7
+ - **Patient above all.** Customers repeat themselves, get emotional, and sometimes aren't clear. That's okay. Meet them where they are.
8
+ - **Empathetic but efficient.** Acknowledge feelings, then move to solutions. Don't dwell in sympathy — customers want resolution.
9
+ - **Thorough.** Answer the question they asked AND the one they'll ask next. Anticipate follow-ups.
10
+ - **Honest.** If you don't know, say so. If there's a delay, set expectations. Never promise what you can't deliver.
11
+
12
+ ## Core Competencies
13
+
14
+ - **Email Triage:** Categorize, prioritize, and route incoming tickets. Identify urgency and VIP customers.
15
+ - **FAQ & Knowledge Base:** Know the product inside out. Answer common questions accurately and completely.
16
+ - **Escalation Management:** Know when to escalate, who to escalate to, and how to do it without making the customer feel abandoned.
17
+ - **Issue Tracking:** Document everything. Track recurring issues. Identify patterns that indicate product problems.
18
+ - **SLA Compliance:** Monitor response and resolution times. Flag tickets approaching SLA breach.
19
+ - **Customer Communication:** Draft professional, warm, and clear responses. Match the customer's tone (formal or casual).
20
+
21
+ ## Communication Style
22
+
23
+ - Start responses by acknowledging the customer's issue: "I understand you're having trouble with [X]."
24
+ - Provide step-by-step solutions with clear formatting
25
+ - End with a clear next step and invitation to follow up
26
+ - Use priority tags: 🔴 Urgent | 🟡 Standard | 🟢 Low | ⭐ VIP
27
+ - Internal notes should be concise: issue, steps taken, resolution or next step
28
+
29
+ ## Escalation Rules
30
+
31
+ 1. **Immediate Escalation:** Safety issues, data breaches, legal threats, executive complaints
32
+ 2. **Manager Escalation:** Customer requests refund > $[X], third contact about same issue, threatens to leave
33
+ 3. **Technical Escalation:** Bug confirmed, requires engineering, infrastructure issues
34
+ 4. **Billing Escalation:** Disputes > $[X], subscription errors, payment failures
35
+
36
+ ## Boundaries
37
+
38
+ - Never share internal processes, pricing strategies, or roadmap with customers
39
+ - Never make promises about features, timelines, or outcomes you can't guarantee
40
+ - Always get approval before issuing refunds, credits, or exceptions above your authority
41
+ - If a customer is abusive, remain professional but flag for manager review
@@ -0,0 +1,56 @@
1
+ # USER.md — Customer Service Agent
2
+
3
+ ## About You
4
+
5
+ - **Name:** [Your Name]
6
+ - **Role:** [CS Manager / Support Lead / Head of Customer Experience]
7
+ - **Pronouns:** [e.g., she/her, he/him, they/them]
8
+ - **Timezone:** [e.g., America/Los_Angeles]
9
+ - **Support hours:** [e.g., 8 AM - 6 PM Mon-Fri, limited weekends]
10
+
11
+ ## Company & Product
12
+
13
+ - **Company Name:** [Company Name]
14
+ - **Product/Service:** [What you offer — brief description]
15
+ - **Customer base:** [e.g., 500 active accounts, B2B SaaS, SMB focused]
16
+ - **Support channels:** [e.g., Email, live chat, phone, social media]
17
+ - **Average ticket volume:** [e.g., 50/day, 300/week]
18
+
19
+ ## Support Stack
20
+
21
+ - **Help Desk:** [e.g., Zendesk, Freshdesk, Intercom, Help Scout]
22
+ - **Knowledge Base:** [e.g., Zendesk Guide, Notion, Confluence, GitBook]
23
+ - **Live Chat:** [e.g., Intercom, Drift, Crisp, LiveChat]
24
+ - **CRM:** [e.g., Salesforce, HubSpot — for customer context]
25
+ - **Internal Communication:** [e.g., Slack #support channel, Teams]
26
+ - **Bug Tracking:** [e.g., Jira, Linear, GitHub Issues]
27
+
28
+ ## SLA Targets
29
+
30
+ - **First Response:** [e.g., 1 hour for urgent, 4 hours for standard]
31
+ - **Resolution Time:** [e.g., 4 hours urgent, 24 hours standard, 72 hours low]
32
+ - **CSAT Target:** [e.g., 4.5/5 or 90%+]
33
+ - **First Contact Resolution Target:** [e.g., 70%+]
34
+
35
+ ## Team & Escalation
36
+
37
+ - **Team size:** [e.g., 3 agents + 1 lead]
38
+ - **Escalation path:** [Agent → Lead → Manager → VP/CTO]
39
+ - **Engineering contact:** [Name/channel for bug escalations]
40
+ - **Billing contact:** [Name/channel for billing issues]
41
+
42
+ ## Communication Preferences
43
+
44
+ - **Tone:** [Professional and warm / Casual and friendly / Formal]
45
+ - **Response drafting:** [Agent drafts, I review / Agent can send routine / Agent handles L1 autonomously]
46
+ - **Refund authority:** [Up to $X without approval / Always ask first]
47
+ - **Alert me when:** [VIP complaint / SLA breach / Systemic issue / All escalations]
48
+
49
+ ## Notes
50
+
51
+ <!--
52
+ - "Our biggest pain point is onboarding confusion — FAQ needs work"
53
+ - "Enterprise customers on the VIP list should always get priority"
54
+ - "We have a known bug with [feature] — workaround is [steps]"
55
+ - "Never say 'it's a known issue' — say 'our team is actively working on this'"
56
+ -->