36 lines
778 B
Ruby
Executable File
36 lines
778 B
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
require 'json'
|
|
require 'pathname'
|
|
|
|
def load_module
|
|
if __FILE__.end_with?("cmd.rb")
|
|
func_name = ARGV[0]
|
|
else
|
|
func_name = Pathname.new(__FILE__).basename.to_s
|
|
end
|
|
|
|
func_name += '.rb' unless func_name.end_with?('.rb')
|
|
func_path = File.expand_path("../rb/#{func_name}", __dir__)
|
|
|
|
begin
|
|
return require_relative func_path
|
|
rescue LoadError
|
|
puts "Invalid ruby function: #{func_name}"
|
|
exit 1
|
|
end
|
|
end
|
|
|
|
if ENV["LLM_FUNCTION_DECLARATE"]
|
|
declarate = load_module.method(:declarate)
|
|
puts JSON.pretty_generate(declarate.call)
|
|
else
|
|
begin
|
|
data = JSON.parse(ENV["LLM_FUNCTION_DATA"])
|
|
rescue JSON::ParserError
|
|
puts "Invalid LLM_FUNCTION_DATA"
|
|
exit 1
|
|
end
|
|
execute = load_module.method(:execute)
|
|
execute.call(data)
|
|
end |