@su-record/vibe 3.0.0 → 3.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 (341) hide show
  1. package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -78
  2. package/hooks/scripts/__tests__/.vibe/memories/memories.db +0 -0
  3. package/hooks/scripts/__tests__/.vibe/memories/memories.db-shm +0 -0
  4. package/hooks/scripts/__tests__/.vibe/memories/memories.db-wal +0 -0
  5. package/hooks/scripts/__tests__/clone-behaviors.test.js +64 -0
  6. package/hooks/scripts/__tests__/clone-merge-responsive.test.js +106 -0
  7. package/hooks/scripts/clone-extract.js +242 -28
  8. package/hooks/scripts/clone-merge-responsive.js +184 -0
  9. package/hooks/scripts/clone-spec.js +33 -8
  10. package/hooks/scripts/clone-validate.js +15 -9
  11. package/package.json +5 -2
  12. package/skills/clone/SKILL.md +132 -55
  13. package/skills/vibe.clone/SKILL.md +39 -19
  14. package/dist/cli/llm/gemini-commands.d.ts +0 -25
  15. package/dist/cli/llm/gemini-commands.d.ts.map +0 -1
  16. package/dist/cli/llm/gemini-commands.js +0 -143
  17. package/dist/cli/llm/gemini-commands.js.map +0 -1
  18. package/dist/cli/postinstall/codex-agents.d.ts +0 -24
  19. package/dist/cli/postinstall/codex-agents.d.ts.map +0 -1
  20. package/dist/cli/postinstall/codex-agents.js +0 -114
  21. package/dist/cli/postinstall/codex-agents.js.map +0 -1
  22. package/dist/cli/postinstall/codex-instruction.d.ts +0 -10
  23. package/dist/cli/postinstall/codex-instruction.d.ts.map +0 -1
  24. package/dist/cli/postinstall/codex-instruction.js +0 -56
  25. package/dist/cli/postinstall/codex-instruction.js.map +0 -1
  26. package/dist/cli/postinstall/gemini-agents.d.ts +0 -12
  27. package/dist/cli/postinstall/gemini-agents.d.ts.map +0 -1
  28. package/dist/cli/postinstall/gemini-agents.js +0 -80
  29. package/dist/cli/postinstall/gemini-agents.js.map +0 -1
  30. package/dist/cli/postinstall/gemini-instruction.d.ts +0 -10
  31. package/dist/cli/postinstall/gemini-instruction.d.ts.map +0 -1
  32. package/dist/cli/postinstall/gemini-instruction.js +0 -59
  33. package/dist/cli/postinstall/gemini-instruction.js.map +0 -1
  34. package/dist/infra/lib/ContextCompressor.d.ts +0 -104
  35. package/dist/infra/lib/ContextCompressor.d.ts.map +0 -1
  36. package/dist/infra/lib/ContextCompressor.js +0 -297
  37. package/dist/infra/lib/ContextCompressor.js.map +0 -1
  38. package/dist/infra/lib/ContextCompressor.test.d.ts +0 -2
  39. package/dist/infra/lib/ContextCompressor.test.d.ts.map +0 -1
  40. package/dist/infra/lib/ContextCompressor.test.js +0 -25
  41. package/dist/infra/lib/ContextCompressor.test.js.map +0 -1
  42. package/dist/infra/lib/ProgressTracker.d.ts +0 -73
  43. package/dist/infra/lib/ProgressTracker.d.ts.map +0 -1
  44. package/dist/infra/lib/ProgressTracker.js +0 -267
  45. package/dist/infra/lib/ProgressTracker.js.map +0 -1
  46. package/dist/infra/lib/TokenBudgetTracker.d.ts +0 -68
  47. package/dist/infra/lib/TokenBudgetTracker.d.ts.map +0 -1
  48. package/dist/infra/lib/TokenBudgetTracker.js +0 -191
  49. package/dist/infra/lib/TokenBudgetTracker.js.map +0 -1
  50. package/dist/infra/lib/autonomy/AuditStore.d.ts +0 -63
  51. package/dist/infra/lib/autonomy/AuditStore.d.ts.map +0 -1
  52. package/dist/infra/lib/autonomy/AuditStore.js +0 -185
  53. package/dist/infra/lib/autonomy/AuditStore.js.map +0 -1
  54. package/dist/infra/lib/autonomy/AutonomyConfig.d.ts +0 -84
  55. package/dist/infra/lib/autonomy/AutonomyConfig.d.ts.map +0 -1
  56. package/dist/infra/lib/autonomy/AutonomyConfig.js +0 -49
  57. package/dist/infra/lib/autonomy/AutonomyConfig.js.map +0 -1
  58. package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts +0 -78
  59. package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts.map +0 -1
  60. package/dist/infra/lib/autonomy/AutonomyOrchestrator.js +0 -246
  61. package/dist/infra/lib/autonomy/AutonomyOrchestrator.js.map +0 -1
  62. package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts +0 -36
  63. package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts.map +0 -1
  64. package/dist/infra/lib/autonomy/BackgroundMonitor.js +0 -138
  65. package/dist/infra/lib/autonomy/BackgroundMonitor.js.map +0 -1
  66. package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts +0 -56
  67. package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts.map +0 -1
  68. package/dist/infra/lib/autonomy/CollaborationProtocol.js +0 -122
  69. package/dist/infra/lib/autonomy/CollaborationProtocol.js.map +0 -1
  70. package/dist/infra/lib/autonomy/ConfirmationManager.d.ts +0 -42
  71. package/dist/infra/lib/autonomy/ConfirmationManager.d.ts.map +0 -1
  72. package/dist/infra/lib/autonomy/ConfirmationManager.js +0 -200
  73. package/dist/infra/lib/autonomy/ConfirmationManager.js.map +0 -1
  74. package/dist/infra/lib/autonomy/ConfirmationStore.d.ts +0 -55
  75. package/dist/infra/lib/autonomy/ConfirmationStore.d.ts.map +0 -1
  76. package/dist/infra/lib/autonomy/ConfirmationStore.js +0 -130
  77. package/dist/infra/lib/autonomy/ConfirmationStore.js.map +0 -1
  78. package/dist/infra/lib/autonomy/EventBus.d.ts +0 -20
  79. package/dist/infra/lib/autonomy/EventBus.d.ts.map +0 -1
  80. package/dist/infra/lib/autonomy/EventBus.js +0 -119
  81. package/dist/infra/lib/autonomy/EventBus.js.map +0 -1
  82. package/dist/infra/lib/autonomy/EventOutbox.d.ts +0 -32
  83. package/dist/infra/lib/autonomy/EventOutbox.d.ts.map +0 -1
  84. package/dist/infra/lib/autonomy/EventOutbox.js +0 -152
  85. package/dist/infra/lib/autonomy/EventOutbox.js.map +0 -1
  86. package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts +0 -24
  87. package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts.map +0 -1
  88. package/dist/infra/lib/autonomy/NotificationDispatcher.js +0 -112
  89. package/dist/infra/lib/autonomy/NotificationDispatcher.js.map +0 -1
  90. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +0 -76
  91. package/dist/infra/lib/autonomy/PolicyEngine.d.ts.map +0 -1
  92. package/dist/infra/lib/autonomy/PolicyEngine.js +0 -208
  93. package/dist/infra/lib/autonomy/PolicyEngine.js.map +0 -1
  94. package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts +0 -61
  95. package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts.map +0 -1
  96. package/dist/infra/lib/autonomy/ProactiveAnalyzer.js +0 -236
  97. package/dist/infra/lib/autonomy/ProactiveAnalyzer.js.map +0 -1
  98. package/dist/infra/lib/autonomy/RiskClassifier.d.ts +0 -35
  99. package/dist/infra/lib/autonomy/RiskClassifier.d.ts.map +0 -1
  100. package/dist/infra/lib/autonomy/RiskClassifier.js +0 -147
  101. package/dist/infra/lib/autonomy/RiskClassifier.js.map +0 -1
  102. package/dist/infra/lib/autonomy/SecuritySentinel.d.ts +0 -51
  103. package/dist/infra/lib/autonomy/SecuritySentinel.d.ts.map +0 -1
  104. package/dist/infra/lib/autonomy/SecuritySentinel.js +0 -162
  105. package/dist/infra/lib/autonomy/SecuritySentinel.js.map +0 -1
  106. package/dist/infra/lib/autonomy/SuggestionStore.d.ts +0 -54
  107. package/dist/infra/lib/autonomy/SuggestionStore.d.ts.map +0 -1
  108. package/dist/infra/lib/autonomy/SuggestionStore.js +0 -144
  109. package/dist/infra/lib/autonomy/SuggestionStore.js.map +0 -1
  110. package/dist/infra/lib/autonomy/TaskDecomposer.d.ts +0 -38
  111. package/dist/infra/lib/autonomy/TaskDecomposer.d.ts.map +0 -1
  112. package/dist/infra/lib/autonomy/TaskDecomposer.js +0 -175
  113. package/dist/infra/lib/autonomy/TaskDecomposer.js.map +0 -1
  114. package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts +0 -2
  115. package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts.map +0 -1
  116. package/dist/infra/lib/autonomy/__tests__/audit-store.test.js +0 -198
  117. package/dist/infra/lib/autonomy/__tests__/audit-store.test.js.map +0 -1
  118. package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts +0 -2
  119. package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts.map +0 -1
  120. package/dist/infra/lib/autonomy/__tests__/event-bus.test.js +0 -225
  121. package/dist/infra/lib/autonomy/__tests__/event-bus.test.js.map +0 -1
  122. package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts +0 -2
  123. package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts.map +0 -1
  124. package/dist/infra/lib/autonomy/__tests__/event-core.test.js +0 -194
  125. package/dist/infra/lib/autonomy/__tests__/event-core.test.js.map +0 -1
  126. package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts +0 -2
  127. package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts.map +0 -1
  128. package/dist/infra/lib/autonomy/__tests__/governance.test.js +0 -540
  129. package/dist/infra/lib/autonomy/__tests__/governance.test.js.map +0 -1
  130. package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts +0 -2
  131. package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts.map +0 -1
  132. package/dist/infra/lib/autonomy/__tests__/integration.test.js +0 -480
  133. package/dist/infra/lib/autonomy/__tests__/integration.test.js.map +0 -1
  134. package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts +0 -2
  135. package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts.map +0 -1
  136. package/dist/infra/lib/autonomy/__tests__/proactive.test.js +0 -410
  137. package/dist/infra/lib/autonomy/__tests__/proactive.test.js.map +0 -1
  138. package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts +0 -2
  139. package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts.map +0 -1
  140. package/dist/infra/lib/autonomy/__tests__/sentinel.test.js +0 -486
  141. package/dist/infra/lib/autonomy/__tests__/sentinel.test.js.map +0 -1
  142. package/dist/infra/lib/autonomy/index.d.ts +0 -18
  143. package/dist/infra/lib/autonomy/index.d.ts.map +0 -1
  144. package/dist/infra/lib/autonomy/index.js +0 -22
  145. package/dist/infra/lib/autonomy/index.js.map +0 -1
  146. package/dist/infra/lib/autonomy/schemas.d.ts +0 -317
  147. package/dist/infra/lib/autonomy/schemas.d.ts.map +0 -1
  148. package/dist/infra/lib/autonomy/schemas.js +0 -90
  149. package/dist/infra/lib/autonomy/schemas.js.map +0 -1
  150. package/dist/infra/lib/claude/index.d.ts +0 -5
  151. package/dist/infra/lib/claude/index.d.ts.map +0 -1
  152. package/dist/infra/lib/claude/index.js +0 -5
  153. package/dist/infra/lib/claude/index.js.map +0 -1
  154. package/dist/infra/lib/claude/storage.d.ts +0 -12
  155. package/dist/infra/lib/claude/storage.d.ts.map +0 -1
  156. package/dist/infra/lib/claude/storage.js +0 -54
  157. package/dist/infra/lib/claude/storage.js.map +0 -1
  158. package/dist/infra/lib/gemini/auth.d.ts +0 -18
  159. package/dist/infra/lib/gemini/auth.d.ts.map +0 -1
  160. package/dist/infra/lib/gemini/auth.js +0 -32
  161. package/dist/infra/lib/gemini/auth.js.map +0 -1
  162. package/dist/infra/lib/gemini/capabilities.d.ts +0 -28
  163. package/dist/infra/lib/gemini/capabilities.d.ts.map +0 -1
  164. package/dist/infra/lib/gemini/capabilities.js +0 -178
  165. package/dist/infra/lib/gemini/capabilities.js.map +0 -1
  166. package/dist/infra/lib/gemini/chat.d.ts +0 -35
  167. package/dist/infra/lib/gemini/chat.d.ts.map +0 -1
  168. package/dist/infra/lib/gemini/chat.js +0 -161
  169. package/dist/infra/lib/gemini/chat.js.map +0 -1
  170. package/dist/infra/lib/gemini/completion.d.ts +0 -12
  171. package/dist/infra/lib/gemini/completion.d.ts.map +0 -1
  172. package/dist/infra/lib/gemini/completion.js +0 -13
  173. package/dist/infra/lib/gemini/completion.js.map +0 -1
  174. package/dist/infra/lib/gemini/constants.d.ts +0 -8
  175. package/dist/infra/lib/gemini/constants.d.ts.map +0 -1
  176. package/dist/infra/lib/gemini/constants.js +0 -11
  177. package/dist/infra/lib/gemini/constants.js.map +0 -1
  178. package/dist/infra/lib/gemini/index.d.ts +0 -13
  179. package/dist/infra/lib/gemini/index.d.ts.map +0 -1
  180. package/dist/infra/lib/gemini/index.js +0 -12
  181. package/dist/infra/lib/gemini/index.js.map +0 -1
  182. package/dist/infra/lib/gemini/models.d.ts +0 -11
  183. package/dist/infra/lib/gemini/models.d.ts.map +0 -1
  184. package/dist/infra/lib/gemini/models.js +0 -38
  185. package/dist/infra/lib/gemini/models.js.map +0 -1
  186. package/dist/infra/lib/gemini/orchestration.d.ts +0 -33
  187. package/dist/infra/lib/gemini/orchestration.d.ts.map +0 -1
  188. package/dist/infra/lib/gemini/orchestration.js +0 -62
  189. package/dist/infra/lib/gemini/orchestration.js.map +0 -1
  190. package/dist/infra/lib/gemini/types.d.ts +0 -115
  191. package/dist/infra/lib/gemini/types.d.ts.map +0 -1
  192. package/dist/infra/lib/gemini/types.js +0 -5
  193. package/dist/infra/lib/gemini/types.js.map +0 -1
  194. package/dist/infra/orchestrator/AgentAnnouncer.d.ts +0 -64
  195. package/dist/infra/orchestrator/AgentAnnouncer.d.ts.map +0 -1
  196. package/dist/infra/orchestrator/AgentAnnouncer.js +0 -127
  197. package/dist/infra/orchestrator/AgentAnnouncer.js.map +0 -1
  198. package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts +0 -5
  199. package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts.map +0 -1
  200. package/dist/infra/orchestrator/AgentAnnouncer.test.js +0 -119
  201. package/dist/infra/orchestrator/AgentAnnouncer.test.js.map +0 -1
  202. package/dist/infra/orchestrator/AgentExecutor.d.ts +0 -22
  203. package/dist/infra/orchestrator/AgentExecutor.d.ts.map +0 -1
  204. package/dist/infra/orchestrator/AgentExecutor.js +0 -272
  205. package/dist/infra/orchestrator/AgentExecutor.js.map +0 -1
  206. package/dist/infra/orchestrator/AgentManager.d.ts +0 -72
  207. package/dist/infra/orchestrator/AgentManager.d.ts.map +0 -1
  208. package/dist/infra/orchestrator/AgentManager.js +0 -183
  209. package/dist/infra/orchestrator/AgentManager.js.map +0 -1
  210. package/dist/infra/orchestrator/AgentManifestCache.d.ts +0 -54
  211. package/dist/infra/orchestrator/AgentManifestCache.d.ts.map +0 -1
  212. package/dist/infra/orchestrator/AgentManifestCache.js +0 -191
  213. package/dist/infra/orchestrator/AgentManifestCache.js.map +0 -1
  214. package/dist/infra/orchestrator/AgentRegistry.d.ts +0 -76
  215. package/dist/infra/orchestrator/AgentRegistry.d.ts.map +0 -1
  216. package/dist/infra/orchestrator/AgentRegistry.js +0 -217
  217. package/dist/infra/orchestrator/AgentRegistry.js.map +0 -1
  218. package/dist/infra/orchestrator/AgentRegistry.test.d.ts +0 -5
  219. package/dist/infra/orchestrator/AgentRegistry.test.d.ts.map +0 -1
  220. package/dist/infra/orchestrator/AgentRegistry.test.js +0 -122
  221. package/dist/infra/orchestrator/AgentRegistry.test.js.map +0 -1
  222. package/dist/infra/orchestrator/BackgroundManager.d.ts +0 -128
  223. package/dist/infra/orchestrator/BackgroundManager.d.ts.map +0 -1
  224. package/dist/infra/orchestrator/BackgroundManager.js +0 -620
  225. package/dist/infra/orchestrator/BackgroundManager.js.map +0 -1
  226. package/dist/infra/orchestrator/BackgroundManager.test.d.ts +0 -6
  227. package/dist/infra/orchestrator/BackgroundManager.test.d.ts.map +0 -1
  228. package/dist/infra/orchestrator/BackgroundManager.test.js +0 -162
  229. package/dist/infra/orchestrator/BackgroundManager.test.js.map +0 -1
  230. package/dist/infra/orchestrator/CheckpointManager.d.ts +0 -54
  231. package/dist/infra/orchestrator/CheckpointManager.d.ts.map +0 -1
  232. package/dist/infra/orchestrator/CheckpointManager.js +0 -121
  233. package/dist/infra/orchestrator/CheckpointManager.js.map +0 -1
  234. package/dist/infra/orchestrator/CodexAgentRuntime.d.ts +0 -12
  235. package/dist/infra/orchestrator/CodexAgentRuntime.d.ts.map +0 -1
  236. package/dist/infra/orchestrator/CodexAgentRuntime.js +0 -94
  237. package/dist/infra/orchestrator/CodexAgentRuntime.js.map +0 -1
  238. package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts +0 -2
  239. package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts.map +0 -1
  240. package/dist/infra/orchestrator/CodexAgentRuntime.test.js +0 -37
  241. package/dist/infra/orchestrator/CodexAgentRuntime.test.js.map +0 -1
  242. package/dist/infra/orchestrator/LLMCluster.d.ts +0 -82
  243. package/dist/infra/orchestrator/LLMCluster.d.ts.map +0 -1
  244. package/dist/infra/orchestrator/LLMCluster.js +0 -146
  245. package/dist/infra/orchestrator/LLMCluster.js.map +0 -1
  246. package/dist/infra/orchestrator/MultiLlmResearch.d.ts +0 -31
  247. package/dist/infra/orchestrator/MultiLlmResearch.d.ts.map +0 -1
  248. package/dist/infra/orchestrator/MultiLlmResearch.js +0 -160
  249. package/dist/infra/orchestrator/MultiLlmResearch.js.map +0 -1
  250. package/dist/infra/orchestrator/PhasePipeline.d.ts +0 -122
  251. package/dist/infra/orchestrator/PhasePipeline.d.ts.map +0 -1
  252. package/dist/infra/orchestrator/PhasePipeline.js +0 -385
  253. package/dist/infra/orchestrator/PhasePipeline.js.map +0 -1
  254. package/dist/infra/orchestrator/PhaseResultStore.d.ts +0 -39
  255. package/dist/infra/orchestrator/PhaseResultStore.d.ts.map +0 -1
  256. package/dist/infra/orchestrator/PhaseResultStore.js +0 -151
  257. package/dist/infra/orchestrator/PhaseResultStore.js.map +0 -1
  258. package/dist/infra/orchestrator/SessionStore.d.ts +0 -40
  259. package/dist/infra/orchestrator/SessionStore.d.ts.map +0 -1
  260. package/dist/infra/orchestrator/SessionStore.js +0 -116
  261. package/dist/infra/orchestrator/SessionStore.js.map +0 -1
  262. package/dist/infra/orchestrator/SmartRouter.d.ts +0 -90
  263. package/dist/infra/orchestrator/SmartRouter.d.ts.map +0 -1
  264. package/dist/infra/orchestrator/SmartRouter.js +0 -277
  265. package/dist/infra/orchestrator/SmartRouter.js.map +0 -1
  266. package/dist/infra/orchestrator/SmartRouter.test.d.ts +0 -5
  267. package/dist/infra/orchestrator/SmartRouter.test.d.ts.map +0 -1
  268. package/dist/infra/orchestrator/SmartRouter.test.js +0 -484
  269. package/dist/infra/orchestrator/SmartRouter.test.js.map +0 -1
  270. package/dist/infra/orchestrator/SwarmOrchestrator.d.ts +0 -143
  271. package/dist/infra/orchestrator/SwarmOrchestrator.d.ts.map +0 -1
  272. package/dist/infra/orchestrator/SwarmOrchestrator.js +0 -378
  273. package/dist/infra/orchestrator/SwarmOrchestrator.js.map +0 -1
  274. package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts +0 -5
  275. package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts.map +0 -1
  276. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +0 -95
  277. package/dist/infra/orchestrator/SwarmOrchestrator.test.js.map +0 -1
  278. package/dist/infra/orchestrator/agentDiscovery.d.ts +0 -26
  279. package/dist/infra/orchestrator/agentDiscovery.d.ts.map +0 -1
  280. package/dist/infra/orchestrator/agentDiscovery.js +0 -175
  281. package/dist/infra/orchestrator/agentDiscovery.js.map +0 -1
  282. package/dist/infra/orchestrator/backgroundAgent.d.ts +0 -9
  283. package/dist/infra/orchestrator/backgroundAgent.d.ts.map +0 -1
  284. package/dist/infra/orchestrator/backgroundAgent.js +0 -10
  285. package/dist/infra/orchestrator/backgroundAgent.js.map +0 -1
  286. package/dist/infra/orchestrator/index.d.ts +0 -207
  287. package/dist/infra/orchestrator/index.d.ts.map +0 -1
  288. package/dist/infra/orchestrator/index.js +0 -362
  289. package/dist/infra/orchestrator/index.js.map +0 -1
  290. package/dist/infra/orchestrator/orchestrator.d.ts +0 -60
  291. package/dist/infra/orchestrator/orchestrator.d.ts.map +0 -1
  292. package/dist/infra/orchestrator/orchestrator.js +0 -214
  293. package/dist/infra/orchestrator/orchestrator.js.map +0 -1
  294. package/dist/infra/orchestrator/parallelResearch.d.ts +0 -27
  295. package/dist/infra/orchestrator/parallelResearch.d.ts.map +0 -1
  296. package/dist/infra/orchestrator/parallelResearch.js +0 -285
  297. package/dist/infra/orchestrator/parallelResearch.js.map +0 -1
  298. package/dist/infra/orchestrator/types.d.ts +0 -205
  299. package/dist/infra/orchestrator/types.d.ts.map +0 -1
  300. package/dist/infra/orchestrator/types.js +0 -87
  301. package/dist/infra/orchestrator/types.js.map +0 -1
  302. package/dist/infra/orchestrator/types.test.d.ts +0 -2
  303. package/dist/infra/orchestrator/types.test.d.ts.map +0 -1
  304. package/dist/infra/orchestrator/types.test.js +0 -57
  305. package/dist/infra/orchestrator/types.test.js.map +0 -1
  306. package/dist/tools/semantic/analyzeDependencyGraph.d.ts +0 -12
  307. package/dist/tools/semantic/analyzeDependencyGraph.d.ts.map +0 -1
  308. package/dist/tools/semantic/analyzeDependencyGraph.js +0 -359
  309. package/dist/tools/semantic/analyzeDependencyGraph.js.map +0 -1
  310. package/dist/tools/semantic/astGrep.d.ts +0 -25
  311. package/dist/tools/semantic/astGrep.d.ts.map +0 -1
  312. package/dist/tools/semantic/astGrep.js +0 -324
  313. package/dist/tools/semantic/astGrep.js.map +0 -1
  314. package/dist/tools/semantic/astGrep.test.d.ts +0 -2
  315. package/dist/tools/semantic/astGrep.test.d.ts.map +0 -1
  316. package/dist/tools/semantic/astGrep.test.js +0 -74
  317. package/dist/tools/semantic/astGrep.test.js.map +0 -1
  318. package/dist/tools/semantic/findReferences.d.ts +0 -9
  319. package/dist/tools/semantic/findReferences.d.ts.map +0 -1
  320. package/dist/tools/semantic/findReferences.js +0 -200
  321. package/dist/tools/semantic/findReferences.js.map +0 -1
  322. package/dist/tools/semantic/findSymbol.d.ts +0 -8
  323. package/dist/tools/semantic/findSymbol.d.ts.map +0 -1
  324. package/dist/tools/semantic/findSymbol.js +0 -204
  325. package/dist/tools/semantic/findSymbol.js.map +0 -1
  326. package/dist/tools/semantic/index.d.ts +0 -9
  327. package/dist/tools/semantic/index.d.ts.map +0 -1
  328. package/dist/tools/semantic/index.js +0 -11
  329. package/dist/tools/semantic/index.js.map +0 -1
  330. package/dist/tools/semantic/lsp.d.ts +0 -68
  331. package/dist/tools/semantic/lsp.d.ts.map +0 -1
  332. package/dist/tools/semantic/lsp.js +0 -561
  333. package/dist/tools/semantic/lsp.js.map +0 -1
  334. package/dist/tools/spec/e2eTestGenerator.d.ts +0 -61
  335. package/dist/tools/spec/e2eTestGenerator.d.ts.map +0 -1
  336. package/dist/tools/spec/e2eTestGenerator.js +0 -255
  337. package/dist/tools/spec/e2eTestGenerator.js.map +0 -1
  338. package/dist/tools/spec/specVersioning.d.ts +0 -76
  339. package/dist/tools/spec/specVersioning.d.ts.map +0 -1
  340. package/dist/tools/spec/specVersioning.js +0 -236
  341. package/dist/tools/spec/specVersioning.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"SwarmOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/infra/orchestrator/SwarmOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -1,378 +0,0 @@
