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.
Files changed (100) hide show
  1. jeevesagent-0.1.0/.github/workflows/ci.yml +80 -0
  2. jeevesagent-0.1.0/.github/workflows/release.yml +54 -0
  3. jeevesagent-0.1.0/.gitignore +59 -0
  4. jeevesagent-0.1.0/BUILD_LOG.md +1372 -0
  5. jeevesagent-0.1.0/CHANGELOG.md +69 -0
  6. jeevesagent-0.1.0/LICENSE +201 -0
  7. jeevesagent-0.1.0/PKG-INFO +247 -0
  8. jeevesagent-0.1.0/README.md +204 -0
  9. jeevesagent-0.1.0/docs/architecture.md +243 -0
  10. jeevesagent-0.1.0/docs/quickstart.md +486 -0
  11. jeevesagent-0.1.0/docs/recipes.md +378 -0
  12. jeevesagent-0.1.0/examples/00_hello.py +30 -0
  13. jeevesagent-0.1.0/examples/01_real_model.py +44 -0
  14. jeevesagent-0.1.0/examples/02_tools_parallel.py +70 -0
  15. jeevesagent-0.1.0/examples/03_streaming.py +59 -0
  16. jeevesagent-0.1.0/examples/04_facts.py +105 -0
  17. jeevesagent-0.1.0/examples/05_durable.py +58 -0
  18. jeevesagent-0.1.0/examples/06_production.py +121 -0
  19. jeevesagent-0.1.0/examples/README.md +45 -0
  20. jeevesagent-0.1.0/jeevesagent/__init__.py +194 -0
  21. jeevesagent-0.1.0/jeevesagent/agent/__init__.py +5 -0
  22. jeevesagent-0.1.0/jeevesagent/agent/api.py +668 -0
  23. jeevesagent-0.1.0/jeevesagent/core/__init__.py +104 -0
  24. jeevesagent-0.1.0/jeevesagent/core/errors.py +64 -0
  25. jeevesagent-0.1.0/jeevesagent/core/ids.py +45 -0
  26. jeevesagent-0.1.0/jeevesagent/core/protocols.py +249 -0
  27. jeevesagent-0.1.0/jeevesagent/core/types.py +415 -0
  28. jeevesagent-0.1.0/jeevesagent/data/__init__.py +25 -0
  29. jeevesagent-0.1.0/jeevesagent/data/lineage.py +163 -0
  30. jeevesagent-0.1.0/jeevesagent/governance/__init__.py +5 -0
  31. jeevesagent-0.1.0/jeevesagent/governance/budget.py +107 -0
  32. jeevesagent-0.1.0/jeevesagent/jeeves/__init__.py +34 -0
  33. jeevesagent-0.1.0/jeevesagent/jeeves/client.py +170 -0
  34. jeevesagent-0.1.0/jeevesagent/mcp/__init__.py +21 -0
  35. jeevesagent-0.1.0/jeevesagent/mcp/client.py +171 -0
  36. jeevesagent-0.1.0/jeevesagent/mcp/registry.py +213 -0
  37. jeevesagent-0.1.0/jeevesagent/mcp/spec.py +69 -0
  38. jeevesagent-0.1.0/jeevesagent/memory/__init__.py +52 -0
  39. jeevesagent-0.1.0/jeevesagent/memory/_embedding_util.py +30 -0
  40. jeevesagent-0.1.0/jeevesagent/memory/chroma.py +318 -0
  41. jeevesagent-0.1.0/jeevesagent/memory/chroma_facts.py +351 -0
  42. jeevesagent-0.1.0/jeevesagent/memory/consolidator.py +146 -0
  43. jeevesagent-0.1.0/jeevesagent/memory/embedder.py +123 -0
  44. jeevesagent-0.1.0/jeevesagent/memory/facts.py +347 -0
  45. jeevesagent-0.1.0/jeevesagent/memory/inmemory.py +137 -0
  46. jeevesagent-0.1.0/jeevesagent/memory/postgres.py +340 -0
  47. jeevesagent-0.1.0/jeevesagent/memory/postgres_facts.py +351 -0
  48. jeevesagent-0.1.0/jeevesagent/memory/redis.py +437 -0
  49. jeevesagent-0.1.0/jeevesagent/memory/redis_facts.py +312 -0
  50. jeevesagent-0.1.0/jeevesagent/memory/sqlite_facts.py +392 -0
  51. jeevesagent-0.1.0/jeevesagent/memory/vector.py +207 -0
  52. jeevesagent-0.1.0/jeevesagent/model/__init__.py +25 -0
  53. jeevesagent-0.1.0/jeevesagent/model/anthropic.py +232 -0
  54. jeevesagent-0.1.0/jeevesagent/model/echo.py +70 -0
  55. jeevesagent-0.1.0/jeevesagent/model/openai.py +205 -0
  56. jeevesagent-0.1.0/jeevesagent/model/scripted.py +70 -0
  57. jeevesagent-0.1.0/jeevesagent/observability/__init__.py +9 -0
  58. jeevesagent-0.1.0/jeevesagent/observability/tracing.py +115 -0
  59. jeevesagent-0.1.0/jeevesagent/runtime/__init__.py +34 -0
  60. jeevesagent-0.1.0/jeevesagent/runtime/inproc.py +63 -0
  61. jeevesagent-0.1.0/jeevesagent/runtime/journal.py +263 -0
  62. jeevesagent-0.1.0/jeevesagent/runtime/journaled.py +137 -0
  63. jeevesagent-0.1.0/jeevesagent/runtime/sqlite.py +34 -0
  64. jeevesagent-0.1.0/jeevesagent/security/__init__.py +21 -0
  65. jeevesagent-0.1.0/jeevesagent/security/audit.py +303 -0
  66. jeevesagent-0.1.0/jeevesagent/security/hooks.py +74 -0
  67. jeevesagent-0.1.0/jeevesagent/security/permissions.py +79 -0
  68. jeevesagent-0.1.0/jeevesagent/security/sandbox/__init__.py +25 -0
  69. jeevesagent-0.1.0/jeevesagent/security/sandbox/base.py +42 -0
  70. jeevesagent-0.1.0/jeevesagent/security/sandbox/filesystem.py +140 -0
  71. jeevesagent-0.1.0/jeevesagent/tools/__init__.py +10 -0
  72. jeevesagent-0.1.0/jeevesagent/tools/registry.py +193 -0
  73. jeevesagent-0.1.0/project.md +2115 -0
  74. jeevesagent-0.1.0/pyproject.toml +81 -0
  75. jeevesagent-0.1.0/tests/__init__.py +0 -0
  76. jeevesagent-0.1.0/tests/conftest.py +8 -0
  77. jeevesagent-0.1.0/tests/test_anthropic.py +220 -0
  78. jeevesagent-0.1.0/tests/test_audit.py +208 -0
  79. jeevesagent-0.1.0/tests/test_chroma_facts.py +222 -0
  80. jeevesagent-0.1.0/tests/test_chroma_memory.py +79 -0
  81. jeevesagent-0.1.0/tests/test_embedder.py +119 -0
  82. jeevesagent-0.1.0/tests/test_facts.py +598 -0
  83. jeevesagent-0.1.0/tests/test_jeeves.py +277 -0
  84. jeevesagent-0.1.0/tests/test_journaled_runtime.py +275 -0
  85. jeevesagent-0.1.0/tests/test_lineage.py +147 -0
  86. jeevesagent-0.1.0/tests/test_mcp.py +316 -0
  87. jeevesagent-0.1.0/tests/test_openai.py +300 -0
  88. jeevesagent-0.1.0/tests/test_postgres_facts.py +292 -0
  89. jeevesagent-0.1.0/tests/test_postgres_memory.py +201 -0
  90. jeevesagent-0.1.0/tests/test_redis_facts.py +241 -0
  91. jeevesagent-0.1.0/tests/test_redis_memory.py +176 -0
  92. jeevesagent-0.1.0/tests/test_resume.py +194 -0
  93. jeevesagent-0.1.0/tests/test_sandbox.py +268 -0
  94. jeevesagent-0.1.0/tests/test_smoke.py +84 -0
  95. jeevesagent-0.1.0/tests/test_sqlite_facts.py +272 -0
  96. jeevesagent-0.1.0/tests/test_sqlite_runtime.py +163 -0
  97. jeevesagent-0.1.0/tests/test_streaming.py +194 -0
  98. jeevesagent-0.1.0/tests/test_telemetry.py +292 -0
  99. jeevesagent-0.1.0/tests/test_tools.py +355 -0
  100. 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