elelem 0.12.0 → 0.13.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.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elelem
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - mo khan
@@ -23,6 +23,20 @@ dependencies:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
25
  version: '6.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: fileutils
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.8'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.8'
26
40
  - !ruby/object:Gem::Dependency
27
41
  name: forwardable
28
42
  requirement: !ruby/object:Gem::Requirement
@@ -164,19 +178,33 @@ dependencies:
164
178
  - !ruby/object:Gem::Version
165
179
  version: '0.2'
166
180
  - !ruby/object:Gem::Dependency
167
- name: uri
181
+ name: stringio
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '3.1'
187
+ type: :runtime
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '3.1'
194
+ - !ruby/object:Gem::Dependency
195
+ name: tempfile
168
196
  requirement: !ruby/object:Gem::Requirement
169
197
  requirements:
170
198
  - - "~>"
171
199
  - !ruby/object:Gem::Version
172
- version: '1.0'
200
+ version: '0.3'
173
201
  type: :runtime
174
202
  prerelease: false
175
203
  version_requirements: !ruby/object:Gem::Requirement
176
204
  requirements:
177
205
  - - "~>"
178
206
  - !ruby/object:Gem::Version
179
- version: '1.0'
207
+ version: '0.3'
180
208
  description: A minimal coding harness.
181
209
  email:
182
210
  - mo@mokhan.ca
@@ -191,6 +219,8 @@ files:
191
219
  - exe/elelem
192
220
  - lib/elelem.rb
193
221
  - lib/elelem/agent.rb
222
+ - lib/elelem/builtins.rb
223
+ - lib/elelem/builtins/terminal.rb
194
224
  - lib/elelem/cli.rb
195
225
  - lib/elelem/commands.rb
196
226
  - lib/elelem/config.rb
@@ -198,30 +228,35 @@ files:
198
228
  - lib/elelem/input.rb
199
229
  - lib/elelem/null_input.rb
200
230
  - lib/elelem/null_output.rb
201
- - lib/elelem/null_tool.rb
202
231
  - lib/elelem/output.rb
203
232
  - lib/elelem/plugins.rb
233
+ - lib/elelem/plugins/builtins.rb
234
+ - lib/elelem/plugins/context.rb
235
+ - lib/elelem/plugins/execute.rb
236
+ - lib/elelem/plugins/provider.rb
237
+ - lib/elelem/plugins/read.rb
238
+ - lib/elelem/plugins/reload.rb
239
+ - lib/elelem/plugins/terminal.rb
240
+ - lib/elelem/plugins/tools.rb
241
+ - lib/elelem/plugins/write.rb
204
242
  - lib/elelem/prompts/default.erb
205
243
  - lib/elelem/registration.rb
206
244
  - lib/elelem/registry.rb
207
245
  - lib/elelem/repl.rb
208
246
  - lib/elelem/result.rb
209
- - lib/elelem/schema.rb
210
247
  - lib/elelem/session.rb
211
- - lib/elelem/slash_command.rb
212
248
  - lib/elelem/stub_provider.rb
213
249
  - lib/elelem/system_prompt.rb
214
250
  - lib/elelem/tool.rb
215
251
  - lib/elelem/toolbox.rb
216
- - lib/elelem/transcript.rb
217
252
  - lib/elelem/version.rb
218
- homepage: https://src.mokhan.ca/elelem/elelem
253
+ homepage: https://elelem.sh
219
254
  licenses:
220
255
  - MIT
221
256
  metadata:
222
257
  allowed_push_host: https://rubygems.org
223
- homepage_uri: https://src.mokhan.ca/elelem/elelem
224
- source_code_uri: https://src.mokhan.ca/elelem/elelem
258
+ homepage_uri: https://elelem.sh
259
+ source_code_uri: https://github.com/elelem-sh/elelem
225
260
  rubygems_mfa_required: 'true'
226
261
  rdoc_options: []
227
262
  require_paths:
@@ -237,7 +272,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
237
272
  - !ruby/object:Gem::Version
238
273
  version: 4.0.0
239
274
  requirements: []
240
- rubygems_version: 4.0.20
275
+ rubygems_version: 4.0.6
241
276
  specification_version: 4
242
277
  summary: A minimal coding harness for LLMs.
243
278
  test_files: []
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Elelem
4
- class NullTool
5
- def initialize(name, available: [])
6
- @name = name
7
- @available = available
8
- end
9
-
10
- def name
11
- "#{@name}?"
12
- end
13
-
14
- def validate(_args)
15
- ["unknown tool: #{@name.inspect}. Available: #{@available.join(", ")}."]
16
- end
17
- end
18
- end
data/lib/elelem/schema.rb DELETED
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Elelem
4
- class Schema
5
- def initialize(params: {}, required: [])
6
- @params = params.freeze
7
- @required = required.freeze
8
- @schema_hash = { type: "object", properties: @params, required: @required }.freeze
9
- @json_schemer = JSONSchemer.schema(@schema_hash)
10
- end
11
-
12
- def to_h
13
- @schema_hash
14
- end
15
-
16
- def validate(args)
17
- @json_schemer.validate(args || {}).map { |error| error["error"] }
18
- end
19
- end
20
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Elelem
4
- class SlashCommand
5
- attr_reader :name, :description, :completions
6
-
7
- def initialize(name, description = "", completions = nil, &handler)
8
- @name = name
9
- @description = description
10
- @completions = completions
11
- @handler = handler
12
- end
13
-
14
- def call(args)
15
- @handler.call(args)
16
- end
17
- end
18
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Elelem
4
- class Transcript
5
- def initialize(system_prompt: nil)
6
- @conversation = Conversation.new
7
- @system_prompt = SystemPrompt.new(system_prompt)
8
- end
9
-
10
- def add(role:, content:, **extra)
11
- @conversation.add(role: role, content: content, **extra)
12
- end
13
-
14
- def clear!
15
- @conversation.clear!
16
- end
17
-
18
- def last
19
- @conversation.last
20
- end
21
-
22
- def to_a(extra = [])
23
- @conversation.to_a(system_prompt: @system_prompt.render) + extra
24
- end
25
- end
26
- end