1
- /**
2
- * SwarmOrchestrator - 에이전트 자가 복제 패턴 (Swarm Pattern)
3
- *
4
- * SKILL.md 참조: Claude Code의 Swarm 패턴을 Core 자체 구현으로 재현
5
- * - 에이전트가 "너무 복잡하다" 판단 시 하위 에이전트 동적 생성
6
- * - 기존 launch()/poll() 인프라 활용
7
- * - Claude Code + Cursor IDE 모두 지원 (플랫폼 독립)
8
- */
9
- import { launch, poll, cancel } from './BackgroundManager.js';
10
- import { CONCURRENCY } from '../lib/constants.js';
11
- import { warnLog } from '../lib/utils.js';
12
- import { getModelOverride } from '../lib/config/GlobalConfigManager.js';
13
- // ============================================
14
- // SwarmOrchestrator
15
- // ============================================
16
- export class SwarmOrchestrator {
17
- tasks = new Map();
18
- config;
19
- startTime = 0;
20
- constructor(config) {
21
- this.config = {
22
- prompt: config.prompt,
23
- agentName: config.agentName || 'swarm-root',
24
- model: config.model || getModelOverride('claudeBackground') || process.env.CLAUDE_BACKGROUND_MODEL,
25
- maxDepth: config.maxDepth ?? 2,
26
- splitThreshold: config.splitThreshold ?? 15,
27
- maxConcurrentChildren: config.maxConcurrentChildren ?? 5,
28
- onSplit: config.onSplit || (() => { }),
29
- onComplete: config.onComplete || (() => { }),
30
- projectPath: config.projectPath || process.cwd(),
31
- timeout: config.timeout ?? 5 * 60 * 1000
32
- };
33
- }
34
- /**
35
- * Swarm 실행
36
- */
37
- async execute() {
38
- this.startTime = Date.now();
39
- // 루트 태스크 생성
40
- const rootTask = this.createTask(this.config.prompt, null, 0);
41
- this.tasks.set(rootTask.id, rootTask);
42
- // 실행
43
- await this.processTask(rootTask);
44
- // 결과 수집
45
- return this.collectResults(rootTask.id);
46
- }
47
- /**
48
- * 태스크 처리
49
- */
50
- async processTask(task) {
51
- // 타임아웃 체크
52
- if (Date.now() - this.startTime > this.config.timeout) {
53
- task.status = 'failed';
54
- task.error = 'Swarm timeout exceeded';
55
- return;
56
- }
57
- task.status = 'analyzing';
58
- task.startedAt = Date.now();
59
- // 복잡도 분석
60
- const analysis = await this.analyzeComplexity(task.prompt);
61
- task.complexity = analysis.score;
62
- // 분할 결정
63
- if (this.shouldSplit(task, analysis)) {
64
- await this.splitTask(task, analysis);
65
- }
66
- else {
67
- await this.executeTask(task);
68
- }
69
- }
70
- /**
71
- * 복잡도 분석
72
- */
73
- async analyzeComplexity(prompt) {
74
- const factors = [];
75
- let score = 0;
76
- // 프롬프트 길이
77
- if (prompt.length > 500) {
78
- score += 5;
79
- factors.push('long-prompt');
80
- }
81
- if (prompt.length > 1000) {
82
- score += 5;
83
- factors.push('very-long-prompt');
84
- }
85
- // 키워드 기반 복잡도
86
- const complexKeywords = [
87
- { pattern: /implement|create|build/gi, weight: 3 },
88
- { pattern: /refactor|restructure|redesign/gi, weight: 4 },
89
- { pattern: /multiple|several|all|every/gi, weight: 2 },
90
- { pattern: /and then|after that|next/gi, weight: 2 },
91
- { pattern: /test|verify|validate/gi, weight: 2 },
92
- { pattern: /security|authentication|authorization/gi, weight: 3 },
93
- { pattern: /database|migration|schema/gi, weight: 3 },
94
- { pattern: /api|endpoint|route/gi, weight: 2 },
95
- { pattern: /frontend|backend|fullstack/gi, weight: 3 },
96
- { pattern: /phase|step|stage/gi, weight: 2 }
97
- ];
98
- for (const { pattern, weight } of complexKeywords) {
99
- const matches = prompt.match(pattern);
100
- if (matches) {
101
- score += weight * matches.length;
102
- factors.push(pattern.source.split('|')[0]);
103
- }
104
- }
105
- // 파일/경로 언급
106
- const fileMentions = prompt.match(/\.(ts|js|tsx|jsx|py|go|rs|java|rb|swift|kt)/gi);
107
- if (fileMentions && fileMentions.length > 3) {
108
- score += fileMentions.length * 2;
109
- factors.push(`${fileMentions.length}-files`);
110
- }
111
- // 숫자 목록 (1. 2. 3. 등)
112
- const numberedList = prompt.match(/^\d+\./gm);
113
- if (numberedList && numberedList.length > 2) {
114
- score += numberedList.length * 2;
115
- factors.push(`${numberedList.length}-steps`);
116
- }
117
- // 분할 제안 생성
118
- const suggestedSplits = this.suggestSplits(prompt);
119
- return { score, factors, suggestedSplits };
120
- }
121
- /**
122
- * 분할 제안 생성
123
- */
124
- suggestSplits(prompt) {
125
- const splits = [];
126
- // 숫자 목록으로 분할
127
- const numberedSections = prompt.split(/(?=\d+\.\s)/);
128
- if (numberedSections.length > 2) {
129
- for (const section of numberedSections) {
130
- const trimmed = section.trim();
131
- if (trimmed.length > 20) {
132
- splits.push(trimmed);
133
- }
134
- }
135
- if (splits.length > 1)
136
- return splits;
137
- }
138
- // "and", "then" 등으로 분할
139
- const conjunctionSplit = prompt.split(/\s+(?:and then|then|after that|next,?)\s+/i);
140
- if (conjunctionSplit.length > 1) {
141
- return conjunctionSplit.map(s => s.trim()).filter(s => s.length > 20);
142
- }
143
- // 문장 단위 분할 (fallback)
144
- const sentences = prompt.split(/(?<=[.!?])\s+/);
145
- if (sentences.length > 3) {
146
- // 2-3개 문장씩 그룹화
147
- const grouped = [];
148
- for (let i = 0; i < sentences.length; i += 2) {
149
- const group = sentences.slice(i, i + 2).join(' ');
150
- if (group.length > 30) {
151
- grouped.push(group);
152
- }
153
- }
154
- if (grouped.length > 1)
155
- return grouped;
156
- }
157
- return [];
158
- }
159
- /**
160
- * 분할 여부 결정
161
- */
162
- shouldSplit(task, analysis) {
163
- // 최대 깊이 도달
164
- if (task.depth >= this.config.maxDepth) {
165
- return false;
166
- }
167
- // 복잡도 임계값 미달
168
- if (analysis.score < this.config.splitThreshold) {
169
- return false;
170
- }
171
- // 분할 가능한 항목이 없음
172
- if (!analysis.suggestedSplits || analysis.suggestedSplits.length < 2) {
173
- return false;
174
- }
175
- return true;
176
- }
177
- /**
178
- * 태스크 분할
179
- */
180
- async splitTask(task, analysis) {
181
- task.status = 'splitting';
182
- this.config.onSplit(task);
183
- const splits = analysis.suggestedSplits || [];
184
- const childTasks = [];
185
- // 하위 태스크 생성
186
- for (let i = 0; i < Math.min(splits.length, this.config.maxConcurrentChildren); i++) {
187
- const childPrompt = this.createChildPrompt(splits[i], i + 1, splits.length);
188
- const childTask = this.createTask(childPrompt, task.id, task.depth + 1);
189
- this.tasks.set(childTask.id, childTask);
190
- task.children.push(childTask.id);
191
- childTasks.push(childTask);
192
- }
193
- // 병렬 실행
194
- await Promise.all(childTasks.map(child => this.processTask(child)));
195
- // 결과 병합
196
- await this.mergeChildResults(task);
197
- }
198
- /**
199
- * 하위 프롬프트 생성
200
- */
201
- createChildPrompt(content, index, total) {
202
- return `[Part ${index}/${total}] ${content}`;
203
- }
204
- /**
205
- * 하위 결과 병합
206
- */
207
- async mergeChildResults(task) {
208
- const childResults = [];
209
- let allSuccess = true;
210
- for (const childId of task.children) {
211
- const child = this.tasks.get(childId);
212
- if (child) {
213
- if (child.status === 'completed' && child.result) {
214
- childResults.push(`## Part ${task.children.indexOf(childId) + 1}\n${child.result.result}`);
215
- }
216
- else if (child.status === 'failed') {
217
- allSuccess = false;
218
- childResults.push(`## Part ${task.children.indexOf(childId) + 1}\n[FAILED] ${child.error || 'Unknown error'}`);
219
- }
220
- }
221
- }
222
- task.status = allSuccess ? 'completed' : 'failed';
223
- task.completedAt = Date.now();
224
- task.result = {
225
- agentName: `${this.config.agentName}-merged`,
226
- sessionId: task.id,
227
- result: childResults.join('\n\n'),
228
- success: allSuccess,
229
- duration: task.completedAt - (task.startedAt || task.createdAt)
230
- };
231
- this.config.onComplete(task, task.result);
232
- }
233
- /**
234
- * 태스크 실행 (분할 없이) — 실패 시 자동 재시도
235
- */
236
- async executeTask(task) {
237
- const maxRetries = CONCURRENCY.MAX_RETRIES;
238
- let attempt = 0;
239
- while (attempt <= maxRetries) {
240
- task.status = 'running';
241
- if (attempt > 0) {
242
- const delay = CONCURRENCY.RETRY_BASE_DELAY * Math.pow(2, attempt - 1);
243
- warnLog(`[SwarmOrchestrator] Task ${task.id} retry ${attempt}/${maxRetries} after ${delay}ms`);
244
- await this.sleep(delay);
245
- }
246
- const args = {
247
- prompt: task.prompt,
248
- agentName: `${this.config.agentName}-${task.depth}-${task.id.slice(-6)}`,
249
- model: this.config.model,
250
- projectPath: this.config.projectPath
251
- };
252
- // launch로 백그라운드 실행
253
- const launchResult = launch(args);
254
- task.taskId = launchResult.taskId;
255
- // poll로 결과 대기 (TASK_TIMEOUT 이내)
256
- const pollDeadline = Date.now() + CONCURRENCY.TASK_TIMEOUT;
257
- let pollResult = await poll(launchResult.taskId);
258
- while (pollResult.task?.status === 'pending' || pollResult.task?.status === 'running') {
259
- if (Date.now() > pollDeadline) {
260
- cancel(launchResult.taskId);
261
- warnLog(`[SwarmOrchestrator] Task ${task.id} polling timed out (attempt ${attempt + 1})`);
262
- break;
263
- }
264
- await this.sleep(500);
265
- pollResult = await poll(launchResult.taskId);
266
- }
267
- if (pollResult.result?.success) {
268
- task.result = pollResult.result;
269
- task.status = 'completed';
270
- break;
271
- }
272
- // 실패 — 재시도 가능 여부 확인
273
- attempt++;
274
- if (attempt > maxRetries) {
275
- task.status = 'failed';
276
- task.error = pollResult.result?.error || 'No result from agent (retries exhausted)';
277
- warnLog(`[SwarmOrchestrator] Task ${task.id} exhausted ${maxRetries} retries`);
278
- }
279
- }
280
- task.completedAt = Date.now();
281
- if (task.result) {
282
- this.config.onComplete(task, task.result);
283
- }
284
- }
285
- /**
286
- * 결과 수집
287
- */
288
- collectResults(rootTaskId) {
289
- const allTasks = Array.from(this.tasks.values());
290
- const rootTask = this.tasks.get(rootTaskId);
291
- let maxDepth = 0;
292
- let splitCount = 0;
293
- let successCount = 0;
294
- let failureCount = 0;
295
- for (const task of allTasks) {
296
- maxDepth = Math.max(maxDepth, task.depth);
297
- if (task.children.length > 0)
298
- splitCount++;
299
- if (task.status === 'completed')
300
- successCount++;
301
- if (task.status === 'failed')
302
- failureCount++;
303
- }
304
- return {
305
- rootTaskId,
306
- tasks: allTasks,
307
- totalDuration: Date.now() - this.startTime,
308
- splitCount,
309
- successCount,
310
- failureCount,
311
- maxDepthReached: maxDepth,
312
- mergedResult: rootTask.result?.result || ''
313
- };
314
- }
315
- /**
316
- * 태스크 생성
317
- */
318
- createTask(prompt, parentId, depth) {
319
- return {
320
- id: `swarm-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
321
- parentId,
322
- prompt,
323
- depth,
324
- status: 'pending',
325
- children: [],
326
- createdAt: Date.now()
327
- };
328
- }
329
- sleep(ms) {
330
- return new Promise(resolve => setTimeout(resolve, ms));
331
- }
332
- }
333
- // ============================================
334
- // 편의 함수
335
- // ============================================
336
- /**
337
- * Swarm 패턴으로 복잡한 작업 실행
338
- *
339
- * @example
340
- * import { swarm } from '@su-record/vibe/orchestrator';
341
- *
342
- * const result = await swarm({
343
- * prompt: 'Implement login feature with: 1. UI form 2. Validation 3. API call 4. Error handling',
344
- * maxDepth: 2,
345
- * splitThreshold: 15,
346
- * onSplit: (task) => console.log(`Splitting: ${task.id}`),
347
- * });
348
- */
349
- export async function swarm(config) {
350
- const orchestrator = new SwarmOrchestrator(config);
351
- const result = await orchestrator.execute();
352
- const statusEmoji = result.failureCount === 0 ? '✅' : result.successCount > 0 ? '⚠️' : '❌';
353
- let summary = `## Swarm Execution ${statusEmoji}\n\n`;
354
- summary += `**Duration**: ${(result.totalDuration / 1000).toFixed(1)}s\n`;
355
- summary += `**Tasks**: ${result.tasks.length} (${result.splitCount} splits)\n`;
356
- summary += `**Max Depth**: ${result.maxDepthReached}/${config.maxDepth || 2}\n`;
357
- summary += `**Success**: ${result.successCount}/${result.tasks.length}\n\n`;
358
- if (result.mergedResult) {
359
- summary += `### Result\n\n${result.mergedResult}`;
360
- }
361
- return {
362
- content: [{ type: 'text', text: summary }],
363
- swarmResult: result
364
- };
365
- }
366
- /**
367
- * 작업 복잡도 분석 (swarm 없이)
368
- *
369
- * @example
370
- * const analysis = analyzeTaskComplexity('Implement login with validation and error handling');
371
- * console.log(analysis.score); // 15
372
- */
373
- export function analyzeTaskComplexity(prompt) {
374
- const orchestrator = new SwarmOrchestrator({ prompt });
375
- // @ts-expect-error - private method access for utility
376
- return orchestrator.analyzeComplexity(prompt);
377
- }
378
- //# sourceMappingURL=SwarmOrchestrator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SwarmOrchestrator.js","sourceRoot":"","sources":["../../../src/infra/orchestrator/SwarmOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * SwarmOrchestrator 테스트
3
- */
4
- export {};
5
- //# sourceMappingURL=SwarmOrchestrator.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SwarmOrchestrator.test.d.ts","sourceRoot":"","sources":["../../../src/infra/orchestrator/SwarmOrchestrator.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,95 +0,0 @@
1
- /**
2
- * SwarmOrchestrator 테스트
3
- */
4
- import { describe, it, expect, vi } from 'vitest';
5
- import { SwarmOrchestrator, analyzeTaskComplexity } from './SwarmOrchestrator.js';
6
- describe('SwarmOrchestrator', () => {
7
- describe('analyzeTaskComplexity', () => {
8
- it('간단한 프롬프트는 낮은 복잡도', async () => {
9
- const analysis = await analyzeTaskComplexity('Fix a typo in README');
10
- expect(analysis.score).toBeLessThan(10);
11
- });
12
- it('복잡한 프롬프트는 높은 복잡도', async () => {
13
- const complexPrompt = `
14
- Implement a complete login feature:
15
- 1. Create the login form UI with React
16
- 2. Add form validation with Zod
17
- 3. Implement the API endpoint with authentication
18
- 4. Add error handling and loading states
19
- 5. Write unit tests for all components
20
- 6. Add security measures against CSRF
21
- `;
22
- const analysis = await analyzeTaskComplexity(complexPrompt);
23
- expect(analysis.score).toBeGreaterThan(15);
24
- expect(analysis.suggestedSplits?.length).toBeGreaterThan(1);
25
- });
26
- it('파일 언급이 많으면 복잡도 증가', async () => {
27
- const prompt = 'Update login.ts, auth.ts, user.ts, session.ts, and middleware.ts';
28
- const analysis = await analyzeTaskComplexity(prompt);
29
- expect(analysis.factors).toContain('5-files');
30
- });
31
- it('숫자 목록은 분할 제안 생성', async () => {
32
- const prompt = `
33
- 1. First do this task
34
- 2. Then do second task
35
- 3. Finally do third task
36
- `;
37
- const analysis = await analyzeTaskComplexity(prompt);
38
- expect(analysis.suggestedSplits?.length).toBeGreaterThanOrEqual(2);
39
- });
40
- });
41
- describe('SwarmOrchestrator 인스턴스', () => {
42
- it('기본 설정으로 생성', () => {
43
- const orchestrator = new SwarmOrchestrator({
44
- prompt: 'Test prompt'
45
- });
46
- expect(orchestrator).toBeDefined();
47
- });
48
- it('커스텀 설정으로 생성', () => {
49
- const onSplit = vi.fn();
50
- const onComplete = vi.fn();
51
- const orchestrator = new SwarmOrchestrator({
52
- prompt: 'Test prompt',
53
- agentName: 'test-agent',
54
- maxDepth: 3,
55
- splitThreshold: 20,
56
- maxConcurrentChildren: 3,
57
- onSplit,
58
- onComplete,
59
- timeout: 60000
60
- });
61
- expect(orchestrator).toBeDefined();
62
- });
63
- });
64
- describe('분할 로직', () => {
65
- it('maxDepth 도달 시 분할 안함', async () => {
66
- // maxDepth: 0으로 설정하면 분할하지 않음
67
- const orchestrator = new SwarmOrchestrator({
68
- prompt: `
69
- 1. Task one
70
- 2. Task two
71
- 3. Task three
72
- `,
73
- maxDepth: 0
74
- });
75
- // shouldSplit가 false 반환 확인 (내부 로직)
76
- // @ts-expect-error - private method access for testing
77
- const task = orchestrator.createTask('test', null, 0);
78
- // @ts-expect-error - private method access for testing
79
- const shouldSplit = orchestrator.shouldSplit(task, { score: 50, factors: [], suggestedSplits: ['a', 'b'] });
80
- expect(shouldSplit).toBe(false);
81
- });
82
- it('splitThreshold 미만이면 분할 안함', async () => {
83
- const orchestrator = new SwarmOrchestrator({
84
- prompt: 'Simple task',
85
- splitThreshold: 100
86
- });
87
- // @ts-expect-error - private method access for testing
88
- const task = orchestrator.createTask('test', null, 0);
89
- // @ts-expect-error - private method access for testing
90
- const shouldSplit = orchestrator.shouldSplit(task, { score: 50, factors: [], suggestedSplits: ['a', 'b'] });
91
- expect(shouldSplit).toBe(false);
92
- });
93
- });
94
- });
95
- //# sourceMappingURL=SwarmOrchestrator.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SwarmOrchestrator.test.js","sourceRoot":"","sources":["../../../src/infra/orchestrator/SwarmOrchestrator.test.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Agent Discovery - .codex/.claude/agents 폴더에서 에이전트 동적 탐색
3
- */
4
- import { DiscoveredAgent, AgentDiscoveryArgs } from './types.js';
5
- import { ToolResult } from '../types/tool.js';
6
- /**
7
- * 에이전트 마크다운 파일에서 메타데이터 추출
8
- */
9
- export declare function parseAgentMarkdown(content: string, filePath: string): Partial<DiscoveredAgent>;
10
- /**
11
- * 카테고리 추출 (폴더명 기반)
12
- */
13
- export declare function extractCategory(filePath: string, basePath: string): string;
14
- /**
15
- * 에이전트 동적 탐색
16
- */
17
- export declare function discoverAgents(args: AgentDiscoveryArgs): Promise<ToolResult>;
18
- /**
19
- * 특정 에이전트 로드
20
- */
21
- export declare function loadAgent(agentName: string, projectPath?: string): Promise<DiscoveredAgent | null>;
22
- /**
23
- * 카테고리별 에이전트 목록
24
- */
25
- export declare function listAgentsByCategory(category: string, projectPath?: string): Promise<DiscoveredAgent[]>;
26
- //# sourceMappingURL=agentDiscovery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agentDiscovery.d.ts","sourceRoot":"","sources":["../../../src/infra/orchestrator/agentDiscovery.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAM9C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA4B9F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU1E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CA0GlF;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAYvH;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAQ5H"}