@su-record/vibe 2.5.11 → 2.5.13

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 (341) hide show
  1. package/CLAUDE.md +243 -0
  2. package/LICENSE +21 -21
  3. package/README.md +262 -262
  4. package/agents/architect-low.md +41 -41
  5. package/agents/architect-medium.md +59 -59
  6. package/agents/architect.md +80 -80
  7. package/agents/build-error-resolver.md +115 -115
  8. package/agents/compounder.md +261 -261
  9. package/agents/diagrammer.md +178 -178
  10. package/agents/e2e-tester.md +266 -266
  11. package/agents/explorer-low.md +42 -42
  12. package/agents/explorer-medium.md +59 -59
  13. package/agents/explorer.md +48 -48
  14. package/agents/implementer-low.md +43 -43
  15. package/agents/implementer-medium.md +52 -52
  16. package/agents/implementer.md +54 -54
  17. package/agents/refactor-cleaner.md +143 -143
  18. package/agents/research/best-practices-agent.md +189 -189
  19. package/agents/research/codebase-patterns-agent.md +147 -147
  20. package/agents/research/framework-docs-agent.md +178 -178
  21. package/agents/research/security-advisory-agent.md +203 -203
  22. package/agents/review/architecture-reviewer.md +107 -107
  23. package/agents/review/complexity-reviewer.md +116 -116
  24. package/agents/review/data-integrity-reviewer.md +88 -88
  25. package/agents/review/git-history-reviewer.md +103 -103
  26. package/agents/review/performance-reviewer.md +86 -86
  27. package/agents/review/python-reviewer.md +150 -150
  28. package/agents/review/rails-reviewer.md +139 -139
  29. package/agents/review/react-reviewer.md +144 -144
  30. package/agents/review/security-reviewer.md +80 -80
  31. package/agents/review/simplicity-reviewer.md +140 -140
  32. package/agents/review/test-coverage-reviewer.md +116 -116
  33. package/agents/review/typescript-reviewer.md +127 -127
  34. package/agents/searcher.md +54 -54
  35. package/agents/simplifier.md +120 -120
  36. package/agents/tester.md +49 -49
  37. package/agents/ui-previewer.md +129 -129
  38. package/commands/vibe.analyze.md +356 -356
  39. package/commands/vibe.reason.md +329 -329
  40. package/commands/vibe.review.md +326 -326
  41. package/commands/vibe.run.md +1117 -1051
  42. package/commands/vibe.spec.md +1058 -1058
  43. package/commands/vibe.utils.md +353 -296
  44. package/commands/vibe.verify.md +375 -375
  45. package/dist/cli/collaborator.js +52 -52
  46. package/dist/cli/detect.js +32 -32
  47. package/dist/cli/index.js +102 -102
  48. package/dist/cli/llm.js +144 -144
  49. package/dist/cli/mcp.d.ts +49 -0
  50. package/dist/cli/mcp.d.ts.map +1 -0
  51. package/dist/cli/mcp.js +169 -0
  52. package/dist/cli/mcp.js.map +1 -0
  53. package/dist/cli/postinstall.js +180 -2
  54. package/dist/cli/postinstall.js.map +1 -1
  55. package/dist/cli/setup/GlobalInstaller.d.ts +24 -0
  56. package/dist/cli/setup/GlobalInstaller.d.ts.map +1 -0
  57. package/dist/cli/setup/GlobalInstaller.js +130 -0
  58. package/dist/cli/setup/GlobalInstaller.js.map +1 -0
  59. package/dist/cli/setup/LanguageDetector.d.ts +16 -0
  60. package/dist/cli/setup/LanguageDetector.d.ts.map +1 -0
  61. package/dist/cli/setup/LanguageDetector.js +49 -0
  62. package/dist/cli/setup/LanguageDetector.js.map +1 -0
  63. package/dist/cli/setup/LegacyMigration.d.ts +25 -0
  64. package/dist/cli/setup/LegacyMigration.d.ts.map +1 -0
  65. package/dist/cli/setup/LegacyMigration.js +162 -0
  66. package/dist/cli/setup/LegacyMigration.js.map +1 -0
  67. package/dist/cli/setup/ProjectSetup.d.ts +30 -0
  68. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -0
  69. package/dist/cli/setup/ProjectSetup.js +238 -0
  70. package/dist/cli/setup/ProjectSetup.js.map +1 -0
  71. package/dist/cli/setup/index.d.ts +14 -0
  72. package/dist/cli/setup/index.d.ts.map +1 -0
  73. package/dist/cli/setup/index.js +18 -0
  74. package/dist/cli/setup/index.js.map +1 -0
  75. package/dist/cli/setup.d.ts +10 -77
  76. package/dist/cli/setup.d.ts.map +1 -1
  77. package/dist/cli/setup.js +15 -592
  78. package/dist/cli/setup.js.map +1 -1
  79. package/dist/lib/DeepInit.d.ts +0 -2
  80. package/dist/lib/DeepInit.d.ts.map +1 -1
  81. package/dist/lib/DeepInit.js +24 -26
  82. package/dist/lib/DeepInit.js.map +1 -1
  83. package/dist/lib/IterationTracker.d.ts +0 -2
  84. package/dist/lib/IterationTracker.d.ts.map +1 -1
  85. package/dist/lib/IterationTracker.js +11 -13
  86. package/dist/lib/IterationTracker.js.map +1 -1
  87. package/dist/lib/ModelRouter.d.ts +0 -2
  88. package/dist/lib/ModelRouter.d.ts.map +1 -1
  89. package/dist/lib/ModelRouter.js +0 -2
  90. package/dist/lib/ModelRouter.js.map +1 -1
  91. package/dist/lib/OrchestrateWorkflow.d.ts +1 -3
  92. package/dist/lib/OrchestrateWorkflow.d.ts.map +1 -1
  93. package/dist/lib/OrchestrateWorkflow.js +1 -3
  94. package/dist/lib/OrchestrateWorkflow.js.map +1 -1
  95. package/dist/lib/PythonParser.js +108 -108
  96. package/dist/lib/SkillFrontmatter.d.ts +0 -2
  97. package/dist/lib/SkillFrontmatter.d.ts.map +1 -1
  98. package/dist/lib/SkillFrontmatter.js +28 -30
  99. package/dist/lib/SkillFrontmatter.js.map +1 -1
  100. package/dist/lib/SkillQualityGate.d.ts +0 -2
  101. package/dist/lib/SkillQualityGate.d.ts.map +1 -1
  102. package/dist/lib/SkillQualityGate.js +9 -11
  103. package/dist/lib/SkillQualityGate.js.map +1 -1
  104. package/dist/lib/SkillRepository.d.ts +117 -0
  105. package/dist/lib/SkillRepository.d.ts.map +1 -0
  106. package/dist/lib/SkillRepository.js +477 -0
  107. package/dist/lib/SkillRepository.js.map +1 -0
  108. package/dist/lib/UltraQA.d.ts +0 -2
  109. package/dist/lib/UltraQA.d.ts.map +1 -1
  110. package/dist/lib/UltraQA.js +77 -79
  111. package/dist/lib/UltraQA.js.map +1 -1
  112. package/dist/lib/gemini-mcp.d.ts +10 -0
  113. package/dist/lib/gemini-mcp.d.ts.map +1 -0
  114. package/dist/lib/gemini-mcp.js +353 -0
  115. package/dist/lib/gemini-mcp.js.map +1 -0
  116. package/dist/lib/gpt-api.js +4 -4
  117. package/dist/lib/gpt-mcp.d.ts +10 -0
  118. package/dist/lib/gpt-mcp.d.ts.map +1 -0
  119. package/dist/lib/gpt-mcp.js +352 -0
  120. package/dist/lib/gpt-mcp.js.map +1 -0
  121. package/dist/lib/llm/auth/ApiKeyManager.d.ts +21 -0
  122. package/dist/lib/llm/auth/ApiKeyManager.d.ts.map +1 -0
  123. package/dist/lib/llm/auth/ApiKeyManager.js +43 -0
  124. package/dist/lib/llm/auth/ApiKeyManager.js.map +1 -0
  125. package/dist/lib/llm/auth/ConfigManager.d.ts +29 -0
  126. package/dist/lib/llm/auth/ConfigManager.d.ts.map +1 -0
  127. package/dist/lib/llm/auth/ConfigManager.js +67 -0
  128. package/dist/lib/llm/auth/ConfigManager.js.map +1 -0
  129. package/dist/lib/llm/auth/index.d.ts +25 -0
  130. package/dist/lib/llm/auth/index.d.ts.map +1 -0
  131. package/dist/lib/llm/auth/index.js +83 -0
  132. package/dist/lib/llm/auth/index.js.map +1 -0
  133. package/dist/lib/llm/index.d.ts +10 -0
  134. package/dist/lib/llm/index.d.ts.map +1 -0
  135. package/dist/lib/llm/index.js +12 -0
  136. package/dist/lib/llm/index.js.map +1 -0
  137. package/dist/lib/llm/types.d.ts +96 -0
  138. package/dist/lib/llm/types.d.ts.map +1 -0
  139. package/dist/lib/llm/types.js +17 -0
  140. package/dist/lib/llm/types.js.map +1 -0
  141. package/dist/lib/llm/utils/index.d.ts +6 -0
  142. package/dist/lib/llm/utils/index.d.ts.map +1 -0
  143. package/dist/lib/llm/utils/index.js +6 -0
  144. package/dist/lib/llm/utils/index.js.map +1 -0
  145. package/dist/lib/llm/utils/retry.d.ts +25 -0
  146. package/dist/lib/llm/utils/retry.d.ts.map +1 -0
  147. package/dist/lib/llm/utils/retry.js +72 -0
  148. package/dist/lib/llm/utils/retry.js.map +1 -0
  149. package/dist/lib/llm/utils/stream.d.ts +13 -0
  150. package/dist/lib/llm/utils/stream.d.ts.map +1 -0
  151. package/dist/lib/llm/utils/stream.js +110 -0
  152. package/dist/lib/llm/utils/stream.js.map +1 -0
  153. package/dist/lib/memory/KnowledgeGraph.js +4 -4
  154. package/dist/lib/memory/MemorySearch.js +20 -20
  155. package/dist/lib/memory/MemoryStorage.js +64 -64
  156. package/dist/orchestrator/AgentExecutor.d.ts +23 -0
  157. package/dist/orchestrator/AgentExecutor.d.ts.map +1 -0
  158. package/dist/orchestrator/AgentExecutor.js +231 -0
  159. package/dist/orchestrator/AgentExecutor.js.map +1 -0
  160. package/dist/orchestrator/AgentManager.d.ts +73 -0
  161. package/dist/orchestrator/AgentManager.d.ts.map +1 -0
  162. package/dist/orchestrator/AgentManager.js +184 -0
  163. package/dist/orchestrator/AgentManager.js.map +1 -0
  164. package/dist/orchestrator/LLMCluster.d.ts +70 -0
  165. package/dist/orchestrator/LLMCluster.d.ts.map +1 -0
  166. package/dist/orchestrator/LLMCluster.js +91 -0
  167. package/dist/orchestrator/LLMCluster.js.map +1 -0
  168. package/dist/orchestrator/MultiLlmResearch.d.ts +27 -0
  169. package/dist/orchestrator/MultiLlmResearch.d.ts.map +1 -0
  170. package/dist/orchestrator/MultiLlmResearch.js +145 -0
  171. package/dist/orchestrator/MultiLlmResearch.js.map +1 -0
  172. package/dist/orchestrator/SessionStore.d.ts +41 -0
  173. package/dist/orchestrator/SessionStore.d.ts.map +1 -0
  174. package/dist/orchestrator/SessionStore.js +117 -0
  175. package/dist/orchestrator/SessionStore.js.map +1 -0
  176. package/dist/orchestrator/SmartRouter.d.ts +68 -0
  177. package/dist/orchestrator/SmartRouter.d.ts.map +1 -0
  178. package/dist/orchestrator/SmartRouter.js +256 -0
  179. package/dist/orchestrator/SmartRouter.js.map +1 -0
  180. package/dist/orchestrator/backgroundAgent.d.ts +10 -28
  181. package/dist/orchestrator/backgroundAgent.d.ts.map +1 -1
  182. package/dist/orchestrator/backgroundAgent.js +11 -346
  183. package/dist/orchestrator/backgroundAgent.js.map +1 -1
  184. package/dist/orchestrator/index.d.ts +3 -0
  185. package/dist/orchestrator/index.d.ts.map +1 -1
  186. package/dist/orchestrator/index.js +4 -0
  187. package/dist/orchestrator/index.js.map +1 -1
  188. package/dist/orchestrator/orchestrator.d.ts +19 -154
  189. package/dist/orchestrator/orchestrator.d.ts.map +1 -1
  190. package/dist/orchestrator/orchestrator.js +90 -514
  191. package/dist/orchestrator/orchestrator.js.map +1 -1
  192. package/dist/orchestrator/parallelResearch.d.ts +5 -12
  193. package/dist/orchestrator/parallelResearch.d.ts.map +1 -1
  194. package/dist/orchestrator/parallelResearch.js +10 -193
  195. package/dist/orchestrator/parallelResearch.js.map +1 -1
  196. package/dist/tools/analytics/getUsageAnalytics.d.ts +10 -0
  197. package/dist/tools/analytics/getUsageAnalytics.d.ts.map +1 -0
  198. package/dist/tools/analytics/getUsageAnalytics.js +246 -0
  199. package/dist/tools/analytics/getUsageAnalytics.js.map +1 -0
  200. package/dist/tools/analytics/index.d.ts +5 -0
  201. package/dist/tools/analytics/index.d.ts.map +1 -0
  202. package/dist/tools/analytics/index.js +5 -0
  203. package/dist/tools/analytics/index.js.map +1 -0
  204. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  205. package/dist/tools/convention/getCodingGuide.d.ts +7 -0
  206. package/dist/tools/convention/getCodingGuide.d.ts.map +1 -0
  207. package/dist/tools/convention/getCodingGuide.js +69 -0
  208. package/dist/tools/convention/getCodingGuide.js.map +1 -0
  209. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  210. package/dist/tools/index.d.ts +2 -0
  211. package/dist/tools/index.d.ts.map +1 -1
  212. package/dist/tools/index.js +2 -0
  213. package/dist/tools/index.js.map +1 -1
  214. package/dist/tools/planning/analyzeRequirements.d.ts +9 -0
  215. package/dist/tools/planning/analyzeRequirements.d.ts.map +1 -0
  216. package/dist/tools/planning/analyzeRequirements.js +171 -0
  217. package/dist/tools/planning/analyzeRequirements.js.map +1 -0
  218. package/dist/tools/planning/createUserStories.d.ts +9 -0
  219. package/dist/tools/planning/createUserStories.d.ts.map +1 -0
  220. package/dist/tools/planning/createUserStories.js +124 -0
  221. package/dist/tools/planning/createUserStories.js.map +1 -0
  222. package/dist/tools/planning/featureRoadmap.d.ts +10 -0
  223. package/dist/tools/planning/featureRoadmap.d.ts.map +1 -0
  224. package/dist/tools/planning/featureRoadmap.js +207 -0
  225. package/dist/tools/planning/featureRoadmap.js.map +1 -0
  226. package/dist/tools/planning/generatePrd.d.ts +11 -0
  227. package/dist/tools/planning/generatePrd.d.ts.map +1 -0
  228. package/dist/tools/planning/generatePrd.js +161 -0
  229. package/dist/tools/planning/generatePrd.js.map +1 -0
  230. package/dist/tools/planning/index.d.ts +8 -0
  231. package/dist/tools/planning/index.d.ts.map +1 -0
  232. package/dist/tools/planning/index.js +8 -0
  233. package/dist/tools/planning/index.js.map +1 -0
  234. package/dist/tools/prompt/analyzePrompt.d.ts +7 -0
  235. package/dist/tools/prompt/analyzePrompt.d.ts.map +1 -0
  236. package/dist/tools/prompt/analyzePrompt.js +150 -0
  237. package/dist/tools/prompt/analyzePrompt.js.map +1 -0
  238. package/dist/tools/prompt/enhancePrompt.d.ts +8 -0
  239. package/dist/tools/prompt/enhancePrompt.d.ts.map +1 -0
  240. package/dist/tools/prompt/enhancePrompt.js +110 -0
  241. package/dist/tools/prompt/enhancePrompt.js.map +1 -0
  242. package/dist/tools/prompt/enhancePromptGemini.d.ts +8 -0
  243. package/dist/tools/prompt/enhancePromptGemini.d.ts.map +1 -0
  244. package/dist/tools/prompt/enhancePromptGemini.js +332 -0
  245. package/dist/tools/prompt/enhancePromptGemini.js.map +1 -0
  246. package/dist/tools/prompt/index.d.ts +7 -0
  247. package/dist/tools/prompt/index.d.ts.map +1 -0
  248. package/dist/tools/prompt/index.js +7 -0
  249. package/dist/tools/prompt/index.js.map +1 -0
  250. package/dist/tools/reasoning/applyReasoningFramework.d.ts +8 -0
  251. package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +1 -0
  252. package/dist/tools/reasoning/applyReasoningFramework.js +266 -0
  253. package/dist/tools/reasoning/applyReasoningFramework.js.map +1 -0
  254. package/dist/tools/reasoning/index.d.ts +5 -0
  255. package/dist/tools/reasoning/index.d.ts.map +1 -0
  256. package/dist/tools/reasoning/index.js +5 -0
  257. package/dist/tools/reasoning/index.js.map +1 -0
  258. package/dist/tools/thinking/analyzeProblem.d.ts +7 -0
  259. package/dist/tools/thinking/analyzeProblem.d.ts.map +1 -0
  260. package/dist/tools/thinking/analyzeProblem.js +55 -0
  261. package/dist/tools/thinking/analyzeProblem.js.map +1 -0
  262. package/dist/tools/thinking/breakDownProblem.d.ts +8 -0
  263. package/dist/tools/thinking/breakDownProblem.d.ts.map +1 -0
  264. package/dist/tools/thinking/breakDownProblem.js +145 -0
  265. package/dist/tools/thinking/breakDownProblem.js.map +1 -0
  266. package/dist/tools/thinking/createThinkingChain.d.ts +7 -0
  267. package/dist/tools/thinking/createThinkingChain.d.ts.map +1 -0
  268. package/dist/tools/thinking/createThinkingChain.js +44 -0
  269. package/dist/tools/thinking/createThinkingChain.js.map +1 -0
  270. package/dist/tools/thinking/formatAsPlan.d.ts +9 -0
  271. package/dist/tools/thinking/formatAsPlan.d.ts.map +1 -0
  272. package/dist/tools/thinking/formatAsPlan.js +78 -0
  273. package/dist/tools/thinking/formatAsPlan.js.map +1 -0
  274. package/dist/tools/thinking/index.d.ts +10 -0
  275. package/dist/tools/thinking/index.d.ts.map +1 -0
  276. package/dist/tools/thinking/index.js +10 -0
  277. package/dist/tools/thinking/index.js.map +1 -0
  278. package/dist/tools/thinking/stepByStepAnalysis.d.ts +8 -0
  279. package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +1 -0
  280. package/dist/tools/thinking/stepByStepAnalysis.js +63 -0
  281. package/dist/tools/thinking/stepByStepAnalysis.js.map +1 -0
  282. package/dist/tools/thinking/thinkAloudProcess.d.ts +8 -0
  283. package/dist/tools/thinking/thinkAloudProcess.d.ts.map +1 -0
  284. package/dist/tools/thinking/thinkAloudProcess.js +80 -0
  285. package/dist/tools/thinking/thinkAloudProcess.js.map +1 -0
  286. package/hooks/hooks.json +222 -222
  287. package/hooks/scripts/code-check.js +22 -22
  288. package/hooks/scripts/code-review.js +22 -22
  289. package/hooks/scripts/complexity.js +22 -22
  290. package/hooks/scripts/compound.js +23 -23
  291. package/hooks/scripts/context-save.js +33 -33
  292. package/hooks/scripts/generate-brand-assets.js +472 -0
  293. package/hooks/scripts/hud-multiline.js +262 -264
  294. package/hooks/scripts/hud-status.js +291 -293
  295. package/hooks/scripts/keyword-detector.js +214 -216
  296. package/hooks/scripts/llm-orchestrate.js +171 -171
  297. package/hooks/scripts/post-edit.js +97 -97
  298. package/hooks/scripts/post-tool-verify.js +210 -212
  299. package/hooks/scripts/pre-tool-guard.js +125 -127
  300. package/hooks/scripts/recall.js +22 -22
  301. package/hooks/scripts/session-start.js +30 -30
  302. package/hooks/scripts/skill-injector.js +191 -193
  303. package/hooks/scripts/utils.js +97 -97
  304. package/languages/csharp-unity.md +515 -515
  305. package/languages/gdscript-godot.md +470 -470
  306. package/languages/ruby-rails.md +489 -489
  307. package/languages/typescript-angular.md +433 -433
  308. package/languages/typescript-astro.md +416 -416
  309. package/languages/typescript-electron.md +406 -406
  310. package/languages/typescript-nestjs.md +524 -524
  311. package/languages/typescript-svelte.md +407 -407
  312. package/languages/typescript-tauri.md +365 -365
  313. package/package.json +83 -83
  314. package/skills/brand-assets.md +141 -0
  315. package/skills/commerce-patterns.md +361 -0
  316. package/skills/context7-usage.md +102 -102
  317. package/skills/e2e-commerce.md +304 -0
  318. package/skills/frontend-design.md +92 -0
  319. package/skills/git-worktree.md +181 -181
  320. package/skills/parallel-research.md +77 -77
  321. package/skills/priority-todos.md +239 -239
  322. package/skills/seo-checklist.md +244 -0
  323. package/skills/tool-fallback.md +190 -190
  324. package/skills/vibe-capabilities.md +161 -161
  325. package/vibe/constitution.md +227 -227
  326. package/vibe/rules/core/communication-guide.md +98 -98
  327. package/vibe/rules/core/development-philosophy.md +52 -52
  328. package/vibe/rules/core/quick-start.md +102 -102
  329. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  330. package/vibe/rules/quality/checklist.md +276 -276
  331. package/vibe/rules/quality/testing-strategy.md +440 -440
  332. package/vibe/rules/standards/anti-patterns.md +541 -541
  333. package/vibe/rules/standards/code-structure.md +291 -291
  334. package/vibe/rules/standards/complexity-metrics.md +313 -313
  335. package/vibe/rules/standards/naming-conventions.md +198 -198
  336. package/vibe/setup.sh +31 -31
  337. package/vibe/templates/constitution-template.md +252 -252
  338. package/vibe/templates/contract-backend-template.md +526 -526
  339. package/vibe/templates/contract-frontend-template.md +599 -599
  340. package/vibe/templates/feature-template.md +96 -96
  341. package/vibe/templates/spec-template.md +221 -221
