ruby_llm-browser 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.
Files changed (85) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +61 -0
  3. data/CODE_OF_CONDUCT.md +11 -0
  4. data/CONTRIBUTING.md +42 -0
  5. data/LICENSE.txt +21 -0
  6. data/NOTICE.md +92 -0
  7. data/README.md +139 -0
  8. data/SECURITY.md +46 -0
  9. data/docs/API.md +177 -0
  10. data/docs/CNAME +1 -0
  11. data/docs/RAILS.md +167 -0
  12. data/docs/README.md +16 -0
  13. data/docs/RELEASE_ACTION_PLAN.md +81 -0
  14. data/docs/RELEASE_AUDIT.md +158 -0
  15. data/docs/RELEASING.md +131 -0
  16. data/docs/SECURITY_MODEL.md +117 -0
  17. data/docs/SPEC_BASELINE.md +107 -0
  18. data/docs/WORK.md +260 -0
  19. data/docs/_advanced/live-backend-qualification.md +74 -0
  20. data/docs/_advanced/rails-integration.md +56 -0
  21. data/docs/_config.yml +109 -0
  22. data/docs/_core_features/inspect-extract.md +91 -0
  23. data/docs/_core_features/offline-act.md +110 -0
  24. data/docs/_core_features/operation-lifecycle.md +63 -0
  25. data/docs/_core_features/source-policy.md +61 -0
  26. data/docs/_data/navigation.yml +12 -0
  27. data/docs/_data/sidebar.yml +8 -0
  28. data/docs/_data/social_links.yml +3 -0
  29. data/docs/_getting_started/configuration.md +68 -0
  30. data/docs/_getting_started/getting-started.md +77 -0
  31. data/docs/_getting_started/overview.md +52 -0
  32. data/docs/_plugins/versioned_docs.rb +46 -0
  33. data/docs/_reference/api-reference.md +29 -0
  34. data/docs/_reference/release-history.md +23 -0
  35. data/docs/_reference/upgrading.md +33 -0
  36. data/docs/bin/build-api.sh +23 -0
  37. data/docs/bin/build.sh +161 -0
  38. data/docs/bin/export-api-markdown.rb +53 -0
  39. data/docs/bin/link_versions.rb +54 -0
  40. data/docs/bin/postprocess_api_seo.rb +129 -0
  41. data/docs/bin/prepare_versions.rb +40 -0
  42. data/docs/bin/serve.sh +12 -0
  43. data/docs/bin/versions.yml +14 -0
  44. data/docs/index.md +82 -0
  45. data/examples/plain_ruby.rb +34 -0
  46. data/examples/rails_adapter.rb +47 -0
  47. data/lib/generators/ruby_llm/browser/install_generator.rb +29 -0
  48. data/lib/generators/ruby_llm/browser/templates/create_ruby_llm_browser_tables.rb.tt +60 -0
  49. data/lib/ruby_llm/browser/approval.rb +128 -0
  50. data/lib/ruby_llm/browser/approval_store.rb +38 -0
  51. data/lib/ruby_llm/browser/backend.rb +99 -0
  52. data/lib/ruby_llm/browser/budget.rb +90 -0
  53. data/lib/ruby_llm/browser/capabilities.rb +76 -0
  54. data/lib/ruby_llm/browser/configuration.rb +74 -0
  55. data/lib/ruby_llm/browser/context.rb +117 -0
  56. data/lib/ruby_llm/browser/doctor.rb +134 -0
  57. data/lib/ruby_llm/browser/engine.rb +326 -0
  58. data/lib/ruby_llm/browser/errors.rb +86 -0
  59. data/lib/ruby_llm/browser/fake_backend.rb +134 -0
  60. data/lib/ruby_llm/browser/immutable.rb +19 -0
  61. data/lib/ruby_llm/browser/in_memory_approval_store.rb +67 -0
  62. data/lib/ruby_llm/browser/in_memory_operation_store.rb +174 -0
  63. data/lib/ruby_llm/browser/operation.rb +218 -0
  64. data/lib/ruby_llm/browser/operation_store.rb +92 -0
  65. data/lib/ruby_llm/browser/policy.rb +298 -0
  66. data/lib/ruby_llm/browser/rails/active_record_approval_store.rb +72 -0
  67. data/lib/ruby_llm/browser/rails/active_record_operation_store.rb +231 -0
  68. data/lib/ruby_llm/browser/rails/actor_record.rb +13 -0
  69. data/lib/ruby_llm/browser/rails/approval_record.rb +49 -0
  70. data/lib/ruby_llm/browser/rails/operation_job.rb +163 -0
  71. data/lib/ruby_llm/browser/rails/operation_record.rb +56 -0
  72. data/lib/ruby_llm/browser/rails/reaper.rb +117 -0
  73. data/lib/ruby_llm/browser/rails/schema.rb +81 -0
  74. data/lib/ruby_llm/browser/rails.rb +79 -0
  75. data/lib/ruby_llm/browser/redactor.rb +159 -0
  76. data/lib/ruby_llm/browser/result.rb +102 -0
  77. data/lib/ruby_llm/browser/stagehand_backend.rb +332 -0
  78. data/lib/ruby_llm/browser/tool.rb +70 -0
  79. data/lib/ruby_llm/browser/tools/act.rb +91 -0
  80. data/lib/ruby_llm/browser/tools/extract.rb +60 -0
  81. data/lib/ruby_llm/browser/tools/inspect.rb +38 -0
  82. data/lib/ruby_llm/browser/url_guard.rb +253 -0
  83. data/lib/ruby_llm/browser/version.rb +9 -0
  84. data/lib/ruby_llm/browser.rb +79 -0
  85. metadata +267 -0
