adaptive-memory-multi-model-router 1.2.2 → 1.3.1
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/LICENSE +21 -0
- package/README.md +146 -66
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/integrations/airtable.js +20 -0
- package/dist/integrations/discord.js +18 -0
- package/dist/integrations/github.js +23 -0
- package/dist/integrations/gmail.js +19 -0
- package/dist/integrations/google-calendar.js +18 -0
- package/dist/integrations/index.js +61 -0
- package/dist/integrations/jira.js +21 -0
- package/dist/integrations/linear.js +19 -0
- package/dist/integrations/notion.js +19 -0
- package/dist/integrations/slack.js +18 -0
- package/dist/integrations/telegram.js +19 -0
- package/dist/providers/registry.js +7 -3
- package/docs/ARCHITECTURAL-IMPROVEMENTS-2025.md +1391 -0
- package/docs/ARCHITECTURAL-IMPROVEMENTS-REVISED-2025.md +1051 -0
- package/docs/CONFIGURATION.md +476 -0
- package/docs/COUNCIL_DECISION.json +308 -0
- package/docs/COUNCIL_SUMMARY.md +265 -0
- package/docs/COUNCIL_V2.2_DECISION.md +416 -0
- package/docs/IMPROVEMENT_ROADMAP.md +515 -0
- package/docs/LLM_COUNCIL_DECISION.md +508 -0
- package/docs/QUICK_START_VISIBILITY.md +782 -0
- package/docs/REDDIT_GAP_ANALYSIS.md +299 -0
- package/docs/RESEARCH_BACKED_IMPROVEMENTS.md +1180 -0
- package/docs/TMLPD_QNA.md +751 -0
- package/docs/TMLPD_V2.1_COMPLETE.md +763 -0
- package/docs/TMLPD_V2.2_RESEARCH_ROADMAP.md +754 -0
- package/docs/V2.2_IMPLEMENTATION_COMPLETE.md +446 -0
- package/docs/V2_IMPLEMENTATION_GUIDE.md +388 -0
- package/docs/VISIBILITY_ADOPTION_PLAN.md +1005 -0
- package/docs/launch-content/LAUNCH_EXECUTION_CHECKLIST.md +421 -0
- package/docs/launch-content/README.md +457 -0
- 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 +313 -0
- package/docs/launch-content/hn_show_post.md +139 -0
- package/docs/launch-content/partner_outreach_templates.md +745 -0
- package/docs/launch-content/reddit_posts.md +467 -0
- package/docs/launch-content/twitter_thread.txt +460 -0
- package/examples/QUICKSTART.md +1 -1
- package/openclaw-alexa-bridge/ALL_REMAINING_FIXES_PLAN.md +313 -0
- package/openclaw-alexa-bridge/REMAINING_FIXES_SUMMARY.md +277 -0
- package/openclaw-alexa-bridge/src/alexa_handler_no_tmlpd.js +1234 -0
- package/openclaw-alexa-bridge/test_fixes.js +77 -0
- package/package.json +120 -29
- package/package.json.tmp +0 -0
- package/qna/TMLPD_QNA.md +3 -3
- package/skill/SKILL.md +2 -2
- package/src/__tests__/integration/tmpld_integration.test.py +540 -0
- package/src/agents/skill_enhanced_agent.py +318 -0
- package/src/memory/__init__.py +15 -0
- package/src/memory/agentic_memory.py +353 -0
- package/src/memory/semantic_memory.py +444 -0
- package/src/memory/simple_memory.py +466 -0
- package/src/memory/working_memory.py +447 -0
- package/src/orchestration/__init__.py +52 -0
- package/src/orchestration/execution_engine.py +353 -0
- package/src/orchestration/halo_orchestrator.py +367 -0
- package/src/orchestration/mcts_workflow.py +498 -0
- package/src/orchestration/role_assigner.py +473 -0
- package/src/orchestration/task_planner.py +522 -0
- package/src/providers/__init__.py +67 -0
- package/src/providers/anthropic.py +304 -0
- package/src/providers/base.py +241 -0
- package/src/providers/cerebras.py +373 -0
- package/src/providers/registry.py +476 -0
- package/src/routing/__init__.py +30 -0
- package/src/routing/universal_router.py +621 -0
- package/src/skills/TMLPD-QUICKREF.md +210 -0
- package/src/skills/TMLPD-SETUP-SUMMARY.md +157 -0
- package/src/skills/TMLPD.md +540 -0
- package/src/skills/__tests__/skill_manager.test.ts +328 -0
- package/src/skills/skill_manager.py +385 -0
- package/src/skills/test-tmlpd.sh +108 -0
- package/src/skills/tmlpd-category.yaml +67 -0
- package/src/skills/tmlpd-monitoring.yaml +188 -0
- package/src/skills/tmlpd-phase.yaml +132 -0
- package/src/state/__init__.py +17 -0
- package/src/state/simple_checkpoint.py +508 -0
- package/src/tmlpd_agent.py +464 -0
- package/src/tmpld_v2.py +427 -0
- package/src/workflows/__init__.py +18 -0
- package/src/workflows/advanced_difficulty_classifier.py +377 -0
- package/src/workflows/chaining_executor.py +417 -0
- package/src/workflows/difficulty_integration.py +209 -0
- package/src/workflows/orchestrator.py +469 -0
- package/src/workflows/orchestrator_executor.py +456 -0
- package/src/workflows/parallelization_executor.py +382 -0
- package/src/workflows/router.py +311 -0
- package/test_integration_simple.py +86 -0
- package/test_mcts_workflow.py +150 -0
- package/test_templd_integration.py +262 -0
- package/test_universal_router.py +275 -0
- package/tmlpd-pi-extension/README.md +36 -0
- package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts +114 -0
- package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/cache/prefixCache.js +285 -0
- package/tmlpd-pi-extension/dist/cache/prefixCache.js.map +1 -0
- package/tmlpd-pi-extension/dist/cache/responseCache.d.ts +58 -0
- package/tmlpd-pi-extension/dist/cache/responseCache.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/cache/responseCache.js +153 -0
- package/tmlpd-pi-extension/dist/cache/responseCache.js.map +1 -0
- package/tmlpd-pi-extension/dist/cli.js +59 -0
- package/tmlpd-pi-extension/dist/cost/costTracker.d.ts +95 -0
- package/tmlpd-pi-extension/dist/cost/costTracker.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/cost/costTracker.js +240 -0
- package/tmlpd-pi-extension/dist/cost/costTracker.js.map +1 -0
- package/tmlpd-pi-extension/dist/index.d.ts +723 -0
- package/tmlpd-pi-extension/dist/index.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/index.js +239 -0
- package/tmlpd-pi-extension/dist/index.js.map +1 -0
- package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts +82 -0
- package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/memory/episodicMemory.js +145 -0
- package/tmlpd-pi-extension/dist/memory/episodicMemory.js.map +1 -0
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts +102 -0
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js +207 -0
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js.map +1 -0
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts +85 -0
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js +210 -0
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js.map +1 -0
- package/tmlpd-pi-extension/dist/providers/localProvider.d.ts +102 -0
- package/tmlpd-pi-extension/dist/providers/localProvider.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/providers/localProvider.js +338 -0
- package/tmlpd-pi-extension/dist/providers/localProvider.js.map +1 -0
- package/tmlpd-pi-extension/dist/providers/registry.d.ts +55 -0
- package/tmlpd-pi-extension/dist/providers/registry.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/providers/registry.js +138 -0
- package/tmlpd-pi-extension/dist/providers/registry.js.map +1 -0
- package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts +68 -0
- package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/routing/advancedRouter.js +332 -0
- package/tmlpd-pi-extension/dist/routing/advancedRouter.js.map +1 -0
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts +101 -0
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.js +368 -0
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts +96 -0
- package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/batchProcessor.js +170 -0
- package/tmlpd-pi-extension/dist/utils/batchProcessor.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/compression.d.ts +61 -0
- package/tmlpd-pi-extension/dist/utils/compression.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/compression.js +281 -0
- package/tmlpd-pi-extension/dist/utils/compression.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/reliability.d.ts +74 -0
- package/tmlpd-pi-extension/dist/utils/reliability.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/reliability.js +177 -0
- package/tmlpd-pi-extension/dist/utils/reliability.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts +117 -0
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js +246 -0
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts +50 -0
- package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/tokenUtils.js +124 -0
- package/tmlpd-pi-extension/dist/utils/tokenUtils.js.map +1 -0
- package/tmlpd-pi-extension/examples/QUICKSTART.md +183 -0
- package/tmlpd-pi-extension/package-lock.json +75 -0
- package/tmlpd-pi-extension/package.json +172 -0
- package/tmlpd-pi-extension/python/examples.py +53 -0
- package/tmlpd-pi-extension/python/integrations.py +330 -0
- package/tmlpd-pi-extension/python/setup.py +28 -0
- package/tmlpd-pi-extension/python/tmlpd.py +369 -0
- package/tmlpd-pi-extension/qna/REDDIT_GAP_ANALYSIS.md +299 -0
- package/tmlpd-pi-extension/qna/TMLPD_QNA.md +751 -0
- package/tmlpd-pi-extension/skill/SKILL.md +238 -0
- package/{src → tmlpd-pi-extension/src}/index.ts +1 -1
- package/tmlpd-pi-extension/tsconfig.json +18 -0
- package/demo/research-demo.js +0 -266
- package/notebooks/quickstart.ipynb +0 -157
- package/rust/tmlpd.h +0 -268
- package/src/cache/prefixCache.ts +0 -365
- package/src/routing/advancedRouter.ts +0 -406
- package/src/utils/speculativeDecoding.ts +0 -344
- /package/{src → tmlpd-pi-extension/src}/cache/responseCache.ts +0 -0
- /package/{src → tmlpd-pi-extension/src}/cost/costTracker.ts +0 -0
- /package/{src → tmlpd-pi-extension/src}/memory/episodicMemory.ts +0 -0
- /package/{src → tmlpd-pi-extension/src}/orchestration/haloOrchestrator.ts +0 -0
- /package/{src → tmlpd-pi-extension/src}/orchestration/mctsWorkflow.ts +0 -0
- /package/{src → tmlpd-pi-extension/src}/providers/localProvider.ts +0 -0
- /package/{src → tmlpd-pi-extension/src}/providers/registry.ts +0 -0
- /package/{src → tmlpd-pi-extension/src}/tools/tmlpdTools.ts +0 -0
- /package/{src → tmlpd-pi-extension/src}/utils/batchProcessor.ts +0 -0
- /package/{src → tmlpd-pi-extension/src}/utils/compression.ts +0 -0
- /package/{src → tmlpd-pi-extension/src}/utils/reliability.ts +0 -0
- /package/{src → tmlpd-pi-extension/src}/utils/tokenUtils.ts +0 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# TMLPD PI Extension - Usage Examples
|
|
2
|
+
|
|
3
|
+
## Quick Start
|
|
4
|
+
|
|
5
|
+
```python
|
|
6
|
+
from tmlpd import quick_process
|
|
7
|
+
|
|
8
|
+
# One-liner
|
|
9
|
+
result = quick_process("What is quantum entanglement?")
|
|
10
|
+
print(result["content"])
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Task Classification
|
|
14
|
+
|
|
15
|
+
```python
|
|
16
|
+
from tmlpd import TMLPDLite, TaskType
|
|
17
|
+
|
|
18
|
+
lite = TMLPDLite()
|
|
19
|
+
|
|
20
|
+
# Automatic task classification
|
|
21
|
+
prompt = "Write Python async HTTP client"
|
|
22
|
+
task_type = lite.classify_task(prompt) # TaskType.CODING
|
|
23
|
+
|
|
24
|
+
# Get optimal models
|
|
25
|
+
models = lite.get_optimal_models(task_type, 3)
|
|
26
|
+
# ["codex", "claude-minimax", "claude"]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Caching
|
|
30
|
+
|
|
31
|
+
```python
|
|
32
|
+
from tmlpd import TMLPDLite
|
|
33
|
+
|
|
34
|
+
lite = TMLPDLite()
|
|
35
|
+
|
|
36
|
+
# First call - not cached
|
|
37
|
+
result1 = lite.process("What is 2+2?", use_cache=True)
|
|
38
|
+
print(f"Cached: {result1['cached']}") # False
|
|
39
|
+
|
|
40
|
+
# Second call - from cache
|
|
41
|
+
result2 = lite.process("What is 2+2?", use_cache=True)
|
|
42
|
+
print(f"Cached: {result2['cached']}") # True
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Async Client (Production)
|
|
46
|
+
|
|
47
|
+
```python
|
|
48
|
+
import asyncio
|
|
49
|
+
from tmlpd import TMLPDClient, TMLPDConfig
|
|
50
|
+
|
|
51
|
+
async def main():
|
|
52
|
+
config = TMLPDConfig(
|
|
53
|
+
cache_ttl_seconds=3600,
|
|
54
|
+
daily_budget=10.0,
|
|
55
|
+
max_concurrent=5
|
|
56
|
+
)
|
|
57
|
+
client = TMLPDClient(config)
|
|
58
|
+
|
|
59
|
+
# Single execution
|
|
60
|
+
result = await client.execute("Explain quantum entanglement")
|
|
61
|
+
|
|
62
|
+
# Parallel execution
|
|
63
|
+
parallel = await client.execute_parallel(
|
|
64
|
+
"Compare Python and JavaScript",
|
|
65
|
+
models=["gpt-4o", "claude", "gemini"]
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
# Cost summary
|
|
69
|
+
summary = await client.get_cost_summary()
|
|
70
|
+
print(f"Total spent: ${summary.total_cost}")
|
|
71
|
+
|
|
72
|
+
asyncio.run(main())
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Cost Optimization
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
import asyncio
|
|
79
|
+
from tmlpd import TMLPDClient
|
|
80
|
+
|
|
81
|
+
async def cost_optimization():
|
|
82
|
+
client = TMLPDClient()
|
|
83
|
+
|
|
84
|
+
# Cheap for simple tasks
|
|
85
|
+
simple = await client.execute("What is 2+2?", model="cerebras/llama-3.3-70b")
|
|
86
|
+
print(f"Simple task cost: ${simple.cost:.6f}")
|
|
87
|
+
|
|
88
|
+
# Premium for complex tasks
|
|
89
|
+
complex = await client.execute("Design microservices", model="anthropic/claude-3.5-sonnet")
|
|
90
|
+
print(f"Complex task cost: ${complex.cost:.6f}")
|
|
91
|
+
|
|
92
|
+
asyncio.run(cost_optimization())
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## LangChain Integration
|
|
96
|
+
|
|
97
|
+
```python
|
|
98
|
+
from langchain.llms import BaseLLM
|
|
99
|
+
from tmlpd import TMLPDLite
|
|
100
|
+
|
|
101
|
+
class TMLPDLLM(BaseLLM):
|
|
102
|
+
def __init__(self, task_type="default"):
|
|
103
|
+
self.lite = TMLPDLite()
|
|
104
|
+
self.task_type = task_type
|
|
105
|
+
|
|
106
|
+
def _call(self, prompt: str) -> str:
|
|
107
|
+
result = self.lite.process(prompt)
|
|
108
|
+
return result["content"]
|
|
109
|
+
|
|
110
|
+
# Usage
|
|
111
|
+
llm = TMLPDLLM(task_type="coding")
|
|
112
|
+
response = llm("Write a Python function")
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## API Server
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
# Run: node node_modules/tmlpd-pi/dist/server.js --port 18791
|
|
119
|
+
# Then use Python client:
|
|
120
|
+
|
|
121
|
+
import httpx
|
|
122
|
+
|
|
123
|
+
async def api_example():
|
|
124
|
+
async with httpx.AsyncClient() as client:
|
|
125
|
+
response = await client.post(
|
|
126
|
+
"http://localhost:18791/execute",
|
|
127
|
+
json={"prompt": "Hello world", "models": ["gpt-4o"]}
|
|
128
|
+
)
|
|
129
|
+
print(response.json())
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Task Types
|
|
133
|
+
|
|
134
|
+
| Task Type | Keywords | Best Models |
|
|
135
|
+
|-----------|----------|-------------|
|
|
136
|
+
| coding | python, javascript, code | codex, claude-minimax |
|
|
137
|
+
| frontend | react, vue, component | codex, claude-minimax |
|
|
138
|
+
| backend | api, server, database | codex, claude-glm |
|
|
139
|
+
| chinese | 中文, 汉语 | claude-glm, claude-minimax |
|
|
140
|
+
| fast | quick, simple | gemini, claude-haiku |
|
|
141
|
+
| premium | advanced, complex | claude-opus, gemini-pro |
|
|
142
|
+
|
|
143
|
+
## Environment Variables
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
# API Keys
|
|
147
|
+
export OPENAI_API_KEY="sk-..."
|
|
148
|
+
export ANTHROPIC_API_KEY="sk-ant-..."
|
|
149
|
+
export GROQ_API_KEY="gsk_..."
|
|
150
|
+
|
|
151
|
+
# TMLPD Configuration
|
|
152
|
+
export TMLPD_MAX_CONCURRENT=5
|
|
153
|
+
export TMLPD_DAILY_BUDGET=10.0
|
|
154
|
+
export TMLPD_CACHE_TTL=3600
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Full Example
|
|
158
|
+
|
|
159
|
+
```python
|
|
160
|
+
import asyncio
|
|
161
|
+
from tmlpd import TMLPDClient, TMLPDLite
|
|
162
|
+
|
|
163
|
+
async def full_example():
|
|
164
|
+
# Lite for quick tasks
|
|
165
|
+
lite = TMLPDLite()
|
|
166
|
+
result = lite.process("What is Python?", use_cache=True)
|
|
167
|
+
print(f"Lite: {result['task_type']}")
|
|
168
|
+
|
|
169
|
+
# Full client for production
|
|
170
|
+
client = TMLPDClient()
|
|
171
|
+
|
|
172
|
+
# Batch processing
|
|
173
|
+
prompts = ["What is AI?", "What is ML?", "What is DL?"]
|
|
174
|
+
for prompt in prompts:
|
|
175
|
+
result = await client.execute(prompt)
|
|
176
|
+
print(f"Cost: ${result.cost:.6f}")
|
|
177
|
+
|
|
178
|
+
# Final stats
|
|
179
|
+
summary = await client.get_cost_summary()
|
|
180
|
+
print(f"Total: ${summary.total_cost:.6f}")
|
|
181
|
+
|
|
182
|
+
asyncio.run(full_example())
|
|
183
|
+
```
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tmlpd-pi",
|
|
3
|
+
"version": "1.2.2",
|
|
4
|
+
"lockfileVersion": 3,
|
|
5
|
+
"requires": true,
|
|
6
|
+
"packages": {
|
|
7
|
+
"": {
|
|
8
|
+
"name": "tmlpd-pi",
|
|
9
|
+
"version": "1.2.2",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"nanoid": "^5.0.0"
|
|
13
|
+
},
|
|
14
|
+
"bin": {
|
|
15
|
+
"tmlpd-pi": "dist/cli.js"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@types/node": "^20.0.0",
|
|
19
|
+
"typescript": "^5.0.0"
|
|
20
|
+
},
|
|
21
|
+
"engines": {
|
|
22
|
+
"node": ">=18.0.0"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"node_modules/@types/node": {
|
|
26
|
+
"version": "20.19.41",
|
|
27
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.41.tgz",
|
|
28
|
+
"integrity": "sha512-ECymXOukMnOoVkC2bb1Vc/w/836DXncOg5m8Xj1RH7xSHZJWNYY6Zh7EH477vcnD5egKNNfy2RpNOmuChhFPgQ==",
|
|
29
|
+
"dev": true,
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"undici-types": "~6.21.0"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"node_modules/nanoid": {
|
|
36
|
+
"version": "5.1.11",
|
|
37
|
+
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.11.tgz",
|
|
38
|
+
"integrity": "sha512-v+KEsUv2ps74PaSKv0gHTxTCgMXOIfBEbaqa6w6ISIGC7ZsvHN4N9oJ8d4cmf0n5oTzQz2SLmThbQWhjd/8eKg==",
|
|
39
|
+
"funding": [
|
|
40
|
+
{
|
|
41
|
+
"type": "github",
|
|
42
|
+
"url": "https://github.com/sponsors/ai"
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"license": "MIT",
|
|
46
|
+
"bin": {
|
|
47
|
+
"nanoid": "bin/nanoid.js"
|
|
48
|
+
},
|
|
49
|
+
"engines": {
|
|
50
|
+
"node": "^18 || >=20"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"node_modules/typescript": {
|
|
54
|
+
"version": "5.9.3",
|
|
55
|
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
|
|
56
|
+
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
|
57
|
+
"dev": true,
|
|
58
|
+
"license": "Apache-2.0",
|
|
59
|
+
"bin": {
|
|
60
|
+
"tsc": "bin/tsc",
|
|
61
|
+
"tsserver": "bin/tsserver"
|
|
62
|
+
},
|
|
63
|
+
"engines": {
|
|
64
|
+
"node": ">=14.17"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"node_modules/undici-types": {
|
|
68
|
+
"version": "6.21.0",
|
|
69
|
+
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
|
|
70
|
+
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
|
|
71
|
+
"dev": true,
|
|
72
|
+
"license": "MIT"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tmlpd-pi",
|
|
3
|
+
"version": "1.2.2",
|
|
4
|
+
"version_description": "v1.2.0 - Research-backed Multi-LLM Router based on arXiv: RouteLLM (2404.06035), RadixAttention (2312.07104), Medusa (2401.10774), FlashAttention (2407.07403). 120+ keywords for LLM/ML discoverability. 13 PI tools.",
|
|
5
|
+
"description": "Research-backed Multi-LLM Router with parallel execution, learned routing (RouteLLM), prefix caching (RadixAttention), speculative decoding (Medusa/EAGLE), token compression (ISON), local LLM support (Ollama/vLLM/LM Studio), batch processing. Python bindings for LangChain/LlamaIndex/AutoGen/CrewAI. 120+ keywords: routellm, prefix-caching, speculative-decoding, medusa, flashattention, pagedattention, kv-cache, arxiv, research-backed, icml, neurips, iclr.",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"tmlpd-pi": "dist/cli.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"prepublish": "npm run build",
|
|
14
|
+
"test": "node test/verify.js",
|
|
15
|
+
"demo": "node demo/research-demo.js",
|
|
16
|
+
"python:examples": "python3 python/examples.py"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"pi-extension",
|
|
20
|
+
"pi",
|
|
21
|
+
"pi-package",
|
|
22
|
+
"pi-coding-agent",
|
|
23
|
+
"pi-agent",
|
|
24
|
+
"tmlpd",
|
|
25
|
+
"treequest",
|
|
26
|
+
"multi-llm",
|
|
27
|
+
"parallel-ai",
|
|
28
|
+
"llm-orchestration",
|
|
29
|
+
"llm",
|
|
30
|
+
"agent-orchestration",
|
|
31
|
+
"multi-agent",
|
|
32
|
+
"agent",
|
|
33
|
+
"parallel",
|
|
34
|
+
"streaming",
|
|
35
|
+
"cost-tracking",
|
|
36
|
+
"cost-optimization",
|
|
37
|
+
"cache",
|
|
38
|
+
"caching",
|
|
39
|
+
"circuit-breaker",
|
|
40
|
+
"retry",
|
|
41
|
+
"exponential-backoff",
|
|
42
|
+
"mcts",
|
|
43
|
+
"monte-carlo-tree-search",
|
|
44
|
+
"workflow-optimization",
|
|
45
|
+
"hierarchical-planning",
|
|
46
|
+
"halo",
|
|
47
|
+
"episodic-memory",
|
|
48
|
+
"semantic-memory",
|
|
49
|
+
"agent-memory",
|
|
50
|
+
"python",
|
|
51
|
+
"python-bindings",
|
|
52
|
+
"pypi",
|
|
53
|
+
"langchain",
|
|
54
|
+
"llamaindex",
|
|
55
|
+
"llama-index",
|
|
56
|
+
"autogen",
|
|
57
|
+
"crewai",
|
|
58
|
+
"huggingface",
|
|
59
|
+
"transformers",
|
|
60
|
+
"agent-codegen",
|
|
61
|
+
"ai-coding",
|
|
62
|
+
"openai",
|
|
63
|
+
"anthropic",
|
|
64
|
+
"google",
|
|
65
|
+
"groq",
|
|
66
|
+
"cerebras",
|
|
67
|
+
"mistral",
|
|
68
|
+
"xai",
|
|
69
|
+
"zai",
|
|
70
|
+
"claude",
|
|
71
|
+
"gpt-4",
|
|
72
|
+
"gemini",
|
|
73
|
+
"llama",
|
|
74
|
+
"model-router",
|
|
75
|
+
"model-routing",
|
|
76
|
+
"llm-router",
|
|
77
|
+
"ai-agents",
|
|
78
|
+
"autonomous-agents",
|
|
79
|
+
"memory-based-router",
|
|
80
|
+
"memory-based-llm-router",
|
|
81
|
+
"multi-llm-router",
|
|
82
|
+
"llm-memory-router",
|
|
83
|
+
"adaptive-router",
|
|
84
|
+
"adaptive-llm-router",
|
|
85
|
+
"intelligent-router",
|
|
86
|
+
"intelligent-llm-router",
|
|
87
|
+
"learning-router",
|
|
88
|
+
"contextual-router",
|
|
89
|
+
"context-aware-router",
|
|
90
|
+
"task-aware-router",
|
|
91
|
+
"memory-augmented",
|
|
92
|
+
"memory-augmented-llm",
|
|
93
|
+
"episodic-memory-router",
|
|
94
|
+
"semantic-memory-router",
|
|
95
|
+
"task-memory",
|
|
96
|
+
"cross-context-memory",
|
|
97
|
+
"token-compression",
|
|
98
|
+
"context-compression",
|
|
99
|
+
"ison-format",
|
|
100
|
+
"message-truncation",
|
|
101
|
+
"context-management",
|
|
102
|
+
"local-llm",
|
|
103
|
+
"ollama",
|
|
104
|
+
"vllm",
|
|
105
|
+
"lmstudio",
|
|
106
|
+
"local-model",
|
|
107
|
+
"privacy-llm",
|
|
108
|
+
"batch-processing",
|
|
109
|
+
"batch-execution",
|
|
110
|
+
"priority-queue",
|
|
111
|
+
"rate-limiting",
|
|
112
|
+
"token-counting",
|
|
113
|
+
"cost-estimation",
|
|
114
|
+
"cost-prediction",
|
|
115
|
+
"parallel-execution",
|
|
116
|
+
"multi-provider",
|
|
117
|
+
"fallback-chain",
|
|
118
|
+
"intelligent-failover",
|
|
119
|
+
"kv-cache",
|
|
120
|
+
"routellm",
|
|
121
|
+
"prefix-caching",
|
|
122
|
+
"radix-attention",
|
|
123
|
+
"speculative-decoding",
|
|
124
|
+
"medusa",
|
|
125
|
+
"eagle",
|
|
126
|
+
"flashattention",
|
|
127
|
+
"pagedattention",
|
|
128
|
+
"kv-cache-quantization",
|
|
129
|
+
"llmlingua",
|
|
130
|
+
"streamingllm",
|
|
131
|
+
"multimodel-orchestration",
|
|
132
|
+
"multi-agent-debate",
|
|
133
|
+
"self-consistency",
|
|
134
|
+
"tensor-parallelism",
|
|
135
|
+
"continuous-batching",
|
|
136
|
+
"arxiv",
|
|
137
|
+
"research-backed",
|
|
138
|
+
"icml",
|
|
139
|
+
"neurips",
|
|
140
|
+
"iclr"
|
|
141
|
+
],
|
|
142
|
+
"author": "Subho Das",
|
|
143
|
+
"license": "MIT",
|
|
144
|
+
"homepage": "https://github.com/Das-rebel/tmlpd-skill#readme",
|
|
145
|
+
"repository": {
|
|
146
|
+
"type": "git",
|
|
147
|
+
"url": "https://github.com/Das-rebel/tmlpd-skill.git"
|
|
148
|
+
},
|
|
149
|
+
"bugs": {
|
|
150
|
+
"url": "https://github.com/Das-rebel/tmlpd-skill/issues"
|
|
151
|
+
},
|
|
152
|
+
"dependencies": {
|
|
153
|
+
"nanoid": "^5.0.0"
|
|
154
|
+
},
|
|
155
|
+
"devDependencies": {
|
|
156
|
+
"typescript": "^5.0.0",
|
|
157
|
+
"@types/node": "^20.0.0"
|
|
158
|
+
},
|
|
159
|
+
"engines": {
|
|
160
|
+
"node": ">=18.0.0"
|
|
161
|
+
},
|
|
162
|
+
"categories": [
|
|
163
|
+
"AI",
|
|
164
|
+
"Machine Learning",
|
|
165
|
+
"Developer Tools",
|
|
166
|
+
"Programming"
|
|
167
|
+
],
|
|
168
|
+
"funding": {
|
|
169
|
+
"type": "individual",
|
|
170
|
+
"url": "https://github.com/sponsors/Das-rebel"
|
|
171
|
+
}
|
|
172
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
TMLPD Python Usage Examples
|
|
4
|
+
Run: python3 examples.py
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from tmlpd import TMLPDLite, quick_process, TaskType
|
|
8
|
+
|
|
9
|
+
def main():
|
|
10
|
+
print("=" * 60)
|
|
11
|
+
print("TMLPD Python - Quick Examples")
|
|
12
|
+
print("=" * 60)
|
|
13
|
+
|
|
14
|
+
# Example 1: One-liner
|
|
15
|
+
print("\n1. One-liner usage:")
|
|
16
|
+
result = quick_process("What is quantum entanglement?")
|
|
17
|
+
print(f" Task type: {result['task_type']}")
|
|
18
|
+
|
|
19
|
+
# Example 2: Task classification
|
|
20
|
+
print("\n2. Task classification:")
|
|
21
|
+
lite = TMLPDLite()
|
|
22
|
+
prompts = [
|
|
23
|
+
"Write Python async function",
|
|
24
|
+
"Explain neural network",
|
|
25
|
+
"Build React component",
|
|
26
|
+
"Create PostgreSQL schema"
|
|
27
|
+
]
|
|
28
|
+
for p in prompts:
|
|
29
|
+
tt = lite.classify_task(p)
|
|
30
|
+
models = lite.get_optimal_models(tt, 2)
|
|
31
|
+
print(f" '{p[:30]}...' -> {tt.value} -> {models}")
|
|
32
|
+
|
|
33
|
+
# Example 3: Caching
|
|
34
|
+
print("\n3. Caching:")
|
|
35
|
+
prompt = "What is the capital of France?"
|
|
36
|
+
r1 = lite.process(prompt, use_cache=True)
|
|
37
|
+
r2 = lite.process(prompt, use_cache=True)
|
|
38
|
+
print(f" First: cached={r1['cached']}")
|
|
39
|
+
print(f" Second: cached={r2['cached']}")
|
|
40
|
+
|
|
41
|
+
# Example 4: Batch processing
|
|
42
|
+
print("\n4. Batch processing:")
|
|
43
|
+
batch = ["Python", "JavaScript", "TypeScript", "Rust", "Go"]
|
|
44
|
+
results = [lite.process(f"What is {lang}?") for lang in batch]
|
|
45
|
+
for lang, res in zip(batch, results):
|
|
46
|
+
print(f" {lang}: {res['task_type']}")
|
|
47
|
+
|
|
48
|
+
print("\n" + "=" * 60)
|
|
49
|
+
print("Examples completed!")
|
|
50
|
+
print("=" * 60)
|
|
51
|
+
|
|
52
|
+
if __name__ == "__main__":
|
|
53
|
+
main()
|