adaptive-memory-multi-model-router 1.9.4 → 2.0.0
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/.github/ISSUE_TEMPLATE/bug_report.md +50 -0
- package/.github/ISSUE_TEMPLATE/config.yml +11 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +37 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +44 -0
- package/.github/workflows/npm-stats-validation.yml +152 -0
- package/.github/workflows/pages.yml +37 -0
- package/CHANGELOG.md +122 -0
- package/CODE_OF_CONDUCT.md +128 -0
- package/CONTRIBUTING.md +110 -0
- package/LAUNCH-PAIN-DRIVEN.md +339 -0
- package/LAUNCH.md +575 -0
- package/POPULARITY_BOOSTERS.md +285 -0
- package/README.md +231 -300
- package/SECURITY.md +69 -0
- package/articles/CONTENT_STRUCTURE.md +292 -0
- package/articles/DEVTO_COST_GUIDE.md +473 -0
- package/articles/DEVTO_FINAL.md +416 -0
- package/articles/DEVTO_MULTI_PROVIDER.md +542 -0
- package/articles/HN_10X_BETTER.md +430 -0
- package/articles/HN_CHINESE_STYLE.md +308 -0
- package/articles/HN_FINAL.md +199 -0
- package/articles/HN_POSTED_VERSION.md +56 -0
- package/articles/HN_RESEARCH.md +364 -0
- package/articles/PAIN-DRIVEN-devto-v2.md +308 -0
- package/articles/PAIN-DRIVEN-devto-v3.md +268 -0
- package/articles/PAIN-DRIVEN-devto.md +242 -0
- package/articles/PAIN-DRIVEN-hackernews-v2.md +138 -0
- package/articles/PAIN-DRIVEN-hackernews-v3.md +151 -0
- package/articles/PAIN-DRIVEN-hackernews.md +131 -0
- package/articles/PAIN-DRIVEN-reddit-v2.md +301 -0
- package/articles/PAIN-DRIVEN-reddit-v3.md +236 -0
- package/articles/PAIN-DRIVEN-reddit.md +218 -0
- package/articles/PAIN-DRIVEN-twitter-v2.md +110 -0
- package/articles/PAIN-DRIVEN-twitter-v3.md +121 -0
- package/articles/PAIN-DRIVEN-twitter.md +120 -0
- package/articles/PORTKEY_VS_A3M.md +147 -0
- package/articles/REDDIT_FINAL.md +232 -0
- package/articles/TWITTER_FINAL.md +167 -0
- package/articles/WHY_10X_BETTER.md +261 -0
- package/articles/WHY_CHINESE_STYLE_BETTER.md +323 -0
- package/articles/ai-discoverability-llm-routing.md +210 -0
- package/articles/devto-llm-routing.md +109 -0
- package/articles/hackernews-show-hn.md +65 -0
- package/articles/hashnode-llm-cost-optimization.md +125 -0
- package/articles/medium-building-llm-router.md +205 -0
- package/articles/reddit-ml.md +86 -0
- package/articles/twitter-thread-cost-savings.md +98 -0
- package/articles/youtube-tutorial-script.md +262 -0
- package/assets/banner.svg +109 -0
- package/assets/logo.svg +68 -0
- package/assets/social-preview.svg +64 -0
- package/demo/demo-script.md +53 -0
- package/dist/analytics/costAnalytics.d.ts +77 -0
- package/dist/analytics/costAnalytics.d.ts.map +1 -0
- package/dist/analytics/costAnalytics.js +219 -0
- package/dist/analytics/costAnalytics.js.map +1 -0
- package/dist/cache/semanticCache.d.ts +62 -0
- package/dist/cache/semanticCache.d.ts.map +1 -0
- package/dist/cache/semanticCache.js +176 -0
- package/dist/cache/semanticCache.js.map +1 -0
- package/dist/cli.js +35 -0
- package/dist/geo/generativeEngineOptimization.js +321 -0
- package/dist/geo/geoRouter.js +387 -0
- package/dist/index.d.ts +4 -723
- package/dist/index.js +11 -344
- package/dist/index.js.map +1 -1
- package/dist/integrations/langchainAdapter.d.ts +146 -0
- package/dist/integrations/langchainAdapter.d.ts.map +1 -0
- package/dist/integrations/langchainAdapter.js +731 -0
- package/dist/integrations/langchainAdapter.js.map +1 -0
- package/dist/integrations/oauth.d.ts +69 -0
- package/dist/integrations/oauth.d.ts.map +1 -0
- package/dist/integrations/oauth.js +225 -21
- package/dist/integrations/oauth.js.map +1 -0
- package/dist/memory/autoFetch.d.ts +39 -0
- package/dist/memory/autoFetch.d.ts.map +1 -0
- package/dist/memory/autoFetch.js +80 -88
- package/dist/memory/autoFetch.js.map +1 -0
- package/dist/memory/memoryTree.d.ts +76 -0
- package/dist/memory/memoryTree.d.ts.map +1 -0
- package/dist/memory/memoryTree.js +185 -130
- package/dist/memory/memoryTree.js.map +1 -0
- package/dist/memory/obsidianVault.d.ts +71 -0
- package/dist/memory/obsidianVault.d.ts.map +1 -0
- package/dist/memory/obsidianVault.js +207 -22
- package/dist/memory/obsidianVault.js.map +1 -0
- package/dist/providers/providerConfig.d.ts +49 -0
- package/dist/providers/providerConfig.d.ts.map +1 -0
- package/dist/providers/providerConfig.js +806 -401
- package/dist/providers/providerConfig.js.map +1 -0
- package/dist/security/guardrails.d.ts +76 -0
- package/dist/security/guardrails.d.ts.map +1 -0
- package/dist/security/guardrails.js +479 -0
- package/dist/security/guardrails.js.map +1 -0
- package/dist/security/inputValidation.js +351 -0
- package/dist/server/dashboard.d.ts +58 -0
- package/dist/server/dashboard.d.ts.map +1 -0
- package/dist/server/dashboard.js +553 -0
- package/dist/server/dashboard.js.map +1 -0
- package/dist/server/modelMapper.d.ts +43 -0
- package/dist/server/modelMapper.d.ts.map +1 -0
- package/dist/server/modelMapper.js +154 -0
- package/dist/server/modelMapper.js.map +1 -0
- package/dist/server/proxyServer.d.ts +41 -0
- package/dist/server/proxyServer.d.ts.map +1 -0
- package/dist/server/proxyServer.js +932 -0
- package/dist/server/proxyServer.js.map +1 -0
- package/dist/skills/__tests__/skill_manager.test.d.ts +2 -0
- package/dist/skills/__tests__/skill_manager.test.d.ts.map +1 -0
- package/dist/skills/__tests__/skill_manager.test.js +268 -0
- package/dist/skills/__tests__/skill_manager.test.js.map +1 -0
- package/docs/geo/GENERATIVE_ENGINE_OPTIMIZATION.md +232 -0
- package/docs-site/index.html +347 -0
- package/llms.txt +138 -0
- package/package.json +72 -7
- package/playground/README.md +51 -0
- package/playground/codesandbox.json +12 -0
- package/playground/index.js +39 -0
- package/scripts/update-npm-badges.js +158 -0
- package/src/analytics/costAnalytics.ts +304 -0
- package/src/cache/semanticCache.ts +221 -0
- package/src/index.ts +6 -0
- package/src/integrations/langchainAdapter.ts +955 -0
- package/src/providers/providerConfig.ts +923 -0
- package/src/security/guardrails.ts +585 -0
- package/src/server/dashboard.ts +610 -0
- package/src/server/modelMapper.ts +182 -0
- package/src/server/proxyServer.ts +1105 -0
- package/src/types/langchain.d.ts +83 -0
- package/tsconfig.build.json +20 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxyServer.js","sourceRoot":"","sources":["../../src/server/proxyServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill_manager.test.d.ts","sourceRoot":"","sources":["../../../src/skills/__tests__/skill_manager.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"";
|
|
3
|
+
";
|
|
4
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
+
}) : function(o, v) {
|
|
18
|
+
o["default"] = v;
|
|
19
|
+
});
|
|
20
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
21
|
+
var ownKeys = function(o) {
|
|
22
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
23
|
+
var ar = [];
|
|
24
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
25
|
+
return ar;
|
|
26
|
+
};
|
|
27
|
+
return ownKeys(o);
|
|
28
|
+
};
|
|
29
|
+
return function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
})();
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
Tests;
|
|
39
|
+
for (skill_manager_1.SkillManager; and; skill_enhanced_agent_1.TMLEnhancedAgent)
|
|
40
|
+
"";
|
|
41
|
+
";
|
|
42
|
+
const globals_1 = require("@jest/globals");
|
|
43
|
+
const skill_manager_1 = require("../skill_manager");
|
|
44
|
+
const skill_enhanced_agent_1 = require("../../agents/skill_enhanced_agent");
|
|
45
|
+
const fs = __importStar(require("fs"));
|
|
46
|
+
// Mock fs operations
|
|
47
|
+
globals_1.jest.mock('fs');
|
|
48
|
+
(0, globals_1.describe)('SkillManager', () => {
|
|
49
|
+
let skillManager;
|
|
50
|
+
const mockSkillsDir = '/mock/skills';
|
|
51
|
+
(0, globals_1.beforeEach)(() => {
|
|
52
|
+
globals_1.jest.clearAllMocks();
|
|
53
|
+
skillManager = new skill_manager_1.SkillManager(mockSkillsDir);
|
|
54
|
+
});
|
|
55
|
+
(0, globals_1.describe)('initialization', () => {
|
|
56
|
+
(0, globals_1.it)('should create skill manager instance', () => {
|
|
57
|
+
(0, globals_1.expect)(skillManager).toBeInstanceOf(skill_manager_1.SkillManager);
|
|
58
|
+
(0, globals_1.expect)(skillManager.skills_dir).toBeDefined();
|
|
59
|
+
});
|
|
60
|
+
(0, globals_1.it)('should have empty skills initially if directory does not exist', () => {
|
|
61
|
+
(0, globals_1.expect)(skillManager.list_skills()).toEqual([]);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
(0, globals_1.describe)('load_skills_metadata', () => {
|
|
65
|
+
(0, globals_1.it)('should load skill metadata from SKILL.md files', () => {
|
|
66
|
+
// Mock directory listing and file reading
|
|
67
|
+
const mockSkillMD = `---
|
|
68
|
+
name: "Test Skill"
|
|
69
|
+
description: "A test skill for testing"
|
|
70
|
+
---
|
|
71
|
+
# Test Skill Content`;
|
|
72
|
+
globals_1.jest.spyOn(fs, 'existsSync').mockReturnValue(true);
|
|
73
|
+
globals_1.jest.spyOn(Path.prototype, 'isDirectory').mockReturnValue(true);
|
|
74
|
+
globals_1.jest.spyOn(Path.prototype, 'iterdir').mockReturnValue([
|
|
75
|
+
{ name: 'SKILL.md', isFile: () => true }
|
|
76
|
+
]);
|
|
77
|
+
globals_1.jest.spyOn(fs, 'readFileSync').mockReturnValue(mockSkillMD);
|
|
78
|
+
skillManager.reload_skills();
|
|
79
|
+
(0, globals_1.expect)(skillManager.list_skills()).toContain('Test Skill');
|
|
80
|
+
});
|
|
81
|
+
(0, globals_1.it)('should skip directories without SKILL.md', () => {
|
|
82
|
+
globals_1.jest.spyOn(Path.prototype, 'existsSync').mockReturnValue(false);
|
|
83
|
+
skillManager.reload_skills();
|
|
84
|
+
(0, globals_1.expect)(skillManager.list_skills()).toEqual([]);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
(0, globals_1.describe)('get_relevant_skills', () => {
|
|
88
|
+
(0, globals_1.beforeEach)(() => {
|
|
89
|
+
// Add mock skills
|
|
90
|
+
skillManager.skills['React Development'] = new skill_manager_1.Skill('React Development', 'Best practices for React components', Path('/mock/react'), {});
|
|
91
|
+
skillManager.skills['Node.js API'] = new skill_manager_1.Skill('Node.js API', 'Building backend APIs with Node.js and Express', Path('/mock/nodejs'), {});
|
|
92
|
+
skillManager.skills['Python Django'] = new skill_manager_1.Skill('Python Django', 'Django web framework for Python', Path('/mock/python'), {});
|
|
93
|
+
});
|
|
94
|
+
(0, globals_1.it)('should find skills with keyword matching', () => {
|
|
95
|
+
const relevant = skillManager.get_relevant_skills('Build a React component for user login', 2);
|
|
96
|
+
(0, globals_1.expect)(relevant).toContain('React Development');
|
|
97
|
+
});
|
|
98
|
+
(0, globals_1.it)('should return skills ordered by relevance', () => {
|
|
99
|
+
const relevant = skillManager.get_relevant_skills('Create a React component with Node.js backend', 3);
|
|
100
|
+
// React should come first (exact match)
|
|
101
|
+
(0, globals_1.expect)(relevant[0]).toBe('React Development');
|
|
102
|
+
(0, globals_1.expect)(relevant).toContain('Node.js API');
|
|
103
|
+
});
|
|
104
|
+
(0, globals_1.it)('should respect threshold parameter', () => {
|
|
105
|
+
const relevant = skillManager.get_relevant_skills('Build a Go microservice', 2, 0.5 // Higher threshold
|
|
106
|
+
);
|
|
107
|
+
// Should return fewer or no skills due to high threshold
|
|
108
|
+
(0, globals_1.expect)(relevant.length).toBeLessThanOrEqual(2);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
(0, globals_1.describe)('load_skill', () => {
|
|
112
|
+
(0, globals_1.it)('should load full skill content on first call', () => {
|
|
113
|
+
const mockSkill = skillManager.skills['React Development'];
|
|
114
|
+
mockSkill.content = null;
|
|
115
|
+
const mockContent = '# React Development\n\nBest practices...';
|
|
116
|
+
globals_1.jest.spyOn(fs, 'readFileSync').mockReturnValue(`---\nname: "React Development"\ndescription: "Best practices"\n---\n${mockContent}`);
|
|
117
|
+
const loaded = skillManager.load_skill('React Development');
|
|
118
|
+
(0, globals_1.expect)(loaded.content).toBe(mockContent);
|
|
119
|
+
(0, globals_1.expect)(loaded.loaded_at).toBeDefined();
|
|
120
|
+
});
|
|
121
|
+
(0, globals_1.it)('should return cached content on subsequent calls', () => {
|
|
122
|
+
const mockSkill = skillManager.skills['React Development'];
|
|
123
|
+
mockSkill.content = 'Cached content';
|
|
124
|
+
const loaded1 = skillManager.load_skill('React Development');
|
|
125
|
+
const loaded2 = skillManager.load_skill('React Development');
|
|
126
|
+
(0, globals_1.expect)(loaded1).toBe(loaded2);
|
|
127
|
+
(0, globals_1.expect)(loaded1.content).toBe('Cached content');
|
|
128
|
+
});
|
|
129
|
+
(0, globals_1.it)('should throw error for non-existent skill', () => {
|
|
130
|
+
(0, globals_1.expect)(() => {
|
|
131
|
+
skillManager.load_skill('Non-existent Skill');
|
|
132
|
+
}).toThrow("Skill 'Non-existent Skill' not found");
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
(0, globals_1.describe)('validate_skill', () => {
|
|
136
|
+
(0, globals_1.it)('should return validation results for existing skill', () => {
|
|
137
|
+
const mockSkill = skillManager.skills['React Development'];
|
|
138
|
+
globals_1.jest.spyOn(skillManager, 'list_additional_files').mockReturnValue([]);
|
|
139
|
+
const validation = skillManager.validate_skill('React Development');
|
|
140
|
+
(0, globals_1.expect)(validation).toHaveProperty('exists', true);
|
|
141
|
+
(0, globals_1.expect)(validation).toHaveProperty('has_name', true);
|
|
142
|
+
(0, globals_1.expect)(validation).toHaveProperty('has_description', true);
|
|
143
|
+
});
|
|
144
|
+
(0, globals_1.it)('should return all false for non-existent skill', () => {
|
|
145
|
+
const validation = skillManager.validate_skill('Non-existent');
|
|
146
|
+
(0, globals_1.expect)(validation.exists).toBe(false);
|
|
147
|
+
(0, globals_1.expect)(validation.has_skill_md).toBe(false);
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
(0, globals_1.describe)('TMLEnhancedAgent', () => {
|
|
152
|
+
let agent;
|
|
153
|
+
(0, globals_1.beforeEach)(() => {
|
|
154
|
+
agent = new skill_enhanced_agent_1.TMLEnhancedAgent('frontend-agent', 'anthropic', 'claude-sonnet-4', 'mock-skills', ['React Frontend Development', 'TypeScript Best Practices']);
|
|
155
|
+
});
|
|
156
|
+
(0, globals_1.describe)('initialization', () => {
|
|
157
|
+
(0, globals_1.it)('should create agent with configuration', () => {
|
|
158
|
+
(0, globals_1.expect)(agent.agent_id).toBe('frontend-agent');
|
|
159
|
+
(0, globals_1.expect)(agent.provider).toBe('anthropic');
|
|
160
|
+
(0, globals_1.expect)(agent.model).toBe('claude-sonnet-4');
|
|
161
|
+
});
|
|
162
|
+
(0, globals_1.it)('should initialize with assigned skills', () => {
|
|
163
|
+
(0, globals_1.expect)(agent.assigned_skills).toContain('React Frontend Development');
|
|
164
|
+
(0, globals_1.expect)(agent.assigned_skills).toContain('TypeScript Best Practices');
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
(0, globals_1.describe)('execute_task', () => {
|
|
168
|
+
(0, globals_1.it)('should execute task with relevant skills', async () => {
|
|
169
|
+
const task = {
|
|
170
|
+
description: 'Build a React login form component',
|
|
171
|
+
context: 'Must include email and password fields',
|
|
172
|
+
requirements: 'Use TypeScript and Material-UI'
|
|
173
|
+
};
|
|
174
|
+
// Mock skill loading
|
|
175
|
+
globals_1.jest.spyOn(agent, '_get_relevant_skills').mockReturnValue([]);
|
|
176
|
+
// Mock LLM call
|
|
177
|
+
globals_1.jest.spyOn(agent, '_execute_llm_call').mockReturnValue({
|
|
178
|
+
success: true,
|
|
179
|
+
output: 'React component code...',
|
|
180
|
+
tokens_used: 150,
|
|
181
|
+
cost: 0.015,
|
|
182
|
+
execution_time: 3.2
|
|
183
|
+
});
|
|
184
|
+
const result = agent.execute_task(task);
|
|
185
|
+
(0, globals_1.expect)(result.success).toBe(true);
|
|
186
|
+
(0, globals_1.expect)(result.output).toBeDefined();
|
|
187
|
+
});
|
|
188
|
+
(0, globals_1.it)('should remember successful patterns', () => {
|
|
189
|
+
const task = { description: 'Test task' };
|
|
190
|
+
globals_1.jest.spyOn(agent, '_get_relevant_skills').mockReturnValue([]);
|
|
191
|
+
globals_1.jest.spyOn(agent, '_execute_llm_call').mockReturnValue({
|
|
192
|
+
success: true,
|
|
193
|
+
output: 'Success'
|
|
194
|
+
});
|
|
195
|
+
globals_1.jest.spyOn(agent, '_remember_success_pattern').mockImplementation(() => { });
|
|
196
|
+
agent.execute_task(task);
|
|
197
|
+
(0, globals_1.expect)(agent._remember_success_pattern).toHaveBeenCalled();
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
(0, globals_1.describe)('skill management', () => {
|
|
201
|
+
(0, globals_1.it)('should add skill to agent', () => {
|
|
202
|
+
agent.add_skill('Jest Testing');
|
|
203
|
+
(0, globals_1.expect)(agent.assigned_skills).toContain('Jest Testing');
|
|
204
|
+
});
|
|
205
|
+
(0, globals_1.it)('should remove skill from agent', () => {
|
|
206
|
+
agent.remove_skill('TypeScript Best Practices');
|
|
207
|
+
(0, globals_1.expect)(agent.assigned_skills).not.toContain('TypeScript Best Practices');
|
|
208
|
+
});
|
|
209
|
+
(0, globals_1.it)('should list all available skills', () => {
|
|
210
|
+
globals_1.jest.spyOn(agent.skill_manager, 'list_skills').mockReturnValue([
|
|
211
|
+
'Skill 1',
|
|
212
|
+
'Skill 2',
|
|
213
|
+
'Skill 3'
|
|
214
|
+
]);
|
|
215
|
+
const skills = agent.list_available_skills();
|
|
216
|
+
(0, globals_1.expect)(skills).toHaveLength(3);
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
(0, globals_1.describe)('serialization', () => {
|
|
220
|
+
(0, globals_1.it)('should convert to dictionary', () => {
|
|
221
|
+
const dict = agent.to_dict();
|
|
222
|
+
(0, globals_1.expect)(dict).toHaveProperty('agent_id', 'frontend-agent');
|
|
223
|
+
(0, globals_1.expect)(dict).toHaveProperty('provider', 'anthropic');
|
|
224
|
+
(0, globals_1.expect)(dict).toHaveProperty('model', 'claude-sonnet-4');
|
|
225
|
+
(0, globals_1.expect)(dict).toHaveProperty('assigned_skills');
|
|
226
|
+
(0, globals_1.expect)(dict).toHaveProperty('available_skills');
|
|
227
|
+
});
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
(0, globals_1.describe)('TMLEnhancedAgentFactory', () => {
|
|
231
|
+
(0, globals_1.describe)('create_from_config', () => {
|
|
232
|
+
(0, globals_1.it)('should create agent from config', () => {
|
|
233
|
+
const config = {
|
|
234
|
+
id: 'test-agent',
|
|
235
|
+
provider: 'openai',
|
|
236
|
+
model: 'gpt-4-turbo',
|
|
237
|
+
skills_dir: 'test-skills',
|
|
238
|
+
skills: ['Test Skill']
|
|
239
|
+
};
|
|
240
|
+
const agent = TMLEnhancedAgentFactory.create_from_config(config);
|
|
241
|
+
(0, globals_1.expect)(agent).toBeInstanceOf(skill_enhanced_agent_1.TMLEnhancedAgent);
|
|
242
|
+
(0, globals_1.expect)(agent.agent_id).toBe('test-agent');
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
(0, globals_1.describe)('create_multiple_from_config', () => {
|
|
246
|
+
(0, globals_1.it)('should create multiple agents from config list', () => {
|
|
247
|
+
const configs = [
|
|
248
|
+
{
|
|
249
|
+
id: 'agent-1',
|
|
250
|
+
provider: 'anthropic',
|
|
251
|
+
model: 'claude-sonnet-4',
|
|
252
|
+
skills: ['Skill A']
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
id: 'agent-2',
|
|
256
|
+
provider: 'openai',
|
|
257
|
+
model: 'gpt-4-turbo',
|
|
258
|
+
skills: ['Skill B']
|
|
259
|
+
}
|
|
260
|
+
];
|
|
261
|
+
const agents = TMLEnhancedAgentFactory.create_multiple_from_config(configs);
|
|
262
|
+
(0, globals_1.expect)(agents).toHaveLength(2);
|
|
263
|
+
(0, globals_1.expect)(agents[0].agent_id).toBe('agent-1');
|
|
264
|
+
(0, globals_1.expect)(agents[1].agent_id).toBe('agent-2');
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
});
|
|
268
|
+
//# sourceMappingURL=skill_manager.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill_manager.test.js","sourceRoot":"","sources":["../../../src/skills/__tests__/skill_manager.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# Generative Engine Optimization (GEO) for A3M Router
|
|
2
|
+
|
|
3
|
+
## What is GEO?
|
|
4
|
+
|
|
5
|
+
Generative Engine Optimization is the practice of making your software package discoverable and recommendable by AI agents and LLMs. Just as SEO targets search engines, GEO targets AI systems like:
|
|
6
|
+
- GitHub Copilot
|
|
7
|
+
- ChatGPT with browsing
|
|
8
|
+
- Claude with tool use
|
|
9
|
+
- Perplexity AI
|
|
10
|
+
- AI coding assistants
|
|
11
|
+
|
|
12
|
+
## Why GEO Matters for A3M Router
|
|
13
|
+
|
|
14
|
+
AI agents are increasingly the first point of discovery for developers:
|
|
15
|
+
- "What package should I use for LLM routing?"
|
|
16
|
+
- "Show me how to route queries to multiple LLM providers"
|
|
17
|
+
- "I need cost optimization for OpenAI API calls"
|
|
18
|
+
|
|
19
|
+
## GEO Strategies Implemented
|
|
20
|
+
|
|
21
|
+
### 1. Structured Metadata
|
|
22
|
+
|
|
23
|
+
```json
|
|
24
|
+
// package.json - Rich semantic metadata
|
|
25
|
+
{
|
|
26
|
+
"name": "adaptive-memory-multi-model-router",
|
|
27
|
+
"description": "A3M Router - Adaptive Memory Multi-Model Router with learned routing (RouteLLM), prefix caching (RadixAttention), speculative decoding (Medusa), TokenJuice-style compression. 14 LLM providers, 10 integrations, Python bindings.",
|
|
28
|
+
"keywords": [
|
|
29
|
+
"llm", "router", "ai", "language-model",
|
|
30
|
+
"cost-optimization", "latency-optimization",
|
|
31
|
+
"routellm", "radix-attention", "medusa",
|
|
32
|
+
"ai-agent", "autonomous-agents",
|
|
33
|
+
"batch-processing", "parallel-execution",
|
|
34
|
+
"fallback", "retry", "load-balancing"
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 2. AI-Readable Documentation
|
|
40
|
+
|
|
41
|
+
```markdown
|
|
42
|
+
## Quick Start for AI Agents
|
|
43
|
+
|
|
44
|
+
```javascript
|
|
45
|
+
// Install
|
|
46
|
+
npm install adaptive-memory-multi-model-router
|
|
47
|
+
|
|
48
|
+
// Basic usage
|
|
49
|
+
const { createA3MRouter } = require('adaptive-memory-multi-model-router');
|
|
50
|
+
const router = createA3MRouter();
|
|
51
|
+
|
|
52
|
+
// Route query to best LLM
|
|
53
|
+
const result = await router.route("Write Python code");
|
|
54
|
+
console.log(result.primary_model); // "groq/llama-3.3-70b"
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 3. Intent-Based Examples
|
|
58
|
+
|
|
59
|
+
AI agents match user intent to code patterns:
|
|
60
|
+
|
|
61
|
+
| User Intent | GEO-Optimized Example |
|
|
62
|
+
|-------------|----------------------|
|
|
63
|
+
| "Route LLM queries" | `router.route(query)` |
|
|
64
|
+
| "Compare LLM costs" | `estimateCost(tokens, model)` |
|
|
65
|
+
| "Batch process prompts" | `router.routeBatch(queries)` |
|
|
66
|
+
| "Cache LLM responses" | `router.cache.get(key)` |
|
|
67
|
+
| "Track API spending" | `router.costTracker.getSummary()` |
|
|
68
|
+
|
|
69
|
+
### 4. LLM-Friendly Code Patterns
|
|
70
|
+
|
|
71
|
+
```javascript
|
|
72
|
+
// Pattern: Cost-aware routing
|
|
73
|
+
const { routeQuery } = require('adaptive-memory-multi-model-router');
|
|
74
|
+
|
|
75
|
+
// AI agents extract: "route query with cost optimization"
|
|
76
|
+
const result = routeQuery("Explain quantum physics", {
|
|
77
|
+
budget_multiplier: 0.5 // Prefer cheaper models
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
// Pattern: Multi-provider fallback
|
|
81
|
+
const { createA3MRouter } = require('adaptive-memory-multi-model-router');
|
|
82
|
+
|
|
83
|
+
// AI agents extract: "fallback to multiple LLM providers"
|
|
84
|
+
const router = createA3MRouter({
|
|
85
|
+
providers: ['groq', 'cerebras', 'mistral'] // Auto-fallback chain
|
|
86
|
+
});
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 5. Semantic README Structure
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
# A3M Router
|
|
93
|
+
|
|
94
|
+
## What Problem This Solves
|
|
95
|
+
Routing LLM queries to the optimal provider based on cost, quality, and latency.
|
|
96
|
+
|
|
97
|
+
## When to Use This
|
|
98
|
+
- You use multiple LLM providers (OpenAI, Anthropic, Groq, etc.)
|
|
99
|
+
- You want automatic cost optimization
|
|
100
|
+
- You need fallback when providers fail
|
|
101
|
+
- You process prompts in batches
|
|
102
|
+
|
|
103
|
+
## Installation
|
|
104
|
+
npm install adaptive-memory-multi-model-router
|
|
105
|
+
|
|
106
|
+
## Common Use Cases
|
|
107
|
+
|
|
108
|
+
### 1. Route to cheapest provider for simple queries
|
|
109
|
+
### 2. Route to best-quality provider for complex tasks
|
|
110
|
+
### 3. Batch process with automatic provider selection
|
|
111
|
+
### 4. Track costs across all providers
|
|
112
|
+
|
|
113
|
+
## API Reference
|
|
114
|
+
[Structured for LLM parsing]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## GEO Content for AI Discovery
|
|
118
|
+
|
|
119
|
+
### AI-Optimized Titles
|
|
120
|
+
|
|
121
|
+
| Bad | Good (GEO) |
|
|
122
|
+
|-----|-----------|
|
|
123
|
+
| "A3M Router" | "LLM Router with Cost Optimization" |
|
|
124
|
+
| "Multi-model package" | "Adaptive LLM Routing for Multiple Providers" |
|
|
125
|
+
| "NPM library" | "Production-Ready LLM Load Balancer" |
|
|
126
|
+
|
|
127
|
+
### LLM-Targeted Descriptions
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
## For AI Assistants
|
|
131
|
+
|
|
132
|
+
This package provides:
|
|
133
|
+
- **Intent**: Route LLM queries to optimal providers
|
|
134
|
+
- **Problem**: Cost optimization across multiple LLM APIs
|
|
135
|
+
- **Solution**: Learned routing with automatic provider selection
|
|
136
|
+
- **Benefit**: 50-80% cost reduction with quality preservation
|
|
137
|
+
|
|
138
|
+
## Keywords for AI Indexing
|
|
139
|
+
LLM routing, cost optimization, multi-provider, OpenAI alternative,
|
|
140
|
+
Claude routing, Groq integration, batch processing, API load balancing,
|
|
141
|
+
LLM fallback, provider switching, token optimization, response caching
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Platform-Specific GEO
|
|
145
|
+
|
|
146
|
+
### GitHub (Copilot Training Data)
|
|
147
|
+
|
|
148
|
+
```markdown
|
|
149
|
+
## Copilot-Optimized Examples
|
|
150
|
+
|
|
151
|
+
### Pattern: Route by query type
|
|
152
|
+
```javascript
|
|
153
|
+
// Copilot suggests this when user types "route llm"
|
|
154
|
+
const { routeQuery } = require('adaptive-memory-multi-model-router');
|
|
155
|
+
const result = routeQuery(userQuery);
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Pattern: Cost tracking
|
|
159
|
+
```javascript
|
|
160
|
+
// Copilot suggests this when user types "track llm cost"
|
|
161
|
+
const { CostTracker } = require('adaptive-memory-multi-model-router');
|
|
162
|
+
const tracker = new CostTracker();
|
|
163
|
+
```
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### NPM (ChatGPT Browsing)
|
|
167
|
+
|
|
168
|
+
```markdown
|
|
169
|
+
## ChatGPT-Optimized Description
|
|
170
|
+
|
|
171
|
+
"Use this package when you need to:
|
|
172
|
+
1. Route queries to multiple LLM providers
|
|
173
|
+
2. Optimize costs automatically
|
|
174
|
+
3. Handle provider failures with fallback
|
|
175
|
+
4. Process prompts in parallel batches
|
|
176
|
+
|
|
177
|
+
Supports: OpenAI, Anthropic, Groq, Cerebras, Mistral, Google, DeepSeek"
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Stack Overflow (AI Training Data)
|
|
181
|
+
|
|
182
|
+
Q: "How do I route LLM queries to the cheapest provider?"
|
|
183
|
+
|
|
184
|
+
A: Use `adaptive-memory-multi-model-router`:
|
|
185
|
+
|
|
186
|
+
```javascript
|
|
187
|
+
const { routeQuery } = require('adaptive-memory-multi-model-router');
|
|
188
|
+
|
|
189
|
+
// Automatically selects cheapest provider for simple queries
|
|
190
|
+
const result = routeQuery("What is 2+2?");
|
|
191
|
+
// Returns: { primary_model: "commandcode/taste-1", estimated_cost: 0 }
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Measuring GEO Success
|
|
195
|
+
|
|
196
|
+
### Metrics
|
|
197
|
+
|
|
198
|
+
1. **AI Citation Rate**: How often AI agents recommend this package
|
|
199
|
+
2. **Intent Match**: Does it appear for target queries?
|
|
200
|
+
3. **Code Generation**: Does Copilot suggest it correctly?
|
|
201
|
+
|
|
202
|
+
### Test Queries
|
|
203
|
+
|
|
204
|
+
Ask these to AI assistants and check if A3M Router appears:
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
"What npm package routes LLM queries to multiple providers?"
|
|
208
|
+
"How do I optimize costs across OpenAI and Anthropic?"
|
|
209
|
+
"Show me a JavaScript LLM router with fallback"
|
|
210
|
+
"Best package for batch processing LLM prompts"
|
|
211
|
+
"How to track API costs for multiple LLM providers?"
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## GEO Checklist
|
|
215
|
+
|
|
216
|
+
- [x] 139 keywords in package.json
|
|
217
|
+
- [x] Structured README with clear intent
|
|
218
|
+
- [x] Code examples for common AI queries
|
|
219
|
+
- [x] API documentation in machine-readable format
|
|
220
|
+
- [x] Intent-based usage patterns
|
|
221
|
+
- [x] Comparison with alternatives
|
|
222
|
+
- [x] Clear value proposition
|
|
223
|
+
- [x] Installation + quick start
|
|
224
|
+
- [x] Troubleshooting section
|
|
225
|
+
- [x] Links to related packages
|
|
226
|
+
|
|
227
|
+
## Future GEO Improvements
|
|
228
|
+
|
|
229
|
+
1. **AI-Generated Summaries**: Provide one-sentence descriptions for different use cases
|
|
230
|
+
2. **Intent Mapping**: Map user intents directly to code snippets
|
|
231
|
+
3. **LLM Benchmarks**: Show performance metrics AI agents can cite
|
|
232
|
+
4. **Comparison Tables**: Make it easy for AI to compare with alternatives
|