Extensions: scripts outside the verb basis

The Verbs basis is fixed and orthogonal by design, so new behaviour can't be bolted onto it — extensions are the escape hatch. An extension is a JS file run by JAB: jab <name> [args] scans up for a be/ dir, evals the script, and passes the tail as args. be itself runs no JS and forks no runtime, so a script can't shadow a verb, projector, or file — extensions grow the command space beside the basis, never inside it. Scripts share the be/ submodule (beagle-ext) and require() each other, so a set versions on its own. A script gets whatever JAB installs; a beagle repo/store SDK is the open frontier.

be and jab are divorced — scripts run on jab

be is a pure native dispatcher with no JSC linked; the jab runner owns all script resolution and execution.

Layout and require — one be/, scripts compose

Extensions live in the be/ submodule; CommonJS require() resolves siblings and lib/ with no new machinery.

SDK surface — bindings now, store later

A script gets the whole JAB global API; the gap is beagle-domain repo access, deliberately deferred.