Class: Diogenes::Targets::Codex
- Defined in:
- lib/diogenes/targets/codex.rb,
sig/generated/diogenes/targets/codex.rbs
Constant Summary collapse
- OUTPUT_PATH =
: String
"AGENTS.md"
Instance Method Summary collapse
-
#build(sources:) ⇒ Array[String]
: (sources: untyped) -> Array.
-
#header ⇒ String
: () -> String.
-
#render(sources) ⇒ String
: (untyped) -> String.
-
#rules_section(rules) ⇒ String
: (Array) -> String.
-
#skills_section(skills) ⇒ String
: (Array) -> String.
Methods inherited from Base
#generated_banner, #initialize, #skill_file_content, #write, #write_skill_files
Constructor Details
This class inherits a constructor from Diogenes::Targets::Base
Instance Method Details
#build(sources:) ⇒ Array[String]
: (sources: untyped) -> Array
10 11 12 13 |
# File 'lib/diogenes/targets/codex.rb', line 10 def build(sources:) skill_files = write_skill_files(sources.skills, skills_dir: ".agents/skills") [write(OUTPUT_PATH, render(sources))] + skill_files end |
#header ⇒ String
: () -> String
26 27 28 29 30 31 32 |
# File 'lib/diogenes/targets/codex.rb', line 26 def header <<~HEADER.strip # Agent Instructions > #{("codex")} HEADER end |
#render(sources) ⇒ String
: (untyped) -> String
18 19 20 21 22 23 |
# File 'lib/diogenes/targets/codex.rb', line 18 def render(sources) parts = [header] parts << rules_section(sources.rules) unless sources.rules.empty? parts << skills_section(sources.skills) unless sources.skills.empty? parts.join("\n\n") end |
#rules_section(rules) ⇒ String
: (Array) -> String
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/diogenes/targets/codex.rb', line 35 def rules_section(rules) lines = ["## Rules", ""] rules.each do |rule| lines << "### #{rule.name}" lines << "" lines << rule.content lines << "" end lines.join("\n").strip end |
#skills_section(skills) ⇒ String
: (Array) -> String
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/diogenes/targets/codex.rb', line 47 def skills_section(skills) lines = ["## Available commands", ""] skills.each do |skill| lines << "### #{skill.command}" lines << "" lines << skill.description lines << "" end lines.join("\n").strip end |