adaptive-memory-multi-model-router 2.14.49 → 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.
Files changed (603) hide show
  1. package/.dockerignore +82 -0
  2. package/.env.example +303 -0
  3. package/.github/DISCUSSIONS_WELCOME.md +27 -0
  4. package/.github/DISCUSSION_TEMPLATE.yml +5 -0
  5. package/.github/FUNDING.yml +2 -0
  6. package/.github/ISSUE_TEMPLATE/bug_report.md +94 -0
  7. package/.github/ISSUE_TEMPLATE/config.yml +17 -0
  8. package/.github/ISSUE_TEMPLATE/feature_request.md +71 -0
  9. package/.github/PULL_REQUEST_TEMPLATE.md +71 -0
  10. package/.github/dependabot.yml +9 -0
  11. package/.github/workflows/auto-publish.yml +51 -0
  12. package/.github/workflows/ci.yml +263 -0
  13. package/.github/workflows/codeql.yml +38 -0
  14. package/.github/workflows/npm-publish.yml +20 -0
  15. package/.github/workflows/pages.yml +37 -0
  16. package/.github/workflows/stale.yml +54 -0
  17. package/.publish-tick +1 -0
  18. package/.well-known/ai-plugin.json +16 -0
  19. package/AGENT_COUNCIL_FINDINGS.md +142 -0
  20. package/ARCHITECTURE.md +346 -0
  21. package/AUDIT_REPORT.md +28 -0
  22. package/CODE_OF_CONDUCT.md +128 -0
  23. package/CONTRIBUTING.md +50 -0
  24. package/CONTRIBUTORS.md +20 -0
  25. package/Dockerfile +53 -0
  26. package/Dockerfile.proxy +33 -0
  27. package/HEALTH_REPORT.md +118 -0
  28. package/IMPROVEMENT_PLAN.md +107 -0
  29. package/LANDING.md +43 -0
  30. package/LAUNCH-PAIN-DRIVEN.md +339 -0
  31. package/LAUNCH.md +337 -0
  32. package/LAUNCH_CHECKLIST.md +141 -0
  33. package/LAUNCH_SNAPSHOT.md +260 -0
  34. package/MANIFESTO.md +41 -0
  35. package/POPULARITY_BOOSTERS.md +285 -0
  36. package/PR_STATUS_REPORT.md +148 -0
  37. package/README.md +10 -0
  38. package/REDESIGN.md +95 -0
  39. package/RUNKIT.md +83 -0
  40. package/SECURITY.md +29 -0
  41. package/SUBMISSIONS.md +43 -0
  42. package/_schema.html +53 -0
  43. package/ai-plugin.json +16 -0
  44. package/articles/AI_AGENT_LLM_ROUTING.md +150 -0
  45. package/articles/CHINESE_DIRECTORIES.md +100 -0
  46. package/articles/CHINESE_SUBMISSIONS_READY.md +322 -0
  47. package/articles/COMPETITOR_ALERTS.md +31 -0
  48. package/articles/COMPLETE_POSTING_DIRECTORY.md +147 -0
  49. package/articles/CONTENT_STRUCTURE.md +292 -0
  50. package/articles/DEVTO_COST_GUIDE.md +473 -0
  51. package/articles/DEVTO_FINAL.md +416 -0
  52. package/articles/DEVTO_MULTI_PROVIDER.md +542 -0
  53. package/articles/DEVTO_READY.md +255 -0
  54. package/articles/DEVTO_V2_ANNOUNCEMENT.md +160 -0
  55. package/articles/DEVTO_VIRAL_GROWTH.md +280 -0
  56. package/articles/FRESH_devto.md +460 -0
  57. package/articles/FRESH_devto_2026_05.md +73 -0
  58. package/articles/FRESH_hackernews.md +14 -0
  59. package/articles/FRESH_reddit_ml.md +90 -0
  60. package/articles/FRESH_reddit_node.md +198 -0
  61. package/articles/FRESH_reddit_sideproject.md +72 -0
  62. package/articles/FRESH_reddit_webdev.md +130 -0
  63. package/articles/FROM_ZERO_TO_10K.md +107 -0
  64. package/articles/HN_10X_BETTER.md +430 -0
  65. package/articles/HN_ACCOUNT_GUIDE.md +21 -0
  66. package/articles/HN_CHINESE_STYLE.md +308 -0
  67. package/articles/HN_FINAL.md +148 -0
  68. package/articles/HN_POSTED_VERSION.md +56 -0
  69. package/articles/HN_POST_READY.md +137 -0
  70. package/articles/HN_RESEARCH.md +364 -0
  71. package/articles/HN_SHOW_routerarena.md +17 -0
  72. package/articles/HN_TIMING_GUIDE.md +52 -0
  73. package/articles/INDIEHACKERS_POST.md +52 -0
  74. package/articles/INDIEHACKERS_READY.md +120 -0
  75. package/articles/LLM_BENCHMARK_DEEP_DIVE.md +153 -0
  76. package/articles/MASTER_POSTING_DIRECTORY.md +189 -0
  77. package/articles/NEWSLETTER_SEND_NOW.md +259 -0
  78. package/articles/NEWSLETTER_SUBMISSIONS.md +112 -0
  79. package/articles/PAIN-DRIVEN-devto-v2.md +308 -0
  80. package/articles/PAIN-DRIVEN-devto-v3.md +268 -0
  81. package/articles/PAIN-DRIVEN-devto.md +242 -0
  82. package/articles/PAIN-DRIVEN-hackernews-v2.md +138 -0
  83. package/articles/PAIN-DRIVEN-hackernews-v3.md +151 -0
  84. package/articles/PAIN-DRIVEN-hackernews.md +131 -0
  85. package/articles/PAIN-DRIVEN-reddit-v2.md +301 -0
  86. package/articles/PAIN-DRIVEN-reddit-v3.md +236 -0
  87. package/articles/PAIN-DRIVEN-reddit.md +218 -0
  88. package/articles/PAIN-DRIVEN-twitter-v2.md +110 -0
  89. package/articles/PAIN-DRIVEN-twitter-v3.md +121 -0
  90. package/articles/PAIN-DRIVEN-twitter.md +120 -0
  91. package/articles/PORTKEY_VS_A3M.md +147 -0
  92. package/articles/POSTING_KIT_2026_05.md +67 -0
  93. package/articles/PRESS_KIT_routerarena.md +77 -0
  94. package/articles/PRODUCTHUNT_LISTING.md +48 -0
  95. package/articles/PRODUCTHUNT_READY.md +106 -0
  96. package/articles/PR_PLAN_vault.md +125 -0
  97. package/articles/REDDIT_FINAL.md +232 -0
  98. package/articles/REDDIT_POST.md +67 -0
  99. package/articles/REDDIT_SUBMISSION_READY.md +348 -0
  100. package/articles/ROUTERARENA_LEADER.md +45 -0
  101. package/articles/SHOW_HN_FINAL.md +29 -0
  102. package/articles/TWEETS_10K_DOWNLOADS.md +47 -0
  103. package/articles/TWEETS_BENCHMARK_FIRST.md +46 -0
  104. package/articles/TWEETS_MCP_PLAY.md +51 -0
  105. package/articles/TWEETS_SEQUENTIAL_BROKEN.md +49 -0
  106. package/articles/TWEETS_WHY_BUILD.md +54 -0
  107. package/articles/TWEETS_routerarena_leader.md +53 -0
  108. package/articles/TWEET_STORM_READY.md +165 -0
  109. package/articles/TWITTER_FINAL.md +167 -0
  110. package/articles/WHY_10X_BETTER.md +261 -0
  111. package/articles/WHY_CHINESE_STYLE_BETTER.md +323 -0
  112. package/articles/ai-discoverability-llm-routing.md +210 -0
  113. package/articles/devto-llm-routing.md +138 -0
  114. package/articles/hackernews-show-hn.md +54 -0
  115. package/articles/hashnode-llm-cost-optimization.md +125 -0
  116. package/articles/hn_show_2026_05.md +11 -0
  117. package/articles/medium-building-llm-router.md +205 -0
  118. package/articles/reddit-ml.md +76 -0
  119. package/articles/twitter-thread-cost-savings.md +50 -0
  120. package/articles/youtube-tutorial-script.md +262 -0
  121. package/assets/a3m_3blue1brown.mp4 +0 -0
  122. package/assets/banner.svg +109 -0
  123. package/assets/chart-cost-v2.svg +91 -0
  124. package/assets/chart-cost-v3.svg +143 -0
  125. package/assets/chart-features-v2.svg +132 -0
  126. package/assets/chart-features-v3.svg +211 -0
  127. package/assets/chart-growth-v2.svg +122 -0
  128. package/assets/chart-growth-v3.svg +189 -0
  129. package/assets/cost-comparison.svg +134 -0
  130. package/assets/cost-simple.svg +64 -0
  131. package/assets/demo-hn.gif +0 -0
  132. package/assets/feature-matrix.svg +136 -0
  133. package/assets/growth-chart-animated.svg +76 -0
  134. package/assets/growth-chart.svg +82 -0
  135. package/assets/growth-simple.svg +69 -0
  136. package/assets/hero-diagram.svg +81 -0
  137. package/assets/logo-new.svg +21 -0
  138. package/assets/logo.svg +68 -0
  139. package/assets/provider-comparison.svg +121 -0
  140. package/assets/social-preview-new.svg +100 -0
  141. package/assets/social-preview.svg +194 -0
  142. package/assets/social-v2.svg +130 -0
  143. package/assets/social-v3.svg +212 -0
  144. package/benchmark-provider-results.json +245 -0
  145. package/benchmark-results.json +54 -0
  146. package/council-votes/architecture-vote.md +121 -0
  147. package/council-votes/coverage-vote.md +93 -0
  148. package/data/adaptive-benchmark.json +92 -0
  149. package/data/benchmark-results.json +47 -0
  150. package/data/labeled-benchmark.json +88 -0
  151. package/demo/3blue1brown_video.py +285 -0
  152. package/demo/3blue1brown_video_v2.py +310 -0
  153. package/demo/IMPROVED_PROMPTS.md +229 -0
  154. package/demo/VEO3_PROMPTS.md +269 -0
  155. package/demo/VIDEO_PRODUCTION_GUIDE.md +333 -0
  156. package/demo/a3m_3blue1brown.mp4 +0 -0
  157. package/demo/asciinema-demo.sh +195 -0
  158. package/demo/demo-hn.tape +74 -0
  159. package/demo/demo-script.md +53 -0
  160. package/demo/demo-script.sh +62 -0
  161. package/demo/demo.svg +75 -0
  162. package/demo/frame1_ai_data_center.png +0 -0
  163. package/demo/frame1_sunset_video.mp4 +0 -0
  164. package/demo/frame2_cost_comparison.png +0 -0
  165. package/demo/frame2_cost_comparison_fallback.png +0 -0
  166. package/demo/frame3_parallel_execution.png +0 -0
  167. package/demo/frame3_parallel_execution_fallback.png +0 -0
  168. package/demo/frame4_providers.png +0 -0
  169. package/demo/frame4_providers_fallback.png +0 -0
  170. package/demo/frame5_endcard.png +0 -0
  171. package/demo/frame5_endcard_fallback.png +0 -0
  172. package/demo/new_frame1_hook.png +0 -0
  173. package/demo/new_frame2_proof.png +0 -0
  174. package/demo/new_frame3_wow.png +0 -0
  175. package/demo/new_frame4_social.png +0 -0
  176. package/demo/new_frame5_cta.png +0 -0
  177. package/demo/package.json +13 -0
  178. package/demo/product-video-final.mp4 +0 -0
  179. package/demo/product-video-hype-v1.mp4 +0 -0
  180. package/demo/product-video-v1.mp4 +0 -0
  181. package/demo/public/index.html +762 -0
  182. package/demo/recording.cast +55 -0
  183. package/demo/server.js +405 -0
  184. package/demo-new.tape +71 -0
  185. package/demo-real.sh +198 -0
  186. package/demo-simple.tape +205 -0
  187. package/demo.html +520 -0
  188. package/demo.sh +85 -0
  189. package/demo.tape +259 -0
  190. package/dist/analytics/costAnalytics.d.ts.map +1 -0
  191. package/dist/analytics/costAnalytics.js.map +1 -0
  192. package/dist/benchmark/comprehensive.js.map +1 -0
  193. package/dist/benchmark/reproducible.d.ts.map +1 -0
  194. package/dist/benchmark/reproducible.js.map +1 -0
  195. package/dist/cache/prefixCache.d.ts.map +1 -0
  196. package/dist/cache/prefixCache.js.map +1 -0
  197. package/dist/cache/responseCache.d.ts.map +1 -0
  198. package/dist/cache/responseCache.js.map +1 -0
  199. package/dist/cache/semanticCache.d.ts.map +1 -0
  200. package/dist/cache/semanticCache.js.map +1 -0
  201. package/dist/cli/setupWizard.d.ts.map +1 -0
  202. package/dist/cli/setupWizard.js.map +1 -0
  203. package/dist/cost/budgetEnforcer.d.ts.map +1 -0
  204. package/dist/cost/budgetEnforcer.js.map +1 -0
  205. package/dist/cost/costTracker.d.ts.map +1 -0
  206. package/dist/cost/costTracker.js.map +1 -0
  207. package/dist/ensemble/multiRoundDialog.js.map +1 -0
  208. package/dist/ensemble/shapleyValue.js.map +1 -0
  209. package/dist/integrations/langchainAdapter.d.ts.map +1 -0
  210. package/dist/integrations/langchainAdapter.js.map +1 -0
  211. package/dist/integrations/oauth.d.ts.map +1 -0
  212. package/dist/integrations/oauth.js.map +1 -0
  213. package/dist/integrations/scienceAdapter.js.map +1 -0
  214. package/dist/memory/autoFetch.d.ts.map +1 -0
  215. package/dist/memory/autoFetch.js.map +1 -0
  216. package/dist/memory/episodicMemory.d.ts.map +1 -0
  217. package/dist/memory/episodicMemory.js.map +1 -0
  218. package/dist/memory/hybridMemory.js.map +1 -0
  219. package/dist/memory/memoryTree.d.ts.map +1 -0
  220. package/dist/memory/memoryTree.js.map +1 -0
  221. package/dist/memory/obsidianVault.d.ts.map +1 -0
  222. package/dist/memory/obsidianVault.js.map +1 -0
  223. package/dist/memory/reasoningBank.js.map +1 -0
  224. package/dist/observability/changeWatch.d.ts.map +1 -0
  225. package/dist/observability/changeWatch.js.map +1 -0
  226. package/dist/observability/fatigueDetector.d.ts.map +1 -0
  227. package/dist/observability/fatigueDetector.js.map +1 -0
  228. package/dist/observability/index.d.ts.map +1 -0
  229. package/dist/observability/index.js.map +1 -0
  230. package/dist/observability/metrics.d.ts.map +1 -0
  231. package/dist/observability/metrics.js.map +1 -0
  232. package/dist/observability/middleware.d.ts.map +1 -0
  233. package/dist/observability/middleware.js.map +1 -0
  234. package/dist/observability/tracer.d.ts.map +1 -0
  235. package/dist/observability/tracer.js.map +1 -0
  236. package/dist/observability/types.d.ts.map +1 -0
  237. package/dist/observability/types.js.map +1 -0
  238. package/dist/orchestration/haloOrchestrator.d.ts.map +1 -0
  239. package/dist/orchestration/haloOrchestrator.js.map +1 -0
  240. package/dist/orchestration/mctsWorkflow.d.ts.map +1 -0
  241. package/dist/orchestration/mctsWorkflow.js.map +1 -0
  242. package/dist/providers/localProvider.d.ts.map +1 -0
  243. package/dist/providers/localProvider.js.map +1 -0
  244. package/dist/providers/providerConfig.d.ts.map +1 -0
  245. package/dist/providers/providerConfig.js.map +1 -0
  246. package/dist/providers/registry.d.ts.map +1 -0
  247. package/dist/providers/registry.js.map +1 -0
  248. package/dist/routing/advancedRouter.d.ts.map +1 -0
  249. package/dist/routing/advancedRouter.js +1 -1
  250. package/dist/routing/advancedRouter.js.map +1 -0
  251. package/dist/routing/crossModelValidation.d.ts.map +1 -0
  252. package/dist/routing/crossModelValidation.js.map +1 -0
  253. package/dist/routing/providerHealth.d.ts.map +1 -0
  254. package/dist/routing/providerHealth.js.map +1 -0
  255. package/dist/routing/providerRetry.d.ts.map +1 -0
  256. package/dist/routing/providerRetry.js.map +1 -0
  257. package/dist/scripts/banner.js +29 -0
  258. package/dist/security/guardrails.d.ts.map +1 -0
  259. package/dist/security/guardrails.js.map +1 -0
  260. package/dist/server/dashboard.d.ts.map +1 -0
  261. package/dist/server/dashboard.js.map +1 -0
  262. package/dist/server/modelMapper.d.ts.map +1 -0
  263. package/dist/server/modelMapper.js.map +1 -0
  264. package/dist/server/proxyServer.d.ts.map +1 -0
  265. package/dist/server/proxyServer.js.map +1 -0
  266. package/dist/skills/__tests__/skill_manager.test.d.ts +2 -0
  267. package/dist/skills/__tests__/skill_manager.test.d.ts.map +1 -0
  268. package/dist/skills/__tests__/skill_manager.test.js +268 -0
  269. package/dist/skills/__tests__/skill_manager.test.js.map +1 -0
  270. package/dist/tools/tmlpdTools.d.ts.map +1 -0
  271. package/dist/tools/tmlpdTools.js.map +1 -0
  272. package/dist/tui/dashboard.d.ts.map +1 -0
  273. package/dist/tui/dashboard.js.map +1 -0
  274. package/dist/tui/index.d.ts.map +1 -0
  275. package/dist/tui/index.js.map +1 -0
  276. package/dist/utils/batchProcessor.d.ts.map +1 -0
  277. package/dist/utils/batchProcessor.js.map +1 -0
  278. package/dist/utils/compression.d.ts.map +1 -0
  279. package/dist/utils/compression.js.map +1 -0
  280. package/dist/utils/costUtils.d.ts.map +1 -0
  281. package/dist/utils/costUtils.js.map +1 -0
  282. package/dist/utils/reliability.d.ts.map +1 -0
  283. package/dist/utils/reliability.js.map +1 -0
  284. package/dist/utils/sorting.d.ts.map +1 -0
  285. package/dist/utils/sorting.js.map +1 -0
  286. package/dist/utils/speculativeDecoding.d.ts.map +1 -0
  287. package/dist/utils/speculativeDecoding.js.map +1 -0
  288. package/dist/utils/tokenUtils.d.ts.map +1 -0
  289. package/dist/utils/tokenUtils.js.map +1 -0
  290. package/docs/.nojekyll +0 -0
  291. package/docs/ANALYSIS_PRINCIPLES.md +162 -0
  292. package/docs/API.md +855 -0
  293. package/docs/ARCHITECTURAL-IMPROVEMENTS-2025.md +1391 -0
  294. package/docs/ARCHITECTURAL-IMPROVEMENTS-REVISED-2025.md +1051 -0
  295. package/docs/BENCHMARK.md +170 -0
  296. package/docs/CHINESE_PROVIDER_RELIABILITY.md +37 -0
  297. package/docs/CITATIONS.md +74 -0
  298. package/docs/CLAIMS_AND_EVIDENCE.md +58 -0
  299. package/docs/CONFIGURATION.md +476 -0
  300. package/docs/COUNCIL_DECISION.json +816 -0
  301. package/docs/COUNCIL_SUMMARY.md +319 -0
  302. package/docs/COUNCIL_V2.2_DECISION.md +416 -0
  303. package/docs/ENGINEERING_SPEC.md +55 -0
  304. package/docs/FACTORY_RESET.md +34 -0
  305. package/docs/GEO.md +66 -0
  306. package/docs/GEO_OPTIMIZATION.md +30 -0
  307. package/docs/GEO_ROOT_CAUSE.md +136 -0
  308. package/docs/GEO_STATUS.md +85 -0
  309. package/docs/GEO_TEST_RESULTS.md +176 -0
  310. package/docs/HN_CHECKLIST.md +38 -0
  311. package/docs/HN_FOUNDER_COMMENT.md +17 -0
  312. package/docs/HN_SUBMISSION_FINAL.md +180 -0
  313. package/docs/HN_SUBMISSION_V3.md +56 -0
  314. package/docs/IMPROVEMENT_ROADMAP.md +515 -0
  315. package/docs/INTEGRATIONS.md +420 -0
  316. package/docs/LANGCHAIN_INTEGRATION.md +147 -0
  317. package/docs/LLM_COUNCIL_DECISION.md +508 -0
  318. package/docs/MIDDLEWARE_CHAIN.md +35 -0
  319. package/docs/PROMO_CHECKLIST.md +200 -0
  320. package/docs/QUICKSTART.md +271 -0
  321. package/docs/QUICK_START.md +43 -0
  322. package/docs/QUICK_START_VISIBILITY.md +782 -0
  323. package/docs/REDDIT_GAP_ANALYSIS.md +299 -0
  324. package/docs/RELEASE_CHECKLIST.md +32 -0
  325. package/docs/REPRODUCIBILITY.md +63 -0
  326. package/docs/RESEARCH_BACKED_IMPROVEMENTS.md +1180 -0
  327. package/docs/ROUTING_RUBRIC.md +197 -0
  328. package/docs/SEO_AUDIT.md +186 -0
  329. package/docs/SOCIAL_LISTENING.md +219 -0
  330. package/docs/TMLPD_QNA.md +751 -0
  331. package/docs/TMLPD_V2.1_COMPLETE.md +763 -0
  332. package/docs/TMLPD_V2.2_RESEARCH_ROADMAP.md +754 -0
  333. package/docs/UPDATE_TOPICS.md +15 -0
  334. package/docs/USE_CASES.md +59 -0
  335. package/docs/V2.2_IMPLEMENTATION_COMPLETE.md +446 -0
  336. package/docs/V2_IMPLEMENTATION_GUIDE.md +388 -0
  337. package/docs/VERCEL_AI_SDK.md +209 -0
  338. package/docs/VISIBILITY_ADOPTION_PLAN.md +1005 -0
  339. package/docs/_config.yml +49 -0
  340. package/docs/ai-plugin.json +16 -0
  341. package/docs/api.html +513 -0
  342. package/docs/architecture-diagram.md +40 -0
  343. package/docs/benchmark-chart.png +0 -0
  344. package/docs/benchmark.html +387 -0
  345. package/docs/blog/routerarena-number-one.html +73 -0
  346. package/docs/cli-cheatsheet.md +339 -0
  347. package/docs/compare.md +109 -0
  348. package/docs/comparison-litellm.md +88 -0
  349. package/docs/comparison.md +108 -0
  350. package/docs/cost-chart-ascii.md +42 -0
  351. package/docs/cost-comparison-chart.svg +88 -0
  352. package/docs/curl-examples.md +247 -0
  353. package/docs/demo-auto.html +264 -0
  354. package/docs/demo.html +416 -0
  355. package/docs/geo/GENERATIVE_ENGINE_OPTIMIZATION.md +232 -0
  356. package/docs/index.html +507 -0
  357. package/docs/launch-content/LAUNCH_EXECUTION_CHECKLIST.md +421 -0
  358. package/docs/launch-content/README.md +457 -0
  359. package/docs/launch-content/assets/cost_comparison_100_tasks.png +0 -0
  360. package/docs/launch-content/assets/cumulative_savings.png +0 -0
  361. package/docs/launch-content/assets/parallel_speedup.png +0 -0
  362. package/docs/launch-content/assets/provider_pricing_comparison.png +0 -0
  363. package/docs/launch-content/assets/task_breakdown_comparison.png +0 -0
  364. package/docs/launch-content/generate_charts.py +313 -0
  365. package/docs/launch-content/hn_show_post.md +139 -0
  366. package/docs/launch-content/partner_outreach_templates.md +745 -0
  367. package/docs/launch-content/reddit_posts.md +467 -0
  368. package/docs/launch-content/twitter_thread.txt +460 -0
  369. package/{llms.txt.bak → docs/llms.txt} +6 -6
  370. package/docs/npm-downloads-chart.svg +43 -0
  371. package/docs/openapi.json +139 -0
  372. package/docs/openapi.yaml +1318 -0
  373. package/docs/quick-start.html +366 -0
  374. package/docs/robots.txt +52 -0
  375. package/docs/sitemap.xml +57 -0
  376. package/docs/styles.css +682 -0
  377. package/docs/well-known/ai-plugin.json +16 -0
  378. package/docs/wellknown/ai-plugin.json +16 -0
  379. package/docs-site/assets/og-banner.svg +194 -0
  380. package/docs-site/index.html +632 -0
  381. package/eval/README.md +46 -0
  382. package/eval/baselines/main.json +12 -0
  383. package/eval/benchmark_dataset.jsonl +16 -0
  384. package/eval/check_golden_routes.js +64 -0
  385. package/eval/datasets/catalog.json +33 -0
  386. package/eval/datasets/slices/cn_provider_reliability_v1.jsonl +3 -0
  387. package/eval/datasets/slices/cost_pressure_v1.jsonl +3 -0
  388. package/eval/datasets/slices/safety_guardrails_v1.jsonl +3 -0
  389. package/eval/evals.json +199 -0
  390. package/eval/fault_injection_thresholds.json +3 -0
  391. package/eval/generate_report.js +128 -0
  392. package/eval/golden_routes.json +114 -0
  393. package/eval/lib/experiment_registry.js +24 -0
  394. package/eval/run_eval.js +197 -0
  395. package/eval/run_fault_injection.js +201 -0
  396. package/eval/run_shadow_eval.js +85 -0
  397. package/eval/thresholds.json +9 -0
  398. package/examples/QUICKSTART.md +183 -0
  399. package/examples/README.md +61 -0
  400. package/examples/a3m-sdk.js +124 -0
  401. package/examples/basic-route.js +54 -0
  402. package/examples/chat-loop.js +202 -0
  403. package/examples/classify-then-route.js +102 -0
  404. package/examples/cost-compare.js +120 -0
  405. package/examples/ensemble.js +160 -0
  406. package/examples/whatsapp-telegram-bridge-demo.js +302 -0
  407. package/examples/whatsapp-telegram-bridge.js +269 -0
  408. package/hf-space/README.md +23 -0
  409. package/hf-space/app.py +240 -0
  410. package/hf-space/requirements.txt +1 -0
  411. package/huggingface_space/README.md +35 -0
  412. package/huggingface_space/app.py +126 -0
  413. package/huggingface_space/create_space.py +208 -0
  414. package/huggingface_space/requirements.txt +1 -0
  415. package/mcp-server/README.md +188 -0
  416. package/mcp-server/package.json +29 -0
  417. package/mcp-server/src/index.ts +744 -0
  418. package/mcp-server/tsconfig.json +19 -0
  419. package/openclaw-alexa-bridge/ALL_REMAINING_FIXES_PLAN.md +313 -0
  420. package/openclaw-alexa-bridge/REMAINING_FIXES_SUMMARY.md +277 -0
  421. package/openclaw-alexa-bridge/src/alexa_handler_no_tmlpd.js +1234 -0
  422. package/openclaw-alexa-bridge/test_fixes.js +77 -0
  423. package/package.json +73 -270
  424. package/playground/README.md +51 -0
  425. package/playground/codesandbox.json +12 -0
  426. package/playground/index.js +39 -0
  427. package/proxy/README.md +227 -0
  428. package/proxy/package-lock.json +831 -0
  429. package/proxy/package.json +17 -0
  430. package/proxy/rate-limit.js +145 -0
  431. package/proxy/rate-limit.test.js +311 -0
  432. package/proxy/server.js +970 -0
  433. package/python/README.md +102 -0
  434. package/python/a3m/__init__.py +6 -0
  435. package/python/a3m/client.py +190 -0
  436. package/python/a3m/models.py +40 -0
  437. package/python/a3m/sync_client.py +61 -0
  438. package/python/examples.py +53 -0
  439. package/python/integrations.py +330 -0
  440. package/python/pyproject.toml +23 -0
  441. package/python/setup.py +28 -0
  442. package/python/tmlpd.py +369 -0
  443. package/qna/REDDIT_GAP_ANALYSIS.md +299 -0
  444. package/qna/TMLPD_QNA.md +751 -0
  445. package/research/FINDING_001_safety.md +28 -0
  446. package/research/FINDING_002_error_diversity.md +32 -0
  447. package/research/FINDING_003_confidence_weighted_voting.md +32 -0
  448. package/research/FINDING_004_cross_model_semantic_detection.md +37 -0
  449. package/research/FINDING_005_knowledge_gap_orthogonality.md +34 -0
  450. package/research/HALLUCINATION_RESEARCH.md +27 -0
  451. package/research/PUBLISH_LOG.md +3 -0
  452. package/research/ensemble-voting.md +324 -0
  453. package/research/loss-functions.md +545 -0
  454. package/research-log.md +49 -0
  455. package/scripts/banner.js +29 -0
  456. package/scripts/benchmark-local-routerarena.ts +176 -0
  457. package/scripts/benchmark.js +145 -0
  458. package/scripts/benchmark.sh +61 -0
  459. package/scripts/compare-providers.sh +230 -0
  460. package/scripts/content-planner.js +25 -0
  461. package/scripts/create-labeled-benchmark.ts +105 -0
  462. package/scripts/cross_post.py +443 -0
  463. package/scripts/local-router-benchmark.ts +154 -0
  464. package/scripts/post-all.sh +41 -0
  465. package/scripts/publish_fcc.py +106 -0
  466. package/scripts/push-to-gitee.sh +25 -0
  467. package/scripts/routerarena_ensemble.js +144 -0
  468. package/scripts/routing-benchmark-v2.js +373 -0
  469. package/scripts/routing-benchmark-v3.js +118 -0
  470. package/scripts/routing-benchmark.js +462 -0
  471. package/scripts/run-labeled-benchmark.mjs +104 -0
  472. package/scripts/run-mmlu-benchmark.js +176 -0
  473. package/scripts/run-provider-benchmark.js +244 -0
  474. package/scripts/update-npm-badges.js +158 -0
  475. package/skill/SKILL.md +238 -0
  476. package/src/__tests__/integration/tmpld_integration.test.py +540 -0
  477. package/src/routing/advancedRouter.ts +1 -1
  478. package/src/skills/__tests__/skill_manager.test.ts +328 -0
  479. package/submissions/benchmarks/ALL_PLATFORMS_SUBMISSION.md +94 -0
  480. package/submissions/benchmarks/LLMROUTERBENCH_SUBMISSION.md +121 -0
  481. package/submissions/benchmarks/MMRBENCH_SUBMISSION.md +94 -0
  482. package/submissions/benchmarks/ROUTERARENA_UPDATE.md +83 -0
  483. package/submissions/benchmarks/ROUTERBENCH_SUBMISSION.md +225 -0
  484. package/test-council/1-structure-tests.test.js +353 -0
  485. package/test-council/1-structure-tests.test.ts +353 -0
  486. package/test-council/2-edge-case-tests.test.ts +361 -0
  487. package/test-council/3-performance-tests.test.ts +669 -0
  488. package/test-council/4-integration-tests.test.ts +391 -0
  489. package/test-council/5-agent-council-eval.test.ts +413 -0
  490. package/test-council/AGENT_COUNCIL_ARCHITECTURE.md +349 -0
  491. package/test-council/TEST_COUNCIL_REPORT.md +201 -0
  492. package/test-council/agents/edge-case-agent.ts +363 -0
  493. package/test-council/agents/performance-agent.ts +426 -0
  494. package/test-council/agents/structure-agent.ts +227 -0
  495. package/test-council/council.md +183 -0
  496. package/tests/__mocks__/tokenUtils.ts +8 -0
  497. package/tests/memory/episodicMemory.test.ts +227 -0
  498. package/tests/package-lock.json +1628 -0
  499. package/tests/package.json +18 -0
  500. package/tests/routing/ensembleVoting.test.ts +236 -0
  501. package/tests/routing/providerRetry.test.ts +360 -0
  502. package/tests/routing/queryTypePresets.test.ts +208 -0
  503. package/tests/security/guardrailEngine.test.ts +700 -0
  504. package/tests/tsconfig.json +21 -0
  505. package/tests/vitest.config.ts +18 -0
  506. package/tmlpd-pi-extension/README.md +66 -0
  507. package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts +114 -0
  508. package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts.map +1 -0
  509. package/tmlpd-pi-extension/dist/cache/prefixCache.js +285 -0
  510. package/tmlpd-pi-extension/dist/cache/prefixCache.js.map +1 -0
  511. package/tmlpd-pi-extension/dist/cache/responseCache.d.ts +58 -0
  512. package/tmlpd-pi-extension/dist/cache/responseCache.d.ts.map +1 -0
  513. package/tmlpd-pi-extension/dist/cache/responseCache.js +153 -0
  514. package/tmlpd-pi-extension/dist/cache/responseCache.js.map +1 -0
  515. package/tmlpd-pi-extension/dist/cli.js +59 -0
  516. package/tmlpd-pi-extension/dist/cost/costTracker.d.ts +95 -0
  517. package/tmlpd-pi-extension/dist/cost/costTracker.d.ts.map +1 -0
  518. package/tmlpd-pi-extension/dist/cost/costTracker.js +240 -0
  519. package/tmlpd-pi-extension/dist/cost/costTracker.js.map +1 -0
  520. package/tmlpd-pi-extension/dist/index.d.ts +723 -0
  521. package/tmlpd-pi-extension/dist/index.d.ts.map +1 -0
  522. package/tmlpd-pi-extension/dist/index.js +239 -0
  523. package/tmlpd-pi-extension/dist/index.js.map +1 -0
  524. package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts +82 -0
  525. package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts.map +1 -0
  526. package/tmlpd-pi-extension/dist/memory/episodicMemory.js +145 -0
  527. package/tmlpd-pi-extension/dist/memory/episodicMemory.js.map +1 -0
  528. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts +102 -0
  529. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts.map +1 -0
  530. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js +207 -0
  531. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js.map +1 -0
  532. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts +85 -0
  533. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts.map +1 -0
  534. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js +210 -0
  535. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js.map +1 -0
  536. package/tmlpd-pi-extension/dist/providers/localProvider.d.ts +102 -0
  537. package/tmlpd-pi-extension/dist/providers/localProvider.d.ts.map +1 -0
  538. package/tmlpd-pi-extension/dist/providers/localProvider.js +338 -0
  539. package/tmlpd-pi-extension/dist/providers/localProvider.js.map +1 -0
  540. package/tmlpd-pi-extension/dist/providers/registry.d.ts +55 -0
  541. package/tmlpd-pi-extension/dist/providers/registry.d.ts.map +1 -0
  542. package/tmlpd-pi-extension/dist/providers/registry.js +138 -0
  543. package/tmlpd-pi-extension/dist/providers/registry.js.map +1 -0
  544. package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts +68 -0
  545. package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts.map +1 -0
  546. package/tmlpd-pi-extension/dist/routing/advancedRouter.js +332 -0
  547. package/tmlpd-pi-extension/dist/routing/advancedRouter.js.map +1 -0
  548. package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts +101 -0
  549. package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts.map +1 -0
  550. package/tmlpd-pi-extension/dist/tools/tmlpdTools.js +368 -0
  551. package/tmlpd-pi-extension/dist/tools/tmlpdTools.js.map +1 -0
  552. package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts +96 -0
  553. package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts.map +1 -0
  554. package/tmlpd-pi-extension/dist/utils/batchProcessor.js +170 -0
  555. package/tmlpd-pi-extension/dist/utils/batchProcessor.js.map +1 -0
  556. package/tmlpd-pi-extension/dist/utils/compression.d.ts +61 -0
  557. package/tmlpd-pi-extension/dist/utils/compression.d.ts.map +1 -0
  558. package/tmlpd-pi-extension/dist/utils/compression.js +281 -0
  559. package/tmlpd-pi-extension/dist/utils/compression.js.map +1 -0
  560. package/tmlpd-pi-extension/dist/utils/reliability.d.ts +74 -0
  561. package/tmlpd-pi-extension/dist/utils/reliability.d.ts.map +1 -0
  562. package/tmlpd-pi-extension/dist/utils/reliability.js +177 -0
  563. package/tmlpd-pi-extension/dist/utils/reliability.js.map +1 -0
  564. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts +117 -0
  565. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts.map +1 -0
  566. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js +246 -0
  567. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js.map +1 -0
  568. package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts +50 -0
  569. package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts.map +1 -0
  570. package/tmlpd-pi-extension/dist/utils/tokenUtils.js +124 -0
  571. package/tmlpd-pi-extension/dist/utils/tokenUtils.js.map +1 -0
  572. package/tmlpd-pi-extension/examples/QUICKSTART.md +183 -0
  573. package/tmlpd-pi-extension/package-lock.json +79 -0
  574. package/tmlpd-pi-extension/package.json +172 -0
  575. package/tmlpd-pi-extension/python/examples.py +53 -0
  576. package/tmlpd-pi-extension/python/integrations.py +330 -0
  577. package/tmlpd-pi-extension/python/setup.py +28 -0
  578. package/tmlpd-pi-extension/python/tmlpd.py +369 -0
  579. package/tmlpd-pi-extension/qna/REDDIT_GAP_ANALYSIS.md +299 -0
  580. package/tmlpd-pi-extension/qna/TMLPD_QNA.md +751 -0
  581. package/tmlpd-pi-extension/skill/SKILL.md +238 -0
  582. package/tmlpd-pi-extension/src/cache/responseCache.ts +147 -0
  583. package/tmlpd-pi-extension/src/cost/costTracker.ts +302 -0
  584. package/tmlpd-pi-extension/src/index.ts +232 -0
  585. package/tmlpd-pi-extension/src/memory/episodicMemory.ts +257 -0
  586. package/tmlpd-pi-extension/src/orchestration/haloOrchestrator.ts +266 -0
  587. package/tmlpd-pi-extension/src/orchestration/mctsWorkflow.ts +262 -0
  588. package/tmlpd-pi-extension/src/providers/localProvider.ts +406 -0
  589. package/tmlpd-pi-extension/src/providers/registry.ts +164 -0
  590. package/tmlpd-pi-extension/src/routing/ensembleVoting.ts +159 -0
  591. package/tmlpd-pi-extension/src/routing/queryTypePresets.ts +136 -0
  592. package/tmlpd-pi-extension/src/tools/tmlpdTools.ts +433 -0
  593. package/tmlpd-pi-extension/src/utils/batchProcessor.ts +232 -0
  594. package/tmlpd-pi-extension/src/utils/compression.ts +325 -0
  595. package/tmlpd-pi-extension/src/utils/reliability.ts +221 -0
  596. package/tmlpd-pi-extension/src/utils/tokenUtils.ts +145 -0
  597. package/tmlpd-pi-extension/tsconfig.json +18 -0
  598. package/tsconfig.build.json +29 -0
  599. package/tsconfig.json +18 -0
  600. package/README.md.bak +0 -1185
  601. package/src/routing/advancedRouter.ts.bak +0 -650
  602. package/test.js.bak +0 -376
  603. /package/{llms-full.txt.bak → docs/llms-full.txt} +0 -0
