Class: RailsAiBridge::Serializers::Providers::CodexSerializer

Inherits:
BaseProviderSerializer show all
Defined in:
lib/rails_ai_bridge/serializers/providers/codex_serializer.rb

Overview

Generates OpenAI Codex project guidance as Markdown suitable for +AGENTS.md+.

In +:compact+ mode (default), output is bounded and MCP-focused. In +:full+ mode, delegates to MarkdownSerializer with Codex-oriented header and footer formatters injected via constructor arguments.

Since:

  • 0.8.0

Constant Summary

Constants inherited from BaseProviderSerializer

BaseProviderSerializer::MAX_CONFIG_FILES, BaseProviderSerializer::MAX_KEY_MODELS, BaseProviderSerializer::MAX_PATTERNS

Instance Attribute Summary

Attributes inherited from BaseProviderSerializer

#config, #context

Instance Method Summary collapse

Methods inherited from BaseProviderSerializer

#render_architecture, #render_commands, #render_footer, #render_header, #render_key_config_files, #render_key_considerations, #render_key_models, #render_notable_gems, #render_stack_overview

Constructor Details

#initialize(context, config: RailsAiBridge.configuration) ⇒ CodexSerializer

Returns a new instance of CodexSerializer.

Parameters:

  • context (Hash)

    Introspection hash from Introspector#call (e.g. +:app_name+, +:schema+, +:models+).

  • config (RailsAiBridge::Configuration) (defaults to: RailsAiBridge.configuration)

    Bridge configuration (+context_mode+, limits, etc.).

Since:

  • 0.8.0



16
17
18
# File 'lib/rails_ai_bridge/serializers/providers/codex_serializer.rb', line 16

def initialize(context, config: RailsAiBridge.configuration)
  super
end

Instance Method Details

#callString

Returns Markdown written to AGENTS.md by ContextFileSerializer.

Returns:

Since:

  • 0.8.0



21
22
23
24
25
26
27
28
29
# File 'lib/rails_ai_bridge/serializers/providers/codex_serializer.rb', line 21

def call
  if @config.context_mode == :full
    MarkdownSerializer.new(context,
                           header_class: Formatters::Providers::CodexHeaderFormatter,
                           footer_class: Formatters::Providers::CodexFooterFormatter).call
  else
    render_compact
  end
end