@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.
- package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -78
- package/hooks/scripts/__tests__/.vibe/memories/memories.db +0 -0
- package/hooks/scripts/__tests__/.vibe/memories/memories.db-shm +0 -0
- package/hooks/scripts/__tests__/.vibe/memories/memories.db-wal +0 -0
- package/hooks/scripts/__tests__/clone-behaviors.test.js +64 -0
- package/hooks/scripts/__tests__/clone-merge-responsive.test.js +106 -0
- package/hooks/scripts/clone-extract.js +242 -28
- package/hooks/scripts/clone-merge-responsive.js +184 -0
- package/hooks/scripts/clone-spec.js +33 -8
- package/hooks/scripts/clone-validate.js +15 -9
- package/package.json +5 -2
- package/skills/clone/SKILL.md +132 -55
- package/skills/vibe.clone/SKILL.md +39 -19
- package/dist/cli/llm/gemini-commands.d.ts +0 -25
- package/dist/cli/llm/gemini-commands.d.ts.map +0 -1
- package/dist/cli/llm/gemini-commands.js +0 -143
- package/dist/cli/llm/gemini-commands.js.map +0 -1
- package/dist/cli/postinstall/codex-agents.d.ts +0 -24
- package/dist/cli/postinstall/codex-agents.d.ts.map +0 -1
- package/dist/cli/postinstall/codex-agents.js +0 -114
- package/dist/cli/postinstall/codex-agents.js.map +0 -1
- package/dist/cli/postinstall/codex-instruction.d.ts +0 -10
- package/dist/cli/postinstall/codex-instruction.d.ts.map +0 -1
- package/dist/cli/postinstall/codex-instruction.js +0 -56
- package/dist/cli/postinstall/codex-instruction.js.map +0 -1
- package/dist/cli/postinstall/gemini-agents.d.ts +0 -12
- package/dist/cli/postinstall/gemini-agents.d.ts.map +0 -1
- package/dist/cli/postinstall/gemini-agents.js +0 -80
- package/dist/cli/postinstall/gemini-agents.js.map +0 -1
- package/dist/cli/postinstall/gemini-instruction.d.ts +0 -10
- package/dist/cli/postinstall/gemini-instruction.d.ts.map +0 -1
- package/dist/cli/postinstall/gemini-instruction.js +0 -59
- package/dist/cli/postinstall/gemini-instruction.js.map +0 -1
- package/dist/infra/lib/ContextCompressor.d.ts +0 -104
- package/dist/infra/lib/ContextCompressor.d.ts.map +0 -1
- package/dist/infra/lib/ContextCompressor.js +0 -297
- package/dist/infra/lib/ContextCompressor.js.map +0 -1
- package/dist/infra/lib/ContextCompressor.test.d.ts +0 -2
- package/dist/infra/lib/ContextCompressor.test.d.ts.map +0 -1
- package/dist/infra/lib/ContextCompressor.test.js +0 -25
- package/dist/infra/lib/ContextCompressor.test.js.map +0 -1
- package/dist/infra/lib/ProgressTracker.d.ts +0 -73
- package/dist/infra/lib/ProgressTracker.d.ts.map +0 -1
- package/dist/infra/lib/ProgressTracker.js +0 -267
- package/dist/infra/lib/ProgressTracker.js.map +0 -1
- package/dist/infra/lib/TokenBudgetTracker.d.ts +0 -68
- package/dist/infra/lib/TokenBudgetTracker.d.ts.map +0 -1
- package/dist/infra/lib/TokenBudgetTracker.js +0 -191
- package/dist/infra/lib/TokenBudgetTracker.js.map +0 -1
- package/dist/infra/lib/autonomy/AuditStore.d.ts +0 -63
- package/dist/infra/lib/autonomy/AuditStore.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/AuditStore.js +0 -185
- package/dist/infra/lib/autonomy/AuditStore.js.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyConfig.d.ts +0 -84
- package/dist/infra/lib/autonomy/AutonomyConfig.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyConfig.js +0 -49
- package/dist/infra/lib/autonomy/AutonomyConfig.js.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts +0 -78
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.js +0 -246
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.js.map +0 -1
- package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts +0 -36
- package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/BackgroundMonitor.js +0 -138
- package/dist/infra/lib/autonomy/BackgroundMonitor.js.map +0 -1
- package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts +0 -56
- package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/CollaborationProtocol.js +0 -122
- package/dist/infra/lib/autonomy/CollaborationProtocol.js.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationManager.d.ts +0 -42
- package/dist/infra/lib/autonomy/ConfirmationManager.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationManager.js +0 -200
- package/dist/infra/lib/autonomy/ConfirmationManager.js.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationStore.d.ts +0 -55
- package/dist/infra/lib/autonomy/ConfirmationStore.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationStore.js +0 -130
- package/dist/infra/lib/autonomy/ConfirmationStore.js.map +0 -1
- package/dist/infra/lib/autonomy/EventBus.d.ts +0 -20
- package/dist/infra/lib/autonomy/EventBus.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/EventBus.js +0 -119
- package/dist/infra/lib/autonomy/EventBus.js.map +0 -1
- package/dist/infra/lib/autonomy/EventOutbox.d.ts +0 -32
- package/dist/infra/lib/autonomy/EventOutbox.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/EventOutbox.js +0 -152
- package/dist/infra/lib/autonomy/EventOutbox.js.map +0 -1
- package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts +0 -24
- package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/NotificationDispatcher.js +0 -112
- package/dist/infra/lib/autonomy/NotificationDispatcher.js.map +0 -1
- package/dist/infra/lib/autonomy/PolicyEngine.d.ts +0 -76
- package/dist/infra/lib/autonomy/PolicyEngine.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/PolicyEngine.js +0 -208
- package/dist/infra/lib/autonomy/PolicyEngine.js.map +0 -1
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts +0 -61
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.js +0 -236
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.js.map +0 -1
- package/dist/infra/lib/autonomy/RiskClassifier.d.ts +0 -35
- package/dist/infra/lib/autonomy/RiskClassifier.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/RiskClassifier.js +0 -147
- package/dist/infra/lib/autonomy/RiskClassifier.js.map +0 -1
- package/dist/infra/lib/autonomy/SecuritySentinel.d.ts +0 -51
- package/dist/infra/lib/autonomy/SecuritySentinel.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/SecuritySentinel.js +0 -162
- package/dist/infra/lib/autonomy/SecuritySentinel.js.map +0 -1
- package/dist/infra/lib/autonomy/SuggestionStore.d.ts +0 -54
- package/dist/infra/lib/autonomy/SuggestionStore.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/SuggestionStore.js +0 -144
- package/dist/infra/lib/autonomy/SuggestionStore.js.map +0 -1
- package/dist/infra/lib/autonomy/TaskDecomposer.d.ts +0 -38
- package/dist/infra/lib/autonomy/TaskDecomposer.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/TaskDecomposer.js +0 -175
- package/dist/infra/lib/autonomy/TaskDecomposer.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.js +0 -198
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.js +0 -225
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-core.test.js +0 -194
- package/dist/infra/lib/autonomy/__tests__/event-core.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/governance.test.js +0 -540
- package/dist/infra/lib/autonomy/__tests__/governance.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/integration.test.js +0 -480
- package/dist/infra/lib/autonomy/__tests__/integration.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/proactive.test.js +0 -410
- package/dist/infra/lib/autonomy/__tests__/proactive.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.js +0 -486
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.js.map +0 -1
- package/dist/infra/lib/autonomy/index.d.ts +0 -18
- package/dist/infra/lib/autonomy/index.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/index.js +0 -22
- package/dist/infra/lib/autonomy/index.js.map +0 -1
- package/dist/infra/lib/autonomy/schemas.d.ts +0 -317
- package/dist/infra/lib/autonomy/schemas.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/schemas.js +0 -90
- package/dist/infra/lib/autonomy/schemas.js.map +0 -1
- package/dist/infra/lib/claude/index.d.ts +0 -5
- package/dist/infra/lib/claude/index.d.ts.map +0 -1
- package/dist/infra/lib/claude/index.js +0 -5
- package/dist/infra/lib/claude/index.js.map +0 -1
- package/dist/infra/lib/claude/storage.d.ts +0 -12
- package/dist/infra/lib/claude/storage.d.ts.map +0 -1
- package/dist/infra/lib/claude/storage.js +0 -54
- package/dist/infra/lib/claude/storage.js.map +0 -1
- package/dist/infra/lib/gemini/auth.d.ts +0 -18
- package/dist/infra/lib/gemini/auth.d.ts.map +0 -1
- package/dist/infra/lib/gemini/auth.js +0 -32
- package/dist/infra/lib/gemini/auth.js.map +0 -1
- package/dist/infra/lib/gemini/capabilities.d.ts +0 -28
- package/dist/infra/lib/gemini/capabilities.d.ts.map +0 -1
- package/dist/infra/lib/gemini/capabilities.js +0 -178
- package/dist/infra/lib/gemini/capabilities.js.map +0 -1
- package/dist/infra/lib/gemini/chat.d.ts +0 -35
- package/dist/infra/lib/gemini/chat.d.ts.map +0 -1
- package/dist/infra/lib/gemini/chat.js +0 -161
- package/dist/infra/lib/gemini/chat.js.map +0 -1
- package/dist/infra/lib/gemini/completion.d.ts +0 -12
- package/dist/infra/lib/gemini/completion.d.ts.map +0 -1
- package/dist/infra/lib/gemini/completion.js +0 -13
- package/dist/infra/lib/gemini/completion.js.map +0 -1
- package/dist/infra/lib/gemini/constants.d.ts +0 -8
- package/dist/infra/lib/gemini/constants.d.ts.map +0 -1
- package/dist/infra/lib/gemini/constants.js +0 -11
- package/dist/infra/lib/gemini/constants.js.map +0 -1
- package/dist/infra/lib/gemini/index.d.ts +0 -13
- package/dist/infra/lib/gemini/index.d.ts.map +0 -1
- package/dist/infra/lib/gemini/index.js +0 -12
- package/dist/infra/lib/gemini/index.js.map +0 -1
- package/dist/infra/lib/gemini/models.d.ts +0 -11
- package/dist/infra/lib/gemini/models.d.ts.map +0 -1
- package/dist/infra/lib/gemini/models.js +0 -38
- package/dist/infra/lib/gemini/models.js.map +0 -1
- package/dist/infra/lib/gemini/orchestration.d.ts +0 -33
- package/dist/infra/lib/gemini/orchestration.d.ts.map +0 -1
- package/dist/infra/lib/gemini/orchestration.js +0 -62
- package/dist/infra/lib/gemini/orchestration.js.map +0 -1
- package/dist/infra/lib/gemini/types.d.ts +0 -115
- package/dist/infra/lib/gemini/types.d.ts.map +0 -1
- package/dist/infra/lib/gemini/types.js +0 -5
- package/dist/infra/lib/gemini/types.js.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.d.ts +0 -64
- package/dist/infra/orchestrator/AgentAnnouncer.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.js +0 -127
- package/dist/infra/orchestrator/AgentAnnouncer.js.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts +0 -5
- package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.test.js +0 -119
- package/dist/infra/orchestrator/AgentAnnouncer.test.js.map +0 -1
- package/dist/infra/orchestrator/AgentExecutor.d.ts +0 -22
- package/dist/infra/orchestrator/AgentExecutor.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentExecutor.js +0 -272
- package/dist/infra/orchestrator/AgentExecutor.js.map +0 -1
- package/dist/infra/orchestrator/AgentManager.d.ts +0 -72
- package/dist/infra/orchestrator/AgentManager.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentManager.js +0 -183
- package/dist/infra/orchestrator/AgentManager.js.map +0 -1
- package/dist/infra/orchestrator/AgentManifestCache.d.ts +0 -54
- package/dist/infra/orchestrator/AgentManifestCache.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentManifestCache.js +0 -191
- package/dist/infra/orchestrator/AgentManifestCache.js.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.d.ts +0 -76
- package/dist/infra/orchestrator/AgentRegistry.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.js +0 -217
- package/dist/infra/orchestrator/AgentRegistry.js.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.test.d.ts +0 -5
- package/dist/infra/orchestrator/AgentRegistry.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.test.js +0 -122
- package/dist/infra/orchestrator/AgentRegistry.test.js.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.d.ts +0 -128
- package/dist/infra/orchestrator/BackgroundManager.d.ts.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.js +0 -620
- package/dist/infra/orchestrator/BackgroundManager.js.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.test.d.ts +0 -6
- package/dist/infra/orchestrator/BackgroundManager.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.test.js +0 -162
- package/dist/infra/orchestrator/BackgroundManager.test.js.map +0 -1
- package/dist/infra/orchestrator/CheckpointManager.d.ts +0 -54
- package/dist/infra/orchestrator/CheckpointManager.d.ts.map +0 -1
- package/dist/infra/orchestrator/CheckpointManager.js +0 -121
- package/dist/infra/orchestrator/CheckpointManager.js.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.d.ts +0 -12
- package/dist/infra/orchestrator/CodexAgentRuntime.d.ts.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.js +0 -94
- package/dist/infra/orchestrator/CodexAgentRuntime.js.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts +0 -2
- package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.test.js +0 -37
- package/dist/infra/orchestrator/CodexAgentRuntime.test.js.map +0 -1
- package/dist/infra/orchestrator/LLMCluster.d.ts +0 -82
- package/dist/infra/orchestrator/LLMCluster.d.ts.map +0 -1
- package/dist/infra/orchestrator/LLMCluster.js +0 -146
- package/dist/infra/orchestrator/LLMCluster.js.map +0 -1
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts +0 -31
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts.map +0 -1
- package/dist/infra/orchestrator/MultiLlmResearch.js +0 -160
- package/dist/infra/orchestrator/MultiLlmResearch.js.map +0 -1
- package/dist/infra/orchestrator/PhasePipeline.d.ts +0 -122
- package/dist/infra/orchestrator/PhasePipeline.d.ts.map +0 -1
- package/dist/infra/orchestrator/PhasePipeline.js +0 -385
- package/dist/infra/orchestrator/PhasePipeline.js.map +0 -1
- package/dist/infra/orchestrator/PhaseResultStore.d.ts +0 -39
- package/dist/infra/orchestrator/PhaseResultStore.d.ts.map +0 -1
- package/dist/infra/orchestrator/PhaseResultStore.js +0 -151
- package/dist/infra/orchestrator/PhaseResultStore.js.map +0 -1
- package/dist/infra/orchestrator/SessionStore.d.ts +0 -40
- package/dist/infra/orchestrator/SessionStore.d.ts.map +0 -1
- package/dist/infra/orchestrator/SessionStore.js +0 -116
- package/dist/infra/orchestrator/SessionStore.js.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.d.ts +0 -90
- package/dist/infra/orchestrator/SmartRouter.d.ts.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.js +0 -277
- package/dist/infra/orchestrator/SmartRouter.js.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.test.d.ts +0 -5
- package/dist/infra/orchestrator/SmartRouter.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.test.js +0 -484
- package/dist/infra/orchestrator/SmartRouter.test.js.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.d.ts +0 -143
- package/dist/infra/orchestrator/SwarmOrchestrator.d.ts.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.js +0 -378
- package/dist/infra/orchestrator/SwarmOrchestrator.js.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts +0 -5
- package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js +0 -95
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js.map +0 -1
- package/dist/infra/orchestrator/agentDiscovery.d.ts +0 -26
- package/dist/infra/orchestrator/agentDiscovery.d.ts.map +0 -1
- package/dist/infra/orchestrator/agentDiscovery.js +0 -175
- package/dist/infra/orchestrator/agentDiscovery.js.map +0 -1
- package/dist/infra/orchestrator/backgroundAgent.d.ts +0 -9
- package/dist/infra/orchestrator/backgroundAgent.d.ts.map +0 -1
- package/dist/infra/orchestrator/backgroundAgent.js +0 -10
- package/dist/infra/orchestrator/backgroundAgent.js.map +0 -1
- package/dist/infra/orchestrator/index.d.ts +0 -207
- package/dist/infra/orchestrator/index.d.ts.map +0 -1
- package/dist/infra/orchestrator/index.js +0 -362
- package/dist/infra/orchestrator/index.js.map +0 -1
- package/dist/infra/orchestrator/orchestrator.d.ts +0 -60
- package/dist/infra/orchestrator/orchestrator.d.ts.map +0 -1
- package/dist/infra/orchestrator/orchestrator.js +0 -214
- package/dist/infra/orchestrator/orchestrator.js.map +0 -1
- package/dist/infra/orchestrator/parallelResearch.d.ts +0 -27
- package/dist/infra/orchestrator/parallelResearch.d.ts.map +0 -1
- package/dist/infra/orchestrator/parallelResearch.js +0 -285
- package/dist/infra/orchestrator/parallelResearch.js.map +0 -1
- package/dist/infra/orchestrator/types.d.ts +0 -205
- package/dist/infra/orchestrator/types.d.ts.map +0 -1
- package/dist/infra/orchestrator/types.js +0 -87
- package/dist/infra/orchestrator/types.js.map +0 -1
- package/dist/infra/orchestrator/types.test.d.ts +0 -2
- package/dist/infra/orchestrator/types.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/types.test.js +0 -57
- package/dist/infra/orchestrator/types.test.js.map +0 -1
- package/dist/tools/semantic/analyzeDependencyGraph.d.ts +0 -12
- package/dist/tools/semantic/analyzeDependencyGraph.d.ts.map +0 -1
- package/dist/tools/semantic/analyzeDependencyGraph.js +0 -359
- package/dist/tools/semantic/analyzeDependencyGraph.js.map +0 -1
- package/dist/tools/semantic/astGrep.d.ts +0 -25
- package/dist/tools/semantic/astGrep.d.ts.map +0 -1
- package/dist/tools/semantic/astGrep.js +0 -324
- package/dist/tools/semantic/astGrep.js.map +0 -1
- package/dist/tools/semantic/astGrep.test.d.ts +0 -2
- package/dist/tools/semantic/astGrep.test.d.ts.map +0 -1
- package/dist/tools/semantic/astGrep.test.js +0 -74
- package/dist/tools/semantic/astGrep.test.js.map +0 -1
- package/dist/tools/semantic/findReferences.d.ts +0 -9
- package/dist/tools/semantic/findReferences.d.ts.map +0 -1
- package/dist/tools/semantic/findReferences.js +0 -200
- package/dist/tools/semantic/findReferences.js.map +0 -1
- package/dist/tools/semantic/findSymbol.d.ts +0 -8
- package/dist/tools/semantic/findSymbol.d.ts.map +0 -1
- package/dist/tools/semantic/findSymbol.js +0 -204
- package/dist/tools/semantic/findSymbol.js.map +0 -1
- package/dist/tools/semantic/index.d.ts +0 -9
- package/dist/tools/semantic/index.d.ts.map +0 -1
- package/dist/tools/semantic/index.js +0 -11
- package/dist/tools/semantic/index.js.map +0 -1
- package/dist/tools/semantic/lsp.d.ts +0 -68
- package/dist/tools/semantic/lsp.d.ts.map +0 -1
- package/dist/tools/semantic/lsp.js +0 -561
- package/dist/tools/semantic/lsp.js.map +0 -1
- package/dist/tools/spec/e2eTestGenerator.d.ts +0 -61
- package/dist/tools/spec/e2eTestGenerator.d.ts.map +0 -1
- package/dist/tools/spec/e2eTestGenerator.js +0 -255
- package/dist/tools/spec/e2eTestGenerator.js.map +0 -1
- package/dist/tools/spec/specVersioning.d.ts +0 -76
- package/dist/tools/spec/specVersioning.d.ts.map +0 -1
- package/dist/tools/spec/specVersioning.js +0 -236
- package/dist/tools/spec/specVersioning.js.map +0 -1
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LLMCluster - Multi-LLM 병렬 쿼리 및 상태 관리
|
|
3
|
-
* GPT, Antigravity, Claude 지원
|
|
4
|
-
*/
|
|
5
|
-
import { spawn } from 'child_process';
|
|
6
|
-
import * as gptApi from '../lib/gpt/index.js';
|
|
7
|
-
import * as antigravityApi from '../lib/antigravity/index.js';
|
|
8
|
-
import { warnLog } from '../lib/utils.js';
|
|
9
|
-
/**
|
|
10
|
-
* LLMCluster - GPT / Antigravity / Claude 병렬 쿼리 및 상태 관리
|
|
11
|
-
*/
|
|
12
|
-
export class LLMCluster {
|
|
13
|
-
defaultSystemPrompt;
|
|
14
|
-
constructor(options = {}) {
|
|
15
|
-
this.defaultSystemPrompt = options.defaultSystemPrompt ?? 'You are a helpful assistant.';
|
|
16
|
-
}
|
|
17
|
-
// WHY 180s: claude --print는 긴 추론에서 수 분까지 걸릴 수 있으나,
|
|
18
|
-
// 그 이상은 행으로 간주하고 종료한다 (기존 execSync timeout과 동일).
|
|
19
|
-
static CLAUDE_CLI_TIMEOUT_MS = 180000;
|
|
20
|
-
/**
|
|
21
|
-
* Claude CLI 오케스트레이션 (claude --print)
|
|
22
|
-
*
|
|
23
|
-
* 비동기 spawn — execSync는 최대 180초 이벤트 루프를 블로킹해
|
|
24
|
-
* multiQuery의 GPT/Antigravity 병렬성을 무효화하므로 사용하지 않는다.
|
|
25
|
-
*/
|
|
26
|
-
async claudeOrchestrate(prompt, systemPrompt) {
|
|
27
|
-
const sys = systemPrompt ?? this.defaultSystemPrompt;
|
|
28
|
-
const fullPrompt = `[System]\n${sys}\n\n[User]\n${prompt}`;
|
|
29
|
-
// 재귀 가드 — spawn된 자식 claude 세션의 UserPromptSubmit/Stop hook이
|
|
30
|
-
// 다시 외부 LLM/오케스트레이션을 돌리는 fork 폭주를 차단한다.
|
|
31
|
-
// hook 스크립트는 VIBE_HOOK_DEPTH 가 존재하면 즉시 종료한다.
|
|
32
|
-
return new Promise((resolve, reject) => {
|
|
33
|
-
const child = spawn('claude', ['--print', '--dangerously-skip-permissions'], {
|
|
34
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
35
|
-
env: { ...process.env, VIBE_HOOK_DEPTH: process.env.VIBE_HOOK_DEPTH ?? '1' },
|
|
36
|
-
});
|
|
37
|
-
let stdout = '';
|
|
38
|
-
let stderr = '';
|
|
39
|
-
const timer = setTimeout(() => {
|
|
40
|
-
child.kill('SIGKILL');
|
|
41
|
-
reject(new Error(`claude --print timed out after ${LLMCluster.CLAUDE_CLI_TIMEOUT_MS}ms`));
|
|
42
|
-
}, LLMCluster.CLAUDE_CLI_TIMEOUT_MS);
|
|
43
|
-
child.stdout.on('data', (chunk) => { stdout += chunk.toString(); });
|
|
44
|
-
child.stderr.on('data', (chunk) => { stderr += chunk.toString(); });
|
|
45
|
-
child.on('error', (err) => {
|
|
46
|
-
clearTimeout(timer);
|
|
47
|
-
reject(err);
|
|
48
|
-
});
|
|
49
|
-
child.on('close', (code) => {
|
|
50
|
-
clearTimeout(timer);
|
|
51
|
-
if (code === 0) {
|
|
52
|
-
resolve(stdout.trim());
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
reject(new Error(`claude --print failed (code ${code}): ${stderr.slice(0, 500)}`));
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
child.stdin.write(fullPrompt);
|
|
59
|
-
child.stdin.end();
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* GPT 오케스트레이션
|
|
64
|
-
*/
|
|
65
|
-
async gptOrchestrate(prompt, systemPrompt, options) {
|
|
66
|
-
return gptApi.coreGptOrchestrate(prompt, systemPrompt ?? this.defaultSystemPrompt, options);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Antigravity 오케스트레이션
|
|
70
|
-
*/
|
|
71
|
-
async antigravityOrchestrate(prompt, systemPrompt, options) {
|
|
72
|
-
return antigravityApi.coreAntigravityOrchestrate(prompt, systemPrompt ?? this.defaultSystemPrompt, options);
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Antigravity 웹 검색
|
|
76
|
-
*/
|
|
77
|
-
async antigravityWebSearch(query) {
|
|
78
|
-
return antigravityApi.quickWebSearch(query);
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* GPT 웹 검색 (Antigravity로 위임)
|
|
82
|
-
* @deprecated GPT Codex API는 웹 검색을 지원하지 않습니다. antigravityWebSearch를 사용하세요.
|
|
83
|
-
*/
|
|
84
|
-
async gptWebSearch(query) {
|
|
85
|
-
return this.antigravityWebSearch(query);
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* 멀티 LLM 병렬 쿼리
|
|
89
|
-
*/
|
|
90
|
-
async multiQuery(prompt, options) {
|
|
91
|
-
const { useGpt = true, useAntigravity = true, useClaude = false } = options || {};
|
|
92
|
-
const results = {};
|
|
93
|
-
const promises = [];
|
|
94
|
-
if (useGpt) {
|
|
95
|
-
promises.push(this.gptOrchestrate(prompt)
|
|
96
|
-
.then(r => { results.gpt = r; })
|
|
97
|
-
.catch(e => { warnLog('GPT query failed in multiLlm', e); }));
|
|
98
|
-
}
|
|
99
|
-
if (useAntigravity) {
|
|
100
|
-
promises.push(this.antigravityOrchestrate(prompt)
|
|
101
|
-
.then(r => { results.antigravity = r; })
|
|
102
|
-
.catch(e => { warnLog('Antigravity query failed in multiLlm', e); }));
|
|
103
|
-
}
|
|
104
|
-
if (useClaude) {
|
|
105
|
-
promises.push(this.claudeOrchestrate(prompt)
|
|
106
|
-
.then(r => { results.claude = r; })
|
|
107
|
-
.catch(e => { warnLog('Claude query failed in multiLlm', e); }));
|
|
108
|
-
}
|
|
109
|
-
await Promise.all(promises);
|
|
110
|
-
return results;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* LLM 상태 확인 (전체)
|
|
114
|
-
*/
|
|
115
|
-
async checkStatus() {
|
|
116
|
-
let gptAvailable = false;
|
|
117
|
-
let antigravityAvailable = false;
|
|
118
|
-
let claudeAvailable = false;
|
|
119
|
-
const promises = [
|
|
120
|
-
this.gptOrchestrate('ping', 'Reply with pong')
|
|
121
|
-
.then(() => { gptAvailable = true; })
|
|
122
|
-
.catch(e => { warnLog('GPT status check failed', e); }),
|
|
123
|
-
this.antigravityOrchestrate('ping', 'Reply with pong')
|
|
124
|
-
.then(() => { antigravityAvailable = true; })
|
|
125
|
-
.catch(e => { warnLog('Antigravity status check failed', e); }),
|
|
126
|
-
this.claudeOrchestrate('ping', 'Reply with pong')
|
|
127
|
-
.then(() => { claudeAvailable = true; })
|
|
128
|
-
.catch(e => { warnLog('Claude status check failed', e); }),
|
|
129
|
-
];
|
|
130
|
-
await Promise.all(promises);
|
|
131
|
-
return {
|
|
132
|
-
gpt: { available: gptAvailable },
|
|
133
|
-
antigravity: { available: antigravityAvailable },
|
|
134
|
-
claude: { available: claudeAvailable },
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
// 싱글톤 인스턴스
|
|
139
|
-
let defaultCluster = null;
|
|
140
|
-
export function getLLMCluster(options) {
|
|
141
|
-
if (!defaultCluster || options) {
|
|
142
|
-
defaultCluster = new LLMCluster(options);
|
|
143
|
-
}
|
|
144
|
-
return defaultCluster;
|
|
145
|
-
}
|
|
146
|
-
//# sourceMappingURL=LLMCluster.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LLMCluster.js","sourceRoot":"","sources":["../../../src/infra/orchestrator/LLMCluster.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MultiLlmResearch - GPT/Antigravity 기반 Multi-LLM 리서치
|
|
3
|
-
*/
|
|
4
|
-
import { MultiLlmResult } from './types.js';
|
|
5
|
-
/**
|
|
6
|
-
* executeMultiLlmResearch 가 이번 호출에서 실제로 보낼 직접 LLM 호출 수.
|
|
7
|
-
* 가용한 provider(GPT 2건 + Antigravity 2건) 기준. fan-out 전 preflight/budget gate 용.
|
|
8
|
-
*/
|
|
9
|
-
export declare function countPlannedMultiLlmCalls(): number;
|
|
10
|
-
/**
|
|
11
|
-
* Multi-LLM 리서치 프롬프트 생성
|
|
12
|
-
*/
|
|
13
|
-
export declare function createMultiLlmPrompts(feature: string, techStack: string[]): {
|
|
14
|
-
bestPractices: {
|
|
15
|
-
gpt: string;
|
|
16
|
-
antigravity: string;
|
|
17
|
-
};
|
|
18
|
-
security: {
|
|
19
|
-
gpt: string;
|
|
20
|
-
antigravity: string;
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Multi-LLM 병렬 리서치 실행
|
|
25
|
-
*/
|
|
26
|
-
export declare function executeMultiLlmResearch(feature: string, techStack: string[]): Promise<MultiLlmResult[]>;
|
|
27
|
-
/**
|
|
28
|
-
* Multi-LLM 결과 포맷팅
|
|
29
|
-
*/
|
|
30
|
-
export declare function formatMultiLlmResults(results: MultiLlmResult[]): string;
|
|
31
|
-
//# sourceMappingURL=MultiLlmResearch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MultiLlmResearch.d.ts","sourceRoot":"","sources":["../../../src/infra/orchestrator/MultiLlmResearch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5C;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG;IAC3E,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD,CAqBA;AAsCD;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC,CAmF3B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,CA+BvE"}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MultiLlmResearch - GPT/Antigravity 기반 Multi-LLM 리서치
|
|
3
|
-
*/
|
|
4
|
-
import { warnLog } from '../lib/utils.js';
|
|
5
|
-
import * as gptApi from '../lib/gpt/index.js';
|
|
6
|
-
import * as antigravityApi from '../lib/antigravity/index.js';
|
|
7
|
-
import { isAntigravityAvailable, isCodexAvailable } from '../lib/llm-availability.js';
|
|
8
|
-
/**
|
|
9
|
-
* executeMultiLlmResearch 가 이번 호출에서 실제로 보낼 직접 LLM 호출 수.
|
|
10
|
-
* 가용한 provider(GPT 2건 + Antigravity 2건) 기준. fan-out 전 preflight/budget gate 용.
|
|
11
|
-
*/
|
|
12
|
-
export function countPlannedMultiLlmCalls() {
|
|
13
|
-
return (isCodexAvailable() ? 2 : 0) + (isAntigravityAvailable() ? 2 : 0);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Multi-LLM 리서치 프롬프트 생성
|
|
17
|
-
*/
|
|
18
|
-
export function createMultiLlmPrompts(feature, techStack) {
|
|
19
|
-
const stackStr = techStack.length > 0 ? techStack.join(', ') : 'the project';
|
|
20
|
-
return {
|
|
21
|
-
bestPractices: {
|
|
22
|
-
gpt: `Best practices for implementing "${feature}" with ${stackStr}.
|
|
23
|
-
Focus on: architecture patterns, code conventions, design patterns.
|
|
24
|
-
Return JSON: { patterns: string[], antiPatterns: string[], libraries: string[] }`,
|
|
25
|
-
antigravity: `Best practices for implementing "${feature}" with ${stackStr}.
|
|
26
|
-
Focus on: latest trends, framework updates, modern approaches.
|
|
27
|
-
Return JSON: { patterns: string[], antiPatterns: string[], libraries: string[] }`
|
|
28
|
-
},
|
|
29
|
-
security: {
|
|
30
|
-
gpt: `Security considerations for "${feature}" with ${stackStr}.
|
|
31
|
-
Focus on: CVE database, known vulnerabilities, exploit patterns.
|
|
32
|
-
Return JSON: { vulnerabilities: string[], mitigations: string[], checklist: string[] }`,
|
|
33
|
-
antigravity: `Security advisories for "${feature}" with ${stackStr}.
|
|
34
|
-
Focus on: latest patches, recent incidents, security best practices.
|
|
35
|
-
Return JSON: { advisories: string[], patches: string[], incidents: string[] }`
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* GPT API 호출 (에러 처리 포함)
|
|
41
|
-
*/
|
|
42
|
-
async function callGptSafe(prompt, systemPrompt, jsonMode = true) {
|
|
43
|
-
try {
|
|
44
|
-
const result = await gptApi.coreGptOrchestrate(prompt, systemPrompt, { jsonMode });
|
|
45
|
-
return { result, success: true };
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
49
|
-
warnLog('[Multi-LLM] GPT call failed:', errorMsg);
|
|
50
|
-
return { result: '', success: false, error: errorMsg };
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Antigravity 호출 (에러 처리 포함)
|
|
55
|
-
*/
|
|
56
|
-
async function callAntigravitySafe(prompt, systemPrompt, jsonMode = true) {
|
|
57
|
-
try {
|
|
58
|
-
const result = await antigravityApi.coreAntigravityOrchestrate(prompt, systemPrompt, { jsonMode });
|
|
59
|
-
return { result, success: true };
|
|
60
|
-
}
|
|
61
|
-
catch (error) {
|
|
62
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
63
|
-
warnLog('[Multi-LLM] Antigravity call failed:', errorMsg);
|
|
64
|
-
return { result: '', success: false, error: errorMsg };
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Multi-LLM 병렬 리서치 실행
|
|
69
|
-
*/
|
|
70
|
-
export async function executeMultiLlmResearch(feature, techStack) {
|
|
71
|
-
const prompts = createMultiLlmPrompts(feature, techStack);
|
|
72
|
-
const results = [];
|
|
73
|
-
const promises = [];
|
|
74
|
-
// Best Practices - GPT
|
|
75
|
-
if (isCodexAvailable()) {
|
|
76
|
-
promises.push((async () => {
|
|
77
|
-
const taskStart = Date.now();
|
|
78
|
-
const { result, success, error } = await callGptSafe(prompts.bestPractices.gpt, 'You are an expert software architect. Provide best practices in JSON format.');
|
|
79
|
-
results.push({
|
|
80
|
-
provider: 'gpt',
|
|
81
|
-
category: 'best-practices',
|
|
82
|
-
result, success, error,
|
|
83
|
-
duration: Date.now() - taskStart
|
|
84
|
-
});
|
|
85
|
-
})());
|
|
86
|
-
}
|
|
87
|
-
// Best Practices - Antigravity
|
|
88
|
-
if (isAntigravityAvailable()) {
|
|
89
|
-
promises.push((async () => {
|
|
90
|
-
const taskStart = Date.now();
|
|
91
|
-
const { result, success, error } = await callAntigravitySafe(prompts.bestPractices.antigravity, 'You are an expert in modern development trends. Provide best practices in JSON format.');
|
|
92
|
-
results.push({
|
|
93
|
-
provider: 'antigravity',
|
|
94
|
-
category: 'best-practices',
|
|
95
|
-
result, success, error,
|
|
96
|
-
duration: Date.now() - taskStart
|
|
97
|
-
});
|
|
98
|
-
})());
|
|
99
|
-
}
|
|
100
|
-
// Security - GPT
|
|
101
|
-
if (isCodexAvailable()) {
|
|
102
|
-
promises.push((async () => {
|
|
103
|
-
const taskStart = Date.now();
|
|
104
|
-
const { result, success, error } = await callGptSafe(prompts.security.gpt, 'You are a security expert. Focus on CVE database and known vulnerabilities. Return JSON format.');
|
|
105
|
-
results.push({
|
|
106
|
-
provider: 'gpt',
|
|
107
|
-
category: 'security',
|
|
108
|
-
result, success, error,
|
|
109
|
-
duration: Date.now() - taskStart
|
|
110
|
-
});
|
|
111
|
-
})());
|
|
112
|
-
}
|
|
113
|
-
// Security - Antigravity
|
|
114
|
-
if (isAntigravityAvailable()) {
|
|
115
|
-
promises.push((async () => {
|
|
116
|
-
const taskStart = Date.now();
|
|
117
|
-
const { result, success, error } = await callAntigravitySafe(prompts.security.antigravity, 'You are a security advisor. Focus on latest advisories and patches. Return JSON format.');
|
|
118
|
-
results.push({
|
|
119
|
-
provider: 'antigravity',
|
|
120
|
-
category: 'security',
|
|
121
|
-
result, success, error,
|
|
122
|
-
duration: Date.now() - taskStart
|
|
123
|
-
});
|
|
124
|
-
})());
|
|
125
|
-
}
|
|
126
|
-
await Promise.all(promises);
|
|
127
|
-
return results;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Multi-LLM 결과 포맷팅
|
|
131
|
-
*/
|
|
132
|
-
export function formatMultiLlmResults(results) {
|
|
133
|
-
if (results.length === 0) {
|
|
134
|
-
return '[Multi-LLM] No results available';
|
|
135
|
-
}
|
|
136
|
-
const successCount = results.filter(r => r.success).length;
|
|
137
|
-
let output = `\n## Multi-LLM Research Results (${successCount}/${results.length} successful)\n\n`;
|
|
138
|
-
// Best Practices 섹션
|
|
139
|
-
const bestPractices = results.filter(r => r.category === 'best-practices');
|
|
140
|
-
if (bestPractices.length > 0) {
|
|
141
|
-
output += `### Best Practices\n\n`;
|
|
142
|
-
for (const bp of bestPractices) {
|
|
143
|
-
const status = bp.success ? '✅' : '❌';
|
|
144
|
-
output += `#### ${status} ${bp.provider.toUpperCase()} (${(bp.duration / 1000).toFixed(1)}s)\n`;
|
|
145
|
-
output += bp.success ? `${bp.result}\n\n` : `Error: ${bp.error}\n\n`;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
// Security 섹션
|
|
149
|
-
const security = results.filter(r => r.category === 'security');
|
|
150
|
-
if (security.length > 0) {
|
|
151
|
-
output += `### Security Advisories\n\n`;
|
|
152
|
-
for (const sec of security) {
|
|
153
|
-
const status = sec.success ? '✅' : '❌';
|
|
154
|
-
output += `#### ${status} ${sec.provider.toUpperCase()} (${(sec.duration / 1000).toFixed(1)}s)\n`;
|
|
155
|
-
output += sec.success ? `${sec.result}\n\n` : `Error: ${sec.error}\n\n`;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return output;
|
|
159
|
-
}
|
|
160
|
-
//# sourceMappingURL=MultiLlmResearch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MultiLlmResearch.js","sourceRoot":"","sources":["../../../src/infra/orchestrator/MultiLlmResearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PhasePipeline - Phase 간 대기 시간 제거를 위한 파이프라인 시스템
|
|
3
|
-
*
|
|
4
|
-
* 핵심 기능:
|
|
5
|
-
* 1. 현재 Phase 실행 중 다음 Phase 준비 (background)
|
|
6
|
-
* 2. Phase 완료 시 즉시 다음 Phase 시작 (no wait)
|
|
7
|
-
* 3. Phase 실패 시 파이프라인 중단
|
|
8
|
-
*/
|
|
9
|
-
import { PhaseProgress } from '../lib/IterationTracker.js';
|
|
10
|
-
import { ToolResult } from '../types/tool.js';
|
|
11
|
-
import type { CheckpointGate } from './CheckpointManager.js';
|
|
12
|
-
/** 파이프라인 스테이지 인터페이스 */
|
|
13
|
-
export interface PipelineStage {
|
|
14
|
-
/** 스테이지 이름 */
|
|
15
|
-
name: string;
|
|
16
|
-
/** 준비 작업 (백그라운드 실행 가능). signal 로 취소 가능. */
|
|
17
|
-
prepare?: (signal?: AbortSignal) => Promise<StageContext>;
|
|
18
|
-
/** 메인 실행 */
|
|
19
|
-
execute: (context: StageContext) => Promise<StageResult>;
|
|
20
|
-
/** 정리 작업 */
|
|
21
|
-
cleanup?: (context: StageContext) => Promise<void>;
|
|
22
|
-
}
|
|
23
|
-
/** 스테이지 컨텍스트 (Phase 간 데이터 전달) */
|
|
24
|
-
export interface StageContext {
|
|
25
|
-
phaseNumber: number;
|
|
26
|
-
phaseName: string;
|
|
27
|
-
data: Record<string, unknown>;
|
|
28
|
-
preparedData?: Record<string, unknown>;
|
|
29
|
-
previousResult?: StageResult;
|
|
30
|
-
/** All previous phase results (available when using resultStore or resumeFrom) */
|
|
31
|
-
allPreviousResults?: StageResult[];
|
|
32
|
-
/** 파이프라인 취소/타임아웃 signal — prepare·execute 가 길게 도는 작업을 중단할 때 사용. */
|
|
33
|
-
signal?: AbortSignal;
|
|
34
|
-
}
|
|
35
|
-
/** 스테이지 결과 */
|
|
36
|
-
export interface StageResult {
|
|
37
|
-
success: boolean;
|
|
38
|
-
output: string;
|
|
39
|
-
error?: string;
|
|
40
|
-
duration: number;
|
|
41
|
-
artifacts?: string[];
|
|
42
|
-
}
|
|
43
|
-
/** 파이프라인 옵션 */
|
|
44
|
-
export interface PipelineOptions {
|
|
45
|
-
/** ULTRAWORK 모드 (대기 없음) */
|
|
46
|
-
ultrawork?: boolean;
|
|
47
|
-
/** 최대 재시도 횟수 */
|
|
48
|
-
maxRetries?: number;
|
|
49
|
-
/** 전체 파이프라인 타임아웃 (ms) */
|
|
50
|
-
timeout?: number;
|
|
51
|
-
/** 프로젝트 루트 경로 (progress 파일 저장용) */
|
|
52
|
-
projectRoot?: string;
|
|
53
|
-
/** Phase 완료 시 콜백 */
|
|
54
|
-
onPhaseComplete?: (phase: PhaseProgress, result: StageResult) => void;
|
|
55
|
-
/** Phase 시작 시 콜백 */
|
|
56
|
-
onPhaseStart?: (phase: PhaseProgress) => void;
|
|
57
|
-
/** 에러 발생 시 콜백 */
|
|
58
|
-
onError?: (phase: PhaseProgress, error: Error) => void;
|
|
59
|
-
/** Enable file-based result persistence */
|
|
60
|
-
resultStore?: boolean;
|
|
61
|
-
/** Checkpoint gates between phases */
|
|
62
|
-
checkpoints?: CheckpointGate[];
|
|
63
|
-
/** Resume from specific phase number (loads previous results from disk) */
|
|
64
|
-
resumeFrom?: number;
|
|
65
|
-
/** Callback when pipeline pauses at a checkpoint */
|
|
66
|
-
onCheckpointPause?: (phaseNumber: number, gate: CheckpointGate) => void;
|
|
67
|
-
}
|
|
68
|
-
/** 파이프라인 결과 */
|
|
69
|
-
export interface PipelineResult {
|
|
70
|
-
success: boolean;
|
|
71
|
-
featureName: string;
|
|
72
|
-
totalPhases: number;
|
|
73
|
-
completedPhases: number;
|
|
74
|
-
failedPhase?: number;
|
|
75
|
-
totalDuration: number;
|
|
76
|
-
results: StageResult[];
|
|
77
|
-
error?: string;
|
|
78
|
-
/** Phase number where pipeline paused at a checkpoint (if any) */
|
|
79
|
-
pausedAtCheckpoint?: number;
|
|
80
|
-
}
|
|
81
|
-
export declare class PhasePipeline {
|
|
82
|
-
private featureName;
|
|
83
|
-
private stages;
|
|
84
|
-
private options;
|
|
85
|
-
private abortController;
|
|
86
|
-
private backgroundPreparations;
|
|
87
|
-
private resultStore;
|
|
88
|
-
private checkpointManager;
|
|
89
|
-
constructor(featureName: string, options?: PipelineOptions);
|
|
90
|
-
/** 스테이지 추가 */
|
|
91
|
-
addStage(stage: PipelineStage): this;
|
|
92
|
-
/** 여러 스테이지 추가 */
|
|
93
|
-
addStages(stages: PipelineStage[]): this;
|
|
94
|
-
/** 파이프라인 실행 */
|
|
95
|
-
execute(): Promise<PipelineResult>;
|
|
96
|
-
/** 파이프라인 취소 */
|
|
97
|
-
cancel(): void;
|
|
98
|
-
/** 특정 Phase 백그라운드 준비 시작 (다음 phase 1개만 — B-6) */
|
|
99
|
-
private startBackgroundPreparation;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* 간단한 스테이지 생성 헬퍼
|
|
103
|
-
*/
|
|
104
|
-
export declare function createStage(name: string, execute: (context: StageContext) => Promise<StageResult>, options?: {
|
|
105
|
-
prepare?: () => Promise<StageContext>;
|
|
106
|
-
cleanup?: (context: StageContext) => Promise<void>;
|
|
107
|
-
}): PipelineStage;
|
|
108
|
-
/**
|
|
109
|
-
* 파이프라인 생성 헬퍼
|
|
110
|
-
*/
|
|
111
|
-
export declare function createPipeline(featureName: string, stages: PipelineStage[], options?: PipelineOptions): PhasePipeline;
|
|
112
|
-
/**
|
|
113
|
-
* ULTRAWORK 파이프라인 생성 (권장)
|
|
114
|
-
*/
|
|
115
|
-
export declare function createUltraworkPipeline(featureName: string, stages: PipelineStage[], options?: Omit<PipelineOptions, 'ultrawork'>): PhasePipeline;
|
|
116
|
-
/**
|
|
117
|
-
* 파이프라인 결과를 ToolResult로 변환
|
|
118
|
-
*/
|
|
119
|
-
export declare function pipelineResultToToolResult(result: PipelineResult): ToolResult & {
|
|
120
|
-
pipelineResult: PipelineResult;
|
|
121
|
-
};
|
|
122
|
-
//# sourceMappingURL=PhasePipeline.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PhasePipeline.d.ts","sourceRoot":"","sources":["../../../src/infra/orchestrator/PhasePipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAUL,aAAa,EACd,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQ9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAM7D,uBAAuB;AACvB,MAAM,WAAW,aAAa;IAC5B,cAAc;IACd,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1D,YAAY;IACZ,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,YAAY;IACZ,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED,iCAAiC;AACjC,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,WAAW,EAAE,CAAC;IACnC,mEAAmE;IACnE,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,cAAc;AACd,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,eAAe;AACf,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACtE,oBAAoB;IACpB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,iBAAiB;IACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvD,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sCAAsC;IACtC,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;CACzE;AAED,eAAe;AACf,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD,qBAAa,aAAa;IAStB,OAAO,CAAC,WAAW;IARrB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,sBAAsB,CAA4C;IAC1E,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,iBAAiB,CAAkC;gBAGjD,WAAW,EAAE,MAAM,EAC3B,OAAO,GAAE,eAAoB;IA+B/B,cAAc;IACd,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKpC,iBAAiB;IACjB,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI;IAKxC,eAAe;IACT,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAmQxC,eAAe;IACf,MAAM,IAAI,IAAI;IAId,gDAAgD;IAChD,OAAO,CAAC,0BAA0B;CAgCnC;AAMD;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,EACxD,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD,GACA,aAAa,CAOf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,CAAC,EAAE,eAAe,GACxB,aAAa,CAIf;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAC3C,aAAa,CAEf;AAMD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,GAAG;IAAE,cAAc,EAAE,cAAc,CAAA;CAAE,CAuBlH"}
|