k0ntext 3.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/LICENSE +21 -0
- package/README.md +623 -0
- package/bin/k0ntext.js +12 -0
- package/dist/agents/cleanup-agent.d.ts +39 -0
- package/dist/agents/cleanup-agent.d.ts.map +1 -0
- package/dist/agents/cleanup-agent.js +56 -0
- package/dist/agents/cleanup-agent.js.map +1 -0
- package/dist/agents/performance-agent.d.ts +37 -0
- package/dist/agents/performance-agent.d.ts.map +1 -0
- package/dist/agents/performance-agent.js +91 -0
- package/dist/agents/performance-agent.js.map +1 -0
- package/dist/analyzer/index.d.ts +5 -0
- package/dist/analyzer/index.d.ts.map +1 -0
- package/dist/analyzer/index.js +5 -0
- package/dist/analyzer/index.js.map +1 -0
- package/dist/analyzer/intelligent-analyzer.d.ts +111 -0
- package/dist/analyzer/intelligent-analyzer.d.ts.map +1 -0
- package/dist/analyzer/intelligent-analyzer.js +537 -0
- package/dist/analyzer/intelligent-analyzer.js.map +1 -0
- package/dist/cli/commands/cleanup.d.ts +3 -0
- package/dist/cli/commands/cleanup.d.ts.map +1 -0
- package/dist/cli/commands/cleanup.js +24 -0
- package/dist/cli/commands/cleanup.js.map +1 -0
- package/dist/cli/commands/export.d.ts +9 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +72 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/import.d.ts +9 -0
- package/dist/cli/commands/import.d.ts.map +1 -0
- package/dist/cli/commands/import.js +62 -0
- package/dist/cli/commands/import.js.map +1 -0
- package/dist/cli/commands/performance.d.ts +9 -0
- package/dist/cli/commands/performance.d.ts.map +1 -0
- package/dist/cli/commands/performance.js +36 -0
- package/dist/cli/commands/performance.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +9 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +82 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/commands/watch.d.ts +9 -0
- package/dist/cli/commands/watch.d.ts.map +1 -0
- package/dist/cli/commands/watch.js +72 -0
- package/dist/cli/commands/watch.js.map +1 -0
- package/dist/cli/generate.d.ts +3 -0
- package/dist/cli/generate.d.ts.map +1 -0
- package/dist/cli/generate.js +194 -0
- package/dist/cli/generate.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +448 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/sync.d.ts +26 -0
- package/dist/cli/sync.d.ts.map +1 -0
- package/dist/cli/sync.js +163 -0
- package/dist/cli/sync.js.map +1 -0
- package/dist/config/cleanup-config.d.ts +26 -0
- package/dist/config/cleanup-config.d.ts.map +1 -0
- package/dist/config/cleanup-config.js +21 -0
- package/dist/config/cleanup-config.js.map +1 -0
- package/dist/db/client.d.ts +284 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +688 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/index.d.ts +6 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +6 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/schema.d.ts +41 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +226 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/embeddings/index.d.ts +5 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +5 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/embeddings/openrouter.d.ts +133 -0
- package/dist/embeddings/openrouter.d.ts.map +1 -0
- package/dist/embeddings/openrouter.js +455 -0
- package/dist/embeddings/openrouter.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp.d.ts +29 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +257 -0
- package/dist/mcp.js.map +1 -0
- package/docs/ARCHIVE/MIGRATE_TO_NEW_REPO.md +222 -0
- package/docs/ARCHIVE/MIGRATE_TO_UNIFIED.md +220 -0
- package/docs/CLEANUP.md +76 -0
- package/docs/MCP_QUICKSTART.md +219 -0
- package/docs/QUICKSTART.md +119 -0
- package/docs/TROUBLESHOOTING.md +611 -0
- package/package.json +100 -0
- package/skills/context-optimize/SKILL.md +86 -0
- package/skills/implement/SKILL.md +150 -0
- package/skills/plan/SKILL.md +143 -0
- package/skills/research/SKILL.md +103 -0
- package/skills/validate/SKILL.md +62 -0
- package/skills/verify-docs/SKILL.md +77 -0
- package/src/agents/cleanup-agent.ts +96 -0
- package/src/agents/performance-agent.ts +117 -0
- package/src/analyzer/index.ts +10 -0
- package/src/analyzer/intelligent-analyzer.ts +640 -0
- package/src/cli/commands/cleanup.ts +26 -0
- package/src/cli/commands/export.ts +82 -0
- package/src/cli/commands/import.ts +73 -0
- package/src/cli/commands/performance.ts +40 -0
- package/src/cli/commands/validate.ts +98 -0
- package/src/cli/commands/watch.ts +83 -0
- package/src/cli/generate.ts +219 -0
- package/src/cli/index.ts +510 -0
- package/src/cli/sync.ts +194 -0
- package/src/config/cleanup-config.ts +42 -0
- package/src/db/client.ts +949 -0
- package/src/db/index.ts +19 -0
- package/src/db/schema.ts +241 -0
- package/src/embeddings/index.ts +11 -0
- package/src/embeddings/openrouter.ts +592 -0
- package/src/index.ts +57 -0
- package/src/mcp.ts +354 -0
- package/templates/AI_CONTEXT.md.template +245 -0
- package/templates/base/README.md +260 -0
- package/templates/base/RPI_WORKFLOW_PLAN.md +325 -0
- package/templates/base/agents/api-developer.md +76 -0
- package/templates/base/agents/context-engineer.md +525 -0
- package/templates/base/agents/core-architect.md +76 -0
- package/templates/base/agents/database-ops.md +76 -0
- package/templates/base/agents/deployment-ops.md +76 -0
- package/templates/base/agents/integration-hub.md +76 -0
- package/templates/base/analytics/README.md +114 -0
- package/templates/base/automation/config.json +58 -0
- package/templates/base/automation/generators/code-mapper.js +308 -0
- package/templates/base/automation/generators/index-builder.js +321 -0
- package/templates/base/automation/hooks/post-commit.sh +83 -0
- package/templates/base/automation/hooks/pre-commit.sh +103 -0
- package/templates/base/ci-templates/README.md +108 -0
- package/templates/base/ci-templates/github-actions/context-check.yml +144 -0
- package/templates/base/ci-templates/github-actions/validate-docs.yml +105 -0
- package/templates/base/commands/analytics.md +238 -0
- package/templates/base/commands/auto-sync.md +172 -0
- package/templates/base/commands/collab.md +194 -0
- package/templates/base/commands/context-optimize.md +226 -0
- package/templates/base/commands/help.md +485 -0
- package/templates/base/commands/rpi-implement.md +164 -0
- package/templates/base/commands/rpi-plan.md +147 -0
- package/templates/base/commands/rpi-research.md +145 -0
- package/templates/base/commands/session-resume.md +144 -0
- package/templates/base/commands/session-save.md +112 -0
- package/templates/base/commands/validate-all.md +77 -0
- package/templates/base/commands/verify-docs-current.md +86 -0
- package/templates/base/config/base.json +57 -0
- package/templates/base/config/environments/development.json +13 -0
- package/templates/base/config/environments/production.json +17 -0
- package/templates/base/config/environments/staging.json +13 -0
- package/templates/base/config/local.json.example +21 -0
- package/templates/base/context/.meta/generated-at.json +18 -0
- package/templates/base/context/ARCHITECTURE_SNAPSHOT.md +156 -0
- package/templates/base/context/CODE_TO_WORKFLOW_MAP.md +94 -0
- package/templates/base/context/FILE_OWNERSHIP.md +57 -0
- package/templates/base/context/INTEGRATION_POINTS.md +92 -0
- package/templates/base/context/KNOWN_GOTCHAS.md +195 -0
- package/templates/base/context/TESTING_MAP.md +95 -0
- package/templates/base/context/WORKFLOW_INDEX.md +129 -0
- package/templates/base/context/workflows/WORKFLOW_TEMPLATE.md +294 -0
- package/templates/base/indexes/agents/CAPABILITY_MATRIX.md +255 -0
- package/templates/base/indexes/agents/CATEGORY_INDEX.md +44 -0
- package/templates/base/indexes/code/CATEGORY_INDEX.md +38 -0
- package/templates/base/indexes/routing/CATEGORY_INDEX.md +39 -0
- package/templates/base/indexes/search/CATEGORY_INDEX.md +39 -0
- package/templates/base/indexes/workflows/CATEGORY_INDEX.md +38 -0
- package/templates/base/knowledge/README.md +98 -0
- package/templates/base/knowledge/sessions/README.md +88 -0
- package/templates/base/knowledge/sessions/TEMPLATE.md +150 -0
- package/templates/base/knowledge/shared/decisions/0001-adopt-context-engineering.md +144 -0
- package/templates/base/knowledge/shared/decisions/README.md +49 -0
- package/templates/base/knowledge/shared/decisions/TEMPLATE.md +123 -0
- package/templates/base/knowledge/shared/patterns/README.md +62 -0
- package/templates/base/knowledge/shared/patterns/TEMPLATE.md +120 -0
- package/templates/base/plans/PLAN_TEMPLATE.md +316 -0
- package/templates/base/plans/active/.gitkeep +0 -0
- package/templates/base/plans/completed/.gitkeep +0 -0
- package/templates/base/research/RESEARCH_TEMPLATE.md +245 -0
- package/templates/base/research/active/.gitkeep +0 -0
- package/templates/base/research/completed/.gitkeep +0 -0
- package/templates/base/schemas/agent.schema.json +141 -0
- package/templates/base/schemas/anchors.schema.json +54 -0
- package/templates/base/schemas/automation.schema.json +93 -0
- package/templates/base/schemas/command.schema.json +134 -0
- package/templates/base/schemas/hashes.schema.json +40 -0
- package/templates/base/schemas/manifest.schema.json +117 -0
- package/templates/base/schemas/plan.schema.json +136 -0
- package/templates/base/schemas/research.schema.json +115 -0
- package/templates/base/schemas/roles.schema.json +34 -0
- package/templates/base/schemas/session.schema.json +77 -0
- package/templates/base/schemas/settings.schema.json +244 -0
- package/templates/base/schemas/staleness.schema.json +53 -0
- package/templates/base/schemas/team-config.schema.json +42 -0
- package/templates/base/schemas/workflow.schema.json +126 -0
- package/templates/base/session/checkpoints/.gitkeep +2 -0
- package/templates/base/session/current/state.json +20 -0
- package/templates/base/session/history/.gitkeep +2 -0
- package/templates/base/settings.json +3 -0
- package/templates/base/standards/COMPATIBILITY.md +219 -0
- package/templates/base/standards/EXTENSION_GUIDELINES.md +280 -0
- package/templates/base/standards/QUALITY_CHECKLIST.md +211 -0
- package/templates/base/standards/README.md +66 -0
- package/templates/base/sync/anchors.json +6 -0
- package/templates/base/sync/hashes.json +6 -0
- package/templates/base/sync/staleness.json +10 -0
- package/templates/base/team/README.md +168 -0
- package/templates/base/team/config.json +79 -0
- package/templates/base/team/roles.json +145 -0
- package/templates/base/tools/bin/claude-context.js +151 -0
- package/templates/base/tools/lib/anchor-resolver.js +276 -0
- package/templates/base/tools/lib/config-loader.js +363 -0
- package/templates/base/tools/lib/detector.js +350 -0
- package/templates/base/tools/lib/diagnose.js +206 -0
- package/templates/base/tools/lib/drift-detector.js +373 -0
- package/templates/base/tools/lib/errors.js +199 -0
- package/templates/base/tools/lib/index.js +36 -0
- package/templates/base/tools/lib/init.js +192 -0
- package/templates/base/tools/lib/logger.js +230 -0
- package/templates/base/tools/lib/placeholder.js +201 -0
- package/templates/base/tools/lib/session-manager.js +354 -0
- package/templates/base/tools/lib/validate.js +521 -0
- package/templates/base/tools/package.json +49 -0
- package/templates/handlebars/aider-config.hbs +146 -0
- package/templates/handlebars/antigravity.hbs +377 -0
- package/templates/handlebars/claude.hbs +183 -0
- package/templates/handlebars/cline.hbs +62 -0
- package/templates/handlebars/continue-config.hbs +116 -0
- package/templates/handlebars/copilot.hbs +130 -0
- package/templates/handlebars/partials/gotcha-list.hbs +11 -0
- package/templates/handlebars/partials/header.hbs +3 -0
- package/templates/handlebars/partials/workflow-summary.hbs +16 -0
- package/templates/handlebars/windsurf-rules.hbs +69 -0
- package/templates/hooks/post-commit.hbs +28 -0
- package/templates/hooks/pre-commit.hbs +46 -0
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenRouter Client
|
|
3
|
+
*
|
|
4
|
+
* Client for OpenRouter API supporting both embeddings and chat completions.
|
|
5
|
+
* Used for intelligent initialization and context understanding.
|
|
6
|
+
*/
|
|
7
|
+
import { createHash } from 'crypto';
|
|
8
|
+
/**
|
|
9
|
+
* OpenRouter API endpoints
|
|
10
|
+
*/
|
|
11
|
+
const OPENROUTER_EMBEDDINGS_URL = 'https://openrouter.ai/api/v1/embeddings';
|
|
12
|
+
const OPENROUTER_CHAT_URL = 'https://openrouter.ai/api/v1/chat/completions';
|
|
13
|
+
/**
|
|
14
|
+
* Default models
|
|
15
|
+
*/
|
|
16
|
+
const DEFAULT_EMBEDDING_MODEL = 'openai/text-embedding-3-small';
|
|
17
|
+
const DEFAULT_CHAT_MODEL = 'anthropic/claude-3-haiku';
|
|
18
|
+
const EMBEDDING_DIMENSION = 1536;
|
|
19
|
+
/**
|
|
20
|
+
* OpenRouter-specific error types
|
|
21
|
+
*/
|
|
22
|
+
export class OpenRouterError extends Error {
|
|
23
|
+
code;
|
|
24
|
+
constructor(message, code) {
|
|
25
|
+
super(message);
|
|
26
|
+
this.code = code;
|
|
27
|
+
this.name = 'OpenRouterError';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export class OpenRouterRateLimitError extends OpenRouterError {
|
|
31
|
+
retryAfter;
|
|
32
|
+
constructor(message, retryAfter) {
|
|
33
|
+
super(message, 'RATE_LIMIT');
|
|
34
|
+
this.retryAfter = retryAfter;
|
|
35
|
+
this.name = 'OpenRouterRateLimitError';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class OpenRouterAuthError extends OpenRouterError {
|
|
39
|
+
constructor(message) {
|
|
40
|
+
super(message, 'AUTH_ERROR');
|
|
41
|
+
this.name = 'OpenRouterAuthError';
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export class OpenRouterTimeoutError extends OpenRouterError {
|
|
45
|
+
constructor(message) {
|
|
46
|
+
super(message, 'TIMEOUT');
|
|
47
|
+
this.name = 'OpenRouterTimeoutError';
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* OpenRouter client for embeddings and chat
|
|
52
|
+
*/
|
|
53
|
+
export class OpenRouterClient {
|
|
54
|
+
apiKey;
|
|
55
|
+
embeddingModel;
|
|
56
|
+
chatModel;
|
|
57
|
+
siteUrl;
|
|
58
|
+
siteName;
|
|
59
|
+
embeddingCache = new Map();
|
|
60
|
+
/**
|
|
61
|
+
* Retry configuration
|
|
62
|
+
*/
|
|
63
|
+
maxRetries = 3;
|
|
64
|
+
baseRetryDelay = 1000; // ms
|
|
65
|
+
/**
|
|
66
|
+
* Rate limiting configuration
|
|
67
|
+
*/
|
|
68
|
+
minRequestInterval;
|
|
69
|
+
lastRequestTime = 0;
|
|
70
|
+
/**
|
|
71
|
+
* Timeout configuration
|
|
72
|
+
*/
|
|
73
|
+
requestTimeout;
|
|
74
|
+
/**
|
|
75
|
+
* Sleep for specified milliseconds
|
|
76
|
+
*/
|
|
77
|
+
sleep(ms) {
|
|
78
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Create a timeout promise that rejects after specified milliseconds
|
|
82
|
+
*/
|
|
83
|
+
createTimeoutPromise(ms) {
|
|
84
|
+
return new Promise((_, reject) => {
|
|
85
|
+
setTimeout(() => {
|
|
86
|
+
reject(new OpenRouterTimeoutError(`Request timed out after ${ms}ms`));
|
|
87
|
+
}, ms);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Wrap a fetch promise with timeout
|
|
92
|
+
*/
|
|
93
|
+
async fetchWithTimeout(url, options, timeout) {
|
|
94
|
+
return Promise.race([
|
|
95
|
+
fetch(url, options),
|
|
96
|
+
this.createTimeoutPromise(timeout)
|
|
97
|
+
]);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Apply rate limiting before API requests
|
|
101
|
+
*/
|
|
102
|
+
async applyRateLimit() {
|
|
103
|
+
const now = Date.now();
|
|
104
|
+
const timeSinceLastRequest = now - this.lastRequestTime;
|
|
105
|
+
if (timeSinceLastRequest < this.minRequestInterval) {
|
|
106
|
+
const waitTime = this.minRequestInterval - timeSinceLastRequest;
|
|
107
|
+
await this.sleep(waitTime);
|
|
108
|
+
}
|
|
109
|
+
this.lastRequestTime = Date.now();
|
|
110
|
+
}
|
|
111
|
+
constructor(config) {
|
|
112
|
+
if (!config.apiKey) {
|
|
113
|
+
throw new Error('OPENROUTER_API_KEY is required');
|
|
114
|
+
}
|
|
115
|
+
this.apiKey = config.apiKey;
|
|
116
|
+
this.embeddingModel = config.embeddingModel || DEFAULT_EMBEDDING_MODEL;
|
|
117
|
+
this.chatModel = config.chatModel || DEFAULT_CHAT_MODEL;
|
|
118
|
+
this.siteUrl = config.siteUrl || 'https://github.com/SireJeff/claude-context-engineering-template';
|
|
119
|
+
this.siteName = config.siteName || 'AI Context';
|
|
120
|
+
this.minRequestInterval = config.minRequestInterval || 100; // ms between requests
|
|
121
|
+
this.requestTimeout = config.requestTimeout || 30000; // 30 seconds default
|
|
122
|
+
this.lastRequestTime = 0;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Generate embedding for a single text
|
|
126
|
+
*/
|
|
127
|
+
async embed(text) {
|
|
128
|
+
// Check cache
|
|
129
|
+
const cacheKey = this.hashText(text);
|
|
130
|
+
if (this.embeddingCache.has(cacheKey)) {
|
|
131
|
+
return this.embeddingCache.get(cacheKey);
|
|
132
|
+
}
|
|
133
|
+
let lastError = null;
|
|
134
|
+
for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
|
|
135
|
+
try {
|
|
136
|
+
// Apply rate limiting before each attempt
|
|
137
|
+
await this.applyRateLimit();
|
|
138
|
+
const response = await this.fetchWithTimeout(OPENROUTER_EMBEDDINGS_URL, {
|
|
139
|
+
method: 'POST',
|
|
140
|
+
headers: {
|
|
141
|
+
'Authorization': `Bearer ${this.apiKey}`,
|
|
142
|
+
'Content-Type': 'application/json',
|
|
143
|
+
'HTTP-Referer': this.siteUrl,
|
|
144
|
+
'X-Title': this.siteName
|
|
145
|
+
},
|
|
146
|
+
body: JSON.stringify({
|
|
147
|
+
model: this.embeddingModel,
|
|
148
|
+
input: text
|
|
149
|
+
})
|
|
150
|
+
}, this.requestTimeout);
|
|
151
|
+
if (!response.ok) {
|
|
152
|
+
const error = await response.text();
|
|
153
|
+
// Don't retry auth errors
|
|
154
|
+
if (response.status === 401 || response.status === 403) {
|
|
155
|
+
throw new OpenRouterAuthError(`Authentication failed: ${error}`);
|
|
156
|
+
}
|
|
157
|
+
// Rate limit errors - check for retry-after header
|
|
158
|
+
if (response.status === 429) {
|
|
159
|
+
const retryAfter = response.headers.get('Retry-After');
|
|
160
|
+
throw new OpenRouterRateLimitError(`Rate limit exceeded: ${error}`, retryAfter ? parseInt(retryAfter, 10) : undefined);
|
|
161
|
+
}
|
|
162
|
+
throw new OpenRouterError(`OpenRouter API error (${response.status}): ${error}`);
|
|
163
|
+
}
|
|
164
|
+
const data = await response.json();
|
|
165
|
+
if (!data ||
|
|
166
|
+
!Array.isArray(data.data) ||
|
|
167
|
+
data.data.length === 0 ||
|
|
168
|
+
!data.data[0] ||
|
|
169
|
+
!Array.isArray(data.data[0].embedding)) {
|
|
170
|
+
throw new OpenRouterError('OpenRouter API error: no embedding data returned in response', 'NO_DATA');
|
|
171
|
+
}
|
|
172
|
+
const embedding = data.data[0].embedding;
|
|
173
|
+
// Cache the result
|
|
174
|
+
this.embeddingCache.set(cacheKey, embedding);
|
|
175
|
+
return embedding;
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
// Don't retry auth errors - they'll be thrown as OpenRouterAuthError
|
|
179
|
+
if (error instanceof OpenRouterAuthError) {
|
|
180
|
+
throw error;
|
|
181
|
+
}
|
|
182
|
+
// Don't retry rate limit errors with explicit retry-after
|
|
183
|
+
if (error instanceof OpenRouterRateLimitError && error.retryAfter) {
|
|
184
|
+
throw error;
|
|
185
|
+
}
|
|
186
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
187
|
+
// Don't retry if it's the last attempt or certain error types
|
|
188
|
+
if (attempt === this.maxRetries) {
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
// Exponential backoff: wait longer with each attempt
|
|
192
|
+
const delay = this.baseRetryDelay * Math.pow(2, attempt);
|
|
193
|
+
await this.sleep(delay);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
throw lastError || new OpenRouterError('OpenRouter API error: max retries exceeded', 'MAX_RETRIES');
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Generate embeddings for multiple texts (batch)
|
|
200
|
+
*/
|
|
201
|
+
async embedBatch(texts) {
|
|
202
|
+
// Check cache for all texts
|
|
203
|
+
const uncachedTexts = [];
|
|
204
|
+
const uncachedIndices = [];
|
|
205
|
+
const results = texts.map((text, index) => {
|
|
206
|
+
const cacheKey = this.hashText(text);
|
|
207
|
+
if (this.embeddingCache.has(cacheKey)) {
|
|
208
|
+
return this.embeddingCache.get(cacheKey);
|
|
209
|
+
}
|
|
210
|
+
uncachedTexts.push(text);
|
|
211
|
+
uncachedIndices.push(index);
|
|
212
|
+
return null;
|
|
213
|
+
});
|
|
214
|
+
// If all cached, return immediately
|
|
215
|
+
if (uncachedTexts.length === 0) {
|
|
216
|
+
return results;
|
|
217
|
+
}
|
|
218
|
+
// Batch request to OpenRouter with retry
|
|
219
|
+
let lastError = null;
|
|
220
|
+
let data = null;
|
|
221
|
+
for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
|
|
222
|
+
try {
|
|
223
|
+
// Apply rate limiting before each attempt
|
|
224
|
+
await this.applyRateLimit();
|
|
225
|
+
const response = await this.fetchWithTimeout(OPENROUTER_EMBEDDINGS_URL, {
|
|
226
|
+
method: 'POST',
|
|
227
|
+
headers: {
|
|
228
|
+
'Authorization': `Bearer ${this.apiKey}`,
|
|
229
|
+
'Content-Type': 'application/json',
|
|
230
|
+
'HTTP-Referer': this.siteUrl,
|
|
231
|
+
'X-Title': this.siteName
|
|
232
|
+
},
|
|
233
|
+
body: JSON.stringify({
|
|
234
|
+
model: this.embeddingModel,
|
|
235
|
+
input: uncachedTexts
|
|
236
|
+
})
|
|
237
|
+
}, this.requestTimeout);
|
|
238
|
+
if (!response.ok) {
|
|
239
|
+
const error = await response.text();
|
|
240
|
+
// Don't retry auth errors
|
|
241
|
+
if (response.status === 401 || response.status === 403) {
|
|
242
|
+
throw new OpenRouterAuthError(`Authentication failed: ${error}`);
|
|
243
|
+
}
|
|
244
|
+
// Rate limit errors
|
|
245
|
+
if (response.status === 429) {
|
|
246
|
+
const retryAfter = response.headers.get('Retry-After');
|
|
247
|
+
throw new OpenRouterRateLimitError(`Rate limit exceeded: ${error}`, retryAfter ? parseInt(retryAfter, 10) : undefined);
|
|
248
|
+
}
|
|
249
|
+
throw new OpenRouterError(`OpenRouter API error (${response.status}): ${error}`);
|
|
250
|
+
}
|
|
251
|
+
data = await response.json();
|
|
252
|
+
break; // Success, exit retry loop
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
// Don't retry auth errors - they'll be thrown as OpenRouterAuthError
|
|
256
|
+
if (error instanceof OpenRouterAuthError) {
|
|
257
|
+
throw error;
|
|
258
|
+
}
|
|
259
|
+
// Don't retry rate limit errors with explicit retry-after
|
|
260
|
+
if (error instanceof OpenRouterRateLimitError && error.retryAfter) {
|
|
261
|
+
throw error;
|
|
262
|
+
}
|
|
263
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
264
|
+
if (attempt === this.maxRetries) {
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
const delay = this.baseRetryDelay * Math.pow(2, attempt);
|
|
268
|
+
await this.sleep(delay);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
if (!data) {
|
|
272
|
+
throw lastError || new OpenRouterError('OpenRouter API error: max retries exceeded', 'MAX_RETRIES');
|
|
273
|
+
}
|
|
274
|
+
// Fill in results and cache
|
|
275
|
+
for (let i = 0; i < data.data.length; i++) {
|
|
276
|
+
const embedding = data.data[i].embedding;
|
|
277
|
+
const originalIndex = uncachedIndices[i];
|
|
278
|
+
const text = uncachedTexts[i];
|
|
279
|
+
results[originalIndex] = embedding;
|
|
280
|
+
this.embeddingCache.set(this.hashText(text), embedding);
|
|
281
|
+
}
|
|
282
|
+
return results;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Chat completion - for intelligent context understanding
|
|
286
|
+
*/
|
|
287
|
+
async chat(messages, options) {
|
|
288
|
+
let lastError = null;
|
|
289
|
+
let data = null;
|
|
290
|
+
for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
|
|
291
|
+
try {
|
|
292
|
+
// Apply rate limiting before each attempt
|
|
293
|
+
await this.applyRateLimit();
|
|
294
|
+
const response = await this.fetchWithTimeout(OPENROUTER_CHAT_URL, {
|
|
295
|
+
method: 'POST',
|
|
296
|
+
headers: {
|
|
297
|
+
'Authorization': `Bearer ${this.apiKey}`,
|
|
298
|
+
'Content-Type': 'application/json',
|
|
299
|
+
'HTTP-Referer': this.siteUrl,
|
|
300
|
+
'X-Title': this.siteName
|
|
301
|
+
},
|
|
302
|
+
body: JSON.stringify({
|
|
303
|
+
model: options?.model || this.chatModel,
|
|
304
|
+
messages,
|
|
305
|
+
temperature: options?.temperature ?? 0.3,
|
|
306
|
+
max_tokens: options?.maxTokens ?? 4096
|
|
307
|
+
})
|
|
308
|
+
}, this.requestTimeout);
|
|
309
|
+
if (!response.ok) {
|
|
310
|
+
const error = await response.text();
|
|
311
|
+
// Don't retry auth errors
|
|
312
|
+
if (response.status === 401 || response.status === 403) {
|
|
313
|
+
throw new OpenRouterAuthError(`Authentication failed: ${error}`);
|
|
314
|
+
}
|
|
315
|
+
// Rate limit errors
|
|
316
|
+
if (response.status === 429) {
|
|
317
|
+
const retryAfter = response.headers.get('Retry-After');
|
|
318
|
+
throw new OpenRouterRateLimitError(`Rate limit exceeded: ${error}`, retryAfter ? parseInt(retryAfter, 10) : undefined);
|
|
319
|
+
}
|
|
320
|
+
throw new OpenRouterError(`OpenRouter Chat API error (${response.status}): ${error}`);
|
|
321
|
+
}
|
|
322
|
+
data = await response.json();
|
|
323
|
+
break; // Success, exit retry loop
|
|
324
|
+
}
|
|
325
|
+
catch (error) {
|
|
326
|
+
// Don't retry auth errors - they'll be thrown as OpenRouterAuthError
|
|
327
|
+
if (error instanceof OpenRouterAuthError) {
|
|
328
|
+
throw error;
|
|
329
|
+
}
|
|
330
|
+
// Don't retry rate limit errors with explicit retry-after
|
|
331
|
+
if (error instanceof OpenRouterRateLimitError && error.retryAfter) {
|
|
332
|
+
throw error;
|
|
333
|
+
}
|
|
334
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
335
|
+
if (attempt === this.maxRetries) {
|
|
336
|
+
break;
|
|
337
|
+
}
|
|
338
|
+
const delay = this.baseRetryDelay * Math.pow(2, attempt);
|
|
339
|
+
await this.sleep(delay);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
if (!data) {
|
|
343
|
+
throw lastError || new OpenRouterError('OpenRouter Chat API error: max retries exceeded', 'MAX_RETRIES');
|
|
344
|
+
}
|
|
345
|
+
const firstChoice = data?.choices && Array.isArray(data.choices) ? data.choices[0] : undefined;
|
|
346
|
+
const content = firstChoice?.message?.content;
|
|
347
|
+
if (typeof content !== 'string' || content.trim().length === 0) {
|
|
348
|
+
throw new Error('OpenRouter Chat API returned an unexpected response structure: missing or empty message content.');
|
|
349
|
+
}
|
|
350
|
+
return content;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Analyze codebase content intelligently
|
|
354
|
+
*/
|
|
355
|
+
async analyzeContent(content, analysisType) {
|
|
356
|
+
const systemPrompts = {
|
|
357
|
+
summarize: `You are an expert code analyzer. Provide a concise summary of the given code or documentation.
|
|
358
|
+
Focus on: purpose, key functionality, dependencies, and important patterns.
|
|
359
|
+
Keep the summary under 500 words.`,
|
|
360
|
+
extract_workflows: `You are an expert at analyzing codebases to identify workflows.
|
|
361
|
+
Extract the main workflows from the given code. For each workflow, identify:
|
|
362
|
+
1. Entry points (API routes, CLI commands, event handlers)
|
|
363
|
+
2. Key processing steps
|
|
364
|
+
3. Dependencies and integrations
|
|
365
|
+
4. Data flow
|
|
366
|
+
Output as structured markdown with file:line references where possible.`,
|
|
367
|
+
extract_architecture: `You are an expert software architect.
|
|
368
|
+
Analyze the given code to extract the architecture patterns:
|
|
369
|
+
1. Project structure and organization
|
|
370
|
+
2. Design patterns used
|
|
371
|
+
3. Key components and their responsibilities
|
|
372
|
+
4. Integration points
|
|
373
|
+
5. Technology stack
|
|
374
|
+
Output as structured markdown.`,
|
|
375
|
+
suggest_context: `You are an AI context engineering expert.
|
|
376
|
+
Analyze the given codebase content and suggest:
|
|
377
|
+
1. Key context files that should be created
|
|
378
|
+
2. Important workflows to document
|
|
379
|
+
3. Agent configurations needed
|
|
380
|
+
4. Commands that would be useful
|
|
381
|
+
5. Knowledge base entries to capture
|
|
382
|
+
Be specific and actionable in your suggestions.`
|
|
383
|
+
};
|
|
384
|
+
return this.chat([
|
|
385
|
+
{ role: 'system', content: systemPrompts[analysisType] },
|
|
386
|
+
{ role: 'user', content }
|
|
387
|
+
]);
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Calculate cosine similarity between two embeddings
|
|
391
|
+
*/
|
|
392
|
+
static cosineSimilarity(a, b) {
|
|
393
|
+
if (a.length !== b.length) {
|
|
394
|
+
throw new Error('Embeddings must have the same dimension');
|
|
395
|
+
}
|
|
396
|
+
let dotProduct = 0;
|
|
397
|
+
let normA = 0;
|
|
398
|
+
let normB = 0;
|
|
399
|
+
for (let i = 0; i < a.length; i++) {
|
|
400
|
+
dotProduct += a[i] * b[i];
|
|
401
|
+
normA += a[i] * a[i];
|
|
402
|
+
normB += b[i] * b[i];
|
|
403
|
+
}
|
|
404
|
+
const magnitude = Math.sqrt(normA) * Math.sqrt(normB);
|
|
405
|
+
if (magnitude === 0)
|
|
406
|
+
return 0;
|
|
407
|
+
return dotProduct / magnitude;
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Get embedding dimension
|
|
411
|
+
*/
|
|
412
|
+
getDimension() {
|
|
413
|
+
return EMBEDDING_DIMENSION;
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Clear embedding cache
|
|
417
|
+
*/
|
|
418
|
+
clearCache() {
|
|
419
|
+
this.embeddingCache.clear();
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Get cache size
|
|
423
|
+
*/
|
|
424
|
+
getCacheSize() {
|
|
425
|
+
return this.embeddingCache.size;
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* Hash text for caching
|
|
429
|
+
*/
|
|
430
|
+
hashText(text) {
|
|
431
|
+
return createHash('md5').update(text).digest('hex');
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Create OpenRouter client from environment
|
|
436
|
+
*/
|
|
437
|
+
export function createOpenRouterClient() {
|
|
438
|
+
const apiKey = process.env.OPENROUTER_API_KEY;
|
|
439
|
+
if (!apiKey) {
|
|
440
|
+
throw new Error('OPENROUTER_API_KEY environment variable is required.\n' +
|
|
441
|
+
'Get your API key at: https://openrouter.ai/keys');
|
|
442
|
+
}
|
|
443
|
+
return new OpenRouterClient({
|
|
444
|
+
apiKey,
|
|
445
|
+
embeddingModel: process.env.OPENROUTER_EMBEDDING_MODEL,
|
|
446
|
+
chatModel: process.env.OPENROUTER_CHAT_MODEL
|
|
447
|
+
});
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Check if OpenRouter API key is available
|
|
451
|
+
*/
|
|
452
|
+
export function hasOpenRouterKey() {
|
|
453
|
+
return !!process.env.OPENROUTER_API_KEY;
|
|
454
|
+
}
|
|
455
|
+
//# sourceMappingURL=openrouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/embeddings/openrouter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Context
|
|
3
|
+
*
|
|
4
|
+
* Unified AI Context Engineering package.
|
|
5
|
+
* Provides intelligent context for all AI coding assistants.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
export { DatabaseClient, type ContextItem, type GraphEdge, type GitCommit, type SyncState, type AIToolConfig, type SearchResult } from './db/client.js';
|
|
10
|
+
export { SCHEMA_VERSION, RELATION_TYPES, CONTEXT_TYPES, SYNC_STATUSES, AI_TOOLS, AI_TOOL_FOLDERS, type RelationType, type ContextType, type SyncStatus, type AITool } from './db/schema.js';
|
|
11
|
+
export { OpenRouterClient, createOpenRouterClient, hasOpenRouterKey, type OpenRouterConfig, type ChatMessage } from './embeddings/openrouter.js';
|
|
12
|
+
export { IntelligentAnalyzer, createIntelligentAnalyzer, type DiscoveredFile, type AnalysisResult } from './analyzer/intelligent-analyzer.js';
|
|
13
|
+
export { createServer, startServer, main as startMcpServer, type ServerConfig } from './mcp.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,QAAQ,EACR,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,MAAM,EACZ,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,YAAY,EACZ,WAAW,EACX,IAAI,IAAI,cAAc,EACtB,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Context
|
|
3
|
+
*
|
|
4
|
+
* Unified AI Context Engineering package.
|
|
5
|
+
* Provides intelligent context for all AI coding assistants.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
// Database
|
|
10
|
+
export { DatabaseClient } from './db/client.js';
|
|
11
|
+
export { SCHEMA_VERSION, RELATION_TYPES, CONTEXT_TYPES, SYNC_STATUSES, AI_TOOLS, AI_TOOL_FOLDERS } from './db/schema.js';
|
|
12
|
+
// OpenRouter / Embeddings
|
|
13
|
+
export { OpenRouterClient, createOpenRouterClient, hasOpenRouterKey } from './embeddings/openrouter.js';
|
|
14
|
+
// Analyzer
|
|
15
|
+
export { IntelligentAnalyzer, createIntelligentAnalyzer } from './analyzer/intelligent-analyzer.js';
|
|
16
|
+
// MCP Server
|
|
17
|
+
export { createServer, startServer, main as startMcpServer } from './mcp.js';
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,WAAW;AACX,OAAO,EACL,cAAc,EAOf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,QAAQ,EACR,eAAe,EAKhB,MAAM,gBAAgB,CAAC;AAExB,0BAA0B;AAC1B,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAGjB,MAAM,4BAA4B,CAAC;AAEpC,WAAW;AACX,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EAG1B,MAAM,oCAAoC,CAAC;AAE5C,aAAa;AACb,OAAO,EACL,YAAY,EACZ,WAAW,EACX,IAAI,IAAI,cAAc,EAEvB,MAAM,UAAU,CAAC"}
|
package/dist/mcp.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Model Context Protocol server for AI context.
|
|
5
|
+
* Provides tools, resources, and prompts for AI coding assistants.
|
|
6
|
+
*/
|
|
7
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
8
|
+
/**
|
|
9
|
+
* Server configuration
|
|
10
|
+
*/
|
|
11
|
+
export interface ServerConfig {
|
|
12
|
+
projectRoot: string;
|
|
13
|
+
dbPath?: string;
|
|
14
|
+
name?: string;
|
|
15
|
+
version?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create and start the MCP server
|
|
19
|
+
*/
|
|
20
|
+
export declare function createServer(config: ServerConfig): Promise<McpServer>;
|
|
21
|
+
/**
|
|
22
|
+
* Start the server with stdio transport
|
|
23
|
+
*/
|
|
24
|
+
export declare function startServer(config: ServerConfig): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Main entry point
|
|
27
|
+
*/
|
|
28
|
+
export declare function main(): Promise<void>;
|
|
29
|
+
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQpE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAWD;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAiS3E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CASrE;AAED;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ1C"}
|