elja 0.1.0__tar.gz

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.
elja-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ben Ballintyn
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
elja-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,59 @@
1
+ Metadata-Version: 2.4
2
+ Name: elja
3
+ Version: 0.1.0
4
+ Summary: A relentless, fully-customizable LLM agent harness built on Pydantic AI. Under active development.
5
+ License: MIT
6
+ License-File: LICENSE
7
+ Author: Ben Ballintyn
8
+ Author-email: benballintyn@gmail.com
9
+ Requires-Python: >=3.11,<3.14
10
+ Classifier: Development Status :: 2 - Pre-Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Typing :: Typed
16
+ Requires-Dist: loguru (>=0.7,<1)
17
+ Requires-Dist: pydantic-ai-slim[mcp,openai] (>=2.36,<3)
18
+ Requires-Dist: pydantic-settings (>=2.0,<3)
19
+ Project-URL: Repository, https://github.com/benballintyn/elja
20
+ Description-Content-Type: text/markdown
21
+
22
+ # elja
23
+
24
+ *Elja* (Icelandic): relentless drive — the quality of working at something without letting up.
25
+
26
+ A fully-customizable LLM agent harness built on [Pydantic AI](https://ai.pydantic.dev), designed
27
+ for local-first models (LM Studio / OpenAI-compatible endpoints) with first-class support for
28
+ tools, skills, sub-agents, MCP servers, and custom context management.
29
+
30
+ **Status: under active development.** The first usable version is coming.
31
+
32
+ ## Installation
33
+
34
+ ```bash
35
+ pip install elja
36
+ ```
37
+
38
+ ## Development
39
+
40
+ ```bash
41
+ poetry install --with dev
42
+ poetry run pre-commit install
43
+ ```
44
+
45
+ Run checks:
46
+
47
+ ```bash
48
+ poetry run ruff check src tests
49
+ poetry run mypy
50
+ poetry run pytest -m "not integration"
51
+ ```
52
+
53
+ Integration tests (`-m integration`) require a running LM Studio server at
54
+ `http://localhost:1234/v1`.
55
+
56
+ ## License
57
+
58
+ MIT
59
+
elja-0.1.0/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # elja
2
+
3
+ *Elja* (Icelandic): relentless drive — the quality of working at something without letting up.
4
+
5
+ A fully-customizable LLM agent harness built on [Pydantic AI](https://ai.pydantic.dev), designed
6
+ for local-first models (LM Studio / OpenAI-compatible endpoints) with first-class support for
7
+ tools, skills, sub-agents, MCP servers, and custom context management.
8
+
9
+ **Status: under active development.** The first usable version is coming.
10
+
11
+ ## Installation
12
+
13
+ ```bash
14
+ pip install elja
15
+ ```
16
+
17
+ ## Development
18
+
19
+ ```bash
20
+ poetry install --with dev
21
+ poetry run pre-commit install
22
+ ```
23
+
24
+ Run checks:
25
+
26
+ ```bash
27
+ poetry run ruff check src tests
28
+ poetry run mypy
29
+ poetry run pytest -m "not integration"
30
+ ```
31
+
32
+ Integration tests (`-m integration`) require a running LM Studio server at
33
+ `http://localhost:1234/v1`.
34
+
35
+ ## License
36
+
37
+ MIT
@@ -0,0 +1,60 @@
1
+ [project]
2
+ name = "elja"
3
+ version = "0.1.0"
4
+ description = "A relentless, fully-customizable LLM agent harness built on Pydantic AI. Under active development."
5
+ authors = [{ name = "Ben Ballintyn", email = "benballintyn@gmail.com" }]
6
+ readme = "README.md"
7
+ license = { text = "MIT" }
8
+ requires-python = ">=3.11,<3.14"
9
+ classifiers = [
10
+ "Development Status :: 2 - Pre-Alpha",
11
+ "Intended Audience :: Developers",
12
+ "Programming Language :: Python :: 3.11",
13
+ "Programming Language :: Python :: 3.12",
14
+ "Programming Language :: Python :: 3.13",
15
+ "Typing :: Typed",
16
+ ]
17
+ dependencies = [
18
+ "pydantic-ai-slim[openai,mcp] (>=2.36,<3)",
19
+ "pydantic-settings (>=2.0,<3)",
20
+ "loguru (>=0.7,<1)",
21
+ ]
22
+
23
+ [project.urls]
24
+ Repository = "https://github.com/benballintyn/elja"
25
+
26
+ [tool.poetry]
27
+ packages = [{ include = "elja", from = "src" }]
28
+
29
+ [tool.poetry.group.dev.dependencies]
30
+ pytest = "^8.0"
31
+ pytest-cov = "^6.0"
32
+ pytest-mock = "^3.14"
33
+ pytest-asyncio = "^1.0"
34
+ ruff = "^0.15"
35
+ mypy = "^1.14"
36
+ pre-commit = "^4.0"
37
+
38
+ [tool.ruff]
39
+ line-length = 99
40
+ target-version = "py311"
41
+
42
+ [tool.ruff.lint]
43
+ select = ["E", "F", "I", "N", "W", "UP", "B", "A", "SIM", "ANN"]
44
+
45
+ [tool.pytest.ini_options]
46
+ testpaths = ["tests"]
47
+ addopts = "--cov=elja --cov-report=term-missing"
48
+ asyncio_mode = "auto"
49
+ markers = [
50
+ "integration: tests that require a live LLM endpoint (deselected in CI)",
51
+ ]
52
+
53
+ [tool.mypy]
54
+ python_version = "3.11"
55
+ strict = true
56
+ files = ["src", "tests"]
57
+
58
+ [build-system]
59
+ requires = ["poetry-core>=2.0.0"]
60
+ build-backend = "poetry.core.masonry.api"
@@ -0,0 +1,3 @@
1
+ """elja: a relentless, fully-customizable LLM agent harness built on Pydantic AI."""
2
+
3
+ __version__ = "0.1.0"
File without changes