metadata ADDED
@@ -0,0 +1,267 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby_llm-browser
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Andy Wang
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2026-10-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ruby_llm
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '2.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3'
33
+ - !ruby/object:Gem::Dependency
34
+ name: json_schemer
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.5'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2.5'
47
+ - !ruby/object:Gem::Dependency
48
+ name: cgi
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.4.2
54
+ - - "<"
55
+ - !ruby/object:Gem::Version
56
+ version: '1'
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 0.4.2
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: '1'
67
+ - !ruby/object:Gem::Dependency
68
+ name: resolv
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 0.7.2
74
+ - - "<"
75
+ - !ruby/object:Gem::Version
76
+ version: '1'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 0.7.2
84
+ - - "<"
85
+ - !ruby/object:Gem::Version
86
+ version: '1'
87
+ - !ruby/object:Gem::Dependency
88
+ name: uri
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: 1.0.4
94
+ - - "<"
95
+ - !ruby/object:Gem::Version
96
+ version: '2'
97
+ type: :runtime
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 1.0.4
104
+ - - "<"
105
+ - !ruby/object:Gem::Version
106
+ version: '2'
107
+ - !ruby/object:Gem::Dependency
108
+ name: zlib
109
+ requirement: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: 3.2.3
114
+ - - "<"
115
+ - !ruby/object:Gem::Version
116
+ version: '4'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: 3.2.3
124
+ - - "<"
125
+ - !ruby/object:Gem::Version
126
+ version: '4'
127
+ - !ruby/object:Gem::Dependency
128
+ name: stagehand
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: 3.21.0
134
+ type: :runtime
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: 3.21.0
141
+ description: |
142
+ An unofficial community extension for RubyLLM. It adds policy-bound, read-only
143
+ browser Inspect and Extract tools with an offline FakeBackend. The Stagehand Ruby SDK
144
+ adapter is present but unsupported for live operations until provider egress and
145
+ cleanup are qualified. The first release also includes
146
+ explicit URL/SSRF policy, bounded and sanitized results with provenance, durable
147
+ operation and session lifecycle bookkeeping, budgets, offline Act simulation, and an
148
+ optional Rails 8 / Active Job adapter. The full live Act protocol is deferred to a
149
+ later version. The Gem core works in plain
150
+ Ruby without Rails.
151
+ email:
152
+ - wangyaodi@gmail.com
153
+ executables: []
154
+ extensions: []
155
+ extra_rdoc_files: []
156
+ files:
157
+ - CHANGELOG.md
158
+ - CODE_OF_CONDUCT.md
159
+ - CONTRIBUTING.md
160
+ - LICENSE.txt
161
+ - NOTICE.md
162
+ - README.md
163
+ - SECURITY.md
164
+ - docs/API.md
165
+ - docs/CNAME
166
+ - docs/RAILS.md
167
+ - docs/README.md
168
+ - docs/RELEASE_ACTION_PLAN.md
169
+ - docs/RELEASE_AUDIT.md
170
+ - docs/RELEASING.md
171
+ - docs/SECURITY_MODEL.md
172
+ - docs/SPEC_BASELINE.md
173
+ - docs/WORK.md
174
+ - docs/_advanced/live-backend-qualification.md
175
+ - docs/_advanced/rails-integration.md
176
+ - docs/_config.yml
177
+ - docs/_core_features/inspect-extract.md
178
+ - docs/_core_features/offline-act.md
179
+ - docs/_core_features/operation-lifecycle.md
180
+ - docs/_core_features/source-policy.md
181
+ - docs/_data/navigation.yml
182
+ - docs/_data/sidebar.yml
183
+ - docs/_data/social_links.yml
184
+ - docs/_getting_started/configuration.md
185
+ - docs/_getting_started/getting-started.md
186
+ - docs/_getting_started/overview.md
187
+ - docs/_plugins/versioned_docs.rb
188
+ - docs/_reference/api-reference.md
189
+ - docs/_reference/release-history.md
190
+ - docs/_reference/upgrading.md
191
+ - docs/bin/build-api.sh
192
+ - docs/bin/build.sh
193
+ - docs/bin/export-api-markdown.rb
194
+ - docs/bin/link_versions.rb
195
+ - docs/bin/postprocess_api_seo.rb
196
+ - docs/bin/prepare_versions.rb
197
+ - docs/bin/serve.sh
198
+ - docs/bin/versions.yml
199
+ - docs/index.md
200
+ - examples/plain_ruby.rb
201
+ - examples/rails_adapter.rb
202
+ - lib/generators/ruby_llm/browser/install_generator.rb
203
+ - lib/generators/ruby_llm/browser/templates/create_ruby_llm_browser_tables.rb.tt
204
+ - lib/ruby_llm/browser.rb
205
+ - lib/ruby_llm/browser/approval.rb
206
+ - lib/ruby_llm/browser/approval_store.rb
207
+ - lib/ruby_llm/browser/backend.rb
208
+ - lib/ruby_llm/browser/budget.rb
209
+ - lib/ruby_llm/browser/capabilities.rb
210
+ - lib/ruby_llm/browser/configuration.rb
211
+ - lib/ruby_llm/browser/context.rb
212
+ - lib/ruby_llm/browser/doctor.rb
213
+ - lib/ruby_llm/browser/engine.rb
214
+ - lib/ruby_llm/browser/errors.rb
215
+ - lib/ruby_llm/browser/fake_backend.rb
216
+ - lib/ruby_llm/browser/immutable.rb
217
+ - lib/ruby_llm/browser/in_memory_approval_store.rb
218
+ - lib/ruby_llm/browser/in_memory_operation_store.rb
219
+ - lib/ruby_llm/browser/operation.rb
220
+ - lib/ruby_llm/browser/operation_store.rb
221
+ - lib/ruby_llm/browser/policy.rb
222
+ - lib/ruby_llm/browser/rails.rb
223
+ - lib/ruby_llm/browser/rails/active_record_approval_store.rb
224
+ - lib/ruby_llm/browser/rails/active_record_operation_store.rb
225
+ - lib/ruby_llm/browser/rails/actor_record.rb
226
+ - lib/ruby_llm/browser/rails/approval_record.rb
227
+ - lib/ruby_llm/browser/rails/operation_job.rb
228
+ - lib/ruby_llm/browser/rails/operation_record.rb
229
+ - lib/ruby_llm/browser/rails/reaper.rb
230
+ - lib/ruby_llm/browser/rails/schema.rb
231
+ - lib/ruby_llm/browser/redactor.rb
232
+ - lib/ruby_llm/browser/result.rb
233
+ - lib/ruby_llm/browser/stagehand_backend.rb
234
+ - lib/ruby_llm/browser/tool.rb
235
+ - lib/ruby_llm/browser/tools/act.rb
236
+ - lib/ruby_llm/browser/tools/extract.rb
237
+ - lib/ruby_llm/browser/tools/inspect.rb
238
+ - lib/ruby_llm/browser/url_guard.rb
239
+ - lib/ruby_llm/browser/version.rb
240
+ homepage: https://github.com/yorzi/ruby_llm-browser
241
+ licenses:
242
+ - MIT
243
+ metadata:
244
+ source_code_uri: https://github.com/yorzi/ruby_llm-browser
245
+ changelog_uri: https://github.com/yorzi/ruby_llm-browser/blob/main/CHANGELOG.md
246
+ bug_tracker_uri: https://github.com/yorzi/ruby_llm-browser/issues
247
+ rubygems_mfa_required: 'true'
248
+ post_install_message:
249
+ rdoc_options: []
250
+ require_paths:
251
+ - lib
252
+ required_ruby_version: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - ">="
255
+ - !ruby/object:Gem::Version
256
+ version: '3.2'
257
+ required_rubygems_version: !ruby/object:Gem::Requirement
258
+ requirements:
259
+ - - ">="
260
+ - !ruby/object:Gem::Version
261
+ version: '0'
262
+ requirements: []
263
+ rubygems_version: 3.5.22
264
+ signing_key:
265
+ specification_version: 4
266
+ summary: Offline, policy-bound browser Inspect and Extract tools for RubyLLM.
267
+ test_files: []