Module: KairosMcp::Daemon::ProposalRoutes

Defined in:
lib/kairos_mcp/daemon/proposal_routes.rb

Overview

ProposalRoutes — HTTP routes for proposal approval via AttachServer.

Design (P3.2 v0.2 §4.4):

All mutating operations go through daemon.mailbox (CommandMailbox pattern).
Read-only endpoints (GET) snapshot approval_gate state directly.

Usage:

ProposalRoutes.mount!(server, approval_gate:, mailbox:, auth: ->(req,res){ ... })

Defined Under Namespace

Classes: Handler

Class Method Summary collapse

Class Method Details

.mount!(server, approval_gate:, mailbox:, auth:) ⇒ Object

Mount proposal routes onto a WEBrick server.

Parameters:

  • server (WEBrick::HTTPServer)
  • approval_gate (ApprovalGate)
  • mailbox (CommandMailbox, #enqueue)
  • auth (#call)

    callable: (req, res) → Boolean (writes 401 if false)



22
23
24
25
26
27
28
# File 'lib/kairos_mcp/daemon/proposal_routes.rb', line 22

def self.mount!(server, approval_gate:, mailbox:, auth:)
  handler = Handler.new(approval_gate: approval_gate, mailbox: mailbox, auth: auth)

  server.mount_proc('/v1/proposals') do |req, res|
    handler.dispatch(req, res)
  end
end