lemma-mcp 0.7.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.
Files changed (68) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +474 -0
  3. package/README.tr.md +384 -0
  4. package/dist/guides/core.d.ts +33 -0
  5. package/dist/guides/core.d.ts.map +1 -0
  6. package/dist/guides/core.js +424 -0
  7. package/dist/guides/core.js.map +1 -0
  8. package/dist/guides/index.d.ts +2 -0
  9. package/dist/guides/index.d.ts.map +1 -0
  10. package/dist/guides/index.js +2 -0
  11. package/dist/guides/index.js.map +1 -0
  12. package/dist/guides/task-map.d.ts +3 -0
  13. package/dist/guides/task-map.d.ts.map +1 -0
  14. package/dist/guides/task-map.js +107 -0
  15. package/dist/guides/task-map.js.map +1 -0
  16. package/dist/index.d.ts +3 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +7 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/memory/config.d.ts +6 -0
  21. package/dist/memory/config.d.ts.map +1 -0
  22. package/dist/memory/config.js +69 -0
  23. package/dist/memory/config.js.map +1 -0
  24. package/dist/memory/core.d.ts +27 -0
  25. package/dist/memory/core.d.ts.map +1 -0
  26. package/dist/memory/core.js +415 -0
  27. package/dist/memory/core.js.map +1 -0
  28. package/dist/memory/index.d.ts +2 -0
  29. package/dist/memory/index.d.ts.map +1 -0
  30. package/dist/memory/index.js +2 -0
  31. package/dist/memory/index.js.map +1 -0
  32. package/dist/server/handlers.d.ts +131 -0
  33. package/dist/server/handlers.d.ts.map +1 -0
  34. package/dist/server/handlers.js +694 -0
  35. package/dist/server/handlers.js.map +1 -0
  36. package/dist/server/hooks.d.ts +16 -0
  37. package/dist/server/hooks.d.ts.map +1 -0
  38. package/dist/server/hooks.js +77 -0
  39. package/dist/server/hooks.js.map +1 -0
  40. package/dist/server/index.d.ts +5 -0
  41. package/dist/server/index.d.ts.map +1 -0
  42. package/dist/server/index.js +322 -0
  43. package/dist/server/index.js.map +1 -0
  44. package/dist/server/system-prompt.d.ts +5 -0
  45. package/dist/server/system-prompt.d.ts.map +1 -0
  46. package/dist/server/system-prompt.js +143 -0
  47. package/dist/server/system-prompt.js.map +1 -0
  48. package/dist/server/tools.d.ts +22 -0
  49. package/dist/server/tools.d.ts.map +1 -0
  50. package/dist/server/tools.js +443 -0
  51. package/dist/server/tools.js.map +1 -0
  52. package/dist/sessions/core.d.ts +17 -0
  53. package/dist/sessions/core.d.ts.map +1 -0
  54. package/dist/sessions/core.js +162 -0
  55. package/dist/sessions/core.js.map +1 -0
  56. package/dist/sessions/index.d.ts +2 -0
  57. package/dist/sessions/index.d.ts.map +1 -0
  58. package/dist/sessions/index.js +2 -0
  59. package/dist/sessions/index.js.map +1 -0
  60. package/dist/sessions/virtual.d.ts +23 -0
  61. package/dist/sessions/virtual.d.ts.map +1 -0
  62. package/dist/sessions/virtual.js +157 -0
  63. package/dist/sessions/virtual.js.map +1 -0
  64. package/dist/types.d.ts +143 -0
  65. package/dist/types.d.ts.map +1 -0
  66. package/dist/types.js +2 -0
  67. package/dist/types.js.map +1 -0
  68. package/package.json +62 -0
