feat(dev): add no-touch OpenClaw config renderer and integration guide
This commit is contained in:
8
Makefile
8
Makefile
@@ -1,4 +1,4 @@
|
|||||||
.PHONY: check check-rules up down smoke
|
.PHONY: check check-rules test-api up down smoke render-config
|
||||||
|
|
||||||
check:
|
check:
|
||||||
cd plugin && npm run check
|
cd plugin && npm run check
|
||||||
@@ -6,6 +6,9 @@ check:
|
|||||||
check-rules:
|
check-rules:
|
||||||
node scripts/validate-rules.mjs
|
node scripts/validate-rules.mjs
|
||||||
|
|
||||||
|
test-api:
|
||||||
|
node scripts/test-no-reply-api.mjs
|
||||||
|
|
||||||
up:
|
up:
|
||||||
./scripts/dev-up.sh
|
./scripts/dev-up.sh
|
||||||
|
|
||||||
@@ -14,3 +17,6 @@ down:
|
|||||||
|
|
||||||
smoke:
|
smoke:
|
||||||
./scripts/smoke-no-reply-api.sh
|
./scripts/smoke-no-reply-api.sh
|
||||||
|
|
||||||
|
render-config:
|
||||||
|
node scripts/render-openclaw-config.mjs
|
||||||
|
|||||||
34
docs/INTEGRATION.md
Normal file
34
docs/INTEGRATION.md
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# WhisperGate Integration (No-touch Template)
|
||||||
|
|
||||||
|
This guide **does not** change your current OpenClaw config automatically.
|
||||||
|
It only generates a JSON snippet you can review.
|
||||||
|
|
||||||
|
## Generate config snippet
|
||||||
|
|
||||||
|
```bash
|
||||||
|
node scripts/render-openclaw-config.mjs \
|
||||||
|
/absolute/path/to/WhisperGate/plugin \
|
||||||
|
openai \
|
||||||
|
whispergate-no-reply-v1 \
|
||||||
|
561921120408698910
|
||||||
|
```
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
1. plugin path
|
||||||
|
2. provider alias
|
||||||
|
3. model name
|
||||||
|
4. bypass user ids (comma-separated, optional)
|
||||||
|
|
||||||
|
## Output
|
||||||
|
|
||||||
|
The script prints JSON for:
|
||||||
|
- `plugins.load.paths`
|
||||||
|
- `plugins.entries.whispergate.config`
|
||||||
|
|
||||||
|
You can merge this snippet manually into your `openclaw.json`.
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- This repo does not run config mutation commands.
|
||||||
|
- Keep no-reply API bound to loopback/private network.
|
||||||
|
- If you use API auth, set `AUTH_TOKEN` and align provider apiKey usage.
|
||||||
25
scripts/render-openclaw-config.mjs
Normal file
25
scripts/render-openclaw-config.mjs
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
const pluginPath = process.argv[2] || "/opt/WhisperGate/plugin";
|
||||||
|
const provider = process.argv[3] || "openai";
|
||||||
|
const model = process.argv[4] || "whispergate-no-reply-v1";
|
||||||
|
const bypass = (process.argv[5] || "").split(",").filter(Boolean);
|
||||||
|
|
||||||
|
const payload = {
|
||||||
|
plugins: {
|
||||||
|
load: { paths: [pluginPath] },
|
||||||
|
entries: {
|
||||||
|
whispergate: {
|
||||||
|
enabled: true,
|
||||||
|
config: {
|
||||||
|
enabled: true,
|
||||||
|
discordOnly: true,
|
||||||
|
bypassUserIds: bypass,
|
||||||
|
endSymbols: ["。", "!", "?", ".", "!", "?"],
|
||||||
|
noReplyProvider: provider,
|
||||||
|
noReplyModel: model,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
console.log(JSON.stringify(payload, null, 2));
|
||||||
Reference in New Issue
Block a user