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.
Files changed (101) hide show
  1. package/.github/workflows/adapters-ci.yml +142 -0
  2. package/.github/workflows/ci.yml +2 -5
  3. package/.github/workflows/pypi-publish.yml +102 -0
  4. package/CHANGELOG.md +7 -1
  5. package/README.md +260 -137
  6. package/README_ja.md +2 -2
  7. package/README_zh.md +1 -1
  8. package/adapters/README.md +36 -0
  9. package/adapters/__init__.py +25 -0
  10. package/adapters/a3m_adapter/__init__.py +51 -0
  11. package/adapters/a3m_adapter/adapter/__init__.py +22 -0
  12. package/adapters/a3m_adapter/adapter/autogen.py +169 -0
  13. package/adapters/a3m_adapter/adapter/config.py +100 -0
  14. package/adapters/a3m_adapter/adapter/haystack.py +197 -0
  15. package/adapters/a3m_adapter/adapter/langchain.py +155 -0
  16. package/adapters/a3m_adapter/adapter/langgraph.py +196 -0
  17. package/adapters/a3m_adapter/adapter/llamaindex.py +162 -0
  18. package/adapters/a3m_adapter/adapter/pinecone.py +217 -0
  19. package/adapters/a3m_adapter/adapter/vercel.py +188 -0
  20. package/adapters/a3m_adapter/tests/__init__.py +1 -0
  21. package/adapters/a3m_adapter/tests/test_adapters.py +118 -0
  22. package/adapters/a3m_adapter/tests/test_integration.py +80 -0
  23. package/adapters/requirements-dev.txt +6 -0
  24. package/adapters/requirements.txt +4 -0
  25. package/adapters/setup.py +23 -0
  26. package/apps/cost-calculator/README.md +72 -0
  27. package/apps/cost-calculator/calculator.css +280 -0
  28. package/apps/cost-calculator/calculator.js +150 -0
  29. package/apps/cost-calculator/index.html +321 -0
  30. package/apps/cost-calculator/package.json +13 -0
  31. package/articles/ANNOUNCEMENT_reddit_ml.md +76 -0
  32. package/articles/ANNOUNCEMENT_vc/347/244/276/345/214/272.md +71 -0
  33. package/articles/ANNOUNCEMENT_vercel.md +85 -0
  34. package/demo.py +251 -0
  35. package/dist/providers/providerConfig.d.ts +5 -1
  36. package/dist/providers/providerConfig.js +1006 -1
  37. package/dist/providers/providerConfig.js.map +1 -1
  38. package/docker-compose.yml +84 -60
  39. package/docs/comparison.md +2 -2
  40. package/docs/llms-full.txt +360 -138
  41. package/docs/llms.txt +70 -71
  42. package/docs-site/index.html +9 -9
  43. package/llms.txt +70 -62
  44. package/package.json +41 -91
  45. package/packages/a3m-vercel-ai/README.md +161 -0
  46. package/packages/a3m-vercel-ai/dist/a3m-language-model.d.ts +12 -0
  47. package/packages/a3m-vercel-ai/dist/a3m-language-model.d.ts.map +1 -0
  48. package/packages/a3m-vercel-ai/dist/a3m-language-model.js +289 -0
  49. package/packages/a3m-vercel-ai/dist/a3m-language-model.js.map +1 -0
  50. package/packages/a3m-vercel-ai/dist/index.d.ts +82 -0
  51. package/packages/a3m-vercel-ai/dist/index.d.ts.map +1 -0
  52. package/packages/a3m-vercel-ai/dist/index.js +79 -0
  53. package/packages/a3m-vercel-ai/dist/index.js.map +1 -0
  54. package/packages/a3m-vercel-ai/dist/types.d.ts +97 -0
  55. package/packages/a3m-vercel-ai/dist/types.d.ts.map +1 -0
  56. package/packages/a3m-vercel-ai/dist/types.js +5 -0
  57. package/packages/a3m-vercel-ai/dist/types.js.map +1 -0
  58. package/packages/a3m-vercel-ai/package-lock.json +969 -0
  59. package/packages/a3m-vercel-ai/package.json +46 -0
  60. package/packages/a3m-vercel-ai/src/a3m-language-model.ts +381 -0
  61. package/packages/a3m-vercel-ai/src/index.ts +104 -0
  62. package/packages/a3m-vercel-ai/src/types.ts +116 -0
  63. package/packages/a3m-vercel-ai/tsconfig.json +20 -0
  64. package/packages/agentkit-adapter/LICENSE +21 -0
  65. package/packages/agentkit-adapter/README.md +126 -0
  66. package/packages/agentkit-adapter/examples/agentkit-example.ts +139 -0
  67. package/packages/agentkit-adapter/package.json +57 -0
  68. package/packages/agentkit-adapter/src/adapter.ts +381 -0
  69. package/packages/agentkit-adapter/src/index.ts +36 -0
  70. package/packages/agentkit-adapter/src/types.ts +105 -0
  71. package/packages/agentkit-adapter/src/util.ts +13 -0
  72. package/packages/agentkit-adapter/tsconfig.json +22 -0
  73. package/prometheus.yml +8 -0
  74. package/python/README.md +92 -65
  75. package/python/a3m/__init__.py +32 -3
  76. package/python/a3m/adapters/__init__.py +21 -0
  77. package/python/a3m/adapters/langchain.py +190 -0
  78. package/python/a3m/adapters/llamaindex.py +249 -0
  79. package/python/a3m/adapters/qdrant.py +240 -0
  80. package/python/a3m/adapters/weaviate.py +263 -0
  81. package/python/a3m/client.py +5 -0
  82. package/python/a3m_router.egg-info/PKG-INFO +172 -0
  83. package/python/a3m_router.egg-info/SOURCES.txt +17 -0
  84. package/python/a3m_router.egg-info/dependency_links.txt +1 -0
  85. package/python/a3m_router.egg-info/requires.txt +24 -0
  86. package/python/a3m_router.egg-info/top_level.txt +1 -0
  87. package/python/build_verify.sh +32 -0
  88. package/python/dist/a3m_router-2.2.1-py3-none-any.whl +0 -0
  89. package/python/dist/a3m_router-2.2.1.tar.gz +0 -0
  90. package/python/dist/a3m_router-2.2.2-py3-none-any.whl +0 -0
  91. package/python/dist/a3m_router-2.2.2.tar.gz +0 -0
  92. package/python/mcp-server/README.md +172 -0
  93. package/python/mcp-server/a3m_mcp/__init__.py +15 -0
  94. package/python/mcp-server/a3m_mcp/__main__.py +15 -0
  95. package/python/mcp-server/a3m_mcp/server.py +339 -0
  96. package/python/mcp-server/pyproject.toml +24 -0
  97. package/python/pyproject.toml +56 -5
  98. package/python/setup.py +3 -28
  99. package/src/providers/providerConfig.ts +1053 -1
  100. package/summary.txt +38 -0
  101. 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
@@ -31,11 +31,8 @@ jobs:
31
31
  - name: Install dependencies
32
32
  run: npm ci
33
33
 
34
- - name: Type check (build)
35
- run: npx tsc -p tsconfig.build.json --noEmit
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.14.0] — 2026-05-28
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