// The shell's behaviour seam (docs/shell-modules.md § The verbs seam) — the // shellstate.js idea applied to the core verbs. This registry starts empty; // shell.js populates it in one Object.assign at boot (function declarations // hoist, so the assignment can sit right after the imports). Extracted // modules call verbs.openThread(id) etc. Registration only — no logic lives // here, nothing is imported here, so there is never an import cycle. When a // verb's implementation later gets its own module home, the registry entry // follows it and callers don't churn. export const verbs = {};