@vibeuniv/mcp-server 0.3.0 → 0.3.2
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/dist/lib/api-client.d.ts +3 -1
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +13 -0
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/file-scanner.d.ts +13 -0
- package/dist/lib/file-scanner.d.ts.map +1 -1
- package/dist/lib/file-scanner.js +43 -1
- package/dist/lib/file-scanner.js.map +1 -1
- package/dist/tools/analyze.d.ts.map +1 -1
- package/dist/tools/analyze.js +18 -20
- package/dist/tools/analyze.js.map +1 -1
- package/dist/tools/ask-tutor.d.ts.map +1 -1
- package/dist/tools/ask-tutor.js +29 -22
- package/dist/tools/ask-tutor.js.map +1 -1
- package/dist/tools/generate-curriculum.d.ts.map +1 -1
- package/dist/tools/generate-curriculum.js +379 -159
- package/dist/tools/generate-curriculum.js.map +1 -1
- package/dist/tools/submit-analysis.d.ts.map +1 -1
- package/dist/tools/submit-analysis.js +17 -1
- package/dist/tools/submit-analysis.js.map +1 -1
- package/dist/tools/submit-curriculum.d.ts.map +1 -1
- package/dist/tools/submit-curriculum.js +66 -2
- package/dist/tools/submit-curriculum.js.map +1 -1
- package/dist/tools/submit-tech-stacks.d.ts.map +1 -1
- package/dist/tools/submit-tech-stacks.js +12 -4
- package/dist/tools/submit-tech-stacks.js.map +1 -1
- package/dist/tools/sync-project.d.ts.map +1 -1
- package/dist/tools/sync-project.js +33 -37
- package/dist/tools/sync-project.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/lib/api-client.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import type { AnalysisResult, CreateProjectInput, CurriculumContext, CurriculumSubmitResult, EducationalAnalysisData, KnowledgeHintsResult, LearningPath, Project, ProjectDetail, ProjectFile, SessionLog, TechStackItem, TechStackSubmission, TechStackSubmitResult, TutorContext, TutorResponse } from "../types.js";
|
|
1
|
+
import type { AnalysisResult, CreateProjectInput, CurriculumContext, CurriculumSubmitResult, EducationalAnalysisData, KnowledgeHintsResult, LearningPath, Locale, Project, ProjectDetail, ProjectFile, SessionLog, TechStackItem, TechStackSubmission, TechStackSubmitResult, TutorContext, TutorResponse } from "../types.js";
|
|
2
2
|
export declare class VibeUnivClient {
|
|
3
3
|
private apiKey;
|
|
4
4
|
private baseUrl;
|
|
5
|
+
private cachedLocale;
|
|
5
6
|
constructor(apiKey: string, baseUrl: string);
|
|
7
|
+
getUserLocale(): Promise<Locale>;
|
|
6
8
|
private request;
|
|
7
9
|
createProject(data: CreateProjectInput): Promise<Project>;
|
|
8
10
|
uploadFiles(projectId: string, files: ProjectFile[]): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EAEd,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,OAAO,EACP,aAAa,EACb,WAAW,EACX,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACd,MAAM,aAAa,CAAC;AA2DrB,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EAEd,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,MAAM,EACN,OAAO,EACP,aAAa,EACb,WAAW,EACX,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACd,MAAM,aAAa,CAAC;AA2DrB,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAuB;gBAE/B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAKrC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;YAWxB,OAAO;IA2Cf,aAAa,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzD,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YAoBnD,YAAY;IAyCpB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA2BzD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAYhE,QAAQ,CACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,aAAa,CAAC;IAenB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAuC1D,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoBrE,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAYlF,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,sBAAsB,CAAC;IAsB5B,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAO3D,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,mBAAmB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;IAQ3B,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAOzD,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAM1E"}
|
package/dist/lib/api-client.js
CHANGED
|
@@ -3,10 +3,23 @@ const MAX_POLL_ATTEMPTS = 60;
|
|
|
3
3
|
export class VibeUnivClient {
|
|
4
4
|
apiKey;
|
|
5
5
|
baseUrl;
|
|
6
|
+
cachedLocale = null;
|
|
6
7
|
constructor(apiKey, baseUrl) {
|
|
7
8
|
this.apiKey = apiKey;
|
|
8
9
|
this.baseUrl = baseUrl.replace(/\/$/, "");
|
|
9
10
|
}
|
|
11
|
+
async getUserLocale() {
|
|
12
|
+
if (this.cachedLocale)
|
|
13
|
+
return this.cachedLocale;
|
|
14
|
+
try {
|
|
15
|
+
const data = await this.request("GET", "/user/locale");
|
|
16
|
+
this.cachedLocale = data.locale;
|
|
17
|
+
return data.locale;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return "ko";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
10
23
|
async request(method, path, body) {
|
|
11
24
|
if (!this.apiKey) {
|
|
12
25
|
throw new Error("VIBEUNIV_API_KEY is not configured. " +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ProjectFile } from "../types.js";
|
|
2
|
+
export declare function isTeachingCriticalFile(relativePath: string): boolean;
|
|
2
3
|
/**
|
|
3
4
|
* Extract lightweight header from source code files.
|
|
4
5
|
* Returns only import/require statements, export statements,
|
|
@@ -7,4 +8,16 @@ import type { ProjectFile } from "../types.js";
|
|
|
7
8
|
*/
|
|
8
9
|
export declare function extractFileHeader(content: string): string;
|
|
9
10
|
export declare function scanProjectFiles(rootDir: string): Promise<ProjectFile[]>;
|
|
11
|
+
/**
|
|
12
|
+
* Scan local project and return only teaching-critical files
|
|
13
|
+
* (page.tsx, layout.tsx, API routes, middleware, lib/*, server/*, types/*).
|
|
14
|
+
* Config files excluded. Files truncated to maxContentLength.
|
|
15
|
+
*/
|
|
16
|
+
export declare function scanTeachingCriticalFiles(rootDir: string, options?: {
|
|
17
|
+
maxFiles?: number;
|
|
18
|
+
maxContentLength?: number;
|
|
19
|
+
}): Promise<Array<{
|
|
20
|
+
file_path: string;
|
|
21
|
+
content: string;
|
|
22
|
+
}>>;
|
|
10
23
|
//# sourceMappingURL=file-scanner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-scanner.d.ts","sourceRoot":"","sources":["../../src/lib/file-scanner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"file-scanner.d.ts","sourceRoot":"","sources":["../../src/lib/file-scanner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAuG/C,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAcpE;AAgDD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA+EzD;AAyCD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC,CAuExB;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D,OAAO,CAAC,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CA0CxD"}
|
package/dist/lib/file-scanner.js
CHANGED
|
@@ -91,7 +91,7 @@ const TEACHING_CRITICAL_PATTERNS = [
|
|
|
91
91
|
"server/**/*.ts",
|
|
92
92
|
"types/**/*.ts",
|
|
93
93
|
];
|
|
94
|
-
function isTeachingCriticalFile(relativePath) {
|
|
94
|
+
export function isTeachingCriticalFile(relativePath) {
|
|
95
95
|
return TEACHING_CRITICAL_PATTERNS.some((pattern) => {
|
|
96
96
|
// Convert glob pattern to regex using placeholders to avoid
|
|
97
97
|
// conflicting replacements between glob wildcards and regex syntax.
|
|
@@ -297,4 +297,46 @@ export async function scanProjectFiles(rootDir) {
|
|
|
297
297
|
console.error(`[vibeuniv] Scanned ${foundFiles.length} files (${rootMatches.length} config + ${limitedSource.length} source) in ${rootDir}`);
|
|
298
298
|
return foundFiles;
|
|
299
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* Scan local project and return only teaching-critical files
|
|
302
|
+
* (page.tsx, layout.tsx, API routes, middleware, lib/*, server/*, types/*).
|
|
303
|
+
* Config files excluded. Files truncated to maxContentLength.
|
|
304
|
+
*/
|
|
305
|
+
export async function scanTeachingCriticalFiles(rootDir, options = {}) {
|
|
306
|
+
const maxFiles = options.maxFiles ?? 20;
|
|
307
|
+
const maxContentLength = options.maxContentLength ?? 8000;
|
|
308
|
+
// Collect source files only (config files excluded)
|
|
309
|
+
const sourceMatches = await collectFiles(rootDir, SOURCE_PATTERNS, IGNORE_PATTERNS);
|
|
310
|
+
// Filter to teaching-critical files only
|
|
311
|
+
const teachingFiles = sourceMatches.filter((p) => isTeachingCriticalFile(p));
|
|
312
|
+
// Sort by depth (entry points first), then alphabetically
|
|
313
|
+
teachingFiles.sort((a, b) => {
|
|
314
|
+
const depthA = a.split("/").length;
|
|
315
|
+
const depthB = b.split("/").length;
|
|
316
|
+
if (depthA !== depthB)
|
|
317
|
+
return depthA - depthB;
|
|
318
|
+
return a.localeCompare(b);
|
|
319
|
+
});
|
|
320
|
+
const limited = teachingFiles.slice(0, maxFiles);
|
|
321
|
+
const results = [];
|
|
322
|
+
for (const relativePath of limited) {
|
|
323
|
+
const absolutePath = join(rootDir, relativePath);
|
|
324
|
+
try {
|
|
325
|
+
const fileStat = await stat(absolutePath);
|
|
326
|
+
if (!fileStat.isFile() || fileStat.size > MAX_FILE_SIZE)
|
|
327
|
+
continue;
|
|
328
|
+
let content = await readFile(absolutePath, "utf-8");
|
|
329
|
+
if (content.length > maxContentLength) {
|
|
330
|
+
content = content.slice(0, maxContentLength) +
|
|
331
|
+
`\n// ... truncated (original ${content.length} chars)`;
|
|
332
|
+
}
|
|
333
|
+
results.push({ file_path: relativePath, content });
|
|
334
|
+
}
|
|
335
|
+
catch {
|
|
336
|
+
console.error(`[vibeuniv] Warning: Could not read file ${relativePath}`);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
console.error(`[vibeuniv] Scanned ${results.length} teaching-critical files locally`);
|
|
340
|
+
return results;
|
|
341
|
+
}
|
|
300
342
|
//# sourceMappingURL=file-scanner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-scanner.js","sourceRoot":"","sources":["../../src/lib/file-scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO;AACxC,MAAM,gBAAgB,GAAG,EAAE,CAAC,CAAC,gBAAgB;AAC7C,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,iFAAiF;AACjF,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC,CAAC;AAEH,uEAAuE;AAEvE,MAAM,gBAAgB,GAAG;IACvB,cAAc;IACd,kBAAkB;IAClB,SAAS;IACT,gBAAgB;IAChB,cAAc;IACd,kBAAkB;IAClB,SAAS;IACT,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,eAAe;CAChB,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACvB,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,gBAAgB;CACjB,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,oBAAoB;IACpB,qBAAqB;IACrB,YAAY;IACZ,cAAc;IACd,aAAa;IACb,cAAc;CACf,CAAC;AAEF,MAAM,UAAU,GAAG;IACjB,GAAG,gBAAgB;IACnB,GAAG,gBAAgB;IACnB,GAAG,YAAY;IACf,WAAW;CACZ,CAAC;AAEF,uEAAuE;AAEvE,MAAM,eAAe,GAAG;IACtB,mBAAmB;IACnB,0BAA0B;IAC1B,4BAA4B;IAC5B,iCAAiC;IACjC,0BAA0B;IAC1B,6BAA6B;IAC7B,0BAA0B;IAC1B,6BAA6B;IAC7B,oBAAoB;IACpB,SAAS;IACT,SAAS;IACT,OAAO;IACP,aAAa;IACb,KAAK;IACL,SAAS;CACV,CAAC;AAEF,uEAAuE;AAEvE,wEAAwE;AACxE,uEAAuE;AACvE,sEAAsE;AACtE,2EAA2E;AAE3E,MAAM,0BAA0B,GAAG;IACjC,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,aAAa;IACb,gBAAgB;IAChB,eAAe;CAChB,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"file-scanner.js","sourceRoot":"","sources":["../../src/lib/file-scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,eAAO,MAAM,aAAa;;;CAMzB,CAAC;AAEF,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,eAAO,MAAM,aAAa;;;CAMzB,CAAC;AAEF,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAiH/E"}
|
package/dist/tools/analyze.js
CHANGED
|
@@ -29,8 +29,20 @@ export function registerAnalyze(server, client) {
|
|
|
29
29
|
}
|
|
30
30
|
output += "\n";
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
output += "
|
|
32
|
+
const locale = await client.getUserLocale();
|
|
33
|
+
output += "To re-analyze, call vibeuniv_analyze with force: true.\n\n";
|
|
34
|
+
if (locale === "en") {
|
|
35
|
+
output += "📚 Next step: Generate a learning curriculum\n";
|
|
36
|
+
output += "Ask the user which difficulty level they prefer:\n";
|
|
37
|
+
output += " - beginner / intermediate / advanced\n";
|
|
38
|
+
output += "After confirming the difficulty, call vibeuniv_generate_curriculum.";
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
output += "📚 다음 단계: 학습 커리큘럼 생성\n";
|
|
42
|
+
output += "사용자에게 원하는 난이도를 물어보세요:\n";
|
|
43
|
+
output += " - beginner (초급) / intermediate (중급) / advanced (고급)\n";
|
|
44
|
+
output += "난이도를 확인한 후 vibeuniv_generate_curriculum을 호출하세요.";
|
|
45
|
+
}
|
|
34
46
|
return {
|
|
35
47
|
content: [{ type: "text", text: output }],
|
|
36
48
|
};
|
|
@@ -73,24 +85,10 @@ export function registerAnalyze(server, client) {
|
|
|
73
85
|
output += `\n`;
|
|
74
86
|
}
|
|
75
87
|
// Analysis instructions
|
|
76
|
-
output += `###
|
|
77
|
-
output += `For each technology
|
|
78
|
-
output +=
|
|
79
|
-
output +=
|
|
80
|
-
output += `- **version**: Version string if detectable (e.g., "15.1.0"), omit if unknown\n`;
|
|
81
|
-
output += `- **confidence**: 0.0 to 1.0 — how confident you are\n`;
|
|
82
|
-
output += `- **importance**: One of: core (essential to the project), supporting (actively used), dev_dependency (development only)\n`;
|
|
83
|
-
output += `- **description**: One sentence describing how this tech is used in the project\n\n`;
|
|
84
|
-
output += `Also provide an **architecture_summary** — a 2-3 sentence description of the overall project architecture.\n\n`;
|
|
85
|
-
output += `### Submit Results\n\n`;
|
|
86
|
-
output += `After completing the analysis, submit the results using:\n\n`;
|
|
87
|
-
output += `vibeuniv_submit_tech_stacks({\n`;
|
|
88
|
-
output += ` project_id: "${project_id}",\n`;
|
|
89
|
-
output += ` analysis: {\n`;
|
|
90
|
-
output += ` technologies: [ { name, category, version, confidence, importance, description }, ... ],\n`;
|
|
91
|
-
output += ` architecture_summary: "..."\n`;
|
|
92
|
-
output += ` }\n`;
|
|
93
|
-
output += `})\n`;
|
|
88
|
+
output += `### Instructions\n\n`;
|
|
89
|
+
output += `For each technology: { name, category(framework|language|database|auth|deploy|styling|testing|build_tool|library|other), version?, confidence(0-1), importance(core|supporting|dev_dependency), description }\n`;
|
|
90
|
+
output += `Also: architecture_summary (2-3 sentences).\n\n`;
|
|
91
|
+
output += `Submit: vibeuniv_submit_tech_stacks({ project_id: "${project_id}", analysis: { technologies: [...], architecture_summary } })\n`;
|
|
94
92
|
return {
|
|
95
93
|
content: [{ type: "text", text: output }],
|
|
96
94
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACrE,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,sDAAsD,CAAC;CACpE,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,MAAsB;IACvE,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,iEAAiE,EACjE,aAAa,EACb,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAC3C,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,0CAA0C,UAAU,KAAK,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAEzD,4EAA4E;YAC5E,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnD,IAAI,MAAM,GAAG,YAAY,MAAM,CAAC,IAAI,iBAAiB,MAAM,CAAC,kBAAkB,CAAC,MAAM,6BAA6B,CAAC;gBAEnH,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4C,CAAC;gBACpE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAClD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACvC,CAAC;gBAED,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxC,MAAM,IAAI,MAAM,QAAQ,KAAK,CAAC;oBAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;wBACrD,MAAM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,OAAO,KAAK,UAAU,iBAAiB,CAAC;oBACzE,CAAC;oBACD,MAAM,IAAI,IAAI,CAAC;gBACjB,CAAC;gBAED,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask-tutor.d.ts","sourceRoot":"","sources":["../../src/tools/ask-tutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,eAAO,MAAM,cAAc;;;CAG1B,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"ask-tutor.d.ts","sourceRoot":"","sources":["../../src/tools/ask-tutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,eAAO,MAAM,cAAc;;;CAG1B,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAuFhF"}
|
package/dist/tools/ask-tutor.js
CHANGED
|
@@ -8,28 +8,19 @@ export function registerAskTutor(server, client) {
|
|
|
8
8
|
try {
|
|
9
9
|
console.error(`[vibeuniv] Fetching tutor context for project ${project_id}...`);
|
|
10
10
|
const context = await client.getTutorContext(project_id);
|
|
11
|
+
const locale = await client.getUserLocale();
|
|
11
12
|
// Build tutor instructions for local AI
|
|
12
13
|
let output = `## AI Tutor — Answer the student's question below\n\n`;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
output += `5. **Walk through code line-by-line when asked.**\n`;
|
|
24
|
-
output += `6. **Use analogies.** Connect programming concepts to everyday experiences.\n`;
|
|
25
|
-
output += `7. **Be honest about complexity.** If something is complex, say so but break it down.\n\n`;
|
|
26
|
-
output += `### Rules\n\n`;
|
|
27
|
-
output += `- NEVER make up code that isn't in the student's project. Only reference actual files shown below.\n`;
|
|
28
|
-
output += `- If asked about something outside the project files, clearly state you're giving general advice.\n`;
|
|
29
|
-
output += `- If you don't know something, say so honestly.\n`;
|
|
30
|
-
output += `- Do NOT repeat the student's question back to them.\n`;
|
|
31
|
-
output += `- Do NOT start with "Great question!" or similar filler phrases.\n`;
|
|
32
|
-
output += `- Keep code snippets short and relevant.\n\n`;
|
|
14
|
+
if (locale === "en") {
|
|
15
|
+
output += `You are a friendly tutor for a "vibe coder" — someone who built a working app with AI tools but wants to understand WHY it works.\n\n`;
|
|
16
|
+
output += `**Style:** Reference the student's actual code with file paths. Explain simply with analogies. ~500 words max. Be encouraging.\n`;
|
|
17
|
+
output += `**Rules:** Never make up code not in the project. No filler ("Great question!"). Admit unknowns honestly. **Write ALL in English.**\n\n`;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
output += `You are a friendly tutor for a "vibe coder" — someone who built a working app with AI tools but wants to understand WHY it works.\n\n`;
|
|
21
|
+
output += `**Style:** Reference the student's actual code with file paths. Explain simply with analogies. ~500 words max. Be encouraging.\n`;
|
|
22
|
+
output += `**Rules:** Never make up code not in the project. No filler ("Great question!"). Admit unknowns honestly. **반드시 한국어 해요체로 답변하세요.**\n\n`;
|
|
23
|
+
}
|
|
33
24
|
// Tech stacks section
|
|
34
25
|
if (context.techStacks.length > 0) {
|
|
35
26
|
output += `### Student's Project Technologies\n\n`;
|
|
@@ -48,12 +39,28 @@ export function registerAskTutor(server, client) {
|
|
|
48
39
|
}
|
|
49
40
|
// Learning context section
|
|
50
41
|
if (context.learningContext) {
|
|
42
|
+
const lc = context.learningContext;
|
|
51
43
|
output += `### Current Learning Context\n\n`;
|
|
52
44
|
output += `The student is currently working through:\n`;
|
|
53
|
-
output += `- **Learning Path:** ${
|
|
54
|
-
output += `- **Current Module:** ${
|
|
45
|
+
output += `- **Learning Path:** ${lc.path_title}\n`;
|
|
46
|
+
output += `- **Current Module:** ${lc.current_module}\n\n`;
|
|
55
47
|
output += `Relate your answers to their current module topic when relevant.\n\n`;
|
|
48
|
+
// Module list with vibeuniv.com links
|
|
49
|
+
if (lc.modules && lc.modules.length > 0) {
|
|
50
|
+
output += `### Available Learning Modules\n\n`;
|
|
51
|
+
output += locale === "en"
|
|
52
|
+
? `Below are the student's learning modules. If a module is relevant to your answer, include a vibeuniv.com link:\n\n`
|
|
53
|
+
: `아래는 학생의 학습 모듈 목록입니다. 답변과 관련된 모듈이 있으면 vibeuniv.com 링크를 안내하세요:\n\n`;
|
|
54
|
+
for (const mod of lc.modules) {
|
|
55
|
+
output += `${mod.module_order}. [${mod.title}](https://vibeuniv.com/learning/${lc.learning_path_id}/${mod.id})\n`;
|
|
56
|
+
}
|
|
57
|
+
output += `\n`;
|
|
58
|
+
}
|
|
56
59
|
}
|
|
60
|
+
// Instruction to suggest learning links
|
|
61
|
+
output += locale === "en"
|
|
62
|
+
? `At the end, if a related module exists: 📚 Learn more → [Module name](link). If none, skip.\n\n`
|
|
63
|
+
: `답변 끝에 관련 모듈이 있으면: 📚 더 자세히 → [모듈명](링크) 형식으로 안내. 없으면 생략.\n\n`;
|
|
57
64
|
// User question
|
|
58
65
|
output += `### Student's Question\n\n`;
|
|
59
66
|
output += question;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask-tutor.js","sourceRoot":"","sources":["../../src/tools/ask-tutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;CAC9F,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAsB;IACxE,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,uFAAuF,EACvF,cAAc,EACd,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAC3C,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,iDAAiD,UAAU,KAAK,CAAC,CAAC;YAChF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAEzD,
|
|
1
|
+
{"version":3,"file":"ask-tutor.js","sourceRoot":"","sources":["../../src/tools/ask-tutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-curriculum.d.ts","sourceRoot":"","sources":["../../src/tools/generate-curriculum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-curriculum.d.ts","sourceRoot":"","sources":["../../src/tools/generate-curriculum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,eAAO,MAAM,wBAAwB;;;CAMpC,CAAC;AAoPF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA4X1F"}
|