@@ -0,0 +1,424 @@
1
+ import os from "os";
2
+ import path from "path";
3
+ import fs from "fs";
4
+ import crypto from "crypto";
5
+ import Fuse from "fuse.js";
6
+ import { TASK_GUIDE_MAP } from "./task-map.js";
7
+ let MEMORY_DIR = path.join(os.homedir(), ".lemma");
8
+ let GUIDES_FILE = path.join(MEMORY_DIR, "guides.jsonl");
9
+ export function setGuidesDir(dir) {
10
+ MEMORY_DIR = dir;
11
+ GUIDES_FILE = path.join(MEMORY_DIR, "guides.jsonl");
12
+ }
13
+ export function generateGuideId() {
14
+ return "g" + crypto.randomUUID().replace(/-/g, "").substring(0, 12);
15
+ }
16
+ export function getToday() {
17
+ return new Date().toISOString().split("T")[0] ?? "";
18
+ }
19
+ export function createGuide(guide, category, description = "", contexts = [], learnings = []) {
20
+ return {
21
+ id: generateGuideId(),
22
+ guide: guide.toLowerCase().trim(),
23
+ category: category.toLowerCase().trim(),
24
+ description: description.trim(),
25
+ usage_count: 1,
26
+ last_used: getToday(),
27
+ contexts: contexts.map(c => c.toLowerCase().trim()).filter(Boolean),
28
+ learnings: learnings.map(l => l.trim()).filter(Boolean),
29
+ success_count: 0,
30
+ failure_count: 0,
31
+ anti_patterns: [],
32
+ known_pitfalls: [],
33
+ last_refined: null,
34
+ depends_on: [],
35
+ enables: [],
36
+ superseded_by: null,
37
+ deprecated: false
38
+ };
39
+ }
40
+ export function loadGuides() {
41
+ try {
42
+ if (!fs.existsSync(GUIDES_FILE)) {
43
+ return [];
44
+ }
45
+ const content = fs.readFileSync(GUIDES_FILE, "utf-8");
46
+ if (!content.trim()) {
47
+ return [];
48
+ }
49
+ return content
50
+ .trim()
51
+ .split("\n")
52
+ .map((line) => JSON.parse(line));
53
+ }
54
+ catch (error) {
55
+ console.error("Error loading guides:", error.message);
56
+ return [];
57
+ }
58
+ }
59
+ export function saveGuides(guides, options = {}) {
60
+ try {
61
+ const dir = path.dirname(GUIDES_FILE);
62
+ if (!fs.existsSync(dir)) {
63
+ fs.mkdirSync(dir, { recursive: true });
64
+ }
65
+ if ((!guides || guides.length === 0) && !options.force) {
66
+ console.warn("WARNING: Attempted to save empty guides array - ABORTED to prevent data loss");
67
+ return;
68
+ }
69
+ const jsonl = guides && guides.length > 0 ? guides.map(g => JSON.stringify(g)).join("\n") : "";
70
+ const backupFile = GUIDES_FILE + ".bak";
71
+ if (fs.existsSync(backupFile)) {
72
+ try {
73
+ const backupContent = fs.readFileSync(backupFile, "utf-8");
74
+ const backupEntries = backupContent.trim().split("\n").filter(Boolean).map((l) => JSON.parse(l));
75
+ const backupIds = new Set(backupEntries.map((e) => e.id));
76
+ const newEntries = guides.filter(g => !backupIds.has(g.id));
77
+ if (newEntries.length > 0) {
78
+ const merged = [...backupEntries, ...newEntries];
79
+ fs.writeFileSync(backupFile, merged.map((g) => JSON.stringify(g)).join("\n"), "utf-8");
80
+ }
81
+ }
82
+ catch {
83
+ fs.writeFileSync(backupFile, jsonl, "utf-8");
84
+ }
85
+ }
86
+ else {
87
+ fs.writeFileSync(backupFile, jsonl, "utf-8");
88
+ }
89
+ fs.writeFileSync(GUIDES_FILE, jsonl, "utf-8");
90
+ }
91
+ catch (error) {
92
+ console.error("Error saving guides:", error.message);
93
+ throw error;
94
+ }
95
+ }
96
+ export function promoteToGuide(guides, guideName, category, knowledge, context = "") {
97
+ let guide = findGuide(guides, guideName);
98
+ if (!guide) {
99
+ guide = createGuide(guideName, category, `Created via distillation from memory.`, [context], [knowledge]);
100
+ guides.push(guide);
101
+ }
102
+ else {
103
+ if (!guide.learnings.includes(knowledge)) {
104
+ guide.learnings.push(knowledge);
105
+ }
106
+ if (context && !guide.contexts.includes(context)) {
107
+ guide.contexts.push(context.toLowerCase().trim());
108
+ }
109
+ guide.usage_count += 1;
110
+ guide.last_used = getToday();
111
+ }
112
+ return guide;
113
+ }
114
+ export function findGuide(guides, guideName) {
115
+ const normalized = guideName.toLowerCase().trim();
116
+ return guides.find(g => g.guide === normalized) || null;
117
+ }
118
+ export function findSimilarGuide(guides, guideName) {
119
+ const normalized = guideName.toLowerCase().trim();
120
+ const exact = guides.find(g => g.guide === normalized);
121
+ if (exact)
122
+ return exact;
123
+ if (guides.length === 0)
124
+ return null;
125
+ const fuse = new Fuse(guides, {
126
+ keys: ['guide'],
127
+ threshold: 0.3,
128
+ includeScore: true,
129
+ ignoreLocation: true,
130
+ });
131
+ const results = fuse.search(normalized, { limit: 1 });
132
+ const topResult = results[0];
133
+ if (topResult && (topResult.score ?? 1) < 0.25) {
134
+ return topResult.item;
135
+ }
136
+ return null;
137
+ }
138
+ export function updateGuide(guides, guideName, updates) {
139
+ const guide = findGuide(guides, guideName);
140
+ if (!guide)
141
+ return null;
142
+ if (updates.guide)
143
+ guide.guide = updates.guide.toLowerCase().trim();
144
+ if (updates.category)
145
+ guide.category = updates.category.toLowerCase().trim();
146
+ if (updates.description)
147
+ guide.description = updates.description.trim();
148
+ if (updates.add_anti_patterns) {
149
+ guide.anti_patterns = [...(guide.anti_patterns || []), ...updates.add_anti_patterns];
150
+ }
151
+ if (updates.add_pitfalls) {
152
+ guide.known_pitfalls = [...(guide.known_pitfalls || []), ...updates.add_pitfalls];
153
+ }
154
+ if (updates.superseded_by) {
155
+ guide.superseded_by = updates.superseded_by;
156
+ }
157
+ if (updates.deprecated === true) {
158
+ guide.deprecated = true;
159
+ }
160
+ return guide;
161
+ }
162
+ export function deleteGuide(guides, guideName) {
163
+ const normalized = guideName.toLowerCase().trim();
164
+ const initialLength = guides.length;
165
+ const filtered = guides.filter(g => g.guide !== normalized);
166
+ if (filtered.length === initialLength)
167
+ return false;
168
+ guides.length = 0;
169
+ guides.push(...filtered);
170
+ return true;
171
+ }
172
+ export function practiceGuide(guides, guideName, category, description = "", newContexts = [], newLearnings = [], outcome = null) {
173
+ let guide = findSimilarGuide(guides, guideName);
174
+ if (!guide) {
175
+ guide = createGuide(guideName, category, description, newContexts, newLearnings);
176
+ guides.push(guide);
177
+ return guide;
178
+ }
179
+ guide.usage_count += 1;
180
+ guide.last_used = getToday();
181
+ if (!guide.description && description) {
182
+ guide.description = description.trim();
183
+ }
184
+ const existingContexts = new Set(guide.contexts.map(c => c.toLowerCase()));
185
+ for (const ctx of newContexts) {
186
+ const normalized = ctx.toLowerCase().trim();
187
+ if (normalized && !existingContexts.has(normalized)) {
188
+ guide.contexts.push(normalized);
189
+ existingContexts.add(normalized);
190
+ }
191
+ }
192
+ const existingLearnings = new Set(guide.learnings);
193
+ for (const learning of newLearnings) {
194
+ const trimmed = learning.trim();
195
+ if (trimmed && !existingLearnings.has(trimmed)) {
196
+ guide.learnings.push(trimmed);
197
+ existingLearnings.add(trimmed);
198
+ }
199
+ }
200
+ if (outcome === "success") {
201
+ guide.success_count = (guide.success_count || 0) + 1;
202
+ }
203
+ else if (outcome === "failure") {
204
+ guide.failure_count = (guide.failure_count || 0) + 1;
205
+ }
206
+ return guide;
207
+ }
208
+ export function getTopGuides(guides, limit = 20) {
209
+ return [...guides]
210
+ .sort((a, b) => b.usage_count - a.usage_count)
211
+ .slice(0, limit);
212
+ }
213
+ export function getGuidesByCategory(guides, category) {
214
+ const normalized = category.toLowerCase().trim();
215
+ return guides.filter(g => g.category === normalized);
216
+ }
217
+ export function formatGuidesForLLM(guides) {
218
+ if (guides.length === 0) {
219
+ return `## Guides\n---\n(no guides tracked yet)\n---`;
220
+ }
221
+ const sorted = getTopGuides(guides, 30);
222
+ const lines = sorted.map(guide => {
223
+ return `[${guide.category}] ${guide.guide} — ${guide.usage_count}x usage, ${guide.learnings.length} learnings`;
224
+ });
225
+ return `## Guides\n---\n${lines.join("\n")}\n---`;
226
+ }
227
+ function tokenize(str) {
228
+ if (!str)
229
+ return new Set();
230
+ const tokens = str.toLowerCase()
231
+ .replace(/[-_]/g, ' ')
232
+ .split(/\s+/)
233
+ .filter(t => t.length >= 2);
234
+ return new Set(tokens);
235
+ }
236
+ function hasTokenMatch(text, target) {
237
+ const textTokens = tokenize(text);
238
+ const targetTokens = tokenize(target);
239
+ for (const token of textTokens) {
240
+ if (targetTokens.has(token))
241
+ return true;
242
+ }
243
+ for (const textToken of textTokens) {
244
+ for (const targetToken of targetTokens) {
245
+ if (textToken.includes(targetToken) || targetToken.includes(textToken)) {
246
+ return true;
247
+ }
248
+ }
249
+ }
250
+ return false;
251
+ }
252
+ export function suggestGuides(taskDescription, existingGuides = []) {
253
+ const suggestions = [];
254
+ const seen = new Set();
255
+ const fuseOptions = {
256
+ keys: ['guide', 'keywords', 'contexts', 'learnings', 'description'],
257
+ threshold: 0.45,
258
+ distance: 100,
259
+ minMatchCharLength: 2,
260
+ includeScore: true,
261
+ ignoreLocation: true,
262
+ findAllMatches: true
263
+ };
264
+ const allGuideDefs = Object.values(TASK_GUIDE_MAP).flat().map(def => ({
265
+ ...def,
266
+ keywords: def.keywords || []
267
+ }));
268
+ const staticFuse = new Fuse(allGuideDefs, {
269
+ ...fuseOptions,
270
+ keys: ['guide', 'keywords']
271
+ });
272
+ const staticResults = staticFuse.search(taskDescription, { limit: 20 });
273
+ for (const result of staticResults) {
274
+ const guideDef = result.item;
275
+ if (seen.has(guideDef.guide))
276
+ continue;
277
+ seen.add(guideDef.guide);
278
+ const existing = existingGuides.find(g => g.guide === guideDef.guide);
279
+ suggestions.push({
280
+ ...guideDef,
281
+ tracked: !!existing,
282
+ usage_count: existing?.usage_count || 0,
283
+ last_used: existing?.last_used || null,
284
+ learnings: existing?.learnings || [],
285
+ contexts: existing?.contexts || [],
286
+ });
287
+ }
288
+ if (existingGuides.length > 0) {
289
+ const trackedFuse = new Fuse(existingGuides, {
290
+ ...fuseOptions,
291
+ keys: ['guide', 'contexts', 'learnings', 'description']
292
+ });
293
+ const trackedResults = trackedFuse.search(taskDescription, { limit: 20 });
294
+ for (const result of trackedResults) {
295
+ const existing = result.item;
296
+ if (seen.has(existing.guide))
297
+ continue;
298
+ seen.add(existing.guide);
299
+ suggestions.push({
300
+ guide: existing.guide,
301
+ category: existing.category,
302
+ keywords: existing.contexts,
303
+ tracked: true,
304
+ usage_count: existing.usage_count,
305
+ last_used: existing.last_used,
306
+ learnings: existing.learnings,
307
+ contexts: existing.contexts,
308
+ description: existing.description,
309
+ });
310
+ }
311
+ }
312
+ const desc = taskDescription.toLowerCase();
313
+ for (const existing of existingGuides) {
314
+ if (seen.has(existing.guide))
315
+ continue;
316
+ if (hasTokenMatch(desc, existing.guide) ||
317
+ existing.contexts.some(ctx => hasTokenMatch(desc, ctx)) ||
318
+ existing.learnings.some(l => hasTokenMatch(desc, l))) {
319
+ seen.add(existing.guide);
320
+ suggestions.push({
321
+ guide: existing.guide,
322
+ category: existing.category,
323
+ keywords: existing.contexts,
324
+ tracked: true,
325
+ usage_count: existing.usage_count,
326
+ last_used: existing.last_used,
327
+ learnings: existing.learnings,
328
+ contexts: existing.contexts,
329
+ description: existing.description,
330
+ });
331
+ }
332
+ }
333
+ const tracked = suggestions.filter(s => s.tracked);
334
+ const missing = suggestions.filter(s => !s.tracked);
335
+ return {
336
+ relevant: tracked,
337
+ missing: missing,
338
+ suggested: suggestions,
339
+ summary: `Found ${suggestions.length} relevant guides (${tracked.length} tracked, ${missing.length} new)`,
340
+ };
341
+ }
342
+ export function formatSuggestions(result) {
343
+ let output = `=== GUIDE SUGGESTIONS ===\n`;
344
+ output += `${result.summary}\n\n`;
345
+ if (result.relevant.length > 0) {
346
+ output += `TRACKED (you have experience):\n`;
347
+ for (const s of result.relevant) {
348
+ output += ` ✓ [${s.category}] ${s.guide} (${s.usage_count}x, last: ${s.last_used || 'n/a'})\n`;
349
+ if (s.learnings && s.learnings.length > 0) {
350
+ for (const l of s.learnings.slice(0, 3)) {
351
+ output += ` 💡 ${l}\n`;
352
+ }
353
+ if (s.learnings.length > 3) {
354
+ output += ` ... and ${s.learnings.length - 3} more learnings\n`;
355
+ }
356
+ }
357
+ }
358
+ output += `\n`;
359
+ }
360
+ if (result.missing.length > 0) {
361
+ output += `SUGGESTED (not tracked yet):\n`;
362
+ for (const s of result.missing) {
363
+ output += ` + [${s.category}] ${s.guide}\n`;
364
+ if (s.keywords && s.keywords.length > 0) {
365
+ output += ` keywords: ${s.keywords.slice(0, 5).join(", ")}\n`;
366
+ }
367
+ }
368
+ output += `\n`;
369
+ }
370
+ if (result.suggested.length === 0) {
371
+ output += `No relevant guides found for this task.\n`;
372
+ output += `Try describing the task with more specific terms.\n`;
373
+ }
374
+ output += `========================`;
375
+ return output;
376
+ }
377
+ export function formatGuideDetail(guide) {
378
+ if (!guide) {
379
+ return "Guide not found.";
380
+ }
381
+ let detail = `=== GUIDE: ${guide.guide} ===\n`;
382
+ detail += `Category: ${guide.category}\n`;
383
+ detail += `Usage Count: ${guide.usage_count}\n`;
384
+ detail += `Last Used: ${guide.last_used}\n`;
385
+ if (guide.description) {
386
+ detail += `\n=== DESCRIPTION / PROTOCOLS ===\n${guide.description}\n===============================\n`;
387
+ }
388
+ if (guide.contexts.length > 0) {
389
+ detail += `Contexts: ${guide.contexts.join(", ")}\n`;
390
+ }
391
+ if (guide.learnings.length > 0) {
392
+ detail += `Learnings:\n`;
393
+ for (const l of guide.learnings) {
394
+ detail += ` - ${l}\n`;
395
+ }
396
+ }
397
+ const totalAttempts = (guide.success_count || 0) + (guide.failure_count || 0);
398
+ if (totalAttempts > 0) {
399
+ const rate = (guide.success_count || 0) / totalAttempts;
400
+ detail += `Success Rate: ${rate.toFixed(2)} (${guide.success_count || 0}/${totalAttempts})\n`;
401
+ }
402
+ if (guide.anti_patterns && guide.anti_patterns.length > 0) {
403
+ detail += `Anti-patterns:\n`;
404
+ for (const ap of guide.anti_patterns) {
405
+ detail += ` - ${ap}\n`;
406
+ }
407
+ }
408
+ if (guide.known_pitfalls && guide.known_pitfalls.length > 0) {
409
+ detail += `Known Pitfalls:\n`;
410
+ for (const kp of guide.known_pitfalls) {
411
+ detail += ` - ${kp}\n`;
412
+ }
413
+ }
414
+ if (guide.depends_on && guide.depends_on.length > 0) {
415
+ detail += `Depends on: ${guide.depends_on.join(", ")}\n`;
416
+ }
417
+ if (guide.superseded_by) {
418
+ detail += `Superseded by: ${guide.superseded_by}\n`;
419
+ }
420
+ detail += `====================`;
421
+ return detail;
422
+ }
423
+ export { TASK_GUIDE_MAP };
424
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/guides/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { generateGuideId, getToday, createGuide, loadGuides, saveGuides, promoteToGuide, findGuide, findSimilarGuide, updateGuide, deleteGuide, practiceGuide, getTopGuides, getGuidesByCategory, formatGuidesForLLM, suggestGuides, formatSuggestions, formatGuideDetail, setGuidesDir, TASK_GUIDE_MAP } from "./core.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guides/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACf,MAAM,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { generateGuideId, getToday, createGuide, loadGuides, saveGuides, promoteToGuide, findGuide, findSimilarGuide, updateGuide, deleteGuide, practiceGuide, getTopGuides, getGuidesByCategory, formatGuidesForLLM, suggestGuides, formatSuggestions, formatGuideDetail, setGuidesDir, TASK_GUIDE_MAP } from "./core.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guides/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACf,MAAM,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { TaskGuideDef } from "../types.js";
2
+ export declare const TASK_GUIDE_MAP: Record<string, TaskGuideDef[]>;
3
+ //# sourceMappingURL=task-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-map.d.ts","sourceRoot":"","sources":["../../src/guides/task-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAyGzD,CAAC"}
@@ -0,0 +1,107 @@
1
+ export const TASK_GUIDE_MAP = {
2
+ "web-frontend": [
3
+ { guide: "html", category: "web-frontend", keywords: ["web", "sayfa", "ui", "arayüz", "html"] },
4
+ { guide: "css", category: "web-frontend", keywords: ["stil", "style", "tasarım", "design", "css"] },
5
+ { guide: "javascript", category: "programming-language", keywords: ["js", "web", "frontend"] },
6
+ { guide: "react", category: "web-frontend", keywords: ["component", "jsx", "hook", "state", "react"] },
7
+ { guide: "vue", category: "web-frontend", keywords: ["vue", "component", "template"] },
8
+ { guide: "angular", category: "web-frontend", keywords: ["angular", "component", "service"] },
9
+ { guide: "tailwind", category: "web-frontend", keywords: ["tailwind", "css", "utility"] },
10
+ { guide: "nextjs", category: "web-frontend", keywords: ["next", "nextjs", "ssr", "app router"] },
11
+ { guide: "typescript", category: "programming-language", keywords: ["ts", "tip", "type", "interface"] },
12
+ ],
13
+ "web-backend": [
14
+ { guide: "nodejs", category: "web-backend", keywords: ["node", "server", "api", "express"] },
15
+ { guide: "express", category: "web-backend", keywords: ["express", "router", "middleware"] },
16
+ { guide: "nestjs", category: "web-backend", keywords: ["nestjs", "module", "controller", "service"] },
17
+ { guide: "python", category: "programming-language", keywords: ["py", "django", "flask", "fastapi"] },
18
+ { guide: "fastapi", category: "web-backend", keywords: ["fastapi", "async", "python"] },
19
+ { guide: "django", category: "web-backend", keywords: ["django", "orm", "python"] },
20
+ { guide: "rest", category: "web-backend", keywords: ["api", "rest", "endpoint", "http"] },
21
+ { guide: "graphql", category: "web-backend", keywords: ["graphql", "query", "mutation", "schema"] },
22
+ { guide: "trpc", category: "web-backend", keywords: ["trpc", "typescript", "rpc"] },
23
+ ],
24
+ "data-storage": [
25
+ { guide: "postgresql", category: "data-storage", keywords: ["postgres", "sql", "relational", "pg"] },
26
+ { guide: "mongodb", category: "data-storage", keywords: ["mongo", "nosql", "document"] },
27
+ { guide: "redis", category: "data-storage", keywords: ["redis", "cache", "key-value"] },
28
+ { guide: "prisma", category: "data-storage", keywords: ["prisma", "orm", "schema"] },
29
+ { guide: "sqlite", category: "data-storage", keywords: ["sqlite", "local", "embedded"] },
30
+ { guide: "supabase", category: "data-storage", keywords: ["supabase", "postgres", "auth", "storage"] },
31
+ { guide: "pinecone", category: "data-storage", keywords: ["pinecone", "vector", "embedding"] },
32
+ { guide: "elasticsearch", category: "data-storage", keywords: ["elastic", "search", "index"] },
33
+ ],
34
+ "dev-tool": [
35
+ { guide: "git", category: "dev-tool", keywords: ["git", "commit", "branch", "merge"] },
36
+ { guide: "docker", category: "infra-devops", keywords: ["docker", "container", "image"] },
37
+ { guide: "webpack", category: "dev-tool", keywords: ["webpack", "bundle", "build"] },
38
+ { guide: "vite", category: "dev-tool", keywords: ["vite", "build", "dev", "hmr"] },
39
+ { guide: "jest", category: "dev-tool", keywords: ["jest", "test", "unit", "spec"] },
40
+ { guide: "vitest", category: "dev-tool", keywords: ["vitest", "test", "vite"] },
41
+ { guide: "playwright", category: "dev-tool", keywords: ["playwright", "e2e", "browser", "test"] },
42
+ { guide: "eslint", category: "dev-tool", keywords: ["eslint", "lint", "format"] },
43
+ ],
44
+ "mobile-frontend": [
45
+ { guide: "react-native", category: "mobile-frontend", keywords: ["react native", "mobile", "expo", "rn"] },
46
+ { guide: "flutter", category: "mobile-frontend", keywords: ["flutter", "dart", "mobile", "widget"] },
47
+ { guide: "expo", category: "mobile-frontend", keywords: ["expo", "react native", "mobile"] },
48
+ { guide: "swift", category: "mobile-frontend", keywords: ["swift", "ios", "iphone", "swiftui"] },
49
+ { guide: "kotlin", category: "mobile-frontend", keywords: ["kotlin", "android", "jetpack"] },
50
+ ],
51
+ "game-frontend": [
52
+ { guide: "threejs", category: "game-frontend", keywords: ["threejs", "three.js", "webgl", "3d"] },
53
+ { guide: "canvas", category: "game-frontend", keywords: ["canvas", "html5", "2d", "drawing"] },
54
+ { guide: "phaser", category: "game-frontend", keywords: ["phaser", "game", "html5", "2d"] },
55
+ { guide: "webgl", category: "game-frontend", keywords: ["webgl", "shader", "gpu", "3d"] },
56
+ ],
57
+ "game-backend": [
58
+ { guide: "godot", category: "game-backend", keywords: ["godot", "gdscript", "game engine"] },
59
+ { guide: "game-loop", category: "game-backend", keywords: ["game loop", "update", "render", "fixed timestep"] },
60
+ { guide: "state-machine", category: "game-backend", keywords: ["state", "fsm", "transition"] },
61
+ { guide: "ecs", category: "game-backend", keywords: ["ecs", "entity", "component", "system"] },
62
+ { guide: "object-pooling", category: "game-backend", keywords: ["pool", "reuse", "spawn", "bullet"] },
63
+ ],
64
+ "game-tool": [
65
+ { guide: "ai-art-generation", category: "game-tool", keywords: ["ai art", "stable diffusion", "flux", "dalle"] },
66
+ { guide: "pixel-art", category: "game-design", keywords: ["pixel", "sprite", "8bit", "16bit", "retro"] },
67
+ { guide: "aseprite", category: "game-tool", keywords: ["aseprite", "sprite", "animation"] },
68
+ { guide: "spritesheet", category: "game-tool", keywords: ["spritesheet", "atlas", "texture", "export"] },
69
+ { guide: "background-removal", category: "game-tool", keywords: ["bg remove", "transparent", "cutout"] },
70
+ { guide: "image-upscaling", category: "game-tool", keywords: ["upscale", "esrgan", "hd", "4k"] },
71
+ ],
72
+ "game-design": [
73
+ { guide: "level-design", category: "game-design", keywords: ["level", "map", "blockout", "flow"] },
74
+ { guide: "character-design", category: "game-design", keywords: ["character", "silhouette", "shape language"] },
75
+ { guide: "texture-art", category: "game-design", keywords: ["texture", "pbr", "normal map", "material"] },
76
+ { guide: "animation", category: "game-design", keywords: ["animation", "walk cycle", "frame", "sprite"] },
77
+ { guide: "tileset", category: "game-design", keywords: ["tileset", "tile", "autotile", "seamless"] },
78
+ ],
79
+ "app-security": [
80
+ { guide: "oauth", category: "app-security", keywords: ["oauth", "auth", "login", "token"] },
81
+ { guide: "jwt", category: "app-security", keywords: ["jwt", "token", "authentication"] },
82
+ { guide: "owasp", category: "app-security", keywords: ["owasp", "security", "vulnerability", "xss", "sql injection"] },
83
+ { guide: "cryptography", category: "app-security", keywords: ["crypto", "encrypt", "hash", "ssl", "tls"] },
84
+ { guide: "clerk", category: "app-security", keywords: ["clerk", "auth", "user management"] },
85
+ ],
86
+ "ui-design": [
87
+ { guide: "figma", category: "ui-design", keywords: ["figma", "design", "prototype", "ui"] },
88
+ { guide: "accessibility", category: "ui-design", keywords: ["a11y", "accessibility", "wcag", "aria"] },
89
+ { guide: "animation", category: "ui-design", keywords: ["animation", "motion", "framer motion", "css animation"] },
90
+ { guide: "design-system", category: "ui-design", keywords: ["design system", "tokens", "components"] },
91
+ ],
92
+ "infra-devops": [
93
+ { guide: "ci-cd", category: "infra-devops", keywords: ["ci", "cd", "pipeline", "github actions"] },
94
+ { guide: "kubernetes", category: "infra-devops", keywords: ["k8s", "kubernetes", "pod", "deployment"] },
95
+ { guide: "aws", category: "infra-devops", keywords: ["aws", "s3", "lambda", "ec2"] },
96
+ { guide: "vercel", category: "infra-devops", keywords: ["vercel", "deploy", "edge", "serverless"] },
97
+ { guide: "terraform", category: "infra-devops", keywords: ["terraform", "iac", "infrastructure"] },
98
+ ],
99
+ "programming-language": [
100
+ { guide: "typescript", category: "programming-language", keywords: ["typescript", "ts", "type"] },
101
+ { guide: "python", category: "programming-language", keywords: ["python", "py"] },
102
+ { guide: "rust", category: "programming-language", keywords: ["rust", "rustlang"] },
103
+ { guide: "golang", category: "programming-language", keywords: ["go", "golang"] },
104
+ { guide: "java", category: "programming-language", keywords: ["java", "jvm"] },
105
+ ],
106
+ };
107
+ //# sourceMappingURL=task-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-map.js","sourceRoot":"","sources":["../../src/guides/task-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ import { startServer } from "./server/index.js";
3
+ startServer().catch((error) => {
4
+ console.error("Fatal error:", error);
5
+ process.exit(1);
6
+ });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;IACnC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { LemmaConfig } from "../types.js";
2
+ export declare function setConfigDir(dir: string): void;
3
+ export declare function loadConfig(): LemmaConfig;
4
+ export declare function resetConfig(): void;
5
+ export declare function estimateTokens(text: string | null | undefined): number;
6
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/memory/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAwB/C,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE9C;AAMD,wBAAgB,UAAU,IAAI,WAAW,CAiBxC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAeD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGtE"}