adaptive-memory-multi-model-router 2.15.4 → 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 (173) 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/AGENT_COUNCIL_FINDINGS.md +123 -98
  5. package/CAMPAIGN_SUMMARY.md +87 -0
  6. package/CHANGELOG.md +7 -1
  7. package/ENTERPRISE_INTEGRATIONS.md +94 -0
  8. package/INTEGRATION_PROGRESS.md +96 -0
  9. package/OPPORTUNITIES_100.md +277 -0
  10. package/POPULARITY_BOOSTERS.md +1 -1
  11. package/README.md +137 -142
  12. package/README_ja.md +17 -21
  13. package/README_zh.md +13 -17
  14. package/TODO_BROWSER_AUTOMATION.md +87 -0
  15. package/a3m-integrations-summary.md +73 -0
  16. package/adapters/a3m_adapter/__init__.py +39 -3
  17. package/adapters/a3m_adapter/adapter/__init__.py +16 -1
  18. package/adapters/a3m_adapter/adapter/autogen.py +169 -0
  19. package/adapters/a3m_adapter/adapter/haystack.py +197 -0
  20. package/adapters/a3m_adapter/adapter/langgraph.py +196 -0
  21. package/adapters/a3m_adapter/adapter/pinecone.py +217 -0
  22. package/adapters/a3m_adapter/adapter/vercel.py +188 -0
  23. package/adapters/a3m_adapter/tests/test_adapters.py +29 -31
  24. package/adapters/a3m_adapter/tests/test_integration.py +80 -0
  25. package/adapters/requirements-dev.txt +6 -0
  26. package/adapters/requirements.txt +4 -0
  27. package/apps/cost-calculator/README.md +72 -0
  28. package/apps/cost-calculator/calculator.css +280 -0
  29. package/apps/cost-calculator/calculator.js +150 -0
  30. package/apps/cost-calculator/index.html +321 -0
  31. package/apps/cost-calculator/package.json +13 -0
  32. package/articles/ANNOUNCEMENT_reddit_ml.md +76 -0
  33. package/articles/ANNOUNCEMENT_vc/347/244/276/345/214/272.md +71 -0
  34. package/articles/ANNOUNCEMENT_vercel.md +85 -0
  35. package/articles/CHINESE_DIRECTORIES.md +2 -2
  36. package/articles/CHINESE_SUBMISSIONS_READY.md +5 -5
  37. package/articles/HN_POST_READY.md +16 -20
  38. package/articles/INDIEHACKERS_READY.md +19 -34
  39. package/demo.py +251 -0
  40. package/dist/analytics/costAnalytics.d.ts +0 -1
  41. package/dist/benchmark/reproducible.d.ts +0 -1
  42. package/dist/cache/semanticCache.d.ts +0 -1
  43. package/dist/cost/budgetEnforcer.d.ts +0 -1
  44. package/dist/cost/costTracker.d.ts +0 -1
  45. package/dist/ensemble/multiRoundDialog.d.ts +0 -1
  46. package/dist/ensemble/shapleyValue.d.ts +0 -1
  47. package/dist/ensemble.d.ts +0 -1
  48. package/dist/index.d.ts +0 -1
  49. package/dist/integrations/oauth.d.ts +0 -1
  50. package/dist/integrations/scienceAdapter.d.ts +0 -1
  51. package/dist/memory/autoFetch.d.ts +0 -1
  52. package/dist/memory/hybridMemory.d.ts +0 -1
  53. package/dist/memory/memoryTree.d.ts +0 -1
  54. package/dist/memory/obsidianVault.d.ts +0 -1
  55. package/dist/memory/reasoningBank.d.ts +0 -1
  56. package/dist/observability/changeWatch.d.ts +0 -1
  57. package/dist/observability/fatigueDetector.d.ts +0 -1
  58. package/dist/observability/index.d.ts +0 -1
  59. package/dist/observability/metrics.d.ts +0 -1
  60. package/dist/observability/middleware.d.ts +0 -1
  61. package/dist/observability/tracer.d.ts +0 -1
  62. package/dist/observability/types.d.ts +0 -1
  63. package/dist/providers/providerConfig.d.ts +5 -2
  64. package/dist/providers/providerConfig.js +1006 -1
  65. package/dist/providers/providerConfig.js.map +1 -1
  66. package/dist/routing/advancedRouter.d.ts +1 -2
  67. package/dist/routing/advancedRouter.js +84 -0
  68. package/dist/routing/advancedRouter.js.map +1 -1
  69. package/dist/routing/crossModelValidation.d.ts +0 -1
  70. package/dist/routing/providerHealth.d.ts +77 -2
  71. package/dist/routing/providerHealth.js +190 -4
  72. package/dist/routing/providerHealth.js.map +1 -1
  73. package/dist/routing/providerRetry.d.ts +0 -1
  74. package/dist/routing/shadowSampler.d.ts +187 -0
  75. package/dist/routing/shadowSampler.js +306 -0
  76. package/dist/routing/shadowSampler.js.map +1 -0
  77. package/dist/sdk.d.ts +0 -1
  78. package/dist/security/guardrails.d.ts +0 -1
  79. package/dist/server/dashboard.d.ts +0 -1
  80. package/dist/server/handlers/chatHandler.d.ts +0 -1
  81. package/dist/server/handlers/completionsHandler.d.ts +0 -1
  82. package/dist/server/handlers/embeddingsHandler.d.ts +0 -1
  83. package/dist/server/handlers/healthHandler.d.ts +0 -1
  84. package/dist/server/handlers/metricsHandler.d.ts +0 -1
  85. package/dist/server/handlers/modelsHandler.d.ts +0 -1
  86. package/dist/server/metrics.d.ts +0 -1
  87. package/dist/server/modelMapper.d.ts +0 -1
  88. package/dist/server/proxyServer.d.ts +0 -1
  89. package/dist/server/router.d.ts +0 -1
  90. package/dist/server/state.d.ts +0 -1
  91. package/dist/tui/dashboard.d.ts +0 -1
  92. package/dist/utils/costUtils.d.ts +0 -1
  93. package/dist/utils/sorting.d.ts +0 -1
  94. package/dist/utils/tokenUtils.d.ts +0 -1
  95. package/docker-compose.yml +84 -60
  96. package/docs/comparison.md +2 -2
  97. package/docs/llms-full.txt +89 -0
  98. package/docs/llms.txt +25 -67
  99. package/docs-site/index.html +9 -9
  100. package/integrations/browser-use/README.md +155 -0
  101. package/integrations/browser-use/examples/form-filling.ts +179 -0
  102. package/integrations/browser-use/index.ts +145 -0
  103. package/integrations/browser-use/package.json +34 -0
  104. package/integrations/browser-use/tsconfig.json +17 -0
  105. package/integrations/mcp-browser/README.md +177 -0
  106. package/integrations/mcp-browser/package.json +38 -0
  107. package/integrations/mcp-browser/src/index.ts +297 -0
  108. package/integrations/sota-browser/README.md +191 -0
  109. package/integrations/sota-browser/package.json +34 -0
  110. package/llms-full.txt +6 -6
  111. package/llms.txt +25 -67
  112. package/package.json +34 -5
  113. package/packages/a3m-vercel-ai/README.md +161 -0
  114. package/packages/a3m-vercel-ai/dist/a3m-language-model.d.ts +12 -0
  115. package/packages/a3m-vercel-ai/dist/a3m-language-model.d.ts.map +1 -0
  116. package/packages/a3m-vercel-ai/dist/a3m-language-model.js +289 -0
  117. package/packages/a3m-vercel-ai/dist/a3m-language-model.js.map +1 -0
  118. package/packages/a3m-vercel-ai/dist/index.d.ts +82 -0
  119. package/packages/a3m-vercel-ai/dist/index.d.ts.map +1 -0
  120. package/packages/a3m-vercel-ai/dist/index.js +79 -0
  121. package/packages/a3m-vercel-ai/dist/index.js.map +1 -0
  122. package/packages/a3m-vercel-ai/dist/types.d.ts +97 -0
  123. package/packages/a3m-vercel-ai/dist/types.d.ts.map +1 -0
  124. package/packages/a3m-vercel-ai/dist/types.js +5 -0
  125. package/packages/a3m-vercel-ai/dist/types.js.map +1 -0
  126. package/packages/a3m-vercel-ai/package-lock.json +969 -0
  127. package/packages/a3m-vercel-ai/package.json +46 -0
  128. package/packages/a3m-vercel-ai/src/a3m-language-model.ts +381 -0
  129. package/packages/a3m-vercel-ai/src/index.ts +104 -0
  130. package/packages/a3m-vercel-ai/src/types.ts +116 -0
  131. package/packages/a3m-vercel-ai/tsconfig.json +20 -0
  132. package/packages/agentkit-adapter/LICENSE +21 -0
  133. package/packages/agentkit-adapter/README.md +126 -0
  134. package/packages/agentkit-adapter/examples/agentkit-example.ts +139 -0
  135. package/packages/agentkit-adapter/package.json +57 -0
  136. package/packages/agentkit-adapter/src/adapter.ts +381 -0
  137. package/packages/agentkit-adapter/src/index.ts +36 -0
  138. package/packages/agentkit-adapter/src/types.ts +105 -0
  139. package/packages/agentkit-adapter/src/util.ts +13 -0
  140. package/packages/agentkit-adapter/tsconfig.json +22 -0
  141. package/prometheus.yml +8 -0
  142. package/python/README.md +92 -65
  143. package/python/a3m/__init__.py +32 -3
  144. package/python/a3m/adapters/__init__.py +21 -0
  145. package/python/a3m/adapters/langchain.py +190 -0
  146. package/python/a3m/adapters/llamaindex.py +249 -0
  147. package/python/a3m/adapters/qdrant.py +240 -0
  148. package/python/a3m/adapters/weaviate.py +263 -0
  149. package/python/a3m/client.py +5 -0
  150. package/python/a3m_router.egg-info/PKG-INFO +172 -0
  151. package/python/a3m_router.egg-info/SOURCES.txt +17 -0
  152. package/python/a3m_router.egg-info/dependency_links.txt +1 -0
  153. package/python/a3m_router.egg-info/requires.txt +24 -0
  154. package/python/a3m_router.egg-info/top_level.txt +1 -0
  155. package/python/build_verify.sh +32 -0
  156. package/python/dist/a3m_router-2.2.1-py3-none-any.whl +0 -0
  157. package/python/dist/a3m_router-2.2.1.tar.gz +0 -0
  158. package/python/dist/a3m_router-2.2.2-py3-none-any.whl +0 -0
  159. package/python/dist/a3m_router-2.2.2.tar.gz +0 -0
  160. package/python/mcp-server/README.md +172 -0
  161. package/python/mcp-server/a3m_mcp/__init__.py +15 -0
  162. package/python/mcp-server/a3m_mcp/__main__.py +15 -0
  163. package/python/mcp-server/a3m_mcp/server.py +339 -0
  164. package/python/mcp-server/pyproject.toml +24 -0
  165. package/python/pyproject.toml +56 -5
  166. package/python/setup.py +3 -28
  167. package/src/providers/providerConfig.ts +1053 -1
  168. package/summary.txt +38 -0
  169. package/tsconfig.build.json +1 -2
  170. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -94
  171. package/.github/ISSUE_TEMPLATE/config.yml +0 -17
  172. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -71
  173. package/.well-known/ai-plugin.json +0 -16
