@tienne/gestalt 0.12.3 → 0.14.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/README.ko.md +51 -1
- package/README.md +51 -1
- package/dist/package.json +5 -1
- package/dist/schemas/gestalt.schema.json +41 -3
- package/dist/skills/interview/SKILL.md +18 -1
- package/dist/src/agent/passthrough-generator.d.ts.map +1 -1
- package/dist/src/agent/passthrough-generator.js +3 -1
- package/dist/src/agent/passthrough-generator.js.map +1 -1
- package/dist/src/agent/role-agent-registry.d.ts.map +1 -1
- package/dist/src/agent/role-agent-registry.js.map +1 -1
- package/dist/src/agent/role-match-engine.d.ts.map +1 -1
- package/dist/src/agent/role-match-engine.js.map +1 -1
- package/dist/src/cli/commands/graph-visualize.d.ts.map +1 -1
- package/dist/src/cli/commands/graph-visualize.js +3 -1
- package/dist/src/cli/commands/graph-visualize.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/interview.d.ts.map +1 -1
- package/dist/src/cli/commands/interview.js +2 -2
- package/dist/src/cli/commands/interview.js.map +1 -1
- package/dist/src/cli/commands/spec.d.ts.map +1 -1
- package/dist/src/cli/commands/spec.js +2 -2
- package/dist/src/cli/commands/spec.js.map +1 -1
- package/dist/src/cli/commands/status.d.ts.map +1 -1
- package/dist/src/cli/commands/status.js.map +1 -1
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/code-graph/engine.d.ts.map +1 -1
- package/dist/src/code-graph/engine.js +16 -13
- package/dist/src/code-graph/engine.js.map +1 -1
- package/dist/src/code-graph/plugins/go.d.ts.map +1 -1
- package/dist/src/code-graph/plugins/go.js +28 -4
- package/dist/src/code-graph/plugins/go.js.map +1 -1
- package/dist/src/code-graph/plugins/java.d.ts.map +1 -1
- package/dist/src/code-graph/plugins/java.js +63 -11
- package/dist/src/code-graph/plugins/java.js.map +1 -1
- package/dist/src/code-graph/plugins/kotlin.d.ts.map +1 -1
- package/dist/src/code-graph/plugins/kotlin.js +50 -7
- package/dist/src/code-graph/plugins/kotlin.js.map +1 -1
- package/dist/src/code-graph/plugins/objc.d.ts.map +1 -1
- package/dist/src/code-graph/plugins/objc.js +70 -12
- package/dist/src/code-graph/plugins/objc.js.map +1 -1
- package/dist/src/code-graph/plugins/python.d.ts.map +1 -1
- package/dist/src/code-graph/plugins/python.js +28 -4
- package/dist/src/code-graph/plugins/python.js.map +1 -1
- package/dist/src/code-graph/plugins/rust.d.ts.map +1 -1
- package/dist/src/code-graph/plugins/rust.js +72 -12
- package/dist/src/code-graph/plugins/rust.js.map +1 -1
- package/dist/src/code-graph/plugins/swift.d.ts.map +1 -1
- package/dist/src/code-graph/plugins/swift.js +62 -8
- package/dist/src/code-graph/plugins/swift.js.map +1 -1
- package/dist/src/code-graph/plugins/typescript.d.ts.map +1 -1
- package/dist/src/code-graph/plugins/typescript.js +2 -2
- package/dist/src/code-graph/plugins/typescript.js.map +1 -1
- package/dist/src/code-graph/providers/local-embedding.js +1 -1
- package/dist/src/code-graph/providers/local-embedding.js.map +1 -1
- package/dist/src/code-graph/storage.d.ts.map +1 -1
- package/dist/src/code-graph/storage.js +1 -3
- package/dist/src/code-graph/storage.js.map +1 -1
- package/dist/src/core/config.d.ts +138 -1
- package/dist/src/core/config.d.ts.map +1 -1
- package/dist/src/core/config.js +36 -3
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/constants.d.ts.map +1 -1
- package/dist/src/core/constants.js +6 -6
- package/dist/src/core/constants.js.map +1 -1
- package/dist/src/core/result.d.ts.map +1 -1
- package/dist/src/core/result.js.map +1 -1
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/execute/audit-engine.d.ts.map +1 -1
- package/dist/src/execute/audit-engine.js +1 -3
- package/dist/src/execute/audit-engine.js.map +1 -1
- package/dist/src/execute/dag-validator.d.ts.map +1 -1
- package/dist/src/execute/dag-validator.js.map +1 -1
- package/dist/src/execute/parallel-groups.d.ts.map +1 -1
- package/dist/src/execute/parallel-groups.js.map +1 -1
- package/dist/src/execute/passthrough-engine.d.ts.map +1 -1
- package/dist/src/execute/passthrough-engine.js +34 -14
- package/dist/src/execute/passthrough-engine.js.map +1 -1
- package/dist/src/execute/prompts.d.ts.map +1 -1
- package/dist/src/execute/prompts.js +2 -4
- package/dist/src/execute/prompts.js.map +1 -1
- package/dist/src/execute/repository.d.ts.map +1 -1
- package/dist/src/execute/repository.js.map +1 -1
- package/dist/src/execute/session.d.ts.map +1 -1
- package/dist/src/execute/session.js +2 -1
- package/dist/src/execute/session.js.map +1 -1
- package/dist/src/execute/termination-detector.d.ts.map +1 -1
- package/dist/src/execute/termination-detector.js +3 -2
- package/dist/src/execute/termination-detector.js.map +1 -1
- package/dist/src/gestalt/analyzer.d.ts.map +1 -1
- package/dist/src/gestalt/analyzer.js +1 -2
- package/dist/src/gestalt/analyzer.js.map +1 -1
- package/dist/src/gestalt/principles.d.ts.map +1 -1
- package/dist/src/gestalt/principles.js +1 -3
- package/dist/src/gestalt/principles.js.map +1 -1
- package/dist/src/interview/engine.d.ts.map +1 -1
- package/dist/src/interview/engine.js +4 -1
- package/dist/src/interview/engine.js.map +1 -1
- package/dist/src/interview/mini-interview-engine.d.ts.map +1 -1
- package/dist/src/interview/mini-interview-engine.js +1 -3
- package/dist/src/interview/mini-interview-engine.js.map +1 -1
- package/dist/src/interview/passthrough-engine.d.ts.map +1 -1
- package/dist/src/interview/passthrough-engine.js +7 -3
- package/dist/src/interview/passthrough-engine.js.map +1 -1
- package/dist/src/interview/repository.d.ts.map +1 -1
- package/dist/src/interview/repository.js.map +1 -1
- package/dist/src/interview/resolution.js +1 -3
- package/dist/src/interview/resolution.js.map +1 -1
- package/dist/src/interview/session.d.ts.map +1 -1
- package/dist/src/interview/session.js.map +1 -1
- package/dist/src/knowledge-base/embedding-index.d.ts +11 -0
- package/dist/src/knowledge-base/embedding-index.d.ts.map +1 -0
- package/dist/src/knowledge-base/embedding-index.js +31 -0
- package/dist/src/knowledge-base/embedding-index.js.map +1 -0
- package/dist/src/knowledge-base/embedding.d.ts +19 -0
- package/dist/src/knowledge-base/embedding.d.ts.map +1 -0
- package/dist/src/knowledge-base/embedding.js +39 -0
- package/dist/src/knowledge-base/embedding.js.map +1 -0
- package/dist/src/knowledge-base/generator.d.ts +11 -0
- package/dist/src/knowledge-base/generator.d.ts.map +1 -0
- package/dist/src/knowledge-base/generator.js +91 -0
- package/dist/src/knowledge-base/generator.js.map +1 -0
- package/dist/src/knowledge-base/search.d.ts +12 -0
- package/dist/src/knowledge-base/search.d.ts.map +1 -0
- package/dist/src/knowledge-base/search.js +106 -0
- package/dist/src/knowledge-base/search.js.map +1 -0
- package/dist/src/knowledge-base/templates.d.ts +6 -0
- package/dist/src/knowledge-base/templates.d.ts.map +1 -0
- package/dist/src/knowledge-base/templates.js +27 -0
- package/dist/src/knowledge-base/templates.js.map +1 -0
- package/dist/src/knowledge-base/types.d.ts +29 -0
- package/dist/src/knowledge-base/types.d.ts.map +1 -0
- package/dist/src/knowledge-base/types.js +2 -0
- package/dist/src/knowledge-base/types.js.map +1 -0
- package/dist/src/knowledge-base/writer.d.ts +7 -0
- package/dist/src/knowledge-base/writer.d.ts.map +1 -0
- package/dist/src/knowledge-base/writer.js +21 -0
- package/dist/src/knowledge-base/writer.js.map +1 -0
- package/dist/src/llm/adapter.d.ts.map +1 -1
- package/dist/src/llm/adapter.js.map +1 -1
- package/dist/src/llm/factory.d.ts +24 -0
- package/dist/src/llm/factory.d.ts.map +1 -0
- package/dist/src/llm/factory.js +75 -0
- package/dist/src/llm/factory.js.map +1 -0
- package/dist/src/llm/openai-adapter.d.ts +1 -1
- package/dist/src/llm/openai-adapter.d.ts.map +1 -1
- package/dist/src/llm/openai-adapter.js +2 -2
- package/dist/src/llm/openai-adapter.js.map +1 -1
- package/dist/src/mcp/schemas.d.ts.map +1 -1
- package/dist/src/mcp/schemas.js +224 -88
- package/dist/src/mcp/schemas.js.map +1 -1
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +322 -109
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/mcp/tools/benchmark-passthrough.js +1 -1
- package/dist/src/mcp/tools/benchmark-passthrough.js.map +1 -1
- package/dist/src/mcp/tools/create-agent-passthrough.d.ts.map +1 -1
- package/dist/src/mcp/tools/create-agent-passthrough.js.map +1 -1
- package/dist/src/mcp/tools/execute-passthrough.d.ts.map +1 -1
- package/dist/src/mcp/tools/execute-passthrough.js +71 -30
- package/dist/src/mcp/tools/execute-passthrough.js.map +1 -1
- package/dist/src/mcp/tools/generate-kb.d.ts +8 -0
- package/dist/src/mcp/tools/generate-kb.d.ts.map +1 -0
- package/dist/src/mcp/tools/generate-kb.js +52 -0
- package/dist/src/mcp/tools/generate-kb.js.map +1 -0
- package/dist/src/mcp/tools/graph-visualize-passthrough.d.ts.map +1 -1
- package/dist/src/mcp/tools/graph-visualize-passthrough.js.map +1 -1
- package/dist/src/mcp/tools/interview-passthrough.d.ts.map +1 -1
- package/dist/src/mcp/tools/interview-passthrough.js +7 -3
- package/dist/src/mcp/tools/interview-passthrough.js.map +1 -1
- package/dist/src/mcp/tools/interview.d.ts.map +1 -1
- package/dist/src/mcp/tools/interview.js +4 -2
- package/dist/src/mcp/tools/interview.js.map +1 -1
- package/dist/src/mcp/tools/review-passthrough.js +1 -1
- package/dist/src/mcp/tools/review-passthrough.js.map +1 -1
- package/dist/src/mcp/tools/search-kb.d.ts +9 -0
- package/dist/src/mcp/tools/search-kb.d.ts.map +1 -0
- package/dist/src/mcp/tools/search-kb.js +26 -0
- package/dist/src/mcp/tools/search-kb.js.map +1 -0
- package/dist/src/mcp/tools/spec-passthrough.d.ts.map +1 -1
- package/dist/src/mcp/tools/spec-passthrough.js.map +1 -1
- package/dist/src/mcp/tools/spec.d.ts.map +1 -1
- package/dist/src/mcp/tools/spec.js.map +1 -1
- package/dist/src/mcp/tools/status.d.ts.map +1 -1
- package/dist/src/mcp/tools/status.js +1 -1
- package/dist/src/mcp/tools/status.js.map +1 -1
- package/dist/src/mcp/tools/sync-kb.d.ts +6 -0
- package/dist/src/mcp/tools/sync-kb.d.ts.map +1 -0
- package/dist/src/mcp/tools/sync-kb.js +23 -0
- package/dist/src/mcp/tools/sync-kb.js.map +1 -0
- package/dist/src/memory/memory-context-injector.d.ts.map +1 -1
- package/dist/src/memory/memory-context-injector.js +2 -6
- package/dist/src/memory/memory-context-injector.js.map +1 -1
- package/dist/src/memory/user-profile-store.d.ts.map +1 -1
- package/dist/src/memory/user-profile-store.js +1 -4
- package/dist/src/memory/user-profile-store.js.map +1 -1
- package/dist/src/recording/agg-converter.d.ts.map +1 -1
- package/dist/src/recording/agg-converter.js.map +1 -1
- package/dist/src/recording/agg-installer.d.ts.map +1 -1
- package/dist/src/recording/agg-installer.js.map +1 -1
- package/dist/src/recording/asciinema-installer.d.ts.map +1 -1
- package/dist/src/recording/asciinema-installer.js.map +1 -1
- package/dist/src/recording/asciinema-recorder.d.ts.map +1 -1
- package/dist/src/recording/asciinema-recorder.js.map +1 -1
- package/dist/src/recording/cast-generator.d.ts.map +1 -1
- package/dist/src/recording/cast-generator.js +38 -13
- package/dist/src/recording/cast-generator.js.map +1 -1
- package/dist/src/recording/filename-generator.d.ts.map +1 -1
- package/dist/src/recording/filename-generator.js +2 -2
- package/dist/src/recording/filename-generator.js.map +1 -1
- package/dist/src/recording/recording-orchestrator.d.ts.map +1 -1
- package/dist/src/recording/recording-orchestrator.js.map +1 -1
- package/dist/src/registry/base-registry.d.ts.map +1 -1
- package/dist/src/registry/base-registry.js.map +1 -1
- package/dist/src/resilience/lateral.d.ts.map +1 -1
- package/dist/src/resilience/lateral.js +6 -1
- package/dist/src/resilience/lateral.js.map +1 -1
- package/dist/src/resilience/prompts.d.ts.map +1 -1
- package/dist/src/resilience/prompts.js.map +1 -1
- package/dist/src/review/agent-matcher.d.ts.map +1 -1
- package/dist/src/review/agent-matcher.js.map +1 -1
- package/dist/src/review/context-collector.d.ts.map +1 -1
- package/dist/src/review/context-collector.js.map +1 -1
- package/dist/src/review/passthrough-engine.d.ts.map +1 -1
- package/dist/src/review/passthrough-engine.js +1 -3
- package/dist/src/review/passthrough-engine.js.map +1 -1
- package/dist/src/review/report-generator.d.ts.map +1 -1
- package/dist/src/review/report-generator.js.map +1 -1
- package/dist/src/scripts/postinstall.js +3 -1
- package/dist/src/scripts/postinstall.js.map +1 -1
- package/dist/src/spec/generator.d.ts.map +1 -1
- package/dist/src/spec/generator.js.map +1 -1
- package/dist/src/spec/passthrough-generator.d.ts.map +1 -1
- package/dist/src/spec/passthrough-generator.js.map +1 -1
- package/dist/src/spec/schema.js +1 -1
- package/dist/src/spec/schema.js.map +1 -1
- package/dist/src/spec/text-based-spec-generator.d.ts.map +1 -1
- package/dist/src/spec/text-based-spec-generator.js +3 -1
- package/dist/src/spec/text-based-spec-generator.js.map +1 -1
- package/dist/src/tui/hooks/event-store-reader.d.ts.map +1 -1
- package/dist/src/tui/hooks/event-store-reader.js +1 -3
- package/dist/src/tui/hooks/event-store-reader.js.map +1 -1
- package/dist/src/tui/hooks/useEventStorePoller.d.ts.map +1 -1
- package/dist/src/tui/hooks/useEventStorePoller.js +1 -3
- package/dist/src/tui/hooks/useEventStorePoller.js.map +1 -1
- package/package.json +5 -1
- package/schemas/gestalt.schema.json +41 -3
- package/skills/interview/SKILL.md +18 -1
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import matter from 'gray-matter';
|
|
4
|
+
import { EmbeddingService } from './embedding.js';
|
|
5
|
+
import { loadEmbeddingIndex } from './embedding-index.js';
|
|
6
|
+
import { log } from '../core/log.js';
|
|
7
|
+
export class SemanticSearchEngine {
|
|
8
|
+
embeddingService;
|
|
9
|
+
constructor() {
|
|
10
|
+
this.embeddingService = new EmbeddingService();
|
|
11
|
+
}
|
|
12
|
+
async search(query, kbPath, options) {
|
|
13
|
+
const k = options?.k ?? 5;
|
|
14
|
+
const types = options?.types;
|
|
15
|
+
log(`search: loading embedding index from ${kbPath}`);
|
|
16
|
+
const index = await loadEmbeddingIndex(kbPath);
|
|
17
|
+
if (!index || index.entries.length === 0) {
|
|
18
|
+
log('search: no embedding index found, returning empty results');
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
log(`search: computing query embedding for "${query}"`);
|
|
22
|
+
const queryVector = await this.embeddingService.embed(query);
|
|
23
|
+
// 각 EmbeddingEntry에 대해 코사인 유사도 계산
|
|
24
|
+
const scored = [];
|
|
25
|
+
for (const embEntry of index.entries) {
|
|
26
|
+
// types 필터: filePath에서 타입 디렉토리 추출
|
|
27
|
+
if (types && types.length > 0) {
|
|
28
|
+
// .gestalt-kb/{type}/{id}.md 패턴에서 type 추출
|
|
29
|
+
const parts = embEntry.filePath.replace(/\\/g, '/').split('/');
|
|
30
|
+
// parts 예: ['.gestalt-kb', 'code-graph', 'uuid.md'] 또는 절대경로
|
|
31
|
+
// kbPath 기준 상대 경로를 구성해서 두 번째 세그먼트를 type으로 간주
|
|
32
|
+
const rel = embEntry.filePath.startsWith(kbPath)
|
|
33
|
+
? embEntry.filePath.slice(kbPath.length).replace(/^[/\\]/, '')
|
|
34
|
+
: parts.slice(-2).join('/');
|
|
35
|
+
const typeSegment = rel.split('/')[0] ?? '';
|
|
36
|
+
if (!types.includes(typeSegment)) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const score = this.cosineSimilarity(queryVector, embEntry.vector);
|
|
41
|
+
scored.push({ entryId: embEntry.entryId, filePath: embEntry.filePath, score });
|
|
42
|
+
}
|
|
43
|
+
// 내림차순 정렬 후 상위 k개 선택
|
|
44
|
+
scored.sort((a, b) => b.score - a.score);
|
|
45
|
+
const topK = scored.slice(0, k);
|
|
46
|
+
log(`search: top ${topK.length} results (from ${scored.length} candidates)`);
|
|
47
|
+
// KnowledgeEntry 로드 및 SearchResult 조합
|
|
48
|
+
const results = [];
|
|
49
|
+
for (let i = 0; i < topK.length; i++) {
|
|
50
|
+
const item = topK[i];
|
|
51
|
+
// filePath가 절대경로면 그대로, 상대경로면 kbPath 기준으로 resolve
|
|
52
|
+
const resolvedPath = path.isAbsolute(item.filePath)
|
|
53
|
+
? item.filePath
|
|
54
|
+
: path.join(kbPath, item.filePath.replace(/^\.gestalt-kb[/\\]/, ''));
|
|
55
|
+
const entry = await this.loadEntry(resolvedPath);
|
|
56
|
+
if (!entry)
|
|
57
|
+
continue;
|
|
58
|
+
results.push({
|
|
59
|
+
entry,
|
|
60
|
+
score: item.score,
|
|
61
|
+
excerpt: entry.content.slice(0, 200),
|
|
62
|
+
rank: i + 1,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return results;
|
|
66
|
+
}
|
|
67
|
+
cosineSimilarity(a, b) {
|
|
68
|
+
if (a.length !== b.length || a.length === 0)
|
|
69
|
+
return 0;
|
|
70
|
+
let dot = 0;
|
|
71
|
+
let normA = 0;
|
|
72
|
+
let normB = 0;
|
|
73
|
+
for (let i = 0; i < a.length; i++) {
|
|
74
|
+
const ai = a[i];
|
|
75
|
+
const bi = b[i];
|
|
76
|
+
dot += ai * bi;
|
|
77
|
+
normA += ai * ai;
|
|
78
|
+
normB += bi * bi;
|
|
79
|
+
}
|
|
80
|
+
const denom = Math.sqrt(normA) * Math.sqrt(normB);
|
|
81
|
+
if (denom === 0)
|
|
82
|
+
return 0;
|
|
83
|
+
return dot / denom;
|
|
84
|
+
}
|
|
85
|
+
async loadEntry(filePath) {
|
|
86
|
+
try {
|
|
87
|
+
const raw = await fs.readFile(filePath, 'utf-8');
|
|
88
|
+
const parsed = matter(raw);
|
|
89
|
+
const data = parsed.data;
|
|
90
|
+
return {
|
|
91
|
+
id: String(data['id'] ?? ''),
|
|
92
|
+
type: data['type'] ?? 'code-graph',
|
|
93
|
+
title: String(data['title'] ?? ''),
|
|
94
|
+
content: parsed.content,
|
|
95
|
+
filePath: String(data['filePath'] ?? filePath),
|
|
96
|
+
createdAt: String(data['createdAt'] ?? new Date().toISOString()),
|
|
97
|
+
tags: Array.isArray(data['tags']) ? data['tags'] : [],
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
log(`search: failed to load entry at ${filePath}: ${String(err)}`);
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/knowledge-base/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/knowledge-base/templates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,YAAY,CAAC;AAqBrE;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAK5D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import matter from 'gray-matter';
|
|
2
|
+
function buildFrontmatter(entry) {
|
|
3
|
+
const base = {
|
|
4
|
+
id: entry.id,
|
|
5
|
+
type: entry.type,
|
|
6
|
+
title: entry.title,
|
|
7
|
+
tags: entry.tags,
|
|
8
|
+
};
|
|
9
|
+
const byType = {
|
|
10
|
+
'code-graph': { ...base, filePath: entry.filePath },
|
|
11
|
+
'business-logic': base,
|
|
12
|
+
'api-spec': base,
|
|
13
|
+
adr: { ...base, date: entry.createdAt },
|
|
14
|
+
policy: base,
|
|
15
|
+
};
|
|
16
|
+
return byType[entry.type] ?? base;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* KnowledgeEntry를 gray-matter 형식 frontmatter + content body 마크다운으로 직렬화한다.
|
|
20
|
+
*/
|
|
21
|
+
export function renderMarkdown(entry) {
|
|
22
|
+
const frontmatter = buildFrontmatter(entry);
|
|
23
|
+
// gray-matter의 stringify는 두 번째 인자로 data를 받고 세 번째 인자로 content를 받는다.
|
|
24
|
+
// matter.stringify(content, data) 형식으로 사용한다.
|
|
25
|
+
return matter.stringify(entry.content, frontmatter);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/knowledge-base/templates.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,SAAS,gBAAgB,CAAC,KAAqB;IAC7C,MAAM,IAAI,GAA4B;QACpC,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;IAEF,MAAM,MAAM,GAAiE;QAC3E,YAAY,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;QACnD,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE;QACvC,MAAM,EAAE,IAAI;KACb,CAAC;IAEF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAqB;IAClD,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5C,mEAAmE;IACnE,6CAA6C;IAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type KnowledgeEntryType = 'code-graph' | 'business-logic' | 'api-spec' | 'adr' | 'policy';
|
|
2
|
+
export interface KnowledgeEntry {
|
|
3
|
+
id: string;
|
|
4
|
+
type: KnowledgeEntryType;
|
|
5
|
+
title: string;
|
|
6
|
+
content: string;
|
|
7
|
+
filePath: string;
|
|
8
|
+
createdAt: string;
|
|
9
|
+
tags: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface EmbeddingEntry {
|
|
12
|
+
entryId: string;
|
|
13
|
+
filePath: string;
|
|
14
|
+
vector: number[];
|
|
15
|
+
createdAt: string;
|
|
16
|
+
}
|
|
17
|
+
export interface EmbeddingIndex {
|
|
18
|
+
model: string;
|
|
19
|
+
dimension: number;
|
|
20
|
+
entries: EmbeddingEntry[];
|
|
21
|
+
createdAt: string;
|
|
22
|
+
}
|
|
23
|
+
export interface SearchResult {
|
|
24
|
+
entry: KnowledgeEntry;
|
|
25
|
+
score: number;
|
|
26
|
+
excerpt: string;
|
|
27
|
+
rank: number;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/knowledge-base/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,gBAAgB,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjG,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/knowledge-base/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { KnowledgeEntry } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* KnowledgeEntry 배열을 .gestalt-kb/ 하위 MD 파일로 저장한다.
|
|
4
|
+
* 경로: {outputPath}/{entry.type}/{entry.id}.md
|
|
5
|
+
*/
|
|
6
|
+
export declare function writeKnowledgeBase(entries: KnowledgeEntry[], outputPath: string): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../../src/knowledge-base/writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAef"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { log } from '../core/log.js';
|
|
4
|
+
import { renderMarkdown } from './templates.js';
|
|
5
|
+
/**
|
|
6
|
+
* KnowledgeEntry 배열을 .gestalt-kb/ 하위 MD 파일로 저장한다.
|
|
7
|
+
* 경로: {outputPath}/{entry.type}/{entry.id}.md
|
|
8
|
+
*/
|
|
9
|
+
export async function writeKnowledgeBase(entries, outputPath) {
|
|
10
|
+
log(`knowledge-base: writing ${entries.length} entries to ${outputPath}`);
|
|
11
|
+
for (const entry of entries) {
|
|
12
|
+
const dir = join(outputPath, entry.type);
|
|
13
|
+
await mkdir(dir, { recursive: true });
|
|
14
|
+
const filePath = join(dir, `${entry.id}.md`);
|
|
15
|
+
const content = renderMarkdown(entry);
|
|
16
|
+
await writeFile(filePath, content, 'utf-8');
|
|
17
|
+
log(`knowledge-base: wrote ${filePath}`);
|
|
18
|
+
}
|
|
19
|
+
log(`knowledge-base: done`);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../src/knowledge-base/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAyB,EACzB,UAAkB;IAElB,GAAG,CAAC,2BAA2B,OAAO,CAAC,MAAM,eAAe,UAAU,EAAE,CAAC,CAAC;IAE1E,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAE5C,GAAG,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/llm/adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtE,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAKnC,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/llm/adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtE,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAKnC,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;CA8BtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/llm/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAY;IAClB,KAAK,CAAS;IAEtB,YAAY,MAAc,EAAE,KAAa;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAmB;QAC5B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACjD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,cAAc;gBAC/C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,eAAe;gBACnD,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC,CAAC;aACJ,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5C,MAAM,IAAI,QAAQ,CAAC,iCAAiC,CAAC,CAAC;YACxD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,SAAS,CAAC,IAAI;gBACvB,KAAK,EAAE;oBACL,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;oBACxC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;iBAC3C;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,MAAM,CAAC,CAAC;YACnC,MAAM,IAAI,QAAQ,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/llm/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAY;IAClB,KAAK,CAAS;IAEtB,YAAY,MAAc,EAAE,KAAa;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAmB;QAC5B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACjD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,cAAc;gBAC/C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,eAAe;gBACnD,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC,CAAC;aACJ,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5C,MAAM,IAAI,QAAQ,CAAC,iCAAiC,CAAC,CAAC;YACxD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,SAAS,CAAC,IAAI;gBACvB,KAAK,EAAE;oBACL,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;oBACxC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;iBAC3C;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,MAAM,CAAC,CAAC;YACnC,MAAM,IAAI,QAAQ,CAAC,wBAAwB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { GestaltConfig, LLMTierConfig } from '../core/config.js';
|
|
2
|
+
import type { LLMAdapter } from './types.js';
|
|
3
|
+
import type { TierMapping } from '../agent/figural-router.js';
|
|
4
|
+
/**
|
|
5
|
+
* tier config 또는 flat config(apiKey + model)에서 LLMAdapter를 생성한다.
|
|
6
|
+
* flat config인 경우 Anthropic을 기본 provider로 사용한다.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createAdapter(llmConfig: GestaltConfig['llm']): LLMAdapter;
|
|
9
|
+
/**
|
|
10
|
+
* LLMTierConfig에서 provider별 LLMAdapter를 생성한다.
|
|
11
|
+
* tier config에 apiKey가 없으면 flat config의 apiKey를 fallback으로 사용한다.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createAdapterFromTierConfig(tierCfg: LLMTierConfig, llmConfig: GestaltConfig['llm']): LLMAdapter;
|
|
14
|
+
/**
|
|
15
|
+
* GestaltConfig에서 FiguralRouter용 TierMapping을 생성한다.
|
|
16
|
+
* tier 설정이 없는 경우 flat config(apiKey + model)로 모든 tier에 AnthropicAdapter를 할당한다.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createTierMapping(config: GestaltConfig): TierMapping;
|
|
19
|
+
/**
|
|
20
|
+
* LLM API 키가 설정되어 있는지 확인한다.
|
|
21
|
+
* flat config의 apiKey 또는 any tier의 apiKey가 있으면 true.
|
|
22
|
+
*/
|
|
23
|
+
export declare function hasLLMApiKey(config: GestaltConfig): boolean;
|
|
24
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/llm/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAItE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAI9D;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,UAAU,CASzE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,GAC9B,UAAU,CAWZ;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAwBpE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAO3D"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { DEFAULT_MODEL } from '../core/constants.js';
|
|
2
|
+
import { LLMError } from '../core/errors.js';
|
|
3
|
+
import { AnthropicAdapter } from './adapter.js';
|
|
4
|
+
import { OpenAIAdapter } from './openai-adapter.js';
|
|
5
|
+
/**
|
|
6
|
+
* tier config 또는 flat config(apiKey + model)에서 LLMAdapter를 생성한다.
|
|
7
|
+
* flat config인 경우 Anthropic을 기본 provider로 사용한다.
|
|
8
|
+
*/
|
|
9
|
+
export function createAdapter(llmConfig) {
|
|
10
|
+
// standard tier가 있으면 그것으로, 없으면 flat config 사용
|
|
11
|
+
const tierCfg = llmConfig.standard;
|
|
12
|
+
if (tierCfg) {
|
|
13
|
+
return createAdapterFromTierConfig(tierCfg, llmConfig);
|
|
14
|
+
}
|
|
15
|
+
// flat config fallback (기존 호환)
|
|
16
|
+
return new AnthropicAdapter(llmConfig.apiKey, llmConfig.model);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* LLMTierConfig에서 provider별 LLMAdapter를 생성한다.
|
|
20
|
+
* tier config에 apiKey가 없으면 flat config의 apiKey를 fallback으로 사용한다.
|
|
21
|
+
*/
|
|
22
|
+
export function createAdapterFromTierConfig(tierCfg, llmConfig) {
|
|
23
|
+
const apiKey = tierCfg.apiKey ?? llmConfig.apiKey;
|
|
24
|
+
switch (tierCfg.provider) {
|
|
25
|
+
case 'anthropic':
|
|
26
|
+
return new AnthropicAdapter(apiKey, tierCfg.model);
|
|
27
|
+
case 'openai':
|
|
28
|
+
return new OpenAIAdapter(apiKey, tierCfg.model, tierCfg.baseURL);
|
|
29
|
+
default:
|
|
30
|
+
throw new LLMError(`Unsupported LLM provider: ${String(tierCfg.provider)}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* GestaltConfig에서 FiguralRouter용 TierMapping을 생성한다.
|
|
35
|
+
* tier 설정이 없는 경우 flat config(apiKey + model)로 모든 tier에 AnthropicAdapter를 할당한다.
|
|
36
|
+
*/
|
|
37
|
+
export function createTierMapping(config) {
|
|
38
|
+
const llm = config.llm;
|
|
39
|
+
const tiers = ['frugal', 'standard', 'frontier'];
|
|
40
|
+
const mapping = {};
|
|
41
|
+
for (const tier of tiers) {
|
|
42
|
+
const tierCfg = llm[tier];
|
|
43
|
+
if (tierCfg) {
|
|
44
|
+
mapping[tier] = {
|
|
45
|
+
provider: tierCfg.provider,
|
|
46
|
+
model: tierCfg.model,
|
|
47
|
+
adapter: createAdapterFromTierConfig(tierCfg, llm),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// flat config fallback
|
|
52
|
+
mapping[tier] = {
|
|
53
|
+
provider: 'anthropic',
|
|
54
|
+
model: llm.model || DEFAULT_MODEL,
|
|
55
|
+
adapter: new AnthropicAdapter(llm.apiKey, llm.model || DEFAULT_MODEL),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return mapping;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* LLM API 키가 설정되어 있는지 확인한다.
|
|
63
|
+
* flat config의 apiKey 또는 any tier의 apiKey가 있으면 true.
|
|
64
|
+
*/
|
|
65
|
+
export function hasLLMApiKey(config) {
|
|
66
|
+
if (config.llm.apiKey)
|
|
67
|
+
return true;
|
|
68
|
+
const tiers = ['frugal', 'standard', 'frontier'];
|
|
69
|
+
for (const tier of tiers) {
|
|
70
|
+
if (config.llm[tier]?.apiKey)
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/llm/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,SAA+B;IAC3D,8CAA8C;IAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,2BAA2B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,+BAA+B;IAC/B,OAAO,IAAI,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAsB,EACtB,SAA+B;IAE/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC;IAElD,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,WAAW;YACd,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACrD,KAAK,QAAQ;YACX,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACnE;YACE,MAAM,IAAI,QAAQ,CAAC,6BAA6B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvB,MAAM,KAAK,GAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,EAA+C,CAAC;IAEhE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,GAAG;gBACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,2BAA2B,CAAC,OAAO,EAAE,GAAG,CAAC;aACnD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,uBAAuB;YACvB,OAAO,CAAC,IAAI,CAAC,GAAG;gBACd,QAAQ,EAAE,WAAW;gBACrB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,aAAa;gBACjC,OAAO,EAAE,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,aAAa,CAAC;aACtE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,OAAsB,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,KAAK,GAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;IAC5C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type { LLMAdapter, LLMRequest, LLMResponse } from './types.js';
|
|
|
2
2
|
export declare class OpenAIAdapter implements LLMAdapter {
|
|
3
3
|
private client;
|
|
4
4
|
private model;
|
|
5
|
-
constructor(apiKey: string, model: string);
|
|
5
|
+
constructor(apiKey: string, model: string, baseURL?: string);
|
|
6
6
|
chat(request: LLMRequest): Promise<LLMResponse>;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=openai-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-adapter.d.ts","sourceRoot":"","sources":["../../../src/llm/openai-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtE,qBAAa,aAAc,YAAW,UAAU;IAC9C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"openai-adapter.d.ts","sourceRoot":"","sources":["../../../src/llm/openai-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtE,qBAAa,aAAc,YAAW,UAAU;IAC9C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAKrD,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;CAoCtD"}
|
|
@@ -4,8 +4,8 @@ import { LLMError } from '../core/errors.js';
|
|
|
4
4
|
export class OpenAIAdapter {
|
|
5
5
|
client;
|
|
6
6
|
model;
|
|
7
|
-
constructor(apiKey, model) {
|
|
8
|
-
this.client = new OpenAI({ apiKey });
|
|
7
|
+
constructor(apiKey, model, baseURL) {
|
|
8
|
+
this.client = new OpenAI({ apiKey, ...(baseURL ? { baseURL } : {}) });
|
|
9
9
|
this.model = model;
|
|
10
10
|
}
|
|
11
11
|
async chat(request) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-adapter.js","sourceRoot":"","sources":["../../../src/llm/openai-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,MAAM,OAAO,aAAa;IAChB,MAAM,CAAS;IACf,KAAK,CAAS;IAEtB,YAAY,MAAc,EAAE,KAAa;
|
|
1
|
+
{"version":3,"file":"openai-adapter.js","sourceRoot":"","sources":["../../../src/llm/openai-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,MAAM,OAAO,aAAa;IAChB,MAAM,CAAS;IACf,KAAK,CAAS;IAEtB,YAAY,MAAc,EAAE,KAAa,EAAE,OAAgB;QACzD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAmB;QAC5B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAwC,EAAE,CAAC;YAEzD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACzD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,cAAc;gBAC/C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,eAAe;gBACnD,QAAQ;aACT,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;gBAC9B,MAAM,IAAI,QAAQ,CAAC,+BAA+B,CAAC,CAAC;YACtD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;gBAC/B,KAAK,EAAE;oBACL,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;oBAC/C,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC;iBACrD;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,MAAM,CAAC,CAAC;YACnC,MAAM,IAAI,QAAQ,CAAC,qBAAqB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/mcp/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/mcp/schemas.ts"],"names":[],"mappings":"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"}
|