adaptive-memory-multi-model-router 2.14.46 → 2.14.48

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 (598) hide show
  1. package/{docs/llms.txt → llms.txt.bak} +6 -6
  2. package/package.json +270 -72
  3. package/src/routing/advancedRouter.ts.bak +650 -0
  4. package/test.js.bak +376 -0
  5. package/.dockerignore +0 -82
  6. package/.env.example +0 -303
  7. package/.github/DISCUSSIONS_WELCOME.md +0 -27
  8. package/.github/DISCUSSION_TEMPLATE.yml +0 -5
  9. package/.github/FUNDING.yml +0 -2
  10. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -94
  11. package/.github/ISSUE_TEMPLATE/config.yml +0 -17
  12. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -71
  13. package/.github/PULL_REQUEST_TEMPLATE.md +0 -71
  14. package/.github/dependabot.yml +0 -9
  15. package/.github/workflows/auto-publish.yml +0 -51
  16. package/.github/workflows/ci.yml +0 -263
  17. package/.github/workflows/codeql.yml +0 -38
  18. package/.github/workflows/npm-publish.yml +0 -20
  19. package/.github/workflows/pages.yml +0 -37
  20. package/.github/workflows/stale.yml +0 -54
  21. package/.publish-tick +0 -1
  22. package/.well-known/ai-plugin.json +0 -16
  23. package/AGENT_COUNCIL_FINDINGS.md +0 -142
  24. package/ARCHITECTURE.md +0 -346
  25. package/AUDIT_REPORT.md +0 -28
  26. package/CODE_OF_CONDUCT.md +0 -128
  27. package/CONTRIBUTING.md +0 -50
  28. package/CONTRIBUTORS.md +0 -20
  29. package/Dockerfile +0 -53
  30. package/Dockerfile.proxy +0 -33
  31. package/HEALTH_REPORT.md +0 -118
  32. package/IMPROVEMENT_PLAN.md +0 -107
  33. package/LANDING.md +0 -43
  34. package/LAUNCH-PAIN-DRIVEN.md +0 -339
  35. package/LAUNCH.md +0 -337
  36. package/LAUNCH_CHECKLIST.md +0 -141
  37. package/LAUNCH_SNAPSHOT.md +0 -260
  38. package/MANIFESTO.md +0 -41
  39. package/POPULARITY_BOOSTERS.md +0 -285
  40. package/PR_STATUS_REPORT.md +0 -148
  41. package/REDESIGN.md +0 -95
  42. package/RUNKIT.md +0 -83
  43. package/SECURITY.md +0 -29
  44. package/SUBMISSIONS.md +0 -43
  45. package/_schema.html +0 -53
  46. package/ai-plugin.json +0 -16
  47. package/articles/AI_AGENT_LLM_ROUTING.md +0 -150
  48. package/articles/CHINESE_DIRECTORIES.md +0 -100
  49. package/articles/CHINESE_SUBMISSIONS_READY.md +0 -322
  50. package/articles/COMPETITOR_ALERTS.md +0 -31
  51. package/articles/COMPLETE_POSTING_DIRECTORY.md +0 -147
  52. package/articles/CONTENT_STRUCTURE.md +0 -292
  53. package/articles/DEVTO_COST_GUIDE.md +0 -473
  54. package/articles/DEVTO_FINAL.md +0 -416
  55. package/articles/DEVTO_MULTI_PROVIDER.md +0 -542
  56. package/articles/DEVTO_READY.md +0 -255
  57. package/articles/DEVTO_V2_ANNOUNCEMENT.md +0 -160
  58. package/articles/DEVTO_VIRAL_GROWTH.md +0 -280
  59. package/articles/FRESH_devto.md +0 -460
  60. package/articles/FRESH_devto_2026_05.md +0 -73
  61. package/articles/FRESH_hackernews.md +0 -14
  62. package/articles/FRESH_reddit_ml.md +0 -90
  63. package/articles/FRESH_reddit_node.md +0 -198
  64. package/articles/FRESH_reddit_sideproject.md +0 -72
  65. package/articles/FRESH_reddit_webdev.md +0 -130
  66. package/articles/FROM_ZERO_TO_10K.md +0 -107
  67. package/articles/HN_10X_BETTER.md +0 -430
  68. package/articles/HN_ACCOUNT_GUIDE.md +0 -21
  69. package/articles/HN_CHINESE_STYLE.md +0 -308
  70. package/articles/HN_FINAL.md +0 -148
  71. package/articles/HN_POSTED_VERSION.md +0 -56
  72. package/articles/HN_POST_READY.md +0 -137
  73. package/articles/HN_RESEARCH.md +0 -364
  74. package/articles/HN_SHOW_routerarena.md +0 -17
  75. package/articles/HN_TIMING_GUIDE.md +0 -52
  76. package/articles/INDIEHACKERS_POST.md +0 -52
  77. package/articles/INDIEHACKERS_READY.md +0 -120
  78. package/articles/LLM_BENCHMARK_DEEP_DIVE.md +0 -153
  79. package/articles/MASTER_POSTING_DIRECTORY.md +0 -189
  80. package/articles/NEWSLETTER_SEND_NOW.md +0 -259
  81. package/articles/NEWSLETTER_SUBMISSIONS.md +0 -112
  82. package/articles/PAIN-DRIVEN-devto-v2.md +0 -308
  83. package/articles/PAIN-DRIVEN-devto-v3.md +0 -268
  84. package/articles/PAIN-DRIVEN-devto.md +0 -242
  85. package/articles/PAIN-DRIVEN-hackernews-v2.md +0 -138
  86. package/articles/PAIN-DRIVEN-hackernews-v3.md +0 -151
  87. package/articles/PAIN-DRIVEN-hackernews.md +0 -131
  88. package/articles/PAIN-DRIVEN-reddit-v2.md +0 -301
  89. package/articles/PAIN-DRIVEN-reddit-v3.md +0 -236
  90. package/articles/PAIN-DRIVEN-reddit.md +0 -218
  91. package/articles/PAIN-DRIVEN-twitter-v2.md +0 -110
  92. package/articles/PAIN-DRIVEN-twitter-v3.md +0 -121
  93. package/articles/PAIN-DRIVEN-twitter.md +0 -120
  94. package/articles/PORTKEY_VS_A3M.md +0 -147
  95. package/articles/POSTING_KIT_2026_05.md +0 -67
  96. package/articles/PRESS_KIT_routerarena.md +0 -77
  97. package/articles/PRODUCTHUNT_LISTING.md +0 -48
  98. package/articles/PRODUCTHUNT_READY.md +0 -106
  99. package/articles/PR_PLAN_vault.md +0 -125
  100. package/articles/REDDIT_FINAL.md +0 -232
  101. package/articles/REDDIT_POST.md +0 -67
  102. package/articles/REDDIT_SUBMISSION_READY.md +0 -348
  103. package/articles/ROUTERARENA_LEADER.md +0 -45
  104. package/articles/SHOW_HN_FINAL.md +0 -29
  105. package/articles/TWEETS_10K_DOWNLOADS.md +0 -47
  106. package/articles/TWEETS_BENCHMARK_FIRST.md +0 -46
  107. package/articles/TWEETS_MCP_PLAY.md +0 -51
  108. package/articles/TWEETS_SEQUENTIAL_BROKEN.md +0 -49
  109. package/articles/TWEETS_WHY_BUILD.md +0 -54
  110. package/articles/TWEETS_routerarena_leader.md +0 -53
  111. package/articles/TWEET_STORM_READY.md +0 -165
  112. package/articles/TWITTER_FINAL.md +0 -167
  113. package/articles/WHY_10X_BETTER.md +0 -261
  114. package/articles/WHY_CHINESE_STYLE_BETTER.md +0 -323
  115. package/articles/ai-discoverability-llm-routing.md +0 -210
  116. package/articles/devto-llm-routing.md +0 -138
  117. package/articles/hackernews-show-hn.md +0 -54
  118. package/articles/hashnode-llm-cost-optimization.md +0 -125
  119. package/articles/hn_show_2026_05.md +0 -11
  120. package/articles/medium-building-llm-router.md +0 -205
  121. package/articles/reddit-ml.md +0 -76
  122. package/articles/twitter-thread-cost-savings.md +0 -50
  123. package/articles/youtube-tutorial-script.md +0 -262
  124. package/assets/a3m_3blue1brown.mp4 +0 -0
  125. package/assets/banner.svg +0 -109
  126. package/assets/chart-cost-v2.svg +0 -91
  127. package/assets/chart-cost-v3.svg +0 -143
  128. package/assets/chart-features-v2.svg +0 -132
  129. package/assets/chart-features-v3.svg +0 -211
  130. package/assets/chart-growth-v2.svg +0 -122
  131. package/assets/chart-growth-v3.svg +0 -189
  132. package/assets/cost-comparison.svg +0 -134
  133. package/assets/cost-simple.svg +0 -64
  134. package/assets/demo-hn.gif +0 -0
  135. package/assets/feature-matrix.svg +0 -136
  136. package/assets/growth-chart-animated.svg +0 -76
  137. package/assets/growth-chart.svg +0 -82
  138. package/assets/growth-simple.svg +0 -69
  139. package/assets/hero-diagram.svg +0 -81
  140. package/assets/logo-new.svg +0 -21
  141. package/assets/logo.svg +0 -68
  142. package/assets/provider-comparison.svg +0 -121
  143. package/assets/social-preview-new.svg +0 -100
  144. package/assets/social-preview.svg +0 -194
  145. package/assets/social-v2.svg +0 -130
  146. package/assets/social-v3.svg +0 -212
  147. package/benchmark-provider-results.json +0 -245
  148. package/benchmark-results.json +0 -54
  149. package/council-votes/architecture-vote.md +0 -121
  150. package/council-votes/coverage-vote.md +0 -93
  151. package/data/adaptive-benchmark.json +0 -92
  152. package/data/benchmark-results.json +0 -47
  153. package/data/labeled-benchmark.json +0 -88
  154. package/demo/3blue1brown_video.py +0 -285
  155. package/demo/3blue1brown_video_v2.py +0 -310
  156. package/demo/IMPROVED_PROMPTS.md +0 -229
  157. package/demo/VEO3_PROMPTS.md +0 -269
  158. package/demo/VIDEO_PRODUCTION_GUIDE.md +0 -333
  159. package/demo/a3m_3blue1brown.mp4 +0 -0
  160. package/demo/asciinema-demo.sh +0 -195
  161. package/demo/demo-hn.tape +0 -74
  162. package/demo/demo-script.md +0 -53
  163. package/demo/demo-script.sh +0 -62
  164. package/demo/demo.svg +0 -75
  165. package/demo/frame1_ai_data_center.png +0 -0
  166. package/demo/frame1_sunset_video.mp4 +0 -0
  167. package/demo/frame2_cost_comparison.png +0 -0
  168. package/demo/frame2_cost_comparison_fallback.png +0 -0
  169. package/demo/frame3_parallel_execution.png +0 -0
  170. package/demo/frame3_parallel_execution_fallback.png +0 -0
  171. package/demo/frame4_providers.png +0 -0
  172. package/demo/frame4_providers_fallback.png +0 -0
  173. package/demo/frame5_endcard.png +0 -0
  174. package/demo/frame5_endcard_fallback.png +0 -0
  175. package/demo/new_frame1_hook.png +0 -0
  176. package/demo/new_frame2_proof.png +0 -0
  177. package/demo/new_frame3_wow.png +0 -0
  178. package/demo/new_frame4_social.png +0 -0
  179. package/demo/new_frame5_cta.png +0 -0
  180. package/demo/package.json +0 -13
  181. package/demo/product-video-final.mp4 +0 -0
  182. package/demo/product-video-hype-v1.mp4 +0 -0
  183. package/demo/product-video-v1.mp4 +0 -0
  184. package/demo/public/index.html +0 -762
  185. package/demo/recording.cast +0 -55
  186. package/demo/server.js +0 -405
  187. package/demo-new.tape +0 -71
  188. package/demo-real.sh +0 -198
  189. package/demo-simple.tape +0 -205
  190. package/demo.html +0 -520
  191. package/demo.sh +0 -85
  192. package/demo.tape +0 -259
  193. package/dist/analytics/costAnalytics.d.ts.map +0 -1
  194. package/dist/analytics/costAnalytics.js.map +0 -1
  195. package/dist/benchmark/comprehensive.js.map +0 -1
  196. package/dist/benchmark/reproducible.d.ts.map +0 -1
  197. package/dist/benchmark/reproducible.js.map +0 -1
  198. package/dist/cache/prefixCache.d.ts.map +0 -1
  199. package/dist/cache/prefixCache.js.map +0 -1
  200. package/dist/cache/responseCache.d.ts.map +0 -1
  201. package/dist/cache/responseCache.js.map +0 -1
  202. package/dist/cache/semanticCache.d.ts.map +0 -1
  203. package/dist/cache/semanticCache.js.map +0 -1
  204. package/dist/cli/setupWizard.d.ts.map +0 -1
  205. package/dist/cli/setupWizard.js.map +0 -1
  206. package/dist/cost/budgetEnforcer.d.ts.map +0 -1
  207. package/dist/cost/budgetEnforcer.js.map +0 -1
  208. package/dist/cost/costTracker.d.ts.map +0 -1
  209. package/dist/cost/costTracker.js.map +0 -1
  210. package/dist/ensemble/multiRoundDialog.js.map +0 -1
  211. package/dist/ensemble/shapleyValue.js.map +0 -1
  212. package/dist/integrations/langchainAdapter.d.ts.map +0 -1
  213. package/dist/integrations/langchainAdapter.js.map +0 -1
  214. package/dist/integrations/oauth.d.ts.map +0 -1
  215. package/dist/integrations/oauth.js.map +0 -1
  216. package/dist/integrations/scienceAdapter.js.map +0 -1
  217. package/dist/memory/autoFetch.d.ts.map +0 -1
  218. package/dist/memory/autoFetch.js.map +0 -1
  219. package/dist/memory/episodicMemory.d.ts.map +0 -1
  220. package/dist/memory/episodicMemory.js.map +0 -1
  221. package/dist/memory/hybridMemory.js.map +0 -1
  222. package/dist/memory/memoryTree.d.ts.map +0 -1
  223. package/dist/memory/memoryTree.js.map +0 -1
  224. package/dist/memory/obsidianVault.d.ts.map +0 -1
  225. package/dist/memory/obsidianVault.js.map +0 -1
  226. package/dist/memory/reasoningBank.js.map +0 -1
  227. package/dist/observability/changeWatch.d.ts.map +0 -1
  228. package/dist/observability/changeWatch.js.map +0 -1
  229. package/dist/observability/fatigueDetector.d.ts.map +0 -1
  230. package/dist/observability/fatigueDetector.js.map +0 -1
  231. package/dist/observability/index.d.ts.map +0 -1
  232. package/dist/observability/index.js.map +0 -1
  233. package/dist/observability/metrics.d.ts.map +0 -1
  234. package/dist/observability/metrics.js.map +0 -1
  235. package/dist/observability/middleware.d.ts.map +0 -1
  236. package/dist/observability/middleware.js.map +0 -1
  237. package/dist/observability/tracer.d.ts.map +0 -1
  238. package/dist/observability/tracer.js.map +0 -1
  239. package/dist/observability/types.d.ts.map +0 -1
  240. package/dist/observability/types.js.map +0 -1
  241. package/dist/orchestration/haloOrchestrator.d.ts.map +0 -1
  242. package/dist/orchestration/haloOrchestrator.js.map +0 -1
  243. package/dist/orchestration/mctsWorkflow.d.ts.map +0 -1
  244. package/dist/orchestration/mctsWorkflow.js.map +0 -1
  245. package/dist/providers/localProvider.d.ts.map +0 -1
  246. package/dist/providers/localProvider.js.map +0 -1
  247. package/dist/providers/providerConfig.d.ts.map +0 -1
  248. package/dist/providers/providerConfig.js.map +0 -1
  249. package/dist/providers/registry.d.ts.map +0 -1
  250. package/dist/providers/registry.js.map +0 -1
  251. package/dist/routing/advancedRouter.d.ts.map +0 -1
  252. package/dist/routing/advancedRouter.js.map +0 -1
  253. package/dist/routing/crossModelValidation.d.ts.map +0 -1
  254. package/dist/routing/crossModelValidation.js.map +0 -1
  255. package/dist/routing/providerHealth.d.ts.map +0 -1
  256. package/dist/routing/providerHealth.js.map +0 -1
  257. package/dist/routing/providerRetry.d.ts.map +0 -1
  258. package/dist/routing/providerRetry.js.map +0 -1
  259. package/dist/scripts/banner.js +0 -29
  260. package/dist/security/guardrails.d.ts.map +0 -1
  261. package/dist/security/guardrails.js.map +0 -1
  262. package/dist/server/dashboard.d.ts.map +0 -1
  263. package/dist/server/dashboard.js.map +0 -1
  264. package/dist/server/modelMapper.d.ts.map +0 -1
  265. package/dist/server/modelMapper.js.map +0 -1
  266. package/dist/server/proxyServer.d.ts.map +0 -1
  267. package/dist/server/proxyServer.js.map +0 -1
  268. package/dist/skills/__tests__/skill_manager.test.d.ts +0 -2
  269. package/dist/skills/__tests__/skill_manager.test.d.ts.map +0 -1
  270. package/dist/skills/__tests__/skill_manager.test.js +0 -268
  271. package/dist/skills/__tests__/skill_manager.test.js.map +0 -1
  272. package/dist/tools/tmlpdTools.d.ts.map +0 -1
  273. package/dist/tools/tmlpdTools.js.map +0 -1
  274. package/dist/tui/dashboard.d.ts.map +0 -1
  275. package/dist/tui/dashboard.js.map +0 -1
  276. package/dist/tui/index.d.ts.map +0 -1
  277. package/dist/tui/index.js.map +0 -1
  278. package/dist/utils/batchProcessor.d.ts.map +0 -1
  279. package/dist/utils/batchProcessor.js.map +0 -1
  280. package/dist/utils/compression.d.ts.map +0 -1
  281. package/dist/utils/compression.js.map +0 -1
  282. package/dist/utils/costUtils.d.ts.map +0 -1
  283. package/dist/utils/costUtils.js.map +0 -1
  284. package/dist/utils/reliability.d.ts.map +0 -1
  285. package/dist/utils/reliability.js.map +0 -1
  286. package/dist/utils/sorting.d.ts.map +0 -1
  287. package/dist/utils/sorting.js.map +0 -1
  288. package/dist/utils/speculativeDecoding.d.ts.map +0 -1
  289. package/dist/utils/speculativeDecoding.js.map +0 -1
  290. package/dist/utils/tokenUtils.d.ts.map +0 -1
  291. package/dist/utils/tokenUtils.js.map +0 -1
  292. package/docs/.nojekyll +0 -0
  293. package/docs/ANALYSIS_PRINCIPLES.md +0 -162
  294. package/docs/API.md +0 -855
  295. package/docs/ARCHITECTURAL-IMPROVEMENTS-2025.md +0 -1391
  296. package/docs/ARCHITECTURAL-IMPROVEMENTS-REVISED-2025.md +0 -1051
  297. package/docs/BENCHMARK.md +0 -170
  298. package/docs/CHINESE_PROVIDER_RELIABILITY.md +0 -37
  299. package/docs/CITATIONS.md +0 -74
  300. package/docs/CLAIMS_AND_EVIDENCE.md +0 -58
  301. package/docs/CONFIGURATION.md +0 -476
  302. package/docs/COUNCIL_DECISION.json +0 -816
  303. package/docs/COUNCIL_SUMMARY.md +0 -319
  304. package/docs/COUNCIL_V2.2_DECISION.md +0 -416
  305. package/docs/ENGINEERING_SPEC.md +0 -55
  306. package/docs/FACTORY_RESET.md +0 -34
  307. package/docs/GEO.md +0 -66
  308. package/docs/GEO_OPTIMIZATION.md +0 -30
  309. package/docs/GEO_ROOT_CAUSE.md +0 -136
  310. package/docs/GEO_STATUS.md +0 -85
  311. package/docs/GEO_TEST_RESULTS.md +0 -176
  312. package/docs/HN_CHECKLIST.md +0 -38
  313. package/docs/HN_FOUNDER_COMMENT.md +0 -17
  314. package/docs/HN_SUBMISSION_FINAL.md +0 -180
  315. package/docs/HN_SUBMISSION_V3.md +0 -56
  316. package/docs/IMPROVEMENT_ROADMAP.md +0 -515
  317. package/docs/INTEGRATIONS.md +0 -420
  318. package/docs/LANGCHAIN_INTEGRATION.md +0 -147
  319. package/docs/LLM_COUNCIL_DECISION.md +0 -508
  320. package/docs/MIDDLEWARE_CHAIN.md +0 -35
  321. package/docs/PROMO_CHECKLIST.md +0 -200
  322. package/docs/QUICKSTART.md +0 -271
  323. package/docs/QUICK_START.md +0 -43
  324. package/docs/QUICK_START_VISIBILITY.md +0 -782
  325. package/docs/REDDIT_GAP_ANALYSIS.md +0 -299
  326. package/docs/RELEASE_CHECKLIST.md +0 -32
  327. package/docs/REPRODUCIBILITY.md +0 -63
  328. package/docs/RESEARCH_BACKED_IMPROVEMENTS.md +0 -1180
  329. package/docs/ROUTING_RUBRIC.md +0 -197
  330. package/docs/SEO_AUDIT.md +0 -186
  331. package/docs/SOCIAL_LISTENING.md +0 -219
  332. package/docs/TMLPD_QNA.md +0 -751
  333. package/docs/TMLPD_V2.1_COMPLETE.md +0 -763
  334. package/docs/TMLPD_V2.2_RESEARCH_ROADMAP.md +0 -754
  335. package/docs/UPDATE_TOPICS.md +0 -15
  336. package/docs/USE_CASES.md +0 -59
  337. package/docs/V2.2_IMPLEMENTATION_COMPLETE.md +0 -446
  338. package/docs/V2_IMPLEMENTATION_GUIDE.md +0 -388
  339. package/docs/VERCEL_AI_SDK.md +0 -209
  340. package/docs/VISIBILITY_ADOPTION_PLAN.md +0 -1005
  341. package/docs/_config.yml +0 -49
  342. package/docs/ai-plugin.json +0 -16
  343. package/docs/api.html +0 -513
  344. package/docs/architecture-diagram.md +0 -40
  345. package/docs/benchmark-chart.png +0 -0
  346. package/docs/benchmark.html +0 -387
  347. package/docs/blog/routerarena-number-one.html +0 -73
  348. package/docs/cli-cheatsheet.md +0 -339
  349. package/docs/compare.md +0 -109
  350. package/docs/comparison-litellm.md +0 -88
  351. package/docs/comparison.md +0 -108
  352. package/docs/cost-chart-ascii.md +0 -42
  353. package/docs/cost-comparison-chart.svg +0 -88
  354. package/docs/curl-examples.md +0 -247
  355. package/docs/demo-auto.html +0 -264
  356. package/docs/demo.html +0 -416
  357. package/docs/geo/GENERATIVE_ENGINE_OPTIMIZATION.md +0 -232
  358. package/docs/index.html +0 -507
  359. package/docs/launch-content/LAUNCH_EXECUTION_CHECKLIST.md +0 -421
  360. package/docs/launch-content/README.md +0 -457
  361. package/docs/launch-content/assets/cost_comparison_100_tasks.png +0 -0
  362. package/docs/launch-content/assets/cumulative_savings.png +0 -0
  363. package/docs/launch-content/assets/parallel_speedup.png +0 -0
  364. package/docs/launch-content/assets/provider_pricing_comparison.png +0 -0
  365. package/docs/launch-content/assets/task_breakdown_comparison.png +0 -0
  366. package/docs/launch-content/generate_charts.py +0 -313
  367. package/docs/launch-content/hn_show_post.md +0 -139
  368. package/docs/launch-content/partner_outreach_templates.md +0 -745
  369. package/docs/launch-content/reddit_posts.md +0 -467
  370. package/docs/launch-content/twitter_thread.txt +0 -460
  371. package/docs/npm-downloads-chart.svg +0 -43
  372. package/docs/openapi.json +0 -139
  373. package/docs/openapi.yaml +0 -1318
  374. package/docs/quick-start.html +0 -366
  375. package/docs/robots.txt +0 -52
  376. package/docs/sitemap.xml +0 -57
  377. package/docs/styles.css +0 -682
  378. package/docs/well-known/ai-plugin.json +0 -16
  379. package/docs/wellknown/ai-plugin.json +0 -16
  380. package/docs-site/assets/og-banner.svg +0 -194
  381. package/docs-site/index.html +0 -632
  382. package/eval/README.md +0 -46
  383. package/eval/baselines/main.json +0 -12
  384. package/eval/benchmark_dataset.jsonl +0 -16
  385. package/eval/check_golden_routes.js +0 -64
  386. package/eval/datasets/catalog.json +0 -33
  387. package/eval/datasets/slices/cn_provider_reliability_v1.jsonl +0 -3
  388. package/eval/datasets/slices/cost_pressure_v1.jsonl +0 -3
  389. package/eval/datasets/slices/safety_guardrails_v1.jsonl +0 -3
  390. package/eval/evals.json +0 -199
  391. package/eval/fault_injection_thresholds.json +0 -3
  392. package/eval/generate_report.js +0 -128
  393. package/eval/golden_routes.json +0 -114
  394. package/eval/lib/experiment_registry.js +0 -24
  395. package/eval/run_eval.js +0 -197
  396. package/eval/run_fault_injection.js +0 -201
  397. package/eval/run_shadow_eval.js +0 -85
  398. package/eval/thresholds.json +0 -9
  399. package/examples/QUICKSTART.md +0 -183
  400. package/examples/README.md +0 -61
  401. package/examples/a3m-sdk.js +0 -124
  402. package/examples/basic-route.js +0 -54
  403. package/examples/chat-loop.js +0 -202
  404. package/examples/classify-then-route.js +0 -102
  405. package/examples/cost-compare.js +0 -120
  406. package/examples/ensemble.js +0 -160
  407. package/examples/whatsapp-telegram-bridge-demo.js +0 -302
  408. package/examples/whatsapp-telegram-bridge.js +0 -269
  409. package/hf-space/README.md +0 -23
  410. package/hf-space/app.py +0 -240
  411. package/hf-space/requirements.txt +0 -1
  412. package/huggingface_space/README.md +0 -35
  413. package/huggingface_space/app.py +0 -126
  414. package/huggingface_space/create_space.py +0 -208
  415. package/huggingface_space/requirements.txt +0 -1
  416. package/mcp-server/README.md +0 -188
  417. package/mcp-server/package.json +0 -29
  418. package/mcp-server/src/index.ts +0 -744
  419. package/mcp-server/tsconfig.json +0 -19
  420. package/openclaw-alexa-bridge/ALL_REMAINING_FIXES_PLAN.md +0 -313
  421. package/openclaw-alexa-bridge/REMAINING_FIXES_SUMMARY.md +0 -277
  422. package/openclaw-alexa-bridge/src/alexa_handler_no_tmlpd.js +0 -1234
  423. package/openclaw-alexa-bridge/test_fixes.js +0 -77
  424. package/playground/README.md +0 -51
  425. package/playground/codesandbox.json +0 -12
  426. package/playground/index.js +0 -39
  427. package/proxy/README.md +0 -227
  428. package/proxy/package-lock.json +0 -831
  429. package/proxy/package.json +0 -17
  430. package/proxy/rate-limit.js +0 -145
  431. package/proxy/rate-limit.test.js +0 -311
  432. package/proxy/server.js +0 -970
  433. package/python/README.md +0 -102
  434. package/python/a3m/__init__.py +0 -6
  435. package/python/a3m/client.py +0 -190
  436. package/python/a3m/models.py +0 -40
  437. package/python/a3m/sync_client.py +0 -61
  438. package/python/examples.py +0 -53
  439. package/python/integrations.py +0 -330
  440. package/python/pyproject.toml +0 -23
  441. package/python/setup.py +0 -28
  442. package/python/tmlpd.py +0 -369
  443. package/qna/REDDIT_GAP_ANALYSIS.md +0 -299
  444. package/qna/TMLPD_QNA.md +0 -751
  445. package/research/FINDING_001_safety.md +0 -28
  446. package/research/FINDING_002_error_diversity.md +0 -32
  447. package/research/FINDING_003_confidence_weighted_voting.md +0 -32
  448. package/research/FINDING_004_cross_model_semantic_detection.md +0 -37
  449. package/research/FINDING_005_knowledge_gap_orthogonality.md +0 -34
  450. package/research/HALLUCINATION_RESEARCH.md +0 -27
  451. package/research/ensemble-voting.md +0 -324
  452. package/research/loss-functions.md +0 -545
  453. package/research-log.md +0 -49
  454. package/scripts/banner.js +0 -29
  455. package/scripts/benchmark-local-routerarena.ts +0 -176
  456. package/scripts/benchmark.js +0 -145
  457. package/scripts/benchmark.sh +0 -61
  458. package/scripts/compare-providers.sh +0 -230
  459. package/scripts/content-planner.js +0 -25
  460. package/scripts/create-labeled-benchmark.ts +0 -105
  461. package/scripts/cross_post.py +0 -443
  462. package/scripts/local-router-benchmark.ts +0 -154
  463. package/scripts/post-all.sh +0 -41
  464. package/scripts/publish_fcc.py +0 -106
  465. package/scripts/push-to-gitee.sh +0 -25
  466. package/scripts/routerarena_ensemble.js +0 -144
  467. package/scripts/routing-benchmark-v2.js +0 -373
  468. package/scripts/routing-benchmark-v3.js +0 -118
  469. package/scripts/routing-benchmark.js +0 -462
  470. package/scripts/run-labeled-benchmark.mjs +0 -104
  471. package/scripts/run-mmlu-benchmark.js +0 -176
  472. package/scripts/run-provider-benchmark.js +0 -244
  473. package/scripts/update-npm-badges.js +0 -158
  474. package/skill/SKILL.md +0 -238
  475. package/src/__tests__/integration/tmpld_integration.test.py +0 -540
  476. package/src/skills/__tests__/skill_manager.test.ts +0 -328
  477. package/submissions/benchmarks/ALL_PLATFORMS_SUBMISSION.md +0 -94
  478. package/submissions/benchmarks/LLMROUTERBENCH_SUBMISSION.md +0 -121
  479. package/submissions/benchmarks/MMRBENCH_SUBMISSION.md +0 -94
  480. package/submissions/benchmarks/ROUTERARENA_UPDATE.md +0 -83
  481. package/submissions/benchmarks/ROUTERBENCH_SUBMISSION.md +0 -225
  482. package/test-council/1-structure-tests.test.js +0 -353
  483. package/test-council/1-structure-tests.test.ts +0 -353
  484. package/test-council/2-edge-case-tests.test.ts +0 -361
  485. package/test-council/3-performance-tests.test.ts +0 -669
  486. package/test-council/4-integration-tests.test.ts +0 -391
  487. package/test-council/5-agent-council-eval.test.ts +0 -413
  488. package/test-council/AGENT_COUNCIL_ARCHITECTURE.md +0 -349
  489. package/test-council/TEST_COUNCIL_REPORT.md +0 -201
  490. package/test-council/agents/edge-case-agent.ts +0 -363
  491. package/test-council/agents/performance-agent.ts +0 -426
  492. package/test-council/agents/structure-agent.ts +0 -227
  493. package/test-council/council.md +0 -183
  494. package/tests/__mocks__/tokenUtils.ts +0 -8
  495. package/tests/memory/episodicMemory.test.ts +0 -227
  496. package/tests/package-lock.json +0 -1628
  497. package/tests/package.json +0 -18
  498. package/tests/routing/ensembleVoting.test.ts +0 -236
  499. package/tests/routing/providerRetry.test.ts +0 -360
  500. package/tests/routing/queryTypePresets.test.ts +0 -208
  501. package/tests/security/guardrailEngine.test.ts +0 -700
  502. package/tests/tsconfig.json +0 -21
  503. package/tests/vitest.config.ts +0 -18
  504. package/tmlpd-pi-extension/README.md +0 -66
  505. package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts +0 -114
  506. package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts.map +0 -1
  507. package/tmlpd-pi-extension/dist/cache/prefixCache.js +0 -285
  508. package/tmlpd-pi-extension/dist/cache/prefixCache.js.map +0 -1
  509. package/tmlpd-pi-extension/dist/cache/responseCache.d.ts +0 -58
  510. package/tmlpd-pi-extension/dist/cache/responseCache.d.ts.map +0 -1
  511. package/tmlpd-pi-extension/dist/cache/responseCache.js +0 -153
  512. package/tmlpd-pi-extension/dist/cache/responseCache.js.map +0 -1
  513. package/tmlpd-pi-extension/dist/cli.js +0 -59
  514. package/tmlpd-pi-extension/dist/cost/costTracker.d.ts +0 -95
  515. package/tmlpd-pi-extension/dist/cost/costTracker.d.ts.map +0 -1
  516. package/tmlpd-pi-extension/dist/cost/costTracker.js +0 -240
  517. package/tmlpd-pi-extension/dist/cost/costTracker.js.map +0 -1
  518. package/tmlpd-pi-extension/dist/index.d.ts +0 -723
  519. package/tmlpd-pi-extension/dist/index.d.ts.map +0 -1
  520. package/tmlpd-pi-extension/dist/index.js +0 -239
  521. package/tmlpd-pi-extension/dist/index.js.map +0 -1
  522. package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts +0 -82
  523. package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts.map +0 -1
  524. package/tmlpd-pi-extension/dist/memory/episodicMemory.js +0 -145
  525. package/tmlpd-pi-extension/dist/memory/episodicMemory.js.map +0 -1
  526. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts +0 -102
  527. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts.map +0 -1
  528. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js +0 -207
  529. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js.map +0 -1
  530. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts +0 -85
  531. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts.map +0 -1
  532. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js +0 -210
  533. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js.map +0 -1
  534. package/tmlpd-pi-extension/dist/providers/localProvider.d.ts +0 -102
  535. package/tmlpd-pi-extension/dist/providers/localProvider.d.ts.map +0 -1
  536. package/tmlpd-pi-extension/dist/providers/localProvider.js +0 -338
  537. package/tmlpd-pi-extension/dist/providers/localProvider.js.map +0 -1
  538. package/tmlpd-pi-extension/dist/providers/registry.d.ts +0 -55
  539. package/tmlpd-pi-extension/dist/providers/registry.d.ts.map +0 -1
  540. package/tmlpd-pi-extension/dist/providers/registry.js +0 -138
  541. package/tmlpd-pi-extension/dist/providers/registry.js.map +0 -1
  542. package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts +0 -68
  543. package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts.map +0 -1
  544. package/tmlpd-pi-extension/dist/routing/advancedRouter.js +0 -332
  545. package/tmlpd-pi-extension/dist/routing/advancedRouter.js.map +0 -1
  546. package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts +0 -101
  547. package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts.map +0 -1
  548. package/tmlpd-pi-extension/dist/tools/tmlpdTools.js +0 -368
  549. package/tmlpd-pi-extension/dist/tools/tmlpdTools.js.map +0 -1
  550. package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts +0 -96
  551. package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts.map +0 -1
  552. package/tmlpd-pi-extension/dist/utils/batchProcessor.js +0 -170
  553. package/tmlpd-pi-extension/dist/utils/batchProcessor.js.map +0 -1
  554. package/tmlpd-pi-extension/dist/utils/compression.d.ts +0 -61
  555. package/tmlpd-pi-extension/dist/utils/compression.d.ts.map +0 -1
  556. package/tmlpd-pi-extension/dist/utils/compression.js +0 -281
  557. package/tmlpd-pi-extension/dist/utils/compression.js.map +0 -1
  558. package/tmlpd-pi-extension/dist/utils/reliability.d.ts +0 -74
  559. package/tmlpd-pi-extension/dist/utils/reliability.d.ts.map +0 -1
  560. package/tmlpd-pi-extension/dist/utils/reliability.js +0 -177
  561. package/tmlpd-pi-extension/dist/utils/reliability.js.map +0 -1
  562. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts +0 -117
  563. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts.map +0 -1
  564. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js +0 -246
  565. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js.map +0 -1
  566. package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts +0 -50
  567. package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts.map +0 -1
  568. package/tmlpd-pi-extension/dist/utils/tokenUtils.js +0 -124
  569. package/tmlpd-pi-extension/dist/utils/tokenUtils.js.map +0 -1
  570. package/tmlpd-pi-extension/examples/QUICKSTART.md +0 -183
  571. package/tmlpd-pi-extension/package-lock.json +0 -79
  572. package/tmlpd-pi-extension/package.json +0 -172
  573. package/tmlpd-pi-extension/python/examples.py +0 -53
  574. package/tmlpd-pi-extension/python/integrations.py +0 -330
  575. package/tmlpd-pi-extension/python/setup.py +0 -28
  576. package/tmlpd-pi-extension/python/tmlpd.py +0 -369
  577. package/tmlpd-pi-extension/qna/REDDIT_GAP_ANALYSIS.md +0 -299
  578. package/tmlpd-pi-extension/qna/TMLPD_QNA.md +0 -751
  579. package/tmlpd-pi-extension/skill/SKILL.md +0 -238
  580. package/tmlpd-pi-extension/src/cache/responseCache.ts +0 -147
  581. package/tmlpd-pi-extension/src/cost/costTracker.ts +0 -302
  582. package/tmlpd-pi-extension/src/index.ts +0 -232
  583. package/tmlpd-pi-extension/src/memory/episodicMemory.ts +0 -257
  584. package/tmlpd-pi-extension/src/orchestration/haloOrchestrator.ts +0 -266
  585. package/tmlpd-pi-extension/src/orchestration/mctsWorkflow.ts +0 -262
  586. package/tmlpd-pi-extension/src/providers/localProvider.ts +0 -406
  587. package/tmlpd-pi-extension/src/providers/registry.ts +0 -164
  588. package/tmlpd-pi-extension/src/routing/ensembleVoting.ts +0 -159
  589. package/tmlpd-pi-extension/src/routing/queryTypePresets.ts +0 -136
  590. package/tmlpd-pi-extension/src/tools/tmlpdTools.ts +0 -433
  591. package/tmlpd-pi-extension/src/utils/batchProcessor.ts +0 -232
  592. package/tmlpd-pi-extension/src/utils/compression.ts +0 -325
  593. package/tmlpd-pi-extension/src/utils/reliability.ts +0 -221
  594. package/tmlpd-pi-extension/src/utils/tokenUtils.ts +0 -145
  595. package/tmlpd-pi-extension/tsconfig.json +0 -18
  596. package/tsconfig.build.json +0 -29
  597. package/tsconfig.json +0 -18
  598. /package/{docs/llms-full.txt → llms-full.txt.bak} +0 -0
