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,329 @@
1
+ # ClawMoat marketing pack — Bugmageddon / WSJ / Mythos
2
+
3
+ ## Core angle
4
+
5
+ WSJ gave the market a clean phrase: **bugmageddon**.
6
+
7
+ Use it to sharpen ClawMoat's category:
8
+
9
+ **Old framing:** prompt injection scanner / AI security tool<br>
10
+ **Better framing:** **agent firewall for the bugmageddon era**
11
+
12
+ The point is simple:
13
+
14
+ - AI is getting much better at finding vulnerabilities
15
+ - Attackers will get that capability too
16
+ - Patching will stay slower than discovery
17
+ - AI agents have the permissions needed to turn bugs into impact
18
+ - Therefore the missing layer is **runtime containment**
19
+
20
+ ## Best ClawMoat message
21
+
22
+ **They protect the model. ClawMoat protects the machine.**
23
+
24
+ Variants:
25
+ - **Bug discovery is accelerating. Containment needs to catch up.**
26
+ - **When AI finds more bugs, agent runtime security stops being optional.**
27
+ - **The patch queue is about to get longer. Your agent permissions should get tighter.**
28
+
29
+ ---
30
+
31
+ ## X post options
32
+
33
+ ### Option 1, sharpest
34
+
35
+ WSJ called it “bugmageddon.”
36
+
37
+ Anthropic’s Mythos reportedly found a 27-year-old bug plus thousands more high-severity flaws.
38
+
39
+ That doesn’t just mean defenders get faster.
40
+ It means exploit discovery gets cheaper.
41
+
42
+ And AI agents already have shell, browser, file system, API key, and MCP access.
43
+
44
+ The question is no longer just “can AI find bugs?”
45
+ It’s “what stops your agent from turning them into damage?”
46
+
47
+ That’s the layer ClawMoat is built for.
48
+
49
+ Open-source agent firewall.
50
+ https://clawmoat.com
51
+
52
+ ### Option 2, more founder-voice
53
+
54
+ The WSJ bugmageddon piece got one thing very right:
55
+ we’re heading into a world where AI finds vulnerabilities faster than most teams can fix them.
56
+
57
+ That changes the job.
58
+
59
+ Static scanning matters.
60
+ Patching matters.
61
+ But once agents have real permissions, you also need runtime controls.
62
+
63
+ What can it read?
64
+ What can it run?
65
+ What can it send out?
66
+ What gets blocked?
67
+ What gets logged?
68
+
69
+ That’s ClawMoat.
70
+ https://clawmoat.com
71
+
72
+ ### Option 3, shortest
73
+
74
+ Bugmageddon = AI finds bugs faster, attackers exploit faster, patches lag.
75
+
76
+ Agents make that worse because they already have the keys.
77
+
78
+ ClawMoat is the firewall between the agent and the machine.
79
+ https://clawmoat.com
80
+
81
+ ---
82
+
83
+ ## X thread
84
+
85
+ 1. WSJ called it “bugmageddon.” Good term.
86
+
87
+ If frontier models can find vulnerabilities humans missed for decades, the economics of attack just changed.
88
+
89
+ 2. The issue is not just more bugs found by defenders.
90
+
91
+ It’s that exploit discovery gets cheaper, faster, and eventually available to anyone with a decent model stack.
92
+
93
+ 3. Most teams still think in old security terms:
94
+ find bug → patch bug → move on.
95
+
96
+ But patching is slow. Backlogs are real. And agents now sit on top of the blast radius.
97
+
98
+ 4. Your agent has shell access, browser control, file I/O, MCP tools, secrets, cloud creds, internal docs.
99
+
100
+ So the question becomes:
101
+ what happens when something gets through?
102
+
103
+ 5. Prompt filters are not enough.
104
+ Static scans are not enough.
105
+ You need runtime containment.
106
+
107
+ What can the agent read?
108
+ What can it execute?
109
+ What can it exfiltrate?
110
+ What gets blocked automatically?
111
+
112
+ 6. That’s the ClawMoat thesis.
113
+
114
+ Not “make prompts safer.”
115
+ Make agents safe to run on real machines.
116
+
117
+ 7. ClawMoat scans inbound content, outbound content, MCP configs, and tool use.
118
+ Then it enforces policy at runtime.
119
+
120
+ Because in the bugmageddon era, detection without containment is not enough.
121
+
122
+ 8. Open source.
123
+ Agent firewall.
124
+ Built for the moment the market is finally waking up.
125
+
126
+ https://clawmoat.com
127
+ https://github.com/darfaz/clawmoat
128
+
129
+ ---
130
+
131
+ ## Reddit post
132
+
133
+ ### Suggested subreddits
134
+ - r/LocalLLaMA
135
+ - r/ClaudeAI
136
+ - r/OpenAI
137
+ - r/artificial
138
+ - r/cybersecurity
139
+ - r/netsec (more technical, tone down the marketing)
140
+ - r/mcp
141
+
142
+ ### Title option 1
143
+ WSJ says AI is finding bugs humans missed for decades. I think the real issue is agent containment.
144
+
145
+ ### Title option 2
146
+ If bug discovery gets automated, AI agent runtime security becomes mandatory
147
+
148
+ ### Body
149
+ The WSJ bugmageddon article is getting attention because of the headline claim: frontier AI can now find serious vulnerabilities that sat undiscovered for years.
150
+
151
+ That’s interesting, but I think the more important implication is downstream.
152
+
153
+ If exploit discovery gets faster, while patching stays slow, then AI agents become a very uncomfortable part of the stack.
154
+
155
+ They already have:
156
+ - shell access
157
+ - browser control
158
+ - file system access
159
+ - API keys and local secrets
160
+ - MCP servers with broad permissions
161
+
162
+ So the real question stops being “can AI find bugs?” and becomes “what stops an agent from turning a bug, prompt injection, or bad tool chain into a real compromise?”
163
+
164
+ That’s why I’ve been building ClawMoat.
165
+ It’s an open-source agent firewall that sits between the agent and the machine.
166
+
167
+ It does a few concrete things:
168
+ - scans inbound content for prompt injection and poisoned instructions
169
+ - scans outbound content for secrets and exfiltration
170
+ - audits MCP configs and risky permissions
171
+ - enforces policy on shell, file, browser, and network actions
172
+
173
+ I think this category is going to matter a lot more over the next 12 months.
174
+
175
+ Curious if people here agree with the core thesis:
176
+ **as bug discovery gets automated, runtime containment becomes more important than prompt-level safety alone.**
177
+
178
+ Repo: https://github.com/darfaz/clawmoat
179
+ Site: https://clawmoat.com
180
+
181
+ ---
182
+
183
+ ## Hacker News post draft
184
+
185
+ ### Title
186
+ Show HN: ClawMoat, an open-source agent firewall for the bugmageddon era
187
+
188
+ ### Text
189
+ WSJ just popularized “bugmageddon” as shorthand for AI finding vulnerabilities faster than humans can fix them.
190
+
191
+ I think that creates a second-order problem for agent builders.
192
+
193
+ Even if you patch aggressively, agents now have shell, browser, filesystem, and MCP access. So once a prompt injection, poisoned dependency, risky plugin, or newly discovered vuln gets through, the real question is what the agent is still allowed to do.
194
+
195
+ ClawMoat is my attempt at that layer.
196
+
197
+ It’s an open-source agent firewall that:
198
+ - scans inbound content
199
+ - scans outbound content
200
+ - audits MCP configs
201
+ - enforces policies on tool use
202
+ - logs everything for audit
203
+
204
+ I’d love technical feedback, especially from people running local agents on real machines.
205
+
206
+ https://github.com/darfaz/clawmoat
207
+
208
+ ---
209
+
210
+ ## LinkedIn post
211
+
212
+ The WSJ “bugmageddon” framing is worth paying attention to.
213
+
214
+ If frontier AI can find vulnerabilities humans missed for decades, then security teams are about to face a new asymmetry:
215
+
216
+ bug discovery speeds up<br>
217
+ weaponization speeds up<br>
218
+ patching does not
219
+
220
+ That matters even more in the age of AI agents.
221
+
222
+ Agents are not chatbots. They sit on top of shell access, browsers, files, API keys, MCP servers, and internal systems.
223
+
224
+ So the new question is not just whether AI can find more bugs.
225
+ The question is whether your runtime controls are strong enough when something gets through.
226
+
227
+ That is exactly why I built ClawMoat.
228
+
229
+ ClawMoat is an open-source agent firewall that scans content, audits MCP setups, and enforces policy between the agent and the machine.
230
+
231
+ I think this layer becomes much more important over the next year.
232
+
233
+ If you’re building or deploying AI agents, I’d love to compare notes.
234
+
235
+ https://clawmoat.com
236
+ https://github.com/darfaz/clawmoat
237
+
238
+ ---
239
+
240
+ ## Dev.to article draft
241
+
242
+ ### Title
243
+ Bugmageddon Is Coming. AI Agent Runtime Security Just Became Mandatory.
244
+
245
+ ### Subtitle
246
+ If AI can find bugs faster than teams can patch them, the missing layer is containment.
247
+
248
+ ### Outline
249
+
250
+ 1. Open with WSJ framing and the 27-year-old bug claim
251
+ 2. Explain the shift in attack economics
252
+ 3. Explain why patching remains the limiting factor
253
+ 4. Explain why agents amplify blast radius
254
+ 5. Distinguish prompt safety from runtime security
255
+ 6. Walk through what a practical containment layer does
256
+ 7. Position ClawMoat as open-source agent firewall
257
+ 8. End with concrete checklist + repo link
258
+
259
+ ### Strong opener
260
+ The scary part of the WSJ bugmageddon article is not that AI can find vulnerabilities.
261
+
262
+ The scary part is that once exploit discovery gets cheap, every over-permissioned AI agent becomes part of the attack surface.
263
+
264
+ ---
265
+
266
+ ## Homepage / hero update suggestions
267
+
268
+ Current category is good. Tighten it.
269
+
270
+ ### Hero copy test A
271
+ **The open-source agent firewall**<br>
272
+ AI is finding bugs faster. Stop agents from turning them into breaches.
273
+
274
+ ### Hero copy test B
275
+ **They protect the model. ClawMoat protects the machine.**<br>
276
+ Runtime security for AI agents with shell, browser, file system, and MCP access.
277
+
278
+ ### Hero copy test C
279
+ **Built for bugmageddon.**<br>
280
+ Contain what AI agents can do when vulnerabilities are inevitable.
281
+
282
+ ### Subhead inserts
283
+ - Scan prompts, outputs, MCP configs, and tool calls
284
+ - Enforce policy before the command runs
285
+ - Audit everything after
286
+
287
+ ---
288
+
289
+ ## CTA ideas
290
+
291
+ - **Run a free agent exposure scan**
292
+ - **Audit your MCP setup**
293
+ - **See what your agent can actually reach**
294
+ - **Install the firewall between your agent and your machine**
295
+
296
+ ---
297
+
298
+ ## Good discussion hooks
299
+
300
+ Use these to get replies instead of just impressions:
301
+
302
+ - “What’s the bigger risk: automated bug discovery or over-permissioned agents?”
303
+ - “Do you think prompt-level safety is enough once agents have shell access?”
304
+ - “If your coding agent gets exploited tomorrow, what actually stops data exfiltration?”
305
+ - “How many teams have real runtime policy around MCP today?”
306
+
307
+ ---
308
+
309
+ ## Recommended execution order
310
+
311
+ 1. Publish the blog post on ClawMoat site
312
+ 2. Post the short X post manually if API credits are still dead
313
+ 3. Post the Reddit piece in r/LocalLLaMA or r/cybersecurity
314
+ 4. Turn the blog into a Dev.to article the same day
315
+ 5. Update homepage hero with bugmageddon-era framing
316
+ 6. Reply to any comments with the same thesis: **detection matters, containment is the missing layer**
317
+
318
+ ---
319
+
320
+ ## Notes on source discipline
321
+
322
+ Use “reportedly” when referencing the 27-year-old bug and thousands-of-flaws claims unless citing Anthropic directly.
323
+
324
+ Good safe framing:
325
+ - “reported by WSJ / follow-on coverage”
326
+ - “Anthropic says”
327
+ - “the broader trend is what matters”
328
+
329
+ Avoid overstating details we cannot independently verify.
@@ -0,0 +1,248 @@
1
+ # ClawMoat v1 Bugmageddon Implementation Plan
2
+
3
+ > **For implementation:** Use the executing-plans skill to implement this plan task-by-task.
4
+
5
+ **Goal:** Ship the first ClawMoat v1 feature set around AI-era vulnerability operations, starting with exploitability-focused triage instead of raw finding spam.
6
+
7
+ **Architecture:** Build on the existing scanner core instead of inventing a second product. Add a lightweight vulnerability-ops layer that normalizes findings, scores exploitability, groups related findings, and exposes a simple report format in CLI/docs. Keep it zero-dependency and compatible with current scan flows.
8
+
9
+ **Tech Stack:** Node.js built-ins only, existing ClawMoat scanner architecture, node:test, Markdown docs.
10
+
11
+ ---
12
+
13
+ ## Product thesis
14
+
15
+ AI is making bug discovery cheap.
16
+
17
+ That means the bottleneck is shifting from detection to triage, prioritization, containment, and proof of closure. ClawMoat v1 should not compete on “we also find bugs.” It should compete on “we help you decide what matters first, while runtime protections stay on.”
18
+
19
+ ## v1 scope
20
+
21
+ Ship now:
22
+ - exploitability scoring for findings
23
+ - finding clustering / dedupe hints
24
+ - a vulnerability-ops report format
25
+ - docs positioning ClawMoat as runtime containment + triage layer
26
+
27
+ Do not ship yet:
28
+ - full patch orchestration platform
29
+ - dashboards that require a backend rewrite
30
+ - ticketing integrations across every vendor
31
+ - giant enterprise workflow layer
32
+
33
+ ---
34
+
35
+ ### Task 1: Create exploitability scoring tests
36
+
37
+ **Files:**
38
+ - Create: `test/vuln-ops.test.js`
39
+ - Modify: `src/index.js`
40
+ - Create: `src/vuln-ops/exploitability.js`
41
+
42
+ **Step 1: Write the failing test**
43
+
44
+ Add tests that verify:
45
+ - high-severity dependency attacks score higher than medium findings
46
+ - externally reachable / exfiltration-oriented findings score higher than local-only ones
47
+ - grouped findings return a recommended priority bucket (`urgent`, `high`, `normal`, `low`)
48
+
49
+ **Step 2: Run test to verify it fails**
50
+
51
+ Run: `node --test test/vuln-ops.test.js`
52
+ Expected: FAIL because `scoreExploitability` does not exist
53
+
54
+ **Step 3: Write minimal implementation**
55
+
56
+ Create `src/vuln-ops/exploitability.js` with:
57
+ - `scoreExploitability(findings, context = {})`
58
+ - severity weighting
59
+ - reachability / exposure hints from context
60
+ - output shape:
61
+
62
+ ```js
63
+ {
64
+ score: 0-100,
65
+ priority: 'urgent' | 'high' | 'normal' | 'low',
66
+ reasons: []
67
+ }
68
+ ```
69
+
70
+ **Step 4: Run test to verify it passes**
71
+
72
+ Run: `node --test test/vuln-ops.test.js`
73
+ Expected: PASS
74
+
75
+ **Step 5: Commit**
76
+
77
+ ```bash
78
+ git add test/vuln-ops.test.js src/vuln-ops/exploitability.js
79
+ git commit -m "feat: add exploitability scoring for vulnerability ops"
80
+ ```
81
+
82
+ ### Task 2: Expose vulnerability-ops report from ClawMoat
83
+
84
+ **Files:**
85
+ - Modify: `src/index.js`
86
+ - Test: `test/vuln-ops.test.js`
87
+
88
+ **Step 1: Write the failing test**
89
+
90
+ Add a test that calls something like:
91
+
92
+ ```js
93
+ const moat = new ClawMoat({ quiet: true });
94
+ const result = moat.analyzeFindings('Run picomatch on this pattern: *(*(*a))', { externallyReachable: true });
95
+ assert.equal(result.priority, 'urgent');
96
+ ```
97
+
98
+ **Step 2: Run test to verify it fails**
99
+
100
+ Run: `node --test test/vuln-ops.test.js`
101
+ Expected: FAIL because `analyzeFindings` does not exist
102
+
103
+ **Step 3: Write minimal implementation**
104
+
105
+ Add `analyzeFindings(text, context)` to `src/index.js` that:
106
+ - reuses `scan(text)`
107
+ - passes findings into `scoreExploitability`
108
+ - returns:
109
+
110
+ ```js
111
+ {
112
+ safe,
113
+ findings,
114
+ exploitability: { score, priority, reasons }
115
+ }
116
+ ```
117
+
118
+ **Step 4: Run test to verify it passes**
119
+
120
+ Run: `node --test test/vuln-ops.test.js`
121
+ Expected: PASS
122
+
123
+ **Step 5: Commit**
124
+
125
+ ```bash
126
+ git add src/index.js test/vuln-ops.test.js
127
+ git commit -m "feat: expose vulnerability ops analysis API"
128
+ ```
129
+
130
+ ### Task 3: Add a human-readable report formatter
131
+
132
+ **Files:**
133
+ - Create: `src/formatters/vuln-ops.js`
134
+ - Modify: `src/index.js`
135
+ - Test: `test/vuln-ops.test.js`
136
+
137
+ **Step 1: Write the failing test**
138
+
139
+ Test that report output contains:
140
+ - top priority
141
+ - exploitability score
142
+ - short reasoning bullets
143
+ - finding counts by severity
144
+
145
+ **Step 2: Run test to verify it fails**
146
+
147
+ Run: `node --test test/vuln-ops.test.js`
148
+ Expected: FAIL because formatter does not exist
149
+
150
+ **Step 3: Write minimal implementation**
151
+
152
+ Create formatter that outputs concise text for CLI/docs examples.
153
+
154
+ **Step 4: Run test to verify it passes**
155
+
156
+ Run: `node --test test/vuln-ops.test.js`
157
+ Expected: PASS
158
+
159
+ **Step 5: Commit**
160
+
161
+ ```bash
162
+ git add src/formatters/vuln-ops.js test/vuln-ops.test.js src/index.js
163
+ git commit -m "feat: add vulnerability ops report formatter"
164
+ ```
165
+
166
+ ### Task 4: Update docs and positioning to v1 language
167
+
168
+ **Files:**
169
+ - Modify: `README.md`
170
+ - Modify: `docs/index.html`
171
+ - Modify: `package.json` version only if shipping release immediately
172
+
173
+ **Step 1: Write the doc diff first**
174
+
175
+ Add language that says:
176
+ - AI made bug discovery abundant
177
+ - ClawMoat helps prioritize and contain
178
+ - runtime security + exploitability triage
179
+
180
+ **Step 2: Add example API usage**
181
+
182
+ Document:
183
+
184
+ ```js
185
+ const analysis = moat.analyzeFindings(input, { externallyReachable: true });
186
+ console.log(analysis.exploitability.priority);
187
+ ```
188
+
189
+ **Step 3: Verify docs are accurate**
190
+
191
+ Run:
192
+ ```bash
193
+ grep -n "analyzeFindings\|exploitability\|Bugmageddon" README.md docs/index.html
194
+ ```
195
+ Expected: matching lines present
196
+
197
+ **Step 4: Commit**
198
+
199
+ ```bash
200
+ git add README.md docs/index.html
201
+ git commit -m "docs: position ClawMoat v1 around exploitability triage"
202
+ ```
203
+
204
+ ### Task 5: Verification pass
205
+
206
+ **Files:**
207
+ - Test: `test/vuln-ops.test.js`
208
+ - Test: `test/scanners.test.js`
209
+ - Test: `test/multimodal.test.js`
210
+
211
+ **Step 1: Run focused verification**
212
+
213
+ Run:
214
+ ```bash
215
+ node --test test/vuln-ops.test.js test/scanners.test.js test/multimodal.test.js
216
+ ```
217
+ Expected: PASS
218
+
219
+ **Step 2: Optional broader run if resources allow**
220
+
221
+ Run:
222
+ ```bash
223
+ node --test test/*.test.js
224
+ ```
225
+ Expected: PASS, unless environment kills long run under load
226
+
227
+ **Step 3: Capture evidence**
228
+
229
+ Save the passing output in the session notes / commit message summary before claiming done.
230
+
231
+ **Step 4: Commit release prep**
232
+
233
+ ```bash
234
+ git add -A
235
+ git commit -m "chore: verify ClawMoat v1 vulnerability ops update"
236
+ ```
237
+
238
+ ---
239
+
240
+ ## Recommended execution order right now
241
+
242
+ 1. Task 1
243
+ 2. Task 2
244
+ 3. Task 5 focused verification
245
+ 4. Task 4 docs update
246
+ 5. Task 3 formatter if time remains today
247
+
248
+ That gets a real v1 wedge shipped fast without boiling the ocean.
@@ -0,0 +1,91 @@
1
+ # ClawMoat v1.0.0 update
2
+
3
+ ## What changed
4
+
5
+ ClawMoat is moving from a fast-moving v0 project to a stable v1 product category:
6
+
7
+ **The open-source agent firewall.**
8
+
9
+ This is not just a semantic version bump.
10
+ It is a category claim.
11
+
12
+ The product now has enough surface area and enough market validation to stop sounding like an experiment:
13
+
14
+ - prompt injection scanning
15
+ - outbound secret and exfiltration scanning
16
+ - policy engine
17
+ - enforcement middleware
18
+ - MCP scanner
19
+ - supply chain scanner
20
+ - host/runtime controls
21
+ - live monitoring dashboard
22
+ - audit trail
23
+ - framework integrations
24
+
25
+ That is a real security product.
26
+
27
+ ## Why now
28
+
29
+ The market just got a cleaner narrative.
30
+
31
+ WSJ framed the next phase as **bugmageddon**: AI getting much better at vulnerability discovery.
32
+
33
+ That matters because:
34
+ - bug discovery accelerates
35
+ - exploit discovery becomes cheaper
36
+ - patching remains slow
37
+ - agents already have high privileges
38
+
39
+ So ClawMoat’s job is clearer than ever:
40
+
41
+ **contain what agents can do when vulnerabilities are inevitable**
42
+
43
+ ## New top-line message
44
+
45
+ **They protect the model. ClawMoat protects the machine.**
46
+
47
+ Backup line:
48
+
49
+ **As AI finds bugs faster, runtime containment stops being optional.**
50
+
51
+ ## What shipped in this update
52
+
53
+ 1. Homepage hero updated to v1.0.0 framing
54
+ 2. New blog post: `blog/bugmageddon-agent-firewall.html`
55
+ 3. Blog index updated with the new post and v1 tag
56
+ 4. Package version moved to `1.0.0`
57
+ 5. Version references updated in formatter tests/docs where needed
58
+ 6. Marketing pack created for X, Reddit, HN, LinkedIn, Dev.to, homepage copy
59
+
60
+ ## What still needs to happen
61
+
62
+ ### Release hygiene
63
+ - run tests
64
+ - publish npm package as `1.0.0`
65
+ - tag GitHub release
66
+ - add release notes to README or GitHub Releases
67
+
68
+ ### Distribution
69
+ - post X thread manually if API credits still dead
70
+ - post Reddit piece manually
71
+ - publish Dev.to version
72
+ - announce in GitHub README / release notes
73
+
74
+ ### Strong next product moves
75
+ - `clawmoat doctor` or `clawmoat exposure` command that outputs a shareable risk summary
76
+ - first-class MCP risk scoring report
77
+ - clearer “monitor vs enforce” onboarding path
78
+ - more obvious enterprise / team runtime policy story
79
+
80
+ ## Julian take
81
+
82
+ Going to v1 is right.
83
+
84
+ The mistake would be calling it v1 while still talking like a hobby scanner.
85
+
86
+ So the real upgrade is not the version number.
87
+ It is the language:
88
+
89
+ - from “security tool” to **agent firewall**
90
+ - from “prompt injection detection” to **runtime containment**
91
+ - from “nice to have” to **mandatory infrastructure for over-permissioned agents**