adaptive-memory-multi-model-router 2.14.48 → 2.14.51
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/.dockerignore +82 -0
- package/.env.example +303 -0
- package/.github/DISCUSSIONS_WELCOME.md +27 -0
- package/.github/DISCUSSION_TEMPLATE.yml +5 -0
- package/.github/FUNDING.yml +2 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +94 -0
- package/.github/ISSUE_TEMPLATE/config.yml +17 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +71 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +71 -0
- package/.github/dependabot.yml +9 -0
- package/.github/workflows/auto-publish.yml +51 -0
- package/.github/workflows/ci.yml +263 -0
- package/.github/workflows/codeql.yml +38 -0
- package/.github/workflows/npm-publish.yml +20 -0
- package/.github/workflows/pages.yml +37 -0
- package/.github/workflows/stale.yml +54 -0
- package/.publish-tick +1 -0
- package/.well-known/ai-plugin.json +16 -0
- package/AGENT_COUNCIL_FINDINGS.md +142 -0
- package/ARCHITECTURE.md +346 -0
- package/AUDIT_REPORT.md +28 -0
- package/CODE_OF_CONDUCT.md +128 -0
- package/CONTRIBUTING.md +50 -0
- package/CONTRIBUTORS.md +20 -0
- package/Dockerfile +53 -0
- package/Dockerfile.proxy +33 -0
- package/HEALTH_REPORT.md +118 -0
- package/IMPROVEMENT_PLAN.md +107 -0
- package/LANDING.md +43 -0
- package/LAUNCH-PAIN-DRIVEN.md +339 -0
- package/LAUNCH.md +337 -0
- package/LAUNCH_CHECKLIST.md +141 -0
- package/LAUNCH_SNAPSHOT.md +260 -0
- package/MANIFESTO.md +41 -0
- package/POPULARITY_BOOSTERS.md +285 -0
- package/PR_STATUS_REPORT.md +148 -0
- package/README.md +10 -0
- package/REDESIGN.md +95 -0
- package/RUNKIT.md +83 -0
- package/SECURITY.md +29 -0
- package/SUBMISSIONS.md +43 -0
- package/_schema.html +53 -0
- package/ai-plugin.json +16 -0
- package/articles/AI_AGENT_LLM_ROUTING.md +150 -0
- package/articles/CHINESE_DIRECTORIES.md +100 -0
- package/articles/CHINESE_SUBMISSIONS_READY.md +322 -0
- package/articles/COMPETITOR_ALERTS.md +31 -0
- package/articles/COMPLETE_POSTING_DIRECTORY.md +147 -0
- package/articles/CONTENT_STRUCTURE.md +292 -0
- package/articles/DEVTO_COST_GUIDE.md +473 -0
- package/articles/DEVTO_FINAL.md +416 -0
- package/articles/DEVTO_MULTI_PROVIDER.md +542 -0
- package/articles/DEVTO_READY.md +255 -0
- package/articles/DEVTO_V2_ANNOUNCEMENT.md +160 -0
- package/articles/DEVTO_VIRAL_GROWTH.md +280 -0
- package/articles/FRESH_devto.md +460 -0
- package/articles/FRESH_devto_2026_05.md +73 -0
- package/articles/FRESH_hackernews.md +14 -0
- package/articles/FRESH_reddit_ml.md +90 -0
- package/articles/FRESH_reddit_node.md +198 -0
- package/articles/FRESH_reddit_sideproject.md +72 -0
- package/articles/FRESH_reddit_webdev.md +130 -0
- package/articles/FROM_ZERO_TO_10K.md +107 -0
- package/articles/HN_10X_BETTER.md +430 -0
- package/articles/HN_ACCOUNT_GUIDE.md +21 -0
- package/articles/HN_CHINESE_STYLE.md +308 -0
- package/articles/HN_FINAL.md +148 -0
- package/articles/HN_POSTED_VERSION.md +56 -0
- package/articles/HN_POST_READY.md +137 -0
- package/articles/HN_RESEARCH.md +364 -0
- package/articles/HN_SHOW_routerarena.md +17 -0
- package/articles/HN_TIMING_GUIDE.md +52 -0
- package/articles/INDIEHACKERS_POST.md +52 -0
- package/articles/INDIEHACKERS_READY.md +120 -0
- package/articles/LLM_BENCHMARK_DEEP_DIVE.md +153 -0
- package/articles/MASTER_POSTING_DIRECTORY.md +189 -0
- package/articles/NEWSLETTER_SEND_NOW.md +259 -0
- package/articles/NEWSLETTER_SUBMISSIONS.md +112 -0
- package/articles/PAIN-DRIVEN-devto-v2.md +308 -0
- package/articles/PAIN-DRIVEN-devto-v3.md +268 -0
- package/articles/PAIN-DRIVEN-devto.md +242 -0
- package/articles/PAIN-DRIVEN-hackernews-v2.md +138 -0
- package/articles/PAIN-DRIVEN-hackernews-v3.md +151 -0
- package/articles/PAIN-DRIVEN-hackernews.md +131 -0
- package/articles/PAIN-DRIVEN-reddit-v2.md +301 -0
- package/articles/PAIN-DRIVEN-reddit-v3.md +236 -0
- package/articles/PAIN-DRIVEN-reddit.md +218 -0
- package/articles/PAIN-DRIVEN-twitter-v2.md +110 -0
- package/articles/PAIN-DRIVEN-twitter-v3.md +121 -0
- package/articles/PAIN-DRIVEN-twitter.md +120 -0
- package/articles/PORTKEY_VS_A3M.md +147 -0
- package/articles/POSTING_KIT_2026_05.md +67 -0
- package/articles/PRESS_KIT_routerarena.md +77 -0
- package/articles/PRODUCTHUNT_LISTING.md +48 -0
- package/articles/PRODUCTHUNT_READY.md +106 -0
- package/articles/PR_PLAN_vault.md +125 -0
- package/articles/REDDIT_FINAL.md +232 -0
- package/articles/REDDIT_POST.md +67 -0
- package/articles/REDDIT_SUBMISSION_READY.md +348 -0
- package/articles/ROUTERARENA_LEADER.md +45 -0
- package/articles/SHOW_HN_FINAL.md +29 -0
- package/articles/TWEETS_10K_DOWNLOADS.md +47 -0
- package/articles/TWEETS_BENCHMARK_FIRST.md +46 -0
- package/articles/TWEETS_MCP_PLAY.md +51 -0
- package/articles/TWEETS_SEQUENTIAL_BROKEN.md +49 -0
- package/articles/TWEETS_WHY_BUILD.md +54 -0
- package/articles/TWEETS_routerarena_leader.md +53 -0
- package/articles/TWEET_STORM_READY.md +165 -0
- package/articles/TWITTER_FINAL.md +167 -0
- package/articles/WHY_10X_BETTER.md +261 -0
- package/articles/WHY_CHINESE_STYLE_BETTER.md +323 -0
- package/articles/ai-discoverability-llm-routing.md +210 -0
- package/articles/devto-llm-routing.md +138 -0
- package/articles/hackernews-show-hn.md +54 -0
- package/articles/hashnode-llm-cost-optimization.md +125 -0
- package/articles/hn_show_2026_05.md +11 -0
- package/articles/medium-building-llm-router.md +205 -0
- package/articles/reddit-ml.md +76 -0
- package/articles/twitter-thread-cost-savings.md +50 -0
- package/articles/youtube-tutorial-script.md +262 -0
- package/assets/a3m_3blue1brown.mp4 +0 -0
- package/assets/banner.svg +109 -0
- package/assets/chart-cost-v2.svg +91 -0
- package/assets/chart-cost-v3.svg +143 -0
- package/assets/chart-features-v2.svg +132 -0
- package/assets/chart-features-v3.svg +211 -0
- package/assets/chart-growth-v2.svg +122 -0
- package/assets/chart-growth-v3.svg +189 -0
- package/assets/cost-comparison.svg +134 -0
- package/assets/cost-simple.svg +64 -0
- package/assets/demo-hn.gif +0 -0
- package/assets/feature-matrix.svg +136 -0
- package/assets/growth-chart-animated.svg +76 -0
- package/assets/growth-chart.svg +82 -0
- package/assets/growth-simple.svg +69 -0
- package/assets/hero-diagram.svg +81 -0
- package/assets/logo-new.svg +21 -0
- package/assets/logo.svg +68 -0
- package/assets/provider-comparison.svg +121 -0
- package/assets/social-preview-new.svg +100 -0
- package/assets/social-preview.svg +194 -0
- package/assets/social-v2.svg +130 -0
- package/assets/social-v3.svg +212 -0
- package/benchmark-provider-results.json +245 -0
- package/benchmark-results.json +54 -0
- package/council-votes/architecture-vote.md +121 -0
- package/council-votes/coverage-vote.md +93 -0
- package/data/adaptive-benchmark.json +92 -0
- package/data/benchmark-results.json +47 -0
- package/data/labeled-benchmark.json +88 -0
- package/demo/3blue1brown_video.py +285 -0
- package/demo/3blue1brown_video_v2.py +310 -0
- package/demo/IMPROVED_PROMPTS.md +229 -0
- package/demo/VEO3_PROMPTS.md +269 -0
- package/demo/VIDEO_PRODUCTION_GUIDE.md +333 -0
- package/demo/a3m_3blue1brown.mp4 +0 -0
- package/demo/asciinema-demo.sh +195 -0
- package/demo/demo-hn.tape +74 -0
- package/demo/demo-script.md +53 -0
- package/demo/demo-script.sh +62 -0
- package/demo/demo.svg +75 -0
- package/demo/frame1_ai_data_center.png +0 -0
- package/demo/frame1_sunset_video.mp4 +0 -0
- package/demo/frame2_cost_comparison.png +0 -0
- package/demo/frame2_cost_comparison_fallback.png +0 -0
- package/demo/frame3_parallel_execution.png +0 -0
- package/demo/frame3_parallel_execution_fallback.png +0 -0
- package/demo/frame4_providers.png +0 -0
- package/demo/frame4_providers_fallback.png +0 -0
- package/demo/frame5_endcard.png +0 -0
- package/demo/frame5_endcard_fallback.png +0 -0
- package/demo/new_frame1_hook.png +0 -0
- package/demo/new_frame2_proof.png +0 -0
- package/demo/new_frame3_wow.png +0 -0
- package/demo/new_frame4_social.png +0 -0
- package/demo/new_frame5_cta.png +0 -0
- package/demo/package.json +13 -0
- package/demo/product-video-final.mp4 +0 -0
- package/demo/product-video-hype-v1.mp4 +0 -0
- package/demo/product-video-v1.mp4 +0 -0
- package/demo/public/index.html +762 -0
- package/demo/recording.cast +55 -0
- package/demo/server.js +405 -0
- package/demo-new.tape +71 -0
- package/demo-real.sh +198 -0
- package/demo-simple.tape +205 -0
- package/demo.html +520 -0
- package/demo.sh +85 -0
- package/demo.tape +259 -0
- package/dist/analytics/costAnalytics.d.ts.map +1 -0
- package/dist/analytics/costAnalytics.js.map +1 -0
- package/dist/benchmark/comprehensive.js.map +1 -0
- package/dist/benchmark/reproducible.d.ts.map +1 -0
- package/dist/benchmark/reproducible.js.map +1 -0
- package/dist/cache/prefixCache.d.ts.map +1 -0
- package/dist/cache/prefixCache.js.map +1 -0
- package/dist/cache/responseCache.d.ts.map +1 -0
- package/dist/cache/responseCache.js.map +1 -0
- package/dist/cache/semanticCache.d.ts.map +1 -0
- package/dist/cache/semanticCache.js.map +1 -0
- package/dist/cli/setupWizard.d.ts.map +1 -0
- package/dist/cli/setupWizard.js.map +1 -0
- package/dist/cost/budgetEnforcer.d.ts.map +1 -0
- package/dist/cost/budgetEnforcer.js.map +1 -0
- package/dist/cost/costTracker.d.ts.map +1 -0
- package/dist/cost/costTracker.js.map +1 -0
- package/dist/ensemble/multiRoundDialog.js.map +1 -0
- package/dist/ensemble/shapleyValue.js.map +1 -0
- package/dist/integrations/langchainAdapter.d.ts.map +1 -0
- package/dist/integrations/langchainAdapter.js.map +1 -0
- package/dist/integrations/oauth.d.ts.map +1 -0
- package/dist/integrations/oauth.js.map +1 -0
- package/dist/integrations/scienceAdapter.js.map +1 -0
- package/dist/memory/autoFetch.d.ts.map +1 -0
- package/dist/memory/autoFetch.js.map +1 -0
- package/dist/memory/episodicMemory.d.ts.map +1 -0
- package/dist/memory/episodicMemory.js.map +1 -0
- package/dist/memory/hybridMemory.js.map +1 -0
- package/dist/memory/memoryTree.d.ts.map +1 -0
- package/dist/memory/memoryTree.js.map +1 -0
- package/dist/memory/obsidianVault.d.ts.map +1 -0
- package/dist/memory/obsidianVault.js.map +1 -0
- package/dist/memory/reasoningBank.js.map +1 -0
- package/dist/observability/changeWatch.d.ts.map +1 -0
- package/dist/observability/changeWatch.js.map +1 -0
- package/dist/observability/fatigueDetector.d.ts.map +1 -0
- package/dist/observability/fatigueDetector.js.map +1 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/middleware.d.ts.map +1 -0
- package/dist/observability/middleware.js.map +1 -0
- package/dist/observability/tracer.d.ts.map +1 -0
- package/dist/observability/tracer.js.map +1 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/orchestration/haloOrchestrator.d.ts.map +1 -0
- package/dist/orchestration/haloOrchestrator.js.map +1 -0
- package/dist/orchestration/mctsWorkflow.d.ts.map +1 -0
- package/dist/orchestration/mctsWorkflow.js.map +1 -0
- package/dist/providers/localProvider.d.ts.map +1 -0
- package/dist/providers/localProvider.js.map +1 -0
- package/dist/providers/providerConfig.d.ts.map +1 -0
- package/dist/providers/providerConfig.js.map +1 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/routing/advancedRouter.d.ts.map +1 -0
- package/dist/routing/advancedRouter.js.map +1 -0
- package/dist/routing/crossModelValidation.d.ts.map +1 -0
- package/dist/routing/crossModelValidation.js.map +1 -0
- package/dist/routing/providerHealth.d.ts.map +1 -0
- package/dist/routing/providerHealth.js.map +1 -0
- package/dist/routing/providerRetry.d.ts.map +1 -0
- package/dist/routing/providerRetry.js.map +1 -0
- package/dist/scripts/banner.js +29 -0
- package/dist/security/guardrails.d.ts.map +1 -0
- package/dist/security/guardrails.js.map +1 -0
- package/dist/server/dashboard.d.ts.map +1 -0
- package/dist/server/dashboard.js.map +1 -0
- package/dist/server/modelMapper.d.ts.map +1 -0
- package/dist/server/modelMapper.js.map +1 -0
- package/dist/server/proxyServer.d.ts.map +1 -0
- package/dist/server/proxyServer.js.map +1 -0
- package/dist/skills/__tests__/skill_manager.test.d.ts +2 -0
- package/dist/skills/__tests__/skill_manager.test.d.ts.map +1 -0
- package/dist/skills/__tests__/skill_manager.test.js +268 -0
- package/dist/skills/__tests__/skill_manager.test.js.map +1 -0
- package/dist/tools/tmlpdTools.d.ts.map +1 -0
- package/dist/tools/tmlpdTools.js.map +1 -0
- package/dist/tui/dashboard.d.ts.map +1 -0
- package/dist/tui/dashboard.js.map +1 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/utils/batchProcessor.d.ts.map +1 -0
- package/dist/utils/batchProcessor.js.map +1 -0
- package/dist/utils/compression.d.ts.map +1 -0
- package/dist/utils/compression.js.map +1 -0
- package/dist/utils/costUtils.d.ts.map +1 -0
- package/dist/utils/costUtils.js.map +1 -0
- package/dist/utils/reliability.d.ts.map +1 -0
- package/dist/utils/reliability.js.map +1 -0
- package/dist/utils/sorting.d.ts.map +1 -0
- package/dist/utils/sorting.js.map +1 -0
- package/dist/utils/speculativeDecoding.d.ts.map +1 -0
- package/dist/utils/speculativeDecoding.js.map +1 -0
- package/dist/utils/tokenUtils.d.ts.map +1 -0
- package/dist/utils/tokenUtils.js.map +1 -0
- package/docs/.nojekyll +0 -0
- package/docs/ANALYSIS_PRINCIPLES.md +162 -0
- package/docs/API.md +855 -0
- package/docs/ARCHITECTURAL-IMPROVEMENTS-2025.md +1391 -0
- package/docs/ARCHITECTURAL-IMPROVEMENTS-REVISED-2025.md +1051 -0
- package/docs/BENCHMARK.md +170 -0
- package/docs/CHINESE_PROVIDER_RELIABILITY.md +37 -0
- package/docs/CITATIONS.md +74 -0
- package/docs/CLAIMS_AND_EVIDENCE.md +58 -0
- package/docs/CONFIGURATION.md +476 -0
- package/docs/COUNCIL_DECISION.json +816 -0
- package/docs/COUNCIL_SUMMARY.md +319 -0
- package/docs/COUNCIL_V2.2_DECISION.md +416 -0
- package/docs/ENGINEERING_SPEC.md +55 -0
- package/docs/FACTORY_RESET.md +34 -0
- package/docs/GEO.md +66 -0
- package/docs/GEO_OPTIMIZATION.md +30 -0
- package/docs/GEO_ROOT_CAUSE.md +136 -0
- package/docs/GEO_STATUS.md +85 -0
- package/docs/GEO_TEST_RESULTS.md +176 -0
- package/docs/HN_CHECKLIST.md +38 -0
- package/docs/HN_FOUNDER_COMMENT.md +17 -0
- package/docs/HN_SUBMISSION_FINAL.md +180 -0
- package/docs/HN_SUBMISSION_V3.md +56 -0
- package/docs/IMPROVEMENT_ROADMAP.md +515 -0
- package/docs/INTEGRATIONS.md +420 -0
- package/docs/LANGCHAIN_INTEGRATION.md +147 -0
- package/docs/LLM_COUNCIL_DECISION.md +508 -0
- package/docs/MIDDLEWARE_CHAIN.md +35 -0
- package/docs/PROMO_CHECKLIST.md +200 -0
- package/docs/QUICKSTART.md +271 -0
- package/docs/QUICK_START.md +43 -0
- package/docs/QUICK_START_VISIBILITY.md +782 -0
- package/docs/REDDIT_GAP_ANALYSIS.md +299 -0
- package/docs/RELEASE_CHECKLIST.md +32 -0
- package/docs/REPRODUCIBILITY.md +63 -0
- package/docs/RESEARCH_BACKED_IMPROVEMENTS.md +1180 -0
- package/docs/ROUTING_RUBRIC.md +197 -0
- package/docs/SEO_AUDIT.md +186 -0
- package/docs/SOCIAL_LISTENING.md +219 -0
- package/docs/TMLPD_QNA.md +751 -0
- package/docs/TMLPD_V2.1_COMPLETE.md +763 -0
- package/docs/TMLPD_V2.2_RESEARCH_ROADMAP.md +754 -0
- package/docs/UPDATE_TOPICS.md +15 -0
- package/docs/USE_CASES.md +59 -0
- package/docs/V2.2_IMPLEMENTATION_COMPLETE.md +446 -0
- package/docs/V2_IMPLEMENTATION_GUIDE.md +388 -0
- package/docs/VERCEL_AI_SDK.md +209 -0
- package/docs/VISIBILITY_ADOPTION_PLAN.md +1005 -0
- package/docs/_config.yml +49 -0
- package/docs/ai-plugin.json +16 -0
- package/docs/api.html +513 -0
- package/docs/architecture-diagram.md +40 -0
- package/docs/benchmark-chart.png +0 -0
- package/docs/benchmark.html +387 -0
- package/docs/blog/routerarena-number-one.html +73 -0
- package/docs/cli-cheatsheet.md +339 -0
- package/docs/compare.md +109 -0
- package/docs/comparison-litellm.md +88 -0
- package/docs/comparison.md +108 -0
- package/docs/cost-chart-ascii.md +42 -0
- package/docs/cost-comparison-chart.svg +88 -0
- package/docs/curl-examples.md +247 -0
- package/docs/demo-auto.html +264 -0
- package/docs/demo.html +416 -0
- package/docs/geo/GENERATIVE_ENGINE_OPTIMIZATION.md +232 -0
- package/docs/index.html +507 -0
- package/docs/launch-content/LAUNCH_EXECUTION_CHECKLIST.md +421 -0
- package/docs/launch-content/README.md +457 -0
- package/docs/launch-content/assets/cost_comparison_100_tasks.png +0 -0
- package/docs/launch-content/assets/cumulative_savings.png +0 -0
- package/docs/launch-content/assets/parallel_speedup.png +0 -0
- package/docs/launch-content/assets/provider_pricing_comparison.png +0 -0
- package/docs/launch-content/assets/task_breakdown_comparison.png +0 -0
- package/docs/launch-content/generate_charts.py +313 -0
- package/docs/launch-content/hn_show_post.md +139 -0
- package/docs/launch-content/partner_outreach_templates.md +745 -0
- package/docs/launch-content/reddit_posts.md +467 -0
- package/docs/launch-content/twitter_thread.txt +460 -0
- package/{llms.txt.bak → docs/llms.txt} +6 -6
- package/docs/npm-downloads-chart.svg +43 -0
- package/docs/openapi.json +139 -0
- package/docs/openapi.yaml +1318 -0
- package/docs/quick-start.html +366 -0
- package/docs/robots.txt +52 -0
- package/docs/sitemap.xml +57 -0
- package/docs/styles.css +682 -0
- package/docs/well-known/ai-plugin.json +16 -0
- package/docs/wellknown/ai-plugin.json +16 -0
- package/docs-site/assets/og-banner.svg +194 -0
- package/docs-site/index.html +632 -0
- package/eval/README.md +46 -0
- package/eval/baselines/main.json +12 -0
- package/eval/benchmark_dataset.jsonl +16 -0
- package/eval/check_golden_routes.js +64 -0
- package/eval/datasets/catalog.json +33 -0
- package/eval/datasets/slices/cn_provider_reliability_v1.jsonl +3 -0
- package/eval/datasets/slices/cost_pressure_v1.jsonl +3 -0
- package/eval/datasets/slices/safety_guardrails_v1.jsonl +3 -0
- package/eval/evals.json +199 -0
- package/eval/fault_injection_thresholds.json +3 -0
- package/eval/generate_report.js +128 -0
- package/eval/golden_routes.json +114 -0
- package/eval/lib/experiment_registry.js +24 -0
- package/eval/run_eval.js +197 -0
- package/eval/run_fault_injection.js +201 -0
- package/eval/run_shadow_eval.js +85 -0
- package/eval/thresholds.json +9 -0
- package/examples/QUICKSTART.md +183 -0
- package/examples/README.md +61 -0
- package/examples/a3m-sdk.js +124 -0
- package/examples/basic-route.js +54 -0
- package/examples/chat-loop.js +202 -0
- package/examples/classify-then-route.js +102 -0
- package/examples/cost-compare.js +120 -0
- package/examples/ensemble.js +160 -0
- package/examples/whatsapp-telegram-bridge-demo.js +302 -0
- package/examples/whatsapp-telegram-bridge.js +269 -0
- package/hf-space/README.md +23 -0
- package/hf-space/app.py +240 -0
- package/hf-space/requirements.txt +1 -0
- package/huggingface_space/README.md +35 -0
- package/huggingface_space/app.py +126 -0
- package/huggingface_space/create_space.py +208 -0
- package/huggingface_space/requirements.txt +1 -0
- package/mcp-server/README.md +188 -0
- package/mcp-server/package.json +29 -0
- package/mcp-server/src/index.ts +744 -0
- package/mcp-server/tsconfig.json +19 -0
- package/openclaw-alexa-bridge/ALL_REMAINING_FIXES_PLAN.md +313 -0
- package/openclaw-alexa-bridge/REMAINING_FIXES_SUMMARY.md +277 -0
- package/openclaw-alexa-bridge/src/alexa_handler_no_tmlpd.js +1234 -0
- package/openclaw-alexa-bridge/test_fixes.js +77 -0
- package/package.json +73 -270
- package/playground/README.md +51 -0
- package/playground/codesandbox.json +12 -0
- package/playground/index.js +39 -0
- package/proxy/README.md +227 -0
- package/proxy/package-lock.json +831 -0
- package/proxy/package.json +17 -0
- package/proxy/rate-limit.js +145 -0
- package/proxy/rate-limit.test.js +311 -0
- package/proxy/server.js +970 -0
- package/python/README.md +102 -0
- package/python/a3m/__init__.py +6 -0
- package/python/a3m/client.py +190 -0
- package/python/a3m/models.py +40 -0
- package/python/a3m/sync_client.py +61 -0
- package/python/examples.py +53 -0
- package/python/integrations.py +330 -0
- package/python/pyproject.toml +23 -0
- package/python/setup.py +28 -0
- package/python/tmlpd.py +369 -0
- package/qna/REDDIT_GAP_ANALYSIS.md +299 -0
- package/qna/TMLPD_QNA.md +751 -0
- package/research/FINDING_001_safety.md +28 -0
- package/research/FINDING_002_error_diversity.md +32 -0
- package/research/FINDING_003_confidence_weighted_voting.md +32 -0
- package/research/FINDING_004_cross_model_semantic_detection.md +37 -0
- package/research/FINDING_005_knowledge_gap_orthogonality.md +34 -0
- package/research/HALLUCINATION_RESEARCH.md +27 -0
- package/research/PUBLISH_LOG.md +3 -0
- package/research/ensemble-voting.md +324 -0
- package/research/loss-functions.md +545 -0
- package/research-log.md +49 -0
- package/scripts/banner.js +29 -0
- package/scripts/benchmark-local-routerarena.ts +176 -0
- package/scripts/benchmark.js +145 -0
- package/scripts/benchmark.sh +61 -0
- package/scripts/compare-providers.sh +230 -0
- package/scripts/content-planner.js +25 -0
- package/scripts/create-labeled-benchmark.ts +105 -0
- package/scripts/cross_post.py +443 -0
- package/scripts/local-router-benchmark.ts +154 -0
- package/scripts/post-all.sh +41 -0
- package/scripts/publish_fcc.py +106 -0
- package/scripts/push-to-gitee.sh +25 -0
- package/scripts/routerarena_ensemble.js +144 -0
- package/scripts/routing-benchmark-v2.js +373 -0
- package/scripts/routing-benchmark-v3.js +118 -0
- package/scripts/routing-benchmark.js +462 -0
- package/scripts/run-labeled-benchmark.mjs +104 -0
- package/scripts/run-mmlu-benchmark.js +176 -0
- package/scripts/run-provider-benchmark.js +244 -0
- package/scripts/update-npm-badges.js +158 -0
- package/skill/SKILL.md +238 -0
- package/src/__tests__/integration/tmpld_integration.test.py +540 -0
- package/src/skills/__tests__/skill_manager.test.ts +328 -0
- package/submissions/benchmarks/ALL_PLATFORMS_SUBMISSION.md +94 -0
- package/submissions/benchmarks/LLMROUTERBENCH_SUBMISSION.md +121 -0
- package/submissions/benchmarks/MMRBENCH_SUBMISSION.md +94 -0
- package/submissions/benchmarks/ROUTERARENA_UPDATE.md +83 -0
- package/submissions/benchmarks/ROUTERBENCH_SUBMISSION.md +225 -0
- package/test-council/1-structure-tests.test.js +353 -0
- package/test-council/1-structure-tests.test.ts +353 -0
- package/test-council/2-edge-case-tests.test.ts +361 -0
- package/test-council/3-performance-tests.test.ts +669 -0
- package/test-council/4-integration-tests.test.ts +391 -0
- package/test-council/5-agent-council-eval.test.ts +413 -0
- package/test-council/AGENT_COUNCIL_ARCHITECTURE.md +349 -0
- package/test-council/TEST_COUNCIL_REPORT.md +201 -0
- package/test-council/agents/edge-case-agent.ts +363 -0
- package/test-council/agents/performance-agent.ts +426 -0
- package/test-council/agents/structure-agent.ts +227 -0
- package/test-council/council.md +183 -0
- package/tests/__mocks__/tokenUtils.ts +8 -0
- package/tests/memory/episodicMemory.test.ts +227 -0
- package/tests/package-lock.json +1628 -0
- package/tests/package.json +18 -0
- package/tests/routing/ensembleVoting.test.ts +236 -0
- package/tests/routing/providerRetry.test.ts +360 -0
- package/tests/routing/queryTypePresets.test.ts +208 -0
- package/tests/security/guardrailEngine.test.ts +700 -0
- package/tests/tsconfig.json +21 -0
- package/tests/vitest.config.ts +18 -0
- package/tmlpd-pi-extension/README.md +66 -0
- package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts +114 -0
- package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/cache/prefixCache.js +285 -0
- package/tmlpd-pi-extension/dist/cache/prefixCache.js.map +1 -0
- package/tmlpd-pi-extension/dist/cache/responseCache.d.ts +58 -0
- package/tmlpd-pi-extension/dist/cache/responseCache.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/cache/responseCache.js +153 -0
- package/tmlpd-pi-extension/dist/cache/responseCache.js.map +1 -0
- package/tmlpd-pi-extension/dist/cli.js +59 -0
- package/tmlpd-pi-extension/dist/cost/costTracker.d.ts +95 -0
- package/tmlpd-pi-extension/dist/cost/costTracker.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/cost/costTracker.js +240 -0
- package/tmlpd-pi-extension/dist/cost/costTracker.js.map +1 -0
- package/tmlpd-pi-extension/dist/index.d.ts +723 -0
- package/tmlpd-pi-extension/dist/index.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/index.js +239 -0
- package/tmlpd-pi-extension/dist/index.js.map +1 -0
- package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts +82 -0
- package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/memory/episodicMemory.js +145 -0
- package/tmlpd-pi-extension/dist/memory/episodicMemory.js.map +1 -0
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts +102 -0
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js +207 -0
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js.map +1 -0
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts +85 -0
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js +210 -0
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js.map +1 -0
- package/tmlpd-pi-extension/dist/providers/localProvider.d.ts +102 -0
- package/tmlpd-pi-extension/dist/providers/localProvider.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/providers/localProvider.js +338 -0
- package/tmlpd-pi-extension/dist/providers/localProvider.js.map +1 -0
- package/tmlpd-pi-extension/dist/providers/registry.d.ts +55 -0
- package/tmlpd-pi-extension/dist/providers/registry.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/providers/registry.js +138 -0
- package/tmlpd-pi-extension/dist/providers/registry.js.map +1 -0
- package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts +68 -0
- package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/routing/advancedRouter.js +332 -0
- package/tmlpd-pi-extension/dist/routing/advancedRouter.js.map +1 -0
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts +101 -0
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.js +368 -0
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts +96 -0
- package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/batchProcessor.js +170 -0
- package/tmlpd-pi-extension/dist/utils/batchProcessor.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/compression.d.ts +61 -0
- package/tmlpd-pi-extension/dist/utils/compression.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/compression.js +281 -0
- package/tmlpd-pi-extension/dist/utils/compression.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/reliability.d.ts +74 -0
- package/tmlpd-pi-extension/dist/utils/reliability.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/reliability.js +177 -0
- package/tmlpd-pi-extension/dist/utils/reliability.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts +117 -0
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js +246 -0
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts +50 -0
- package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/tokenUtils.js +124 -0
- package/tmlpd-pi-extension/dist/utils/tokenUtils.js.map +1 -0
- package/tmlpd-pi-extension/examples/QUICKSTART.md +183 -0
- package/tmlpd-pi-extension/package-lock.json +79 -0
- package/tmlpd-pi-extension/package.json +172 -0
- package/tmlpd-pi-extension/python/examples.py +53 -0
- package/tmlpd-pi-extension/python/integrations.py +330 -0
- package/tmlpd-pi-extension/python/setup.py +28 -0
- package/tmlpd-pi-extension/python/tmlpd.py +369 -0
- package/tmlpd-pi-extension/qna/REDDIT_GAP_ANALYSIS.md +299 -0
- package/tmlpd-pi-extension/qna/TMLPD_QNA.md +751 -0
- package/tmlpd-pi-extension/skill/SKILL.md +238 -0
- package/tmlpd-pi-extension/src/cache/responseCache.ts +147 -0
- package/tmlpd-pi-extension/src/cost/costTracker.ts +302 -0
- package/tmlpd-pi-extension/src/index.ts +232 -0
- package/tmlpd-pi-extension/src/memory/episodicMemory.ts +257 -0
- package/tmlpd-pi-extension/src/orchestration/haloOrchestrator.ts +266 -0
- package/tmlpd-pi-extension/src/orchestration/mctsWorkflow.ts +262 -0
- package/tmlpd-pi-extension/src/providers/localProvider.ts +406 -0
- package/tmlpd-pi-extension/src/providers/registry.ts +164 -0
- package/tmlpd-pi-extension/src/routing/ensembleVoting.ts +159 -0
- package/tmlpd-pi-extension/src/routing/queryTypePresets.ts +136 -0
- package/tmlpd-pi-extension/src/tools/tmlpdTools.ts +433 -0
- package/tmlpd-pi-extension/src/utils/batchProcessor.ts +232 -0
- package/tmlpd-pi-extension/src/utils/compression.ts +325 -0
- package/tmlpd-pi-extension/src/utils/reliability.ts +221 -0
- package/tmlpd-pi-extension/src/utils/tokenUtils.ts +145 -0
- package/tmlpd-pi-extension/tsconfig.json +18 -0
- package/tsconfig.build.json +29 -0
- package/tsconfig.json +18 -0
- package/README.md.bak +0 -1185
- package/src/routing/advancedRouter.ts.bak +0 -650
- package/test.js.bak +0 -376
- /package/{llms-full.txt.bak → docs/llms-full.txt} +0 -0
package/.dockerignore
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# A3M Router — .dockerignore
|
|
3
|
+
# Excludes unnecessary files from Docker build context for smaller images
|
|
4
|
+
# =============================================================================
|
|
5
|
+
|
|
6
|
+
# Dependencies (installed inside container)
|
|
7
|
+
node_modules/
|
|
8
|
+
|
|
9
|
+
# Git
|
|
10
|
+
.git/
|
|
11
|
+
.gitattributes
|
|
12
|
+
.gitignore
|
|
13
|
+
.github/
|
|
14
|
+
|
|
15
|
+
# Build output (built inside container)
|
|
16
|
+
dist/
|
|
17
|
+
|
|
18
|
+
# Documentation (not needed at runtime)
|
|
19
|
+
docs/
|
|
20
|
+
docs-site/
|
|
21
|
+
_*.md
|
|
22
|
+
CONTRIBUTING.md
|
|
23
|
+
CHANGELOG.md
|
|
24
|
+
CODE_OF_CONDUCT.md
|
|
25
|
+
SECURITY.md
|
|
26
|
+
LAUNCH*.md
|
|
27
|
+
MANIFESTO.md
|
|
28
|
+
LANDING.md
|
|
29
|
+
POPULARITY_BOOSTERS.md
|
|
30
|
+
SUBMISSIONS.md
|
|
31
|
+
|
|
32
|
+
# Research / articles
|
|
33
|
+
articles/
|
|
34
|
+
awesome-ai-gateways/
|
|
35
|
+
Awesome-LLM/
|
|
36
|
+
awesome-selfhosted/
|
|
37
|
+
qna/
|
|
38
|
+
llms-full.txt
|
|
39
|
+
llms.txt
|
|
40
|
+
|
|
41
|
+
# Demos / playground
|
|
42
|
+
demo/
|
|
43
|
+
playground/
|
|
44
|
+
demo*.tape
|
|
45
|
+
demo*.sh
|
|
46
|
+
demo.html
|
|
47
|
+
index.html
|
|
48
|
+
|
|
49
|
+
# Tests
|
|
50
|
+
test/
|
|
51
|
+
test*
|
|
52
|
+
pytest.ini
|
|
53
|
+
__pycache__/
|
|
54
|
+
*.py[cod]
|
|
55
|
+
.pytest_cache/
|
|
56
|
+
|
|
57
|
+
# Scripts / tooling
|
|
58
|
+
scripts/
|
|
59
|
+
eval/
|
|
60
|
+
integrations/
|
|
61
|
+
mcp-server/
|
|
62
|
+
tmlpd-pi-extension/
|
|
63
|
+
openclaw-alexa-bridge/
|
|
64
|
+
python/
|
|
65
|
+
skill/
|
|
66
|
+
hf-space/
|
|
67
|
+
|
|
68
|
+
# Config & secrets (use container env vars)
|
|
69
|
+
.env
|
|
70
|
+
.env.example
|
|
71
|
+
tsconfig.json
|
|
72
|
+
tsconfig.build.json
|
|
73
|
+
|
|
74
|
+
# OS files
|
|
75
|
+
.DS_Store
|
|
76
|
+
Thumbs.db
|
|
77
|
+
|
|
78
|
+
# Logs / temp
|
|
79
|
+
*.log
|
|
80
|
+
*.tsbuildinfo
|
|
81
|
+
*.bak
|
|
82
|
+
coverage/
|
package/.env.example
ADDED
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# A3M Router - Adaptive Memory Multi-Model Router
|
|
3
|
+
# Environment Configuration Template
|
|
4
|
+
# =============================================================================
|
|
5
|
+
#
|
|
6
|
+
# Copy this file to .env and fill in your API keys.
|
|
7
|
+
# At least one provider key is required for the router to function.
|
|
8
|
+
# Providers without keys are automatically skipped at runtime.
|
|
9
|
+
#
|
|
10
|
+
# Usage:
|
|
11
|
+
# cp .env.example .env
|
|
12
|
+
# # Edit .env with your keys
|
|
13
|
+
# a3m-router start
|
|
14
|
+
#
|
|
15
|
+
# =============================================================================
|
|
16
|
+
|
|
17
|
+
# =============================================================================
|
|
18
|
+
# SECTION 1: PRIMARY PROVIDERS (Frontier / Most Commonly Used)
|
|
19
|
+
# =============================================================================
|
|
20
|
+
|
|
21
|
+
# OpenAI — GPT-4o, GPT-4o-mini, o1, o3, etc.
|
|
22
|
+
# https://platform.openai.com/api-keys
|
|
23
|
+
OPENAI_API_KEY=sk-...
|
|
24
|
+
|
|
25
|
+
# Anthropic — Claude Sonnet 4, Opus, Haiku
|
|
26
|
+
# https://console.anthropic.com/
|
|
27
|
+
ANTHROPIC_API_KEY=sk-ant-...
|
|
28
|
+
|
|
29
|
+
# Google / Gemini — Gemini 2.5 Flash/Pro, Gemma
|
|
30
|
+
# https://aistudio.google.com/apikey
|
|
31
|
+
GOOGLE_API_KEY=...
|
|
32
|
+
|
|
33
|
+
# xAI — Grok-3, Grok-3-mini, Grok-2
|
|
34
|
+
# https://console.x.ai
|
|
35
|
+
XAI_API_KEY=...
|
|
36
|
+
|
|
37
|
+
# =============================================================================
|
|
38
|
+
# SECTION 2: FAST INFERENCE PROVIDERS (Cheap / Low-Latency)
|
|
39
|
+
# =============================================================================
|
|
40
|
+
|
|
41
|
+
# Groq — LPU-powered inference, very fast
|
|
42
|
+
# https://console.groq.com/keys
|
|
43
|
+
GROQ_API_KEY=gsk_...
|
|
44
|
+
|
|
45
|
+
# Cerebras — Wafer-scale inference, ultra-fast
|
|
46
|
+
# https://cloud.cerebras.ai/
|
|
47
|
+
CEREBRAS_API_KEY=...
|
|
48
|
+
|
|
49
|
+
# DeepInfra — Serverless inference, many open models
|
|
50
|
+
# https://deepinfra.com/dash/api_keys
|
|
51
|
+
DEEPINFRA_API_KEY=...
|
|
52
|
+
|
|
53
|
+
# Together AI — Hosted open-source models
|
|
54
|
+
# https://api.together.ai/settings/api-keys
|
|
55
|
+
TOGETHER_API_KEY=...
|
|
56
|
+
|
|
57
|
+
# Fireworks AI — Fast inference for open models
|
|
58
|
+
# https://fireworks.ai/api-keys
|
|
59
|
+
FIREWORKS_API_KEY=...
|
|
60
|
+
|
|
61
|
+
# Novita AI — Low-cost LLM inference
|
|
62
|
+
# https://novita.ai/settings
|
|
63
|
+
NOVITA_API_KEY=...
|
|
64
|
+
|
|
65
|
+
# SambaNova — Fast open-model inference
|
|
66
|
+
# https://cloud.sambanova.ai/
|
|
67
|
+
SAMBANOVA_API_KEY=...
|
|
68
|
+
|
|
69
|
+
# Anyscale — Endpoints for open models
|
|
70
|
+
# https://console.anyscale.com/
|
|
71
|
+
ANYSCALE_API_KEY=...
|
|
72
|
+
|
|
73
|
+
# =============================================================================
|
|
74
|
+
# SECTION 3: MID-TIER / SPECIALTY PROVIDERS
|
|
75
|
+
# =============================================================================
|
|
76
|
+
|
|
77
|
+
# DeepSeek — DeepSeek-V3, DeepSeek-R1
|
|
78
|
+
# https://platform.deepseek.com/api_keys
|
|
79
|
+
DEEPSEEK_API_KEY=...
|
|
80
|
+
|
|
81
|
+
# Mistral AI — Mistral Large, Small, Codestral, Ministral
|
|
82
|
+
# https://console.mistral.ai/api-keys
|
|
83
|
+
MISTRAL_API_KEY=...
|
|
84
|
+
|
|
85
|
+
# Perplexity — Sonar models with online search
|
|
86
|
+
# https://www.perplexity.ai/settings/api
|
|
87
|
+
PERPLEXITY_API_KEY=...
|
|
88
|
+
|
|
89
|
+
# Cohere — Command R+, Command A, embeddings
|
|
90
|
+
# https://dashboard.cohere.com/api-keys
|
|
91
|
+
COHERE_API_KEY=...
|
|
92
|
+
|
|
93
|
+
# AI21 Labs — Jamba 1.5 models
|
|
94
|
+
# https://studio.ai21.com/account/api-keys
|
|
95
|
+
AI21_API_KEY=...
|
|
96
|
+
|
|
97
|
+
# Replicate — Cloud for open-source models
|
|
98
|
+
# https://replicate.com/account/api-tokens
|
|
99
|
+
REPLICATE_API_KEY=...
|
|
100
|
+
|
|
101
|
+
# Hugging Face — Inference API, Inference Endpoints
|
|
102
|
+
# https://huggingface.co/settings/tokens
|
|
103
|
+
HUGGINGFACE_API_KEY=hf_...
|
|
104
|
+
# or use HF_API_TOKEN
|
|
105
|
+
HF_API_TOKEN=hf_...
|
|
106
|
+
|
|
107
|
+
# Writer — Palmyra models, full-stack AI platform
|
|
108
|
+
# https://dev.writer.com/
|
|
109
|
+
WRITER_API_KEY=...
|
|
110
|
+
|
|
111
|
+
# OctoAI — Fast inference for open and custom models
|
|
112
|
+
# https://octo.ai/
|
|
113
|
+
OCTOAI_API_KEY=...
|
|
114
|
+
|
|
115
|
+
# =============================================================================
|
|
116
|
+
# SECTION 4: AI AGGREGATORS & ROUTERS
|
|
117
|
+
# =============================================================================
|
|
118
|
+
|
|
119
|
+
# OpenRouter — Aggregator with 200+ models, passthrough pricing
|
|
120
|
+
# https://openrouter.ai/keys
|
|
121
|
+
OPENROUTER_API_KEY=...
|
|
122
|
+
|
|
123
|
+
# AI/ML API — Single API for 200+ models
|
|
124
|
+
# https://aimlapi.com/
|
|
125
|
+
AIMLAPI_KEY=...
|
|
126
|
+
|
|
127
|
+
# =============================================================================
|
|
128
|
+
# SECTION 5: ENTERPRISE CLOUD PROVIDERS
|
|
129
|
+
# =============================================================================
|
|
130
|
+
|
|
131
|
+
# Azure OpenAI — GPT models via Azure
|
|
132
|
+
# https://portal.azure.com/
|
|
133
|
+
AZURE_OPENAI_API_KEY=...
|
|
134
|
+
# Also requires your Azure endpoint
|
|
135
|
+
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
|
|
136
|
+
|
|
137
|
+
# AWS Bedrock — Claude, Llama, Mistral via AWS
|
|
138
|
+
# https://console.aws.amazon.com/bedrock/
|
|
139
|
+
AWS_ACCESS_KEY_ID=...
|
|
140
|
+
AWS_SECRET_ACCESS_KEY=...
|
|
141
|
+
# Optional: set default region
|
|
142
|
+
AWS_REGION=us-east-1
|
|
143
|
+
|
|
144
|
+
# Google Vertex AI — Gemini, Claude via GCP
|
|
145
|
+
# https://console.cloud.google.com/vertex-ai
|
|
146
|
+
# Path to service account JSON key file
|
|
147
|
+
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account-key.json
|
|
148
|
+
|
|
149
|
+
# IBM watsonx — Granite, Llama, Mistral on IBM Cloud
|
|
150
|
+
# https://cloud.ibm.com/watsonx
|
|
151
|
+
WATSONX_API_KEY=...
|
|
152
|
+
WATSONX_PROJECT_ID=...
|
|
153
|
+
WATSONX_URL=https://us-south.ml.cloud.ibm.com
|
|
154
|
+
|
|
155
|
+
# Cloudflare Workers AI — Serverless AI inference
|
|
156
|
+
# https://dash.cloudflare.com/profile/api-tokens
|
|
157
|
+
CLOUDFLARE_API_TOKEN=...
|
|
158
|
+
CLOUDFLARE_ACCOUNT_ID=...
|
|
159
|
+
|
|
160
|
+
# =============================================================================
|
|
161
|
+
# SECTION 6: NVIDIA PLATFORMS
|
|
162
|
+
# =============================================================================
|
|
163
|
+
|
|
164
|
+
# NVIDIA NIM / API Catalog — Free tier for many open models
|
|
165
|
+
# https://build.nvidia.com/
|
|
166
|
+
NVIDIA_API_KEY=nvapi-...
|
|
167
|
+
|
|
168
|
+
# NVIDIA AI Foundation — Endpoints for NeMo, Llama, etc.
|
|
169
|
+
# Also uses NVIDIA_API_KEY above
|
|
170
|
+
|
|
171
|
+
# =============================================================================
|
|
172
|
+
# SECTION 7: CHINESE / ASIAN PROVIDERS
|
|
173
|
+
# =============================================================================
|
|
174
|
+
|
|
175
|
+
# Zhipu AI (GLM) — GLM-4 series
|
|
176
|
+
# https://open.bigmodel.cn/usercenter/apikeys
|
|
177
|
+
ZHIPU_API_KEY=...
|
|
178
|
+
|
|
179
|
+
# Alibaba Qwen (DashScope) — Qwen-Max, Qwen-Plus, Qwen-Turbo
|
|
180
|
+
# https://dashscope.console.aliyun.com/
|
|
181
|
+
DASHSCOPE_API_KEY=...
|
|
182
|
+
|
|
183
|
+
# Moonshot AI (Kimi) — Long-context models (128K)
|
|
184
|
+
# https://platform.moonshot.cn/
|
|
185
|
+
MOONSHOT_API_KEY=...
|
|
186
|
+
|
|
187
|
+
# 01.AI (Yi) — Yi-Lightning, Yi-Large, Yi-Medium
|
|
188
|
+
# https://platform.lingyiwanwu.com/
|
|
189
|
+
YI_API_KEY=...
|
|
190
|
+
|
|
191
|
+
# Baichuan AI — Baichuan4, Baichuan3-Turbo
|
|
192
|
+
# https://platform.baichuan-ai.com/
|
|
193
|
+
BAICHUAN_API_KEY=...
|
|
194
|
+
|
|
195
|
+
# MiniMax — MiniMax-Text-01, abab models
|
|
196
|
+
# https://platform.minimax.chat/
|
|
197
|
+
MINIMAX_API_KEY=...
|
|
198
|
+
|
|
199
|
+
# StepFun (Step) — Step-1, Step-2 models
|
|
200
|
+
# https://platform.stepfun.com/
|
|
201
|
+
STEPFUN_API_KEY=...
|
|
202
|
+
|
|
203
|
+
# ByteDance (Doubao) — Doubao-pro, Doubao-lite
|
|
204
|
+
# https://console.volcengine.com/ark
|
|
205
|
+
ARK_API_KEY=...
|
|
206
|
+
|
|
207
|
+
# Tencent (Hunyuan) — Hunyuan large models
|
|
208
|
+
# https://console.cloud.tencent.com/hunyuan
|
|
209
|
+
TENCENT_API_KEY=...
|
|
210
|
+
|
|
211
|
+
# Baidu (ERNIE) — ERNIE 4.0, ERNIE-Bot
|
|
212
|
+
# https://console.bce.baidu.com/qianfan/
|
|
213
|
+
BAIDU_API_KEY=...
|
|
214
|
+
BAIDU_SECRET_KEY=...
|
|
215
|
+
|
|
216
|
+
# =============================================================================
|
|
217
|
+
# SECTION 8: EUROPEAN & PRIVACY-FOCUSED PROVIDERS
|
|
218
|
+
# =============================================================================
|
|
219
|
+
|
|
220
|
+
# Aleph Alpha — Luminous models (GDPR-compliant)
|
|
221
|
+
# https://www.aleph-alpha.com/
|
|
222
|
+
ALEPH_ALPHA_API_KEY=...
|
|
223
|
+
|
|
224
|
+
# Deepset — Haystack Cloud, model endpoints
|
|
225
|
+
# https://cloud.deepset.ai/
|
|
226
|
+
DEEPSET_API_KEY=...
|
|
227
|
+
|
|
228
|
+
# Lepton AI — Fast, affordable inference
|
|
229
|
+
# https://lepton.ai/
|
|
230
|
+
LEPTON_API_KEY=...
|
|
231
|
+
|
|
232
|
+
# Mistral AI (also listed above, European-based)
|
|
233
|
+
# MISTRAL_API_KEY=...
|
|
234
|
+
|
|
235
|
+
# =============================================================================
|
|
236
|
+
# SECTION 9: EMBEDDINGS & SPECIALTY PROVIDERS
|
|
237
|
+
# =============================================================================
|
|
238
|
+
|
|
239
|
+
# Jina AI — Embeddings, Reranker, Reader API
|
|
240
|
+
# https://jina.ai/
|
|
241
|
+
JINA_API_KEY=...
|
|
242
|
+
|
|
243
|
+
# Voyage AI — Specialized embedding models
|
|
244
|
+
# https://www.voyageai.com/
|
|
245
|
+
VOYAGE_API_KEY=...
|
|
246
|
+
|
|
247
|
+
# Cohere (also listed above — embeddings + generation)
|
|
248
|
+
# COHERE_API_KEY=...
|
|
249
|
+
|
|
250
|
+
# Deepgram — Speech-to-text, text-to-speech, LLM (Nova-2)
|
|
251
|
+
# https://console.deepgram.com/
|
|
252
|
+
DEEPGRAM_API_KEY=...
|
|
253
|
+
|
|
254
|
+
# =============================================================================
|
|
255
|
+
# SECTION 10: ADDITIONAL / EMERGING PROVIDERS
|
|
256
|
+
# =============================================================================
|
|
257
|
+
|
|
258
|
+
# GooseAI — API for open models (deprecated but still supported)
|
|
259
|
+
GOOSEAI_API_KEY=...
|
|
260
|
+
|
|
261
|
+
# aiXcoder — Code-specialized LLM API
|
|
262
|
+
AIXCODER_API_KEY=...
|
|
263
|
+
|
|
264
|
+
# Infinity — Embedding serving (self-hosted)
|
|
265
|
+
INFINITY_API_KEY=...
|
|
266
|
+
|
|
267
|
+
# Laminar — LLM observability + routing
|
|
268
|
+
LAMINAR_API_KEY=...
|
|
269
|
+
|
|
270
|
+
# Fireworks (also listed above)
|
|
271
|
+
# FIREWORKS_API_KEY=...
|
|
272
|
+
|
|
273
|
+
# CommandCode — Coding agent API
|
|
274
|
+
COMMANDCODE_API_KEY=...
|
|
275
|
+
|
|
276
|
+
# =============================================================================
|
|
277
|
+
# SECTION 11: LOCAL / SELF-HOSTED (No API keys needed)
|
|
278
|
+
# =============================================================================
|
|
279
|
+
#
|
|
280
|
+
# These run locally and require no environment variables:
|
|
281
|
+
#
|
|
282
|
+
# Ollama — http://127.0.0.1:11434 (no key)
|
|
283
|
+
# LM Studio — http://127.0.0.1:1234 (no key)
|
|
284
|
+
# vLLM (local) — http://127.0.0.1:8000 (no key)
|
|
285
|
+
# LocalAI — http://127.0.0.1:8080 (no key)
|
|
286
|
+
# llama.cpp server — http://127.0.0.1:8080 (no key)
|
|
287
|
+
# Text Generation Inference (TGI) — http://127.0.0.1:8080 (no key)
|
|
288
|
+
#
|
|
289
|
+
# =============================================================================
|
|
290
|
+
|
|
291
|
+
# =============================================================================
|
|
292
|
+
# SECTION 12: SERVER CONFIGURATION
|
|
293
|
+
# =============================================================================
|
|
294
|
+
|
|
295
|
+
# Port and host for the A3M Router proxy server
|
|
296
|
+
PORT=3000
|
|
297
|
+
HOST=0.0.0.0
|
|
298
|
+
|
|
299
|
+
# Optional: API key required to access the router itself
|
|
300
|
+
# A3M_API_KEY=router-secret-key
|
|
301
|
+
|
|
302
|
+
# Logging level: debug | info | warn | error
|
|
303
|
+
LOG_LEVEL=info
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Welcome to A3M Router Discussions!
|
|
2
|
+
|
|
3
|
+
## 🎯 What is A3M Router?
|
|
4
|
+
A3M Router is an open-source LLM router that runs queries across **47+ providers in parallel**, scores responses by confidence, and returns the best result. No sequential fallback. No vendor lock-in.
|
|
5
|
+
|
|
6
|
+
## 💬 Discussion Categories
|
|
7
|
+
- **Show and Tell** — Share what you've built with A3M Router
|
|
8
|
+
- **Q&A** — Ask questions about usage, configuration, deployment
|
|
9
|
+
- **Ideas** — Feature requests and suggestions
|
|
10
|
+
- **Announcements** — Release notes and updates
|
|
11
|
+
|
|
12
|
+
## 🔗 Quick Links
|
|
13
|
+
- [GitHub](https://github.com/Das-rebel/a3m-router)
|
|
14
|
+
- [npm](https://www.npmjs.com/package/adaptive-memory-multi-model-router)
|
|
15
|
+
- [Documentation](https://github.com/Das-rebel/a3m-router#readme)
|
|
16
|
+
- [Benchmark Results](https://github.com/Das-rebel/a3m-router/blob/main/docs/BENCHMARK.md)
|
|
17
|
+
|
|
18
|
+
## 🚀 Getting Started
|
|
19
|
+
```bash
|
|
20
|
+
npx a3m-router "What is the meaning of life?"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Or install globally:
|
|
24
|
+
```bash
|
|
25
|
+
npm install -g adaptive-memory-multi-model-router
|
|
26
|
+
a3m "Explain quantum computing in simple terms"
|
|
27
|
+
```
|
|
@@ -0,0 +1,94 @@
|
|
|
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
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
|
@@ -0,0 +1,71 @@
|
|
|
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)
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
## Description
|
|
2
|
+
|
|
3
|
+
Please include a summary of the change and which issue it fixes. Explain the motivation and context — what problem does this solve and why is this the right approach?
|
|
4
|
+
|
|
5
|
+
Fixes # (issue)
|
|
6
|
+
|
|
7
|
+
## Type of Change
|
|
8
|
+
|
|
9
|
+
Check all that apply:
|
|
10
|
+
|
|
11
|
+
- [ ] 🐛 **Bug fix** (non-breaking change that fixes an issue)
|
|
12
|
+
- [ ] ✨ **New feature** (non-breaking change that adds functionality)
|
|
13
|
+
- [ ] 💥 **Breaking change** (fix or feature that would break existing functionality)
|
|
14
|
+
- [ ] 📚 **Documentation** (README, API docs, inline comments, or examples)
|
|
15
|
+
- [ ] 🎨 **Style** (formatting, code style — no logic change)
|
|
16
|
+
- [ ] ⚡ **Performance** (improves speed, memory, or latency without behavior change)
|
|
17
|
+
- [ ] 🔒 **Security** (fixes a vulnerability or improves security posture)
|
|
18
|
+
- [ ] ♻️ **Refactor** (code change that neither fixes a bug nor adds a feature)
|
|
19
|
+
- [ ] 🧪 **Tests** (adds or updates tests, not production code)
|
|
20
|
+
|
|
21
|
+
## Testing
|
|
22
|
+
|
|
23
|
+
Describe the tests you ran to verify your changes:
|
|
24
|
+
|
|
25
|
+
- [ ] All existing tests pass (`npm test`)
|
|
26
|
+
- [ ] Added new tests for the changes
|
|
27
|
+
- [ ] Tested manually (describe the commands or SDK calls used)
|
|
28
|
+
- [ ] Tested with real provider API calls (if applicable)
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Provide commands to reproduce your testing
|
|
32
|
+
node test/some-test.js
|
|
33
|
+
npx a3m-router route "Test query"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Checklist
|
|
37
|
+
|
|
38
|
+
- [ ] My code follows the project's coding style and conventions
|
|
39
|
+
- [ ] I have performed a self-review of my own code
|
|
40
|
+
- [ ] I have commented complex logic, especially in hard-to-understand areas
|
|
41
|
+
- [ ] I have updated the documentation (README, API docs, JSDoc comments) if needed
|
|
42
|
+
- [ ] My changes produce no new warnings (no `console.log` left behind, no TypeScript errors)
|
|
43
|
+
- [ ] I have added tests that prove my fix is effective or my feature works
|
|
44
|
+
- [ ] New and existing unit tests pass locally
|
|
45
|
+
- [ ] Any dependent changes are merged and published in downstream modules
|
|
46
|
+
- [ ] I have checked that my changes are backward-compatible (or documented breaking changes)
|
|
47
|
+
|
|
48
|
+
## Screenshots (if applicable)
|
|
49
|
+
|
|
50
|
+
If the change affects the terminal UI, dashboard, or any visual output, include screenshots:
|
|
51
|
+
|
|
52
|
+
| Before | After |
|
|
53
|
+
|--------|-------|
|
|
54
|
+
| _screenshot_ | _screenshot_ |
|
|
55
|
+
|
|
56
|
+
## Additional Context
|
|
57
|
+
|
|
58
|
+
- Related issues or PRs
|
|
59
|
+
- Performance impact (latency, memory, bundle size)
|
|
60
|
+
- Configuration changes required
|
|
61
|
+
- Migration guide (if breaking change)
|
|
62
|
+
|
|
63
|
+
## Changelog Entry
|
|
64
|
+
|
|
65
|
+
Suggest a one-line changelog entry for this change:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
- {type}: {short description} ({issue/PR link})
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Example: `- feat: add language-based routing override (#42)`
|