Module: Myrr

Defined in:
lib/myrr.rb,
lib/myrr/pay.rb,
lib/myrr/card.rb,
lib/myrr/bridge.rb,
lib/myrr/budget.rb,
lib/myrr/client.rb,
lib/myrr/wallet.rb,
lib/myrr/railtie.rb,
lib/myrr/version.rb,
lib/myrr/tokenizer.rb,
lib/myrr/pay/client.rb,
lib/myrr/transaction.rb,
lib/myrr/configuration.rb,
lib/myrr/port/metadata.rb,
lib/myrr/pay/middleware.rb,
lib/myrr/port/middleware.rb,
lib/myrr/rack/middleware.rb,
lib/generators/myrr/install/install_generator.rb

Overview

Myrr — Agent-friendly content for your Rails app.

In its default (Port) mode, myrr-rb counts tokens on every text/markdown response and adds an X-Token-Count header. No Go server, no database, no configuration required.

Examples:

Zero-config setup

# Just add the gem, create .md.erb views, and you're done.

Defined Under Namespace

Modules: Bridge, Generators, Pay, Port, Rack, Tokenizer Classes: Budget, Card, Client, Configuration, Error, Railtie, Transaction, Wallet

Constant Summary collapse

VERSION =
"0.3.3"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configMyrr::Configuration (readonly)

The current configuration object.

Returns:



21
22
23
# File 'lib/myrr.rb', line 21

def config
  @config
end

Class Method Details

.clientMyrr::Client

Create a new protocol server client. Requires protocol_server_url to be configured. (Identity-layer feature — opt-in, requires explicit require.)

Returns:



43
44
45
46
47
48
49
50
# File 'lib/myrr.rb', line 43

def client
  Client.new(
    server_url: config.protocol_server_url,
    api_key: config.site_api_key,
    open_timeout: config.open_timeout,
    read_timeout: config.read_timeout
  )
end

.configure {|config| ... } ⇒ Object

Configure Myrr.

Yields:

  • (config)

    Yields the configuration object for modification.

Yield Parameters:



27
28
29
30
31
# File 'lib/myrr.rb', line 27

def configure
  @config ||= Configuration.new
  yield(@config) if block_given?
  @config
end

.reset_config!Object

Reset configuration to defaults.



34
35
36
# File 'lib/myrr.rb', line 34

def reset_config!
  @config = Configuration.new
end

.verify_agent(did_key) ⇒ Hash?

Verify an agent identity. Returns agent info or nil. (Identity-layer feature — opt-in, requires explicit require.)

Performs challenge-response verification via the configured protocol server (or identity_adapter). If fail_open is true, returns nil on network errors instead of raising.

Parameters:

  • did_key (String)

    The did:myrr: identifier

Returns:

  • (Hash, nil)

    Agent info with did_key, status, owner, or nil



61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/myrr.rb', line 61

def verify_agent(did_key)
  if config.identity_adapter
    config.identity_adapter.call(did_key)
  else
    client.verify(did_key)
  end
rescue => e
  if config.fail_open
    warn "[myrr] Identity verification failed (fail_open=true): #{e.message}"
    nil
  else
    raise
  end
end