@yuaone/core 0.1.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 (235) hide show
  1. package/LICENSE +663 -0
  2. package/README.md +15 -0
  3. package/dist/__tests__/context-manager.test.d.ts +6 -0
  4. package/dist/__tests__/context-manager.test.d.ts.map +1 -0
  5. package/dist/__tests__/context-manager.test.js +220 -0
  6. package/dist/__tests__/context-manager.test.js.map +1 -0
  7. package/dist/__tests__/governor.test.d.ts +6 -0
  8. package/dist/__tests__/governor.test.d.ts.map +1 -0
  9. package/dist/__tests__/governor.test.js +210 -0
  10. package/dist/__tests__/governor.test.js.map +1 -0
  11. package/dist/__tests__/model-router.test.d.ts +6 -0
  12. package/dist/__tests__/model-router.test.d.ts.map +1 -0
  13. package/dist/__tests__/model-router.test.js +329 -0
  14. package/dist/__tests__/model-router.test.js.map +1 -0
  15. package/dist/agent-logger.d.ts +384 -0
  16. package/dist/agent-logger.d.ts.map +1 -0
  17. package/dist/agent-logger.js +820 -0
  18. package/dist/agent-logger.js.map +1 -0
  19. package/dist/agent-loop.d.ts +163 -0
  20. package/dist/agent-loop.d.ts.map +1 -0
  21. package/dist/agent-loop.js +609 -0
  22. package/dist/agent-loop.js.map +1 -0
  23. package/dist/agent-modes.d.ts +85 -0
  24. package/dist/agent-modes.d.ts.map +1 -0
  25. package/dist/agent-modes.js +418 -0
  26. package/dist/agent-modes.js.map +1 -0
  27. package/dist/approval.d.ts +137 -0
  28. package/dist/approval.d.ts.map +1 -0
  29. package/dist/approval.js +299 -0
  30. package/dist/approval.js.map +1 -0
  31. package/dist/async-completion-queue.d.ts +56 -0
  32. package/dist/async-completion-queue.d.ts.map +1 -0
  33. package/dist/async-completion-queue.js +77 -0
  34. package/dist/async-completion-queue.js.map +1 -0
  35. package/dist/auto-fix.d.ts +174 -0
  36. package/dist/auto-fix.d.ts.map +1 -0
  37. package/dist/auto-fix.js +319 -0
  38. package/dist/auto-fix.js.map +1 -0
  39. package/dist/codebase-context.d.ts +396 -0
  40. package/dist/codebase-context.d.ts.map +1 -0
  41. package/dist/codebase-context.js +1260 -0
  42. package/dist/codebase-context.js.map +1 -0
  43. package/dist/conflict-resolver.d.ts +191 -0
  44. package/dist/conflict-resolver.d.ts.map +1 -0
  45. package/dist/conflict-resolver.js +524 -0
  46. package/dist/conflict-resolver.js.map +1 -0
  47. package/dist/constants.d.ts +52 -0
  48. package/dist/constants.d.ts.map +1 -0
  49. package/dist/constants.js +141 -0
  50. package/dist/constants.js.map +1 -0
  51. package/dist/context-budget.d.ts +435 -0
  52. package/dist/context-budget.d.ts.map +1 -0
  53. package/dist/context-budget.js +903 -0
  54. package/dist/context-budget.js.map +1 -0
  55. package/dist/context-compressor.d.ts +143 -0
  56. package/dist/context-compressor.d.ts.map +1 -0
  57. package/dist/context-compressor.js +511 -0
  58. package/dist/context-compressor.js.map +1 -0
  59. package/dist/context-manager.d.ts +112 -0
  60. package/dist/context-manager.d.ts.map +1 -0
  61. package/dist/context-manager.js +247 -0
  62. package/dist/context-manager.js.map +1 -0
  63. package/dist/continuous-reflection.d.ts +267 -0
  64. package/dist/continuous-reflection.d.ts.map +1 -0
  65. package/dist/continuous-reflection.js +338 -0
  66. package/dist/continuous-reflection.js.map +1 -0
  67. package/dist/cross-file-refactor.d.ts +352 -0
  68. package/dist/cross-file-refactor.d.ts.map +1 -0
  69. package/dist/cross-file-refactor.js +1544 -0
  70. package/dist/cross-file-refactor.js.map +1 -0
  71. package/dist/dag-orchestrator.d.ts +138 -0
  72. package/dist/dag-orchestrator.d.ts.map +1 -0
  73. package/dist/dag-orchestrator.js +379 -0
  74. package/dist/dag-orchestrator.js.map +1 -0
  75. package/dist/debate-orchestrator.d.ts +301 -0
  76. package/dist/debate-orchestrator.d.ts.map +1 -0
  77. package/dist/debate-orchestrator.js +719 -0
  78. package/dist/debate-orchestrator.js.map +1 -0
  79. package/dist/dependency-analyzer.d.ts +113 -0
  80. package/dist/dependency-analyzer.d.ts.map +1 -0
  81. package/dist/dependency-analyzer.js +444 -0
  82. package/dist/dependency-analyzer.js.map +1 -0
  83. package/dist/design-loop.d.ts +59 -0
  84. package/dist/design-loop.d.ts.map +1 -0
  85. package/dist/design-loop.js +344 -0
  86. package/dist/design-loop.js.map +1 -0
  87. package/dist/doc-intelligence.d.ts +383 -0
  88. package/dist/doc-intelligence.d.ts.map +1 -0
  89. package/dist/doc-intelligence.js +1307 -0
  90. package/dist/doc-intelligence.js.map +1 -0
  91. package/dist/dynamic-role-generator.d.ts +76 -0
  92. package/dist/dynamic-role-generator.d.ts.map +1 -0
  93. package/dist/dynamic-role-generator.js +194 -0
  94. package/dist/dynamic-role-generator.js.map +1 -0
  95. package/dist/errors.d.ts +69 -0
  96. package/dist/errors.d.ts.map +1 -0
  97. package/dist/errors.js +102 -0
  98. package/dist/errors.js.map +1 -0
  99. package/dist/event-bus.d.ts +159 -0
  100. package/dist/event-bus.d.ts.map +1 -0
  101. package/dist/event-bus.js +305 -0
  102. package/dist/event-bus.js.map +1 -0
  103. package/dist/execution-engine.d.ts +425 -0
  104. package/dist/execution-engine.d.ts.map +1 -0
  105. package/dist/execution-engine.js +1555 -0
  106. package/dist/execution-engine.js.map +1 -0
  107. package/dist/git-intelligence.d.ts +306 -0
  108. package/dist/git-intelligence.d.ts.map +1 -0
  109. package/dist/git-intelligence.js +1099 -0
  110. package/dist/git-intelligence.js.map +1 -0
  111. package/dist/governor.d.ts +77 -0
  112. package/dist/governor.d.ts.map +1 -0
  113. package/dist/governor.js +161 -0
  114. package/dist/governor.js.map +1 -0
  115. package/dist/hierarchical-planner.d.ts +313 -0
  116. package/dist/hierarchical-planner.d.ts.map +1 -0
  117. package/dist/hierarchical-planner.js +981 -0
  118. package/dist/hierarchical-planner.js.map +1 -0
  119. package/dist/index.d.ts +121 -0
  120. package/dist/index.d.ts.map +1 -0
  121. package/dist/index.js +123 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/intent-inference.d.ts +103 -0
  124. package/dist/intent-inference.d.ts.map +1 -0
  125. package/dist/intent-inference.js +605 -0
  126. package/dist/intent-inference.js.map +1 -0
  127. package/dist/interrupt-manager.d.ts +143 -0
  128. package/dist/interrupt-manager.d.ts.map +1 -0
  129. package/dist/interrupt-manager.js +196 -0
  130. package/dist/interrupt-manager.js.map +1 -0
  131. package/dist/kernel.d.ts +564 -0
  132. package/dist/kernel.d.ts.map +1 -0
  133. package/dist/kernel.js +1419 -0
  134. package/dist/kernel.js.map +1 -0
  135. package/dist/language-support.d.ts +232 -0
  136. package/dist/language-support.d.ts.map +1 -0
  137. package/dist/language-support.js +1134 -0
  138. package/dist/language-support.js.map +1 -0
  139. package/dist/llm-client.d.ts +82 -0
  140. package/dist/llm-client.d.ts.map +1 -0
  141. package/dist/llm-client.js +475 -0
  142. package/dist/llm-client.js.map +1 -0
  143. package/dist/mcp-client.d.ts +232 -0
  144. package/dist/mcp-client.d.ts.map +1 -0
  145. package/dist/mcp-client.js +718 -0
  146. package/dist/mcp-client.js.map +1 -0
  147. package/dist/memory-manager.d.ts +200 -0
  148. package/dist/memory-manager.d.ts.map +1 -0
  149. package/dist/memory-manager.js +568 -0
  150. package/dist/memory-manager.js.map +1 -0
  151. package/dist/memory.d.ts +87 -0
  152. package/dist/memory.d.ts.map +1 -0
  153. package/dist/memory.js +341 -0
  154. package/dist/memory.js.map +1 -0
  155. package/dist/model-router.d.ts +245 -0
  156. package/dist/model-router.d.ts.map +1 -0
  157. package/dist/model-router.js +632 -0
  158. package/dist/model-router.js.map +1 -0
  159. package/dist/parallel-executor.d.ts +125 -0
  160. package/dist/parallel-executor.d.ts.map +1 -0
  161. package/dist/parallel-executor.js +201 -0
  162. package/dist/parallel-executor.js.map +1 -0
  163. package/dist/perf-optimizer.d.ts +212 -0
  164. package/dist/perf-optimizer.d.ts.map +1 -0
  165. package/dist/perf-optimizer.js +721 -0
  166. package/dist/perf-optimizer.js.map +1 -0
  167. package/dist/persona.d.ts +305 -0
  168. package/dist/persona.d.ts.map +1 -0
  169. package/dist/persona.js +887 -0
  170. package/dist/persona.js.map +1 -0
  171. package/dist/planner.d.ts +70 -0
  172. package/dist/planner.d.ts.map +1 -0
  173. package/dist/planner.js +264 -0
  174. package/dist/planner.js.map +1 -0
  175. package/dist/qa-pipeline.d.ts +365 -0
  176. package/dist/qa-pipeline.d.ts.map +1 -0
  177. package/dist/qa-pipeline.js +1352 -0
  178. package/dist/qa-pipeline.js.map +1 -0
  179. package/dist/reasoning-adapter.d.ts +116 -0
  180. package/dist/reasoning-adapter.d.ts.map +1 -0
  181. package/dist/reasoning-adapter.js +187 -0
  182. package/dist/reasoning-adapter.js.map +1 -0
  183. package/dist/role-registry.d.ts +55 -0
  184. package/dist/role-registry.d.ts.map +1 -0
  185. package/dist/role-registry.js +192 -0
  186. package/dist/role-registry.js.map +1 -0
  187. package/dist/sandbox-tiers.d.ts +327 -0
  188. package/dist/sandbox-tiers.d.ts.map +1 -0
  189. package/dist/sandbox-tiers.js +928 -0
  190. package/dist/sandbox-tiers.js.map +1 -0
  191. package/dist/security-scanner.d.ts +222 -0
  192. package/dist/security-scanner.d.ts.map +1 -0
  193. package/dist/security-scanner.js +1129 -0
  194. package/dist/security-scanner.js.map +1 -0
  195. package/dist/security.d.ts +93 -0
  196. package/dist/security.d.ts.map +1 -0
  197. package/dist/security.js +393 -0
  198. package/dist/security.js.map +1 -0
  199. package/dist/self-reflection.d.ts +397 -0
  200. package/dist/self-reflection.d.ts.map +1 -0
  201. package/dist/self-reflection.js +908 -0
  202. package/dist/self-reflection.js.map +1 -0
  203. package/dist/session-persistence.d.ts +191 -0
  204. package/dist/session-persistence.d.ts.map +1 -0
  205. package/dist/session-persistence.js +395 -0
  206. package/dist/session-persistence.js.map +1 -0
  207. package/dist/speculative-executor.d.ts +210 -0
  208. package/dist/speculative-executor.d.ts.map +1 -0
  209. package/dist/speculative-executor.js +618 -0
  210. package/dist/speculative-executor.js.map +1 -0
  211. package/dist/state-machine.d.ts +289 -0
  212. package/dist/state-machine.d.ts.map +1 -0
  213. package/dist/state-machine.js +695 -0
  214. package/dist/state-machine.js.map +1 -0
  215. package/dist/sub-agent.d.ts +177 -0
  216. package/dist/sub-agent.d.ts.map +1 -0
  217. package/dist/sub-agent.js +303 -0
  218. package/dist/sub-agent.js.map +1 -0
  219. package/dist/system-prompt.d.ts +26 -0
  220. package/dist/system-prompt.d.ts.map +1 -0
  221. package/dist/system-prompt.js +84 -0
  222. package/dist/system-prompt.js.map +1 -0
  223. package/dist/test-intelligence.d.ts +439 -0
  224. package/dist/test-intelligence.d.ts.map +1 -0
  225. package/dist/test-intelligence.js +1165 -0
  226. package/dist/test-intelligence.js.map +1 -0
  227. package/dist/types.d.ts +632 -0
  228. package/dist/types.d.ts.map +1 -0
  229. package/dist/types.js +6 -0
  230. package/dist/types.js.map +1 -0
  231. package/dist/vector-index.d.ts +314 -0
  232. package/dist/vector-index.d.ts.map +1 -0
  233. package/dist/vector-index.js +618 -0
  234. package/dist/vector-index.js.map +1 -0
  235. package/package.json +41 -0
