@f4bioo/berry-shield 2026.3.3-1
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/CONTRIBUTING.md +32 -0
- package/LICENSE +201 -0
- package/README.md +251 -0
- package/SECURITY_AUDIT.md +96 -0
- package/docs/wiki/README.md +108 -0
- package/docs/wiki/decision/README.md +48 -0
- package/docs/wiki/decision/modes.md +176 -0
- package/docs/wiki/decision/patterns.md +137 -0
- package/docs/wiki/decision/posture.md +68 -0
- package/docs/wiki/deploy/README.md +51 -0
- package/docs/wiki/deploy/auditing.md +56 -0
- package/docs/wiki/deploy/build.md +92 -0
- package/docs/wiki/deploy/github-ci-cd.md +107 -0
- package/docs/wiki/deploy/installation.md +348 -0
- package/docs/wiki/engine/README.md +53 -0
- package/docs/wiki/engine/match-engine.md +91 -0
- package/docs/wiki/engine/performance.md +114 -0
- package/docs/wiki/engine/redaction.md +120 -0
- package/docs/wiki/layers/README.md +68 -0
- package/docs/wiki/layers/leaf.md +126 -0
- package/docs/wiki/layers/pulp.md +139 -0
- package/docs/wiki/layers/root.md +130 -0
- package/docs/wiki/layers/stem.md +139 -0
- package/docs/wiki/layers/thorn.md +139 -0
- package/docs/wiki/layers/vine.md +154 -0
- package/docs/wiki/operation/README.md +31 -0
- package/docs/wiki/operation/cli/README.md +122 -0
- package/docs/wiki/operation/cli/add.md +157 -0
- package/docs/wiki/operation/cli/help.md +83 -0
- package/docs/wiki/operation/cli/init.md +52 -0
- package/docs/wiki/operation/cli/list.md +78 -0
- package/docs/wiki/operation/cli/mode.md +93 -0
- package/docs/wiki/operation/cli/policy.md +202 -0
- package/docs/wiki/operation/cli/profile.md +98 -0
- package/docs/wiki/operation/cli/remove.md +96 -0
- package/docs/wiki/operation/cli/report.md +66 -0
- package/docs/wiki/operation/cli/reset.md +99 -0
- package/docs/wiki/operation/cli/rules.md +161 -0
- package/docs/wiki/operation/cli/status.md +103 -0
- package/docs/wiki/operation/cli/test.md +119 -0
- package/docs/wiki/operation/cli/toggle.md +90 -0
- package/docs/wiki/operation/cli/vine.md +193 -0
- package/docs/wiki/operation/web/README.md +27 -0
- package/docs/wiki/tutorials/README.md +40 -0
- package/docs/wiki/tutorials/audit-to-enforce-rollout.md +99 -0
- package/docs/wiki/tutorials/build-custom-rules.md +99 -0
- package/docs/wiki/tutorials/choose-profile.md +91 -0
- package/docs/wiki/tutorials/incident-triage-report.md +99 -0
- package/docs/wiki/tutorials/secure-session.md +115 -0
- package/docs/wiki/tutorials/tune-policy.md +111 -0
- package/openclaw.plugin.json +293 -0
- package/package.json +70 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Layer reference for Berry.Stem (security gate tool for exec/read/write decisions)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You need to understand how pre-operation deny/allow decisions are made
|
|
5
|
+
- You are validating audit vs enforce behavior on operation checks
|
|
6
|
+
- You are debugging why an operation was denied or allowed
|
|
7
|
+
title: "stem"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# `Berry.Stem`
|
|
11
|
+
|
|
12
|
+
Berry.Stem is the **security gate tool layer**.
|
|
13
|
+
|
|
14
|
+
It registers the gate tool used by the agent before risky operations.
|
|
15
|
+
The tool evaluates operation intent (exec, read, write) against destructive-command and sensitive-file patterns.
|
|
16
|
+
|
|
17
|
+
## What Stem does
|
|
18
|
+
|
|
19
|
+
- Registers the gate tool for operation checks.
|
|
20
|
+
- Validates tool input schema (operation + target + optional session key).
|
|
21
|
+
- Evaluates:
|
|
22
|
+
- destructive command intent in exec requests
|
|
23
|
+
- sensitive file references in exec requests
|
|
24
|
+
- sensitive file access in read/write requests
|
|
25
|
+
- Emits structured audit events in both audit and enforce paths.
|
|
26
|
+
- Returns allow/deny response payloads to the agent.
|
|
27
|
+
- Triggers adaptive escalation signaling on enforce denies.
|
|
28
|
+
|
|
29
|
+
## What Stem does not do
|
|
30
|
+
|
|
31
|
+
- It does not directly execute shell or file operations.
|
|
32
|
+
- It does not redact output text.
|
|
33
|
+
- It does not depend on before_tool_call hook availability.
|
|
34
|
+
- It does not guarantee model compliance by itself; it provides gate decisions the model should follow.
|
|
35
|
+
|
|
36
|
+
## Runtime flow
|
|
37
|
+
|
|
38
|
+
```mermaid
|
|
39
|
+
flowchart TD
|
|
40
|
+
A[Agent requests gate check] --> B[Berry.Stem]
|
|
41
|
+
B --> C{Input valid?}
|
|
42
|
+
C -->|No| E[Reject request]
|
|
43
|
+
C -->|Yes| D{Risk match?}
|
|
44
|
+
D -->|No| ALLOW[Return ALLOWED]
|
|
45
|
+
D -->|Yes + audit| WB[Emit would_block event]
|
|
46
|
+
D -->|Yes + enforce| DENY[Return DENIED + blocked event]
|
|
47
|
+
WB --> ALLOW
|
|
48
|
+
DENY --> ESC[Adaptive escalation signal]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Decision inputs
|
|
52
|
+
|
|
53
|
+
Stem consumes:
|
|
54
|
+
- operation type (exec, read, write)
|
|
55
|
+
- target string (command or file path)
|
|
56
|
+
- optional session key for adaptive escalation binding
|
|
57
|
+
- effective sensitive/destructive pattern sets (built-in + custom)
|
|
58
|
+
- runtime mode (audit or enforce)
|
|
59
|
+
|
|
60
|
+
## Decision behavior (high level)
|
|
61
|
+
|
|
62
|
+
### Exec operation
|
|
63
|
+
- checks destructive command patterns
|
|
64
|
+
- checks sensitive file references inside command target
|
|
65
|
+
- audit: records observation and returns allow path
|
|
66
|
+
- enforce: records blocked decision and returns denied response
|
|
67
|
+
|
|
68
|
+
### Read or write operation
|
|
69
|
+
- checks sensitive file patterns against target path
|
|
70
|
+
- audit: records observation and returns allow path
|
|
71
|
+
- enforce: records blocked decision and returns denied response
|
|
72
|
+
|
|
73
|
+
### Adaptive escalation signal
|
|
74
|
+
- on enforce deny, signals policy runtime state
|
|
75
|
+
- prefers session-scoped escalation when session key exists
|
|
76
|
+
- can use configured global escalation fallback when session key is missing
|
|
77
|
+
|
|
78
|
+
## How Stem interacts with other layers
|
|
79
|
+
|
|
80
|
+
### With Root
|
|
81
|
+
- Root injects policy guidance that instructs the agent to call the gate tool first.
|
|
82
|
+
- Stem returns concrete allow/deny decisions.
|
|
83
|
+
- Root improves calling discipline; Stem provides operational gate outcomes.
|
|
84
|
+
|
|
85
|
+
### With Thorn
|
|
86
|
+
- Thorn can block direct tool calls via hook path where available.
|
|
87
|
+
- Stem remains valuable as a tool-level gate even when hook coverage varies.
|
|
88
|
+
|
|
89
|
+
### With Pulp
|
|
90
|
+
- Stem controls operation permission before execution.
|
|
91
|
+
- Pulp controls output sanitation after content exists.
|
|
92
|
+
|
|
93
|
+
### With Leaf
|
|
94
|
+
- Leaf provides inbound sensitive-input observability.
|
|
95
|
+
- Stem provides operation-time gate decisions.
|
|
96
|
+
|
|
97
|
+
## Operational value
|
|
98
|
+
|
|
99
|
+
Stem is useful for:
|
|
100
|
+
- pre-operation control independent of hook wiring variability
|
|
101
|
+
- deterministic deny messages for risky operations
|
|
102
|
+
- unified gate behavior for exec/read/write checks
|
|
103
|
+
- adaptive policy escalation signals tied to denied actions
|
|
104
|
+
|
|
105
|
+
## Limits and caveats
|
|
106
|
+
|
|
107
|
+
- Gate effectiveness depends on the agent actually calling the gate tool before operation attempts.
|
|
108
|
+
- Pattern matching is heuristic; coverage quality depends on pattern sets.
|
|
109
|
+
- Command-string analysis may miss some complex indirect execution forms.
|
|
110
|
+
- Enforce/audit behavior must be interpreted together with runtime mode and policy profile.
|
|
111
|
+
|
|
112
|
+
## Validation checklist
|
|
113
|
+
|
|
114
|
+
1. Run gate check for benign target and confirm ALLOWED response.
|
|
115
|
+
2. Run gate check for sensitive read target and confirm:
|
|
116
|
+
- enforce: denied path
|
|
117
|
+
- audit: observation event + allow path
|
|
118
|
+
3. Run gate check for destructive exec target and confirm mode-specific outcome.
|
|
119
|
+
4. Validate report output reflects expected blocked/observation counts.
|
|
120
|
+
|
|
121
|
+
## See layers
|
|
122
|
+
|
|
123
|
+
- [root](root.md)
|
|
124
|
+
- [thorn](thorn.md)
|
|
125
|
+
- [pulp](pulp.md)
|
|
126
|
+
- [leaf](leaf.md)
|
|
127
|
+
|
|
128
|
+
## Related pages
|
|
129
|
+
- [layers index](README.md)
|
|
130
|
+
- [decision modes](../decision/modes.md)
|
|
131
|
+
- [decision patterns](../decision/patterns.md)
|
|
132
|
+
- [CLI test](../operation/cli/test.md)
|
|
133
|
+
- [CLI report](../operation/cli/report.md)
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Navigation
|
|
138
|
+
- [Back to Layers Index](README.md)
|
|
139
|
+
- [Back to Wiki Index](../README.md)
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Layer reference for Berry.Thorn (pre-tool-call interception and blocking when hook is available)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You need to understand hook-level blocking behavior
|
|
5
|
+
- You are validating runtime interception before tool execution
|
|
6
|
+
- You are debugging blockReason results from tool-call interception
|
|
7
|
+
title: "thorn"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# `Berry.Thorn`
|
|
11
|
+
|
|
12
|
+
Berry.Thorn is the **hook-level tool blocker layer**.
|
|
13
|
+
|
|
14
|
+
It intercepts tool calls before execution and evaluates command/path intent against risk patterns.
|
|
15
|
+
When risk is detected, behavior depends on runtime mode.
|
|
16
|
+
|
|
17
|
+
## What Thorn does
|
|
18
|
+
|
|
19
|
+
- Hooks into before_tool_call.
|
|
20
|
+
- Extracts command candidates from tool params for execution-like calls.
|
|
21
|
+
- Extracts file path candidates from tool params for file-like calls.
|
|
22
|
+
- Matches candidates against destructive-command and sensitive-file patterns.
|
|
23
|
+
- Emits structured audit events in both audit and enforce paths.
|
|
24
|
+
- In enforce, can return block response with block reason.
|
|
25
|
+
- Signals adaptive escalation on enforce denies.
|
|
26
|
+
|
|
27
|
+
## What Thorn does not do
|
|
28
|
+
|
|
29
|
+
- It does not execute tools.
|
|
30
|
+
- It does not redact output content.
|
|
31
|
+
- It does not replace the gate tool path from Stem.
|
|
32
|
+
- It is only effective when before_tool_call is available/invoked in host runtime.
|
|
33
|
+
|
|
34
|
+
## Runtime flow
|
|
35
|
+
|
|
36
|
+
```mermaid
|
|
37
|
+
flowchart TD
|
|
38
|
+
A[Tool call attempt] --> H[Hook: before_tool_call]
|
|
39
|
+
H --> T[Berry.Thorn]
|
|
40
|
+
T --> X{Candidate extracted?}
|
|
41
|
+
X -->|No| PASS[Allow call path]
|
|
42
|
+
X -->|Yes| M{Risk match?}
|
|
43
|
+
M -->|No| PASS
|
|
44
|
+
M -->|Yes + audit| WB[Emit would_block event]
|
|
45
|
+
M -->|Yes + enforce| BLK[Return block + blocked event]
|
|
46
|
+
WB --> PASS
|
|
47
|
+
BLK --> ESC[Adaptive escalation signal]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Decision inputs
|
|
51
|
+
|
|
52
|
+
Thorn consumes:
|
|
53
|
+
- tool name
|
|
54
|
+
- tool params payload
|
|
55
|
+
- optional session key from hook context
|
|
56
|
+
- effective destructive and sensitive-file pattern sets
|
|
57
|
+
- runtime mode (audit or enforce)
|
|
58
|
+
|
|
59
|
+
## Decision behavior (high level)
|
|
60
|
+
|
|
61
|
+
### Destructive command path
|
|
62
|
+
- command candidate extracted from known command fields
|
|
63
|
+
- if destructive pattern match:
|
|
64
|
+
- audit: record observation and allow path
|
|
65
|
+
- enforce: return block response with security reason
|
|
66
|
+
|
|
67
|
+
### Sensitive file reference in command path
|
|
68
|
+
- command text also checked for sensitive file references
|
|
69
|
+
- same audit/enforce split as above
|
|
70
|
+
|
|
71
|
+
### Sensitive file access path
|
|
72
|
+
- file path candidate extracted for file-like tools
|
|
73
|
+
- if sensitive path match:
|
|
74
|
+
- audit: record observation and allow path
|
|
75
|
+
- enforce: return block response with security reason
|
|
76
|
+
|
|
77
|
+
### Adaptive escalation signal
|
|
78
|
+
- on enforce block, sends denied signal to policy runtime state
|
|
79
|
+
- prefers session-scoped escalation when session key exists
|
|
80
|
+
- optional configured global escalation fallback when session key is missing
|
|
81
|
+
|
|
82
|
+
## How Thorn interacts with other layers
|
|
83
|
+
|
|
84
|
+
### With Stem
|
|
85
|
+
- Thorn is hook-based interception.
|
|
86
|
+
- Stem is tool-based security gate.
|
|
87
|
+
- They are complementary: Stem covers gate-tool path even if hook coverage varies.
|
|
88
|
+
|
|
89
|
+
### With Root
|
|
90
|
+
- Root guides model behavior to call gate checks early.
|
|
91
|
+
- Thorn enforces at interception point when hook fires.
|
|
92
|
+
|
|
93
|
+
### With Pulp
|
|
94
|
+
- Thorn can stop risky execution paths before tool run.
|
|
95
|
+
- Pulp sanitizes content on output-side paths.
|
|
96
|
+
|
|
97
|
+
### With Leaf
|
|
98
|
+
- Leaf provides incoming-message observability.
|
|
99
|
+
- Thorn provides pre-execution interception signals.
|
|
100
|
+
|
|
101
|
+
## Operational value
|
|
102
|
+
|
|
103
|
+
Thorn is useful for:
|
|
104
|
+
- hard stop behavior on risky tool calls where host hook is active
|
|
105
|
+
- consistent block reason payloads for agent/tool feedback
|
|
106
|
+
- capturing pre-execution blocked telemetry for report/audit analysis
|
|
107
|
+
|
|
108
|
+
## Limits and caveats
|
|
109
|
+
|
|
110
|
+
- Hook availability/invocation depends on host runtime behavior.
|
|
111
|
+
- Candidate extraction relies on known param keys and tool-name heuristics.
|
|
112
|
+
- Complex/obfuscated command forms may reduce detection quality.
|
|
113
|
+
- Should be operated together with Stem for stronger coverage.
|
|
114
|
+
|
|
115
|
+
## Validation checklist
|
|
116
|
+
|
|
117
|
+
1. Trigger file-tool call with sensitive path and confirm mode-specific outcome.
|
|
118
|
+
2. Trigger exec-tool call with destructive command and confirm block behavior in enforce.
|
|
119
|
+
3. Switch to audit and confirm same inputs emit observation events without hard block.
|
|
120
|
+
4. Confirm report reflects expected blocked or observation counts.
|
|
121
|
+
|
|
122
|
+
## See layers
|
|
123
|
+
|
|
124
|
+
- [root](root.md)
|
|
125
|
+
- [stem](stem.md)
|
|
126
|
+
- [pulp](pulp.md)
|
|
127
|
+
- [leaf](leaf.md)
|
|
128
|
+
|
|
129
|
+
## Related pages
|
|
130
|
+
- [layers index](README.md)
|
|
131
|
+
- [decision modes](../decision/modes.md)
|
|
132
|
+
- [decision patterns](../decision/patterns.md)
|
|
133
|
+
- [decision posture](../decision/posture.md)
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Navigation
|
|
138
|
+
- [Back to Layers Index](README.md)
|
|
139
|
+
- [Back to Wiki Index](../README.md)
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Layer reference for Berry.Vine (external-content trust guard and prompt-injection hardening)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You need to understand how Berry handles untrusted external content
|
|
5
|
+
- You are validating external-signal blocking behavior in audit/enforce
|
|
6
|
+
- You are tuning false positives around unknown-origin content
|
|
7
|
+
title: "vine"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# `Berry.Vine`
|
|
11
|
+
|
|
12
|
+
Berry.Vine is the **external-content trust guard layer**.
|
|
13
|
+
|
|
14
|
+
It reduces prompt-injection risk by treating external content as untrusted by default and enforcing trust-aware checks before sensitive operations.
|
|
15
|
+
|
|
16
|
+
## What Vine does
|
|
17
|
+
|
|
18
|
+
- Tracks external-risk signals per session.
|
|
19
|
+
- Marks risk when external-ingestion tool paths are observed.
|
|
20
|
+
- Guards sensitive actions in `before_tool_call` when risk is active.
|
|
21
|
+
- Applies different behavior in `audit` and `enforce`.
|
|
22
|
+
- Adds a short context reminder in `before_agent_start` only when needed (throttled).
|
|
23
|
+
- Clears session state on `session_end`.
|
|
24
|
+
|
|
25
|
+
## What Vine does not do
|
|
26
|
+
|
|
27
|
+
- It does not guarantee complete prevention of all prompt-injection techniques.
|
|
28
|
+
- It does not replace Stem/Thorn/Pulp controls.
|
|
29
|
+
- It does not rely on semantic AI classification.
|
|
30
|
+
- It does not auto-remediate without explicit operator action.
|
|
31
|
+
|
|
32
|
+
## Runtime flow
|
|
33
|
+
|
|
34
|
+
```mermaid
|
|
35
|
+
flowchart TD
|
|
36
|
+
EXT[External tool/content signal] --> AT[Hook: after_tool_call]
|
|
37
|
+
AT --> STATE[Vine risk state per session]
|
|
38
|
+
STATE --> BT[Hook: before_tool_call]
|
|
39
|
+
BT --> DEC{Sensitive action + risk?}
|
|
40
|
+
DEC -->|No| ALLOW[Allow path]
|
|
41
|
+
DEC -->|Yes + audit| WB[Emit would_block]
|
|
42
|
+
DEC -->|Yes + enforce| BLOCK[Block action]
|
|
43
|
+
STATE --> BAS[Hook: before_agent_start]
|
|
44
|
+
BAS --> REM[Inject short untrusted-content reminder]
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Trust labels and policy intent
|
|
48
|
+
|
|
49
|
+
Vine tracks origin trust labels as runtime signals:
|
|
50
|
+
- `trusted_user`
|
|
51
|
+
- `external_untrusted`
|
|
52
|
+
- `system_internal`
|
|
53
|
+
- `unknown`
|
|
54
|
+
|
|
55
|
+
Key operational rule:
|
|
56
|
+
- User-origin message does not automatically mean instruction trust.
|
|
57
|
+
- External payload and copied third-party instructions remain untrusted until confirmed by user intent.
|
|
58
|
+
|
|
59
|
+
## Mode behavior
|
|
60
|
+
|
|
61
|
+
### Enforce
|
|
62
|
+
- Sensitive actions under active external risk can be blocked.
|
|
63
|
+
- In strict profile, unknown-origin sensitive attempts can also block.
|
|
64
|
+
|
|
65
|
+
### Audit
|
|
66
|
+
- No hard block.
|
|
67
|
+
- Emits `would_block` events for tuning and validation.
|
|
68
|
+
|
|
69
|
+
## Interaction with other layers
|
|
70
|
+
|
|
71
|
+
### With Root
|
|
72
|
+
- Vine can add short trust reminders at turn start.
|
|
73
|
+
- Root still owns global policy injection strategy (full/short/none).
|
|
74
|
+
|
|
75
|
+
### With Stem and Thorn
|
|
76
|
+
- Stem/Thorn remain execution gates.
|
|
77
|
+
- Vine adds trust-origin context so risky instructions from external content are less likely to pass.
|
|
78
|
+
|
|
79
|
+
### With Pulp
|
|
80
|
+
- Pulp sanitizes output content.
|
|
81
|
+
- Vine focuses on trust of instruction origin before sensitive actions.
|
|
82
|
+
|
|
83
|
+
## Operational value
|
|
84
|
+
|
|
85
|
+
Vine is useful for:
|
|
86
|
+
- browser/email/webhook-heavy workflows
|
|
87
|
+
- reducing "execute what this page says" risk
|
|
88
|
+
- introducing trust-aware controls without replacing existing rule engine
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
## Real-world examples
|
|
92
|
+
|
|
93
|
+
### Case: external page tells the agent to run a command
|
|
94
|
+
- If the page is ingested through an external tool path observed by Vine, session risk is marked.
|
|
95
|
+
- A later sensitive write-like or destructive action is guarded.
|
|
96
|
+
- In `audit`, Vine records `would_block`.
|
|
97
|
+
- In enforce, Vine can block and report a blocked decision event.
|
|
98
|
+
|
|
99
|
+
### Case: user pastes external text manually
|
|
100
|
+
- Vine may classify this as `unknown` instead of `external_untrusted`.
|
|
101
|
+
- Behavior depends on Vine mode:
|
|
102
|
+
- `balanced`: tends to observe and escalate carefully.
|
|
103
|
+
- `strict`: can block unknown-origin sensitive attempts.
|
|
104
|
+
|
|
105
|
+
### Case: no sensitive action follows
|
|
106
|
+
- Vine does not block "just for reading".
|
|
107
|
+
- Guarding happens when a sensitive action is attempted.
|
|
108
|
+
|
|
109
|
+
## Threat-model boundaries
|
|
110
|
+
|
|
111
|
+
Vine is focused on instruction-origin trust before sensitive actions. It does not replace:
|
|
112
|
+
- Pulp for output redaction and leak minimization.
|
|
113
|
+
- Stem/Thorn for broader execution gates.
|
|
114
|
+
- Host/runtime sandboxing and OS-level isolation.
|
|
115
|
+
|
|
116
|
+
## Runtime validation principles
|
|
117
|
+
|
|
118
|
+
Vine validation is a runtime behavior check, not an exploit demonstration.
|
|
119
|
+
|
|
120
|
+
Use this principle:
|
|
121
|
+
- run normal agent/tool workflows that include external-content ingestion;
|
|
122
|
+
- let Berry observe and decide during regular execution flow;
|
|
123
|
+
- verify evidence in structured outcomes (`would_block` in `audit`, active mitigation decision in `enforce`) through report/log telemetry.
|
|
124
|
+
|
|
125
|
+
Important scope:
|
|
126
|
+
- this validation assumes operator-guided execution in a real OpenClaw runtime;
|
|
127
|
+
- the objective is to confirm decision posture and traceability, not to publish bypass or injection recipes.
|
|
128
|
+
|
|
129
|
+
## Limits and caveats
|
|
130
|
+
|
|
131
|
+
- Hook timing and availability still depend on host runtime behavior.
|
|
132
|
+
- Unknown-origin classification can create false positives if over-tuned.
|
|
133
|
+
- Risk decay should not depend only on elapsed time.
|
|
134
|
+
|
|
135
|
+
## See layers
|
|
136
|
+
|
|
137
|
+
- [root](root.md)
|
|
138
|
+
- [stem](stem.md)
|
|
139
|
+
- [thorn](thorn.md)
|
|
140
|
+
- [pulp](pulp.md)
|
|
141
|
+
- [leaf](leaf.md)
|
|
142
|
+
|
|
143
|
+
## Related pages
|
|
144
|
+
- [layers index](README.md)
|
|
145
|
+
- [decision modes](../decision/modes.md)
|
|
146
|
+
- [decision patterns](../decision/patterns.md)
|
|
147
|
+
- [decision posture](../decision/posture.md)
|
|
148
|
+
- [CLI status](../operation/cli/status.md)
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Navigation
|
|
153
|
+
- [Back to Layers Index](README.md)
|
|
154
|
+
- [Back to Wiki Index](../README.md)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Operation reference index for Berry Shield interaction surfaces"
|
|
3
|
+
read_when:
|
|
4
|
+
- Adding or changing operation docs for CLI or Web
|
|
5
|
+
- Reviewing user-facing operation guidance
|
|
6
|
+
title: "Operation Reference"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `Operation reference`
|
|
10
|
+
|
|
11
|
+
This page is the entry point for operation-level documentation.
|
|
12
|
+
If interaction surfaces change, update this index and linked pages.
|
|
13
|
+
|
|
14
|
+
## Operation surfaces
|
|
15
|
+
|
|
16
|
+
- [CLI](cli/README.md) (terminal command reference for `openclaw bshield`)
|
|
17
|
+
- [Web](web/README.md) (web operation guidance; planned)
|
|
18
|
+
|
|
19
|
+
## Scope
|
|
20
|
+
|
|
21
|
+
Operation docs describe:
|
|
22
|
+
- how users interact with Berry Shield surfaces
|
|
23
|
+
- how to execute common workflows safely
|
|
24
|
+
- where to find command-specific references
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Navigation
|
|
29
|
+
|
|
30
|
+
- [Back to Wiki Index](../README.md)
|
|
31
|
+
- [Back to Repository README](../../../README.md)
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Berry Shield CLI reference index for openclaw bshield commands"
|
|
3
|
+
read_when:
|
|
4
|
+
- Adding or changing Berry Shield CLI commands
|
|
5
|
+
- Documenting command usage, options, and operational flows
|
|
6
|
+
- Reviewing CLI docs for consistency with runtime behavior
|
|
7
|
+
title: "Berry Shield CLI Reference"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# `Berry Shield CLI reference`
|
|
11
|
+
|
|
12
|
+
This page is the entry point for Berry Shield CLI documentation.
|
|
13
|
+
If command behavior changes, update this index and the command pages.
|
|
14
|
+
|
|
15
|
+
## Command pages
|
|
16
|
+
|
|
17
|
+
- [help](help.md) (global discovery and command help)
|
|
18
|
+
- [init](init.md)
|
|
19
|
+
- [status](status.md)
|
|
20
|
+
- [mode](mode.md)
|
|
21
|
+
- [profile](profile.md)
|
|
22
|
+
- [policy](policy.md)
|
|
23
|
+
- [vine](vine.md)
|
|
24
|
+
- [toggle](toggle.md)
|
|
25
|
+
- [add](add.md)
|
|
26
|
+
- [rules](rules.md)
|
|
27
|
+
- [remove](remove.md)
|
|
28
|
+
- [reset](reset.md)
|
|
29
|
+
- [list](list.md)
|
|
30
|
+
- [test](test.md)
|
|
31
|
+
- [report](report.md)
|
|
32
|
+
|
|
33
|
+
## Global command shape
|
|
34
|
+
Use this syntax as the baseline for all Berry Shield CLI operations.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
openclaw bshield <command> [options]
|
|
38
|
+
```
|
|
39
|
+
Expected: Run one Berry Shield command with optional flags and arguments.
|
|
40
|
+
|
|
41
|
+
## Quick start
|
|
42
|
+
|
|
43
|
+
### 1) Inspect current state
|
|
44
|
+
Use this to confirm mode, policy profile, rule counts, and active layers.
|
|
45
|
+
```bash
|
|
46
|
+
openclaw bshield status
|
|
47
|
+
```
|
|
48
|
+
Expected: Status output includes `Mode`, `Rules`, `Policy`, and `Security Layers`.
|
|
49
|
+
|
|
50
|
+
### 2) Set enforce mode
|
|
51
|
+
Use this for active protection behavior.
|
|
52
|
+
```bash
|
|
53
|
+
openclaw bshield mode enforce
|
|
54
|
+
```
|
|
55
|
+
Expected: CLI confirms ENFORCE mode is active.
|
|
56
|
+
|
|
57
|
+
### 3) Set balanced profile
|
|
58
|
+
Use this as the recommended default profile for general operation.
|
|
59
|
+
```bash
|
|
60
|
+
openclaw bshield profile balanced
|
|
61
|
+
```
|
|
62
|
+
Expected: CLI confirms profile changed to `balanced`.
|
|
63
|
+
|
|
64
|
+
### 4) Open policy wizard
|
|
65
|
+
Use this for interactive policy tuning.
|
|
66
|
+
```bash
|
|
67
|
+
openclaw bshield policy
|
|
68
|
+
```
|
|
69
|
+
Expected: Wizard prompts for profile, adaptive, and retention values.
|
|
70
|
+
|
|
71
|
+
### 5) List rules inventory
|
|
72
|
+
Use this to inspect baseline and custom rules in one place.
|
|
73
|
+
```bash
|
|
74
|
+
openclaw bshield rules list
|
|
75
|
+
```
|
|
76
|
+
Expected: CLI shows baseline and custom IDs, including `[ENABLED]` and `[DISABLED]` status.
|
|
77
|
+
|
|
78
|
+
### 6) Disable one baseline rule
|
|
79
|
+
Use this to disable one baseline rule by stable ID.
|
|
80
|
+
```bash
|
|
81
|
+
openclaw bshield rules disable baseline secret:openai-key
|
|
82
|
+
```
|
|
83
|
+
Expected: CLI marks the target baseline rule as disabled.
|
|
84
|
+
|
|
85
|
+
### 7) Disable one custom rule
|
|
86
|
+
Use this to keep a custom rule stored but inactive.
|
|
87
|
+
```bash
|
|
88
|
+
openclaw bshield rules disable custom secret:my-token-rule
|
|
89
|
+
```
|
|
90
|
+
Expected: CLI marks the target custom rule as disabled.
|
|
91
|
+
|
|
92
|
+
### 8) Tune Vine mode for smoke tests
|
|
93
|
+
Use this to switch Vine behavior deterministically.
|
|
94
|
+
```bash
|
|
95
|
+
openclaw bshield vine set mode strict
|
|
96
|
+
```
|
|
97
|
+
Expected: CLI confirms strict Vine mode for external-content guard behavior.
|
|
98
|
+
|
|
99
|
+
## Documentation structure
|
|
100
|
+
|
|
101
|
+
Each command page follows the same structure:
|
|
102
|
+
- What it does
|
|
103
|
+
- When to use
|
|
104
|
+
- Syntax
|
|
105
|
+
- Options
|
|
106
|
+
- Examples (one command per `bash` block)
|
|
107
|
+
- Expected output
|
|
108
|
+
- Common errors
|
|
109
|
+
- Related commands
|
|
110
|
+
|
|
111
|
+
## Notes
|
|
112
|
+
|
|
113
|
+
- Keep examples deterministic and copy/paste-safe.
|
|
114
|
+
- Keep one `openclaw bshield` command per `bash` block.
|
|
115
|
+
- Prefer explicit expected outcomes after each example.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Navigation
|
|
120
|
+
|
|
121
|
+
- [Back to Operation Index](../README.md)
|
|
122
|
+
- [Back to Wiki Index](../../README.md)
|