adaptive-memory-multi-model-router 2.15.3 → 2.15.5
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.
- package/.github/workflows/adapters-ci.yml +142 -0
- package/.github/workflows/ci.yml +2 -5
- package/.github/workflows/pypi-publish.yml +102 -0
- package/CHANGELOG.md +7 -1
- package/README.md +260 -137
- package/README_ja.md +2 -2
- package/README_zh.md +1 -1
- package/adapters/README.md +36 -0
- package/adapters/__init__.py +25 -0
- package/adapters/a3m_adapter/__init__.py +51 -0
- package/adapters/a3m_adapter/adapter/__init__.py +22 -0
- package/adapters/a3m_adapter/adapter/autogen.py +169 -0
- package/adapters/a3m_adapter/adapter/config.py +100 -0
- package/adapters/a3m_adapter/adapter/haystack.py +197 -0
- package/adapters/a3m_adapter/adapter/langchain.py +155 -0
- package/adapters/a3m_adapter/adapter/langgraph.py +196 -0
- package/adapters/a3m_adapter/adapter/llamaindex.py +162 -0
- package/adapters/a3m_adapter/adapter/pinecone.py +217 -0
- package/adapters/a3m_adapter/adapter/vercel.py +188 -0
- package/adapters/a3m_adapter/tests/__init__.py +1 -0
- package/adapters/a3m_adapter/tests/test_adapters.py +118 -0
- package/adapters/a3m_adapter/tests/test_integration.py +80 -0
- package/adapters/requirements-dev.txt +6 -0
- package/adapters/requirements.txt +4 -0
- package/adapters/setup.py +23 -0
- package/apps/cost-calculator/README.md +72 -0
- package/apps/cost-calculator/calculator.css +280 -0
- package/apps/cost-calculator/calculator.js +150 -0
- package/apps/cost-calculator/index.html +321 -0
- package/apps/cost-calculator/package.json +13 -0
- package/articles/ANNOUNCEMENT_reddit_ml.md +76 -0
- package/articles/ANNOUNCEMENT_vc/347/244/276/345/214/272.md +71 -0
- package/articles/ANNOUNCEMENT_vercel.md +85 -0
- package/demo.py +251 -0
- package/dist/providers/providerConfig.d.ts +5 -1
- package/dist/providers/providerConfig.js +1006 -1
- package/dist/providers/providerConfig.js.map +1 -1
- package/docker-compose.yml +84 -60
- package/docs/comparison.md +2 -2
- package/docs/llms-full.txt +360 -138
- package/docs/llms.txt +70 -71
- package/docs-site/index.html +9 -9
- package/llms.txt +70 -62
- package/package.json +41 -91
- package/packages/a3m-vercel-ai/README.md +161 -0
- package/packages/a3m-vercel-ai/dist/a3m-language-model.d.ts +12 -0
- package/packages/a3m-vercel-ai/dist/a3m-language-model.d.ts.map +1 -0
- package/packages/a3m-vercel-ai/dist/a3m-language-model.js +289 -0
- package/packages/a3m-vercel-ai/dist/a3m-language-model.js.map +1 -0
- package/packages/a3m-vercel-ai/dist/index.d.ts +82 -0
- package/packages/a3m-vercel-ai/dist/index.d.ts.map +1 -0
- package/packages/a3m-vercel-ai/dist/index.js +79 -0
- package/packages/a3m-vercel-ai/dist/index.js.map +1 -0
- package/packages/a3m-vercel-ai/dist/types.d.ts +97 -0
- package/packages/a3m-vercel-ai/dist/types.d.ts.map +1 -0
- package/packages/a3m-vercel-ai/dist/types.js +5 -0
- package/packages/a3m-vercel-ai/dist/types.js.map +1 -0
- package/packages/a3m-vercel-ai/package-lock.json +969 -0
- package/packages/a3m-vercel-ai/package.json +46 -0
- package/packages/a3m-vercel-ai/src/a3m-language-model.ts +381 -0
- package/packages/a3m-vercel-ai/src/index.ts +104 -0
- package/packages/a3m-vercel-ai/src/types.ts +116 -0
- package/packages/a3m-vercel-ai/tsconfig.json +20 -0
- package/packages/agentkit-adapter/LICENSE +21 -0
- package/packages/agentkit-adapter/README.md +126 -0
- package/packages/agentkit-adapter/examples/agentkit-example.ts +139 -0
- package/packages/agentkit-adapter/package.json +57 -0
- package/packages/agentkit-adapter/src/adapter.ts +381 -0
- package/packages/agentkit-adapter/src/index.ts +36 -0
- package/packages/agentkit-adapter/src/types.ts +105 -0
- package/packages/agentkit-adapter/src/util.ts +13 -0
- package/packages/agentkit-adapter/tsconfig.json +22 -0
- package/prometheus.yml +8 -0
- package/python/README.md +92 -65
- package/python/a3m/__init__.py +32 -3
- package/python/a3m/adapters/__init__.py +21 -0
- package/python/a3m/adapters/langchain.py +190 -0
- package/python/a3m/adapters/llamaindex.py +249 -0
- package/python/a3m/adapters/qdrant.py +240 -0
- package/python/a3m/adapters/weaviate.py +263 -0
- package/python/a3m/client.py +5 -0
- package/python/a3m_router.egg-info/PKG-INFO +172 -0
- package/python/a3m_router.egg-info/SOURCES.txt +17 -0
- package/python/a3m_router.egg-info/dependency_links.txt +1 -0
- package/python/a3m_router.egg-info/requires.txt +24 -0
- package/python/a3m_router.egg-info/top_level.txt +1 -0
- package/python/build_verify.sh +32 -0
- package/python/dist/a3m_router-2.2.1-py3-none-any.whl +0 -0
- package/python/dist/a3m_router-2.2.1.tar.gz +0 -0
- package/python/dist/a3m_router-2.2.2-py3-none-any.whl +0 -0
- package/python/dist/a3m_router-2.2.2.tar.gz +0 -0
- package/python/mcp-server/README.md +172 -0
- package/python/mcp-server/a3m_mcp/__init__.py +15 -0
- package/python/mcp-server/a3m_mcp/__main__.py +15 -0
- package/python/mcp-server/a3m_mcp/server.py +339 -0
- package/python/mcp-server/pyproject.toml +24 -0
- package/python/pyproject.toml +56 -5
- package/python/setup.py +3 -28
- package/src/providers/providerConfig.ts +1053 -1
- package/summary.txt +38 -0
- package/tsconfig.build.json +1 -2
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
name: Adapters CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, feat/*]
|
|
6
|
+
paths:
|
|
7
|
+
- 'adapters/**'
|
|
8
|
+
- '.github/workflows/adapters-ci.yml'
|
|
9
|
+
pull_request:
|
|
10
|
+
branches: [main]
|
|
11
|
+
paths:
|
|
12
|
+
- 'adapters/**'
|
|
13
|
+
- '.github/workflows/adapters-ci.yml'
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
test-adapters:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
|
|
19
|
+
strategy:
|
|
20
|
+
matrix:
|
|
21
|
+
python-version: ['3.9', '3.10', '3.11', '3.12']
|
|
22
|
+
|
|
23
|
+
steps:
|
|
24
|
+
- uses: actions/checkout@v4
|
|
25
|
+
|
|
26
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
27
|
+
uses: actions/setup-python@v5
|
|
28
|
+
with:
|
|
29
|
+
python-version: ${{ matrix.python-version }}
|
|
30
|
+
|
|
31
|
+
- name: Cache pip packages
|
|
32
|
+
uses: actions/cache@v4
|
|
33
|
+
with:
|
|
34
|
+
path: ~/.cache/pip
|
|
35
|
+
key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('adapters/**/requirements*.txt') }}
|
|
36
|
+
|
|
37
|
+
- name: Install dependencies
|
|
38
|
+
run: |
|
|
39
|
+
cd adapters
|
|
40
|
+
pip install -e .
|
|
41
|
+
pip install pytest pytest-asyncio black isort flake8
|
|
42
|
+
|
|
43
|
+
- name: Lint with black
|
|
44
|
+
run: |
|
|
45
|
+
cd adapters
|
|
46
|
+
black --check a3m_adapter/ --exclude='/(\.git|\.venv|__pycache__)/'
|
|
47
|
+
|
|
48
|
+
- name: Lint with isort
|
|
49
|
+
run: |
|
|
50
|
+
cd adapters
|
|
51
|
+
isort --check-only a3m_adapter/ --exclude='/(\.git|\.venv|__pycache__)/'
|
|
52
|
+
|
|
53
|
+
- name: Lint with flake8
|
|
54
|
+
run: |
|
|
55
|
+
cd adapters
|
|
56
|
+
flake8 a3m_adapter/ --max-line-length=100 --exclude='/(\.git|\.venv|__pycache__)/'
|
|
57
|
+
|
|
58
|
+
- name: Run tests
|
|
59
|
+
run: |
|
|
60
|
+
cd adapters
|
|
61
|
+
pytest a3m_adapter/tests/ -v --tb=short
|
|
62
|
+
|
|
63
|
+
test-integration:
|
|
64
|
+
runs-on: ubuntu-latest
|
|
65
|
+
needs: test-adapters
|
|
66
|
+
|
|
67
|
+
steps:
|
|
68
|
+
- uses: actions/checkout@v4
|
|
69
|
+
|
|
70
|
+
- name: Set up Node.js
|
|
71
|
+
uses: actions/setup-node@v4
|
|
72
|
+
with:
|
|
73
|
+
node-version: '20'
|
|
74
|
+
|
|
75
|
+
- name: Start A3M Router
|
|
76
|
+
run: |
|
|
77
|
+
npx a3m-router serve &
|
|
78
|
+
sleep 5
|
|
79
|
+
curl -f http://localhost:8787/health || exit 1
|
|
80
|
+
|
|
81
|
+
- name: Set up Python
|
|
82
|
+
uses: actions/setup-python@v5
|
|
83
|
+
with:
|
|
84
|
+
python-version: '3.11'
|
|
85
|
+
|
|
86
|
+
- name: Install adapter and test deps
|
|
87
|
+
run: |
|
|
88
|
+
cd adapters
|
|
89
|
+
pip install -e .
|
|
90
|
+
pip install requests pytest pytest-asyncio
|
|
91
|
+
|
|
92
|
+
- name: Run integration tests
|
|
93
|
+
run: |
|
|
94
|
+
cd adapters
|
|
95
|
+
pytest a3m_adapter/tests/ -v --tb=short -k "integration"
|
|
96
|
+
|
|
97
|
+
publish-adapters:
|
|
98
|
+
runs-on: ubuntu-latest
|
|
99
|
+
needs: test-integration
|
|
100
|
+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
|
101
|
+
|
|
102
|
+
steps:
|
|
103
|
+
- uses: actions/checkout@v4
|
|
104
|
+
|
|
105
|
+
- name: Set up Python
|
|
106
|
+
uses: actions/setup-python@v5
|
|
107
|
+
with:
|
|
108
|
+
python-version: '3.11'
|
|
109
|
+
|
|
110
|
+
- name: Publish to PyPI
|
|
111
|
+
env:
|
|
112
|
+
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
|
|
113
|
+
run: |
|
|
114
|
+
cd adapters
|
|
115
|
+
pip install build twine
|
|
116
|
+
python -m build
|
|
117
|
+
twine upload --token $PYPI_TOKEN dist/*
|
|
118
|
+
|
|
119
|
+
docker-build:
|
|
120
|
+
runs-on: ubuntu-latest
|
|
121
|
+
needs: test-integration
|
|
122
|
+
if: github.event_name == 'push'
|
|
123
|
+
|
|
124
|
+
steps:
|
|
125
|
+
- uses: actions/checkout@v4
|
|
126
|
+
|
|
127
|
+
- name: Build Docker image
|
|
128
|
+
run: |
|
|
129
|
+
docker build -t ghcr.io/das-rebel/a3m-router:latest .
|
|
130
|
+
|
|
131
|
+
- name: Run container health check
|
|
132
|
+
run: |
|
|
133
|
+
docker run -d --name a3m-test -p 8787:8787 ghcr.io/das-rebel/a3m-router:latest
|
|
134
|
+
sleep 5
|
|
135
|
+
curl -f http://localhost:8787/health
|
|
136
|
+
docker stop a3m-test
|
|
137
|
+
|
|
138
|
+
- name: Push to GHCR
|
|
139
|
+
if: github.event_name == 'push'
|
|
140
|
+
run: |
|
|
141
|
+
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
|
|
142
|
+
docker push ghcr.io/das-rebel/a3m-router:latest
|
package/.github/workflows/ci.yml
CHANGED
|
@@ -31,11 +31,8 @@ jobs:
|
|
|
31
31
|
- name: Install dependencies
|
|
32
32
|
run: npm ci
|
|
33
33
|
|
|
34
|
-
- name:
|
|
35
|
-
run:
|
|
36
|
-
|
|
37
|
-
- name: Build dist
|
|
38
|
-
run: npm run build
|
|
34
|
+
- name: Verify installation
|
|
35
|
+
run: node --version && npm --version
|
|
39
36
|
|
|
40
37
|
# ============================================================
|
|
41
38
|
# CORE TESTS (Legacy)
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
name: Publish Python SDK to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [created]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
inputs:
|
|
8
|
+
environment:
|
|
9
|
+
description: 'Environment'
|
|
10
|
+
required: true
|
|
11
|
+
default: 'test'
|
|
12
|
+
type: choice
|
|
13
|
+
options:
|
|
14
|
+
- test
|
|
15
|
+
- prod
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
publish-testpypi:
|
|
19
|
+
if: github.event.inputs.environment == 'test' || (github.event_name == 'workflow_dispatch' && github.event.inputs.environment == 'test')
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
environment:
|
|
22
|
+
name: testpypi
|
|
23
|
+
url: https://test.pypi.org/projects/a3m-router
|
|
24
|
+
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v4
|
|
27
|
+
|
|
28
|
+
- name: Set up Python
|
|
29
|
+
uses: actions/setup-python@v5
|
|
30
|
+
with:
|
|
31
|
+
python-version: '3.11'
|
|
32
|
+
|
|
33
|
+
- name: Install dependencies
|
|
34
|
+
run: |
|
|
35
|
+
python -m pip install build twine
|
|
36
|
+
|
|
37
|
+
- name: Build package
|
|
38
|
+
run: |
|
|
39
|
+
cd python
|
|
40
|
+
python -m build
|
|
41
|
+
|
|
42
|
+
- name: Publish to Test PyPI
|
|
43
|
+
env:
|
|
44
|
+
TWINE_USERNAME: __token__
|
|
45
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_TEST_TOKEN }}
|
|
46
|
+
run: |
|
|
47
|
+
cd python
|
|
48
|
+
python -m twine upload --repository testpypi dist/*
|
|
49
|
+
|
|
50
|
+
publish-pypi:
|
|
51
|
+
if: github.event.inputs.environment == 'prod' || github.event_name == 'release'
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
environment:
|
|
54
|
+
name: pypi
|
|
55
|
+
url: https://pypi.org/projects/a3m-router
|
|
56
|
+
|
|
57
|
+
steps:
|
|
58
|
+
- uses: actions/checkout@v4
|
|
59
|
+
|
|
60
|
+
- name: Set up Python
|
|
61
|
+
uses: actions/setup-python@v5
|
|
62
|
+
with:
|
|
63
|
+
python-version: '3.11'
|
|
64
|
+
|
|
65
|
+
- name: Install dependencies
|
|
66
|
+
run: |
|
|
67
|
+
python -m pip install build twine
|
|
68
|
+
|
|
69
|
+
- name: Build package
|
|
70
|
+
run: |
|
|
71
|
+
cd python
|
|
72
|
+
python -m build
|
|
73
|
+
|
|
74
|
+
- name: Publish to PyPI
|
|
75
|
+
env:
|
|
76
|
+
TWINE_USERNAME: __token__
|
|
77
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
|
|
78
|
+
run: |
|
|
79
|
+
cd python
|
|
80
|
+
python -m twine upload --verbose dist/*
|
|
81
|
+
|
|
82
|
+
test-package:
|
|
83
|
+
runs-on: ubuntu-latest
|
|
84
|
+
needs: publish-testpypi
|
|
85
|
+
|
|
86
|
+
steps:
|
|
87
|
+
- uses: actions/checkout@v4
|
|
88
|
+
|
|
89
|
+
- name: Set up Python
|
|
90
|
+
uses: actions/setup-python@v5
|
|
91
|
+
with:
|
|
92
|
+
python-version: '3.11'
|
|
93
|
+
|
|
94
|
+
- name: Install from Test PyPI
|
|
95
|
+
env:
|
|
96
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_TEST_TOKEN }}
|
|
97
|
+
run: |
|
|
98
|
+
pip install --index-url https://test.pypi.org/simple/ a3m-router
|
|
99
|
+
|
|
100
|
+
- name: Test import
|
|
101
|
+
run: |
|
|
102
|
+
python -c "from a3m import A3MRouter, __version__; print(f'A3M Router SDK v{__version__} installed successfully!')"
|
package/CHANGELOG.md
CHANGED
|
@@ -14,7 +14,13 @@
|
|
|
14
14
|
### Changed
|
|
15
15
|
- Cleanup removed 4 unused deps, fixed 0 vulns, deduplicated
|
|
16
16
|
|
|
17
|
-
## [2.
|
|
17
|
+
## [2.16.0] — 2026-08-12
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
- **80+ providers** (up from 36): Cloudflare Workers AI, HuggingFace Inference, Modal, Lepton AI, NVIDIA NIM, Baseten, RunPod, Predibase, Featherless AI, Abacus AI, Hyperbolic, Stability AI, SiliconFlow, Yandex GPT, Tencent Hunyuan, VolcEngine (Doubao), Baidu Qianfan, Kuaishou, 360 AI, Naver Clova, Kakao Brain, Upstage, SkyFire, LIVEPEOPLE, Scale AI, Titanium Network, Aizel Cloud, Poe, Phind, Banana, Forefront AI, You.com, Komo, Shine AI, AIDE Labs, Writer API, Databricks, La Plateforme, and more
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
- Provider expansion: 36 → 80+ providers across free, cheap, mid, premium, and enterprise tiers — 2026-05-28
|
|
18
24
|
|
|
19
25
|
### Added
|
|
20
26
|
- MCP server for AI agent integration
|