@@ -0,0 +1,314 @@
1
+ /**
2
+ * @module vector-index
3
+ * @description Vector DB Code Indexer — pgvector 기반 시맨틱 코드 검색.
4
+ *
5
+ * 코드 임베딩을 PostgreSQL pgvector에 저장하고, 자연어 / 코드 유사도로 검색.
6
+ * DB 연결은 외부에서 주입 (SQLExecutor), 임베딩 생성도 외부에서 주입 (EmbeddingProvider).
7
+ *
8
+ * 주요 기능:
9
+ * - 코드 심볼 인덱싱 (함수, 클래스, 인터페이스, 타입, enum 등)
10
+ * - 시맨틱 검색 (자연어 → 코드)
11
+ * - 코드 유사도 검색 (중복/유사 코드 탐지)
12
+ * - 파일 단위 재인덱싱
13
+ * - 프로젝트 통계
14
+ */
15
+ /** 코드 심볼의 타입 */
16
+ export type SymbolType = "function" | "class" | "interface" | "type" | "enum" | "variable" | "method";
17
+ /** 코드 임베딩 레코드 */
18
+ export interface CodeEmbedding {
19
+ /** DB primary key (auto-generated) */
20
+ id?: number;
21
+ /** 프로젝트 식별자 */
22
+ projectId: string;
23
+ /** 소스 파일 경로 (프로젝트 루트 기준 상대경로) */
24
+ filePath: string;
25
+ /** 심볼 이름 (함수명, 클래스명 등) */
26
+ symbolName: string;
27
+ /** 심볼 종류 */
28
+ symbolType: SymbolType;
29
+ /** 코드 스니펫 원문 */
30
+ codeSnippet: string;
31
+ /** 임베딩 벡터 (1536-dim for OpenAI, 768 for others) */
32
+ embedding: number[];
33
+ /** 심볼 메타데이터 */
34
+ metadata: {
35
+ /** 시작 라인 (1-based) */
36
+ line: number;
37
+ /** 종료 라인 (1-based) */
38
+ endLine: number;
39
+ /** 함수 파라미터 시그니처 */
40
+ params?: string;
41
+ /** 반환 타입 */
42
+ returnType?: string;
43
+ /** export 여부 */
44
+ exported: boolean;
45
+ /** 코드 복잡도 (cyclomatic) */
46
+ complexity?: number;
47
+ };
48
+ /** 마지막 인덱싱 시각 */
49
+ updatedAt: Date;
50
+ }
51
+ /** 벡터 검색 결과 */
52
+ export interface VectorSearchResult {
53
+ /** 심볼 이름 */
54
+ symbolName: string;
55
+ /** 파일 경로 */
56
+ filePath: string;
57
+ /** 심볼 종류 */
58
+ symbolType: string;
59
+ /** 코드 스니펫 */
60
+ codeSnippet: string;
61
+ /** 코사인 유사도 (0–1, 1이 완전 일치) */
62
+ similarity: number;
63
+ /** 메타데이터 */
64
+ metadata: Record<string, unknown>;
65
+ }
66
+ /**
67
+ * 임베딩 생성 프로바이더.
68
+ * 외부에서 주입 — OpenAI, Cohere, local model 등.
69
+ */
70
+ export interface EmbeddingProvider {
71
+ /** 텍스트 배열을 임베딩 벡터 배열로 변환 */
72
+ embed(texts: string[]): Promise<number[][]>;
73
+ /** 임베딩 차원 수 (1536 for OpenAI text-embedding-3-small, 768 for others) */
74
+ dimension: number;
75
+ }
76
+ /**
77
+ * SQL 실행기 — 외부에서 주입 (yua-backend의 PostgreSQL pool).
78
+ * 이 모듈은 직접 DB 연결을 하지 않는다.
79
+ */
80
+ export interface SQLExecutor {
81
+ /** SQL 쿼리 실행 */
82
+ query(sql: string, params?: unknown[]): Promise<{
83
+ rows: Record<string, unknown>[];
84
+ }>;
85
+ }
86
+ /** VectorIndex 설정 */
87
+ export interface VectorIndexConfig {
88
+ /** 프로젝트 식별자 */
89
+ projectId: string;
90
+ /** 임베딩 생성 프로바이더 */
91
+ embeddingProvider: EmbeddingProvider;
92
+ /** SQL 실행기 */
93
+ sqlExecutor: SQLExecutor;
94
+ /** 배치 인덱싱 크기 (default: 50) */
95
+ batchSize?: number;
96
+ /** 임베딩 차원 (default: 1536) */
97
+ dimension?: number;
98
+ }
99
+ /** 인덱스 통계 */
100
+ export interface IndexStats {
101
+ /** 총 임베딩 수 */
102
+ totalEmbeddings: number;
103
+ /** 인덱싱된 파일 수 */
104
+ totalFiles: number;
105
+ /** 마지막 인덱싱 시각 */
106
+ lastIndexedAt: Date | null;
107
+ /** 인덱스 테이블 크기 (bytes, 추정) */
108
+ indexSizeBytes: number;
109
+ }
110
+ /**
111
+ * VectorIndex — pgvector 기반 코드 시맨틱 인덱서.
112
+ *
113
+ * 코드 심볼을 벡터로 변환하여 PostgreSQL에 저장하고,
114
+ * 자연어 질의 또는 코드 유사도로 검색하는 기능을 제공한다.
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * const index = new VectorIndex({
119
+ * projectId: "my-project",
120
+ * embeddingProvider: openaiEmbedder,
121
+ * sqlExecutor: pgPool,
122
+ * });
123
+ * await index.initialize();
124
+ * await index.indexBatch(symbols);
125
+ * const results = await index.search("user authentication logic");
126
+ * ```
127
+ */
128
+ export declare class VectorIndex {
129
+ private config;
130
+ constructor(config: VectorIndexConfig);
131
+ /**
132
+ * CREATE TABLE + INDEX SQL을 생성한다 (idempotent).
133
+ * pgvector extension, 테이블, 인덱스를 모두 포함.
134
+ *
135
+ * @returns 실행할 SQL 문자열
136
+ */
137
+ getCreateTableSQL(): string;
138
+ /**
139
+ * 테이블을 초기화한다 (startup 시 호출).
140
+ * CREATE TABLE + INDEX를 실행한다 (idempotent).
141
+ */
142
+ initialize(): Promise<void>;
143
+ /**
144
+ * 단일 심볼을 인덱싱한다 (upsert).
145
+ * 이미 임베딩이 포함된 CodeEmbedding을 받는다.
146
+ *
147
+ * @param symbol - 임베딩이 포함된 코드 심볼
148
+ */
149
+ indexSymbol(symbol: CodeEmbedding): Promise<void>;
150
+ /**
151
+ * 여러 심볼을 배치로 인덱싱한다.
152
+ * 임베딩이 없는 심볼을 받아 자동으로 임베딩을 생성한다.
153
+ *
154
+ * @param symbols - 임베딩 없는 코드 심볼 배열
155
+ * @returns 인덱싱된 심볼 수
156
+ */
157
+ indexBatch(symbols: Omit<CodeEmbedding, "embedding">[]): Promise<number>;
158
+ /**
159
+ * 파일 하나를 재인덱싱한다.
160
+ * 기존 임베딩을 삭제하고 새로운 심볼로 교체한다.
161
+ *
162
+ * @param filePath - 파일 경로 (프로젝트 루트 기준)
163
+ * @param symbols - 새로운 심볼 배열 (임베딩 없음)
164
+ * @returns 인덱싱된 심볼 수
165
+ */
166
+ reindexFile(filePath: string, symbols: Omit<CodeEmbedding, "embedding">[]): Promise<number>;
167
+ /**
168
+ * 파일의 모든 임베딩을 삭제한다.
169
+ *
170
+ * @param filePath - 파일 경로
171
+ * @returns 삭제된 행 수
172
+ */
173
+ removeFile(filePath: string): Promise<number>;
174
+ /**
175
+ * 프로젝트의 모든 임베딩을 삭제한다.
176
+ *
177
+ * @returns 삭제된 행 수
178
+ */
179
+ clearProject(): Promise<number>;
180
+ /**
181
+ * 자연어 쿼리로 시맨틱 검색한다.
182
+ *
183
+ * @param query - 자연어 검색 쿼리 (e.g., "user authentication logic")
184
+ * @param limit - 최대 결과 수 (default: 10)
185
+ * @returns 유사도 순으로 정렬된 검색 결과
186
+ */
187
+ search(query: string, limit?: number): Promise<VectorSearchResult[]>;
188
+ /**
189
+ * 코드 스니펫 유사도로 검색한다.
190
+ *
191
+ * @param codeSnippet - 비교할 코드 스니펫
192
+ * @param limit - 최대 결과 수 (default: 10)
193
+ * @param threshold - 최소 유사도 임계값 (default: 0.7)
194
+ * @returns 유사도 순으로 정렬된 검색 결과 (threshold 이상만)
195
+ */
196
+ searchBySimilarity(codeSnippet: string, limit?: number, threshold?: number): Promise<VectorSearchResult[]>;
197
+ /**
198
+ * 심볼 타입으로 필터링하여 검색한다.
199
+ *
200
+ * @param query - 자연어 검색 쿼리
201
+ * @param symbolType - 필터링할 심볼 타입 (e.g., "function", "class")
202
+ * @param limit - 최대 결과 수 (default: 10)
203
+ * @returns 유사도 순으로 정렬된 검색 결과
204
+ */
205
+ searchByType(query: string, symbolType: string, limit?: number): Promise<VectorSearchResult[]>;
206
+ /**
207
+ * 중복/유사 코드를 탐지한다.
208
+ *
209
+ * @param codeSnippet - 비교할 코드 스니펫
210
+ * @param threshold - 최소 유사도 임계값 (default: 0.85, 높은 값으로 중복 탐지)
211
+ * @returns 유사도 순으로 정렬된 검색 결과
212
+ */
213
+ findSimilarCode(codeSnippet: string, threshold?: number): Promise<VectorSearchResult[]>;
214
+ /**
215
+ * 파일의 모든 심볼을 조회한다.
216
+ *
217
+ * @param filePath - 파일 경로
218
+ * @returns 해당 파일의 CodeEmbedding 배열
219
+ */
220
+ getFileSymbols(filePath: string): Promise<CodeEmbedding[]>;
221
+ /**
222
+ * 인덱스 통계를 조회한다.
223
+ *
224
+ * @returns 인덱스 통계 (총 임베딩 수, 파일 수, 마지막 인덱싱 시각, 테이블 크기)
225
+ */
226
+ getStats(): Promise<IndexStats>;
227
+ /**
228
+ * 파일이 인덱싱되어 있는지 확인한다.
229
+ *
230
+ * @param filePath - 파일 경로
231
+ * @returns 인덱싱 여부
232
+ */
233
+ isFileIndexed(filePath: string): Promise<boolean>;
234
+ /**
235
+ * 코드 심볼을 임베딩용 텍스트로 변환한다.
236
+ * 파일 경로, 심볼 타입, 이름, 코드를 포함한 리치 텍스트를 생성하여
237
+ * 임베딩 품질을 높인다.
238
+ *
239
+ * @param symbol - 심볼 정보
240
+ * @returns 임베딩용 텍스트
241
+ *
242
+ * @example
243
+ * ```
244
+ * File: src/auth/login.ts
245
+ * Type: function
246
+ * Name: validateUser
247
+ * Code:
248
+ * async function validateUser(email: string): Promise<User | null> { ... }
249
+ * ```
250
+ */
251
+ buildSnippetForEmbedding(symbol: {
252
+ name: string;
253
+ type: string;
254
+ code: string;
255
+ file: string;
256
+ }): string;
257
+ /**
258
+ * 텍스트 배열의 임베딩을 생성한다.
259
+ * 프로바이더의 batch API를 사용한다.
260
+ */
261
+ private generateEmbeddings;
262
+ /**
263
+ * 임베딩 벡터를 PostgreSQL vector 리터럴 형식으로 변환한다.
264
+ *
265
+ * @param embedding - 숫자 배열
266
+ * @returns "[0.1,0.2,...]" 형식의 문자열
267
+ */
268
+ private formatVector;
269
+ /**
270
+ * Upsert SQL을 생성한다.
271
+ * (project_id, file_path, symbol_name, symbol_type) 기준으로 UPSERT.
272
+ */
273
+ private buildUpsertSQL;
274
+ /**
275
+ * 벡터 검색 SQL을 생성한다.
276
+ * 코사인 거리(<=>)를 사용하여 유사도 순으로 정렬한다.
277
+ *
278
+ * @param embedding - 쿼리 임베딩 벡터
279
+ * @param limit - 최대 결과 수
280
+ * @param filters - 선택적 필터 (symbolType, threshold)
281
+ */
282
+ private buildSearchSQL;
283
+ /**
284
+ * DB 행 배열을 VectorSearchResult 배열로 변환한다.
285
+ */
286
+ private mapSearchResults;
287
+ /**
288
+ * DB 행을 CodeEmbedding으로 변환한다.
289
+ */
290
+ private mapRowToEmbedding;
291
+ /**
292
+ * PostgreSQL vector 리터럴 "[0.1,0.2,...]"을 숫자 배열로 파싱한다.
293
+ */
294
+ private parseVector;
295
+ /**
296
+ * JSONB 값을 Record<string, unknown>으로 파싱한다.
297
+ */
298
+ private parseJsonb;
299
+ /**
300
+ * JSONB 메타데이터를 CodeEmbedding.metadata 형식으로 파싱한다.
301
+ */
302
+ private parseEmbeddingMetadata;
303
+ /**
304
+ * 코드에서 함수/메서드 시그니처를 추출한다.
305
+ * 임베딩에 시그니처를 포함하면 검색 품질이 향상된다.
306
+ */
307
+ private extractSignature;
308
+ /**
309
+ * SQL 문자열을 개별 statement로 분리한다.
310
+ * DO $$ ... $$ 블록을 올바르게 처리한다.
311
+ */
312
+ private splitStatements;
313
+ }
314
+ //# sourceMappingURL=vector-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-index.d.ts","sourceRoot":"","sources":["../src/vector-index.ts"],"names":[],"mappings":"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"}