kobako 0.18.0-aarch64-linux → 0.20.0-aarch64-linux
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/.release-please-manifest.json +1 -1
- data/CHANGELOG.md +31 -0
- data/README.md +4 -1
- data/crates/kobako-runtime/CHANGELOG.md +14 -0
- data/crates/kobako-runtime/README.md +1 -1
- data/crates/kobako-wasmtime/CHANGELOG.md +14 -0
- data/crates/kobako-wasmtime/README.md +1 -1
- data/data/kobako.wasm +0 -0
- data/lib/kobako/3.3/kobako.so +0 -0
- data/lib/kobako/3.4/kobako.so +0 -0
- data/lib/kobako/4.0/kobako.so +0 -0
- data/lib/kobako/catalog/extensions.rb +50 -43
- data/lib/kobako/catalog/handles.rb +7 -16
- data/lib/kobako/catalog/services.rb +22 -36
- data/lib/kobako/catalog/snippets.rb +11 -10
- data/lib/kobako/context.rb +202 -0
- data/lib/kobako/errors.rb +26 -4
- data/lib/kobako/execution.rb +52 -0
- data/lib/kobako/extension.rb +24 -10
- data/lib/kobako/pool.rb +1 -7
- data/lib/kobako/sandbox.rb +43 -182
- data/lib/kobako/sandbox_options.rb +23 -2
- data/lib/kobako/transport/dispatcher.rb +16 -15
- data/lib/kobako/transport/yielder.rb +1 -1
- data/lib/kobako/unresolved.rb +17 -0
- data/lib/kobako/usage.rb +6 -6
- data/lib/kobako/version.rb +1 -1
- data/lib/kobako.rb +1 -0
- data/release-please-config.json +2 -1
- data/sig/kobako/catalog/extensions.rbs +4 -6
- data/sig/kobako/catalog/handles.rbs +0 -2
- data/sig/kobako/catalog/services.rbs +3 -3
- data/sig/kobako/catalog/snippets.rbs +2 -0
- data/sig/kobako/context.rbs +36 -0
- data/sig/kobako/errors.rbs +12 -3
- data/sig/kobako/execution.rbs +24 -0
- data/sig/kobako/extension.rbs +4 -2
- data/sig/kobako/runtime.rbs +37 -9
- data/sig/kobako/sandbox.rbs +5 -24
- data/sig/kobako/sandbox_options.rbs +9 -2
- data/sig/kobako/transport/dispatcher.rbs +3 -3
- data/sig/kobako/unresolved.rbs +4 -0
- metadata +8 -2
data/sig/kobako/errors.rbs
CHANGED
|
@@ -2,7 +2,14 @@ module Kobako
|
|
|
2
2
|
class Error < StandardError
|
|
3
3
|
end
|
|
4
4
|
|
|
5
|
+
module CarriesExecution
|
|
6
|
+
attr_reader execution: Kobako::Execution?
|
|
7
|
+
|
|
8
|
+
def with_execution: (Kobako::Execution execution) -> self
|
|
9
|
+
end
|
|
10
|
+
|
|
5
11
|
class TrapError < Error
|
|
12
|
+
include CarriesExecution
|
|
6
13
|
end
|
|
7
14
|
|
|
8
15
|
class TimeoutError < TrapError
|
|
@@ -17,7 +24,7 @@ module Kobako
|
|
|
17
24
|
class ModuleNotBuiltError < SetupError
|
|
18
25
|
end
|
|
19
26
|
|
|
20
|
-
module
|
|
27
|
+
module Diagnosable : Error
|
|
21
28
|
attr_reader origin: String?
|
|
22
29
|
attr_reader klass: String?
|
|
23
30
|
attr_reader backtrace_lines: Array[String]?
|
|
@@ -33,11 +40,13 @@ module Kobako
|
|
|
33
40
|
end
|
|
34
41
|
|
|
35
42
|
class SandboxError < Error
|
|
36
|
-
include
|
|
43
|
+
include Diagnosable
|
|
44
|
+
include CarriesExecution
|
|
37
45
|
end
|
|
38
46
|
|
|
39
47
|
class ServiceError < Error
|
|
40
|
-
include
|
|
48
|
+
include Diagnosable
|
|
49
|
+
include CarriesExecution
|
|
41
50
|
end
|
|
42
51
|
|
|
43
52
|
class HandleExhaustedError < SandboxError
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Kobako
|
|
2
|
+
class Execution
|
|
3
|
+
attr_reader value: untyped
|
|
4
|
+
attr_reader usage: Kobako::Usage
|
|
5
|
+
|
|
6
|
+
def initialize: (
|
|
7
|
+
value: untyped,
|
|
8
|
+
usage: Kobako::Usage,
|
|
9
|
+
stdout: Kobako::Capture,
|
|
10
|
+
stderr: Kobako::Capture,
|
|
11
|
+
failed: bool
|
|
12
|
+
) -> void
|
|
13
|
+
|
|
14
|
+
def failed?: () -> bool
|
|
15
|
+
|
|
16
|
+
def stdout: () -> String
|
|
17
|
+
|
|
18
|
+
def stderr: () -> String
|
|
19
|
+
|
|
20
|
+
def stdout_truncated?: () -> bool
|
|
21
|
+
|
|
22
|
+
def stderr_truncated?: () -> bool
|
|
23
|
+
end
|
|
24
|
+
end
|
data/sig/kobako/extension.rbs
CHANGED
|
@@ -11,10 +11,12 @@ module Kobako
|
|
|
11
11
|
|
|
12
12
|
class Backend < Data
|
|
13
13
|
attr_reader path: String
|
|
14
|
+
attr_reader object: untyped
|
|
14
15
|
attr_reader provider: untyped
|
|
15
16
|
|
|
16
|
-
def self.new: (path: String, provider: untyped) -> Kobako::Extension::Backend
|
|
17
|
-
|
|
17
|
+
def self.new: (path: String, ?object: untyped, ?provider: untyped) -> Kobako::Extension::Backend
|
|
18
|
+
|
|
19
|
+
def initialize: (path: String, ?object: untyped, ?provider: untyped) -> void
|
|
18
20
|
end
|
|
19
21
|
end
|
|
20
22
|
end
|
data/sig/kobako/runtime.rbs
CHANGED
|
@@ -8,18 +8,23 @@ module Kobako
|
|
|
8
8
|
Integer? memory_limit,
|
|
9
9
|
Integer? stdout_limit_bytes,
|
|
10
10
|
Integer? stderr_limit_bytes,
|
|
11
|
-
Symbol profile
|
|
11
|
+
Symbol profile,
|
|
12
|
+
Symbol gvl
|
|
12
13
|
) -> Runtime
|
|
13
14
|
|
|
14
|
-
def
|
|
15
|
+
def eval: (
|
|
16
|
+
^(String, Kobako::Transport::_GuestYielder) -> String dispatch,
|
|
17
|
+
String preamble,
|
|
18
|
+
String source,
|
|
19
|
+
String snippets
|
|
20
|
+
) -> Kobako::Runtime::Snapshot
|
|
15
21
|
|
|
16
|
-
def
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def captures: () -> [String, bool, String, bool]
|
|
22
|
+
def run: (
|
|
23
|
+
^(String, Kobako::Transport::_GuestYielder) -> String dispatch,
|
|
24
|
+
String preamble,
|
|
25
|
+
String snippets,
|
|
26
|
+
String envelope
|
|
27
|
+
) -> Kobako::Runtime::Snapshot
|
|
23
28
|
|
|
24
29
|
def profile: () -> Symbol
|
|
25
30
|
|
|
@@ -29,5 +34,28 @@ module Kobako
|
|
|
29
34
|
class GuestYielder
|
|
30
35
|
def call: (String args_bytes) -> String
|
|
31
36
|
end
|
|
37
|
+
|
|
38
|
+
# One invocation's result — the whole Snapshot the driver produced.
|
|
39
|
+
class Snapshot
|
|
40
|
+
def outcome: () -> String
|
|
41
|
+
|
|
42
|
+
def trapped?: () -> bool
|
|
43
|
+
|
|
44
|
+
def trap_kind: () -> Symbol?
|
|
45
|
+
|
|
46
|
+
def trap_message: () -> String?
|
|
47
|
+
|
|
48
|
+
def wall_time: () -> Float
|
|
49
|
+
|
|
50
|
+
def memory_peak: () -> Integer
|
|
51
|
+
|
|
52
|
+
def stdout: () -> String
|
|
53
|
+
|
|
54
|
+
def stdout_truncated?: () -> bool
|
|
55
|
+
|
|
56
|
+
def stderr: () -> String
|
|
57
|
+
|
|
58
|
+
def stderr_truncated?: () -> bool
|
|
59
|
+
end
|
|
32
60
|
end
|
|
33
61
|
end
|
data/sig/kobako/sandbox.rbs
CHANGED
|
@@ -11,6 +11,7 @@ module Kobako
|
|
|
11
11
|
def stdout_limit: () -> Integer?
|
|
12
12
|
def stderr_limit: () -> Integer?
|
|
13
13
|
def profile: () -> Symbol
|
|
14
|
+
def gvl: () -> Symbol
|
|
14
15
|
|
|
15
16
|
# Every keyword beyond wasm_path forwards verbatim to
|
|
16
17
|
# SandboxOptions.new (the four caps + the profile floor).
|
|
@@ -19,43 +20,23 @@ module Kobako
|
|
|
19
20
|
**untyped options
|
|
20
21
|
) -> void
|
|
21
22
|
|
|
22
|
-
def
|
|
23
|
-
|
|
24
|
-
def stderr: () -> String
|
|
25
|
-
|
|
26
|
-
def stdout_truncated?: () -> bool
|
|
27
|
-
|
|
28
|
-
def stderr_truncated?: () -> bool
|
|
29
|
-
|
|
30
|
-
attr_reader usage: Kobako::Usage
|
|
31
|
-
|
|
32
|
-
def bind: (Symbol | String path, untyped object) -> Kobako::Sandbox
|
|
23
|
+
def bind: (Symbol | String path, ?untyped object) -> Kobako::Sandbox
|
|
33
24
|
|
|
34
25
|
def install: (*untyped extensions) -> Kobako::Sandbox
|
|
35
26
|
|
|
36
27
|
def preload: (code: String, name: Symbol | String) -> Kobako::Sandbox
|
|
37
28
|
| (binary: String) -> Kobako::Sandbox
|
|
38
29
|
|
|
39
|
-
def run: (Symbol | String target, *untyped args, **untyped kwargs) ->
|
|
30
|
+
def run: (Symbol | String target, *untyped args, **untyped kwargs) ?{ (Kobako::Context) -> void } -> Kobako::Execution
|
|
40
31
|
|
|
41
|
-
def eval: (String code) ->
|
|
42
|
-
|
|
43
|
-
def reset_invocation_state!: () -> void
|
|
32
|
+
def eval: (String code) ?{ (Kobako::Context) -> void } -> Kobako::Execution
|
|
44
33
|
|
|
45
34
|
private
|
|
46
35
|
|
|
47
36
|
def build_runtime!: () -> Kobako::Runtime
|
|
48
37
|
|
|
49
|
-
def
|
|
38
|
+
def new_invocation: () -> Kobako::Context
|
|
50
39
|
|
|
51
40
|
def begin_invocation!: () -> void
|
|
52
|
-
|
|
53
|
-
def read_usage!: () -> void
|
|
54
|
-
|
|
55
|
-
def read_captures!: () -> void
|
|
56
|
-
|
|
57
|
-
def trap_class_for: (Kobako::TrapError err) -> singleton(Kobako::TrapError)
|
|
58
|
-
|
|
59
|
-
def invoke!: (Symbol verb) { () -> String } -> untyped
|
|
60
41
|
end
|
|
61
42
|
end
|
|
@@ -5,19 +5,23 @@ module Kobako
|
|
|
5
5
|
DEFAULT_OUTPUT_LIMIT: Integer
|
|
6
6
|
DEFAULT_PROFILE: Symbol
|
|
7
7
|
PROFILES: Array[Symbol]
|
|
8
|
+
GVL_MODES: Array[Symbol]
|
|
9
|
+
DEFAULT_GVL: Symbol
|
|
8
10
|
|
|
9
11
|
attr_reader timeout: Float?
|
|
10
12
|
attr_reader memory_limit: Integer?
|
|
11
13
|
attr_reader stdout_limit: Integer?
|
|
12
14
|
attr_reader stderr_limit: Integer?
|
|
13
15
|
attr_reader profile: Symbol
|
|
16
|
+
attr_reader gvl: Symbol
|
|
14
17
|
|
|
15
18
|
def self.new: (
|
|
16
19
|
?timeout: (Float | Integer)?,
|
|
17
20
|
?memory_limit: Integer?,
|
|
18
21
|
?stdout_limit: Integer?,
|
|
19
22
|
?stderr_limit: Integer?,
|
|
20
|
-
?profile: Symbol
|
|
23
|
+
?profile: Symbol,
|
|
24
|
+
?gvl: Symbol
|
|
21
25
|
) -> SandboxOptions
|
|
22
26
|
|
|
23
27
|
def initialize: (
|
|
@@ -25,7 +29,8 @@ module Kobako
|
|
|
25
29
|
?memory_limit: Integer?,
|
|
26
30
|
?stdout_limit: Integer?,
|
|
27
31
|
?stderr_limit: Integer?,
|
|
28
|
-
?profile: Symbol
|
|
32
|
+
?profile: Symbol,
|
|
33
|
+
?gvl: Symbol
|
|
29
34
|
) -> void
|
|
30
35
|
|
|
31
36
|
def enforce_floor!: (Symbol declared) -> void
|
|
@@ -39,5 +44,7 @@ module Kobako
|
|
|
39
44
|
def normalize_output_limit: (Integer? limit, String name) -> Integer?
|
|
40
45
|
|
|
41
46
|
def normalize_profile: (untyped profile) -> Symbol
|
|
47
|
+
|
|
48
|
+
def normalize_gvl: (untyped gvl) -> Symbol
|
|
42
49
|
end
|
|
43
50
|
end
|
|
@@ -12,7 +12,7 @@ module Kobako
|
|
|
12
12
|
|
|
13
13
|
CALLABLE_ALLOW: Array[Symbol]
|
|
14
14
|
|
|
15
|
-
def self?.dispatch: (String request_bytes, Kobako::Transport::_ServiceRegistry
|
|
15
|
+
def self?.dispatch: (String request_bytes, Kobako::Transport::_ServiceRegistry resolver, Kobako::Codec::_HandleTable handler, Kobako::Transport::_GuestYielder yield_to_guest) -> String
|
|
16
16
|
|
|
17
17
|
def self?.resolve_call_args: (Kobako::Transport::Request request, Kobako::Codec::_HandleTable handler, bool carried_handle) -> [Array[untyped], Hash[Symbol, untyped]]
|
|
18
18
|
|
|
@@ -26,9 +26,9 @@ module Kobako
|
|
|
26
26
|
|
|
27
27
|
def self?.resolve_arg: (untyped value, Kobako::Codec::_HandleTable handler) -> untyped
|
|
28
28
|
|
|
29
|
-
def self?.resolve_target: (String | Kobako::Handle target, Kobako::Transport::_ServiceRegistry
|
|
29
|
+
def self?.resolve_target: (String | Kobako::Handle target, Kobako::Transport::_ServiceRegistry resolver, Kobako::Codec::_HandleTable handler) -> untyped
|
|
30
30
|
|
|
31
|
-
def self?.resolve_path: (String path, Kobako::Transport::_ServiceRegistry
|
|
31
|
+
def self?.resolve_path: (String path, Kobako::Transport::_ServiceRegistry resolver) -> untyped
|
|
32
32
|
|
|
33
33
|
def self?.require_live_object!: (Integer id, Kobako::Codec::_HandleTable handler) -> untyped
|
|
34
34
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kobako
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.20.0
|
|
5
5
|
platform: aarch64-linux
|
|
6
6
|
authors:
|
|
7
7
|
- Aotokitsuruya
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-07-
|
|
11
|
+
date: 2026-07-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: msgpack
|
|
@@ -62,7 +62,9 @@ files:
|
|
|
62
62
|
- lib/kobako/codec/handle_walk.rb
|
|
63
63
|
- lib/kobako/codec/state.rb
|
|
64
64
|
- lib/kobako/codec/utils.rb
|
|
65
|
+
- lib/kobako/context.rb
|
|
65
66
|
- lib/kobako/errors.rb
|
|
67
|
+
- lib/kobako/execution.rb
|
|
66
68
|
- lib/kobako/extension.rb
|
|
67
69
|
- lib/kobako/fault.rb
|
|
68
70
|
- lib/kobako/handle.rb
|
|
@@ -83,6 +85,7 @@ files:
|
|
|
83
85
|
- lib/kobako/transport/run.rb
|
|
84
86
|
- lib/kobako/transport/yield.rb
|
|
85
87
|
- lib/kobako/transport/yielder.rb
|
|
88
|
+
- lib/kobako/unresolved.rb
|
|
86
89
|
- lib/kobako/usage.rb
|
|
87
90
|
- lib/kobako/version.rb
|
|
88
91
|
- release-please-config.json
|
|
@@ -102,7 +105,9 @@ files:
|
|
|
102
105
|
- sig/kobako/codec/handle_walk.rbs
|
|
103
106
|
- sig/kobako/codec/state.rbs
|
|
104
107
|
- sig/kobako/codec/utils.rbs
|
|
108
|
+
- sig/kobako/context.rbs
|
|
105
109
|
- sig/kobako/errors.rbs
|
|
110
|
+
- sig/kobako/execution.rbs
|
|
106
111
|
- sig/kobako/extension.rbs
|
|
107
112
|
- sig/kobako/fault.rbs
|
|
108
113
|
- sig/kobako/handle.rbs
|
|
@@ -123,6 +128,7 @@ files:
|
|
|
123
128
|
- sig/kobako/transport/run.rbs
|
|
124
129
|
- sig/kobako/transport/yield.rbs
|
|
125
130
|
- sig/kobako/transport/yielder.rbs
|
|
131
|
+
- sig/kobako/unresolved.rbs
|
|
126
132
|
- sig/kobako/usage.rbs
|
|
127
133
|
- sig/kobako/version.rbs
|
|
128
134
|
homepage: https://github.com/elct9620/kobako
|