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,508 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- TMLPD Improvement Council - Multi-LLM Decision Making
4
-
5
- Uses multiple AI providers to analyze, debate, and vote on
6
- the best improvement path for TMLPD v2.0.
7
-
8
- Council Members:
9
- 1. Anthropic Claude (Architectural perspective)
10
- 2. OpenAI GPT-4 (Practical implementation)
11
- 3. Google Gemini (Research alignment)
12
- 4. Cerebras Llama (Cost/benefit analysis)
13
- """
14
-
15
- import asyncio
16
- import json
17
- from datetime import datetime
18
- from pathlib import Path
19
- from typing import Dict, List, Any
20
-
21
- # Mock implementations (in real system, use actual API calls)
22
- class CouncilMember:
23
- """A council member with specific perspective"""
24
-
25
- def __init__(self, name: str, provider: str, perspective: str):
26
- self.name = name
27
- self.provider = provider
28
- self.perspective = perspective
29
-
30
- async def deliberate(self, proposals: List[Dict]) -> Dict[str, Any]:
31
- """
32
- Analyze proposals and provide recommendations
33
-
34
- Returns: Ranking with reasoning
35
- """
36
- # In production, call actual LLM API
37
- # For now, return perspective-based analysis
38
-
39
- analysis = {
40
- "member": self.name,
41
- "provider": self.provider,
42
- "perspective": self.perspective,
43
- "rankings": [],
44
- "reasoning": ""
45
- }
46
-
47
- # Different perspectives weight factors differently
48
- if self.perspective == "architectural":
49
- # Prioritize: System design, scalability, maintainability
50
- priority_factors = ["scalability", "maintainability", "abstraction"]
51
- analysis["reasoning"] = (
52
- "Focus on solid architectural foundations that enable "
53
- "future growth. Multi-provider system and difficulty-aware "
54
- "routing provide the best extensibility."
55
- )
56
-
57
- elif self.perspective == "practical":
58
- # Prioritize: Implementation speed, user value, quick wins
59
- priority_factors = ["implementation_speed", "user_value", "quick_wins"]
60
- analysis["reasoning"] = (
61
- "Prioritize features that provide immediate user value. "
62
- "CLI interface and error handling give instant usability "
63
- "improvements."
64
- )
65
-
66
- elif self.perspective == "research":
67
- # Prioritize: Research backing, innovation, alignment with trends
68
- priority_factors = ["research_support", "innovation", "trend_alignment"]
69
- analysis["reasoning"] = (
70
- "Emphasize improvements with strong research backing. "
71
- "Advanced memory systems and difficulty-aware routing have "
72
- "solid arXiv validation."
73
- )
74
-
75
- elif self.perspective == "cost_benefit":
76
- # Prioritize: Cost reduction, ROI, efficiency
77
- priority_factors = ["cost_savings", "roi", "efficiency"]
78
- analysis["reasoning"] = (
79
- "Focus on improvements that reduce operational costs and "
80
- "increase efficiency. Multi-provider routing enables 40-60% "
81
- "cost reduction (MONK benchmarks)."
82
- )
83
-
84
- # Score each proposal
85
- for proposal in proposals:
86
- score = self._score_proposal(proposal, priority_factors)
87
- analysis["rankings"].append({
88
- "proposal": proposal["name"],
89
- "score": score,
90
- "justification": self._justify_score(proposal, score)
91
- })
92
-
93
- # Sort by score
94
- analysis["rankings"].sort(key=lambda x: x["score"], reverse=True)
95
-
96
- return analysis
97
-
98
- def _score_proposal(self, proposal: Dict, factors: List[str]) -> float:
99
- """Score a proposal based on perspective factors"""
100
- score = 0.0
101
-
102
- # Base score from value rating
103
- score += proposal.get("value", 0) * 20 # 0-100 points
104
-
105
- # Adjust for effort (lower effort = better)
106
- effort_days = proposal.get("effort_days", 5)
107
- score += (10 - effort_days) * 5 # Prefer quicker implementations
108
-
109
- # Research backing boost
110
- if proposal.get("research_backed"):
111
- if "research" in factors:
112
- score += 15
113
-
114
- # Impact boost
115
- impact = proposal.get("impact", 0)
116
- if impact >= 4 and "user_value" in factors:
117
- score += 10
118
-
119
- return min(score, 100)
120
-
121
- def _justify_score(self, proposal: Dict, score: float) -> str:
122
- """Generate justification for the score"""
123
- justifications = []
124
-
125
- if score >= 80:
126
- justifications.append("Critical priority")
127
- elif score >= 60:
128
- justifications.append("High priority")
129
- elif score >= 40:
130
- justifications.append("Medium priority")
131
- else:
132
- justifications.append("Lower priority")
133
-
134
- if proposal.get("research_backed"):
135
- justifications.append("Strong research support")
136
-
137
- if proposal.get("effort_days", 5) <= 2:
138
- justifications.append("Quick to implement")
139
-
140
- return ", ".join(justifications)
141
-
142
-
143
- class ImprovementCouncil:
144
- """Council of AI experts for decision making"""
145
-
146
- def __init__(self):
147
- self.members = [
148
- CouncilMember(
149
- name="Claude (Architect)",
150
- provider="anthropic",
151
- perspective="architectural"
152
- ),
153
- CouncilMember(
154
- name="GPT-4 (Pragmatist)",
155
- provider="openai",
156
- perspective="practical"
157
- ),
158
- CouncilMember(
159
- name="Gemini (Researcher)",
160
- provider="google",
161
- perspective="research"
162
- ),
163
- CouncilMember(
164
- name="Llama (Cost Analyst)",
165
- provider="cerebras",
166
- perspective="cost_benefit"
167
- )
168
- ]
169
-
170
- self.proposals = [
171
- {
172
- "name": "Multi-Provider System with Health Monitoring",
173
- "effort_days": 3,
174
- "value": 5,
175
- "impact": 5,
176
- "research_backed": True,
177
- "citations": [
178
- "https://arxiv.org/html/2506.12508v1",
179
- "https://arxiv.org/abs/2511.15755"
180
- ],
181
- "description": "Enable switching between Anthropic, OpenAI, Cerebras, etc. with health monitoring and automatic failover. MONK benchmarks show 40-60% cost reduction."
182
- },
183
- {
184
- "name": "Difficulty-Aware Routing",
185
- "effort_days": 2,
186
- "value": 5,
187
- "impact": 5,
188
- "research_backed": True,
189
- "citations": [
190
- "https://arxiv.org/html/2509.11079v2"
191
- ],
192
- "description": "Classify tasks by difficulty (trivial/simple/medium/complex/expert) and route to optimal providers. Research shows 35% decision quality improvement."
193
- },
194
- {
195
- "name": "Advanced Memory System (Memoria-inspired)",
196
- "effort_days": 4,
197
- "value": 5,
198
- "impact": 5,
199
- "research_backed": True,
200
- "citations": [
201
- "https://www.arxiv.org/abs/2512.12686",
202
- "https://arxiv.org/abs/2502.12110"
203
- ],
204
- "description": "Multi-tier memory: episodic (JSON), semantic (vector DB), working (in-memory). Research shows 50% improvement in long-term coherence."
205
- },
206
- {
207
- "name": "Workflow Executors (Chaining & Parallelization)",
208
- "effort_days": 3,
209
- "value": 5,
210
- "impact": 4,
211
- "research_backed": True,
212
- "citations": [
213
- "https://arxiv.org/abs/2511.15755"
214
- ],
215
- "description": "Implement chaining (sequential) and parallelization (concurrent) executors. Unlocks the 15% workflow use case."
216
- },
217
- {
218
- "name": "CLI Interface with Rich Output",
219
- "effort_days": 3,
220
- "value": 4,
221
- "impact": 4,
222
- "research_backed": False,
223
- "description": "Command-line tool with tmlpd execute, route, memory commands. Makes TMLPD practical for daily use."
224
- },
225
- {
226
- "name": "Function Calling / Tool Use Enhancement",
227
- "effort_days": 2,
228
- "value": 4,
229
- "impact": 4,
230
- "research_backed": True,
231
- "citations": [
232
- "https://arxiv.org/html/2409.00920v2"
233
- ],
234
- "description": "Skills as callable functions with structured parameters. Research shows 40% reliability improvement."
235
- },
236
- {
237
- "name": "Git-Versioned Context Management",
238
- "effort_days": 2,
239
- "value": 3,
240
- "impact": 3,
241
- "research_backed": True,
242
- "citations": [
243
- "https://arxiv.org/abs/2508.00031"
244
- ],
245
- "description": "Git-like branching and versioning for checkpoints. Enables experiment tracking and reproducibility."
246
- },
247
- {
248
- "name": "Better Error Messages & Logging",
249
- "effort_days": 1,
250
- "value": 3,
251
- "impact": 3,
252
- "research_backed": False,
253
- "description": "Actionable error messages with suggestions. Comprehensive logging for debugging."
254
- }
255
- ]
256
-
257
- async def deliberate(self) -> Dict[str, Any]:
258
- """
259
- Run council deliberation process
260
-
261
- Steps:
262
- 1. Each member analyzes proposals independently
263
- 2. Aggregate rankings
264
- 3. Identify consensus and disagreements
265
- 4. Generate final recommendation
266
- """
267
- print("\n" + "=" * 70)
268
- print(" TMLPD IMPROVEMENT COUNCIL - MULTI-LLM DECISION MAKING")
269
- print("=" * 70 + "\n")
270
-
271
- # Step 1: Individual deliberations
272
- print("Step 1: Gathering individual council member opinions...\n")
273
-
274
- analyses = []
275
- for member in self.members:
276
- print(f" 🤔 {member.name} ({member.provider}) deliberating...")
277
- analysis = await member.deliberate(self.proposals)
278
- analyses.append(analysis)
279
- print(f" ✓ Complete")
280
-
281
- # Step 2: Aggregate rankings
282
- print("\nStep 2: Aggregating rankings and identifying consensus...\n")
283
-
284
- aggregated = self._aggregate_rankings(analyses)
285
-
286
- # Step 3: Display results
287
- self._display_council_results(analyses, aggregated)
288
-
289
- # Step 4: Generate final recommendation
290
- recommendation = self._generate_recommendation(aggregated)
291
-
292
- # Save results
293
- self._save_council_decision(analyses, aggregated, recommendation)
294
-
295
- return {
296
- "individual_analyses": analyses,
297
- "aggregated_rankings": aggregated,
298
- "recommendation": recommendation
299
- }
300
-
301
- def _aggregate_rankings(self, analyses: List[Dict]) -> Dict[str, Any]:
302
- """Aggregate rankings from all council members"""
303
-
304
- # Calculate average scores for each proposal
305
- proposal_scores = {p["name"]: {"total": 0, "count": 0, "scores": []} for p in self.proposals}
306
-
307
- for analysis in analyses:
308
- for ranking in analysis["rankings"]:
309
- proposal_name = ranking["proposal"]
310
- score = ranking["score"]
311
-
312
- proposal_scores[proposal_name]["total"] += score
313
- proposal_scores[proposal_name]["count"] += 1
314
- proposal_scores[proposal_name]["scores"].append(score)
315
-
316
- # Calculate averages
317
- aggregated = []
318
- for proposal_name, scores in proposal_scores.items():
319
- avg_score = scores["total"] / scores["count"]
320
- std_dev = self._calculate_std_dev(scores["scores"])
321
-
322
- # Find consensus level (low std_dev = high consensus)
323
- if std_dev < 10:
324
- consensus = "strong"
325
- elif std_dev < 20:
326
- consensus = "moderate"
327
- else:
328
- consensus = "weak"
329
-
330
- aggregated.append({
331
- "proposal": proposal_name,
332
- "average_score": avg_score,
333
- "std_deviation": std_dev,
334
- "consensus": consensus
335
- })
336
-
337
- # Sort by average score
338
- aggregated.sort(key=lambda x: x["average_score"], reverse=True)
339
-
340
- return aggregated
341
-
342
- def _calculate_std_dev(self, scores: List[float]) -> float:
343
- """Calculate standard deviation"""
344
- if len(scores) < 2:
345
- return 0.0
346
-
347
- mean = sum(scores) / len(scores)
348
- variance = sum((s - mean) ** 2 for s in scores) / len(scores)
349
- return variance ** 0.5
350
-
351
- def _display_council_results(self, analyses: List[Dict], aggregated: List[Dict]):
352
- """Display council deliberation results"""
353
-
354
- print("\n" + "=" * 70)
355
- print(" COUNCIL MEMBER OPINIONS")
356
- print("=" * 70 + "\n")
357
-
358
- for analysis in analyses:
359
- print(f"🤖 {analysis['member']} ({analysis['provider']})")
360
- print(f" Perspective: {analysis['perspective']}")
361
- print(f" Reasoning: {analysis['reasoning']}")
362
- print(f"\n Top Rankings:")
363
-
364
- for i, ranking in enumerate(analysis["rankings"][:3], 1):
365
- print(f" {i}. {ranking['proposal']}: {ranking['score']:.1f}/100")
366
- print(f" {ranking['justification']}")
367
-
368
- print()
369
-
370
- print("\n" + "=" * 70)
371
- print(" AGGREGATED COUNCIL RANKINGS")
372
- print("=" * 70 + "\n")
373
-
374
- for i, item in enumerate(aggregated, 1):
375
- consensus_indicator = {
376
- "strong": "🤝 Strong consensus",
377
- "moderate": "🤷 Moderate agreement",
378
- "weak": "⚠️ Disagreement"
379
- }
380
-
381
- print(f"{i}. **{item['proposal']}**")
382
- print(f" Score: {item['average_score']:.1f}/100")
383
- print(f" Consensus: {consensus_indicator[item['consensus']]}")
384
- print()
385
-
386
- def _generate_recommendation(self, aggregated: List[Dict]) -> Dict[str, Any]:
387
- """Generate final council recommendation"""
388
-
389
- # Top 3 proposals
390
- top_3 = aggregated[:3]
391
-
392
- # Check if there's strong consensus on #1
393
- if top_3[0]["consensus"] == "strong":
394
- implementation_strategy = "sequential"
395
- reasoning = (
396
- "Strong council consensus on top priority. "
397
- "Implement sequentially for best results."
398
- )
399
- else:
400
- implementation_strategy = "parallel"
401
- reasoning = (
402
- "Moderate disagreement on priorities. "
403
- "Consider parallel implementation of top 2-3 items."
404
- )
405
-
406
- recommendation = {
407
- "primary_recommendation": top_3[0]["proposal"],
408
- "implementation_strategy": implementation_strategy,
409
- "reasoning": reasoning,
410
- "proposed_roadmap": []
411
- }
412
-
413
- # Generate roadmap based on strategy
414
- if implementation_strategy == "sequential":
415
- # Sequential roadmap
416
- total_weeks = 0
417
- for item in aggregated:
418
- proposal = next(p for p in self.proposals if p["name"] == item["proposal"])
419
- effort_days = proposal.get("effort_days", 5)
420
- weeks = effort_days / 5
421
-
422
- total_weeks += weeks
423
-
424
- recommendation["proposed_roadmap"].append({
425
- "phase": len(recommendation["proposed_roadmap"]) + 1,
426
- "proposal": item["proposal"],
427
- "duration_weeks": weeks,
428
- "cumulative_weeks": total_weeks
429
- })
430
- else:
431
- # Parallel roadmap (top items in parallel)
432
- recommendation["proposed_roadmap"] = [
433
- {
434
- "phase": 1,
435
- "proposal": "Parallel implementation of top 3",
436
- "duration_weeks": 3,
437
- "items": [item["proposal"] for item in top_3]
438
- }
439
- ]
440
-
441
- return recommendation
442
-
443
- def _save_council_decision(
444
- self,
445
- analyses: List[Dict],
446
- aggregated: List[Dict],
447
- recommendation: Dict
448
- ):
449
- """Save council decision to file"""
450
-
451
- decision_doc = {
452
- "timestamp": datetime.now().isoformat(),
453
- "council_members": [m["member"] for m in analyses],
454
- "individual_analyses": analyses,
455
- "aggregated_rankings": aggregated,
456
- "recommendation": recommendation
457
- }
458
-
459
- output_path = Path("/Users/Subho/tmlpd-skill/docs/COUNCIL_DECISION.json")
460
-
461
- with open(output_path, 'w') as f:
462
- json.dump(decision_doc, f, indent=2)
463
-
464
- print(f"\n✅ Council decision saved to: {output_path}")
465
-
466
-
467
- async def main():
468
- """Run improvement council"""
469
-
470
- council = ImprovementCouncil()
471
- decision = await council.deliberate()
472
-
473
- print("\n" + "=" * 70)
474
- print(" FINAL COUNCIL RECOMMENDATION")
475
- print("=" * 70 + "\n")
476
-
477
- rec = decision["recommendation"]
478
-
479
- print(f"🎯 Primary Recommendation:")
480
- print(f" {rec['primary_recommendation']}")
481
- print()
482
- print(f"📋 Implementation Strategy:")
483
- print(f" {rec['implementation_strategy']}")
484
- print()
485
- print(f"💡 Reasoning:")
486
- print(f" {rec['reasoning']}")
487
- print()
488
- print(f"🗓️ Proposed Roadmap:")
489
- print()
490
-
491
- for phase in rec["proposed_roadmap"]:
492
- print(f" Phase {phase['phase']}:")
493
- if "proposal" in phase:
494
- print(f" - {phase['proposal']}")
495
- print(f" - Duration: {phase['duration_weeks']:.1f} weeks")
496
- else:
497
- print(f" - {phase['proposal']}")
498
- print(f" - Duration: {phase['duration_weeks']:.1f} weeks")
499
- print(f" - Items: {', '.join(phase['items'])}")
500
- print()
501
-
502
- print("=" * 70)
503
- print("\n✨ Council deliberation complete!")
504
- print(" See docs/COUNCIL_DECISION.json for full details.\n")
505
-
506
-
507
- if __name__ == "__main__":
508
- asyncio.run(main())
@@ -1,35 +0,0 @@
1
- # A3M Router — Middleware Chain
2
-
3
- Pre-flight checks before every routing decision.
4
-
5
- ## Chain Order
6
-
7
- ```
8
- 1. Guardrails Check → 9 STOP conditions (docs/ANALYSIS_PRINCIPLES.md)
9
- 2. Provider Health → Quick ping all providers (<50ms)
10
- 3. Budget Check → Remaining budget vs estimated cost (<1ms)
11
- 4. Version Check → npm upgrade available? (cached 24h)
12
- 5. Cache Lookup → Semantic cache for repeated queries (<5ms)
13
- 6. Route → Execute → Call selected provider(s)
14
- 7. Log → Write audit-log.ndjson entry
15
- 8. Cross-Validate → If --validate flag, call second provider (<500ms)
16
- 9. Return Response
17
- ```
18
-
19
- ## Implementation Status
20
-
21
- | Step | Status | File |
22
- |------|--------|------|
23
- | 1. Guardrails | ✅ | docs/ANALYSIS_PRINCIPLES.md |
24
- | 2. Health | ✅ | src/routing/providerHealth.ts |
25
- | 3. Budget | ✅ | src/cost/budgetEnforcer.ts |
26
- | 4. Version | ✅ | bin/a3m-upgrade-check |
27
- | 5. Cache | ✅ | src/cache/semanticCache.ts |
28
- | 6. Route | ✅ | src/routing/advancedRouter.ts |
29
- | 7. Log | ⚠️ | ~/.a3m-router/audit-log.ndjson |
30
- | 8. Validate | ✅ | src/routing/crossModelValidation.ts |
31
- | 9. Return | ✅ | CLI built-in |
32
-
33
- ## Why
34
-
35
- Every link is a reliability guarantee. Broken chain = charged for failed queries.