package/docs/demo.html ADDED
@@ -0,0 +1,416 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>A3M Router - One prompt in. The right model out.</title>
7
+ <style>
8
+ * { margin: 0; padding: 0; box-sizing: border-box; }
9
+
10
+ body {
11
+ background: #0d1117;
12
+ color: #e6edf3;
13
+ font-family: 'JetBrains Mono', 'Fira Code', 'SF Mono', Monaco, monospace;
14
+ min-height: 100vh;
15
+ display: flex;
16
+ flex-direction: column;
17
+ align-items: center;
18
+ justify-content: center;
19
+ padding: 20px;
20
+ }
21
+
22
+ .container { max-width: 900px; width: 100%; }
23
+
24
+ .header { text-align: center; margin-bottom: 32px; }
25
+ h1 { font-size: 2.2rem; color: #58a6ff; margin-bottom: 8px; }
26
+ .tagline { font-size: 1.2rem; color: #a371f7; margin-bottom: 16px; }
27
+ .subtitle { color: #8b949e; font-size: 0.95rem; }
28
+
29
+ .scene {
30
+ background: #161b22;
31
+ border: 1px solid #30363d;
32
+ border-radius: 12px;
33
+ padding: 24px;
34
+ margin: 16px 0;
35
+ display: none;
36
+ animation: fadeIn 0.5s ease;
37
+ }
38
+ .scene.active { display: block; }
39
+
40
+ @keyframes fadeIn {
41
+ from { opacity: 0; transform: translateY(20px); }
42
+ to { opacity: 1; transform: translateY(0); }
43
+ }
44
+
45
+ .line { margin: 6px 0; line-height: 1.6; }
46
+ .comment { color: #8b949e; }
47
+ .keyword { color: #ff7b72; }
48
+ .string { color: #a5d6ff; }
49
+
50
+ .box {
51
+ background: #21262d;
52
+ border-radius: 8px;
53
+ padding: 16px;
54
+ margin: 12px 0;
55
+ }
56
+ .box.success { border-left: 3px solid #3fb950; }
57
+ .box.info { border-left: 3px solid #58a6ff; }
58
+ .box.warning { border-left: 3px solid #d29922; }
59
+ .box.error { border-left: 3px solid #f85149; }
60
+
61
+ .success-text { color: #3fb950; }
62
+ .info-text { color: #58a6ff; }
63
+ .warning-text { color: #d29922; }
64
+ .muted { color: #8b949e; }
65
+ .money { color: #3fb950; font-size: 1.4rem; font-weight: bold; }
66
+
67
+ .providers {
68
+ display: flex;
69
+ flex-wrap: wrap;
70
+ gap: 8px;
71
+ margin: 12px 0;
72
+ }
73
+ .provider {
74
+ background: #30363d;
75
+ padding: 4px 10px;
76
+ border-radius: 4px;
77
+ font-size: 0.8rem;
78
+ color: #8b949e;
79
+ }
80
+ .provider.highlight { background: #238636; color: white; }
81
+
82
+ .comparison {
83
+ display: flex;
84
+ gap: 20px;
85
+ margin: 16px 0;
86
+ }
87
+ .col {
88
+ flex: 1;
89
+ padding: 16px;
90
+ border-radius: 8px;
91
+ text-align: center;
92
+ }
93
+ .col.bad { background: rgba(248,81,73,0.1); border: 1px solid rgba(248,81,73,0.3); }
94
+ .col.good { background: rgba(63,185,80,0.1); border: 1px solid rgba(63,185,80,0.3); }
95
+ .col .label { font-size: 0.85rem; color: #8b949e; margin-bottom: 8px; }
96
+ .col .amount { font-size: 2rem; font-weight: bold; }
97
+ .col.bad .amount { color: #f85149; }
98
+ .col.good .amount { color: #3fb950; }
99
+ .col .sub { font-size: 0.8rem; color: #8b949e; margin-top: 4px; }
100
+
101
+ .ascii {
102
+ background: #0d1117;
103
+ padding: 12px;
104
+ border-radius: 6px;
105
+ font-size: 0.8rem;
106
+ white-space: pre;
107
+ overflow-x: auto;
108
+ }
109
+
110
+ .install-box {
111
+ background: #161b22;
112
+ border: 2px solid #58a6ff;
113
+ border-radius: 12px;
114
+ padding: 24px;
115
+ text-align: center;
116
+ }
117
+ .install-cmd {
118
+ background: #0d1117;
119
+ padding: 12px 24px;
120
+ border-radius: 6px;
121
+ font-size: 1.1rem;
122
+ color: #3fb950;
123
+ margin: 12px 0;
124
+ font-family: monospace;
125
+ }
126
+
127
+ .features {
128
+ display: grid;
129
+ grid-template-columns: repeat(2, 1fr);
130
+ gap: 12px;
131
+ margin: 16px 0;
132
+ }
133
+ .feature {
134
+ background: #21262d;
135
+ padding: 12px;
136
+ border-radius: 6px;
137
+ font-size: 0.85rem;
138
+ }
139
+ .feature-name { color: #58a6ff; font-weight: bold; margin-bottom: 4px; }
140
+
141
+ .stat-row {
142
+ display: flex;
143
+ justify-content: center;
144
+ gap: 32px;
145
+ margin: 16px 0;
146
+ }
147
+ .stat { text-align: center; }
148
+ .stat-value { font-size: 1.5rem; font-weight: bold; color: #58a6ff; }
149
+ .stat-label { font-size: 0.8rem; color: #8b949e; }
150
+
151
+ .progress { display: flex; gap: 8px; justify-content: center; margin: 20px 0; }
152
+ .dot { width: 10px; height: 10px; background: #30363d; border-radius: 50%; }
153
+ .dot.done { background: #58a6ff; }
154
+
155
+ .footer {
156
+ margin-top: 24px;
157
+ color: #8b949e;
158
+ text-align: center;
159
+ font-size: 0.85rem;
160
+ }
161
+ </style>
162
+ </head>
163
+ <body>
164
+ <div class="container">
165
+ <!-- SCENE 1: One line change -->
166
+ <div class="scene active" id="s1">
167
+ <div class="header">
168
+ <h1>🔀 A3M Router</h1>
169
+ <p class="tagline">One prompt in. The right model out.</p>
170
+ <p class="subtitle">47+ providers. Budget enforcement. Semantic cache. Intelligent failover.</p>
171
+ </div>
172
+
173
+ <div class="box error">
174
+ <div class="line comment"># Your app today — every request goes to GPT-4o</div>
175
+ <div class="line keyword">const</span> response = <span class="keyword">await</span> openai.chat.completions.create({</div>
176
+ <div class="line"> model: <span class="string">"gpt-4o"</span>,</div>
177
+ <div class="line"> messages: [{ role: <span class="string">"user"</span>, content: <span class="string">"Explain quantum entanglement"</span> }]</div>
178
+ <div class="line">});</div>
179
+ </div>
180
+
181
+ <div class="box error">
182
+ <div class="line" style="color: #f85149;">❌ $0.003 per request — no fallback if OpenAI goes down</div>
183
+ </div>
184
+
185
+ <div class="box info">
186
+ <div class="line comment"># One line change — A3M routes to the cheapest capable model</div>
187
+ <div class="line keyword">const</span> response = <span class="keyword">await</span> fetch(<span class="string">"http://localhost:8787/v1/chat/completions"</span>, {</div>
188
+ <div class="line"> body: JSON.stringify({</div>
189
+ <div class="line"> model: <span class="string">"auto"</span>, <span class="comment">// ← A3M picks the best model</span></div>
190
+ <div class="line"> messages: [{ role: <span class="string">"user"</span>, content: <span class="string">"Explain quantum entanglement"</span> }]</div>
191
+ <div class="line"> })</div>
192
+ <div class="line">});</div>
193
+ </div>
194
+
195
+ <div class="box success">
196
+ <div class="line success-text">✅ Routed to: Groq (FREE)</div>
197
+ <div class="line muted"> $0.00 per request — automatic fallback chain if Groq fails</div>
198
+ </div>
199
+ </div>
200
+
201
+ <!-- SCENE 2: Providers -->
202
+ <div class="scene" id="s2">
203
+ <h2 style="color: #58a6ff; margin-bottom: 16px;">🌏 47+ Providers</h2>
204
+
205
+ <div class="box info">
206
+ <div class="line info-text">Chinese Providers (special handling)</div>
207
+ <div class="providers">
208
+ <span class="provider highlight">Groq (FREE)</span>
209
+ <span class="provider">DeepSeek</span>
210
+ <span class="provider">Kimi</span>
211
+ <span class="provider">Qwen</span>
212
+ <span class="provider">Zhipu</span>
213
+ <span class="provider">Yi</span>
214
+ <span class="provider">Stepfun</span>
215
+ <span class="provider">Moonshot</span>
216
+ <span class="provider">01.AI</span>
217
+ <span class="provider">Tencent</span>
218
+ <span class="provider">Baidu</span>
219
+ <span class="provider">Alibaba</span>
220
+ </div>
221
+ </div>
222
+
223
+ <div class="box info">
224
+ <div class="line info-text">Global Providers</div>
225
+ <div class="providers">
226
+ <span class="provider">OpenAI</span>
227
+ <span class="provider">Anthropic</span>
228
+ <span class="provider">Google</span>
229
+ <span class="provider">Mistral</span>
230
+ <span class="provider">Cohere</span>
231
+ <span class="provider">Groq</span>
232
+ <span class="provider">Perplexity</span>
233
+ <span class="provider">AWS Bedrock</span>
234
+ <span class="provider">Azure</span>
235
+ <span class="provider">Replicate</span>
236
+ <span class="provider">HuggingFace</span>
237
+ </div>
238
+ </div>
239
+
240
+ <div class="box success">
241
+ <div class="line success-text">✅ A3M routes to the cheapest healthy provider</div>
242
+ <div class="line muted"> Health checks + circuit breakers + intelligent fallback</div>
243
+ </div>
244
+ </div>
245
+
246
+ <!-- SCENE 3: Cost Savings -->
247
+ <div class="scene" id="s3">
248
+ <h2 style="color: #3fb950; margin-bottom: 16px;">💰 Save 62% on API Costs</h2>
249
+
250
+ <div class="comparison">
251
+ <div class="col bad">
252
+ <div class="label">WITHOUT A3M</div>
253
+ <div class="amount">$0.003</div>
254
+ <div class="sub">per request (GPT-4o)</div>
255
+ <div class="sub" style="margin-top: 8px;">$3.41 per 1K requests</div>
256
+ </div>
257
+ <div class="col good">
258
+ <div class="label">WITH A3M</div>
259
+ <div class="amount">$0.00</div>
260
+ <div class="sub">47% → Groq (free)</div>
261
+ <div class="sub">30% → DeepSeek ($0.14/M)</div>
262
+ <div class="sub">23% → GPT-4o-mini ($0.15/M)</div>
263
+ <div class="sub" style="margin-top: 8px;">$1.24 per 1K requests</div>
264
+ </div>
265
+ </div>
266
+
267
+ <div class="stat-row">
268
+ <div class="stat">
269
+ <div class="stat-value">62%</div>
270
+ <div class="stat-label">Cost Savings</div>
271
+ </div>
272
+ <div class="stat">
273
+ <div class="stat-value">70.32</div>
274
+ <div class="stat-label">Routing Accuracy</div>
275
+ </div>
276
+ <div class="stat">
277
+ <div class="stat-value">&lt;1ms</div>
278
+ <div class="stat-label">Routing Latency</div>
279
+ </div>
280
+ </div>
281
+
282
+ <div class="box success">
283
+ <div class="line success-text">💰 $2,175 saved per 1M requests</div>
284
+ <div class="line muted"> At 1000 queries/day: $547 saved yearly</div>
285
+ </div>
286
+ </div>
287
+
288
+ <!-- SCENE 4: Features -->
289
+ <div class="scene" id="s4">
290
+ <h2 style="color: #58a6ff; margin-bottom: 16px;">✨ Features</h2>
291
+
292
+ <div class="features">
293
+ <div class="feature">
294
+ <div class="feature-name">🧠 Adaptive Memory</div>
295
+ <div class="muted">Learns from your usage. Updates model quality scores with every request. No retraining.</div>
296
+ </div>
297
+ <div class="feature">
298
+ <div class="feature-name">💾 Semantic Cache</div>
299
+ <div class="muted">Embedding-based lookup. 30%+ hit rate on repeated queries.</div>
300
+ </div>
301
+ <div class="feature">
302
+ <div class="feature-name">🛡️ Budget Enforcement</div>
303
+ <div class="muted">Per-user/team caps. Alerts at 50%/80%/100%. No surprises.</div>
304
+ </div>
305
+ <div class="feature">
306
+ <div class="feature-name">🔄 Intelligent Failover</div>
307
+ <div class="muted">Circuit breaker (3 fails → 60s cooldown). Automatic fallback chains.</div>
308
+ </div>
309
+ <div class="feature">
310
+ <div class="feature-name">⚡ Per-Provider Retry</div>
311
+ <div class="muted">Custom timeout per provider. Exponential backoff. 429 handling.</div>
312
+ </div>
313
+ <div class="feature">
314
+ <div class="feature-name">🎯 12-Signal Routing</div>
315
+ <div class="muted">Domain, task, structure, action verb, multi-step. Zero ML.</div>
316
+ </div>
317
+ </div>
318
+
319
+ <div class="box info">
320
+ <div class="line info-text">Zero ML. No GPU required. Starts in &lt;100ms.</div>
321
+ </div>
322
+ </div>
323
+
324
+ <!-- SCENE 5: Failover -->
325
+ <div class="scene" id="s5">
326
+ <h2 style="color: #d29922; margin-bottom: 16px;">🔄 Intelligent Failover</h2>
327
+
328
+ <div class="ascii">
329
+ [Groq] — Attempting connection...
330
+ [Groq] — ✗ FAILED — 503 Service Unavailable
331
+ [Circuit Breaker] — Tripped after 3 failures
332
+ [DeepSeek] — HEALTHY — Switching...
333
+ [DeepSeek] — ✅ Response delivered ✓
334
+ </div>
335
+
336
+ <div class="box success">
337
+ <div class="line success-text">✅ Your app never knew there was a problem</div>
338
+ <div class="line muted"> 99.9% uptime — automatic provider health scoring + fallback</div>
339
+ </div>
340
+
341
+ <div class="box warning">
342
+ <div class="line warning-text">📊 Provider Health Monitoring</div>
343
+ <div class="line muted"> Latency + error rate → health score → automatic routing</div>
344
+ </div>
345
+ </div>
346
+
347
+ <!-- SCENE 6: One Command -->
348
+ <div class="scene" id="s6">
349
+ <div class="install-box">
350
+ <div class="tagline" style="font-size: 1.3rem;">Get started in 10 seconds</div>
351
+ <div class="install-cmd">npm install -g adaptive-memory-multi-model-router</div>
352
+ <div class="muted"># Auto-detects your API keys — zero config</div>
353
+ <div class="install-cmd" style="color: #58a6ff;">npx a3m-router serve</div>
354
+ <div class="muted"># Now your app: model: "gpt-4o" → model: "auto"</div>
355
+ </div>
356
+
357
+ <div class="stat-row" style="margin-top: 24px;">
358
+ <div class="stat">
359
+ <div class="stat-value">1 line</div>
360
+ <div class="stat-label">Code change</div>
361
+ </div>
362
+ <div class="stat">
363
+ <div class="stat-value">0</div>
364
+ <div class="stat-label">API keys to manage</div>
365
+ </div>
366
+ <div class="stat">
367
+ <div class="stat-value">&lt;100ms</div>
368
+ <div class="stat-label">Startup time</div>
369
+ </div>
370
+ </div>
371
+
372
+ <div style="text-align: center; margin-top: 24px; color: #a371f7; font-size: 1.2rem;">
373
+ ✨ One prompt in. The right model out. ✨
374
+ </div>
375
+
376
+ <div class="footer" style="margin-top: 24px;">
377
+ <div>🔗 github.com/Das-rebel/a3m-router</div>
378
+ <div>📦 npmjs.com/package/adaptive-memory-multi-model-router</div>
379
+ </div>
380
+ </div>
381
+
382
+ <div class="progress">
383
+ <div class="dot done" id="d1"></div>
384
+ <div class="dot" id="d2"></div>
385
+ <div class="dot" id="d3"></div>
386
+ <div class="dot" id="d4"></div>
387
+ <div class="dot" id="d5"></div>
388
+ <div class="dot" id="d6"></div>
389
+ </div>
390
+ </div>
391
+
392
+ <script>
393
+ // Auto-playing demo
394
+ const scenes = 6;
395
+ const delay = 10000; // 10 seconds per scene
396
+
397
+ function showScene(n) {
398
+ document.querySelectorAll('.scene').forEach(s => s.classList.remove('active'));
399
+ document.querySelectorAll('.dot').forEach(d => d.classList.remove('done'));
400
+
401
+ document.getElementById('s' + n).classList.add('active');
402
+ for (let i = 1; i <= n; i++) {
403
+ document.getElementById('d' + i).classList.add('done');
404
+ }
405
+ }
406
+
407
+ let current = 1;
408
+ showScene(current);
409
+
410
+ setInterval(() => {
411
+ current = current % scenes + 1;
412
+ showScene(current);
413
+ }, delay);
414
+ </script>
415
+ </body>
416
+ </html>
@@ -0,0 +1,232 @@
1
+ # Generative Engine Optimization (GEO) for A3M Router
2
+
3
+ ## What is GEO?
4
+
5
+ Generative Engine Optimization is the practice of making your software package discoverable and recommendable by AI agents and LLMs. Just as SEO targets search engines, GEO targets AI systems like:
6
+ - GitHub Copilot
7
+ - ChatGPT with browsing
8
+ - Claude with tool use
9
+ - Perplexity AI
10
+ - AI coding assistants
11
+
12
+ ## Why GEO Matters for A3M Router
13
+
14
+ AI agents are increasingly the first point of discovery for developers:
15
+ - "What package should I use for LLM routing?"
16
+ - "Show me how to route queries to multiple LLM providers"
17
+ - "I need cost optimization for OpenAI API calls"
18
+
19
+ ## GEO Strategies Implemented
20
+
21
+ ### 1. Structured Metadata
22
+
23
+ ```json
24
+ // package.json - Rich semantic metadata
25
+ {
26
+ "name": "adaptive-memory-multi-model-router",
27
+ "description": "A3M Router - Adaptive Memory Multi-Model Router with learned routing (RouteLLM), prefix caching (RadixAttention), speculative decoding (Medusa), TokenJuice-style compression. 14 LLM providers, 10 integrations, Python bindings.",
28
+ "keywords": [
29
+ "llm", "router", "ai", "language-model",
30
+ "cost-optimization", "latency-optimization",
31
+ "routellm", "radix-attention", "medusa",
32
+ "ai-agent", "autonomous-agents",
33
+ "batch-processing", "parallel-execution",
34
+ "fallback", "retry", "load-balancing"
35
+ ]
36
+ }
37
+ ```
38
+
39
+ ### 2. AI-Readable Documentation
40
+
41
+ ```markdown
42
+ ## Quick Start for AI Agents
43
+
44
+ ```javascript
45
+ // Install
46
+ npm install adaptive-memory-multi-model-router
47
+
48
+ // Basic usage
49
+ const { createA3MRouter } = require('adaptive-memory-multi-model-router');
50
+ const router = createA3MRouter();
51
+
52
+ // Route query to best LLM
53
+ const result = await router.route("Write Python code");
54
+ console.log(result.primary_model); // "groq/llama-3.3-70b"
55
+ ```
56
+
57
+ ### 3. Intent-Based Examples
58
+
59
+ AI agents match user intent to code patterns:
60
+
61
+ | User Intent | GEO-Optimized Example |
62
+ |-------------|----------------------|
63
+ | "Route LLM queries" | `router.route(query)` |
64
+ | "Compare LLM costs" | `estimateCost(tokens, model)` |
65
+ | "Batch process prompts" | `router.routeBatch(queries)` |
66
+ | "Cache LLM responses" | `router.cache.get(key)` |
67
+ | "Track API spending" | `router.costTracker.getSummary()` |
68
+
69
+ ### 4. LLM-Friendly Code Patterns
70
+
71
+ ```javascript
72
+ // Pattern: Cost-aware routing
73
+ const { routeQuery } = require('adaptive-memory-multi-model-router');
74
+
75
+ // AI agents extract: "route query with cost optimization"
76
+ const result = routeQuery("Explain quantum physics", {
77
+ budget_multiplier: 0.5 // Prefer cheaper models
78
+ });
79
+
80
+ // Pattern: Multi-provider fallback
81
+ const { createA3MRouter } = require('adaptive-memory-multi-model-router');
82
+
83
+ // AI agents extract: "fallback to multiple LLM providers"
84
+ const router = createA3MRouter({
85
+ providers: ['groq', 'cerebras', 'mistral'] // Auto-fallback chain
86
+ });
87
+ ```
88
+
89
+ ### 5. Semantic README Structure
90
+
91
+ ```markdown
92
+ # A3M Router
93
+
94
+ ## What Problem This Solves
95
+ Routing LLM queries to the optimal provider based on cost, quality, and latency.
96
+
97
+ ## When to Use This
98
+ - You use multiple LLM providers (OpenAI, Anthropic, Groq, etc.)
99
+ - You want automatic cost optimization
100
+ - You need fallback when providers fail
101
+ - You process prompts in batches
102
+
103
+ ## Installation
104
+ npm install adaptive-memory-multi-model-router
105
+
106
+ ## Common Use Cases
107
+
108
+ ### 1. Route to cheapest provider for simple queries
109
+ ### 2. Route to best-quality provider for complex tasks
110
+ ### 3. Batch process with automatic provider selection
111
+ ### 4. Track costs across all providers
112
+
113
+ ## API Reference
114
+ [Structured for LLM parsing]
115
+ ```
116
+
117
+ ## GEO Content for AI Discovery
118
+
119
+ ### AI-Optimized Titles
120
+
121
+ | Bad | Good (GEO) |
122
+ |-----|-----------|
123
+ | "A3M Router" | "LLM Router with Cost Optimization" |
124
+ | "Multi-model package" | "Adaptive LLM Routing for Multiple Providers" |
125
+ | "NPM library" | "Production-Ready LLM Load Balancer" |
126
+
127
+ ### LLM-Targeted Descriptions
128
+
129
+ ```markdown
130
+ ## For AI Assistants
131
+
132
+ This package provides:
133
+ - **Intent**: Route LLM queries to optimal providers
134
+ - **Problem**: Cost optimization across multiple LLM APIs
135
+ - **Solution**: Learned routing with automatic provider selection
136
+ - **Benefit**: 50-80% cost reduction with quality preservation
137
+
138
+ ## Keywords for AI Indexing
139
+ LLM routing, cost optimization, multi-provider, OpenAI alternative,
140
+ Claude routing, Groq integration, batch processing, API load balancing,
141
+ LLM fallback, provider switching, token optimization, response caching
142
+ ```
143
+
144
+ ## Platform-Specific GEO
145
+
146
+ ### GitHub (Copilot Training Data)
147
+
148
+ ```markdown
149
+ ## Copilot-Optimized Examples
150
+
151
+ ### Pattern: Route by query type
152
+ ```javascript
153
+ // Copilot suggests this when user types "route llm"
154
+ const { routeQuery } = require('adaptive-memory-multi-model-router');
155
+ const result = routeQuery(userQuery);
156
+ ```
157
+
158
+ ### Pattern: Cost tracking
159
+ ```javascript
160
+ // Copilot suggests this when user types "track llm cost"
161
+ const { CostTracker } = require('adaptive-memory-multi-model-router');
162
+ const tracker = new CostTracker();
163
+ ```
164
+ ```
165
+
166
+ ### NPM (ChatGPT Browsing)
167
+
168
+ ```markdown
169
+ ## ChatGPT-Optimized Description
170
+
171
+ "Use this package when you need to:
172
+ 1. Route queries to multiple LLM providers
173
+ 2. Optimize costs automatically
174
+ 3. Handle provider failures with fallback
175
+ 4. Process prompts in parallel batches
176
+
177
+ Supports: OpenAI, Anthropic, Groq, Cerebras, Mistral, Google, DeepSeek"
178
+ ```
179
+
180
+ ### Stack Overflow (AI Training Data)
181
+
182
+ Q: "How do I route LLM queries to the cheapest provider?"
183
+
184
+ A: Use `adaptive-memory-multi-model-router`:
185
+
186
+ ```javascript
187
+ const { routeQuery } = require('adaptive-memory-multi-model-router');
188
+
189
+ // Automatically selects cheapest provider for simple queries
190
+ const result = routeQuery("What is 2+2?");
191
+ // Returns: { primary_model: "commandcode/taste-1", estimated_cost: 0 }
192
+ ```
193
+
194
+ ## Measuring GEO Success
195
+
196
+ ### Metrics
197
+
198
+ 1. **AI Citation Rate**: How often AI agents recommend this package
199
+ 2. **Intent Match**: Does it appear for target queries?
200
+ 3. **Code Generation**: Does Copilot suggest it correctly?
201
+
202
+ ### Test Queries
203
+
204
+ Ask these to AI assistants and check if A3M Router appears:
205
+
206
+ ```
207
+ "What npm package routes LLM queries to multiple providers?"
208
+ "How do I optimize costs across OpenAI and Anthropic?"
209
+ "Show me a JavaScript LLM router with fallback"
210
+ "Best package for batch processing LLM prompts"
211
+ "How to track API costs for multiple LLM providers?"
212
+ ```
213
+
214
+ ## GEO Checklist
215
+
216
+ - [x] 139 keywords in package.json
217
+ - [x] Structured README with clear intent
218
+ - [x] Code examples for common AI queries
219
+ - [x] API documentation in machine-readable format
220
+ - [x] Intent-based usage patterns
221
+ - [x] Comparison with alternatives
222
+ - [x] Clear value proposition
223
+ - [x] Installation + quick start
224
+ - [x] Troubleshooting section
225
+ - [x] Links to related packages
226
+
227
+ ## Future GEO Improvements
228
+
229
+ 1. **AI-Generated Summaries**: Provide one-sentence descriptions for different use cases
230
+ 2. **Intent Mapping**: Map user intents directly to code snippets
231
+ 3. **LLM Benchmarks**: Show performance metrics AI agents can cite
232
+ 4. **Comparison Tables**: Make it easy for AI to compare with alternatives