main
1# frozen_string_literal: true
2
3require_relative "lib/elelem/version"
4
5Gem::Specification.new do |spec|
6 spec.name = "elelem"
7 spec.version = Elelem::VERSION
8 spec.authors = ["mo khan"]
9 spec.email = ["mo@mokhan.ca"]
10
11 spec.summary = "A minimal coding agent for LLMs."
12 spec.description = "A minimal coding agent supporting Ollama, Anthropic, OpenAI, and VertexAI."
13 spec.homepage = "https://src.mokhan.ca/xlgmokha/elelem"
14 spec.license = "MIT"
15 spec.required_ruby_version = ">= 4.0.0"
16 spec.required_rubygems_version = ">= 4.0.0"
17 spec.metadata["allowed_push_host"] = "https://rubygems.org"
18 spec.metadata["homepage_uri"] = spec.homepage
19 spec.metadata["source_code_uri"] = "https://git.mokhan.ca/xlgmokha/elelem.git"
20 spec.metadata["changelog_uri"] = "https://src.mokhan.ca/xlgmokha/elelem/blob/main/CHANGELOG.md.html"
21
22 spec.files = [
23 "CHANGELOG.md",
24 "LICENSE.txt",
25 "README.md",
26 "Rakefile",
27 "exe/elelem",
28 "lib/elelem.rb",
29 "lib/elelem/agent.rb",
30 "lib/elelem/commands.rb",
31 "lib/elelem/conversation.rb",
32 "lib/elelem/mcp.rb",
33 "lib/elelem/mcp/oauth.rb",
34 "lib/elelem/mcp/token_storage.rb",
35 "lib/elelem/net.rb",
36 "lib/elelem/net/claude.rb",
37 "lib/elelem/net/ollama.rb",
38 "lib/elelem/net/openai.rb",
39 "lib/elelem/permissions.json",
40 "lib/elelem/permissions.rb",
41 "lib/elelem/plugins.rb",
42 "lib/elelem/plugins/builtins.rb",
43 "lib/elelem/plugins/confirm.rb",
44 "lib/elelem/plugins/edit.rb",
45 "lib/elelem/plugins/eval.rb",
46 "lib/elelem/plugins/execute.rb",
47 "lib/elelem/plugins/git.rb",
48 "lib/elelem/plugins/glob.rb",
49 "lib/elelem/plugins/grep.rb",
50 "lib/elelem/plugins/list.rb",
51 "lib/elelem/plugins/mcp.rb",
52 "lib/elelem/plugins/read.rb",
53 "lib/elelem/plugins/task.rb",
54 "lib/elelem/plugins/tools.rb",
55 "lib/elelem/plugins/verify.rb",
56 "lib/elelem/plugins/write.rb",
57 "lib/elelem/system_prompt.rb",
58 "lib/elelem/terminal.rb",
59 "lib/elelem/tool.rb",
60 "lib/elelem/toolbox.rb",
61 "lib/elelem/version.rb",
62 ]
63 spec.bindir = "exe"
64 spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
65 spec.require_paths = ["lib"]
66
67 spec.add_dependency "base64", "~> 0.1"
68 spec.add_dependency "date", "~> 3.0"
69 spec.add_dependency "digest", "~> 3.0"
70 spec.add_dependency "erb", "~> 6.0"
71 spec.add_dependency "fileutils", "~> 1.0"
72 spec.add_dependency "json", "~> 2.0"
73 spec.add_dependency "json_schemer", "~> 2.0"
74 spec.add_dependency "logger", "~> 1.0"
75 spec.add_dependency "net-hippie", "~> 1.0"
76 spec.add_dependency "open3", "~> 0.1"
77 spec.add_dependency "optparse", "~> 0.1"
78 spec.add_dependency "pathname", "~> 0.1"
79 spec.add_dependency "reline", "~> 0.6"
80 spec.add_dependency "securerandom", "~> 0.1"
81 spec.add_dependency "shellwords", "~> 0.2"
82 spec.add_dependency "stringio", "~> 3.0"
83 spec.add_dependency "tempfile", "~> 0.3"
84 spec.add_dependency "uri", "~> 1.0"
85 spec.add_dependency "webrick", "~> 1.9"
86end