@@ -1,369 +0,0 @@
1
- """
2
- TMLPD Python Bindings
3
- ======================
4
-
5
- Type-safe Python bindings for tmlpd-pi TypeScript package.
6
- Enables Python developers to use TMLPD with familiar Python patterns.
7
-
8
- Install:
9
- npm install tmlpd-pi
10
- # Then use via child_process or pyodide in browser
11
-
12
- Or use HTTP server mode:
13
- node node_modules/tmlpd-pi/dist/server.js --port 18791
14
-
15
- Usage:
16
- from tmlpd import TMLPDClient
17
-
18
- client = TMLPDClient()
19
- result = await client.execute_parallel(
20
- prompt="Explain quantum entanglement",
21
- models=["openai/gpt-4o", "groq/llama-3.3-70b"]
22
- )
23
- """
24
-
25
- from __future__ import annotations
26
- import asyncio
27
- import json
28
- import subprocess
29
- from typing import Optional, List, Dict, Any, Callable
30
- from dataclasses import dataclass, field
31
- from enum import Enum
32
-
33
-
34
- class TaskType(Enum):
35
- """Task type classification for optimal routing."""
36
- CODING = "coding"
37
- FRONTEND = "frontend"
38
- BACKEND = "backend"
39
- CHINESE = "chinese"
40
- MULTILINGUAL = "multilingual"
41
- FAST = "fast"
42
- PREMIUM = "premium"
43
- EXPLANATION = "explanation"
44
- ANALYSIS = "analysis"
45
- REASONING = "reasoning"
46
- DEFAULT = "default"
47
-
48
-
49
- @dataclass
50
- class ExecutionResult:
51
- """Result from TMLPD execution."""
52
- success: bool
53
- content: Optional[str] = None
54
- error: Optional[str] = None
55
- model: str = ""
56
- provider: str = ""
57
- tokens: int = 0
58
- cost: float = 0.0
59
- cached: bool = False
60
- duration_ms: int = 0
61
-
62
-
63
- @dataclass
64
- class ParallelResult:
65
- """Result from parallel execution."""
66
- responses: List[ExecutionResult]
67
- total_models: int = 0
68
- successful_models: int = 0
69
- total_cost: float = 0.0
70
- duration_ms: int = 0
71
-
72
-
73
- @dataclass
74
- class CostSummary:
75
- """Cost tracking summary."""
76
- total_cost: float
77
- by_provider: Dict[str, float]
78
- by_model: Dict[str, float]
79
- daily_costs: Dict[str, float]
80
- monthly_costs: Dict[str, float]
81
- request_count: int
82
- token_count: Dict[str, int]
83
- average_cost_per_request: float
84
-
85
-
86
- @dataclass
87
- class CacheStats:
88
- """Cache performance statistics."""
89
- hits: int
90
- misses: int
91
- size: int
92
- hit_rate: float
93
-
94
-
95
- @dataclass
96
- class ProviderStatus:
97
- """Provider readiness status."""
98
- ready_providers: List[str]
99
- providers: Dict[str, Dict[str, Any]]
100
- model_priority: List[str]
101
-
102
-
103
- class TMLPDConfig:
104
- """Configuration for TMLPD client."""
105
-
106
- def __init__(
107
- self,
108
- cache_ttl_seconds: int = 3600,
109
- cache_max_entries: int = 1000,
110
- daily_budget: float = 10.0,
111
- monthly_budget: float = 100.0,
112
- retry_max_attempts: int = 3,
113
- retry_base_delay_ms: int = 500,
114
- retry_max_delay_ms: int = 30000,
115
- retry_jitter: float = 0.3,
116
- max_concurrent: int = 5,
117
- enable_halo: bool = False,
118
- enable_mcts: bool = False
119
- ):
120
- self.cache_ttl_seconds = cache_ttl_seconds
121
- self.cache_max_entries = cache_max_entries
122
- self.daily_budget = daily_budget
123
- self.monthly_budget = monthly_budget
124
- self.retry_max_attempts = retry_max_attempts
125
- self.retry_base_delay_ms = retry_base_delay_ms
126
- self.retry_max_delay_ms = retry_max_delay_ms
127
- self.retry_jitter = retry_jitter
128
- self.max_concurrent = max_concurrent
129
- self.enable_halo = enable_halo
130
- self.enable_mcts = enable_mcts
131
-
132
-
133
- class TMLPDClient:
134
- """
135
- Python client for TMLPD parallel LLM execution.
136
-
137
- Usage:
138
- client = TMLPDClient()
139
- result = await client.execute("Explain quantum entanglement")
140
- parallel = await client.execute_parallel(
141
- "Compare Python and JavaScript",
142
- models=["gpt-4o", "claude"]
143
- )
144
- """
145
-
146
- def __init__(self, config: OptionalTMLPDConfig = None, config_path: str = "tmlpd-pi"):
147
- self.config = config or TMLPDConfig()
148
- self.config_path = config_path
149
- self._cache: Dict[str, Any] = {}
150
-
151
- async def execute(
152
- self,
153
- prompt: str,
154
- model: Optional[str] = None,
155
- task_type: Optional[TaskType] = None
156
- ) -> ExecutionResult:
157
- """
158
- Execute single prompt with smart routing.
159
-
160
- Args:
161
- prompt: The prompt to execute
162
- model: Optional specific model (auto-selects if None)
163
- task_type: Optional task type for routing
164
-
165
- Returns:
166
- ExecutionResult with response and metadata
167
- """
168
- # Simulate execution (in production, call Node.js server)
169
- return ExecutionResult(
170
- success=True,
171
- content=f"[Python TMLPD] Processed: {prompt[:50]}...",
172
- model=model or "auto-routed",
173
- provider="python-adapter",
174
- cost=0.001,
175
- duration_ms=100
176
- )
177
-
178
- async def execute_parallel(
179
- self,
180
- prompt: str,
181
- models: Optional[List[str]] = None,
182
- task_type: Optional[TaskType] = None
183
- ) -> ParallelResult:
184
- """
185
- Execute prompt across multiple models in parallel.
186
-
187
- Args:
188
- prompt: The prompt to execute
189
- models: List of models (auto-selects optimal if None)
190
- task_type: Optional task type for routing
191
-
192
- Returns:
193
- ParallelResult with all responses
194
- """
195
- models = models or ["openai/gpt-4o", "groq/llama-3.3-70b", "cerebras/llama-3.3-70b"]
196
-
197
- responses = []
198
- for model in models:
199
- result = await self.execute(prompt, model)
200
- responses.append(result)
201
-
202
- return ParallelResult(
203
- responses=responses,
204
- total_models=len(models),
205
- successful_models=len([r for r in responses if r.success]),
206
- total_cost=sum(r.cost for r in responses),
207
- duration_ms=max(r.duration_ms for r in responses) if responses else 0
208
- )
209
-
210
- async def get_cost_summary(self) -> CostSummary:
211
- """Get cost tracking summary."""
212
- return CostSummary(
213
- total_cost=0.0,
214
- by_provider={},
215
- by_model={},
216
- daily_costs={},
217
- monthly_costs={},
218
- request_count=0,
219
- token_count={"input": 0, "output": 0},
220
- average_cost_per_request=0.0
221
- )
222
-
223
- async def get_cache_stats(self) -> CacheStats:
224
- """Get cache performance statistics."""
225
- return CacheStats(hits=0, misses=0, size=0, hit_rate=0.0)
226
-
227
- async def get_provider_status(self) -> ProviderStatus:
228
- """Get provider readiness status."""
229
- return ProviderStatus(
230
- ready_providers=["openai", "groq", "cerebras", "mistral", "google"],
231
- providers={},
232
- model_priority=["openai/gpt-4o", "groq/llama-3.3-70b", "cerebras/llama-3.3-70b"]
233
- )
234
-
235
- async def invalidate_cache(self, model: Optional[str] = None) -> Dict[str, Any]:
236
- """Invalidate cached responses."""
237
- count = len(self._cache)
238
- self._cache.clear()
239
- return {"invalidated": count}
240
-
241
-
242
- class TMLPDLite:
243
- """
244
- Lite version for simple use cases.
245
- No async, no external dependencies.
246
-
247
- Usage:
248
- tmlpd = TMLPDLite()
249
- result = tmlpd.process("What is 2+2?")
250
- """
251
-
252
- # Model routing table
253
- MODEL_ROUTING = {
254
- TaskType.CODING: ["codex", "claude-minimax", "claude"],
255
- TaskType.FRONTEND: ["codex", "claude-minimax", "claude"],
256
- TaskType.BACKEND: ["codex", "claude-minimax", "claude-glm"],
257
- TaskType.CHINESE: ["claude-glm", "claude-minimax"],
258
- TaskType.FAST: ["gemini", "claude-haiku", "codex"],
259
- TaskType.PREMIUM: ["claude-opus", "gemini-pro"],
260
- TaskType.EXPLANATION: ["gemini-pro", "claude-minimax", "claude-glm"],
261
- TaskType.ANALYSIS: ["codex", "claude-minimax", "claude-opus"],
262
- TaskType.REASONING: ["claude-opus", "claude", "claude-minimax"],
263
- TaskType.DEFAULT: ["claude-minimax", "codex", "gemini"]
264
- }
265
-
266
- def __init__(self):
267
- self.cache: Dict[str, str] = {}
268
-
269
- @classmethod
270
- def classify_task(cls, prompt: str) -> TaskType:
271
- """Classify task type from prompt text."""
272
- lower = prompt.lower()
273
-
274
- if any(kw in lower for kw in ["中文", "汉语", "chinese"]):
275
- return TaskType.CHINESE
276
- if any(kw in lower for kw in ["react", "vue", "angular", "frontend", "ui"]):
277
- return TaskType.FRONTEND
278
- if any(kw in lower for kw in ["backend", "api", "server", "database"]):
279
- return TaskType.BACKEND
280
- if any(kw in lower for kw in ["python", "javascript", "code", "function"]):
281
- return TaskType.CODING
282
- if any(kw in lower for kw in ["explain", "what is", "how to"]):
283
- return TaskType.EXPLANATION
284
- if any(kw in lower for kw in ["analyze", "review", "evaluate"]):
285
- return TaskType.ANALYSIS
286
- if any(kw in lower for kw in ["fast", "quick", "simple"]):
287
- return TaskType.FAST
288
- if any(kw in lower for kw in ["premium", "best", "advanced", "complex"]):
289
- return TaskType.PREMIUM
290
-
291
- return TaskType.DEFAULT
292
-
293
- def get_optimal_models(self, task_type: TaskType, count: int = 3) -> List[str]:
294
- """Get optimal models for task type."""
295
- models = self.MODEL_ROUTING.get(task_type, self.MODEL_ROUTING[TaskType.DEFAULT])
296
- return models[:count]
297
-
298
- def process(self, prompt: str, use_cache: bool = True) -> Dict[str, Any]:
299
- """
300
- Simple synchronous processing.
301
-
302
- Args:
303
- prompt: The prompt to process
304
- use_cache: Whether to use caching
305
-
306
- Returns:
307
- Dict with result and metadata
308
- """
309
- # Check cache
310
- if use_cache and prompt in self.cache:
311
- return {
312
- "success": True,
313
- "content": self.cache[prompt],
314
- "cached": True,
315
- "task_type": self.classify_task(prompt).value
316
- }
317
-
318
- # Process (in production, call TMLPD)
319
- task_type = self.classify_task(prompt)
320
- models = self.get_optimal_models(task_type)
321
-
322
- result = f"[TMLPDLite] {prompt[:50]}... (task: {task_type.value})"
323
-
324
- # Cache result
325
- if use_cache:
326
- self.cache[prompt] = result
327
-
328
- return {
329
- "success": True,
330
- "content": result,
331
- "cached": False,
332
- "task_type": task_type.value,
333
- "routed_models": models
334
- }
335
-
336
-
337
- # Convenience function for quick usage
338
- def quick_process(prompt: str, **kwargs) -> Dict[str, Any]:
339
- """
340
- Quick processing without instantiation.
341
-
342
- Usage:
343
- result = quick_process("What is 2+2?")
344
- """
345
- lite = TMLPDLite()
346
- return lite.process(prompt, **kwargs)
347
-
348
-
349
- # Example usage
350
- if __name__ == "__main__":
351
- print("TMLPD Python Bindings")
352
- print("=" * 40)
353
-
354
- # Lite usage
355
- lite = TMLPDLite()
356
-
357
- test_prompts = [
358
- "Write Python async HTTP client",
359
- "解释量子纠缠",
360
- "Build React component",
361
- "What is 2+2?"
362
- ]
363
-
364
- for prompt in test_prompts:
365
- result = lite.process(prompt)
366
- print(f"\nPrompt: {prompt[:40]}...")
367
- print(f" Task: {result['task_type']}")
368
- print(f" Models: {result.get('routed_models', ['default'])}")
369
- print(f" Cached: {result['cached']}")
@@ -1,299 +0,0 @@
1
- # TMLPD PI - Reddit Feature Gap Analysis
2
-
3
- > Based on Reddit (r/LocalLLaMA, r/AI_Agents, r/MachineLearning, r/llm) pain points.
4
- > Identifying what's missing vs what developers actually need.
5
-
6
- ---
7
-
8
- ## Top Reddit Complaints vs TMLPD Status
9
-
10
- | Issue | Reddit Popularity | TMLPD Status | Gap |
11
- |-------|------------------|--------------|-----|
12
- | **Reliable function calling** | 🔥🔥🔥 (1957 pts) | ❌ Not supported | **CRITICAL** |
13
- | **Cost tracking per model** | 🔥🔥🔥 (measurement obsession) | ✅ Full tracking | OK |
14
- | **Intelligent failover** | 🔥🔥🔥 (multi-provider) | ✅ Auto-fallback | OK |
15
- | **Token compression** | 🔥🔥 (70% reduction interest) | ❌ Not supported | **HIGH** |
16
- | **KV cache reuse** | 🔥🔥 (253 comments) | ❌ L1 cache only | **HIGH** |
17
- | **Batch processing** | 🔥🔥 (throughput) | ❌ Sequential only | **MEDIUM** |
18
- | **Local orchestration** | 🔥🔥 (privacy) | ⚠️ API-dependent | **MEDIUM** |
19
- | **Multi-model orchestration** | 🔥 (815 comments Claude Code) | ✅ HALO | OK |
20
- | **Rust-based speed** | 🔥 (no Python overhead) | ⚠️ TypeScript only | **LOW** |
21
-
22
- ---
23
-
24
- ## Missing Capabilities - Detailed Analysis
25
-
26
- ### 1. Function Calling / Tool Use ❌
27
-
28
- **Reddit Pain:** "Function calling broke constantly" (1957 points)
29
-
30
- ```python
31
- # What developers want:
32
- result = await client.execute_with_tools(
33
- prompt="What's the weather in NYC?",
34
- tools=[get_weather, get_time, search_web],
35
- fallback_enabled=True
36
- )
37
- # Intelligent routing to providers with best function-calling accuracy
38
- ```
39
-
40
- **Gap:** TMLPD only does text completion. No tool/function calling support.
41
-
42
- **Recommendation:** Add `execute_with_tools()` with:
43
- - Provider capability detection (Anthropic > OpenAI > Google for function calling)
44
- - Parallel tool execution
45
- - Fallback chain if primary provider's function calling fails
46
-
47
- ---
48
-
49
- ### 2. Token Compression ⚠️
50
-
51
- **Reddit Pain:** "ISON format for 70% token reduction" (high engagement)
52
-
53
- ```python
54
- # What developers want:
55
- compressed = compress_context(conversation, ratio=0.7)
56
- # "ISON" or similar encoding
57
-
58
- result = await client.execute(compressed, model="premium")
59
- ```
60
-
61
- **Gap:** TMLPD has no compression. Context window costs are high.
62
-
63
- **Recommendation:** Add compression utilities:
64
- - `compress_context(messages, strategy="ison")`
65
- - `smart_truncate(conversation, max_tokens)`
66
- - Token counting before API calls
67
-
68
- ---
69
-
70
- ### 3. KV Cache Management ❌
71
-
72
- **Reddit Pain:** "Serving 1B+ tokens/day locally" - KV cache reuse critical
73
-
74
- ```typescript
75
- // What developers want:
76
- const cache = await tmlpd.getKVCache(model="llama-3.3-70b");
77
- cache.store({ prompt: "...", kv_state: [...] });
78
- // Reuse KV state for similar prompts
79
- ```
80
-
81
- **Gap:** We have L1 response cache, but not KV cache.
82
-
83
- **Recommendation:** Add `KVCacheManager`:
84
- - Store KV states for reuse
85
- - Semantic matching of KV cache entries
86
- - Automatic KV cache for repeated context patterns
87
-
88
- ---
89
-
90
- ### 4. Batch Processing ❌
91
-
92
- **Reddit Pain:** "Throughput optimization" for GPU clusters
93
-
94
- ```python
95
- # What developers want:
96
- batch = await client.execute_batch([
97
- "Explain quantum",
98
- "Write Python async",
99
- "Debug this code"
100
- ], priority="high") # Returns when all complete
101
-
102
- # With concurrency control and rate limiting
103
- ```
104
-
105
- **Gap:** TMLPD has parallel but not batch queuing.
106
-
107
- **Recommendation:** Add `executeBatch()`:
108
- - Queue multiple prompts
109
- - Priority scheduling
110
- - Batch completion callbacks
111
- - Rate limit management across batch
112
-
113
- ---
114
-
115
- ### 5. Local Model Support ⚠️
116
-
117
- **Reddit Pain:** "Privacy-preserving multi-model pipelines", "vLLM multi-GPU"
118
-
119
- ```python
120
- # What developers want:
121
- client = TMLPDClient({
122
- providers: ["local/llama-3.3-70b", "local/codellama"],
123
- local_endpoint: "http://localhost:8080"
124
- })
125
-
126
- result = await client.execute_parallel(prompt, [
127
- "local/llama-3.3-70b", # No API key needed
128
- "openai/gpt-4o" # Cloud fallback
129
- ])
130
- ```
131
-
132
- **Gap:** TMLPD assumes cloud API providers.
133
-
134
- **Recommendation:** Add `LocalProvider` support:
135
- - Ollama integration
136
- - vLLM integration
137
- - LM Studio integration
138
- - Local provider health monitoring
139
-
140
- ---
141
-
142
- ### 6. Multi-Agent Task Orchestration ⚠️
143
-
144
- **Reddit Pain:** "Claude Code multi-agent system" (815 comments)
145
-
146
- ```python
147
- # What developers want:
148
- orchestrator = MultiAgentOrchestrator([
149
- {"name": "researcher", "model": "claude", "role": "research"},
150
- {"name": "coder", "model": "codex", "role": "implement"},
151
- {"name": "reviewer", "model": "claude", "role": "review"}
152
- ])
153
-
154
- task = "Build a REST API"
155
- result = await orchestrator.execute(task, workflow="research→code→review")
156
- ```
157
-
158
- **Gap:** We have HALO but it's a reference implementation, not production-ready.
159
-
160
- **Recommendation:** Enhance HALO to be production-grade:
161
- - Built-in agent communication protocol
162
- - State machine for agent transitions
163
- - Result sharing between agents
164
-
165
- ---
166
-
167
- ## Priority Roadmap
168
-
169
- ### v1.2.0 (High Priority)
170
- 1. ✅ `execute_with_tools()` - Function calling support
171
- 2. ✅ `compress_context()` - Token compression utilities
172
- 3. ✅ `LocalProvider` - Ollama/vLLM integration
173
-
174
- ### v1.3.0 (Medium Priority)
175
- 4. ✅ `executeBatch()` - Batch processing
176
- 5. ✅ `KVCacheManager` - KV state reuse
177
- 6. ✅ Enhanced HALO - Production multi-agent
178
-
179
- ### v1.4.0 (Future)
180
- - Rust core for speed
181
- - GPU cluster orchestration
182
- - Distributed TMLPD
183
-
184
- ---
185
-
186
- ## Quick Wins to Add Now
187
-
188
- ### 1. Token Counter Utility
189
-
190
- ```typescript
191
- // Add to TMLPD core
192
- export function countTokens(text: string, model: string = "gpt-4o"): number {
193
- // Approximate: ~1.3 tokens per word for English
194
- const words = text.trim().split(/\s+/);
195
- return Math.ceil(words.length * 1.3);
196
- }
197
-
198
- export function estimateCost(prompt_tokens: number, completion_tokens: number, model: string): number {
199
- const rates = {
200
- "gpt-4o": { input: 0.005, output: 0.015 },
201
- "claude-3.5-sonnet": { input: 0.003, output: 0.015 },
202
- // ...
203
- };
204
- const rate = rates[model] || rates["gpt-4o"];
205
- return (prompt_tokens * rate.input + completion_tokens * rate.output) / 1000;
206
- }
207
- ```
208
-
209
- ### 2. Context Truncation Helper
210
-
211
- ```typescript
212
- export function truncateToFit(
213
- messages: Message[],
214
- max_tokens: number,
215
- strategy: "smart" | "first" | "last" = "smart"
216
- ): Message[] {
217
- // Smart: keep system + recent + preserve beginning of oldest
218
- // First: keep system + first N messages
219
- // Last: keep system + last N messages (most common)
220
- }
221
- ```
222
-
223
- ### 3. Batch Execution Helper
224
-
225
- ```typescript
226
- export async function executeBatch(
227
- prompts: string[],
228
- options: {
229
- concurrency?: number; // Max parallel
230
- model?: string;
231
- callback?: (result: ExecutionResult, index: number) => void;
232
- }
233
- ): Promise<ExecutionResult[]> {
234
- const { concurrency = 5, model, callback } = options;
235
- const results: ExecutionResult[] = [];
236
-
237
- for (let i = 0; i < prompts.length; i += concurrency) {
238
- const batch = prompts.slice(i, i + concurrency);
239
- const batchResults = await Promise.all(
240
- batch.map((p, j) => execute(p, model).then(r => {
241
- if (callback) callback(r, i + j);
242
- return r;
243
- }))
244
- );
245
- results.push(...batchResults);
246
- }
247
-
248
- return results;
249
- }
250
- ```
251
-
252
- ---
253
-
254
- ## Missing Keywords for Discoverability
255
-
256
- Add to package.json:
257
-
258
- ```json
259
- "keywords": [
260
- "function-calling",
261
- "tool-use",
262
- "tool-execution",
263
- "parallel-tools",
264
- "token-compression",
265
- "context-compression",
266
- "kv-cache",
267
- "kv-cache-reuse",
268
- "batch-processing",
269
- "batch-execution",
270
- "local-llm",
271
- "ollama",
272
- "vllm",
273
- "lm-studio",
274
- "local-model",
275
- "privacy-llm",
276
- "multi-agent",
277
- "agent-orchestration",
278
- "agent-communication",
279
- "workflow-orchestration",
280
- "cost-estimation",
281
- "token-counting"
282
- ]
283
- ```
284
-
285
- ---
286
-
287
- ## Summary
288
-
289
- **Critical gaps (must fix):**
290
- 1. Function calling / tool use
291
- 2. Token compression
292
- 3. Local model support
293
-
294
- **Medium gaps:**
295
- 4. Batch processing
296
- 5. KV cache reuse
297
- 6. Production multi-agent
298
-
299
- **TL;DR:** Reddit developers want reliability, cost control, and local execution. TMLPD has cost control covered. Need to add function calling, compression, and local provider support to address 80% of pain points.