clawhatch 0.1.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/LICENSE +21 -0
- package/README.md +348 -0
- package/dist/checks/cloud-sync.d.ts +10 -0
- package/dist/checks/cloud-sync.d.ts.map +1 -0
- package/dist/checks/cloud-sync.js +62 -0
- package/dist/checks/cloud-sync.js.map +1 -0
- package/dist/checks/data-protection.d.ts +9 -0
- package/dist/checks/data-protection.d.ts.map +1 -0
- package/dist/checks/data-protection.js +197 -0
- package/dist/checks/data-protection.js.map +1 -0
- package/dist/checks/identity.d.ts +14 -0
- package/dist/checks/identity.d.ts.map +1 -0
- package/dist/checks/identity.js +327 -0
- package/dist/checks/identity.js.map +1 -0
- package/dist/checks/model.d.ts +10 -0
- package/dist/checks/model.d.ts.map +1 -0
- package/dist/checks/model.js +337 -0
- package/dist/checks/model.js.map +1 -0
- package/dist/checks/network.d.ts +9 -0
- package/dist/checks/network.d.ts.map +1 -0
- package/dist/checks/network.js +177 -0
- package/dist/checks/network.js.map +1 -0
- package/dist/checks/operational.d.ts +9 -0
- package/dist/checks/operational.d.ts.map +1 -0
- package/dist/checks/operational.js +158 -0
- package/dist/checks/operational.js.map +1 -0
- package/dist/checks/sandbox.d.ts +9 -0
- package/dist/checks/sandbox.d.ts.map +1 -0
- package/dist/checks/sandbox.js +135 -0
- package/dist/checks/sandbox.js.map +1 -0
- package/dist/checks/secrets.d.ts +9 -0
- package/dist/checks/secrets.d.ts.map +1 -0
- package/dist/checks/secrets.js +816 -0
- package/dist/checks/secrets.js.map +1 -0
- package/dist/checks/skills.d.ts +9 -0
- package/dist/checks/skills.d.ts.map +1 -0
- package/dist/checks/skills.js +303 -0
- package/dist/checks/skills.js.map +1 -0
- package/dist/checks/tools.d.ts +9 -0
- package/dist/checks/tools.d.ts.map +1 -0
- package/dist/checks/tools.js +397 -0
- package/dist/checks/tools.js.map +1 -0
- package/dist/discover.d.ts +22 -0
- package/dist/discover.d.ts.map +1 -0
- package/dist/discover.js +281 -0
- package/dist/discover.js.map +1 -0
- package/dist/fixer.d.ts +16 -0
- package/dist/fixer.d.ts.map +1 -0
- package/dist/fixer.js +361 -0
- package/dist/fixer.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +230 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +14 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +108 -0
- package/dist/init.js.map +1 -0
- package/dist/notify.d.ts +28 -0
- package/dist/notify.d.ts.map +1 -0
- package/dist/notify.js +217 -0
- package/dist/notify.js.map +1 -0
- package/dist/parsers/config.d.ts +16 -0
- package/dist/parsers/config.d.ts.map +1 -0
- package/dist/parsers/config.js +54 -0
- package/dist/parsers/config.js.map +1 -0
- package/dist/parsers/env.d.ts +6 -0
- package/dist/parsers/env.d.ts.map +1 -0
- package/dist/parsers/env.js +35 -0
- package/dist/parsers/env.js.map +1 -0
- package/dist/parsers/jsonl.d.ts +12 -0
- package/dist/parsers/jsonl.d.ts.map +1 -0
- package/dist/parsers/jsonl.js +61 -0
- package/dist/parsers/jsonl.js.map +1 -0
- package/dist/parsers/markdown.d.ts +17 -0
- package/dist/parsers/markdown.d.ts.map +1 -0
- package/dist/parsers/markdown.js +57 -0
- package/dist/parsers/markdown.js.map +1 -0
- package/dist/reporter-html.d.ts +9 -0
- package/dist/reporter-html.d.ts.map +1 -0
- package/dist/reporter-html.js +581 -0
- package/dist/reporter-html.js.map +1 -0
- package/dist/reporter.d.ts +10 -0
- package/dist/reporter.d.ts.map +1 -0
- package/dist/reporter.js +133 -0
- package/dist/reporter.js.map +1 -0
- package/dist/sanitize.d.ts +17 -0
- package/dist/sanitize.d.ts.map +1 -0
- package/dist/sanitize.js +83 -0
- package/dist/sanitize.js.map +1 -0
- package/dist/scanner.d.ts +18 -0
- package/dist/scanner.d.ts.map +1 -0
- package/dist/scanner.js +236 -0
- package/dist/scanner.js.map +1 -0
- package/dist/scoring.d.ts +17 -0
- package/dist/scoring.d.ts.map +1 -0
- package/dist/scoring.js +47 -0
- package/dist/scoring.js.map +1 -0
- package/dist/telemetry.d.ts +16 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +52 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/threat-feed.d.ts +14 -0
- package/dist/threat-feed.d.ts.map +1 -0
- package/dist/threat-feed.js +133 -0
- package/dist/threat-feed.js.map +1 -0
- package/dist/types.d.ts +221 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +12 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +34 -0
- package/dist/utils.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixer.js","sourceRoot":"","sources":["../src/fixer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Clawhatch CLI — Security scanner for OpenClaw AI agents.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* npx clawhatch scan # Basic scan
|
|
7
|
+
* npx clawhatch scan --workspace . # Include workspace files
|
|
8
|
+
* npx clawhatch scan --json # Machine-readable output
|
|
9
|
+
* npx clawhatch scan --fix # Auto-fix safe issues
|
|
10
|
+
* npx clawhatch scan --deep # Deep scan (full session logs)
|
|
11
|
+
* npx clawhatch scan --share # Share anonymized results
|
|
12
|
+
* npx clawhatch threats # View community threat feed
|
|
13
|
+
* npx clawhatch subscribe --webhook URL # Subscribe to alerts
|
|
14
|
+
*/
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Clawhatch CLI — Security scanner for OpenClaw AI agents.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* npx clawhatch scan # Basic scan
|
|
7
|
+
* npx clawhatch scan --workspace . # Include workspace files
|
|
8
|
+
* npx clawhatch scan --json # Machine-readable output
|
|
9
|
+
* npx clawhatch scan --fix # Auto-fix safe issues
|
|
10
|
+
* npx clawhatch scan --deep # Deep scan (full session logs)
|
|
11
|
+
* npx clawhatch scan --share # Share anonymized results
|
|
12
|
+
* npx clawhatch threats # View community threat feed
|
|
13
|
+
* npx clawhatch subscribe --webhook URL # Subscribe to alerts
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from "commander";
|
|
16
|
+
import chalk from "chalk";
|
|
17
|
+
import { writeFile } from "node:fs/promises";
|
|
18
|
+
import { resolve } from "node:path";
|
|
19
|
+
import { scan } from "./scanner.js";
|
|
20
|
+
import { reportFindings, reportJson } from "./reporter.js";
|
|
21
|
+
import { generateHtmlReport } from "./reporter-html.js";
|
|
22
|
+
import { applyFixes } from "./fixer.js";
|
|
23
|
+
import { sanitizeFindings, redactPaths } from "./sanitize.js";
|
|
24
|
+
import { initSecureConfig } from "./init.js";
|
|
25
|
+
import { anonymizeScanResult, uploadThreatReport } from "./telemetry.js";
|
|
26
|
+
import { DEFAULT_API_URL, fetchThreatFeed, formatThreatFeed, checkAgainstFeed } from "./threat-feed.js";
|
|
27
|
+
import { loadNotifyConfig, saveNotifyConfig, buildAlerts, sendWebhookAlert, sendTestAlert } from "./notify.js";
|
|
28
|
+
const program = new Command();
|
|
29
|
+
program
|
|
30
|
+
.name("clawhatch")
|
|
31
|
+
.description("Security scanner for OpenClaw AI agents")
|
|
32
|
+
.version("0.1.0");
|
|
33
|
+
program
|
|
34
|
+
.command("scan")
|
|
35
|
+
.description("Scan your OpenClaw installation for security issues")
|
|
36
|
+
.option("-p, --path <path>", "OpenClaw installation path", "~/.openclaw")
|
|
37
|
+
.option("-w, --workspace <path>", "Workspace path (for SOUL.md, skills, etc.)")
|
|
38
|
+
.option("--json", "Output JSON instead of formatted text")
|
|
39
|
+
.option("--format <format>", "Output format: text, json, html", "text")
|
|
40
|
+
.option("--fix", "Auto-apply safe fixes (prompts for behavioral changes)")
|
|
41
|
+
.option("--deep", "Deep scan — full session log analysis (slower)")
|
|
42
|
+
.option("--share", "Anonymize and share results with community threat feed")
|
|
43
|
+
.option("--upload", "Alias for --share")
|
|
44
|
+
.option("--redact-paths", "Redact file paths in output (for sharing results)")
|
|
45
|
+
.action(async (options) => {
|
|
46
|
+
// --json flag is an alias for --format json
|
|
47
|
+
const format = options.json ? "json" : options.format;
|
|
48
|
+
const shouldShare = !!(options.share || options.upload);
|
|
49
|
+
if (format === "text") {
|
|
50
|
+
console.log(chalk.cyan("\n Clawhatch Security Scanner v0.1.0\n"));
|
|
51
|
+
}
|
|
52
|
+
const result = await scan({
|
|
53
|
+
openclawPath: options.path,
|
|
54
|
+
workspacePath: options.workspace,
|
|
55
|
+
autoFix: !!options.fix,
|
|
56
|
+
deep: !!options.deep,
|
|
57
|
+
json: format === "json",
|
|
58
|
+
upload: shouldShare,
|
|
59
|
+
});
|
|
60
|
+
// Apply path redaction if requested
|
|
61
|
+
if (options.redactPaths) {
|
|
62
|
+
result.findings = redactPaths(result.findings);
|
|
63
|
+
result.suggestions = redactPaths(result.suggestions);
|
|
64
|
+
}
|
|
65
|
+
// Output results
|
|
66
|
+
if (format === "json") {
|
|
67
|
+
// Sanitize before JSON output
|
|
68
|
+
result.findings = sanitizeFindings(result.findings);
|
|
69
|
+
result.suggestions = sanitizeFindings(result.suggestions);
|
|
70
|
+
reportJson(result);
|
|
71
|
+
}
|
|
72
|
+
else if (format === "html") {
|
|
73
|
+
const html = generateHtmlReport(result);
|
|
74
|
+
const outPath = resolve(process.cwd(), "clawhatch-report.html");
|
|
75
|
+
await writeFile(outPath, html, "utf-8");
|
|
76
|
+
console.log(chalk.green(`\n HTML report written to ${outPath}\n`));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
reportFindings(result);
|
|
80
|
+
}
|
|
81
|
+
// Auto-fix if requested
|
|
82
|
+
if (options.fix && result.findings.some((f) => f.autoFixable)) {
|
|
83
|
+
const configPath = result.findings.find((f) => f.file)?.file ?? null;
|
|
84
|
+
const { findOpenClawDir } = await import("./discover.js");
|
|
85
|
+
const openclawDir = await findOpenClawDir(options.path);
|
|
86
|
+
if (openclawDir) {
|
|
87
|
+
await applyFixes(result.findings, configPath, openclawDir);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Community threat intelligence
|
|
91
|
+
if (shouldShare) {
|
|
92
|
+
const report = anonymizeScanResult(result);
|
|
93
|
+
if (format !== "json") {
|
|
94
|
+
console.log(chalk.dim("\n Sharing anonymized results with community..."));
|
|
95
|
+
}
|
|
96
|
+
const uploadResult = await uploadThreatReport(report, DEFAULT_API_URL);
|
|
97
|
+
if (uploadResult.success) {
|
|
98
|
+
if (format !== "json") {
|
|
99
|
+
console.log(chalk.green(" Shared with community threat feed."));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
if (format !== "json") {
|
|
104
|
+
console.log(chalk.yellow(` Could not share: ${uploadResult.error}`));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Check against community feed and send webhook alerts
|
|
109
|
+
const { findOpenClawDir } = await import("./discover.js");
|
|
110
|
+
const openclawDir = await findOpenClawDir(options.path);
|
|
111
|
+
if (openclawDir) {
|
|
112
|
+
const notifyConfig = await loadNotifyConfig(openclawDir);
|
|
113
|
+
if (notifyConfig?.notify?.webhookUrl) {
|
|
114
|
+
const feed = await fetchThreatFeed(notifyConfig.apiUrl ?? DEFAULT_API_URL);
|
|
115
|
+
// Show community cross-reference warnings
|
|
116
|
+
if (feed && format === "text") {
|
|
117
|
+
const warnings = checkAgainstFeed(result, feed);
|
|
118
|
+
if (warnings.length > 0) {
|
|
119
|
+
console.log(chalk.bold.yellow("\n Community Threat Warnings"));
|
|
120
|
+
for (const w of warnings) {
|
|
121
|
+
console.log(chalk.yellow(` ! ${w}`));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Send webhook alerts
|
|
126
|
+
const threshold = notifyConfig.notify.threshold ?? "HIGH";
|
|
127
|
+
const alerts = buildAlerts(result, feed, threshold);
|
|
128
|
+
if (alerts.length > 0) {
|
|
129
|
+
const sent = await sendWebhookAlert(notifyConfig.notify.webhookUrl, alerts, result.score);
|
|
130
|
+
if (format !== "json") {
|
|
131
|
+
if (sent) {
|
|
132
|
+
console.log(chalk.green(` Sent ${alerts.length} alert(s) to webhook.`));
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
console.log(chalk.yellow(" Failed to send webhook alerts."));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// Exit code: 1 if critical findings, 0 otherwise
|
|
142
|
+
const hasCritical = result.findings.some((f) => f.severity === "CRITICAL");
|
|
143
|
+
process.exit(hasCritical ? 1 : 0);
|
|
144
|
+
});
|
|
145
|
+
program
|
|
146
|
+
.command("init")
|
|
147
|
+
.description("Generate a secure baseline OpenClaw configuration")
|
|
148
|
+
.option("-p, --path <path>", "Target directory", "~/.openclaw")
|
|
149
|
+
.action(async (options) => {
|
|
150
|
+
console.log(chalk.cyan("\n Clawhatch Config Generator v0.1.0\n"));
|
|
151
|
+
// FIX: Use os.homedir() for reliable cross-platform ~ expansion
|
|
152
|
+
// process.env.HOME is undefined on Windows; USERPROFILE may have spaces
|
|
153
|
+
const { homedir } = await import("node:os");
|
|
154
|
+
const { join } = await import("node:path");
|
|
155
|
+
const targetDir = options.path.startsWith("~")
|
|
156
|
+
? join(homedir(), options.path.slice(1))
|
|
157
|
+
: options.path;
|
|
158
|
+
const result = await initSecureConfig(targetDir);
|
|
159
|
+
console.log("");
|
|
160
|
+
if (result.created.length > 0) {
|
|
161
|
+
console.log(chalk.green(` Created ${result.created.length} file(s) in ${targetDir}`));
|
|
162
|
+
}
|
|
163
|
+
if (result.skipped.length > 0) {
|
|
164
|
+
console.log(chalk.yellow(` Skipped ${result.skipped.length} file(s) (already exist)`));
|
|
165
|
+
}
|
|
166
|
+
console.log(chalk.cyan("\n Next steps:"));
|
|
167
|
+
console.log(chalk.white(" 1. Set OPENCLAW_AUTH_TOKEN in .env (use the command in the file)"));
|
|
168
|
+
console.log(chalk.white(" 2. Add your API keys to .env"));
|
|
169
|
+
console.log(chalk.white(" 3. Run: clawhatch scan -p " + targetDir + "\n"));
|
|
170
|
+
});
|
|
171
|
+
program
|
|
172
|
+
.command("threats")
|
|
173
|
+
.description("View the community threat intelligence feed")
|
|
174
|
+
.option("--api-url <url>", "API endpoint", DEFAULT_API_URL)
|
|
175
|
+
.action(async (options) => {
|
|
176
|
+
console.log(chalk.dim("\n Fetching community threat feed...\n"));
|
|
177
|
+
const feed = await fetchThreatFeed(options.apiUrl);
|
|
178
|
+
if (!feed) {
|
|
179
|
+
console.log(chalk.yellow(" Could not reach the community feed. Try again later.\n"));
|
|
180
|
+
process.exit(0);
|
|
181
|
+
}
|
|
182
|
+
console.log(formatThreatFeed(feed));
|
|
183
|
+
});
|
|
184
|
+
program
|
|
185
|
+
.command("subscribe")
|
|
186
|
+
.description("Subscribe to community threat alerts via webhook")
|
|
187
|
+
.option("--webhook <url>", "Discord, Slack, or generic webhook URL")
|
|
188
|
+
.option("--threshold <severity>", "Minimum severity to alert on", "HIGH")
|
|
189
|
+
.option("-p, --path <path>", "OpenClaw installation path", "~/.openclaw")
|
|
190
|
+
.action(async (options) => {
|
|
191
|
+
if (!options.webhook) {
|
|
192
|
+
console.error(chalk.red("\n --webhook <url> is required.\n"));
|
|
193
|
+
console.log(chalk.dim(" Examples:"));
|
|
194
|
+
console.log(chalk.dim(" clawhatch subscribe --webhook https://discord.com/api/webhooks/..."));
|
|
195
|
+
console.log(chalk.dim(" clawhatch subscribe --webhook https://hooks.slack.com/services/..."));
|
|
196
|
+
console.log(chalk.dim(" clawhatch subscribe --threshold CRITICAL\n"));
|
|
197
|
+
process.exit(1);
|
|
198
|
+
}
|
|
199
|
+
const { homedir } = await import("node:os");
|
|
200
|
+
const { join } = await import("node:path");
|
|
201
|
+
const openclawDir = options.path.startsWith("~")
|
|
202
|
+
? join(homedir(), options.path.slice(1))
|
|
203
|
+
: options.path;
|
|
204
|
+
const threshold = options.threshold.toUpperCase();
|
|
205
|
+
const valid = ["CRITICAL", "HIGH", "MEDIUM", "LOW"];
|
|
206
|
+
if (!valid.includes(threshold)) {
|
|
207
|
+
console.error(chalk.red(`\n Invalid threshold: ${threshold}`));
|
|
208
|
+
console.error(chalk.dim(` Valid: ${valid.join(", ")}\n`));
|
|
209
|
+
process.exit(1);
|
|
210
|
+
}
|
|
211
|
+
// Save webhook config
|
|
212
|
+
await saveNotifyConfig(openclawDir, {
|
|
213
|
+
notify: {
|
|
214
|
+
webhookUrl: options.webhook,
|
|
215
|
+
threshold,
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
console.log(chalk.dim("\n Sending test alert..."));
|
|
219
|
+
const ok = await sendTestAlert(options.webhook);
|
|
220
|
+
if (ok) {
|
|
221
|
+
console.log(chalk.green(" Webhook confirmed! You will receive alerts here."));
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
console.log(chalk.yellow(" Could not reach webhook. Check the URL and try again."));
|
|
225
|
+
}
|
|
226
|
+
console.log(chalk.dim(` Threshold: ${threshold} and above`));
|
|
227
|
+
console.log(chalk.dim(` Config saved to: ${openclawDir}/clawhatch.json\n`));
|
|
228
|
+
});
|
|
229
|
+
program.parse();
|
|
230
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/init.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate a secure baseline OpenClaw configuration.
|
|
3
|
+
*
|
|
4
|
+
* Creates openclaw.json, .env, and .gitignore with
|
|
5
|
+
* hardened defaults in the target directory.
|
|
6
|
+
*/
|
|
7
|
+
interface InitResult {
|
|
8
|
+
created: string[];
|
|
9
|
+
skipped: string[];
|
|
10
|
+
directory: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function initSecureConfig(targetDir: string): Promise<InitResult>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2DH,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CAwCrB"}
|
package/dist/init.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate a secure baseline OpenClaw configuration.
|
|
3
|
+
*
|
|
4
|
+
* Creates openclaw.json, .env, and .gitignore with
|
|
5
|
+
* hardened defaults in the target directory.
|
|
6
|
+
*/
|
|
7
|
+
import { writeFile, mkdir, access } from "node:fs/promises";
|
|
8
|
+
import { join } from "node:path";
|
|
9
|
+
import chalk from "chalk";
|
|
10
|
+
const SECURE_CONFIG = {
|
|
11
|
+
gateway: {
|
|
12
|
+
bind: "127.0.0.1",
|
|
13
|
+
port: 3000,
|
|
14
|
+
auth: {
|
|
15
|
+
mode: "token",
|
|
16
|
+
token: "${OPENCLAW_AUTH_TOKEN}",
|
|
17
|
+
},
|
|
18
|
+
allowInsecureAuth: false,
|
|
19
|
+
dangerouslyDisableDeviceAuth: false,
|
|
20
|
+
},
|
|
21
|
+
channels: {},
|
|
22
|
+
sandbox: {
|
|
23
|
+
mode: "all",
|
|
24
|
+
workspaceAccess: "ro",
|
|
25
|
+
},
|
|
26
|
+
tools: {
|
|
27
|
+
elevated: [],
|
|
28
|
+
auditLog: true,
|
|
29
|
+
timeout: 30000,
|
|
30
|
+
rateLimit: 60,
|
|
31
|
+
},
|
|
32
|
+
retention: {
|
|
33
|
+
sessionLogTTL: 2592000,
|
|
34
|
+
encryptAtRest: false,
|
|
35
|
+
logRotation: true,
|
|
36
|
+
},
|
|
37
|
+
skills: {
|
|
38
|
+
sandboxed: true,
|
|
39
|
+
verifySignatures: false,
|
|
40
|
+
autoUpdate: false,
|
|
41
|
+
},
|
|
42
|
+
model: {
|
|
43
|
+
default: "claude-sonnet-4-5-20250929",
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
const ENV_TEMPLATE = `# OpenClaw Environment Variables
|
|
47
|
+
# Generate a secure token: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
|
|
48
|
+
OPENCLAW_AUTH_TOKEN=
|
|
49
|
+
OPENAI_API_KEY=
|
|
50
|
+
ANTHROPIC_API_KEY=
|
|
51
|
+
`;
|
|
52
|
+
const GITIGNORE_TEMPLATE = `.env
|
|
53
|
+
.env.*
|
|
54
|
+
credentials/
|
|
55
|
+
*.key
|
|
56
|
+
*.pem
|
|
57
|
+
*.p12
|
|
58
|
+
agents/*/sessions/
|
|
59
|
+
`;
|
|
60
|
+
async function fileExists(path) {
|
|
61
|
+
try {
|
|
62
|
+
await access(path);
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export async function initSecureConfig(targetDir) {
|
|
70
|
+
const result = { created: [], skipped: [], directory: targetDir };
|
|
71
|
+
// Ensure directory exists
|
|
72
|
+
await mkdir(targetDir, { recursive: true });
|
|
73
|
+
// Write openclaw.json
|
|
74
|
+
const configPath = join(targetDir, "openclaw.json");
|
|
75
|
+
if (await fileExists(configPath)) {
|
|
76
|
+
console.log(chalk.yellow(` ! Skipping ${configPath} (already exists)`));
|
|
77
|
+
result.skipped.push("openclaw.json");
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
await writeFile(configPath, JSON.stringify(SECURE_CONFIG, null, 2) + "\n");
|
|
81
|
+
console.log(chalk.green(` + Created ${configPath}`));
|
|
82
|
+
result.created.push("openclaw.json");
|
|
83
|
+
}
|
|
84
|
+
// Write .env
|
|
85
|
+
const envPath = join(targetDir, ".env");
|
|
86
|
+
if (await fileExists(envPath)) {
|
|
87
|
+
console.log(chalk.yellow(` ! Skipping ${envPath} (already exists)`));
|
|
88
|
+
result.skipped.push(".env");
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
await writeFile(envPath, ENV_TEMPLATE);
|
|
92
|
+
console.log(chalk.green(` + Created ${envPath}`));
|
|
93
|
+
result.created.push(".env");
|
|
94
|
+
}
|
|
95
|
+
// Write .gitignore
|
|
96
|
+
const gitignorePath = join(targetDir, ".gitignore");
|
|
97
|
+
if (await fileExists(gitignorePath)) {
|
|
98
|
+
console.log(chalk.yellow(` ! Skipping ${gitignorePath} (already exists)`));
|
|
99
|
+
result.skipped.push(".gitignore");
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
await writeFile(gitignorePath, GITIGNORE_TEMPLATE);
|
|
103
|
+
console.log(chalk.green(` + Created ${gitignorePath}`));
|
|
104
|
+
result.created.push(".gitignore");
|
|
105
|
+
}
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=init.js.map
|
package/dist/init.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
package/dist/notify.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notification system for Clawhatch security scanner.
|
|
3
|
+
* Supports Discord, Slack, and generic webhook alerts.
|
|
4
|
+
*/
|
|
5
|
+
import type { ClawhatchConfig, ScanResult, ThreatFeed, WebhookAlert } from "./types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Load clawhatch.json from the openclaw directory.
|
|
8
|
+
*/
|
|
9
|
+
export declare function loadNotifyConfig(openclawDir: string): Promise<ClawhatchConfig | null>;
|
|
10
|
+
/**
|
|
11
|
+
* Save (merge) clawhatch.json in the openclaw directory.
|
|
12
|
+
*/
|
|
13
|
+
export declare function saveNotifyConfig(openclawDir: string, config: ClawhatchConfig): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Build webhook alerts from scan results, filtered by severity threshold.
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildAlerts(result: ScanResult, feed: ThreatFeed | null, threshold: string): WebhookAlert[];
|
|
18
|
+
/**
|
|
19
|
+
* Send webhook alerts to a Discord, Slack, or generic endpoint.
|
|
20
|
+
* Returns true on 2xx, false otherwise. Never throws.
|
|
21
|
+
*/
|
|
22
|
+
export declare function sendWebhookAlert(webhookUrl: string, alerts: WebhookAlert[], score: number): Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Send a test message to verify the webhook is working.
|
|
25
|
+
* Returns true on 2xx, false otherwise. Never throws.
|
|
26
|
+
*/
|
|
27
|
+
export declare function sendTestAlert(webhookUrl: string): Promise<boolean>;
|
|
28
|
+
//# sourceMappingURL=notify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EAEb,MAAM,YAAY,CAAC;AASpB;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAOjC;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,UAAU,GAAG,IAAI,EACvB,SAAS,EAAE,MAAM,GAChB,YAAY,EAAE,CAkChB;AAkGD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,YAAY,EAAE,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CA2BlB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8BxE"}
|