Module: Silas::Inbox
- Defined in:
- lib/silas/inbox.rb,
lib/silas/inbox/cost.rb,
app/helpers/silas/inbox/trace_helper.rb,
app/controllers/silas/inbox/base_controller.rb,
app/models/concerns/silas/inbox/broadcastable.rb,
app/controllers/silas/inbox/sessions_controller.rb,
app/controllers/silas/inbox/invocations_controller.rb
Overview
The mountable inbox UI (at /silas/inbox). It renders the existing rows (Session -> Turn -> Step -> ToolInvocation) as a live trace — no events table — and streams changes over Turbo when the host has turbo-rails.
Defined Under Namespace
Modules: Broadcastable, Cost, TraceHelper Classes: BaseController, InvocationsController, SessionsController
Class Method Summary collapse
- .stream_name(session_id) ⇒ Object
-
.streaming? ⇒ Boolean
Broadcasting is on when Turbo is present.
-
.streaming_available? ⇒ Boolean
turbo-rails is NOT a gem dependency (the core stays lean, like the solid_queue guard).
Class Method Details
.stream_name(session_id) ⇒ Object
19 20 21 |
# File 'lib/silas/inbox.rb', line 19 def stream_name(session_id) "silas:inbox:session:#{session_id}" end |
.streaming? ⇒ Boolean
Broadcasting is on when Turbo is present. A host can hard-disable it.
15 16 17 |
# File 'lib/silas/inbox.rb', line 15 def streaming? streaming_available? && Silas.config.inbox_streaming != false end |
.streaming_available? ⇒ Boolean
turbo-rails is NOT a gem dependency (the core stays lean, like the solid_queue guard). Broadcasting activates only when the host bundles it.
10 11 12 |
# File 'lib/silas/inbox.rb', line 10 def streaming_available? defined?(Turbo::StreamsChannel) end |