from enum import Enum
[docs]
class NexusFrameMode(Enum):
"""
Internal
Topology mode for Nexus-assigned internal frames.
Purpose:
Define how many internal Nexus frames exist and how new workspaces
obtain them.
Members:
single:
One shared Nexus-assigned frame is reused for all workspaces.
indexed:
Nexus may manage multiple internal frames from an indexed pool and
assign workspaces into that shared set.
one_per_workspace:
Each workspace receives its own dedicated Nexus-assigned internal
frame.
Threading:
Immutable enum members; safe to read from any thread.
Registration:
MELDER KERNEL - guarded, readable by value. Nexus configuration
vocabulary.
Subsystem Context:
One of the process-wide policy vocabularies stored in
`NexusConfiguration`, alongside the other frame topology controls.
System Context:
The three modes answer how many internal frames exist and how workspaces obtain them: `single` shares one, `indexed` allows named frames shared by name, and `one_per_workspace` gives each Rift a private frame. The mode also constrains raw authoring - under `one_per_workspace` direct manager creation is REJECTED because that path has no Rift owner identity to attribute the frame to.
Because this is PROCESS-WIDE policy frozen at configuration time, the
choice applies uniformly to every Rift - which is the point. A gate that
varied per Rift could be escaped by creating a differently configured
one, so the governance that matters lives here rather than on the Rift.
AGENT_ACCESS: public
AGENT_PURPOSE:
access: public. Frame topology: single (one shared), indexed (named, shared by name),
one_per_workspace (private per Rift). Note one_per_workspace REJECTS raw manager
creation - use the Rift-scoped path.
"""
single = "single"
indexed = "indexed"
one_per_workspace = "one_per_workspace"