adaptive-memory-multi-model-router 2.14.45 → 2.14.47

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 (605) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index.js +8 -2
  3. package/dist/memory/hybridMemory.d.ts +71 -0
  4. package/dist/memory/hybridMemory.js +124 -0
  5. package/dist/memory/reasoningBank.d.ts +88 -0
  6. package/dist/memory/reasoningBank.js +303 -0
  7. package/{docs/llms.txt → llms.txt.bak} +6 -6
  8. package/package.json +13 -84
  9. package/src/index.ts +8 -0
  10. package/src/memory/hybridMemory.ts +155 -0
  11. package/src/memory/reasoningBank.ts +335 -0
  12. package/src/routing/advancedRouter.ts.bak +650 -0
  13. package/test.js.bak +376 -0
  14. package/.dockerignore +0 -82
  15. package/.env.example +0 -303
  16. package/.github/DISCUSSIONS_WELCOME.md +0 -27
  17. package/.github/DISCUSSION_TEMPLATE.yml +0 -5
  18. package/.github/FUNDING.yml +0 -2
  19. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -94
  20. package/.github/ISSUE_TEMPLATE/config.yml +0 -17
  21. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -71
  22. package/.github/PULL_REQUEST_TEMPLATE.md +0 -71
  23. package/.github/dependabot.yml +0 -9
  24. package/.github/workflows/auto-publish.yml +0 -51
  25. package/.github/workflows/ci.yml +0 -263
  26. package/.github/workflows/codeql.yml +0 -38
  27. package/.github/workflows/npm-publish.yml +0 -20
  28. package/.github/workflows/pages.yml +0 -37
  29. package/.github/workflows/stale.yml +0 -54
  30. package/.publish-tick +0 -1
  31. package/.well-known/ai-plugin.json +0 -16
  32. package/AGENT_COUNCIL_FINDINGS.md +0 -142
  33. package/ARCHITECTURE.md +0 -346
  34. package/AUDIT_REPORT.md +0 -28
  35. package/CODE_OF_CONDUCT.md +0 -128
  36. package/CONTRIBUTING.md +0 -50
  37. package/CONTRIBUTORS.md +0 -20
  38. package/Dockerfile +0 -53
  39. package/Dockerfile.proxy +0 -33
  40. package/HEALTH_REPORT.md +0 -118
  41. package/IMPROVEMENT_PLAN.md +0 -107
  42. package/LANDING.md +0 -43
  43. package/LAUNCH-PAIN-DRIVEN.md +0 -339
  44. package/LAUNCH.md +0 -337
  45. package/LAUNCH_CHECKLIST.md +0 -141
  46. package/LAUNCH_SNAPSHOT.md +0 -260
  47. package/MANIFESTO.md +0 -41
  48. package/POPULARITY_BOOSTERS.md +0 -285
  49. package/PR_STATUS_REPORT.md +0 -148
  50. package/REDESIGN.md +0 -95
  51. package/RUNKIT.md +0 -83
  52. package/SECURITY.md +0 -29
  53. package/SUBMISSIONS.md +0 -43
  54. package/_schema.html +0 -53
  55. package/ai-plugin.json +0 -16
  56. package/articles/AI_AGENT_LLM_ROUTING.md +0 -150
  57. package/articles/CHINESE_DIRECTORIES.md +0 -100
  58. package/articles/CHINESE_SUBMISSIONS_READY.md +0 -322
  59. package/articles/COMPETITOR_ALERTS.md +0 -31
  60. package/articles/COMPLETE_POSTING_DIRECTORY.md +0 -147
  61. package/articles/CONTENT_STRUCTURE.md +0 -292
  62. package/articles/DEVTO_COST_GUIDE.md +0 -473
  63. package/articles/DEVTO_FINAL.md +0 -416
  64. package/articles/DEVTO_MULTI_PROVIDER.md +0 -542
  65. package/articles/DEVTO_READY.md +0 -255
  66. package/articles/DEVTO_V2_ANNOUNCEMENT.md +0 -160
  67. package/articles/DEVTO_VIRAL_GROWTH.md +0 -280
  68. package/articles/FRESH_devto.md +0 -460
  69. package/articles/FRESH_devto_2026_05.md +0 -73
  70. package/articles/FRESH_hackernews.md +0 -14
  71. package/articles/FRESH_reddit_ml.md +0 -90
  72. package/articles/FRESH_reddit_node.md +0 -198
  73. package/articles/FRESH_reddit_sideproject.md +0 -72
  74. package/articles/FRESH_reddit_webdev.md +0 -130
  75. package/articles/FROM_ZERO_TO_10K.md +0 -107
  76. package/articles/HN_10X_BETTER.md +0 -430
  77. package/articles/HN_ACCOUNT_GUIDE.md +0 -21
  78. package/articles/HN_CHINESE_STYLE.md +0 -308
  79. package/articles/HN_FINAL.md +0 -148
  80. package/articles/HN_POSTED_VERSION.md +0 -56
  81. package/articles/HN_POST_READY.md +0 -137
  82. package/articles/HN_RESEARCH.md +0 -364
  83. package/articles/HN_SHOW_routerarena.md +0 -17
  84. package/articles/HN_TIMING_GUIDE.md +0 -52
  85. package/articles/INDIEHACKERS_POST.md +0 -52
  86. package/articles/INDIEHACKERS_READY.md +0 -120
  87. package/articles/LLM_BENCHMARK_DEEP_DIVE.md +0 -153
  88. package/articles/MASTER_POSTING_DIRECTORY.md +0 -189
  89. package/articles/NEWSLETTER_SEND_NOW.md +0 -259
  90. package/articles/NEWSLETTER_SUBMISSIONS.md +0 -112
  91. package/articles/PAIN-DRIVEN-devto-v2.md +0 -308
  92. package/articles/PAIN-DRIVEN-devto-v3.md +0 -268
  93. package/articles/PAIN-DRIVEN-devto.md +0 -242
  94. package/articles/PAIN-DRIVEN-hackernews-v2.md +0 -138
  95. package/articles/PAIN-DRIVEN-hackernews-v3.md +0 -151
  96. package/articles/PAIN-DRIVEN-hackernews.md +0 -131
  97. package/articles/PAIN-DRIVEN-reddit-v2.md +0 -301
  98. package/articles/PAIN-DRIVEN-reddit-v3.md +0 -236
  99. package/articles/PAIN-DRIVEN-reddit.md +0 -218
  100. package/articles/PAIN-DRIVEN-twitter-v2.md +0 -110
  101. package/articles/PAIN-DRIVEN-twitter-v3.md +0 -121
  102. package/articles/PAIN-DRIVEN-twitter.md +0 -120
  103. package/articles/PORTKEY_VS_A3M.md +0 -147
  104. package/articles/POSTING_KIT_2026_05.md +0 -67
  105. package/articles/PRESS_KIT_routerarena.md +0 -77
  106. package/articles/PRODUCTHUNT_LISTING.md +0 -48
  107. package/articles/PRODUCTHUNT_READY.md +0 -106
  108. package/articles/PR_PLAN_vault.md +0 -125
  109. package/articles/REDDIT_FINAL.md +0 -232
  110. package/articles/REDDIT_POST.md +0 -67
  111. package/articles/REDDIT_SUBMISSION_READY.md +0 -348
  112. package/articles/ROUTERARENA_LEADER.md +0 -45
  113. package/articles/SHOW_HN_FINAL.md +0 -29
  114. package/articles/TWEETS_10K_DOWNLOADS.md +0 -47
  115. package/articles/TWEETS_BENCHMARK_FIRST.md +0 -46
  116. package/articles/TWEETS_MCP_PLAY.md +0 -51
  117. package/articles/TWEETS_SEQUENTIAL_BROKEN.md +0 -49
  118. package/articles/TWEETS_WHY_BUILD.md +0 -54
  119. package/articles/TWEETS_routerarena_leader.md +0 -53
  120. package/articles/TWEET_STORM_READY.md +0 -165
  121. package/articles/TWITTER_FINAL.md +0 -167
  122. package/articles/WHY_10X_BETTER.md +0 -261
  123. package/articles/WHY_CHINESE_STYLE_BETTER.md +0 -323
  124. package/articles/ai-discoverability-llm-routing.md +0 -210
  125. package/articles/devto-llm-routing.md +0 -138
  126. package/articles/hackernews-show-hn.md +0 -54
  127. package/articles/hashnode-llm-cost-optimization.md +0 -125
  128. package/articles/hn_show_2026_05.md +0 -11
  129. package/articles/medium-building-llm-router.md +0 -205
  130. package/articles/reddit-ml.md +0 -76
  131. package/articles/twitter-thread-cost-savings.md +0 -50
  132. package/articles/youtube-tutorial-script.md +0 -262
  133. package/assets/a3m_3blue1brown.mp4 +0 -0
  134. package/assets/banner.svg +0 -109
  135. package/assets/chart-cost-v2.svg +0 -91
  136. package/assets/chart-cost-v3.svg +0 -143
  137. package/assets/chart-features-v2.svg +0 -132
  138. package/assets/chart-features-v3.svg +0 -211
  139. package/assets/chart-growth-v2.svg +0 -122
  140. package/assets/chart-growth-v3.svg +0 -189
  141. package/assets/cost-comparison.svg +0 -134
  142. package/assets/cost-simple.svg +0 -64
  143. package/assets/demo-hn.gif +0 -0
  144. package/assets/feature-matrix.svg +0 -136
  145. package/assets/growth-chart-animated.svg +0 -76
  146. package/assets/growth-chart.svg +0 -82
  147. package/assets/growth-simple.svg +0 -69
  148. package/assets/hero-diagram.svg +0 -81
  149. package/assets/logo-new.svg +0 -21
  150. package/assets/logo.svg +0 -68
  151. package/assets/provider-comparison.svg +0 -121
  152. package/assets/social-preview-new.svg +0 -100
  153. package/assets/social-preview.svg +0 -194
  154. package/assets/social-v2.svg +0 -130
  155. package/assets/social-v3.svg +0 -212
  156. package/benchmark-provider-results.json +0 -245
  157. package/benchmark-results.json +0 -54
  158. package/council-votes/architecture-vote.md +0 -121
  159. package/council-votes/coverage-vote.md +0 -93
  160. package/data/adaptive-benchmark.json +0 -92
  161. package/data/benchmark-results.json +0 -47
  162. package/data/labeled-benchmark.json +0 -88
  163. package/demo/3blue1brown_video.py +0 -285
  164. package/demo/3blue1brown_video_v2.py +0 -310
  165. package/demo/IMPROVED_PROMPTS.md +0 -229
  166. package/demo/VEO3_PROMPTS.md +0 -269
  167. package/demo/VIDEO_PRODUCTION_GUIDE.md +0 -333
  168. package/demo/a3m_3blue1brown.mp4 +0 -0
  169. package/demo/asciinema-demo.sh +0 -195
  170. package/demo/demo-hn.tape +0 -74
  171. package/demo/demo-script.md +0 -53
  172. package/demo/demo-script.sh +0 -62
  173. package/demo/demo.svg +0 -75
  174. package/demo/frame1_ai_data_center.png +0 -0
  175. package/demo/frame1_sunset_video.mp4 +0 -0
  176. package/demo/frame2_cost_comparison.png +0 -0
  177. package/demo/frame2_cost_comparison_fallback.png +0 -0
  178. package/demo/frame3_parallel_execution.png +0 -0
  179. package/demo/frame3_parallel_execution_fallback.png +0 -0
  180. package/demo/frame4_providers.png +0 -0
  181. package/demo/frame4_providers_fallback.png +0 -0
  182. package/demo/frame5_endcard.png +0 -0
  183. package/demo/frame5_endcard_fallback.png +0 -0
  184. package/demo/new_frame1_hook.png +0 -0
  185. package/demo/new_frame2_proof.png +0 -0
  186. package/demo/new_frame3_wow.png +0 -0
  187. package/demo/new_frame4_social.png +0 -0
  188. package/demo/new_frame5_cta.png +0 -0
  189. package/demo/package.json +0 -13
  190. package/demo/product-video-final.mp4 +0 -0
  191. package/demo/product-video-hype-v1.mp4 +0 -0
  192. package/demo/product-video-v1.mp4 +0 -0
  193. package/demo/public/index.html +0 -762
  194. package/demo/recording.cast +0 -55
  195. package/demo/server.js +0 -405
  196. package/demo-new.tape +0 -71
  197. package/demo-real.sh +0 -198
  198. package/demo-simple.tape +0 -205
  199. package/demo.html +0 -520
  200. package/demo.sh +0 -85
  201. package/demo.tape +0 -259
  202. package/dist/analytics/costAnalytics.d.ts.map +0 -1
  203. package/dist/analytics/costAnalytics.js.map +0 -1
  204. package/dist/benchmark/comprehensive.js.map +0 -1
  205. package/dist/benchmark/reproducible.d.ts.map +0 -1
  206. package/dist/benchmark/reproducible.js.map +0 -1
  207. package/dist/cache/prefixCache.d.ts.map +0 -1
  208. package/dist/cache/prefixCache.js.map +0 -1
  209. package/dist/cache/responseCache.d.ts.map +0 -1
  210. package/dist/cache/responseCache.js.map +0 -1
  211. package/dist/cache/semanticCache.d.ts.map +0 -1
  212. package/dist/cache/semanticCache.js.map +0 -1
  213. package/dist/cli/setupWizard.d.ts.map +0 -1
  214. package/dist/cli/setupWizard.js.map +0 -1
  215. package/dist/cost/budgetEnforcer.d.ts.map +0 -1
  216. package/dist/cost/budgetEnforcer.js.map +0 -1
  217. package/dist/cost/costTracker.d.ts.map +0 -1
  218. package/dist/cost/costTracker.js.map +0 -1
  219. package/dist/ensemble/multiRoundDialog.js.map +0 -1
  220. package/dist/ensemble/shapleyValue.js.map +0 -1
  221. package/dist/integrations/langchainAdapter.d.ts.map +0 -1
  222. package/dist/integrations/langchainAdapter.js.map +0 -1
  223. package/dist/integrations/oauth.d.ts.map +0 -1
  224. package/dist/integrations/oauth.js.map +0 -1
  225. package/dist/integrations/scienceAdapter.js.map +0 -1
  226. package/dist/memory/autoFetch.d.ts.map +0 -1
  227. package/dist/memory/autoFetch.js.map +0 -1
  228. package/dist/memory/episodicMemory.d.ts.map +0 -1
  229. package/dist/memory/episodicMemory.js.map +0 -1
  230. package/dist/memory/memoryTree.d.ts.map +0 -1
  231. package/dist/memory/memoryTree.js.map +0 -1
  232. package/dist/memory/obsidianVault.d.ts.map +0 -1
  233. package/dist/memory/obsidianVault.js.map +0 -1
  234. package/dist/observability/changeWatch.d.ts.map +0 -1
  235. package/dist/observability/changeWatch.js.map +0 -1
  236. package/dist/observability/fatigueDetector.d.ts.map +0 -1
  237. package/dist/observability/fatigueDetector.js.map +0 -1
  238. package/dist/observability/index.d.ts.map +0 -1
  239. package/dist/observability/index.js.map +0 -1
  240. package/dist/observability/metrics.d.ts.map +0 -1
  241. package/dist/observability/metrics.js.map +0 -1
  242. package/dist/observability/middleware.d.ts.map +0 -1
  243. package/dist/observability/middleware.js.map +0 -1
  244. package/dist/observability/tracer.d.ts.map +0 -1
  245. package/dist/observability/tracer.js.map +0 -1
  246. package/dist/observability/types.d.ts.map +0 -1
  247. package/dist/observability/types.js.map +0 -1
  248. package/dist/orchestration/haloOrchestrator.d.ts.map +0 -1
  249. package/dist/orchestration/haloOrchestrator.js.map +0 -1
  250. package/dist/orchestration/mctsWorkflow.d.ts.map +0 -1
  251. package/dist/orchestration/mctsWorkflow.js.map +0 -1
  252. package/dist/providers/localProvider.d.ts.map +0 -1
  253. package/dist/providers/localProvider.js.map +0 -1
  254. package/dist/providers/providerConfig.d.ts.map +0 -1
  255. package/dist/providers/providerConfig.js.map +0 -1
  256. package/dist/providers/registry.d.ts.map +0 -1
  257. package/dist/providers/registry.js.map +0 -1
  258. package/dist/routing/advancedRouter.d.ts.map +0 -1
  259. package/dist/routing/advancedRouter.js.map +0 -1
  260. package/dist/routing/crossModelValidation.d.ts.map +0 -1
  261. package/dist/routing/crossModelValidation.js.map +0 -1
  262. package/dist/routing/providerHealth.d.ts.map +0 -1
  263. package/dist/routing/providerHealth.js.map +0 -1
  264. package/dist/routing/providerRetry.d.ts.map +0 -1
  265. package/dist/routing/providerRetry.js.map +0 -1
  266. package/dist/scripts/banner.js +0 -29
  267. package/dist/security/guardrails.d.ts.map +0 -1
  268. package/dist/security/guardrails.js.map +0 -1
  269. package/dist/server/dashboard.d.ts.map +0 -1
  270. package/dist/server/dashboard.js.map +0 -1
  271. package/dist/server/modelMapper.d.ts.map +0 -1
  272. package/dist/server/modelMapper.js.map +0 -1
  273. package/dist/server/proxyServer.d.ts.map +0 -1
  274. package/dist/server/proxyServer.js.map +0 -1
  275. package/dist/skills/__tests__/skill_manager.test.d.ts +0 -2
  276. package/dist/skills/__tests__/skill_manager.test.d.ts.map +0 -1
  277. package/dist/skills/__tests__/skill_manager.test.js +0 -268
  278. package/dist/skills/__tests__/skill_manager.test.js.map +0 -1
  279. package/dist/tools/tmlpdTools.d.ts.map +0 -1
  280. package/dist/tools/tmlpdTools.js.map +0 -1
  281. package/dist/tui/dashboard.d.ts.map +0 -1
  282. package/dist/tui/dashboard.js.map +0 -1
  283. package/dist/tui/index.d.ts.map +0 -1
  284. package/dist/tui/index.js.map +0 -1
  285. package/dist/utils/batchProcessor.d.ts.map +0 -1
  286. package/dist/utils/batchProcessor.js.map +0 -1
  287. package/dist/utils/compression.d.ts.map +0 -1
  288. package/dist/utils/compression.js.map +0 -1
  289. package/dist/utils/costUtils.d.ts.map +0 -1
  290. package/dist/utils/costUtils.js.map +0 -1
  291. package/dist/utils/reliability.d.ts.map +0 -1
  292. package/dist/utils/reliability.js.map +0 -1
  293. package/dist/utils/sorting.d.ts.map +0 -1
  294. package/dist/utils/sorting.js.map +0 -1
  295. package/dist/utils/speculativeDecoding.d.ts.map +0 -1
  296. package/dist/utils/speculativeDecoding.js.map +0 -1
  297. package/dist/utils/tokenUtils.d.ts.map +0 -1
  298. package/dist/utils/tokenUtils.js.map +0 -1
  299. package/docs/.nojekyll +0 -0
  300. package/docs/ANALYSIS_PRINCIPLES.md +0 -162
  301. package/docs/API.md +0 -855
  302. package/docs/ARCHITECTURAL-IMPROVEMENTS-2025.md +0 -1391
  303. package/docs/ARCHITECTURAL-IMPROVEMENTS-REVISED-2025.md +0 -1051
  304. package/docs/BENCHMARK.md +0 -170
  305. package/docs/CHINESE_PROVIDER_RELIABILITY.md +0 -37
  306. package/docs/CITATIONS.md +0 -74
  307. package/docs/CLAIMS_AND_EVIDENCE.md +0 -58
  308. package/docs/CONFIGURATION.md +0 -476
  309. package/docs/COUNCIL_DECISION.json +0 -816
  310. package/docs/COUNCIL_SUMMARY.md +0 -319
  311. package/docs/COUNCIL_V2.2_DECISION.md +0 -416
  312. package/docs/ENGINEERING_SPEC.md +0 -55
  313. package/docs/FACTORY_RESET.md +0 -34
  314. package/docs/GEO.md +0 -66
  315. package/docs/GEO_OPTIMIZATION.md +0 -30
  316. package/docs/GEO_ROOT_CAUSE.md +0 -136
  317. package/docs/GEO_STATUS.md +0 -85
  318. package/docs/GEO_TEST_RESULTS.md +0 -176
  319. package/docs/HN_CHECKLIST.md +0 -38
  320. package/docs/HN_FOUNDER_COMMENT.md +0 -17
  321. package/docs/HN_SUBMISSION_FINAL.md +0 -180
  322. package/docs/HN_SUBMISSION_V3.md +0 -56
  323. package/docs/IMPROVEMENT_ROADMAP.md +0 -515
  324. package/docs/INTEGRATIONS.md +0 -420
  325. package/docs/LANGCHAIN_INTEGRATION.md +0 -147
  326. package/docs/LLM_COUNCIL_DECISION.md +0 -508
  327. package/docs/MIDDLEWARE_CHAIN.md +0 -35
  328. package/docs/PROMO_CHECKLIST.md +0 -200
  329. package/docs/QUICKSTART.md +0 -271
  330. package/docs/QUICK_START.md +0 -43
  331. package/docs/QUICK_START_VISIBILITY.md +0 -782
  332. package/docs/REDDIT_GAP_ANALYSIS.md +0 -299
  333. package/docs/RELEASE_CHECKLIST.md +0 -32
  334. package/docs/REPRODUCIBILITY.md +0 -63
  335. package/docs/RESEARCH_BACKED_IMPROVEMENTS.md +0 -1180
  336. package/docs/ROUTING_RUBRIC.md +0 -197
  337. package/docs/SEO_AUDIT.md +0 -186
  338. package/docs/SOCIAL_LISTENING.md +0 -219
  339. package/docs/TMLPD_QNA.md +0 -751
  340. package/docs/TMLPD_V2.1_COMPLETE.md +0 -763
  341. package/docs/TMLPD_V2.2_RESEARCH_ROADMAP.md +0 -754
  342. package/docs/UPDATE_TOPICS.md +0 -15
  343. package/docs/USE_CASES.md +0 -59
  344. package/docs/V2.2_IMPLEMENTATION_COMPLETE.md +0 -446
  345. package/docs/V2_IMPLEMENTATION_GUIDE.md +0 -388
  346. package/docs/VERCEL_AI_SDK.md +0 -209
  347. package/docs/VISIBILITY_ADOPTION_PLAN.md +0 -1005
  348. package/docs/_config.yml +0 -49
  349. package/docs/ai-plugin.json +0 -16
  350. package/docs/api.html +0 -513
  351. package/docs/architecture-diagram.md +0 -40
  352. package/docs/benchmark-chart.png +0 -0
  353. package/docs/benchmark.html +0 -387
  354. package/docs/blog/routerarena-number-one.html +0 -73
  355. package/docs/cli-cheatsheet.md +0 -339
  356. package/docs/compare.md +0 -109
  357. package/docs/comparison-litellm.md +0 -88
  358. package/docs/comparison.md +0 -108
  359. package/docs/cost-chart-ascii.md +0 -42
  360. package/docs/cost-comparison-chart.svg +0 -88
  361. package/docs/curl-examples.md +0 -247
  362. package/docs/demo-auto.html +0 -264
  363. package/docs/demo.html +0 -416
  364. package/docs/geo/GENERATIVE_ENGINE_OPTIMIZATION.md +0 -232
  365. package/docs/index.html +0 -507
  366. package/docs/launch-content/LAUNCH_EXECUTION_CHECKLIST.md +0 -421
  367. package/docs/launch-content/README.md +0 -457
  368. package/docs/launch-content/assets/cost_comparison_100_tasks.png +0 -0
  369. package/docs/launch-content/assets/cumulative_savings.png +0 -0
  370. package/docs/launch-content/assets/parallel_speedup.png +0 -0
  371. package/docs/launch-content/assets/provider_pricing_comparison.png +0 -0
  372. package/docs/launch-content/assets/task_breakdown_comparison.png +0 -0
  373. package/docs/launch-content/generate_charts.py +0 -313
  374. package/docs/launch-content/hn_show_post.md +0 -139
  375. package/docs/launch-content/partner_outreach_templates.md +0 -745
  376. package/docs/launch-content/reddit_posts.md +0 -467
  377. package/docs/launch-content/twitter_thread.txt +0 -460
  378. package/docs/npm-downloads-chart.svg +0 -43
  379. package/docs/openapi.json +0 -139
  380. package/docs/openapi.yaml +0 -1318
  381. package/docs/quick-start.html +0 -366
  382. package/docs/robots.txt +0 -52
  383. package/docs/sitemap.xml +0 -57
  384. package/docs/styles.css +0 -682
  385. package/docs/well-known/ai-plugin.json +0 -16
  386. package/docs/wellknown/ai-plugin.json +0 -16
  387. package/docs-site/assets/og-banner.svg +0 -194
  388. package/docs-site/index.html +0 -632
  389. package/eval/README.md +0 -46
  390. package/eval/baselines/main.json +0 -12
  391. package/eval/benchmark_dataset.jsonl +0 -16
  392. package/eval/check_golden_routes.js +0 -64
  393. package/eval/datasets/catalog.json +0 -33
  394. package/eval/datasets/slices/cn_provider_reliability_v1.jsonl +0 -3
  395. package/eval/datasets/slices/cost_pressure_v1.jsonl +0 -3
  396. package/eval/datasets/slices/safety_guardrails_v1.jsonl +0 -3
  397. package/eval/evals.json +0 -199
  398. package/eval/fault_injection_thresholds.json +0 -3
  399. package/eval/generate_report.js +0 -128
  400. package/eval/golden_routes.json +0 -114
  401. package/eval/lib/experiment_registry.js +0 -24
  402. package/eval/run_eval.js +0 -197
  403. package/eval/run_fault_injection.js +0 -201
  404. package/eval/run_shadow_eval.js +0 -85
  405. package/eval/thresholds.json +0 -9
  406. package/examples/QUICKSTART.md +0 -183
  407. package/examples/README.md +0 -61
  408. package/examples/a3m-sdk.js +0 -124
  409. package/examples/basic-route.js +0 -54
  410. package/examples/chat-loop.js +0 -202
  411. package/examples/classify-then-route.js +0 -102
  412. package/examples/cost-compare.js +0 -120
  413. package/examples/ensemble.js +0 -160
  414. package/examples/whatsapp-telegram-bridge-demo.js +0 -302
  415. package/examples/whatsapp-telegram-bridge.js +0 -269
  416. package/hf-space/README.md +0 -23
  417. package/hf-space/app.py +0 -240
  418. package/hf-space/requirements.txt +0 -1
  419. package/huggingface_space/README.md +0 -35
  420. package/huggingface_space/app.py +0 -126
  421. package/huggingface_space/create_space.py +0 -208
  422. package/huggingface_space/requirements.txt +0 -1
  423. package/mcp-server/README.md +0 -188
  424. package/mcp-server/package.json +0 -29
  425. package/mcp-server/src/index.ts +0 -744
  426. package/mcp-server/tsconfig.json +0 -19
  427. package/openclaw-alexa-bridge/ALL_REMAINING_FIXES_PLAN.md +0 -313
  428. package/openclaw-alexa-bridge/REMAINING_FIXES_SUMMARY.md +0 -277
  429. package/openclaw-alexa-bridge/src/alexa_handler_no_tmlpd.js +0 -1234
  430. package/openclaw-alexa-bridge/test_fixes.js +0 -77
  431. package/playground/README.md +0 -51
  432. package/playground/codesandbox.json +0 -12
  433. package/playground/index.js +0 -39
  434. package/proxy/README.md +0 -227
  435. package/proxy/package-lock.json +0 -831
  436. package/proxy/package.json +0 -17
  437. package/proxy/rate-limit.js +0 -145
  438. package/proxy/rate-limit.test.js +0 -311
  439. package/proxy/server.js +0 -970
  440. package/python/README.md +0 -102
  441. package/python/a3m/__init__.py +0 -6
  442. package/python/a3m/client.py +0 -190
  443. package/python/a3m/models.py +0 -40
  444. package/python/a3m/sync_client.py +0 -61
  445. package/python/examples.py +0 -53
  446. package/python/integrations.py +0 -330
  447. package/python/pyproject.toml +0 -23
  448. package/python/setup.py +0 -28
  449. package/python/tmlpd.py +0 -369
  450. package/qna/REDDIT_GAP_ANALYSIS.md +0 -299
  451. package/qna/TMLPD_QNA.md +0 -751
  452. package/research/FINDING_001_safety.md +0 -28
  453. package/research/FINDING_002_error_diversity.md +0 -32
  454. package/research/FINDING_003_confidence_weighted_voting.md +0 -32
  455. package/research/FINDING_004_cross_model_semantic_detection.md +0 -37
  456. package/research/FINDING_005_knowledge_gap_orthogonality.md +0 -34
  457. package/research/HALLUCINATION_RESEARCH.md +0 -27
  458. package/research/ensemble-voting.md +0 -324
  459. package/research/loss-functions.md +0 -545
  460. package/research-log.md +0 -49
  461. package/scripts/banner.js +0 -29
  462. package/scripts/benchmark-local-routerarena.ts +0 -176
  463. package/scripts/benchmark.js +0 -145
  464. package/scripts/benchmark.sh +0 -61
  465. package/scripts/compare-providers.sh +0 -230
  466. package/scripts/content-planner.js +0 -25
  467. package/scripts/create-labeled-benchmark.ts +0 -105
  468. package/scripts/cross_post.py +0 -443
  469. package/scripts/local-router-benchmark.ts +0 -154
  470. package/scripts/post-all.sh +0 -41
  471. package/scripts/publish_fcc.py +0 -106
  472. package/scripts/push-to-gitee.sh +0 -25
  473. package/scripts/routerarena_ensemble.js +0 -144
  474. package/scripts/routing-benchmark-v2.js +0 -373
  475. package/scripts/routing-benchmark-v3.js +0 -118
  476. package/scripts/routing-benchmark.js +0 -462
  477. package/scripts/run-labeled-benchmark.mjs +0 -104
  478. package/scripts/run-mmlu-benchmark.js +0 -176
  479. package/scripts/run-provider-benchmark.js +0 -244
  480. package/scripts/update-npm-badges.js +0 -158
  481. package/skill/SKILL.md +0 -238
  482. package/src/__tests__/integration/tmpld_integration.test.py +0 -540
  483. package/src/skills/__tests__/skill_manager.test.ts +0 -328
  484. package/submissions/benchmarks/ALL_PLATFORMS_SUBMISSION.md +0 -94
  485. package/submissions/benchmarks/LLMROUTERBENCH_SUBMISSION.md +0 -121
  486. package/submissions/benchmarks/MMRBENCH_SUBMISSION.md +0 -94
  487. package/submissions/benchmarks/ROUTERARENA_UPDATE.md +0 -83
  488. package/submissions/benchmarks/ROUTERBENCH_SUBMISSION.md +0 -225
  489. package/test-council/1-structure-tests.test.js +0 -353
  490. package/test-council/1-structure-tests.test.ts +0 -353
  491. package/test-council/2-edge-case-tests.test.ts +0 -361
  492. package/test-council/3-performance-tests.test.ts +0 -669
  493. package/test-council/4-integration-tests.test.ts +0 -391
  494. package/test-council/5-agent-council-eval.test.ts +0 -413
  495. package/test-council/AGENT_COUNCIL_ARCHITECTURE.md +0 -349
  496. package/test-council/TEST_COUNCIL_REPORT.md +0 -201
  497. package/test-council/agents/edge-case-agent.ts +0 -363
  498. package/test-council/agents/performance-agent.ts +0 -426
  499. package/test-council/agents/structure-agent.ts +0 -227
  500. package/test-council/council.md +0 -183
  501. package/tests/__mocks__/tokenUtils.ts +0 -8
  502. package/tests/memory/episodicMemory.test.ts +0 -227
  503. package/tests/package-lock.json +0 -1628
  504. package/tests/package.json +0 -18
  505. package/tests/routing/ensembleVoting.test.ts +0 -236
  506. package/tests/routing/providerRetry.test.ts +0 -360
  507. package/tests/routing/queryTypePresets.test.ts +0 -208
  508. package/tests/security/guardrailEngine.test.ts +0 -700
  509. package/tests/tsconfig.json +0 -21
  510. package/tests/vitest.config.ts +0 -18
  511. package/tmlpd-pi-extension/README.md +0 -66
  512. package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts +0 -114
  513. package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts.map +0 -1
  514. package/tmlpd-pi-extension/dist/cache/prefixCache.js +0 -285
  515. package/tmlpd-pi-extension/dist/cache/prefixCache.js.map +0 -1
  516. package/tmlpd-pi-extension/dist/cache/responseCache.d.ts +0 -58
  517. package/tmlpd-pi-extension/dist/cache/responseCache.d.ts.map +0 -1
  518. package/tmlpd-pi-extension/dist/cache/responseCache.js +0 -153
  519. package/tmlpd-pi-extension/dist/cache/responseCache.js.map +0 -1
  520. package/tmlpd-pi-extension/dist/cli.js +0 -59
  521. package/tmlpd-pi-extension/dist/cost/costTracker.d.ts +0 -95
  522. package/tmlpd-pi-extension/dist/cost/costTracker.d.ts.map +0 -1
  523. package/tmlpd-pi-extension/dist/cost/costTracker.js +0 -240
  524. package/tmlpd-pi-extension/dist/cost/costTracker.js.map +0 -1
  525. package/tmlpd-pi-extension/dist/index.d.ts +0 -723
  526. package/tmlpd-pi-extension/dist/index.d.ts.map +0 -1
  527. package/tmlpd-pi-extension/dist/index.js +0 -239
  528. package/tmlpd-pi-extension/dist/index.js.map +0 -1
  529. package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts +0 -82
  530. package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts.map +0 -1
  531. package/tmlpd-pi-extension/dist/memory/episodicMemory.js +0 -145
  532. package/tmlpd-pi-extension/dist/memory/episodicMemory.js.map +0 -1
  533. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts +0 -102
  534. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts.map +0 -1
  535. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js +0 -207
  536. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js.map +0 -1
  537. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts +0 -85
  538. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts.map +0 -1
  539. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js +0 -210
  540. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js.map +0 -1
  541. package/tmlpd-pi-extension/dist/providers/localProvider.d.ts +0 -102
  542. package/tmlpd-pi-extension/dist/providers/localProvider.d.ts.map +0 -1
  543. package/tmlpd-pi-extension/dist/providers/localProvider.js +0 -338
  544. package/tmlpd-pi-extension/dist/providers/localProvider.js.map +0 -1
  545. package/tmlpd-pi-extension/dist/providers/registry.d.ts +0 -55
  546. package/tmlpd-pi-extension/dist/providers/registry.d.ts.map +0 -1
  547. package/tmlpd-pi-extension/dist/providers/registry.js +0 -138
  548. package/tmlpd-pi-extension/dist/providers/registry.js.map +0 -1
  549. package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts +0 -68
  550. package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts.map +0 -1
  551. package/tmlpd-pi-extension/dist/routing/advancedRouter.js +0 -332
  552. package/tmlpd-pi-extension/dist/routing/advancedRouter.js.map +0 -1
  553. package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts +0 -101
  554. package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts.map +0 -1
  555. package/tmlpd-pi-extension/dist/tools/tmlpdTools.js +0 -368
  556. package/tmlpd-pi-extension/dist/tools/tmlpdTools.js.map +0 -1
  557. package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts +0 -96
  558. package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts.map +0 -1
  559. package/tmlpd-pi-extension/dist/utils/batchProcessor.js +0 -170
  560. package/tmlpd-pi-extension/dist/utils/batchProcessor.js.map +0 -1
  561. package/tmlpd-pi-extension/dist/utils/compression.d.ts +0 -61
  562. package/tmlpd-pi-extension/dist/utils/compression.d.ts.map +0 -1
  563. package/tmlpd-pi-extension/dist/utils/compression.js +0 -281
  564. package/tmlpd-pi-extension/dist/utils/compression.js.map +0 -1
  565. package/tmlpd-pi-extension/dist/utils/reliability.d.ts +0 -74
  566. package/tmlpd-pi-extension/dist/utils/reliability.d.ts.map +0 -1
  567. package/tmlpd-pi-extension/dist/utils/reliability.js +0 -177
  568. package/tmlpd-pi-extension/dist/utils/reliability.js.map +0 -1
  569. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts +0 -117
  570. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts.map +0 -1
  571. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js +0 -246
  572. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js.map +0 -1
  573. package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts +0 -50
  574. package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts.map +0 -1
  575. package/tmlpd-pi-extension/dist/utils/tokenUtils.js +0 -124
  576. package/tmlpd-pi-extension/dist/utils/tokenUtils.js.map +0 -1
  577. package/tmlpd-pi-extension/examples/QUICKSTART.md +0 -183
  578. package/tmlpd-pi-extension/package-lock.json +0 -79
  579. package/tmlpd-pi-extension/package.json +0 -172
  580. package/tmlpd-pi-extension/python/examples.py +0 -53
  581. package/tmlpd-pi-extension/python/integrations.py +0 -330
  582. package/tmlpd-pi-extension/python/setup.py +0 -28
  583. package/tmlpd-pi-extension/python/tmlpd.py +0 -369
  584. package/tmlpd-pi-extension/qna/REDDIT_GAP_ANALYSIS.md +0 -299
  585. package/tmlpd-pi-extension/qna/TMLPD_QNA.md +0 -751
  586. package/tmlpd-pi-extension/skill/SKILL.md +0 -238
  587. package/tmlpd-pi-extension/src/cache/responseCache.ts +0 -147
  588. package/tmlpd-pi-extension/src/cost/costTracker.ts +0 -302
  589. package/tmlpd-pi-extension/src/index.ts +0 -232
  590. package/tmlpd-pi-extension/src/memory/episodicMemory.ts +0 -257
  591. package/tmlpd-pi-extension/src/orchestration/haloOrchestrator.ts +0 -266
  592. package/tmlpd-pi-extension/src/orchestration/mctsWorkflow.ts +0 -262
  593. package/tmlpd-pi-extension/src/providers/localProvider.ts +0 -406
  594. package/tmlpd-pi-extension/src/providers/registry.ts +0 -164
  595. package/tmlpd-pi-extension/src/routing/ensembleVoting.ts +0 -159
  596. package/tmlpd-pi-extension/src/routing/queryTypePresets.ts +0 -136
  597. package/tmlpd-pi-extension/src/tools/tmlpdTools.ts +0 -433
  598. package/tmlpd-pi-extension/src/utils/batchProcessor.ts +0 -232
  599. package/tmlpd-pi-extension/src/utils/compression.ts +0 -325
  600. package/tmlpd-pi-extension/src/utils/reliability.ts +0 -221
  601. package/tmlpd-pi-extension/src/utils/tokenUtils.ts +0 -145
  602. package/tmlpd-pi-extension/tsconfig.json +0 -18
  603. package/tsconfig.build.json +0 -29
  604. package/tsconfig.json +0 -18
  605. /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.