package/summary.txt ADDED
@@ -0,0 +1,38 @@
1
+ ## A3M Router Integration Status (2026-08-04)
2
+
3
+ ### ✅ COMPLETED
4
+ - CrewAI PR #1: MERGED (June 3, 2026) - A3M Router support added to CrewAI
5
+ - Created 18+ A3M integration repos:
6
+ - browser-use (108k stars)
7
+ - a3m-llamaindex, a3m-cursor-mcp, a3m-salesforce, a3m-hubspot, a3m-github-copilot
8
+ - a3m-vercel-ai (npm published v0.1.0)
9
+ - a3m-llamaindex, a3m-cursor-mcp, a3m-autogen, a3m-google-workspace, a3m-vercel-ai
10
+ - Updated README and PRs to remove RouterArena rank claims
11
+ - Created 100+ integration opportunities list
12
+
13
+ ### 🔴 IN PROGRESS
14
+ 1. **browser-use PR #5378**:
15
+ - Status: OPEN
16
+ - Issue: CLA not signed (author email not linked to GitHub)
17
+ - Action: Sign CLA, fix commit author, push to main branch
18
+
19
+ 2. **CrewAI PR #6794**:
20
+ - Status: OPEN with 2 reviews
21
+ - Need to address remaining review comments
22
+ - Already implemented all requested changes from review
23
+
24
+ 3. **n8n Community Node**
25
+ - Repo created: https://github.com/Das-rebel/n8n-nodes-a3m-router
26
+ - Files created: README, package.json, example.ts, index.ts, package.json
27
+ - Need to:
28
+ - Fix directory structure
29
+ - Add proper n8n-node CLI integration
30
+ - Push to GitHub and create PR
31
+
32
+ ### 🔜 Next Steps:
33
+ 1. Fix browser-use PR CLA issue (priority #1)
34
+ 2. Complete n8n node submission
35
+ 3. Create AutoGen/LangChain examples
36
+ 4. Target enterprise integrations (Salesforce, GitHub Copilot)
37
+
38
+ ## 🚀 Ready for next actions!
@@ -13,8 +13,7 @@
13
13
  "sourceMap": true,
14
14
  "types": ["node"],
15
15
  "resolveJsonModule": true,
16
- "moduleResolution": "node",
17
- "ignoreDeprecations": "6.0"
16
+ "moduleResolution": "node"
18
17
  },
