Class: Ask::Tools::Code
- Inherits:
-
Ask::Tool
- Object
- Ask::Tool
- Ask::Tools::Code
- Defined in:
- lib/ask/tools/shell/code.rb
Overview
Write and execute Ruby code in a subprocess. Runs via Ask::Sandbox.provider (Local by default, configurable for stronger isolation via Docker, Daytona, or Cloudflare).
Instance Method Summary collapse
Instance Method Details
#execute(code:) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/ask/tools/shell/code.rb', line 17 def execute(code:) result = Ask::Sandbox.provider.call( ["ruby", "-e", code], timeout: 30 ) if result.timed_out return Ask::Result.error( message: "Code execution timed out", metadata: { stdout: result.stdout, stderr: result.stderr } ) end Ask::Result.ok(data: { stdout: result.stdout, stderr: result.stderr, exit_code: result.exit_code }) end |