Module: Terret
- Defined in:
- lib/terret/cli.rb,
lib/terret/boot.rb,
lib/terret/home.rb,
lib/terret/doctor.rb,
lib/terret/version.rb,
lib/terret/composition.rb,
lib/terret/schema_gems.rb
Defined Under Namespace
Modules: CLI, Composition, Doctor, Meta Classes: Boot, Home
Constant Summary collapse
- SCHEMA_GEMS =
Every gem whose services declare a Hames::Schema, as require paths. This is the single source
rake config:catalogand the schema tests both read, so a newly configurable gem is added in one place. Split across two lists, a gem added to only one would be silently absent from the catalog with CI green.It is the base bundle's own requires plus the interface/adapter gems that ship schemas but are not part of terret-base (ws, mcp, morph).
%w[ terret/store/sqlite terret/openrouter terret/exec terret/tools_std terret/sandbox/docker terret/ws terret/acp terret/mcp terret/morph ].freeze
Class Method Summary collapse
-
.boot(profile:, patches: [], allow_config_ruby: false, home: nil) ⇒ Object
Resolve the layers, hand the row list to the Hames loader, return the booted context (docs/composition.md §7).
Class Method Details
.boot(profile:, patches: [], allow_config_ruby: false, home: nil) ⇒ Object
Resolve the layers, hand the row list to the Hames loader, return the booted context (docs/composition.md §7). That is the whole surface, and its shape is the embeddability goal made concrete: a Rails app calls this in an initializer and holds the ctx, with no process to supervise and no socket to speak.
31 32 33 34 |
# File 'lib/terret/boot.rb', line 31 def self.boot(profile:, patches: [], allow_config_ruby: false, home: nil) Boot.new(Composition.resolve(profile: profile, home: home, patches: patches), allow_config_ruby: allow_config_ruby).boot! end |