@@ -0,0 +1,184 @@
1
+ /**
2
+ * AgentManager - 에이전트 관리 및 실행
3
+ * orchestrator.ts에서 추출된 에이전트 관리 모듈
4
+ */
5
+ import { discoverAgents, loadAgent, listAgentsByCategory } from './agentDiscovery.js';
6
+ import { launchBackgroundAgent, getBackgroundAgentResult, cancelBackgroundAgent, listActiveSessions, getSessionHistory, launchParallelAgents } from './backgroundAgent.js';
7
+ import { DEFAULT_MODELS } from '../lib/constants.js';
8
+ /**
9
+ * AgentManager - 에이전트 탐색, 실행, 결과 관리
10
+ */
11
+ export class AgentManager {
12
+ projectPath;
13
+ constructor(options = {}) {
14
+ this.projectPath = options.projectPath ?? process.cwd();
15
+ }
16
+ /**
17
+ * 에이전트 탐색
18
+ */
19
+ async discover(category) {
20
+ const result = await discoverAgents({
21
+ projectPath: this.projectPath,
22
+ category
23
+ });
24
+ if ('agents' in result) {
25
+ return result.agents;
26
+ }
27
+ return [];
28
+ }
29
+ /**
30
+ * 특정 에이전트 로드
31
+ */
32
+ async load(agentName) {
33
+ return loadAgent(agentName, this.projectPath);
34
+ }
35
+ /**
36
+ * 카테고리별 에이전트 목록
37
+ */
38
+ async listByCategory(category) {
39
+ return listAgentsByCategory(category, this.projectPath);
40
+ }
41
+ /**
42
+ * 백그라운드 에이전트 시작
43
+ */
44
+ async launch(args) {
45
+ const result = await launchBackgroundAgent({
46
+ ...args,
47
+ projectPath: args.projectPath || this.projectPath
48
+ });
49
+ if ('handle' in result) {
50
+ return result.handle;
51
+ }
52
+ return null;
53
+ }
54
+ /**
55
+ * 여러 에이전트 동시 실행
56
+ */
57
+ async launchParallel(configs) {
58
+ const result = await launchParallelAgents(configs.map(c => ({
59
+ ...c,
60
+ projectPath: c.projectPath || this.projectPath
61
+ })));
62
+ if ('handles' in result) {
63
+ return result.handles;
64
+ }
65
+ return [];
66
+ }
67
+ /**
68
+ * 에이전트 결과 조회
69
+ */
70
+ async getResult(sessionId) {
71
+ const result = await getBackgroundAgentResult(sessionId);
72
+ if ('result' in result) {
73
+ return result.result;
74
+ }
75
+ return null;
76
+ }
77
+ /**
78
+ * 에이전트 취소
79
+ */
80
+ cancel(sessionId) {
81
+ const result = cancelBackgroundAgent(sessionId);
82
+ return result.content[0].text.includes('cancelled');
83
+ }
84
+ /**
85
+ * 활성 세션 목록
86
+ */
87
+ getActiveSessions() {
88
+ return listActiveSessions();
89
+ }
90
+ /**
91
+ * 세션 히스토리
92
+ */
93
+ getHistory(limit = 10) {
94
+ return getSessionHistory(limit);
95
+ }
96
+ /**
97
+ * 리뷰 에이전트 병렬 실행
98
+ */
99
+ async runParallelReview(filePaths, techStack = []) {
100
+ const reviewAgents = await this.listByCategory('review');
101
+ const relevantAgents = this.filterRelevantAgents(reviewAgents, techStack);
102
+ const agentConfigs = relevantAgents.map(agent => ({
103
+ agentName: agent.name,
104
+ prompt: this.buildReviewPrompt(agent, filePaths),
105
+ model: DEFAULT_MODELS.REVIEW,
106
+ maxTurns: 3,
107
+ allowedTools: ['Read', 'Glob', 'Grep']
108
+ }));
109
+ const handles = await this.launchParallel(agentConfigs);
110
+ const results = [];
111
+ for (const handle of handles) {
112
+ const result = await handle.getResult();
113
+ results.push(result);
114
+ }
115
+ return results;
116
+ }
117
+ /**
118
+ * 기술 스택에 맞는 에이전트 필터링
119
+ */
120
+ filterRelevantAgents(agents, techStack) {
121
+ const coreReviewers = [
122
+ 'security-reviewer',
123
+ 'performance-reviewer',
124
+ 'architecture-reviewer',
125
+ 'complexity-reviewer',
126
+ 'simplicity-reviewer',
127
+ 'data-integrity-reviewer',
128
+ 'test-coverage-reviewer',
129
+ 'git-history-reviewer'
130
+ ];
131
+ const stackReviewers = {
132
+ typescript: ['typescript-reviewer'],
133
+ python: ['python-reviewer'],
134
+ react: ['react-reviewer'],
135
+ rails: ['rails-reviewer'],
136
+ ruby: ['rails-reviewer']
137
+ };
138
+ const relevantNames = new Set(coreReviewers);
139
+ for (const tech of techStack) {
140
+ const reviewers = stackReviewers[tech.toLowerCase()];
141
+ if (reviewers) {
142
+ reviewers.forEach(r => relevantNames.add(r));
143
+ }
144
+ }
145
+ return agents.filter(agent => {
146
+ const normalizedName = agent.name.toLowerCase().replace(/\s+/g, '-');
147
+ return relevantNames.has(normalizedName) ||
148
+ Array.from(relevantNames).some(r => normalizedName.includes(r));
149
+ });
150
+ }
151
+ /**
152
+ * 리뷰 프롬프트 생성
153
+ */
154
+ buildReviewPrompt(agent, filePaths) {
155
+ return `You are a ${agent.name}. Review the following files for issues in your domain:
156
+
157
+ Files to review:
158
+ ${filePaths.map(f => `- ${f}`).join('\n')}
159
+
160
+ ${agent.content}
161
+
162
+ Provide findings in this format:
163
+ - Priority: P1 (Critical), P2 (Important), P3 (Nice-to-have)
164
+ - Category: Your specialty area
165
+ - Location: file:line
166
+ - Issue: Description
167
+ - Fix: Recommendation`;
168
+ }
169
+ /**
170
+ * 프로젝트 경로 업데이트
171
+ */
172
+ setProjectPath(path) {
173
+ this.projectPath = path;
174
+ }
175
+ }
176
+ // 싱글톤 인스턴스
177
+ let defaultManager = null;
178
+ export function getAgentManager(options) {
179
+ if (!defaultManager || options) {
180
+ defaultManager = new AgentManager(options);
181
+ }
182
+ return defaultManager;
183
+ }
184
+ //# sourceMappingURL=AgentManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentManager.js","sourceRoot":"","sources":["../../src/orchestrator/AgentManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * LLMCluster - Multi-LLM 병렬 쿼리 및 상태 관리
3
+ * orchestrator.ts에서 추출된 LLM 클러스터 관리 모듈
4
+ */
5
+ /**
6
+ * Multi-LLM 쿼리 결과
7
+ */
8
+ export interface MultiLlmQueryResult {
9
+ gpt?: string;
10
+ gemini?: string;
11
+ }
12
+ /**
13
+ * LLM 상태 결과
14
+ */
15
+ export interface LlmStatusResult {
16
+ gpt: {
17
+ available: boolean;
18
+ };
19
+ gemini: {
20
+ available: boolean;
21
+ };
22
+ }
23
+ /**
24
+ * LLMCluster 설정
25
+ */
26
+ export interface LLMClusterOptions {
27
+ defaultSystemPrompt?: string;
28
+ }
29
+ /**
30
+ * LLMCluster - GPT/Gemini 병렬 쿼리 및 상태 관리
31
+ */
32
+ export declare class LLMCluster {
33
+ private defaultSystemPrompt;
34
+ constructor(options?: LLMClusterOptions);
35
+ /**
36
+ * GPT 오케스트레이션
37
+ */
38
+ gptOrchestrate(prompt: string, systemPrompt?: string, options?: {
39
+ jsonMode?: boolean;
40
+ }): Promise<string>;
41
+ /**
42
+ * Gemini 오케스트레이션
43
+ */
44
+ geminiOrchestrate(prompt: string, systemPrompt?: string, options?: {
45
+ jsonMode?: boolean;
46
+ }): Promise<string>;
47
+ /**
48
+ * Gemini 웹 검색
49
+ */
50
+ geminiWebSearch(query: string): Promise<string>;
51
+ /**
52
+ * GPT 웹 검색 (Gemini로 위임)
53
+ * @deprecated GPT Codex API는 웹 검색을 지원하지 않습니다. geminiWebSearch를 사용하세요.
54
+ */
55
+ gptWebSearch(query: string): Promise<string>;
56
+ /**
57
+ * 멀티 LLM 병렬 쿼리
58
+ * GPT, Gemini 동시 호출하여 결과 비교
59
+ */
60
+ multiQuery(prompt: string, options?: {
61
+ useGpt?: boolean;
62
+ useGemini?: boolean;
63
+ }): Promise<MultiLlmQueryResult>;
64
+ /**
65
+ * LLM 상태 확인 (전체)
66
+ */
67
+ checkStatus(): Promise<LlmStatusResult>;
68
+ }
69
+ export declare function getLLMCluster(options?: LLMClusterOptions): LLMCluster;
70
+ //# sourceMappingURL=LLMCluster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMCluster.d.ts","sourceRoot":"","sources":["../../src/orchestrator/LLMCluster.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5B,MAAM,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,mBAAmB,CAAS;gBAExB,OAAO,GAAE,iBAAsB;IAI3C;;OAEG;IACG,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,OAAO,CAAC,MAAM,CAAC;IAQlB;;OAEG;IACG,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,OAAO,CAAC,MAAM,CAAC;IAQlB;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD;;;OAGG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD;;;OAGG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAClD,OAAO,CAAC,mBAAmB,CAAC;IA0B/B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;CAoB9C;AAKD,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,UAAU,CAKrE"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * LLMCluster - Multi-LLM 병렬 쿼리 및 상태 관리
3
+ * orchestrator.ts에서 추출된 LLM 클러스터 관리 모듈
4
+ */
5
+ import * as gptApi from '../lib/gpt-api.js';
6
+ import * as geminiApi from '../lib/gemini-api.js';
7
+ import { warnLog } from '../lib/utils.js';
8
+ /**
9
+ * LLMCluster - GPT/Gemini 병렬 쿼리 및 상태 관리
10
+ */
11
+ export class LLMCluster {
12
+ defaultSystemPrompt;
13
+ constructor(options = {}) {
14
+ this.defaultSystemPrompt = options.defaultSystemPrompt ?? 'You are a helpful assistant.';
15
+ }
16
+ /**
17
+ * GPT 오케스트레이션
18
+ */
19
+ async gptOrchestrate(prompt, systemPrompt, options) {
20
+ return gptApi.vibeGptOrchestrate(prompt, systemPrompt ?? this.defaultSystemPrompt, options);
21
+ }
22
+ /**
23
+ * Gemini 오케스트레이션
24
+ */
25
+ async geminiOrchestrate(prompt, systemPrompt, options) {
26
+ return geminiApi.vibeGeminiOrchestrate(prompt, systemPrompt ?? this.defaultSystemPrompt, options);
27
+ }
28
+ /**
29
+ * Gemini 웹 검색
30
+ */
31
+ async geminiWebSearch(query) {
32
+ return geminiApi.quickWebSearch(query);
33
+ }
34
+ /**
35
+ * GPT 웹 검색 (Gemini로 위임)
36
+ * @deprecated GPT Codex API는 웹 검색을 지원하지 않습니다. geminiWebSearch를 사용하세요.
37
+ */
38
+ async gptWebSearch(query) {
39
+ return this.geminiWebSearch(query);
40
+ }
41
+ /**
42
+ * 멀티 LLM 병렬 쿼리
43
+ * GPT, Gemini 동시 호출하여 결과 비교
44
+ */
45
+ async multiQuery(prompt, options) {
46
+ const { useGpt = true, useGemini = true } = options || {};
47
+ const results = {};
48
+ const promises = [];
49
+ if (useGpt) {
50
+ promises.push(this.gptOrchestrate(prompt)
51
+ .then(r => { results.gpt = r; })
52
+ .catch(e => { warnLog('GPT query failed in multiLlm', e); }));
53
+ }
54
+ if (useGemini) {
55
+ promises.push(this.geminiOrchestrate(prompt)
56
+ .then(r => { results.gemini = r; })
57
+ .catch(e => { warnLog('Gemini query failed in multiLlm', e); }));
58
+ }
59
+ await Promise.all(promises);
60
+ return results;
61
+ }
62
+ /**
63
+ * LLM 상태 확인 (전체)
64
+ */
65
+ async checkStatus() {
66
+ let gptAvailable = false;
67
+ let geminiAvailable = false;
68
+ const promises = [
69
+ this.gptOrchestrate('ping', 'Reply with pong')
70
+ .then(() => { gptAvailable = true; })
71
+ .catch(e => { warnLog('GPT status check failed', e); }),
72
+ this.geminiOrchestrate('ping', 'Reply with pong')
73
+ .then(() => { geminiAvailable = true; })
74
+ .catch(e => { warnLog('Gemini status check failed', e); })
75
+ ];
76
+ await Promise.all(promises);
77
+ return {
78
+ gpt: { available: gptAvailable },
79
+ gemini: { available: geminiAvailable }
80
+ };
81
+ }
82
+ }
83
+ // 싱글톤 인스턴스
84
+ let defaultCluster = null;
85
+ export function getLLMCluster(options) {
86
+ if (!defaultCluster || options) {
87
+ defaultCluster = new LLMCluster(options);
88
+ }
89
+ return defaultCluster;
90
+ }
91
+ //# sourceMappingURL=LLMCluster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMCluster.js","sourceRoot":"","sources":["../../src/orchestrator/LLMCluster.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * MultiLlmResearch - GPT/Gemini 기반 Multi-LLM 리서치
3
+ * parallelResearch.ts에서 추출 (v2.6.0)
4
+ */
5
+ import { MultiLlmResult } from './types.js';
6
+ /**
7
+ * Multi-LLM 리서치 프롬프트 생성
8
+ */
9
+ export declare function createMultiLlmPrompts(feature: string, techStack: string[]): {
10
+ bestPractices: {
11
+ gpt: string;
12
+ gemini: string;
13
+ };
14
+ security: {
15
+ gpt: string;
16
+ gemini: string;
17
+ };
18
+ };
19
+ /**
20
+ * Multi-LLM 병렬 리서치 실행
21
+ */
22
+ export declare function executeMultiLlmResearch(feature: string, techStack: string[]): Promise<MultiLlmResult[]>;
23
+ /**
24
+ * Multi-LLM 결과 포맷팅
25
+ */
26
+ export declare function formatMultiLlmResults(results: MultiLlmResult[]): string;
27
+ //# sourceMappingURL=MultiLlmResearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiLlmResearch.d.ts","sourceRoot":"","sources":["../../src/orchestrator/MultiLlmResearch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK5C;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG;IAC3E,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C,CAqBA;AAsCD;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC,CA2E3B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,CA+BvE"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * MultiLlmResearch - GPT/Gemini 기반 Multi-LLM 리서치
3
+ * parallelResearch.ts에서 추출 (v2.6.0)
4
+ */
5
+ import { warnLog } from '../lib/utils.js';
6
+ import * as gptApi from '../lib/gpt-api.js';
7
+ import * as geminiApi from '../lib/gemini-api.js';
8
+ /**
9
+ * Multi-LLM 리서치 프롬프트 생성
10
+ */
11
+ export function createMultiLlmPrompts(feature, techStack) {
12
+ const stackStr = techStack.length > 0 ? techStack.join(', ') : 'the project';
13
+ return {
14
+ bestPractices: {
15
+ gpt: `Best practices for implementing "${feature}" with ${stackStr}.
16
+ Focus on: architecture patterns, code conventions, design patterns.
17
+ Return JSON: { patterns: string[], antiPatterns: string[], libraries: string[] }`,
18
+ gemini: `Best practices for implementing "${feature}" with ${stackStr}.
19
+ Focus on: latest trends, framework updates, modern approaches.
20
+ Return JSON: { patterns: string[], antiPatterns: string[], libraries: string[] }`
21
+ },
22
+ security: {
23
+ gpt: `Security considerations for "${feature}" with ${stackStr}.
24
+ Focus on: CVE database, known vulnerabilities, exploit patterns.
25
+ Return JSON: { vulnerabilities: string[], mitigations: string[], checklist: string[] }`,
26
+ gemini: `Security advisories for "${feature}" with ${stackStr}.
27
+ Focus on: latest patches, recent incidents, security best practices.
28
+ Return JSON: { advisories: string[], patches: string[], incidents: string[] }`
29
+ }
30
+ };
31
+ }
32
+ /**
33
+ * GPT API 호출 (에러 처리 포함)
34
+ */
35
+ async function callGptSafe(prompt, systemPrompt, jsonMode = true) {
36
+ try {
37
+ const result = await gptApi.vibeGptOrchestrate(prompt, systemPrompt, { jsonMode });
38
+ return { result, success: true };
39
+ }
40
+ catch (error) {
41
+ const errorMsg = error instanceof Error ? error.message : String(error);
42
+ warnLog('[Multi-LLM] GPT call failed:', errorMsg);
43
+ return { result: '', success: false, error: errorMsg };
44
+ }
45
+ }
46
+ /**
47
+ * Gemini API 호출 (에러 처리 포함)
48
+ */
49
+ async function callGeminiSafe(prompt, systemPrompt, jsonMode = true) {
50
+ try {
51
+ const result = await geminiApi.vibeGeminiOrchestrate(prompt, systemPrompt, { jsonMode });
52
+ return { result, success: true };
53
+ }
54
+ catch (error) {
55
+ const errorMsg = error instanceof Error ? error.message : String(error);
56
+ warnLog('[Multi-LLM] Gemini call failed:', errorMsg);
57
+ return { result: '', success: false, error: errorMsg };
58
+ }
59
+ }
60
+ /**
61
+ * Multi-LLM 병렬 리서치 실행
62
+ */
63
+ export async function executeMultiLlmResearch(feature, techStack) {
64
+ const prompts = createMultiLlmPrompts(feature, techStack);
65
+ const results = [];
66
+ const promises = [];
67
+ // Best Practices - GPT
68
+ promises.push((async () => {
69
+ const taskStart = Date.now();
70
+ const { result, success, error } = await callGptSafe(prompts.bestPractices.gpt, 'You are an expert software architect. Provide best practices in JSON format.');
71
+ results.push({
72
+ provider: 'gpt',
73
+ category: 'best-practices',
74
+ result, success, error,
75
+ duration: Date.now() - taskStart
76
+ });
77
+ })());
78
+ // Best Practices - Gemini
79
+ promises.push((async () => {
80
+ const taskStart = Date.now();
81
+ const { result, success, error } = await callGeminiSafe(prompts.bestPractices.gemini, 'You are an expert in modern development trends. Provide best practices in JSON format.');
82
+ results.push({
83
+ provider: 'gemini',
84
+ category: 'best-practices',
85
+ result, success, error,
86
+ duration: Date.now() - taskStart
87
+ });
88
+ })());
89
+ // Security - GPT
90
+ promises.push((async () => {
91
+ const taskStart = Date.now();
92
+ const { result, success, error } = await callGptSafe(prompts.security.gpt, 'You are a security expert. Focus on CVE database and known vulnerabilities. Return JSON format.');
93
+ results.push({
94
+ provider: 'gpt',
95
+ category: 'security',
96
+ result, success, error,
97
+ duration: Date.now() - taskStart
98
+ });
99
+ })());
100
+ // Security - Gemini
101
+ promises.push((async () => {
102
+ const taskStart = Date.now();
103
+ const { result, success, error } = await callGeminiSafe(prompts.security.gemini, 'You are a security advisor. Focus on latest advisories and patches. Return JSON format.');
104
+ results.push({
105
+ provider: 'gemini',
106
+ category: 'security',
107
+ result, success, error,
108
+ duration: Date.now() - taskStart
109
+ });
110
+ })());
111
+ await Promise.all(promises);
112
+ return results;
113
+ }
114
+ /**
115
+ * Multi-LLM 결과 포맷팅
116
+ */
117
+ export function formatMultiLlmResults(results) {
118
+ if (results.length === 0) {
119
+ return '[Multi-LLM] No results available';
120
+ }
121
+ const successCount = results.filter(r => r.success).length;
122
+ let output = `\n## Multi-LLM Research Results (${successCount}/${results.length} successful)\n\n`;
123
+ // Best Practices 섹션
124
+ const bestPractices = results.filter(r => r.category === 'best-practices');
125
+ if (bestPractices.length > 0) {
126
+ output += `### Best Practices\n\n`;
127
+ for (const bp of bestPractices) {
128
+ const status = bp.success ? '✅' : '❌';
129
+ output += `#### ${status} ${bp.provider.toUpperCase()} (${(bp.duration / 1000).toFixed(1)}s)\n`;
130
+ output += bp.success ? `${bp.result}\n\n` : `Error: ${bp.error}\n\n`;
131
+ }
132
+ }
133
+ // Security 섹션
134
+ const security = results.filter(r => r.category === 'security');
135
+ if (security.length > 0) {
136
+ output += `### Security Advisories\n\n`;
137
+ for (const sec of security) {
138
+ const status = sec.success ? '✅' : '❌';
139
+ output += `#### ${status} ${sec.provider.toUpperCase()} (${(sec.duration / 1000).toFixed(1)}s)\n`;
140
+ output += sec.success ? `${sec.result}\n\n` : `Error: ${sec.error}\n\n`;
141
+ }
142
+ }
143
+ return output;
144
+ }
145
+ //# sourceMappingURL=MultiLlmResearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiLlmResearch.js","sourceRoot":"","sources":["../../src/orchestrator/MultiLlmResearch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * SessionStore - 백그라운드 에이전트 세션 저장소
3
+ * backgroundAgent.ts에서 추출 (v2.6.0)
4
+ */
5
+ import { BackgroundAgentHandle, AgentResult, SessionInfo } from './types.js';
6
+ import { ToolResult } from '../types/tool.js';
7
+ export interface SessionData {
8
+ handle: BackgroundAgentHandle;
9
+ resultPromise: Promise<AgentResult>;
10
+ cancelController: AbortController;
11
+ createdAt: number;
12
+ }
13
+ /**
14
+ * SessionStore - 세션 저장 및 관리
15
+ */
16
+ declare class SessionStoreImpl {
17
+ private activeSessions;
18
+ private sessionHistory;
19
+ private cleanupTimer;
20
+ constructor();
21
+ private startCleanupTimer;
22
+ private cleanup;
23
+ add(sessionId: string, data: SessionData): void;
24
+ get(sessionId: string): SessionData | undefined;
25
+ delete(sessionId: string): void;
26
+ addToHistory(info: SessionInfo): void;
27
+ findInHistory(sessionId: string): SessionInfo | undefined;
28
+ getActiveSessions(): SessionData[];
29
+ getRecentHistory(limit: number): SessionInfo[];
30
+ }
31
+ export declare const sessionStore: SessionStoreImpl;
32
+ /**
33
+ * 활성 세션 목록 조회
34
+ */
35
+ export declare function listActiveSessions(): ToolResult;
36
+ /**
37
+ * 세션 히스토리 조회
38
+ */
39
+ export declare function getSessionHistory(limit?: number): ToolResult;
40
+ export {};
41
+ //# sourceMappingURL=SessionStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionStore.d.ts","sourceRoot":"","sources":["../../src/orchestrator/SessionStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,gBAAgB,EAAE,eAAe,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAOD;;GAEG;AACH,cAAM,gBAAgB;IACpB,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,YAAY,CAA+C;;IAMnE,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,OAAO;IAoBf,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAI/C,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI/C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI/B,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAIrC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIzD,iBAAiB,IAAI,WAAW,EAAE;IAIlC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE;CAG/C;AAGD,eAAO,MAAM,YAAY,kBAAyB,CAAC;AAEnD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,UAAU,CAyB/C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,MAAW,GAAG,UAAU,CAsBhE"}