Conditional blocks and path access
config/conditions.toml enables conditional access to resources based on session context.
It narrows what an agent can see or touch in a given channel, keeping authority tied to where work is happening.
- Load additional memory blocks only in appropriate contexts.
- Grant or restrict access to files and folders based on where the session is running.
conditions.toml is not an exec sandbox boundary. Path checks can gate file tools, but a command admitted through exec may have many ways to read, copy, or transform data inside its mounted environment. The sandbox binary entrypoint list constrains direct command selection; sandbox isolation and mounts constrain what those commands can access.
Format
toml
[blocks.nsfw]
when = "discord:nsfw"
action = "load"
[memories."/private/"]
when = "discord:dm"
action = "allow"
[workspace."/deploy/"]
when = ["discord:guild:123456789", "discord:channel:987654321"]
mode = "or"
action = "allow"Conditions
| Condition | Meaning |
|---|---|
discord:nsfw | NSFW-flagged Discord channel. |
discord:dm | Any Discord DM. |
discord:dm:{channelId} | A specific Discord DM channel. |
discord:guild:{guildId} | A specific Discord guild. |
discord:channel:{channelId} | A specific Discord channel. |
discord:forum:{forumId} | Any thread of a forum channel. |
internal | An internal session (heartbeat, cron). |
tui | A TUI session; reserved in this runtime, which has no interactive TUI channel. |
Conditions support negation with a leading !.
when accepts one condition or an array of conditions; mode is or (default) or and.
Actions
| Action | Applies to | Meaning |
|---|---|---|
load | blocks | Include the block in the system prompt. |
allow | memories, workspace | Grant access to the path. |
deny | memories, workspace | Block access to the path. |
Conditional blocks
Create conditional blocks in blocks/conditional/<name>.md, where <name> matches the rule key in conditions.toml.
markdown
+++
description = "Guidelines for handling mature content"
+++
You are in an NSFW context. The following guidelines apply:
...The frontmatter is TOML and must include a description. Matching blocks are added to the system prompt alongside the core blocks.
Path access
Path rules control access to files in /memories/ and /workspace/.
Paths ending with / match as prefixes; paths not ending with / require an exact match.
Access is evaluated as:
- A deny rule that matches both the path and the current context blocks access.
- Otherwise, an allow rule that matches both the path and the current context grants access.
- A path with matching rules that match no context is blocked.
- A path with no matching rules is allowed (baseline behavior).
Hot reload
Changes to conditions.toml are applied live while the runtime is running; no restart is required.