19
18
  "include": ["src/**/*"],
20
19
  "exclude": [
@@ -1,94 +0,0 @@
1
- ---
2
- name: Bug Report
3
- about: Report a bug or unexpected behavior to help us improve A3M Router
4
- title: "[Bug] "
5
- labels: bug, needs-triage
6
- assignees: ""
7
- ---
8
-
9
- ## Description
10
-
11
- A clear and concise description of the bug.
12
-
13
- ## Reproduction Steps
14
-
15
- Steps to reproduce the behavior:
16
-
17
- ```bash
18
- # 1. Set up (if applicable)
19
- export PROVIDER_API_KEY=sk-...
20
-
21
- # 2. Run
22
- npx a3m-router route "Your query here"
23
- ```
24
-
25
- If using the SDK, provide a minimal code snippet:
26
-
27
- ```typescript
28
- import { A3MRouter } from "adaptive-memory-multi-model-router";
29
-
30
- const router = new A3MRouter({ /* your config */ });
31
- const result = await router.route("Your query");
32
- ```
33
-
34
- ## Expected Behavior
35
-
36
- What did you expect to happen?
37
-
38
- ## Actual Behavior
39
-
40
- What actually happened? Include error messages, stack traces, or unexpected output.
41
-
42
- ```
43
- Paste error output or logs here
44
- ```
45
-
46
- ## A3M Router Version
47
-
48
- - Package: `adaptive-memory-multi-model-router@<version>` (run `npm list adaptive-memory-multi-model-router`)
49
- - CLI version (if applicable): `npx a3m-router --version`
50
-
51
- ## Environment
52
-
53
- - **OS:** macOS / Linux / Windows
54
- - **Node.js version:** (run `node --version`)
55
- - **npm version:** (run `npm --version`)
56
- - **Python version (if using Python SDK):** (run `python --version`)
57
-
58
- ## Providers Used
59
-
60
- Which provider(s) were involved? (e.g., Groq, OpenAI, Anthropic, NVIDIA, DeepSeek, custom)
61
-
62
- ## Configuration
63
-
64
- Attach or describe relevant config (redact API keys):
65
-
66
- ```json
67
- {
68
- "providers": { ... },
69
- "routing": { ... },
70
- "budgets": { ... }
71
- }
72
- ```
73
-
74
- ## Logs
75
-
76
- If you ran with `DEBUG=*` or `LOG_LEVEL=debug`, include relevant log lines:
77
-
78
- ```
79
- [DEBUG] Routing query...
80
- [ERROR] Provider groq returned 503
81
- ```
82
-
83
- ## Additional Context
84
-
85
- - Does this happen consistently or intermittently?
86
- - Does it affect all providers or a specific one?
87
- - Did it work in a previous version? If so, which version?
88
- - Any recent changes to your setup?
89
-
90
- ## Checklist
91
-
92
- - [ ] I have searched existing issues for duplicates
93
- - [ ] I have redacted all API keys and secrets from the above
94
- - [ ] I can reliably reproduce this bug
@@ -1,17 +0,0 @@
1
- blank_issues_enabled: false
2
- contact_links:
3
- - name: "\U0001F4D6 Documentation & Quick Start"
4
- url: https://github.com/Das-rebel/a3m-router#readme
5
- about: Check the README for setup, SDK usage, API reference, and configuration examples
6
- - name: "\U0001F4AC Discussions & Community"
7
- url: https://github.com/Das-rebel/a3m-router/discussions
8
- about: Ask questions, share ideas, show what you've built, and get help from the community
9
- - name: "\U0001F680 NPM Package"
10
- url: https://www.npmjs.com/package/adaptive-memory-multi-model-router
11
- about: View package details, version history, and download statistics
12
- - name: "\U0001F4DC Changelog"
13
- url: https://github.com/Das-rebel/a3m-router/blob/main/CHANGELOG.md
14
- about: See what's changed in recent releases
15
- - name: "\U0001F6A8 Security"
16
- url: https://github.com/Das-rebel/a3m-router/security/policy
17
- about: Report security vulnerabilities privately
@@ -1,71 +0,0 @@
1
- ---
2
- name: Feature Request
3
- about: Suggest an idea or enhancement for A3M Router
4
- title: "[Feature] "
5
- labels: enhancement
6
- assignees: ""
7
- ---
8
-
9
- ## Problem Statement
10
-
11
- A clear description of the problem you're trying to solve. What gap or pain point does this feature address?
12
-
13
- **Example:** "Currently, A3M Router doesn't support routing based on response language. When I send multilingual queries, I want them routed to providers that perform best in that language."
14
-
15
- ## Proposed Solution
16
-
17
- Describe the feature you'd like to see. Be as specific as possible about behavior, configuration, and API.
18
-
19
- ```typescript
20
- // If applicable, sketch the API you envision
21
- const router = new A3MRouter({
22
- languageRouting: {
23
- enabled: true,
24
- defaultProvider: "openai",
25
- languageOverrides: {
26
- ja: "anthropic",
27
- zh: "deepseek",
28
- },
29
- },
30
- });
31
- ```
32
-
33
- ## Use Case
34
-
35
- Describe the real-world scenario that would benefit from this feature.
36
-
37
- - Who is the target user? (e.g., solo developer, enterprise team, researcher)
38
- - What workflow does it enable or simplify?
39
- - How frequently would this be used?
40
-
41
- ## Alternatives Considered
42
-
43
- List any workarounds or alternative approaches you've explored:
44
-
45
- 1. Manual provider selection per query
46
- 2. Custom wrapper script
47
- 3. Forking and modifying the router
48
- 4. Using a different tool altogether
49
-
50
- Explain why these are insufficient.
51
-
52
- ## Priority
53
-
54
- How important is this to you?
55
-
56
- - [ ] **Blocking** — Cannot proceed without this feature
57
- - [ ] **High** — Important for my workflow
58
- - [ ] **Medium** — Nice to have
59
- - [ ] **Low** — Interesting idea, not urgent
60
-
61
- ## Would You Implement It?
62
-
63
- - [ ] **Yes** — I can submit a PR (with guidance)
64
- - [ ] **Maybe** — Willing to help test or provide requirements
65
- - [ ] **No** — Just suggesting
66
-
67
- ## Additional Context
68
-
69
- - Links to related discussions, issues, or external references
70
- - Screenshots or mockups (if applicable)
71
- - Any constraints or requirements (e.g., must work offline, must not increase bundle size)
@@ -1,16 +0,0 @@
1
- {
2
- "schema_version": "v1",
3
- "name_for_human": "A3M Router",
4
- "name_for_model": "a3m_router",
5
- "description_for_human": "LLM routing proxy — #1 on RouterArena (0.9404 / 96.77%) at $0.0768/1K. Rule-based, no ML, 47+ providers.",
6
- "description_for_model": "A3M Router is an LLM routing service. Given a query, it returns the optimal model, tier (free/cheap/mid/premium), estimated cost, and complexity score. Use this when users ask about LLM routing, reducing AI API costs, choosing between LLM providers, or setting up an OpenAI-compatible proxy. Available as TypeScript SDK, Python SDK, CLI, and REST API. RouterArena rank #1 with 0.9404 / 96.77% at $0.0768 per 1K queries (arXiv:2510.00202).",
7
- "api": {
8
- "type": "openapi",
9
- "url": "https://das-rebel.github.io/a3m-router/docs/openapi.json"
10
- },
11
- "auth": {
12
- "type": "none"
13
- },
14
- "contact_email": "Sdas22@gmail.com",
15
- "legal_info_url": "https://github.com/Das-rebel/a3m-router/blob/main/LICENSE"
16
- }