adaptive-memory-multi-model-router 2.14.46 → 2.14.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{docs/llms.txt → llms.txt.bak} +6 -6
- package/package.json +270 -72
- package/src/routing/advancedRouter.ts.bak +650 -0
- package/test.js.bak +376 -0
- package/.dockerignore +0 -82
- package/.env.example +0 -303
- package/.github/DISCUSSIONS_WELCOME.md +0 -27
- package/.github/DISCUSSION_TEMPLATE.yml +0 -5
- package/.github/FUNDING.yml +0 -2
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -94
- package/.github/ISSUE_TEMPLATE/config.yml +0 -17
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -71
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -71
- package/.github/dependabot.yml +0 -9
- package/.github/workflows/auto-publish.yml +0 -51
- package/.github/workflows/ci.yml +0 -263
- package/.github/workflows/codeql.yml +0 -38
- package/.github/workflows/npm-publish.yml +0 -20
- package/.github/workflows/pages.yml +0 -37
- package/.github/workflows/stale.yml +0 -54
- package/.publish-tick +0 -1
- package/.well-known/ai-plugin.json +0 -16
- package/AGENT_COUNCIL_FINDINGS.md +0 -142
- package/ARCHITECTURE.md +0 -346
- package/AUDIT_REPORT.md +0 -28
- package/CODE_OF_CONDUCT.md +0 -128
- package/CONTRIBUTING.md +0 -50
- package/CONTRIBUTORS.md +0 -20
- package/Dockerfile +0 -53
- package/Dockerfile.proxy +0 -33
- package/HEALTH_REPORT.md +0 -118
- package/IMPROVEMENT_PLAN.md +0 -107
- package/LANDING.md +0 -43
- package/LAUNCH-PAIN-DRIVEN.md +0 -339
- package/LAUNCH.md +0 -337
- package/LAUNCH_CHECKLIST.md +0 -141
- package/LAUNCH_SNAPSHOT.md +0 -260
- package/MANIFESTO.md +0 -41
- package/POPULARITY_BOOSTERS.md +0 -285
- package/PR_STATUS_REPORT.md +0 -148
- package/REDESIGN.md +0 -95
- package/RUNKIT.md +0 -83
- package/SECURITY.md +0 -29
- package/SUBMISSIONS.md +0 -43
- package/_schema.html +0 -53
- package/ai-plugin.json +0 -16
- package/articles/AI_AGENT_LLM_ROUTING.md +0 -150
- package/articles/CHINESE_DIRECTORIES.md +0 -100
- package/articles/CHINESE_SUBMISSIONS_READY.md +0 -322
- package/articles/COMPETITOR_ALERTS.md +0 -31
- package/articles/COMPLETE_POSTING_DIRECTORY.md +0 -147
- package/articles/CONTENT_STRUCTURE.md +0 -292
- package/articles/DEVTO_COST_GUIDE.md +0 -473
- package/articles/DEVTO_FINAL.md +0 -416
- package/articles/DEVTO_MULTI_PROVIDER.md +0 -542
- package/articles/DEVTO_READY.md +0 -255
- package/articles/DEVTO_V2_ANNOUNCEMENT.md +0 -160
- package/articles/DEVTO_VIRAL_GROWTH.md +0 -280
- package/articles/FRESH_devto.md +0 -460
- package/articles/FRESH_devto_2026_05.md +0 -73
- package/articles/FRESH_hackernews.md +0 -14
- package/articles/FRESH_reddit_ml.md +0 -90
- package/articles/FRESH_reddit_node.md +0 -198
- package/articles/FRESH_reddit_sideproject.md +0 -72
- package/articles/FRESH_reddit_webdev.md +0 -130
- package/articles/FROM_ZERO_TO_10K.md +0 -107
- package/articles/HN_10X_BETTER.md +0 -430
- package/articles/HN_ACCOUNT_GUIDE.md +0 -21
- package/articles/HN_CHINESE_STYLE.md +0 -308
- package/articles/HN_FINAL.md +0 -148
- package/articles/HN_POSTED_VERSION.md +0 -56
- package/articles/HN_POST_READY.md +0 -137
- package/articles/HN_RESEARCH.md +0 -364
- package/articles/HN_SHOW_routerarena.md +0 -17
- package/articles/HN_TIMING_GUIDE.md +0 -52
- package/articles/INDIEHACKERS_POST.md +0 -52
- package/articles/INDIEHACKERS_READY.md +0 -120
- package/articles/LLM_BENCHMARK_DEEP_DIVE.md +0 -153
- package/articles/MASTER_POSTING_DIRECTORY.md +0 -189
- package/articles/NEWSLETTER_SEND_NOW.md +0 -259
- package/articles/NEWSLETTER_SUBMISSIONS.md +0 -112
- package/articles/PAIN-DRIVEN-devto-v2.md +0 -308
- package/articles/PAIN-DRIVEN-devto-v3.md +0 -268
- package/articles/PAIN-DRIVEN-devto.md +0 -242
- package/articles/PAIN-DRIVEN-hackernews-v2.md +0 -138
- package/articles/PAIN-DRIVEN-hackernews-v3.md +0 -151
- package/articles/PAIN-DRIVEN-hackernews.md +0 -131
- package/articles/PAIN-DRIVEN-reddit-v2.md +0 -301
- package/articles/PAIN-DRIVEN-reddit-v3.md +0 -236
- package/articles/PAIN-DRIVEN-reddit.md +0 -218
- package/articles/PAIN-DRIVEN-twitter-v2.md +0 -110
- package/articles/PAIN-DRIVEN-twitter-v3.md +0 -121
- package/articles/PAIN-DRIVEN-twitter.md +0 -120
- package/articles/PORTKEY_VS_A3M.md +0 -147
- package/articles/POSTING_KIT_2026_05.md +0 -67
- package/articles/PRESS_KIT_routerarena.md +0 -77
- package/articles/PRODUCTHUNT_LISTING.md +0 -48
- package/articles/PRODUCTHUNT_READY.md +0 -106
- package/articles/PR_PLAN_vault.md +0 -125
- package/articles/REDDIT_FINAL.md +0 -232
- package/articles/REDDIT_POST.md +0 -67
- package/articles/REDDIT_SUBMISSION_READY.md +0 -348
- package/articles/ROUTERARENA_LEADER.md +0 -45
- package/articles/SHOW_HN_FINAL.md +0 -29
- package/articles/TWEETS_10K_DOWNLOADS.md +0 -47
- package/articles/TWEETS_BENCHMARK_FIRST.md +0 -46
- package/articles/TWEETS_MCP_PLAY.md +0 -51
- package/articles/TWEETS_SEQUENTIAL_BROKEN.md +0 -49
- package/articles/TWEETS_WHY_BUILD.md +0 -54
- package/articles/TWEETS_routerarena_leader.md +0 -53
- package/articles/TWEET_STORM_READY.md +0 -165
- package/articles/TWITTER_FINAL.md +0 -167
- package/articles/WHY_10X_BETTER.md +0 -261
- package/articles/WHY_CHINESE_STYLE_BETTER.md +0 -323
- package/articles/ai-discoverability-llm-routing.md +0 -210
- package/articles/devto-llm-routing.md +0 -138
- package/articles/hackernews-show-hn.md +0 -54
- package/articles/hashnode-llm-cost-optimization.md +0 -125
- package/articles/hn_show_2026_05.md +0 -11
- package/articles/medium-building-llm-router.md +0 -205
- package/articles/reddit-ml.md +0 -76
- package/articles/twitter-thread-cost-savings.md +0 -50
- package/articles/youtube-tutorial-script.md +0 -262
- package/assets/a3m_3blue1brown.mp4 +0 -0
- package/assets/banner.svg +0 -109
- package/assets/chart-cost-v2.svg +0 -91
- package/assets/chart-cost-v3.svg +0 -143
- package/assets/chart-features-v2.svg +0 -132
- package/assets/chart-features-v3.svg +0 -211
- package/assets/chart-growth-v2.svg +0 -122
- package/assets/chart-growth-v3.svg +0 -189
- package/assets/cost-comparison.svg +0 -134
- package/assets/cost-simple.svg +0 -64
- package/assets/demo-hn.gif +0 -0
- package/assets/feature-matrix.svg +0 -136
- package/assets/growth-chart-animated.svg +0 -76
- package/assets/growth-chart.svg +0 -82
- package/assets/growth-simple.svg +0 -69
- package/assets/hero-diagram.svg +0 -81
- package/assets/logo-new.svg +0 -21
- package/assets/logo.svg +0 -68
- package/assets/provider-comparison.svg +0 -121
- package/assets/social-preview-new.svg +0 -100
- package/assets/social-preview.svg +0 -194
- package/assets/social-v2.svg +0 -130
- package/assets/social-v3.svg +0 -212
- package/benchmark-provider-results.json +0 -245
- package/benchmark-results.json +0 -54
- package/council-votes/architecture-vote.md +0 -121
- package/council-votes/coverage-vote.md +0 -93
- package/data/adaptive-benchmark.json +0 -92
- package/data/benchmark-results.json +0 -47
- package/data/labeled-benchmark.json +0 -88
- package/demo/3blue1brown_video.py +0 -285
- package/demo/3blue1brown_video_v2.py +0 -310
- package/demo/IMPROVED_PROMPTS.md +0 -229
- package/demo/VEO3_PROMPTS.md +0 -269
- package/demo/VIDEO_PRODUCTION_GUIDE.md +0 -333
- package/demo/a3m_3blue1brown.mp4 +0 -0
- package/demo/asciinema-demo.sh +0 -195
- package/demo/demo-hn.tape +0 -74
- package/demo/demo-script.md +0 -53
- package/demo/demo-script.sh +0 -62
- package/demo/demo.svg +0 -75
- package/demo/frame1_ai_data_center.png +0 -0
- package/demo/frame1_sunset_video.mp4 +0 -0
- package/demo/frame2_cost_comparison.png +0 -0
- package/demo/frame2_cost_comparison_fallback.png +0 -0
- package/demo/frame3_parallel_execution.png +0 -0
- package/demo/frame3_parallel_execution_fallback.png +0 -0
- package/demo/frame4_providers.png +0 -0
- package/demo/frame4_providers_fallback.png +0 -0
- package/demo/frame5_endcard.png +0 -0
- package/demo/frame5_endcard_fallback.png +0 -0
- package/demo/new_frame1_hook.png +0 -0
- package/demo/new_frame2_proof.png +0 -0
- package/demo/new_frame3_wow.png +0 -0
- package/demo/new_frame4_social.png +0 -0
- package/demo/new_frame5_cta.png +0 -0
- package/demo/package.json +0 -13
- package/demo/product-video-final.mp4 +0 -0
- package/demo/product-video-hype-v1.mp4 +0 -0
- package/demo/product-video-v1.mp4 +0 -0
- package/demo/public/index.html +0 -762
- package/demo/recording.cast +0 -55
- package/demo/server.js +0 -405
- package/demo-new.tape +0 -71
- package/demo-real.sh +0 -198
- package/demo-simple.tape +0 -205
- package/demo.html +0 -520
- package/demo.sh +0 -85
- package/demo.tape +0 -259
- package/dist/analytics/costAnalytics.d.ts.map +0 -1
- package/dist/analytics/costAnalytics.js.map +0 -1
- package/dist/benchmark/comprehensive.js.map +0 -1
- package/dist/benchmark/reproducible.d.ts.map +0 -1
- package/dist/benchmark/reproducible.js.map +0 -1
- package/dist/cache/prefixCache.d.ts.map +0 -1
- package/dist/cache/prefixCache.js.map +0 -1
- package/dist/cache/responseCache.d.ts.map +0 -1
- package/dist/cache/responseCache.js.map +0 -1
- package/dist/cache/semanticCache.d.ts.map +0 -1
- package/dist/cache/semanticCache.js.map +0 -1
- package/dist/cli/setupWizard.d.ts.map +0 -1
- package/dist/cli/setupWizard.js.map +0 -1
- package/dist/cost/budgetEnforcer.d.ts.map +0 -1
- package/dist/cost/budgetEnforcer.js.map +0 -1
- package/dist/cost/costTracker.d.ts.map +0 -1
- package/dist/cost/costTracker.js.map +0 -1
- package/dist/ensemble/multiRoundDialog.js.map +0 -1
- package/dist/ensemble/shapleyValue.js.map +0 -1
- package/dist/integrations/langchainAdapter.d.ts.map +0 -1
- package/dist/integrations/langchainAdapter.js.map +0 -1
- package/dist/integrations/oauth.d.ts.map +0 -1
- package/dist/integrations/oauth.js.map +0 -1
- package/dist/integrations/scienceAdapter.js.map +0 -1
- package/dist/memory/autoFetch.d.ts.map +0 -1
- package/dist/memory/autoFetch.js.map +0 -1
- package/dist/memory/episodicMemory.d.ts.map +0 -1
- package/dist/memory/episodicMemory.js.map +0 -1
- package/dist/memory/hybridMemory.js.map +0 -1
- package/dist/memory/memoryTree.d.ts.map +0 -1
- package/dist/memory/memoryTree.js.map +0 -1
- package/dist/memory/obsidianVault.d.ts.map +0 -1
- package/dist/memory/obsidianVault.js.map +0 -1
- package/dist/memory/reasoningBank.js.map +0 -1
- package/dist/observability/changeWatch.d.ts.map +0 -1
- package/dist/observability/changeWatch.js.map +0 -1
- package/dist/observability/fatigueDetector.d.ts.map +0 -1
- package/dist/observability/fatigueDetector.js.map +0 -1
- package/dist/observability/index.d.ts.map +0 -1
- package/dist/observability/index.js.map +0 -1
- package/dist/observability/metrics.d.ts.map +0 -1
- package/dist/observability/metrics.js.map +0 -1
- package/dist/observability/middleware.d.ts.map +0 -1
- package/dist/observability/middleware.js.map +0 -1
- package/dist/observability/tracer.d.ts.map +0 -1
- package/dist/observability/tracer.js.map +0 -1
- package/dist/observability/types.d.ts.map +0 -1
- package/dist/observability/types.js.map +0 -1
- package/dist/orchestration/haloOrchestrator.d.ts.map +0 -1
- package/dist/orchestration/haloOrchestrator.js.map +0 -1
- package/dist/orchestration/mctsWorkflow.d.ts.map +0 -1
- package/dist/orchestration/mctsWorkflow.js.map +0 -1
- package/dist/providers/localProvider.d.ts.map +0 -1
- package/dist/providers/localProvider.js.map +0 -1
- package/dist/providers/providerConfig.d.ts.map +0 -1
- package/dist/providers/providerConfig.js.map +0 -1
- package/dist/providers/registry.d.ts.map +0 -1
- package/dist/providers/registry.js.map +0 -1
- package/dist/routing/advancedRouter.d.ts.map +0 -1
- package/dist/routing/advancedRouter.js.map +0 -1
- package/dist/routing/crossModelValidation.d.ts.map +0 -1
- package/dist/routing/crossModelValidation.js.map +0 -1
- package/dist/routing/providerHealth.d.ts.map +0 -1
- package/dist/routing/providerHealth.js.map +0 -1
- package/dist/routing/providerRetry.d.ts.map +0 -1
- package/dist/routing/providerRetry.js.map +0 -1
- package/dist/scripts/banner.js +0 -29
- package/dist/security/guardrails.d.ts.map +0 -1
- package/dist/security/guardrails.js.map +0 -1
- package/dist/server/dashboard.d.ts.map +0 -1
- package/dist/server/dashboard.js.map +0 -1
- package/dist/server/modelMapper.d.ts.map +0 -1
- package/dist/server/modelMapper.js.map +0 -1
- package/dist/server/proxyServer.d.ts.map +0 -1
- package/dist/server/proxyServer.js.map +0 -1
- package/dist/skills/__tests__/skill_manager.test.d.ts +0 -2
- package/dist/skills/__tests__/skill_manager.test.d.ts.map +0 -1
- package/dist/skills/__tests__/skill_manager.test.js +0 -268
- package/dist/skills/__tests__/skill_manager.test.js.map +0 -1
- package/dist/tools/tmlpdTools.d.ts.map +0 -1
- package/dist/tools/tmlpdTools.js.map +0 -1
- package/dist/tui/dashboard.d.ts.map +0 -1
- package/dist/tui/dashboard.js.map +0 -1
- package/dist/tui/index.d.ts.map +0 -1
- package/dist/tui/index.js.map +0 -1
- package/dist/utils/batchProcessor.d.ts.map +0 -1
- package/dist/utils/batchProcessor.js.map +0 -1
- package/dist/utils/compression.d.ts.map +0 -1
- package/dist/utils/compression.js.map +0 -1
- package/dist/utils/costUtils.d.ts.map +0 -1
- package/dist/utils/costUtils.js.map +0 -1
- package/dist/utils/reliability.d.ts.map +0 -1
- package/dist/utils/reliability.js.map +0 -1
- package/dist/utils/sorting.d.ts.map +0 -1
- package/dist/utils/sorting.js.map +0 -1
- package/dist/utils/speculativeDecoding.d.ts.map +0 -1
- package/dist/utils/speculativeDecoding.js.map +0 -1
- package/dist/utils/tokenUtils.d.ts.map +0 -1
- package/dist/utils/tokenUtils.js.map +0 -1
- package/docs/.nojekyll +0 -0
- package/docs/ANALYSIS_PRINCIPLES.md +0 -162
- package/docs/API.md +0 -855
- package/docs/ARCHITECTURAL-IMPROVEMENTS-2025.md +0 -1391
- package/docs/ARCHITECTURAL-IMPROVEMENTS-REVISED-2025.md +0 -1051
- package/docs/BENCHMARK.md +0 -170
- package/docs/CHINESE_PROVIDER_RELIABILITY.md +0 -37
- package/docs/CITATIONS.md +0 -74
- package/docs/CLAIMS_AND_EVIDENCE.md +0 -58
- package/docs/CONFIGURATION.md +0 -476
- package/docs/COUNCIL_DECISION.json +0 -816
- package/docs/COUNCIL_SUMMARY.md +0 -319
- package/docs/COUNCIL_V2.2_DECISION.md +0 -416
- package/docs/ENGINEERING_SPEC.md +0 -55
- package/docs/FACTORY_RESET.md +0 -34
- package/docs/GEO.md +0 -66
- package/docs/GEO_OPTIMIZATION.md +0 -30
- package/docs/GEO_ROOT_CAUSE.md +0 -136
- package/docs/GEO_STATUS.md +0 -85
- package/docs/GEO_TEST_RESULTS.md +0 -176
- package/docs/HN_CHECKLIST.md +0 -38
- package/docs/HN_FOUNDER_COMMENT.md +0 -17
- package/docs/HN_SUBMISSION_FINAL.md +0 -180
- package/docs/HN_SUBMISSION_V3.md +0 -56
- package/docs/IMPROVEMENT_ROADMAP.md +0 -515
- package/docs/INTEGRATIONS.md +0 -420
- package/docs/LANGCHAIN_INTEGRATION.md +0 -147
- package/docs/LLM_COUNCIL_DECISION.md +0 -508
- package/docs/MIDDLEWARE_CHAIN.md +0 -35
- package/docs/PROMO_CHECKLIST.md +0 -200
- package/docs/QUICKSTART.md +0 -271
- package/docs/QUICK_START.md +0 -43
- package/docs/QUICK_START_VISIBILITY.md +0 -782
- package/docs/REDDIT_GAP_ANALYSIS.md +0 -299
- package/docs/RELEASE_CHECKLIST.md +0 -32
- package/docs/REPRODUCIBILITY.md +0 -63
- package/docs/RESEARCH_BACKED_IMPROVEMENTS.md +0 -1180
- package/docs/ROUTING_RUBRIC.md +0 -197
- package/docs/SEO_AUDIT.md +0 -186
- package/docs/SOCIAL_LISTENING.md +0 -219
- package/docs/TMLPD_QNA.md +0 -751
- package/docs/TMLPD_V2.1_COMPLETE.md +0 -763
- package/docs/TMLPD_V2.2_RESEARCH_ROADMAP.md +0 -754
- package/docs/UPDATE_TOPICS.md +0 -15
- package/docs/USE_CASES.md +0 -59
- package/docs/V2.2_IMPLEMENTATION_COMPLETE.md +0 -446
- package/docs/V2_IMPLEMENTATION_GUIDE.md +0 -388
- package/docs/VERCEL_AI_SDK.md +0 -209
- package/docs/VISIBILITY_ADOPTION_PLAN.md +0 -1005
- package/docs/_config.yml +0 -49
- package/docs/ai-plugin.json +0 -16
- package/docs/api.html +0 -513
- package/docs/architecture-diagram.md +0 -40
- package/docs/benchmark-chart.png +0 -0
- package/docs/benchmark.html +0 -387
- package/docs/blog/routerarena-number-one.html +0 -73
- package/docs/cli-cheatsheet.md +0 -339
- package/docs/compare.md +0 -109
- package/docs/comparison-litellm.md +0 -88
- package/docs/comparison.md +0 -108
- package/docs/cost-chart-ascii.md +0 -42
- package/docs/cost-comparison-chart.svg +0 -88
- package/docs/curl-examples.md +0 -247
- package/docs/demo-auto.html +0 -264
- package/docs/demo.html +0 -416
- package/docs/geo/GENERATIVE_ENGINE_OPTIMIZATION.md +0 -232
- package/docs/index.html +0 -507
- package/docs/launch-content/LAUNCH_EXECUTION_CHECKLIST.md +0 -421
- package/docs/launch-content/README.md +0 -457
- package/docs/launch-content/assets/cost_comparison_100_tasks.png +0 -0
- package/docs/launch-content/assets/cumulative_savings.png +0 -0
- package/docs/launch-content/assets/parallel_speedup.png +0 -0
- package/docs/launch-content/assets/provider_pricing_comparison.png +0 -0
- package/docs/launch-content/assets/task_breakdown_comparison.png +0 -0
- package/docs/launch-content/generate_charts.py +0 -313
- package/docs/launch-content/hn_show_post.md +0 -139
- package/docs/launch-content/partner_outreach_templates.md +0 -745
- package/docs/launch-content/reddit_posts.md +0 -467
- package/docs/launch-content/twitter_thread.txt +0 -460
- package/docs/npm-downloads-chart.svg +0 -43
- package/docs/openapi.json +0 -139
- package/docs/openapi.yaml +0 -1318
- package/docs/quick-start.html +0 -366
- package/docs/robots.txt +0 -52
- package/docs/sitemap.xml +0 -57
- package/docs/styles.css +0 -682
- package/docs/well-known/ai-plugin.json +0 -16
- package/docs/wellknown/ai-plugin.json +0 -16
- package/docs-site/assets/og-banner.svg +0 -194
- package/docs-site/index.html +0 -632
- package/eval/README.md +0 -46
- package/eval/baselines/main.json +0 -12
- package/eval/benchmark_dataset.jsonl +0 -16
- package/eval/check_golden_routes.js +0 -64
- package/eval/datasets/catalog.json +0 -33
- package/eval/datasets/slices/cn_provider_reliability_v1.jsonl +0 -3
- package/eval/datasets/slices/cost_pressure_v1.jsonl +0 -3
- package/eval/datasets/slices/safety_guardrails_v1.jsonl +0 -3
- package/eval/evals.json +0 -199
- package/eval/fault_injection_thresholds.json +0 -3
- package/eval/generate_report.js +0 -128
- package/eval/golden_routes.json +0 -114
- package/eval/lib/experiment_registry.js +0 -24
- package/eval/run_eval.js +0 -197
- package/eval/run_fault_injection.js +0 -201
- package/eval/run_shadow_eval.js +0 -85
- package/eval/thresholds.json +0 -9
- package/examples/QUICKSTART.md +0 -183
- package/examples/README.md +0 -61
- package/examples/a3m-sdk.js +0 -124
- package/examples/basic-route.js +0 -54
- package/examples/chat-loop.js +0 -202
- package/examples/classify-then-route.js +0 -102
- package/examples/cost-compare.js +0 -120
- package/examples/ensemble.js +0 -160
- package/examples/whatsapp-telegram-bridge-demo.js +0 -302
- package/examples/whatsapp-telegram-bridge.js +0 -269
- package/hf-space/README.md +0 -23
- package/hf-space/app.py +0 -240
- package/hf-space/requirements.txt +0 -1
- package/huggingface_space/README.md +0 -35
- package/huggingface_space/app.py +0 -126
- package/huggingface_space/create_space.py +0 -208
- package/huggingface_space/requirements.txt +0 -1
- package/mcp-server/README.md +0 -188
- package/mcp-server/package.json +0 -29
- package/mcp-server/src/index.ts +0 -744
- package/mcp-server/tsconfig.json +0 -19
- package/openclaw-alexa-bridge/ALL_REMAINING_FIXES_PLAN.md +0 -313
- package/openclaw-alexa-bridge/REMAINING_FIXES_SUMMARY.md +0 -277
- package/openclaw-alexa-bridge/src/alexa_handler_no_tmlpd.js +0 -1234
- package/openclaw-alexa-bridge/test_fixes.js +0 -77
- package/playground/README.md +0 -51
- package/playground/codesandbox.json +0 -12
- package/playground/index.js +0 -39
- package/proxy/README.md +0 -227
- package/proxy/package-lock.json +0 -831
- package/proxy/package.json +0 -17
- package/proxy/rate-limit.js +0 -145
- package/proxy/rate-limit.test.js +0 -311
- package/proxy/server.js +0 -970
- package/python/README.md +0 -102
- package/python/a3m/__init__.py +0 -6
- package/python/a3m/client.py +0 -190
- package/python/a3m/models.py +0 -40
- package/python/a3m/sync_client.py +0 -61
- package/python/examples.py +0 -53
- package/python/integrations.py +0 -330
- package/python/pyproject.toml +0 -23
- package/python/setup.py +0 -28
- package/python/tmlpd.py +0 -369
- package/qna/REDDIT_GAP_ANALYSIS.md +0 -299
- package/qna/TMLPD_QNA.md +0 -751
- package/research/FINDING_001_safety.md +0 -28
- package/research/FINDING_002_error_diversity.md +0 -32
- package/research/FINDING_003_confidence_weighted_voting.md +0 -32
- package/research/FINDING_004_cross_model_semantic_detection.md +0 -37
- package/research/FINDING_005_knowledge_gap_orthogonality.md +0 -34
- package/research/HALLUCINATION_RESEARCH.md +0 -27
- package/research/ensemble-voting.md +0 -324
- package/research/loss-functions.md +0 -545
- package/research-log.md +0 -49
- package/scripts/banner.js +0 -29
- package/scripts/benchmark-local-routerarena.ts +0 -176
- package/scripts/benchmark.js +0 -145
- package/scripts/benchmark.sh +0 -61
- package/scripts/compare-providers.sh +0 -230
- package/scripts/content-planner.js +0 -25
- package/scripts/create-labeled-benchmark.ts +0 -105
- package/scripts/cross_post.py +0 -443
- package/scripts/local-router-benchmark.ts +0 -154
- package/scripts/post-all.sh +0 -41
- package/scripts/publish_fcc.py +0 -106
- package/scripts/push-to-gitee.sh +0 -25
- package/scripts/routerarena_ensemble.js +0 -144
- package/scripts/routing-benchmark-v2.js +0 -373
- package/scripts/routing-benchmark-v3.js +0 -118
- package/scripts/routing-benchmark.js +0 -462
- package/scripts/run-labeled-benchmark.mjs +0 -104
- package/scripts/run-mmlu-benchmark.js +0 -176
- package/scripts/run-provider-benchmark.js +0 -244
- package/scripts/update-npm-badges.js +0 -158
- package/skill/SKILL.md +0 -238
- package/src/__tests__/integration/tmpld_integration.test.py +0 -540
- package/src/skills/__tests__/skill_manager.test.ts +0 -328
- package/submissions/benchmarks/ALL_PLATFORMS_SUBMISSION.md +0 -94
- package/submissions/benchmarks/LLMROUTERBENCH_SUBMISSION.md +0 -121
- package/submissions/benchmarks/MMRBENCH_SUBMISSION.md +0 -94
- package/submissions/benchmarks/ROUTERARENA_UPDATE.md +0 -83
- package/submissions/benchmarks/ROUTERBENCH_SUBMISSION.md +0 -225
- package/test-council/1-structure-tests.test.js +0 -353
- package/test-council/1-structure-tests.test.ts +0 -353
- package/test-council/2-edge-case-tests.test.ts +0 -361
- package/test-council/3-performance-tests.test.ts +0 -669
- package/test-council/4-integration-tests.test.ts +0 -391
- package/test-council/5-agent-council-eval.test.ts +0 -413
- package/test-council/AGENT_COUNCIL_ARCHITECTURE.md +0 -349
- package/test-council/TEST_COUNCIL_REPORT.md +0 -201
- package/test-council/agents/edge-case-agent.ts +0 -363
- package/test-council/agents/performance-agent.ts +0 -426
- package/test-council/agents/structure-agent.ts +0 -227
- package/test-council/council.md +0 -183
- package/tests/__mocks__/tokenUtils.ts +0 -8
- package/tests/memory/episodicMemory.test.ts +0 -227
- package/tests/package-lock.json +0 -1628
- package/tests/package.json +0 -18
- package/tests/routing/ensembleVoting.test.ts +0 -236
- package/tests/routing/providerRetry.test.ts +0 -360
- package/tests/routing/queryTypePresets.test.ts +0 -208
- package/tests/security/guardrailEngine.test.ts +0 -700
- package/tests/tsconfig.json +0 -21
- package/tests/vitest.config.ts +0 -18
- package/tmlpd-pi-extension/README.md +0 -66
- package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts +0 -114
- package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/cache/prefixCache.js +0 -285
- package/tmlpd-pi-extension/dist/cache/prefixCache.js.map +0 -1
- package/tmlpd-pi-extension/dist/cache/responseCache.d.ts +0 -58
- package/tmlpd-pi-extension/dist/cache/responseCache.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/cache/responseCache.js +0 -153
- package/tmlpd-pi-extension/dist/cache/responseCache.js.map +0 -1
- package/tmlpd-pi-extension/dist/cli.js +0 -59
- package/tmlpd-pi-extension/dist/cost/costTracker.d.ts +0 -95
- package/tmlpd-pi-extension/dist/cost/costTracker.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/cost/costTracker.js +0 -240
- package/tmlpd-pi-extension/dist/cost/costTracker.js.map +0 -1
- package/tmlpd-pi-extension/dist/index.d.ts +0 -723
- package/tmlpd-pi-extension/dist/index.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/index.js +0 -239
- package/tmlpd-pi-extension/dist/index.js.map +0 -1
- package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts +0 -82
- package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/memory/episodicMemory.js +0 -145
- package/tmlpd-pi-extension/dist/memory/episodicMemory.js.map +0 -1
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts +0 -102
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js +0 -207
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js.map +0 -1
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts +0 -85
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js +0 -210
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js.map +0 -1
- package/tmlpd-pi-extension/dist/providers/localProvider.d.ts +0 -102
- package/tmlpd-pi-extension/dist/providers/localProvider.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/providers/localProvider.js +0 -338
- package/tmlpd-pi-extension/dist/providers/localProvider.js.map +0 -1
- package/tmlpd-pi-extension/dist/providers/registry.d.ts +0 -55
- package/tmlpd-pi-extension/dist/providers/registry.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/providers/registry.js +0 -138
- package/tmlpd-pi-extension/dist/providers/registry.js.map +0 -1
- package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts +0 -68
- package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/routing/advancedRouter.js +0 -332
- package/tmlpd-pi-extension/dist/routing/advancedRouter.js.map +0 -1
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts +0 -101
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.js +0 -368
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.js.map +0 -1
- package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts +0 -96
- package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/utils/batchProcessor.js +0 -170
- package/tmlpd-pi-extension/dist/utils/batchProcessor.js.map +0 -1
- package/tmlpd-pi-extension/dist/utils/compression.d.ts +0 -61
- package/tmlpd-pi-extension/dist/utils/compression.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/utils/compression.js +0 -281
- package/tmlpd-pi-extension/dist/utils/compression.js.map +0 -1
- package/tmlpd-pi-extension/dist/utils/reliability.d.ts +0 -74
- package/tmlpd-pi-extension/dist/utils/reliability.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/utils/reliability.js +0 -177
- package/tmlpd-pi-extension/dist/utils/reliability.js.map +0 -1
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts +0 -117
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js +0 -246
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js.map +0 -1
- package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts +0 -50
- package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts.map +0 -1
- package/tmlpd-pi-extension/dist/utils/tokenUtils.js +0 -124
- package/tmlpd-pi-extension/dist/utils/tokenUtils.js.map +0 -1
- package/tmlpd-pi-extension/examples/QUICKSTART.md +0 -183
- package/tmlpd-pi-extension/package-lock.json +0 -79
- package/tmlpd-pi-extension/package.json +0 -172
- package/tmlpd-pi-extension/python/examples.py +0 -53
- package/tmlpd-pi-extension/python/integrations.py +0 -330
- package/tmlpd-pi-extension/python/setup.py +0 -28
- package/tmlpd-pi-extension/python/tmlpd.py +0 -369
- package/tmlpd-pi-extension/qna/REDDIT_GAP_ANALYSIS.md +0 -299
- package/tmlpd-pi-extension/qna/TMLPD_QNA.md +0 -751
- package/tmlpd-pi-extension/skill/SKILL.md +0 -238
- package/tmlpd-pi-extension/src/cache/responseCache.ts +0 -147
- package/tmlpd-pi-extension/src/cost/costTracker.ts +0 -302
- package/tmlpd-pi-extension/src/index.ts +0 -232
- package/tmlpd-pi-extension/src/memory/episodicMemory.ts +0 -257
- package/tmlpd-pi-extension/src/orchestration/haloOrchestrator.ts +0 -266
- package/tmlpd-pi-extension/src/orchestration/mctsWorkflow.ts +0 -262
- package/tmlpd-pi-extension/src/providers/localProvider.ts +0 -406
- package/tmlpd-pi-extension/src/providers/registry.ts +0 -164
- package/tmlpd-pi-extension/src/routing/ensembleVoting.ts +0 -159
- package/tmlpd-pi-extension/src/routing/queryTypePresets.ts +0 -136
- package/tmlpd-pi-extension/src/tools/tmlpdTools.ts +0 -433
- package/tmlpd-pi-extension/src/utils/batchProcessor.ts +0 -232
- package/tmlpd-pi-extension/src/utils/compression.ts +0 -325
- package/tmlpd-pi-extension/src/utils/reliability.ts +0 -221
- package/tmlpd-pi-extension/src/utils/tokenUtils.ts +0 -145
- package/tmlpd-pi-extension/tsconfig.json +0 -18
- package/tsconfig.build.json +0 -29
- package/tsconfig.json +0 -18
- /package/{docs/llms-full.txt → llms-full.txt.bak} +0 -0
|
@@ -1,310 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
3
|
-
A3M Router — 3Blue1Brown Style Explainer Video Generator
|
|
4
|
-
Improved version with more frames and better animations
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
import subprocess
|
|
8
|
-
import json
|
|
9
|
-
import sys
|
|
10
|
-
import os
|
|
11
|
-
import shutil
|
|
12
|
-
|
|
13
|
-
def run_command(cmd, cwd=None):
|
|
14
|
-
result = subprocess.run(cmd, shell=True, capture_output=True, text=True, cwd=cwd)
|
|
15
|
-
return result.returncode == 0, result.stdout, result.stderr
|
|
16
|
-
|
|
17
|
-
def check_deps():
|
|
18
|
-
try:
|
|
19
|
-
import matplotlib
|
|
20
|
-
import numpy
|
|
21
|
-
print("✅ matplotlib, numpy available")
|
|
22
|
-
return True
|
|
23
|
-
except ImportError as e:
|
|
24
|
-
print(f"❌ Missing: {e}")
|
|
25
|
-
return False
|
|
26
|
-
|
|
27
|
-
def generate_frame_matplotlib(scene_num, frame_num, total_frames, output_path):
|
|
28
|
-
"""Generate a single frame using matplotlib"""
|
|
29
|
-
import matplotlib.pyplot as plt
|
|
30
|
-
import matplotlib.patches as patches
|
|
31
|
-
import numpy as np
|
|
32
|
-
|
|
33
|
-
# 3Blue1Brown color scheme
|
|
34
|
-
bg_color = '#1a1a2e'
|
|
35
|
-
text_color = '#ffffff'
|
|
36
|
-
accent1 = '#00a8ff' # Blue
|
|
37
|
-
accent2 = '#ff6b6b' # Red
|
|
38
|
-
accent3 = '#4ecdc4' # Teal
|
|
39
|
-
accent4 = '#ffe66d' # Yellow
|
|
40
|
-
accent5 = '#a855f7' # Purple
|
|
41
|
-
|
|
42
|
-
fig, ax = plt.subplots(figsize=(16, 9), facecolor=bg_color)
|
|
43
|
-
ax.set_facecolor(bg_color)
|
|
44
|
-
ax.set_xlim(0, 16)
|
|
45
|
-
ax.set_ylim(0, 9)
|
|
46
|
-
ax.axis('off')
|
|
47
|
-
|
|
48
|
-
# Smooth animation progress (ease-in-out)
|
|
49
|
-
def ease(t):
|
|
50
|
-
return t * t * (3 - 2 * t) # Smoothstep
|
|
51
|
-
|
|
52
|
-
progress = ease(frame_num / total_frames)
|
|
53
|
-
|
|
54
|
-
if scene_num == 1:
|
|
55
|
-
# Scene 1: The problem - expensive AI
|
|
56
|
-
ax.text(8, 6.5, 'The Problem:', fontsize=36, color=text_color,
|
|
57
|
-
ha='center', va='center', alpha=0.8)
|
|
58
|
-
ax.text(8, 5, '$10.02', fontsize=140, color=accent2,
|
|
59
|
-
ha='center', va='center', fontweight='bold', family='monospace',
|
|
60
|
-
alpha=progress)
|
|
61
|
-
ax.text(8, 2.5, 'per 1,000 queries', fontsize=32, color=text_color,
|
|
62
|
-
ha='center', va='center', alpha=progress * 0.9)
|
|
63
|
-
ax.text(8, 1.2, 'GPT-4o premium pricing', fontsize=20, color=text_color,
|
|
64
|
-
ha='center', va='center', alpha=progress * 0.6, style='italic')
|
|
65
|
-
|
|
66
|
-
# Floating dollar signs
|
|
67
|
-
for i in range(int(progress * 15)):
|
|
68
|
-
x = 2 + (i % 5) * 2.8 + np.sin(i * 0.7) * 0.5
|
|
69
|
-
y = 7.5 - (i // 5) * 2 + np.cos(i * 0.5) * 0.3
|
|
70
|
-
size = 20 + (i % 3) * 10
|
|
71
|
-
ax.text(x, y, '$', fontsize=size, color=accent2, alpha=0.4)
|
|
72
|
-
|
|
73
|
-
elif scene_num == 2:
|
|
74
|
-
# Scene 2: The routing concept
|
|
75
|
-
ax.text(8, 7.5, 'The Solution:', fontsize=36, color=text_color,
|
|
76
|
-
ha='center', va='center', alpha=0.8)
|
|
77
|
-
ax.text(8, 6.2, 'Intelligent LLM Routing', fontsize=48, color=accent1,
|
|
78
|
-
ha='center', va='center', fontweight='bold', alpha=progress)
|
|
79
|
-
|
|
80
|
-
# Query → Router → Provider flow
|
|
81
|
-
query_x = 2.5
|
|
82
|
-
router_x = 8
|
|
83
|
-
provider_x = 13.5
|
|
84
|
-
|
|
85
|
-
# Query box (animate in)
|
|
86
|
-
if progress > 0.1:
|
|
87
|
-
q_alpha = min(1, (progress - 0.1) * 3)
|
|
88
|
-
rect = patches.FancyBboxPatch((query_x - 1.2, 3.2), 2.4, 2,
|
|
89
|
-
boxstyle="round,pad=0.15",
|
|
90
|
-
facecolor=accent3, edgecolor='white',
|
|
91
|
-
linewidth=3, alpha=q_alpha)
|
|
92
|
-
ax.add_patch(rect)
|
|
93
|
-
ax.text(query_x, 4.2, 'YOUR', fontsize=20, color=bg_color,
|
|
94
|
-
ha='center', va='center', fontweight='bold', alpha=q_alpha)
|
|
95
|
-
ax.text(query_x, 3.6, 'QUERY', fontsize=20, color=bg_color,
|
|
96
|
-
ha='center', va='center', fontweight='bold', alpha=q_alpha)
|
|
97
|
-
|
|
98
|
-
# Router box
|
|
99
|
-
if progress > 0.3:
|
|
100
|
-
r_alpha = min(1, (progress - 0.3) * 3)
|
|
101
|
-
rect = patches.FancyBboxPatch((router_x - 1.8, 2.5), 3.6, 3.4,
|
|
102
|
-
boxstyle="round,pad=0.15",
|
|
103
|
-
facecolor=accent1, edgecolor='white',
|
|
104
|
-
linewidth=4, alpha=r_alpha)
|
|
105
|
-
ax.add_patch(rect)
|
|
106
|
-
ax.text(router_x, 4.7, 'A3M', fontsize=36, color=text_color,
|
|
107
|
-
ha='center', va='center', fontweight='bold', alpha=r_alpha)
|
|
108
|
-
ax.text(router_x, 3.7, 'ROUTER', fontsize=28, color=text_color,
|
|
109
|
-
ha='center', va='center', fontweight='bold', alpha=r_alpha)
|
|
110
|
-
ax.text(router_x, 2.9, '<1ms • No GPU', fontsize=14, color='white',
|
|
111
|
-
ha='center', va='center', alpha=r_alpha * 0.8)
|
|
112
|
-
|
|
113
|
-
# Provider boxes
|
|
114
|
-
if progress > 0.5:
|
|
115
|
-
providers = [
|
|
116
|
-
('FREE', 'Groq', accent3, 6),
|
|
117
|
-
('CHEAP', 'Mistral', accent4, 4.2),
|
|
118
|
-
('PREMIUM', 'GPT-4o', accent2, 2.4)
|
|
119
|
-
]
|
|
120
|
-
for name, model, color, y in providers:
|
|
121
|
-
p_alpha = min(1, (progress - 0.5) * 2)
|
|
122
|
-
rect = patches.FancyBboxPatch((provider_x - 1.5, y - 0.4), 3, 0.8,
|
|
123
|
-
boxstyle="round,pad=0.1",
|
|
124
|
-
facecolor=color, edgecolor='white',
|
|
125
|
-
linewidth=2, alpha=p_alpha * 0.9)
|
|
126
|
-
ax.add_patch(rect)
|
|
127
|
-
ax.text(provider_x, y, f'{name}', fontsize=14, color=bg_color,
|
|
128
|
-
ha='center', va='center', fontweight='bold', alpha=p_alpha)
|
|
129
|
-
|
|
130
|
-
# Arrows
|
|
131
|
-
if progress > 0.2:
|
|
132
|
-
a_alpha = min(1, (progress - 0.2) * 3)
|
|
133
|
-
ax.annotate('', xy=(router_x - 1.8, 4.2), xytext=(query_x + 1.2, 4.2),
|
|
134
|
-
arrowprops=dict(arrowstyle='->', color=accent1, lw=3), alpha=a_alpha)
|
|
135
|
-
|
|
136
|
-
if progress > 0.5:
|
|
137
|
-
for y in [6, 4.2, 2.4]:
|
|
138
|
-
ax.annotate('', xy=(provider_x - 1.5, y), xytext=(router_x + 1.8, 4.2),
|
|
139
|
-
arrowprops=dict(arrowstyle='->', color='white', lw=2), alpha=0.5)
|
|
140
|
-
|
|
141
|
-
elif scene_num == 3:
|
|
142
|
-
# Scene 3: 12 signals
|
|
143
|
-
ax.text(8, 7.8, '12 Keyword Signals', fontsize=48, color=accent1,
|
|
144
|
-
ha='center', va='center', fontweight='bold', alpha=progress)
|
|
145
|
-
ax.text(8, 6.8, 'Instant multi-dimensional query analysis', fontsize=22,
|
|
146
|
-
color=text_color, ha='center', va='center', alpha=progress * 0.7)
|
|
147
|
-
|
|
148
|
-
signals = [
|
|
149
|
-
('code', accent1), ('math', accent3), ('creative', accent4),
|
|
150
|
-
('factual', accent2), ('simple', accent1), ('complex', accent3),
|
|
151
|
-
('debug', accent4), ('explain', accent2), ('short', accent1),
|
|
152
|
-
('long', accent3), ('structured', accent4), ('open', accent2)
|
|
153
|
-
]
|
|
154
|
-
|
|
155
|
-
cols = 4
|
|
156
|
-
for idx, (sig, color) in enumerate(signals):
|
|
157
|
-
row = idx // cols
|
|
158
|
-
col = idx % cols
|
|
159
|
-
x = 3.2 + col * 2.7
|
|
160
|
-
y = 5.2 - row * 1.7
|
|
161
|
-
|
|
162
|
-
# Staggered animation
|
|
163
|
-
sig_progress = max(0, min(1, (progress - idx * 0.06) * 4))
|
|
164
|
-
if sig_progress > 0:
|
|
165
|
-
circle = patches.Circle((x, y), 0.6, color=color, alpha=sig_progress * 0.85)
|
|
166
|
-
ax.add_patch(circle)
|
|
167
|
-
ax.text(x, y, sig, fontsize=16, color=bg_color,
|
|
168
|
-
ha='center', va='center', fontweight='bold', alpha=sig_progress)
|
|
169
|
-
|
|
170
|
-
# Bottom text
|
|
171
|
-
if progress > 0.8:
|
|
172
|
-
ax.text(8, 1, 'Zero ML training • No GPU required • Runs anywhere',
|
|
173
|
-
fontsize=16, color=text_color, ha='center', va='center',
|
|
174
|
-
alpha=(progress - 0.8) * 5, style='italic')
|
|
175
|
-
|
|
176
|
-
elif scene_num == 4:
|
|
177
|
-
# Scene 4: RouterArena results
|
|
178
|
-
ax.text(8, 7.5, 'Official Benchmark Results', fontsize=40, color=text_color,
|
|
179
|
-
ha='center', va='center', fontweight='bold', alpha=0.8)
|
|
180
|
-
ax.text(8, 6.5, 'RouterArena (arXiv:2510.00202)', fontsize=20, color=accent3,
|
|
181
|
-
ha='center', va='center', alpha=progress * 0.7)
|
|
182
|
-
|
|
183
|
-
# Big score reveal
|
|
184
|
-
if progress > 0.2:
|
|
185
|
-
score_alpha = min(1, (progress - 0.2) * 2.5)
|
|
186
|
-
ax.text(8, 4.5, '76.43', fontsize=140, color=accent1,
|
|
187
|
-
ha='center', va='center', fontweight='bold', alpha=score_alpha,
|
|
188
|
-
family='monospace')
|
|
189
|
-
|
|
190
|
-
if progress > 0.4:
|
|
191
|
-
ax.text(8, 2.8, '#1', fontsize=72, color=accent4,
|
|
192
|
-
ha='center', va='center', fontweight='bold',
|
|
193
|
-
alpha=min(1, (progress - 0.4) * 3))
|
|
194
|
-
ax.text(8, 2, 'OUT OF 19 ROUTERS', fontsize=24, color=text_color,
|
|
195
|
-
ha='center', va='center',
|
|
196
|
-
alpha=min(1, (progress - 0.4) * 3))
|
|
197
|
-
|
|
198
|
-
if progress > 0.6:
|
|
199
|
-
# Comparison bars
|
|
200
|
-
bars = [
|
|
201
|
-
('A3M', 76.43, accent1),
|
|
202
|
-
('Sqwish', 75.27, accent3),
|
|
203
|
-
('GPT-5', 64.32, accent2),
|
|
204
|
-
]
|
|
205
|
-
bar_y = 0.8
|
|
206
|
-
for name, score, color in bars:
|
|
207
|
-
bar_alpha = min(1, (progress - 0.6) * 2)
|
|
208
|
-
bar_width = (score / 100) * 12
|
|
209
|
-
rect = patches.FancyBboxPatch((2, bar_y), bar_width, 0.4,
|
|
210
|
-
boxstyle="round,pad=0.05",
|
|
211
|
-
facecolor=color, alpha=bar_alpha * 0.8)
|
|
212
|
-
ax.add_patch(rect)
|
|
213
|
-
ax.text(14.5, bar_y + 0.2, f'{name}: {score}', fontsize=14,
|
|
214
|
-
color=text_color, ha='right', va='center', alpha=bar_alpha)
|
|
215
|
-
bar_y += 0.6
|
|
216
|
-
|
|
217
|
-
elif scene_num == 5:
|
|
218
|
-
# Scene 5: 213x savings
|
|
219
|
-
ax.text(8, 7.2, '213× Cheaper', fontsize=64, color=accent3,
|
|
220
|
-
ha='center', va='center', fontweight='bold', alpha=progress)
|
|
221
|
-
|
|
222
|
-
if progress > 0.2:
|
|
223
|
-
# GPT-5 side
|
|
224
|
-
gpt_alpha = min(1, (progress - 0.2) * 3)
|
|
225
|
-
ax.text(4, 5, '$10.02', fontsize=72, color=accent2,
|
|
226
|
-
ha='center', va='center', fontweight='bold', alpha=gpt_alpha)
|
|
227
|
-
ax.text(4, 3.5, 'GPT-5', fontsize=28, color=text_color,
|
|
228
|
-
ha='center', va='center', alpha=gpt_alpha)
|
|
229
|
-
|
|
230
|
-
if progress > 0.5:
|
|
231
|
-
# A3M side
|
|
232
|
-
a3m_alpha = min(1, (progress - 0.5) * 3)
|
|
233
|
-
ax.text(12, 5, '$0.047', fontsize=72, color=accent3,
|
|
234
|
-
ha='center', va='center', fontweight='bold', alpha=a3m_alpha)
|
|
235
|
-
ax.text(12, 3.5, 'A3M', fontsize=28, color=text_color,
|
|
236
|
-
ha='center', va='center', alpha=a3m_alpha)
|
|
237
|
-
|
|
238
|
-
if progress > 0.7:
|
|
239
|
-
# VS divider
|
|
240
|
-
vs_alpha = min(1, (progress - 0.7) * 4)
|
|
241
|
-
ax.text(8, 5, 'vs', fontsize=48, color=text_color,
|
|
242
|
-
ha='center', va='center', alpha=vs_alpha * 0.5)
|
|
243
|
-
|
|
244
|
-
if progress > 0.8:
|
|
245
|
-
ax.text(8, 2, 'Same quality routing • 1/213th the cost',
|
|
246
|
-
fontsize=20, color=text_color, ha='center', va='center',
|
|
247
|
-
alpha=(progress - 0.8) * 5, style='italic')
|
|
248
|
-
|
|
249
|
-
if progress > 0.9:
|
|
250
|
-
ax.text(8, 1, 'github.com/Das-rebel/a3m-router',
|
|
251
|
-
fontsize=16, color=accent1, ha='center', va='center',
|
|
252
|
-
alpha=(progress - 0.9) * 10)
|
|
253
|
-
|
|
254
|
-
plt.tight_layout()
|
|
255
|
-
plt.savefig(output_path, facecolor=bg_color, dpi=100)
|
|
256
|
-
plt.close()
|
|
257
|
-
|
|
258
|
-
def main():
|
|
259
|
-
if not check_deps():
|
|
260
|
-
sys.exit(1)
|
|
261
|
-
|
|
262
|
-
print("🎬 A3M Router — 3Blue1Brown Style Video Generator v2")
|
|
263
|
-
print("=" * 55)
|
|
264
|
-
|
|
265
|
-
output_dir = '/Users/Subho/adaptive-memory-multi-model-router/demo/frames_3b1b_v2'
|
|
266
|
-
|
|
267
|
-
# Clean old frames
|
|
268
|
-
if os.path.exists(output_dir):
|
|
269
|
-
shutil.rmtree(output_dir)
|
|
270
|
-
os.makedirs(output_dir)
|
|
271
|
-
|
|
272
|
-
scenes = [
|
|
273
|
-
{"id": 1, "title": "The Problem", "duration": 4.0},
|
|
274
|
-
{"id": 2, "title": "The Solution", "duration": 5.0},
|
|
275
|
-
{"id": 3, "title": "12 Signals", "duration": 5.0},
|
|
276
|
-
{"id": 4, "title": "Benchmark", "duration": 4.0},
|
|
277
|
-
{"id": 5, "title": "213x Savings", "duration": 4.0},
|
|
278
|
-
]
|
|
279
|
-
|
|
280
|
-
fps = 30
|
|
281
|
-
total_frames = 0
|
|
282
|
-
|
|
283
|
-
for scene in scenes:
|
|
284
|
-
scene_id = scene['id']
|
|
285
|
-
scene_dir = os.path.join(output_dir, f'scene_{scene_id}')
|
|
286
|
-
os.makedirs(scene_dir)
|
|
287
|
-
|
|
288
|
-
num_frames = int(scene['duration'] * fps)
|
|
289
|
-
total_frames += num_frames
|
|
290
|
-
|
|
291
|
-
print(f"\n📽️ Scene {scene_id}: {scene['title']} ({num_frames} frames)")
|
|
292
|
-
|
|
293
|
-
for frame_num in range(1, num_frames + 1):
|
|
294
|
-
output_path = os.path.join(scene_dir, f'frame_{frame_num:04d}.png')
|
|
295
|
-
generate_frame_matplotlib(scene_id, frame_num, num_frames, output_path)
|
|
296
|
-
|
|
297
|
-
if frame_num % 30 == 0:
|
|
298
|
-
print(f" ✓ Frame {frame_num}/{num_frames}")
|
|
299
|
-
|
|
300
|
-
print(f"\n✅ Generated {total_frames} total frames ({total_frames/fps:.1f}s)")
|
|
301
|
-
|
|
302
|
-
# Save scene config
|
|
303
|
-
with open(os.path.join(output_dir, 'config.json'), 'w') as f:
|
|
304
|
-
json.dump({"scenes": scenes, "fps": fps}, f, indent=2)
|
|
305
|
-
|
|
306
|
-
return output_dir
|
|
307
|
-
|
|
308
|
-
if __name__ == '__main__':
|
|
309
|
-
output = main()
|
|
310
|
-
print(f"\nOutput directory: {output}")
|
package/demo/IMPROVED_PROMPTS.md
DELETED
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
# Improved Prompts for A3M Router Product Video (10x Better)
|
|
2
|
-
# Based on vault learnings from successful launches on X/HN/PH
|
|
3
|
-
|
|
4
|
-
## Key Patterns from Vault
|
|
5
|
-
|
|
6
|
-
### 1. VIRAL VIDEO TRIFECTA
|
|
7
|
-
1. **Strong hook** (< 2 seconds)
|
|
8
|
-
2. **Seamless CTA**
|
|
9
|
-
3. **Repeatable**
|
|
10
|
-
|
|
11
|
-
### 2. MOST IMPORTANT: "Generate Hype, Not Demo"
|
|
12
|
-
> "Your main intention with the product video is to generate interest (hype!)
|
|
13
|
-
> It's not a demo. You do not need to show every step.
|
|
14
|
-
> Simplify things. Retain viewers." - from successful indie founder
|
|
15
|
-
|
|
16
|
-
### 3. Launch Channels That Work
|
|
17
|
-
- 35% Reddit
|
|
18
|
-
- 27% X (Twitter)
|
|
19
|
-
- **18% PH / HN launch posts**
|
|
20
|
-
|
|
21
|
-
### 4. Cluely Video Analysis (Viral Pattern)
|
|
22
|
-
- Close face hook for <2 secs
|
|
23
|
-
- Trending/relevant theme
|
|
24
|
-
- Highly relatable situation
|
|
25
|
-
- Question in caption
|
|
26
|
-
- Very short → people likely to rewatch
|
|
27
|
-
|
|
28
|
-
### 5. Nano Banana (Image) - Reality-First Prompt Structure
|
|
29
|
-
```
|
|
30
|
-
[Subject] in [Setting], [Lighting], [Style/Medium], [Technical specs]
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### 6. Veo 3 (Video) - JSON Structure
|
|
34
|
-
```json
|
|
35
|
-
{
|
|
36
|
-
"shot": {
|
|
37
|
-
"composition": "Wide shot of...",
|
|
38
|
-
"lens": "35mm wide-angle lens",
|
|
39
|
-
"frame_rate": "24fps",
|
|
40
|
-
"camera_movement": "slow dolly forward",
|
|
41
|
-
"film_grain": "subtle grain"
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## NEW 10X VIDEO STRATEGY: HYPE-FIRST, NOT DEMO
|
|
49
|
-
|
|
50
|
-
### The Problem with Our Current Video
|
|
51
|
-
- We show frames: AI data center → Cost → Parallel → Providers → End card
|
|
52
|
-
- This is a DEMO, not HYPE
|
|
53
|
-
- Viewers get bored, leave before the good stuff
|
|
54
|
-
|
|
55
|
-
### The 10x Better Structure (Based on Vault)
|
|
56
|
-
**Total: 15-20 seconds max**
|
|
57
|
-
|
|
58
|
-
1. **HOOK (0-2s):** "I built a router that saves $10,000/month" - SHOCK VALUE
|
|
59
|
-
2. **PROOF (2-5s):** Live demo showing cost comparison - GPT-4 vs A3M
|
|
60
|
-
3. **WOW MOMENT (5-8s):** Show parallel execution, all 5 providers firing
|
|
61
|
-
4. **SOCIAL PROOF (8-10s):** "#1 on RouterArena with 70.32"
|
|
62
|
-
5. **CTA (10-12s):** "npm install adaptive-memory-multi-model-router"
|
|
63
|
-
|
|
64
|
-
### For HN/PH Audience Specifically:
|
|
65
|
-
- Lead with **benchmark**, not marketing
|
|
66
|
-
- Show the **numbers** upfront
|
|
67
|
-
- Keep technical credibility
|
|
68
|
-
- One clear demo, not 5 features
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## REVISED FRAME PROMPTS
|
|
73
|
-
|
|
74
|
-
### Frame 1: HOOK - The Shock Stat (0-3s)
|
|
75
|
-
**Video prompt (JSON):**
|
|
76
|
-
```json
|
|
77
|
-
{
|
|
78
|
-
"shot": {
|
|
79
|
-
"composition": "Close-up of terminal showing cost calculations, numbers rapidly updating",
|
|
80
|
-
"lens": "50mm portrait lens",
|
|
81
|
-
"frame_rate": "30fps",
|
|
82
|
-
"camera_movement": "Static close-up, subtle zoom in",
|
|
83
|
-
"film_grain": "Clean digital"
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
```
|
|
87
|
-
**Overlay text:** "I built a router that saves developers $10,000/month"
|
|
88
|
-
|
|
89
|
-
**Or with Veo 3:**
|
|
90
|
-
> A developer at a desk, shocked at their screen showing cost savings, rapid calculator numbers, light bulb moment, dramatic lighting
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
### Frame 2: PROOF - Live Demo (3-8s)
|
|
95
|
-
**Image prompt:**
|
|
96
|
-
> Split screen: Left side shows GPT-4 API bill for $300. Right side shows A3M Router cost of $1.41 for same queries. Real-time terminal window, both running side by side, numbers updating live. Dark room, desk lamp, professional comparison shot, photorealistic, 4K
|
|
97
|
-
|
|
98
|
-
**Video prompt (JSON):**
|
|
99
|
-
```json
|
|
100
|
-
{
|
|
101
|
-
"shot": {
|
|
102
|
-
"composition": "Split screen terminal comparison, GPT-4 costs on left (red, growing), A3M costs on right (green, flat)",
|
|
103
|
-
"lens": "35mm wide-angle lens",
|
|
104
|
-
"frame_rate": "30fps",
|
|
105
|
-
"camera_movement": "Slow push in, subtle",
|
|
106
|
-
"film_grain": "Clean digital, slight bloom on numbers"
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
### Frame 3: WOW - Parallel Execution (8-12s)
|
|
114
|
-
**Image prompt:**
|
|
115
|
-
> Terminal window on a laptop showing 5 AI providers firing simultaneously: Groq, Cerebras, DeepSeek, Mistral, OpenAI. All green checkmarks appearing at different speeds. Groq first to respond with 187ms. Animated diagram, cyberpunk aesthetic, neon green on black, holographic overlay effect, futuristic command center vibe, professional product photography
|
|
116
|
-
|
|
117
|
-
**Video prompt (JSON):**
|
|
118
|
-
```json
|
|
119
|
-
{
|
|
120
|
-
"shot": {
|
|
121
|
-
"composition": "Terminal window, 5 provider lines appearing simultaneously with green checkmarks, Groq winning race at 187ms",
|
|
122
|
-
"lens": "35mm lens",
|
|
123
|
-
"frame_rate": "24fps",
|
|
124
|
-
"camera_movement": "Slow zoom in as results appear",
|
|
125
|
-
"film_grain": "CRT scanline effect, digital noise"
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
### Frame 4: SOCIAL PROOF (12-15s)
|
|
133
|
-
**Image prompt:**
|
|
134
|
-
> Clean minimalist dark card floating in space, "A3M Router" in bold white text centered, below in gold/amber text: "#1 on RouterArena · 70.32 benchmark score", below that gray text: "40 providers · 213× cheaper than GPT-4", subtle blue glow around text, spotlight from above, Apple keynote aesthetic, dark void background, professional product photography
|
|
135
|
-
|
|
136
|
-
**Video prompt (JSON):**
|
|
137
|
-
```json
|
|
138
|
-
{
|
|
139
|
-
"shot": {
|
|
140
|
-
"composition": "Product card fading in, text elements appearing sequentially with subtle glow",
|
|
141
|
-
"lens": "85mm portrait lens",
|
|
142
|
-
"frame_rate": "24fps",
|
|
143
|
-
"camera_movement": "Very slow push in, breathing motion",
|
|
144
|
-
"film_grain": "Clean digital, light rays from above"
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
### Frame 5: CTA (15-18s)
|
|
152
|
-
**Image prompt:**
|
|
153
|
-
> Dark terminal window with green on black text: "npm install adaptive-memory-multi-model-router" in large monospace font. Below: GitHub and npm logos side by side. Below that: "RouterArena #1" badge. Clean, minimal, developer-focused aesthetic, dark mode IDE style, professional product shot on desk
|
|
154
|
-
|
|
155
|
-
**Video prompt (JSON):**
|
|
156
|
-
```json
|
|
157
|
-
{
|
|
158
|
-
"shot": {
|
|
159
|
-
"composition": "Terminal window appearing with command text typing out character by character",
|
|
160
|
-
"lens": "50mm portrait lens",
|
|
161
|
-
"frame_rate": "30fps",
|
|
162
|
-
"camera_movement": "Static, cursor blinking",
|
|
163
|
-
"film_grain": "Clean digital"
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
## KEY IMPROVEMENTS FROM VAULT
|
|
171
|
-
|
|
172
|
-
| Old Approach | 10x Better (Vault) |
|
|
173
|
-
|-------------|-------------------|
|
|
174
|
-
| 5-frame feature dump | 5-frame HYPE story |
|
|
175
|
-
| AI data center hero | Developer SHOCK moment |
|
|
176
|
-
| Technical accuracy | Emotional hook first |
|
|
177
|
-
| Show all features | Show ONE proof point |
|
|
178
|
-
| Demo mindset | Hype mindset |
|
|
179
|
-
| 13+ seconds of images | 18s max, every second counts |
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
## PROMPT STRUCTURE FORMULA (From Vault)
|
|
184
|
-
|
|
185
|
-
### For Images:
|
|
186
|
-
```
|
|
187
|
-
[Specific Subject] + [Setting/Background] + [Lighting] + [Style] + [Technical specs]
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
**Examples:**
|
|
191
|
-
- "Split screen terminal showing GPT-4 vs A3M costs, dark room, desk lamp lighting, professional comparison, photorealistic"
|
|
192
|
-
- "Terminal with 5 AI providers racing, cyberpunk aesthetic, neon green on black, holographic overlay, futuristic command center"
|
|
193
|
-
|
|
194
|
-
### For Video (Veo 3 JSON):
|
|
195
|
-
```
|
|
196
|
-
{
|
|
197
|
-
"shot": {
|
|
198
|
-
"composition": "[What you see]",
|
|
199
|
-
"lens": "[Lens type]",
|
|
200
|
-
"frame_rate": "[FPS - usually 24-30]",
|
|
201
|
-
"camera_movement": "[Movement type and speed]",
|
|
202
|
-
"film_grain": "[Texture/style]"
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
---
|
|
208
|
-
|
|
209
|
-
## SHORTER PROMPTS THAT WORK (From Vault)
|
|
210
|
-
|
|
211
|
-
Rather than over-detailing, focus on:
|
|
212
|
-
1. **Subject** - What is shown
|
|
213
|
-
2. **Action/Motion** - What's happening
|
|
214
|
-
3. **Mood** - How it feels
|
|
215
|
-
4. **Style** - Visual reference
|
|
216
|
-
|
|
217
|
-
**Good:** "Split screen terminal, GPT-4 vs A3M costs, numbers updating live, shocked developer reaction"
|
|
218
|
-
**Bad:** "A photorealistic split-screen product photography composition showing two laptop screens side by side with detailed cost analysis..."
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
|
-
## HN/PH SPECIFIC TIPS
|
|
223
|
-
|
|
224
|
-
For Hacker News / Product Hunt audience:
|
|
225
|
-
1. **Lead with numbers, not claims**
|
|
226
|
-
2. **Show benchmark proof**
|
|
227
|
-
3. **Keep it technical but accessible**
|
|
228
|
-
4. **Demo should be "wow" not "look at all features"**
|
|
229
|
-
5. **CTA should be simple install command**
|