@atbash/atbash-openclaw 0.1.17-dev.4 → 0.1.17-dev.5

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 (2) hide show
  1. package/README.md +59 -4
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -7,11 +7,10 @@ If you're not using OpenClaw and want to use ATBASH from your own code, install
7
7
  ## Install
8
8
 
9
9
  ```bash
10
- openclaw plugins install @atbash/atbash-openclaw # production
11
- openclaw plugins install @atbash/atbash-openclaw@dev # development
10
+ openclaw plugins install @atbash/atbash-openclaw@0.1.17-dev.4
12
11
  ```
13
12
 
14
- **The judge endpoint and chain ids are compiled into the build**, so the npm tag selects the environment. Install the plain tag if your agent was onboarded on production, the `@dev` tag if it was onboarded on development; `openclaw plugins list` shows which you have (a `-dev.N` version is the development build). No configuration repoints a build afterwards — the wrong one loads cleanly, fires its hook, and then fails every judge call because the agent does not exist on the chain that build targets. Organization names are not unique across environments, so a resolving org name is not proof the build is right.
13
+ **The judge endpoint and chain ids are compiled into the build**, so the version selects the environment. A `-dev.N` version targets the development environment. `openclaw plugins list` shows which you have. No configuration repoints a build afterwards — the wrong one loads cleanly, fires its hook, and then fails every judge call because the agent does not exist on the chain that build targets. Organization names are not unique across environments, so a resolving org name is not proof the build is right.
15
14
 
16
15
  The plugin signs audit transactions locally with your agent's secp256k1 private key. The key never leaves your machine; only signed bytes plus the corresponding public key are transmitted.
17
16
 
@@ -67,6 +66,51 @@ already there:
67
66
  }
