OpenStruct.new({
adapter: 'ruby_llm',
aia_dir: File.join(ENV['HOME'], '.aia'),
config_file: File.join(ENV['HOME'], '.aia', 'config.yml'),
out_file: 'temp.md',
log_file: File.join(ENV['HOME'], '.prompts', '_prompts.log'),
context_files: [],
prompts_dir: File.join(ENV['HOME'], '.prompts'),
prompt_extname: PromptManager::Storage::FileSystemAdapter::PROMPT_EXTENSION,
roles_prefix: 'roles',
roles_dir: File.join(ENV['HOME'], '.prompts', 'roles'),
role: '',
system_prompt: '',
tools: '',
allowed_tools: nil,
rejected_tools: nil,
tool_paths: [],
markdown: true,
shell: true,
erb: true,
chat: false,
clear: false,
terse: false,
verbose: false,
debug: $DEBUG_ME,
fuzzy: false,
speak: false,
append: false,
pipeline: [],
parameter_regex: PromptManager::Prompt.parameter_regex.to_s,
temperature: 0.7,
max_tokens: 2048,
top_p: 1.0,
frequency_penalty: 0.0,
presence_penalty: 0.0,
voice: 'alloy',
speak_command: 'afplay',
image_size: '1024x1024',
image_quality: 'standard',
image_style: 'vivid',
model: ['gpt-4o-mini'],
consensus: nil,
speech_model: 'tts-1',
transcription_model: 'whisper-1',
embedding_model: 'text-embedding-ada-002',
image_model: 'dall-e-3',
refresh: 7,
last_refresh: Date.today - 1,
require_libs: [],
mcp_servers: nil,
}).freeze