jeevesagent 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.
- jeevesagent-0.1.0/.github/workflows/ci.yml +80 -0
- jeevesagent-0.1.0/.github/workflows/release.yml +54 -0
- jeevesagent-0.1.0/.gitignore +59 -0
- jeevesagent-0.1.0/BUILD_LOG.md +1372 -0
- jeevesagent-0.1.0/CHANGELOG.md +69 -0
- jeevesagent-0.1.0/LICENSE +201 -0
- jeevesagent-0.1.0/PKG-INFO +247 -0
- jeevesagent-0.1.0/README.md +204 -0
- jeevesagent-0.1.0/docs/architecture.md +243 -0
- jeevesagent-0.1.0/docs/quickstart.md +486 -0
- jeevesagent-0.1.0/docs/recipes.md +378 -0
- jeevesagent-0.1.0/examples/00_hello.py +30 -0
- jeevesagent-0.1.0/examples/01_real_model.py +44 -0
- jeevesagent-0.1.0/examples/02_tools_parallel.py +70 -0
- jeevesagent-0.1.0/examples/03_streaming.py +59 -0
- jeevesagent-0.1.0/examples/04_facts.py +105 -0
- jeevesagent-0.1.0/examples/05_durable.py +58 -0
- jeevesagent-0.1.0/examples/06_production.py +121 -0
- jeevesagent-0.1.0/examples/README.md +45 -0
- jeevesagent-0.1.0/jeevesagent/__init__.py +194 -0
- jeevesagent-0.1.0/jeevesagent/agent/__init__.py +5 -0
- jeevesagent-0.1.0/jeevesagent/agent/api.py +668 -0
- jeevesagent-0.1.0/jeevesagent/core/__init__.py +104 -0
- jeevesagent-0.1.0/jeevesagent/core/errors.py +64 -0
- jeevesagent-0.1.0/jeevesagent/core/ids.py +45 -0
- jeevesagent-0.1.0/jeevesagent/core/protocols.py +249 -0
- jeevesagent-0.1.0/jeevesagent/core/types.py +415 -0
- jeevesagent-0.1.0/jeevesagent/data/__init__.py +25 -0
- jeevesagent-0.1.0/jeevesagent/data/lineage.py +163 -0
- jeevesagent-0.1.0/jeevesagent/governance/__init__.py +5 -0
- jeevesagent-0.1.0/jeevesagent/governance/budget.py +107 -0
- jeevesagent-0.1.0/jeevesagent/jeeves/__init__.py +34 -0
- jeevesagent-0.1.0/jeevesagent/jeeves/client.py +170 -0
- jeevesagent-0.1.0/jeevesagent/mcp/__init__.py +21 -0
- jeevesagent-0.1.0/jeevesagent/mcp/client.py +171 -0
- jeevesagent-0.1.0/jeevesagent/mcp/registry.py +213 -0
- jeevesagent-0.1.0/jeevesagent/mcp/spec.py +69 -0
- jeevesagent-0.1.0/jeevesagent/memory/__init__.py +52 -0
- jeevesagent-0.1.0/jeevesagent/memory/_embedding_util.py +30 -0
- jeevesagent-0.1.0/jeevesagent/memory/chroma.py +318 -0
- jeevesagent-0.1.0/jeevesagent/memory/chroma_facts.py +351 -0
- jeevesagent-0.1.0/jeevesagent/memory/consolidator.py +146 -0
- jeevesagent-0.1.0/jeevesagent/memory/embedder.py +123 -0
- jeevesagent-0.1.0/jeevesagent/memory/facts.py +347 -0
- jeevesagent-0.1.0/jeevesagent/memory/inmemory.py +137 -0
- jeevesagent-0.1.0/jeevesagent/memory/postgres.py +340 -0
- jeevesagent-0.1.0/jeevesagent/memory/postgres_facts.py +351 -0
- jeevesagent-0.1.0/jeevesagent/memory/redis.py +437 -0
- jeevesagent-0.1.0/jeevesagent/memory/redis_facts.py +312 -0
- jeevesagent-0.1.0/jeevesagent/memory/sqlite_facts.py +392 -0
- jeevesagent-0.1.0/jeevesagent/memory/vector.py +207 -0
- jeevesagent-0.1.0/jeevesagent/model/__init__.py +25 -0
- jeevesagent-0.1.0/jeevesagent/model/anthropic.py +232 -0
- jeevesagent-0.1.0/jeevesagent/model/echo.py +70 -0
- jeevesagent-0.1.0/jeevesagent/model/openai.py +205 -0
- jeevesagent-0.1.0/jeevesagent/model/scripted.py +70 -0
- jeevesagent-0.1.0/jeevesagent/observability/__init__.py +9 -0
- jeevesagent-0.1.0/jeevesagent/observability/tracing.py +115 -0
- jeevesagent-0.1.0/jeevesagent/runtime/__init__.py +34 -0
- jeevesagent-0.1.0/jeevesagent/runtime/inproc.py +63 -0
- jeevesagent-0.1.0/jeevesagent/runtime/journal.py +263 -0
- jeevesagent-0.1.0/jeevesagent/runtime/journaled.py +137 -0
- jeevesagent-0.1.0/jeevesagent/runtime/sqlite.py +34 -0
- jeevesagent-0.1.0/jeevesagent/security/__init__.py +21 -0
- jeevesagent-0.1.0/jeevesagent/security/audit.py +303 -0
- jeevesagent-0.1.0/jeevesagent/security/hooks.py +74 -0
- jeevesagent-0.1.0/jeevesagent/security/permissions.py +79 -0
- jeevesagent-0.1.0/jeevesagent/security/sandbox/__init__.py +25 -0
- jeevesagent-0.1.0/jeevesagent/security/sandbox/base.py +42 -0
- jeevesagent-0.1.0/jeevesagent/security/sandbox/filesystem.py +140 -0
- jeevesagent-0.1.0/jeevesagent/tools/__init__.py +10 -0
- jeevesagent-0.1.0/jeevesagent/tools/registry.py +193 -0
- jeevesagent-0.1.0/project.md +2115 -0
- jeevesagent-0.1.0/pyproject.toml +81 -0
- jeevesagent-0.1.0/tests/__init__.py +0 -0
- jeevesagent-0.1.0/tests/conftest.py +8 -0
- jeevesagent-0.1.0/tests/test_anthropic.py +220 -0
- jeevesagent-0.1.0/tests/test_audit.py +208 -0
- jeevesagent-0.1.0/tests/test_chroma_facts.py +222 -0
- jeevesagent-0.1.0/tests/test_chroma_memory.py +79 -0
- jeevesagent-0.1.0/tests/test_embedder.py +119 -0
- jeevesagent-0.1.0/tests/test_facts.py +598 -0
- jeevesagent-0.1.0/tests/test_jeeves.py +277 -0
- jeevesagent-0.1.0/tests/test_journaled_runtime.py +275 -0
- jeevesagent-0.1.0/tests/test_lineage.py +147 -0
- jeevesagent-0.1.0/tests/test_mcp.py +316 -0
- jeevesagent-0.1.0/tests/test_openai.py +300 -0
- jeevesagent-0.1.0/tests/test_postgres_facts.py +292 -0
- jeevesagent-0.1.0/tests/test_postgres_memory.py +201 -0
- jeevesagent-0.1.0/tests/test_redis_facts.py +241 -0
- jeevesagent-0.1.0/tests/test_redis_memory.py +176 -0
- jeevesagent-0.1.0/tests/test_resume.py +194 -0
- jeevesagent-0.1.0/tests/test_sandbox.py +268 -0
- jeevesagent-0.1.0/tests/test_smoke.py +84 -0
- jeevesagent-0.1.0/tests/test_sqlite_facts.py +272 -0
- jeevesagent-0.1.0/tests/test_sqlite_runtime.py +163 -0
- jeevesagent-0.1.0/tests/test_streaming.py +194 -0
- jeevesagent-0.1.0/tests/test_telemetry.py +292 -0
- jeevesagent-0.1.0/tests/test_tools.py +355 -0
- jeevesagent-0.1.0/tests/test_vector_memory.py +126 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
# Cancel old runs on the same PR / branch when a new push lands.
|
|
9
|
+
concurrency:
|
|
10
|
+
group: ci-${{ github.ref }}
|
|
11
|
+
cancel-in-progress: true
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
test:
|
|
15
|
+
name: test (py${{ matrix.python-version }})
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
strategy:
|
|
18
|
+
fail-fast: false
|
|
19
|
+
matrix:
|
|
20
|
+
python-version: ["3.11", "3.12"]
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@v4
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
uses: actions/setup-python@v5
|
|
27
|
+
with:
|
|
28
|
+
python-version: ${{ matrix.python-version }}
|
|
29
|
+
cache: pip
|
|
30
|
+
cache-dependency-path: pyproject.toml
|
|
31
|
+
|
|
32
|
+
- name: Install
|
|
33
|
+
run: |
|
|
34
|
+
python -m pip install --upgrade pip
|
|
35
|
+
# All extras the test suite needs. ``postgres`` /
|
|
36
|
+
# ``redis`` / ``mcp`` extras install client libs but the
|
|
37
|
+
# matching live tests stay skipped without
|
|
38
|
+
# ``JEEVES_TEST_PG_DSN`` / ``JEEVES_TEST_REDIS_URL``.
|
|
39
|
+
pip install -e '.[dev,anthropic,openai,otel,chroma,redis,postgres,mcp]'
|
|
40
|
+
|
|
41
|
+
- name: Ruff
|
|
42
|
+
run: ruff check jeevesagent tests
|
|
43
|
+
|
|
44
|
+
- name: Mypy --strict
|
|
45
|
+
run: mypy --strict jeevesagent
|
|
46
|
+
|
|
47
|
+
- name: Pytest
|
|
48
|
+
run: pytest tests/ --tb=short -v
|
|
49
|
+
|
|
50
|
+
examples:
|
|
51
|
+
name: examples (py${{ matrix.python-version }})
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
needs: test
|
|
54
|
+
strategy:
|
|
55
|
+
fail-fast: false
|
|
56
|
+
matrix:
|
|
57
|
+
python-version: ["3.12"]
|
|
58
|
+
|
|
59
|
+
steps:
|
|
60
|
+
- uses: actions/checkout@v4
|
|
61
|
+
|
|
62
|
+
- name: Set up Python
|
|
63
|
+
uses: actions/setup-python@v5
|
|
64
|
+
with:
|
|
65
|
+
python-version: ${{ matrix.python-version }}
|
|
66
|
+
cache: pip
|
|
67
|
+
cache-dependency-path: pyproject.toml
|
|
68
|
+
|
|
69
|
+
- name: Install
|
|
70
|
+
run: |
|
|
71
|
+
python -m pip install --upgrade pip
|
|
72
|
+
pip install -e '.[dev]'
|
|
73
|
+
|
|
74
|
+
- name: Run examples
|
|
75
|
+
run: |
|
|
76
|
+
set -e
|
|
77
|
+
for f in examples/0*.py; do
|
|
78
|
+
echo "=== $f ==="
|
|
79
|
+
python "$f"
|
|
80
|
+
done
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
name: Release to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
|
|
8
|
+
# Trusted publishing requires id-token: write at the job level.
|
|
9
|
+
# Configure your PyPI project to trust this workflow at:
|
|
10
|
+
# https://pypi.org/manage/account/publishing/
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
build:
|
|
14
|
+
name: Build sdist + wheel
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- name: Set up Python
|
|
20
|
+
uses: actions/setup-python@v5
|
|
21
|
+
with:
|
|
22
|
+
python-version: "3.12"
|
|
23
|
+
|
|
24
|
+
- name: Install build tools
|
|
25
|
+
run: |
|
|
26
|
+
python -m pip install --upgrade pip build
|
|
27
|
+
|
|
28
|
+
- name: Build
|
|
29
|
+
run: python -m build
|
|
30
|
+
|
|
31
|
+
- name: Upload artifact
|
|
32
|
+
uses: actions/upload-artifact@v4
|
|
33
|
+
with:
|
|
34
|
+
name: dist
|
|
35
|
+
path: dist/
|
|
36
|
+
|
|
37
|
+
publish:
|
|
38
|
+
name: Publish to PyPI
|
|
39
|
+
needs: build
|
|
40
|
+
runs-on: ubuntu-latest
|
|
41
|
+
permissions:
|
|
42
|
+
id-token: write # required for PyPI trusted publishing
|
|
43
|
+
steps:
|
|
44
|
+
- uses: actions/download-artifact@v4
|
|
45
|
+
with:
|
|
46
|
+
name: dist
|
|
47
|
+
path: dist/
|
|
48
|
+
|
|
49
|
+
- name: Publish
|
|
50
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
51
|
+
# Trusted publishing — no API token needed. Configure your
|
|
52
|
+
# PyPI project at https://pypi.org/manage/account/publishing/
|
|
53
|
+
# with ``release.yml`` as the workflow file and this job's
|
|
54
|
+
# environment.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
|
|
7
|
+
# Build artifacts
|
|
8
|
+
build/
|
|
9
|
+
dist/
|
|
10
|
+
*.egg-info/
|
|
11
|
+
*.egg
|
|
12
|
+
wheels/
|
|
13
|
+
.eggs/
|
|
14
|
+
|
|
15
|
+
# Virtualenvs
|
|
16
|
+
.venv/
|
|
17
|
+
venv/
|
|
18
|
+
env/
|
|
19
|
+
ENV/
|
|
20
|
+
|
|
21
|
+
# Caches
|
|
22
|
+
.pytest_cache/
|
|
23
|
+
.mypy_cache/
|
|
24
|
+
.ruff_cache/
|
|
25
|
+
.tox/
|
|
26
|
+
.coverage
|
|
27
|
+
.coverage.*
|
|
28
|
+
htmlcov/
|
|
29
|
+
.cache/
|
|
30
|
+
.hypothesis/
|
|
31
|
+
|
|
32
|
+
# IDE / editors
|
|
33
|
+
.idea/
|
|
34
|
+
.vscode/
|
|
35
|
+
*.swp
|
|
36
|
+
*~
|
|
37
|
+
|
|
38
|
+
# OS
|
|
39
|
+
.DS_Store
|
|
40
|
+
Thumbs.db
|
|
41
|
+
|
|
42
|
+
# Environment / secrets
|
|
43
|
+
.env
|
|
44
|
+
.env.*
|
|
45
|
+
!.env.example
|
|
46
|
+
|
|
47
|
+
# Logs / databases produced at runtime
|
|
48
|
+
*.log
|
|
49
|
+
*.db
|
|
50
|
+
*.sqlite
|
|
51
|
+
*.sqlite3
|
|
52
|
+
audit*.jsonl
|
|
53
|
+
journal*.db
|
|
54
|
+
|
|
55
|
+
# Local Claude / agent state
|
|
56
|
+
.claude/
|
|
57
|
+
|
|
58
|
+
# Mac
|
|
59
|
+
.AppleDouble
|