68
67
  ```
69
68
 
69
+ ### Advanced configuration
70
+
71
+ The snippet below shows every supported config field with inline comments. Remove fields you don't need — all are optional except `orgName` (required when your org is on a private chain).
72
+
73
+ ```jsonc
74
+ {
75
+ "plugins": {
76
+ "entries": {
77
+ "atbash-openclaw": {
78
+ "enabled": true,
79
+ "config": {
80
+ "enabled": true,
81
+ "enforceDecision": true,
82
+ "chromiaSecretPath": "~/.config/atbash/guard-client-key",
83
+ "orgName": "<your-org-name>",
84
+ "debug": false,
85
+
86
+ // --- Memory guard (optional) ---
87
+ // Root directory used to locate the memory pointer file and MEMORY.md.
88
+ "memoryWorkspaceDir": "~/.openclaw/workspace",
89
+ // Or set an explicit path to MEMORY.md (overrides memoryWorkspaceDir):
90
+ // "memoryFilePath": "~/.openclaw/workspace/MEMORY.md",
91
+ // How long (ms) to trust the local memory-chain cache before re-fetching.
92
+ "memorySyncTTLMs": 30000,
93
+ // Block memory reads when a rolled-back version scores below this (1–10).
94
+ // Default 1 = warn only. Raise to e.g. 3 to refuse poisoned rollbacks.
95
+ "memoryRollbackMinScore": 1,
96
+ // Additional path substrings to classify as memory (extends SDK built-ins).
97
+ // "memoryPathPatterns": ["/my-agent/memory/"],
98
+
99
+ // --- Self-hosted judge (optional, advanced) ---
100
+ // "judgeEndpoint": "https://your-judge.example.com/api/v1/judge",
101
+ // "judgeEndpointPolicy": "self-hosted",
102
+ // "judgeVerifyPubKey": "<66-hex-char-secp256k1-pubkey>"
103
+ },
104
+ "hooks": {
105
+ "allowConversationAccess": true,
106
+ "allowPromptInjection": true
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ ```
113
+
70
114
  The plugin id is `atbash-openclaw` — it comes from the `id` field in this package's `openclaw.plugin.json`,
71
115
  not from the npm package name. A `plugins.entries` key that does not match the id is not an error: the
72
116
  plugin loads unconfigured and audits nothing.
@@ -76,10 +120,18 @@ plugin loads unconfigured and audits nothing.
76
120
  | Field | Type | Default | What it does |
77
121
  |---|---|---|---|
78
122
  | `enabled` | bool | `true` | Master switch. `false` = plugin returns immediately. |
79
- | `enforceDecision` | bool | `true` | Surfaced to logs. The plugin always blocks on `BLOCK`. |
123
+ | `enforceDecision` | bool | `true` | Fail-closed switch. When `true` (default), verdicts of `BLOCK`, `HOLD`, `ERROR`, and any unrecognized verdict block the tool call. When `false`, the plugin runs fail-open: all verdicts allow the tool call through and the outcome is only logged — useful for monitoring without enforcement. |
80
124
  | `chromiaSecretPath` | string | `~/.config/atbash/guard-client-key` | Path to the agent key file. Supports `~/`. |
81
125
  | `orgName` | string | — | Organization the agent was onboarded under, spelled as the dashboard shows it. The plugin resolves which chain to query from this, so it is required when the org is on a private chain. |
82
126
  | `debug` | bool | `false` | When `true`, logs a one-line probe for every `before_tool_call` showing `toolName`, top-level event/ctx/args keys, and whether the call was classified as a memory write. Useful for verifying memory-write classifier coverage against real traffic. Logs shape only — argument values are never printed. |
127
+ | `judgeEndpoint` | string | — | Override the judge URL. Leave unset to use the compiled-in default for the installed environment (prod or dev). |
128
+ | `judgeEndpointPolicy` | `"default"` \| `"self-hosted"` | `"default"` | Set to `"self-hosted"` when pointing at your own judge; requires `judgeVerifyPubKey`. |
129
+ | `judgeVerifyPubKey` | string | — | 66-char secp256k1 compressed pubkey used to verify the self-hosted judge response signature. Required when `judgeEndpointPolicy` is `"self-hosted"`. |
130
+ | `memoryPathPatterns` | string[] | SDK defaults | Extra path substrings the memory classifier uses to identify memory-shaped files (e.g. `"/my-agent/memory/"`). Extends, does not replace, the SDK's built-in list. |
131
+ | `memoryWorkspaceDir` | string | `process.cwd()` | Workspace root used to locate the memory pointer file and `MEMORY.md`. Supports `~/`. |
132
+ | `memoryFilePath` | string | `<memoryWorkspaceDir>/MEMORY.md` | Explicit path to the agent's MEMORY.md. Overrides the `memoryWorkspaceDir`-relative default. Supports `~/`. |
133
+ | `memorySyncTTLMs` | integer | `30000` | How long (ms) to trust the locally cached memory chain pointer before re-fetching from the chain. Lower values increase freshness at the cost of more chain queries. |
134
+ | `memoryRollbackMinScore` | integer (1–10) | `1` | Block memory reads when a rolled-back version's safety score is below this threshold. Default `1` means warn only, never block. Raise to e.g. `3` to refuse reading poisoned rollbacks. |
83
135
 
84
136
  ## Updating
85
137
 
@@ -123,6 +175,9 @@ Check `enabled: true` is set both on the entry (`plugins.entries["atbash-opencla
123
175
  **Every tool call is blocked, even safe ones.**
124
176
  The plugin is fail-closed: any pipeline error blocks. Look for `[atbash] …` warnings in the OpenClaw log. Most often: missing key, expired key, or restricted egress.
125
177
 
178
+ **Plugin loads but config is not applied (audit runs on defaults).**
179
+ The `plugins.entries` key must be exactly `"atbash-openclaw"` — the plugin's id from its `openclaw.plugin.json`. Former names (`"openclaw"`, `"atbash-plugin"`) are silently ignored; the plugin logs a warning at startup but otherwise runs unconfigured. Check the OpenClaw startup log for `[atbash] found config under former plugin id` and move the settings block to `plugins.entries["atbash-openclaw"]`.
180
+
126
181
  ## Maintainer release contract
127
182
 
128
183
  Development packages are released only through the protected **Publish development package** GitHub workflow. The workflow requires the `npm` environment, the exact `PUBLISH` confirmation, and npm trusted-publisher configuration for this repository and workflow. It never accepts a registry token from package source.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atbash/atbash-openclaw",
3
- "version": "0.1.17-dev.4",
3
+ "version": "0.1.17-dev.5",
4
4
  "description": "OpenClaw ATBASH tool-audit plugin. Thin adapter that maps OpenClaw's before_tool_call hook onto @atbash/sdk.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",