autotype 0.1.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.
data/spec/examples.txt ADDED
@@ -0,0 +1,72 @@
1
+ example_id | status | run_time |
2
+ ----------------------------------- | ------ | --------------- |
3
+ ./spec/autotype_config_spec.rb[1:1] | passed | 0.00003 seconds |
4
+ ./spec/autotype_config_spec.rb[1:2] | passed | 0.00005 seconds |
5
+ ./spec/autotype_config_spec.rb[1:3] | passed | 0.00004 seconds |
6
+ ./spec/autotype_config_spec.rb[1:4] | passed | 0.0002 seconds |
7
+ ./spec/autotype_config_spec.rb[2:1] | passed | 0.00042 seconds |
8
+ ./spec/autotype_config_spec.rb[2:2] | passed | 0.00047 seconds |
9
+ ./spec/autotype_config_spec.rb[2:3] | passed | 0.00188 seconds |
10
+ ./spec/autotype_config_spec.rb[2:4] | passed | 0.00091 seconds |
11
+ ./spec/autotype_native_spec.rb[1:1] | passed | 0.00179 seconds |
12
+ ./spec/autotype_native_spec.rb[1:2] | passed | 0.00007 seconds |
13
+ ./spec/autotype_native_spec.rb[1:3] | passed | 0.00022 seconds |
14
+ ./spec/autotype_spec.rb[1:1] | passed | 0.00025 seconds |
15
+ ./spec/autotype_spec.rb[1:2] | passed | 0.00018 seconds |
16
+ ./spec/autotype_spec.rb[1:3] | passed | 0.00018 seconds |
17
+ ./spec/autotype_spec.rb[1:4] | passed | 0.00031 seconds |
18
+ ./spec/autotype_spec.rb[1:5] | passed | 0.00075 seconds |
19
+ ./spec/autotype_spec.rb[1:6] | passed | 0.00063 seconds |
20
+ ./spec/autotype_spec.rb[1:7] | passed | 0.00051 seconds |
21
+ ./spec/autotype_spec.rb[1:8] | passed | 0.0003 seconds |
22
+ ./spec/autotype_spec.rb[1:9] | passed | 0.00024 seconds |
23
+ ./spec/autotype_spec.rb[1:10] | passed | 0.00052 seconds |
24
+ ./spec/autotype_spec.rb[1:11] | passed | 0.0003 seconds |
25
+ ./spec/autotype_spec.rb[1:12] | passed | 0.00028 seconds |
26
+ ./spec/autotype_spec.rb[1:13] | passed | 0.00022 seconds |
27
+ ./spec/autotype_spec.rb[1:14] | passed | 0.00017 seconds |
28
+ ./spec/autotype_spec.rb[1:15] | passed | 0.00032 seconds |
29
+ ./spec/autotype_spec.rb[1:16] | passed | 0.00029 seconds |
30
+ ./spec/autotype_spec.rb[1:17] | passed | 0.00025 seconds |
31
+ ./spec/autotype_spec.rb[1:18] | passed | 0.00069 seconds |
32
+ ./spec/autotype_spec.rb[1:19] | passed | 0.00033 seconds |
33
+ ./spec/autotype_spec.rb[1:20] | passed | 0.00608 seconds |
34
+ ./spec/autotype_spec.rb[1:21] | passed | 0.0007 seconds |
35
+ ./spec/autotype_spec.rb[1:22] | passed | 0.00014 seconds |
36
+ ./spec/autotype_spec.rb[1:23] | passed | 0.00039 seconds |
37
+ ./spec/autotype_spec.rb[1:24] | passed | 0.00016 seconds |
38
+ ./spec/autotype_spec.rb[1:25] | passed | 0.00031 seconds |
39
+ ./spec/autotype_spec.rb[1:26] | passed | 0.00063 seconds |
40
+ ./spec/autotype_spec.rb[1:27] | passed | 0.00031 seconds |
41
+ ./spec/autotype_spec.rb[1:28] | passed | 0.00048 seconds |
42
+ ./spec/autotype_spec.rb[1:29] | passed | 0.00059 seconds |
43
+ ./spec/autotype_spec.rb[1:30] | passed | 0.00086 seconds |
44
+ ./spec/autotype_spec.rb[1:31] | passed | 0.00101 seconds |
45
+ ./spec/autotype_spec.rb[1:32] | passed | 0.00307 seconds |
46
+ ./spec/autotype_spec.rb[1:33] | passed | 0.00052 seconds |
47
+ ./spec/autotype_spec.rb[1:34] | passed | 0.00033 seconds |
48
+ ./spec/autotype_spec.rb[1:35] | passed | 0.00037 seconds |
49
+ ./spec/autotype_spec.rb[1:36] | passed | 0.00038 seconds |
50
+ ./spec/autotype_spec.rb[1:37] | passed | 0.00045 seconds |
51
+ ./spec/autotype_spec.rb[1:38] | passed | 0.00046 seconds |
52
+ ./spec/autotype_spec.rb[1:39] | passed | 0.00157 seconds |
53
+ ./spec/autotype_spec.rb[1:40] | passed | 0.00218 seconds |
54
+ ./spec/autotype_spec.rb[1:41] | passed | 0.00081 seconds |
55
+ ./spec/autotype_spec.rb[1:42] | passed | 0.00028 seconds |
56
+ ./spec/autotype_spec.rb[1:43] | passed | 0.00129 seconds |
57
+ ./spec/autotype_spec.rb[1:44] | passed | 0.00034 seconds |
58
+ ./spec/autotype_spec.rb[1:45] | passed | 0.00041 seconds |
59
+ ./spec/autotype_spec.rb[1:46] | passed | 0.00057 seconds |
60
+ ./spec/autotype_spec.rb[1:47] | passed | 0.00067 seconds |
61
+ ./spec/autotype_spec.rb[1:48] | passed | 0.00036 seconds |
62
+ ./spec/autotype_spec.rb[1:49] | passed | 0.00075 seconds |
63
+ ./spec/autotype_spec.rb[1:50] | passed | 0.00033 seconds |
64
+ ./spec/autotype_spec.rb[1:51] | passed | 0.00025 seconds |
65
+ ./spec/autotype_spec.rb[1:52] | passed | 0.00026 seconds |
66
+ ./spec/autotype_spec.rb[1:53] | passed | 0.00015 seconds |
67
+ ./spec/autotype_spec.rb[1:54] | passed | 0.0003 seconds |
68
+ ./spec/autotype_spec.rb[1:55] | passed | 0.00028 seconds |
69
+ ./spec/autotype_spec.rb[1:56] | passed | 0.00024 seconds |
70
+ ./spec/autotype_spec.rb[1:57] | passed | 0.0019 seconds |
71
+ ./spec/autotype_spec.rb[1:58] | passed | 0.00108 seconds |
72
+ ./spec/autotype_spec.rb[1:59] | passed | 0.00016 seconds |
@@ -0,0 +1,9 @@
1
+ # Optional overrides — Autotype discovers wiring and entity paths automatically.
2
+ # Only add entries here when heuristics get something wrong.
3
+
4
+ skip:
5
+ - vendor/**
6
+
7
+ # types:
8
+ # members:
9
+ # query: MyApp::Entities::Query
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module App
4
+ module Entities
5
+ ToolCall = Entity.define(:step)
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module App
4
+ module Entities
5
+ ToolResult = Entity.define(:step)
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Actors
4
+ class DemoActor < App::Actor
5
+ input :tool_calls, type: App::Entities::ToolCall
6
+ input :tool_results, type: App::Entities::ToolResult
7
+ end
8
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "autotype"
4
+ require "tempfile"
5
+
6
+ RSpec.configure do |config|
7
+ config.expect_with :rspec do |expectations|
8
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
9
+ end
10
+
11
+ config.mock_with :rspec do |mocks|
12
+ mocks.verify_partial_doubles = true
13
+ end
14
+
15
+ config.shared_context_metadata_behavior = :apply_to_host_groups
16
+ config.filter_run_when_matching :focus
17
+ config.example_status_persistence_file_path = "spec/examples.txt"
18
+ config.disable_monkey_patching!
19
+ config.warnings = true
20
+ config.order = :random
21
+ Kernel.srand config.seed
22
+ end
23
+
24
+ require_relative "../lib/autotype/native"
25
+ require_relative "../lib/autotype/native_bridge"
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: autotype
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Louis Mullie
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: async
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '2.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: faraday
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: prism
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: dotenv
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: rspec
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '3.13'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '3.13'
82
+ description: Infers Ruby method signatures from Prism AST analysis and fixed-point
83
+ constraint solving.
84
+ email:
85
+ - louis.mullie@gmail.com
86
+ executables:
87
+ - autotype
88
+ extensions:
89
+ - ext/autotype/extconf.rb
90
+ extra_rdoc_files: []
91
+ files:
92
+ - Gemfile
93
+ - LICENSE
94
+ - README.md
95
+ - Rakefile
96
+ - autotype.example.yml
97
+ - autotype.gemspec
98
+ - exe/autotype
99
+ - ext/autotype/Makefile
100
+ - ext/autotype/autotype.bundle.dSYM/Contents/Info.plist
101
+ - ext/autotype/autotype.bundle.dSYM/Contents/Resources/Relocations/aarch64/autotype.bundle.yml
102
+ - ext/autotype/autotype.c
103
+ - ext/autotype/extconf.rb
104
+ - lib/autotype.rb
105
+ - lib/autotype/discovery_profile.rb
106
+ - lib/autotype/engine.rb
107
+ - lib/autotype/native.rb
108
+ - lib/autotype/native_bridge.rb
109
+ - lib/autotype/profile.rb
110
+ - lib/autotype/type_string.rb
111
+ - lib/autotype/version.rb
112
+ - native/autotype/Makefile
113
+ - native/autotype/include/stc.h
114
+ - native/autotype/src/main.c
115
+ - native/autotype/src/solver.c
116
+ - native/autotype/src/type.c
117
+ - spec/autotype_config_spec.rb
118
+ - spec/autotype_native_spec.rb
119
+ - spec/autotype_spec.rb
120
+ - spec/examples.txt
121
+ - spec/fixtures/autotype.yml
122
+ - spec/fixtures/entities/tool_call.rb
123
+ - spec/fixtures/entities/tool_result.rb
124
+ - spec/fixtures/pipeline/actors/demo_actor.rb
125
+ - spec/spec_helper.rb
126
+ homepage: https://github.com/louismullie/autotype
127
+ licenses:
128
+ - MIT
129
+ metadata:
130
+ homepage_uri: https://github.com/louismullie/autotype
131
+ source_code_uri: https://github.com/louismullie/autotype
132
+ rdoc_options: []
133
+ require_paths:
134
+ - lib
135
+ required_ruby_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: 3.2.0
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ requirements: []
146
+ rubygems_version: 3.6.9
147
+ specification_version: 4
148
+ summary: Syntax-less Ruby type inference from method usage
149
+ test_files: []