@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,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gemini 오케스트레이션 함수
|
|
3
|
-
* - 검색 없이 빠르고 결정론적인 응답
|
|
4
|
-
*/
|
|
5
|
-
import { chat } from './chat.js';
|
|
6
|
-
/**
|
|
7
|
-
* Core Gemini 오케스트레이션 (검색 없음, JSON 모드)
|
|
8
|
-
* - 검색 제외로 빠른 응답
|
|
9
|
-
* - temperature=0 으로 결정론적 결과
|
|
10
|
-
* - JSON 출력 강제 가능
|
|
11
|
-
*/
|
|
12
|
-
export async function coreGeminiOrchestrate(prompt, systemPrompt, options = {}) {
|
|
13
|
-
const { maxTokens = 4096, jsonMode = true } = options;
|
|
14
|
-
const result = await chat({
|
|
15
|
-
model: 'gemini-pro',
|
|
16
|
-
messages: [{ role: 'user', content: prompt }],
|
|
17
|
-
maxTokens,
|
|
18
|
-
temperature: 0,
|
|
19
|
-
webSearch: false,
|
|
20
|
-
jsonMode,
|
|
21
|
-
systemPrompt: jsonMode
|
|
22
|
-
? `${systemPrompt}\n\nRespond with valid JSON only.`
|
|
23
|
-
: systemPrompt,
|
|
24
|
-
});
|
|
25
|
-
return result.content;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Core Spec 파싱 (Core Spec → 실행 계획)
|
|
29
|
-
*/
|
|
30
|
-
export async function coreGeminiParseSpec(spec) {
|
|
31
|
-
return coreGeminiOrchestrate(spec, `You are a Core Spec parser. Parse the given specification and output a structured execution plan.
|
|
32
|
-
Output format: { "phases": [...], "files": [...], "dependencies": [...] }`);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Core 실행 계획 수립 (Task → Steps)
|
|
36
|
-
*/
|
|
37
|
-
export async function coreGeminiPlanExecution(task, context) {
|
|
38
|
-
return coreGeminiOrchestrate(`Task: ${task}\n\nContext:\n${context}`, `You are a Core execution planner. Given a task and context, create a step-by-step execution plan.
|
|
39
|
-
Output format: { "steps": [{ "id": 1, "action": "...", "target": "...", "expected": "..." }], "estimatedComplexity": "low|medium|high" }`);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Core 코드 분석 (빠른 구조 분석)
|
|
43
|
-
*/
|
|
44
|
-
export async function coreGeminiAnalyze(code, question) {
|
|
45
|
-
return coreGeminiOrchestrate(`Code:\n\`\`\`\n${code}\n\`\`\`\n\nQuestion: ${question}`, `You are a code analyzer. Answer the question about the given code concisely.
|
|
46
|
-
Output format: { "answer": "...", "confidence": 0.0-1.0, "relatedSymbols": [...] }`);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Core 다음 액션 결정 (상태 기반)
|
|
50
|
-
*/
|
|
51
|
-
export async function coreGeminiDecideNextAction(currentState, availableActions, goal) {
|
|
52
|
-
return coreGeminiOrchestrate(`Current State:\n${currentState}\n\nAvailable Actions:\n${availableActions.join('\n')}\n\nGoal: ${goal}`, `You are an action decider. Based on the current state and goal, select the best next action.
|
|
53
|
-
Output format: { "selectedAction": "...", "reason": "...", "parameters": {} }`);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Core UI/UX 분석 (검색 없이 내부 지식으로)
|
|
57
|
-
*/
|
|
58
|
-
export async function coreGeminiAnalyzeUX(description) {
|
|
59
|
-
return coreGeminiOrchestrate(description, `You are a UI/UX expert. Analyze the given design description and provide structured feedback.
|
|
60
|
-
Output format: { "issues": [...], "suggestions": [...], "accessibility": { "score": 0-100, "concerns": [...] } }`, { jsonMode: true });
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=orchestration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../../../src/infra/lib/gemini/orchestration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAiB,MAAM,WAAW,CAAC;AAGhD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,YAAoB,EACpB,UAA6B,EAAE;IAE/B,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;QACxB,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC7C,SAAS;QACT,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,KAAK;QAChB,QAAQ;QACR,YAAY,EAAE,QAAQ;YACpB,CAAC,CAAC,GAAG,YAAY,mCAAmC;YACpD,CAAC,CAAC,YAAY;KACjB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY;IACpD,OAAO,qBAAqB,CAAC,IAAI,EAAE;0EACqC,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAY,EAAE,OAAe;IACzE,OAAO,qBAAqB,CAC1B,SAAS,IAAI,iBAAiB,OAAO,EAAE,EACvC;yIACqI,CACtI,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAgB;IACpE,OAAO,qBAAqB,CAC1B,kBAAkB,IAAI,yBAAyB,QAAQ,EAAE,EACzD;mFAC+E,CAChF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,YAAoB,EACpB,gBAA0B,EAC1B,IAAY;IAEZ,OAAO,qBAAqB,CAC1B,mBAAmB,YAAY,2BAA2B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,EACxG;8EAC0E,CAC3E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IAC3D,OAAO,qBAAqB,CAC1B,WAAW,EACX;iHAC6G,EAC7G,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB,CAAC;AACJ,CAAC"}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gemini API 타입 정의
|
|
3
|
-
*/
|
|
4
|
-
export type GeminiAuthMethod = 'apikey';
|
|
5
|
-
export interface AuthInfo {
|
|
6
|
-
type: GeminiAuthMethod;
|
|
7
|
-
apiKey?: string;
|
|
8
|
-
}
|
|
9
|
-
export interface GeminiModelInfo {
|
|
10
|
-
id: string;
|
|
11
|
-
name: string;
|
|
12
|
-
description: string;
|
|
13
|
-
maxTokens: number;
|
|
14
|
-
}
|
|
15
|
-
export interface AvailableModel {
|
|
16
|
-
modelId: string;
|
|
17
|
-
displayName: string;
|
|
18
|
-
description: string;
|
|
19
|
-
inputTokenLimit: number;
|
|
20
|
-
outputTokenLimit: number;
|
|
21
|
-
supportedActions: string[];
|
|
22
|
-
}
|
|
23
|
-
export interface ChatMessage {
|
|
24
|
-
role: 'user' | 'assistant' | 'system' | 'model';
|
|
25
|
-
content: string;
|
|
26
|
-
}
|
|
27
|
-
export interface ChatOptions {
|
|
28
|
-
model?: string;
|
|
29
|
-
messages?: ChatMessage[];
|
|
30
|
-
maxTokens?: number;
|
|
31
|
-
temperature?: number;
|
|
32
|
-
systemPrompt?: string;
|
|
33
|
-
webSearch?: boolean;
|
|
34
|
-
jsonMode?: boolean;
|
|
35
|
-
/** 내부 재시도 카운터 */
|
|
36
|
-
_retryCount?: number;
|
|
37
|
-
}
|
|
38
|
-
export interface ChatResponse {
|
|
39
|
-
content: string;
|
|
40
|
-
model: string;
|
|
41
|
-
finishReason?: string;
|
|
42
|
-
usage?: unknown;
|
|
43
|
-
}
|
|
44
|
-
/** SSE 스트리밍 청크 */
|
|
45
|
-
export interface StreamChunk {
|
|
46
|
-
content: string;
|
|
47
|
-
done: boolean;
|
|
48
|
-
model?: string;
|
|
49
|
-
finishReason?: string;
|
|
50
|
-
usage?: unknown;
|
|
51
|
-
}
|
|
52
|
-
export interface GeminiApiResponse {
|
|
53
|
-
response?: {
|
|
54
|
-
candidates?: GeminiCandidate[];
|
|
55
|
-
usageMetadata?: unknown;
|
|
56
|
-
};
|
|
57
|
-
candidates?: GeminiCandidate[];
|
|
58
|
-
usageMetadata?: unknown;
|
|
59
|
-
}
|
|
60
|
-
export interface GeminiCandidate {
|
|
61
|
-
content?: {
|
|
62
|
-
parts?: Array<{
|
|
63
|
-
text?: string;
|
|
64
|
-
}>;
|
|
65
|
-
};
|
|
66
|
-
finishReason?: string;
|
|
67
|
-
}
|
|
68
|
-
export interface ImageGenerationOptions {
|
|
69
|
-
size?: string;
|
|
70
|
-
output?: string;
|
|
71
|
-
model?: 'nano-banana' | 'nano-banana-pro';
|
|
72
|
-
}
|
|
73
|
-
export interface ImageGenerationResult {
|
|
74
|
-
data: Buffer;
|
|
75
|
-
mimeType: string;
|
|
76
|
-
}
|
|
77
|
-
export interface ImageAnalysisOptions {
|
|
78
|
-
model?: string;
|
|
79
|
-
maxTokens?: number;
|
|
80
|
-
temperature?: number;
|
|
81
|
-
systemPrompt?: string;
|
|
82
|
-
}
|
|
83
|
-
export type MultimodalContent = {
|
|
84
|
-
role: 'user';
|
|
85
|
-
parts: Array<{
|
|
86
|
-
text?: string;
|
|
87
|
-
inlineData?: {
|
|
88
|
-
mimeType: string;
|
|
89
|
-
data: string;
|
|
90
|
-
};
|
|
91
|
-
}>;
|
|
92
|
-
};
|
|
93
|
-
export interface CompleteCodeOptions {
|
|
94
|
-
/** 커서 앞 텍스트 */
|
|
95
|
-
prefix: string;
|
|
96
|
-
/** 커서 뒤 텍스트 */
|
|
97
|
-
suffix?: string;
|
|
98
|
-
/** 프로그래밍 언어 */
|
|
99
|
-
language?: string;
|
|
100
|
-
/** 최대 토큰 수 */
|
|
101
|
-
maxTokens?: number;
|
|
102
|
-
/** 모델 선택 */
|
|
103
|
-
model?: string;
|
|
104
|
-
/** 내부 재시도 카운터 */
|
|
105
|
-
_retryCount?: number;
|
|
106
|
-
}
|
|
107
|
-
export interface CompleteCodeResponse {
|
|
108
|
-
completions: string[];
|
|
109
|
-
model: string;
|
|
110
|
-
}
|
|
111
|
-
export interface VibeGeminiOptions {
|
|
112
|
-
maxTokens?: number;
|
|
113
|
-
jsonMode?: boolean;
|
|
114
|
-
}
|
|
115
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/infra/lib/gemini/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/infra/lib/gemini/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentAnnouncer - 에이전트 실행 이벤트 통보 + 통계 수집
|
|
3
|
-
* EventEmitter 기반, in-memory only
|
|
4
|
-
*/
|
|
5
|
-
import { EventEmitter } from 'events';
|
|
6
|
-
export interface AgentStartEvent {
|
|
7
|
-
taskId: string;
|
|
8
|
-
agentName: string;
|
|
9
|
-
model: string;
|
|
10
|
-
prompt: string;
|
|
11
|
-
timestamp: number;
|
|
12
|
-
}
|
|
13
|
-
export interface AgentCompleteEvent {
|
|
14
|
-
taskId: string;
|
|
15
|
-
agentName: string;
|
|
16
|
-
success: boolean;
|
|
17
|
-
duration: number;
|
|
18
|
-
model: string;
|
|
19
|
-
resultSummary: string;
|
|
20
|
-
timestamp: number;
|
|
21
|
-
}
|
|
22
|
-
export interface AgentErrorEvent {
|
|
23
|
-
taskId: string;
|
|
24
|
-
agentName: string;
|
|
25
|
-
error: string;
|
|
26
|
-
retryable: boolean;
|
|
27
|
-
duration: number;
|
|
28
|
-
timestamp: number;
|
|
29
|
-
}
|
|
30
|
-
export interface AgentStats {
|
|
31
|
-
totalLaunched: number;
|
|
32
|
-
totalCompleted: number;
|
|
33
|
-
totalFailed: number;
|
|
34
|
-
totalDuration: number;
|
|
35
|
-
avgDuration: number;
|
|
36
|
-
byModel: Record<string, {
|
|
37
|
-
count: number;
|
|
38
|
-
totalDuration: number;
|
|
39
|
-
}>;
|
|
40
|
-
byAgent: Record<string, {
|
|
41
|
-
count: number;
|
|
42
|
-
successRate: number;
|
|
43
|
-
}>;
|
|
44
|
-
}
|
|
45
|
-
type AnnounceEvent = AgentStartEvent | AgentCompleteEvent | AgentErrorEvent;
|
|
46
|
-
export declare class AgentAnnouncer extends EventEmitter {
|
|
47
|
-
private history;
|
|
48
|
-
private stats;
|
|
49
|
-
constructor();
|
|
50
|
-
announceStart(event: AgentStartEvent): void;
|
|
51
|
-
announceComplete(event: AgentCompleteEvent): void;
|
|
52
|
-
announceError(event: AgentErrorEvent): void;
|
|
53
|
-
getStats(): AgentStats;
|
|
54
|
-
getRecentHistory(limit?: number): AnnounceEvent[];
|
|
55
|
-
resetStats(): void;
|
|
56
|
-
formatStatusLine(event: AnnounceEvent): string;
|
|
57
|
-
private pushHistory;
|
|
58
|
-
private updateModelStats;
|
|
59
|
-
private updateAgentStats;
|
|
60
|
-
private createEmptyStats;
|
|
61
|
-
}
|
|
62
|
-
export declare const agentAnnouncer: AgentAnnouncer;
|
|
63
|
-
export {};
|
|
64
|
-
//# sourceMappingURL=AgentAnnouncer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AgentAnnouncer.d.ts","sourceRoot":"","sources":["../../../src/infra/orchestrator/AgentAnnouncer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMtC,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjE;AAED,KAAK,aAAa,GAAG,eAAe,GAAG,kBAAkB,GAAG,eAAe,CAAC;AAa5E,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,KAAK,CAAuC;;IAOpD,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAU3C,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAqBjD,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAc3C,QAAQ,IAAI,UAAU;IAItB,gBAAgB,CAAC,KAAK,GAAE,MAAW,GAAG,aAAa,EAAE;IAIrD,UAAU,IAAI,IAAI;IAKlB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;IAkB9C,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,gBAAgB;CAWzB;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentAnnouncer - 에이전트 실행 이벤트 통보 + 통계 수집
|
|
3
|
-
* EventEmitter 기반, in-memory only
|
|
4
|
-
*/
|
|
5
|
-
import { EventEmitter } from 'events';
|
|
6
|
-
// ============================================
|
|
7
|
-
// AgentAnnouncer
|
|
8
|
-
// ============================================
|
|
9
|
-
const MAX_HISTORY = 100;
|
|
10
|
-
function truncate(text, maxLen) {
|
|
11
|
-
if (text.length <= maxLen)
|
|
12
|
-
return text;
|
|
13
|
-
return text.slice(0, maxLen) + '...';
|
|
14
|
-
}
|
|
15
|
-
export class AgentAnnouncer extends EventEmitter {
|
|
16
|
-
history = [];
|
|
17
|
-
stats = this.createEmptyStats();
|
|
18
|
-
constructor() {
|
|
19
|
-
super();
|
|
20
|
-
this.setMaxListeners(20);
|
|
21
|
-
}
|
|
22
|
-
announceStart(event) {
|
|
23
|
-
event.prompt = truncate(event.prompt, 200);
|
|
24
|
-
event.timestamp = event.timestamp || Date.now();
|
|
25
|
-
this.stats.totalLaunched++;
|
|
26
|
-
this.updateModelStats(event.model, 0);
|
|
27
|
-
this.pushHistory(event);
|
|
28
|
-
this.emit('agent-start', event);
|
|
29
|
-
}
|
|
30
|
-
announceComplete(event) {
|
|
31
|
-
event.resultSummary = truncate(event.resultSummary, 500);
|
|
32
|
-
event.timestamp = event.timestamp || Date.now();
|
|
33
|
-
if (event.success) {
|
|
34
|
-
this.stats.totalCompleted++;
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
this.stats.totalFailed++;
|
|
38
|
-
}
|
|
39
|
-
this.stats.totalDuration += event.duration;
|
|
40
|
-
const finishedCount = this.stats.totalCompleted + this.stats.totalFailed;
|
|
41
|
-
this.stats.avgDuration = finishedCount > 0
|
|
42
|
-
? this.stats.totalDuration / finishedCount
|
|
43
|
-
: 0;
|
|
44
|
-
this.updateModelStats(event.model, event.duration);
|
|
45
|
-
this.updateAgentStats(event.agentName, event.success);
|
|
46
|
-
this.pushHistory(event);
|
|
47
|
-
this.emit('agent-complete', event);
|
|
48
|
-
}
|
|
49
|
-
announceError(event) {
|
|
50
|
-
event.timestamp = event.timestamp || Date.now();
|
|
51
|
-
this.stats.totalFailed++;
|
|
52
|
-
this.stats.totalDuration += event.duration;
|
|
53
|
-
const finishedCount = this.stats.totalCompleted + this.stats.totalFailed;
|
|
54
|
-
this.stats.avgDuration = finishedCount > 0
|
|
55
|
-
? this.stats.totalDuration / finishedCount
|
|
56
|
-
: 0;
|
|
57
|
-
this.pushHistory(event);
|
|
58
|
-
this.emit('agent-error', event);
|
|
59
|
-
}
|
|
60
|
-
getStats() {
|
|
61
|
-
return { ...this.stats };
|
|
62
|
-
}
|
|
63
|
-
getRecentHistory(limit = 20) {
|
|
64
|
-
return this.history.slice(-limit);
|
|
65
|
-
}
|
|
66
|
-
resetStats() {
|
|
67
|
-
this.stats = this.createEmptyStats();
|
|
68
|
-
this.history = [];
|
|
69
|
-
}
|
|
70
|
-
formatStatusLine(event) {
|
|
71
|
-
if ('success' in event && 'resultSummary' in event) {
|
|
72
|
-
const e = event;
|
|
73
|
-
const icon = e.success ? 'OK' : 'FAIL';
|
|
74
|
-
return `[${icon}] ${e.agentName} (${e.model}) ${e.duration}ms`;
|
|
75
|
-
}
|
|
76
|
-
if ('error' in event && 'retryable' in event) {
|
|
77
|
-
const e = event;
|
|
78
|
-
return `[ERR] ${e.agentName} ${e.duration}ms: ${truncate(e.error, 80)}`;
|
|
79
|
-
}
|
|
80
|
-
const e = event;
|
|
81
|
-
return `[START] ${e.agentName} (${e.model})`;
|
|
82
|
-
}
|
|
83
|
-
// ============================================
|
|
84
|
-
// Private
|
|
85
|
-
// ============================================
|
|
86
|
-
pushHistory(event) {
|
|
87
|
-
this.history.push(event);
|
|
88
|
-
if (this.history.length > MAX_HISTORY) {
|
|
89
|
-
this.history.shift();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
updateModelStats(model, duration) {
|
|
93
|
-
if (!this.stats.byModel[model]) {
|
|
94
|
-
this.stats.byModel[model] = { count: 0, totalDuration: 0 };
|
|
95
|
-
}
|
|
96
|
-
this.stats.byModel[model].count++;
|
|
97
|
-
this.stats.byModel[model].totalDuration += duration;
|
|
98
|
-
}
|
|
99
|
-
updateAgentStats(agentName, success) {
|
|
100
|
-
if (!this.stats.byAgent[agentName]) {
|
|
101
|
-
this.stats.byAgent[agentName] = { count: 0, successRate: 0 };
|
|
102
|
-
}
|
|
103
|
-
const agent = this.stats.byAgent[agentName];
|
|
104
|
-
agent.count++;
|
|
105
|
-
// Recalculate success rate (approximate based on running total)
|
|
106
|
-
if (success) {
|
|
107
|
-
agent.successRate = agent.successRate + (1 - agent.successRate) / agent.count;
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
agent.successRate = agent.successRate - agent.successRate / agent.count;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
createEmptyStats() {
|
|
114
|
-
return {
|
|
115
|
-
totalLaunched: 0,
|
|
116
|
-
totalCompleted: 0,
|
|
117
|
-
totalFailed: 0,
|
|
118
|
-
totalDuration: 0,
|
|
119
|
-
avgDuration: 0,
|
|
120
|
-
byModel: {},
|
|
121
|
-
byAgent: {},
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
// 싱글톤
|
|
126
|
-
export const agentAnnouncer = new AgentAnnouncer();
|
|
127
|
-
//# sourceMappingURL=AgentAnnouncer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AgentAnnouncer.js","sourceRoot":"","sources":["../../../src/infra/orchestrator/AgentAnnouncer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AgentAnnouncer.test.d.ts","sourceRoot":"","sources":["../../../src/infra/orchestrator/AgentAnnouncer.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentAnnouncer Tests
|
|
3
|
-
*/
|
|
4
|
-
import { describe, it, expect, beforeEach } from 'vitest';
|
|
5
|
-
import { AgentAnnouncer } from './AgentAnnouncer.js';
|
|
6
|
-
describe('AgentAnnouncer', () => {
|
|
7
|
-
let announcer;
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
announcer = new AgentAnnouncer();
|
|
10
|
-
});
|
|
11
|
-
it('should emit agent-start event and track stats', () => {
|
|
12
|
-
let emitted = false;
|
|
13
|
-
announcer.on('agent-start', () => { emitted = true; });
|
|
14
|
-
announcer.announceStart({
|
|
15
|
-
taskId: 'task-1', agentName: 'test-agent',
|
|
16
|
-
model: 'claude-sonnet-4-5', prompt: 'Test prompt', timestamp: Date.now(),
|
|
17
|
-
});
|
|
18
|
-
expect(emitted).toBe(true);
|
|
19
|
-
expect(announcer.getStats().totalLaunched).toBe(1);
|
|
20
|
-
});
|
|
21
|
-
it('should emit agent-complete event and update stats', () => {
|
|
22
|
-
let emitted = false;
|
|
23
|
-
announcer.on('agent-complete', () => { emitted = true; });
|
|
24
|
-
announcer.announceComplete({
|
|
25
|
-
taskId: 'task-1', agentName: 'test-agent', success: true,
|
|
26
|
-
duration: 1000, model: 'claude-sonnet-4-5',
|
|
27
|
-
resultSummary: 'Done', timestamp: Date.now(),
|
|
28
|
-
});
|
|
29
|
-
expect(emitted).toBe(true);
|
|
30
|
-
const stats = announcer.getStats();
|
|
31
|
-
expect(stats.totalCompleted).toBe(1);
|
|
32
|
-
expect(stats.avgDuration).toBe(1000);
|
|
33
|
-
});
|
|
34
|
-
it('should emit agent-error event and update stats', () => {
|
|
35
|
-
let emitted = false;
|
|
36
|
-
announcer.on('agent-error', () => { emitted = true; });
|
|
37
|
-
announcer.announceError({
|
|
38
|
-
taskId: 'task-1', agentName: 'test-agent',
|
|
39
|
-
error: 'Something failed', retryable: true,
|
|
40
|
-
duration: 500, timestamp: Date.now(),
|
|
41
|
-
});
|
|
42
|
-
expect(emitted).toBe(true);
|
|
43
|
-
expect(announcer.getStats().totalFailed).toBe(1);
|
|
44
|
-
});
|
|
45
|
-
it('should truncate prompt and resultSummary', () => {
|
|
46
|
-
const longPrompt = 'x'.repeat(300);
|
|
47
|
-
const longResult = 'y'.repeat(600);
|
|
48
|
-
announcer.announceStart({
|
|
49
|
-
taskId: 'task-1', agentName: 'test', model: 'claude',
|
|
50
|
-
prompt: longPrompt, timestamp: Date.now(),
|
|
51
|
-
});
|
|
52
|
-
announcer.announceComplete({
|
|
53
|
-
taskId: 'task-1', agentName: 'test', success: true,
|
|
54
|
-
duration: 100, model: 'claude',
|
|
55
|
-
resultSummary: longResult, timestamp: Date.now(),
|
|
56
|
-
});
|
|
57
|
-
const history = announcer.getRecentHistory(2);
|
|
58
|
-
expect(history).toHaveLength(2);
|
|
59
|
-
// Start event prompt should be truncated to 200 + '...'
|
|
60
|
-
const startEvent = history[0];
|
|
61
|
-
expect(startEvent.prompt.length).toBeLessThanOrEqual(203);
|
|
62
|
-
});
|
|
63
|
-
it('should enforce max history of 100 items (FIFO)', () => {
|
|
64
|
-
for (let i = 0; i < 110; i++) {
|
|
65
|
-
announcer.announceStart({
|
|
66
|
-
taskId: `task-${i}`, agentName: 'agent', model: 'claude',
|
|
67
|
-
prompt: 'test', timestamp: Date.now(),
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
const all = announcer.getRecentHistory(200);
|
|
71
|
-
expect(all.length).toBe(100);
|
|
72
|
-
// First item should be task-10 (first 10 were evicted)
|
|
73
|
-
expect(all[0].taskId).toBe('task-10');
|
|
74
|
-
});
|
|
75
|
-
it('should track byModel and byAgent stats', () => {
|
|
76
|
-
announcer.announceStart({
|
|
77
|
-
taskId: 'task-1', agentName: 'reviewer', model: 'gpt-4',
|
|
78
|
-
prompt: 'review', timestamp: Date.now(),
|
|
79
|
-
});
|
|
80
|
-
announcer.announceComplete({
|
|
81
|
-
taskId: 'task-1', agentName: 'reviewer', success: true,
|
|
82
|
-
duration: 2000, model: 'gpt-4', resultSummary: 'ok', timestamp: Date.now(),
|
|
83
|
-
});
|
|
84
|
-
const stats = announcer.getStats();
|
|
85
|
-
expect(stats.byModel['gpt-4']).toBeDefined();
|
|
86
|
-
expect(stats.byModel['gpt-4'].count).toBe(2); // start + complete
|
|
87
|
-
expect(stats.byAgent['reviewer']).toBeDefined();
|
|
88
|
-
expect(stats.byAgent['reviewer'].count).toBe(1);
|
|
89
|
-
});
|
|
90
|
-
it('should format status lines correctly', () => {
|
|
91
|
-
const startLine = announcer.formatStatusLine({
|
|
92
|
-
taskId: 'task-1', agentName: 'agent', model: 'claude',
|
|
93
|
-
prompt: 'test', timestamp: Date.now(),
|
|
94
|
-
});
|
|
95
|
-
expect(startLine).toContain('[START]');
|
|
96
|
-
const completeLine = announcer.formatStatusLine({
|
|
97
|
-
taskId: 'task-1', agentName: 'agent', success: true,
|
|
98
|
-
duration: 1500, model: 'claude', resultSummary: 'done', timestamp: Date.now(),
|
|
99
|
-
});
|
|
100
|
-
expect(completeLine).toContain('[OK]');
|
|
101
|
-
expect(completeLine).toContain('1500ms');
|
|
102
|
-
const errorLine = announcer.formatStatusLine({
|
|
103
|
-
taskId: 'task-1', agentName: 'agent', error: 'timeout',
|
|
104
|
-
retryable: true, duration: 500, timestamp: Date.now(),
|
|
105
|
-
});
|
|
106
|
-
expect(errorLine).toContain('[ERR]');
|
|
107
|
-
});
|
|
108
|
-
it('should reset stats correctly', () => {
|
|
109
|
-
announcer.announceStart({
|
|
110
|
-
taskId: 'task-1', agentName: 'agent', model: 'claude',
|
|
111
|
-
prompt: 'test', timestamp: Date.now(),
|
|
112
|
-
});
|
|
113
|
-
announcer.resetStats();
|
|
114
|
-
const stats = announcer.getStats();
|
|
115
|
-
expect(stats.totalLaunched).toBe(0);
|
|
116
|
-
expect(announcer.getRecentHistory()).toHaveLength(0);
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
//# sourceMappingURL=AgentAnnouncer.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AgentAnnouncer.test.js","sourceRoot":"","sources":["../../../src/infra/orchestrator/AgentAnnouncer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentExecutor - 백그라운드 에이전트 실행
|
|
3
|
-
*/
|
|
4
|
-
import { BackgroundAgentArgs } from './types.js';
|
|
5
|
-
import { ToolResult } from '../types/tool.js';
|
|
6
|
-
/**
|
|
7
|
-
* 백그라운드 에이전트 시작
|
|
8
|
-
*/
|
|
9
|
-
export declare function launchBackgroundAgent(args: BackgroundAgentArgs): Promise<ToolResult>;
|
|
10
|
-
/**
|
|
11
|
-
* 백그라운드 에이전트 결과 조회
|
|
12
|
-
*/
|
|
13
|
-
export declare function getBackgroundAgentResult(sessionId: string): Promise<ToolResult>;
|
|
14
|
-
/**
|
|
15
|
-
* 백그라운드 에이전트 취소
|
|
16
|
-
*/
|
|
17
|
-
export declare function cancelBackgroundAgent(sessionId: string): ToolResult;
|
|
18
|
-
/**
|
|
19
|
-
* 여러 백그라운드 에이전트 동시 실행
|
|
20
|
-
*/
|
|
21
|
-
export declare function launchParallelAgents(agentConfigs: BackgroundAgentArgs[]): Promise<ToolResult>;
|
|
22
|
-
//# sourceMappingURL=AgentExecutor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AgentExecutor.d.ts","sourceRoot":"","sources":["../../../src/infra/orchestrator/AgentExecutor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,mBAAmB,EAIpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA8B9C;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8K1F;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAmCrF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAanE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,mBAAmB,EAAE,GAClC,OAAO,CAAC,UAAU,CAAC,CAuCrB"}
|