17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/aiko/cli.rb', line 17
def self.parse(argv)
options = {}
parser = OptionParser.new do |opts|
opts.banner = "Usage: aiko [options] [prompt]"
opts.on("-w", "--workdir DIR", "Working directory (default: current directory)") { |v| options[:workdir] = v }
opts.on("-m", "--model MODEL", "Override model name") { |v| options[:model] = v }
opts.on("--base-url URL", "Override API endpoint") { |v| options[:base_url] = v }
opts.on("-y", "--yes", "Auto-approve all tool executions") { options[:yes] = true }
opts.on("--max-iterations N", Integer, "Max agent loop iterations (default: 20)") { |v| options[:max_iterations] = v }
opts.on("-v", "--version", "Show version") { options[:version] = true }
opts.on("-h", "--help", "Show help") { options[:help] = true }
end
rest = parser.parse(argv)
options[:help_text] = parser.to_s
prompt = rest.empty? ? nil : rest.join(" ")
[options, prompt]
end
|