daytona 0.149.0.alpha.2 → 0.149.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/daytona/code_toolbox/sandbox_js_code_toolbox.rb +2 -5
- data/lib/daytona/code_toolbox/sandbox_python_code_toolbox.rb +6 -5
- data/lib/daytona/code_toolbox/sandbox_ts_code_toolbox.rb +5 -6
- data/lib/daytona/process.rb +7 -9
- data/lib/daytona/sdk/version.rb +1 -1
- metadata +10 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9d79a65a95525e782c690ed5e6a5bd9242931dac768ef79d9f71c49bd19535b7
|
|
4
|
+
data.tar.gz: 2a07059c990ac31f366b643b17694d19e5bb55b97e8e017d41916a3caf0ace33
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 83ea49c6d60910d33b567cbdfbb8b8477461c6716d236c9e5af3bc8549ac466b5e161862135556551ca3ddebd8dab7d418e7e6118982969715f52fd3c41eff1f
|
|
7
|
+
data.tar.gz: 5daa4e0d7a77eac373601a2a05e66c51ca8db5ee2889cbb12c8eaa57bee6166098e5031937cbb8675344bf9e6198eb0ffac60a13717da11a102d09558c952311
|
|
@@ -12,11 +12,8 @@ module Daytona
|
|
|
12
12
|
argv = ''
|
|
13
13
|
argv = params.argv.join(' ') if params&.argv && !params.argv.empty?
|
|
14
14
|
|
|
15
|
-
#
|
|
16
|
-
#
|
|
17
|
-
# Capture the exit code before filtering to preserve node's exit status
|
|
18
|
-
"_dtn_out=$(echo '#{base64_code}' | base64 -d | node /dev/stdin #{argv} 2>&1); _dtn_ec=$?; " \
|
|
19
|
-
"printf '%s\\n' \"$_dtn_out\" | grep -v 'npm notice'; exit $_dtn_ec"
|
|
15
|
+
# Combine everything into the final command for JavaScript
|
|
16
|
+
" sh -c 'echo #{base64_code} | base64 --decode | node -e \"$(cat)\" #{argv} 2>&1 | grep -vE \"npm notice\"' "
|
|
20
17
|
end
|
|
21
18
|
end
|
|
22
19
|
end
|
|
@@ -10,21 +10,22 @@ module Daytona
|
|
|
10
10
|
# @param params [Daytona::CodeRunParams, nil] Optional parameters for code execution
|
|
11
11
|
# @return [String] The command to run the Python code
|
|
12
12
|
def get_run_command(code, params = nil)
|
|
13
|
-
encoded_code = Base64.
|
|
13
|
+
encoded_code = Base64.encode64(code)
|
|
14
14
|
|
|
15
15
|
# Override plt.show() method if matplotlib is imported
|
|
16
16
|
if matplotlib_imported?(code)
|
|
17
|
-
encoded_code = Base64.
|
|
17
|
+
encoded_code = Base64.encode64(
|
|
18
18
|
Base64.decode64(PYTHON_CODE_WRAPPER).gsub('{encoded_code}', encoded_code)
|
|
19
19
|
)
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
argv = params&.argv&.join(' ') || ''
|
|
23
23
|
|
|
24
|
-
#
|
|
25
|
-
# echo is a shell builtin so the base64 string doesn't hit ARG_MAX
|
|
24
|
+
# Execute the bootstrapper code directly
|
|
26
25
|
# Use -u flag to ensure unbuffered output for real-time error reporting
|
|
27
|
-
|
|
26
|
+
|
|
27
|
+
" sh -c 'python3 -u -c \"exec(__import__(\\\"base64\\\").b64decode(\\\"\\\"\\\"#{encoded_code}\\\"\\\"\\\")" \
|
|
28
|
+
".decode())\" #{argv}' "
|
|
28
29
|
end
|
|
29
30
|
|
|
30
31
|
private
|
|
@@ -10,15 +10,14 @@ module Daytona
|
|
|
10
10
|
# @param params [Daytona::CodeRunParams, nil] Optional parameters for code execution
|
|
11
11
|
# @return [String] The command to run the TypeScript code
|
|
12
12
|
def get_run_command(code, params = nil)
|
|
13
|
-
encoded_code = Base64.
|
|
13
|
+
encoded_code = Base64.encode64(code)
|
|
14
14
|
|
|
15
15
|
argv = params&.argv&.join(' ') || ''
|
|
16
16
|
|
|
17
|
-
#
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"printf '%s\\n' \"$_dtn_out\" | grep -v 'npm notice'; exit $_dtn_ec"
|
|
17
|
+
# Execute TypeScript code using ts-node with ESM support
|
|
18
|
+
" sh -c 'echo #{encoded_code} | base64 --decode | npx ts-node -O " \
|
|
19
|
+
"\"{\\\"module\\\":\\\"CommonJS\\\"}\" -e \"$(cat)\" x #{argv} 2>&1 | grep -vE " \
|
|
20
|
+
"\"npm notice\"' "
|
|
22
21
|
end
|
|
23
22
|
end
|
|
24
23
|
end
|
data/lib/daytona/process.rb
CHANGED
|
@@ -54,20 +54,18 @@ module Daytona
|
|
|
54
54
|
#
|
|
55
55
|
# # Command with timeout
|
|
56
56
|
# result = sandbox.process.exec("sleep 10", timeout: 5)
|
|
57
|
-
def exec(command:, cwd: nil, env: nil, timeout: nil) # rubocop:disable Metrics/MethodLength
|
|
57
|
+
def exec(command:, cwd: nil, env: nil, timeout: nil) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
|
58
|
+
command = "echo '#{Base64.encode64(command)}' | base64 -d | sh"
|
|
59
|
+
|
|
58
60
|
if env && !env.empty?
|
|
59
|
-
env.each_key do |key|
|
|
60
|
-
unless key.match?(/\A[A-Za-z_][A-Za-z0-9_]*\z/)
|
|
61
|
-
raise ArgumentError,
|
|
62
|
-
"Invalid environment variable name: '#{key}'"
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
61
|
safe_env_exports = env.map do |key, value|
|
|
66
|
-
"export #{key}
|
|
67
|
-
end.join(';
|
|
62
|
+
"export #{key}=$(echo '#{Base64.encode64(value)}' | base64 -d)"
|
|
63
|
+
end.join(';')
|
|
68
64
|
command = "#{safe_env_exports}; #{command}"
|
|
69
65
|
end
|
|
70
66
|
|
|
67
|
+
command = "sh -c \"#{command}\""
|
|
68
|
+
|
|
71
69
|
response = toolbox_api.execute_command(DaytonaToolboxApiClient::ExecuteRequest.new(command:, cwd:, timeout:))
|
|
72
70
|
# Post-process the output to extract ExecutionArtifacts
|
|
73
71
|
artifacts = parse_output(response.result.split("\n"))
|
data/lib/daytona/sdk/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: daytona
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.149.0
|
|
4
|
+
version: 0.149.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daytona Platforms Inc.
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: exe
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2026-03-05 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: opentelemetry-exporter-otlp
|
|
@@ -85,28 +86,28 @@ dependencies:
|
|
|
85
86
|
requirements:
|
|
86
87
|
- - '='
|
|
87
88
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: 0.149.0
|
|
89
|
+
version: 0.149.0
|
|
89
90
|
type: :runtime
|
|
90
91
|
prerelease: false
|
|
91
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
93
|
requirements:
|
|
93
94
|
- - '='
|
|
94
95
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: 0.149.0
|
|
96
|
+
version: 0.149.0
|
|
96
97
|
- !ruby/object:Gem::Dependency
|
|
97
98
|
name: daytona_toolbox_api_client
|
|
98
99
|
requirement: !ruby/object:Gem::Requirement
|
|
99
100
|
requirements:
|
|
100
101
|
- - '='
|
|
101
102
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: 0.149.0
|
|
103
|
+
version: 0.149.0
|
|
103
104
|
type: :runtime
|
|
104
105
|
prerelease: false
|
|
105
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
107
|
requirements:
|
|
107
108
|
- - '='
|
|
108
109
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: 0.149.0
|
|
110
|
+
version: 0.149.0
|
|
110
111
|
- !ruby/object:Gem::Dependency
|
|
111
112
|
name: dotenv
|
|
112
113
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -206,6 +207,7 @@ metadata:
|
|
|
206
207
|
source_code_uri: https://github.com/daytonaio/daytona
|
|
207
208
|
changelog_uri: https://github.com/daytonaio/daytona/releases
|
|
208
209
|
rubygems_mfa_required: 'true'
|
|
210
|
+
post_install_message:
|
|
209
211
|
rdoc_options: []
|
|
210
212
|
require_paths:
|
|
211
213
|
- lib
|
|
@@ -220,7 +222,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
220
222
|
- !ruby/object:Gem::Version
|
|
221
223
|
version: '0'
|
|
222
224
|
requirements: []
|
|
223
|
-
rubygems_version: 3.
|
|
225
|
+
rubygems_version: 3.4.19
|
|
226
|
+
signing_key:
|
|
224
227
|
specification_version: 4
|
|
225
228
|
summary: Ruby SDK for Daytona
|
|
226
229
|
test_files: []
|