@su-record/vibe 2.6.35 → 2.6.42
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/.env +62 -0
- package/.env.example +54 -0
- package/CLAUDE.md +323 -107
- package/README.md +612 -203
- package/agents/compounder.md +1 -1
- package/agents/junior-mentor.md +141 -0
- package/agents/research/best-practices-agent.md +4 -4
- package/agents/research/codebase-patterns-agent.md +1 -1
- package/agents/research/framework-docs-agent.md +1 -1
- package/agents/research/security-advisory-agent.md +4 -4
- package/agents/review/complexity-reviewer.md +2 -2
- package/agents/ui/ui-a11y-auditor.md +93 -0
- package/agents/ui/ui-antipattern-detector.md +94 -0
- package/agents/ui/ui-dataviz-advisor.md +69 -0
- package/agents/ui/ui-design-system-gen.md +57 -0
- package/agents/ui/ui-industry-analyzer.md +49 -0
- package/agents/ui/ui-layout-architect.md +65 -0
- package/agents/ui/ui-stack-implementer.md +68 -0
- package/agents/ui/ux-compliance-reviewer.md +81 -0
- package/agents/ui-previewer.md +2 -2
- package/commands/vibe.analyze.md +35 -18
- package/commands/vibe.reason.md +5 -1
- package/commands/vibe.review.md +140 -8
- package/commands/vibe.run.md +535 -25
- package/commands/vibe.spec.md +133 -14
- package/commands/vibe.spec.review.md +155 -10
- package/commands/vibe.trace.md +49 -1
- package/commands/vibe.utils.md +25 -10
- package/commands/vibe.verify.md +44 -5
- package/commands/vibe.voice.md +82 -0
- package/dist/cli/auth.d.ts +16 -4
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +100 -91
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/collaborator.js +17 -17
- package/dist/cli/commands/evolution.d.ts +16 -0
- package/dist/cli/commands/evolution.d.ts.map +1 -0
- package/dist/cli/commands/evolution.js +210 -0
- package/dist/cli/commands/evolution.js.map +1 -0
- package/dist/cli/commands/index.d.ts +13 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +13 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/info.d.ts +16 -0
- package/dist/cli/commands/info.d.ts.map +1 -0
- package/dist/cli/commands/info.js +150 -0
- package/dist/cli/commands/info.js.map +1 -0
- package/dist/cli/commands/init.d.ts +20 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +142 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/remove.d.ts +8 -0
- package/dist/cli/commands/remove.d.ts.map +1 -0
- package/dist/cli/commands/remove.js +142 -0
- package/dist/cli/commands/remove.js.map +1 -0
- package/dist/cli/commands/sentinel.d.ts +13 -0
- package/dist/cli/commands/sentinel.d.ts.map +1 -0
- package/dist/cli/commands/sentinel.js +322 -0
- package/dist/cli/commands/sentinel.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +9 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +216 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/slack.d.ts +12 -0
- package/dist/cli/commands/slack.d.ts.map +1 -0
- package/dist/cli/commands/slack.js +92 -0
- package/dist/cli/commands/slack.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +9 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +166 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/commands/telegram.d.ts +11 -0
- package/dist/cli/commands/telegram.d.ts.map +1 -0
- package/dist/cli/commands/telegram.js +259 -0
- package/dist/cli/commands/telegram.js.map +1 -0
- package/dist/cli/commands/update.d.ts +10 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +90 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/upgrade.d.ts +10 -0
- package/dist/cli/commands/upgrade.d.ts.map +1 -0
- package/dist/cli/commands/upgrade.js +26 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/index.d.ts +5 -6
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +157 -534
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm/claude-commands.d.ts +12 -0
- package/dist/cli/llm/claude-commands.d.ts.map +1 -0
- package/dist/cli/llm/claude-commands.js +73 -0
- package/dist/cli/llm/claude-commands.js.map +1 -0
- package/dist/cli/llm/config.d.ts +21 -0
- package/dist/cli/llm/config.d.ts.map +1 -0
- package/dist/cli/llm/config.js +140 -0
- package/dist/cli/llm/config.js.map +1 -0
- package/dist/cli/llm/gemini-commands.d.ts +27 -0
- package/dist/cli/llm/gemini-commands.d.ts.map +1 -0
- package/dist/cli/llm/gemini-commands.js +361 -0
- package/dist/cli/llm/gemini-commands.js.map +1 -0
- package/dist/cli/llm/gpt-commands.d.ts +23 -0
- package/dist/cli/llm/gpt-commands.d.ts.map +1 -0
- package/dist/cli/llm/gpt-commands.js +139 -0
- package/dist/cli/llm/gpt-commands.js.map +1 -0
- package/dist/cli/llm/help.d.ts +12 -0
- package/dist/cli/llm/help.d.ts.map +1 -0
- package/dist/cli/llm/help.js +37 -0
- package/dist/cli/llm/help.js.map +1 -0
- package/dist/cli/llm/index.d.ts +9 -0
- package/dist/cli/llm/index.d.ts.map +1 -0
- package/dist/cli/llm/index.js +9 -0
- package/dist/cli/llm/index.js.map +1 -0
- package/dist/cli/llm.d.ts +10 -46
- package/dist/cli/llm.d.ts.map +1 -1
- package/dist/cli/llm.js +10 -499
- package/dist/cli/llm.js.map +1 -1
- package/dist/cli/postinstall/claude-agents.d.ts +13 -0
- package/dist/cli/postinstall/claude-agents.d.ts.map +1 -0
- package/dist/cli/postinstall/claude-agents.js +161 -0
- package/dist/cli/postinstall/claude-agents.js.map +1 -0
- package/dist/cli/postinstall/constants.d.ts +25 -0
- package/dist/cli/postinstall/constants.d.ts.map +1 -0
- package/dist/cli/postinstall/constants.js +313 -0
- package/dist/cli/postinstall/constants.js.map +1 -0
- package/dist/cli/postinstall/cursor-agents.d.ts +8 -0
- package/dist/cli/postinstall/cursor-agents.d.ts.map +1 -0
- package/dist/cli/postinstall/cursor-agents.js +131 -0
- package/dist/cli/postinstall/cursor-agents.js.map +1 -0
- package/dist/cli/postinstall/cursor-rules.d.ts +11 -0
- package/dist/cli/postinstall/cursor-rules.d.ts.map +1 -0
- package/dist/cli/postinstall/cursor-rules.js +205 -0
- package/dist/cli/postinstall/cursor-rules.js.map +1 -0
- package/dist/cli/postinstall/cursor-skills.d.ts +9 -0
- package/dist/cli/postinstall/cursor-skills.d.ts.map +1 -0
- package/dist/cli/postinstall/cursor-skills.js +800 -0
- package/dist/cli/postinstall/cursor-skills.js.map +1 -0
- package/dist/cli/postinstall/fs-utils.d.ts +31 -0
- package/dist/cli/postinstall/fs-utils.d.ts.map +1 -0
- package/dist/cli/postinstall/fs-utils.js +90 -0
- package/dist/cli/postinstall/fs-utils.js.map +1 -0
- package/dist/cli/postinstall/global-config.d.ts +22 -0
- package/dist/cli/postinstall/global-config.d.ts.map +1 -0
- package/dist/cli/postinstall/global-config.js +155 -0
- package/dist/cli/postinstall/global-config.js.map +1 -0
- package/dist/cli/postinstall/index.d.ts +23 -0
- package/dist/cli/postinstall/index.d.ts.map +1 -0
- package/dist/cli/postinstall/index.js +23 -0
- package/dist/cli/postinstall/index.js.map +1 -0
- package/dist/cli/postinstall/inline-skills.d.ts +8 -0
- package/dist/cli/postinstall/inline-skills.d.ts.map +1 -0
- package/dist/cli/postinstall/inline-skills.js +158 -0
- package/dist/cli/postinstall/inline-skills.js.map +1 -0
- package/dist/cli/postinstall/main.d.ts +9 -0
- package/dist/cli/postinstall/main.d.ts.map +1 -0
- package/dist/cli/postinstall/main.js +169 -0
- package/dist/cli/postinstall/main.js.map +1 -0
- package/dist/cli/postinstall.d.ts +3 -18
- package/dist/cli/postinstall.d.ts.map +1 -1
- package/dist/cli/postinstall.js +4 -1572
- package/dist/cli/postinstall.js.map +1 -1
- package/dist/cli/prompt.d.ts +28 -0
- package/dist/cli/prompt.d.ts.map +1 -0
- package/dist/cli/prompt.js +64 -0
- package/dist/cli/prompt.js.map +1 -0
- package/dist/cli/setup/GlobalInstaller.d.ts +5 -6
- package/dist/cli/setup/GlobalInstaller.d.ts.map +1 -1
- package/dist/cli/setup/GlobalInstaller.js +22 -23
- package/dist/cli/setup/GlobalInstaller.js.map +1 -1
- package/dist/cli/setup/LanguageDetector.d.ts +1 -2
- package/dist/cli/setup/LanguageDetector.d.ts.map +1 -1
- package/dist/cli/setup/LanguageDetector.js +1 -2
- package/dist/cli/setup/LanguageDetector.js.map +1 -1
- package/dist/cli/setup/LegacyMigration.d.ts +5 -6
- package/dist/cli/setup/LegacyMigration.d.ts.map +1 -1
- package/dist/cli/setup/LegacyMigration.js +97 -39
- package/dist/cli/setup/LegacyMigration.js.map +1 -1
- package/dist/cli/setup/ProjectSetup.d.ts +4 -5
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
- package/dist/cli/setup/ProjectSetup.js +73 -73
- package/dist/cli/setup/ProjectSetup.js.map +1 -1
- package/dist/cli/setup/index.d.ts +2 -8
- package/dist/cli/setup/index.d.ts.map +1 -1
- package/dist/cli/setup/index.js +2 -8
- package/dist/cli/setup/index.js.map +1 -1
- package/dist/cli/setup.d.ts +3 -11
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +3 -11
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/types.d.ts +17 -2
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/utils.d.ts +9 -0
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +28 -0
- package/dist/cli/utils.js.map +1 -1
- package/dist/infra/lib/ContextCompressor.d.ts.map +1 -0
- package/dist/infra/lib/ContextCompressor.js +306 -0
- package/dist/infra/lib/ContextCompressor.js.map +1 -0
- package/dist/infra/lib/DeepInit.d.ts.map +1 -0
- package/dist/infra/lib/DeepInit.js.map +1 -0
- package/dist/infra/lib/FrameworkDetector.d.ts.map +1 -0
- package/dist/infra/lib/FrameworkDetector.js.map +1 -0
- package/dist/infra/lib/IterationTracker.d.ts +81 -0
- package/dist/infra/lib/IterationTracker.d.ts.map +1 -0
- package/dist/infra/lib/IterationTracker.js.map +1 -0
- package/dist/infra/lib/MemoryManager.d.ts +96 -0
- package/dist/infra/lib/MemoryManager.d.ts.map +1 -0
- package/dist/infra/lib/MemoryManager.js +314 -0
- package/dist/infra/lib/MemoryManager.js.map +1 -0
- package/dist/infra/lib/ModelRouter.d.ts.map +1 -0
- package/dist/infra/lib/ModelRouter.js.map +1 -0
- package/dist/infra/lib/OrchestrateWorkflow.d.ts.map +1 -0
- package/dist/infra/lib/OrchestrateWorkflow.js.map +1 -0
- package/dist/infra/lib/ProgressTracker.d.ts.map +1 -0
- package/dist/infra/lib/ProgressTracker.js +267 -0
- package/dist/infra/lib/ProgressTracker.js.map +1 -0
- package/dist/infra/lib/ProjectCache.d.ts.map +1 -0
- package/dist/infra/lib/ProjectCache.js.map +1 -0
- package/dist/infra/lib/PythonParser.d.ts.map +1 -0
- package/dist/infra/lib/PythonParser.js +269 -0
- package/dist/infra/lib/PythonParser.js.map +1 -0
- package/dist/infra/lib/ReviewRace.d.ts.map +1 -0
- package/dist/infra/lib/ReviewRace.js +446 -0
- package/dist/infra/lib/ReviewRace.js.map +1 -0
- package/dist/infra/lib/RuleBuildSystem.d.ts +157 -0
- package/dist/infra/lib/RuleBuildSystem.d.ts.map +1 -0
- package/dist/infra/lib/RuleBuildSystem.js +550 -0
- package/dist/infra/lib/RuleBuildSystem.js.map +1 -0
- package/dist/infra/lib/SkillFrontmatter.d.ts +67 -0
- package/dist/infra/lib/SkillFrontmatter.d.ts.map +1 -0
- package/dist/infra/lib/SkillFrontmatter.js.map +1 -0
- package/dist/infra/lib/SkillQualityGate.d.ts.map +1 -0
- package/dist/infra/lib/SkillQualityGate.js.map +1 -0
- package/dist/infra/lib/SkillRepository.d.ts.map +1 -0
- package/dist/infra/lib/SkillRepository.js +477 -0
- package/dist/infra/lib/SkillRepository.js.map +1 -0
- package/dist/infra/lib/UltraQA.d.ts +85 -0
- package/dist/infra/lib/UltraQA.d.ts.map +1 -0
- package/dist/infra/lib/UltraQA.js +297 -0
- package/dist/infra/lib/UltraQA.js.map +1 -0
- package/dist/infra/lib/autonomy/AuditStore.d.ts +63 -0
- package/dist/infra/lib/autonomy/AuditStore.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/AuditStore.js +185 -0
- package/dist/infra/lib/autonomy/AuditStore.js.map +1 -0
- package/dist/infra/lib/autonomy/AutonomyConfig.d.ts +84 -0
- package/dist/infra/lib/autonomy/AutonomyConfig.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/AutonomyConfig.js +49 -0
- package/dist/infra/lib/autonomy/AutonomyConfig.js.map +1 -0
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts +78 -0
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.js +246 -0
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.js.map +1 -0
- package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts +36 -0
- package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/BackgroundMonitor.js +138 -0
- package/dist/infra/lib/autonomy/BackgroundMonitor.js.map +1 -0
- package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts +56 -0
- package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/CollaborationProtocol.js +122 -0
- package/dist/infra/lib/autonomy/CollaborationProtocol.js.map +1 -0
- package/dist/infra/lib/autonomy/ConfirmationManager.d.ts +42 -0
- package/dist/infra/lib/autonomy/ConfirmationManager.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/ConfirmationManager.js +200 -0
- package/dist/infra/lib/autonomy/ConfirmationManager.js.map +1 -0
- package/dist/infra/lib/autonomy/ConfirmationStore.d.ts +55 -0
- package/dist/infra/lib/autonomy/ConfirmationStore.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/ConfirmationStore.js +130 -0
- package/dist/infra/lib/autonomy/ConfirmationStore.js.map +1 -0
- package/dist/infra/lib/autonomy/EventBus.d.ts +20 -0
- package/dist/infra/lib/autonomy/EventBus.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/EventBus.js +119 -0
- package/dist/infra/lib/autonomy/EventBus.js.map +1 -0
- package/dist/infra/lib/autonomy/EventOutbox.d.ts +32 -0
- package/dist/infra/lib/autonomy/EventOutbox.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/EventOutbox.js +152 -0
- package/dist/infra/lib/autonomy/EventOutbox.js.map +1 -0
- package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts +24 -0
- package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/NotificationDispatcher.js +112 -0
- package/dist/infra/lib/autonomy/NotificationDispatcher.js.map +1 -0
- package/dist/infra/lib/autonomy/PolicyEngine.d.ts +76 -0
- package/dist/infra/lib/autonomy/PolicyEngine.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/PolicyEngine.js +208 -0
- package/dist/infra/lib/autonomy/PolicyEngine.js.map +1 -0
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts +61 -0
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.js +236 -0
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.js.map +1 -0
- package/dist/infra/lib/autonomy/RiskClassifier.d.ts +35 -0
- package/dist/infra/lib/autonomy/RiskClassifier.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/RiskClassifier.js +147 -0
- package/dist/infra/lib/autonomy/RiskClassifier.js.map +1 -0
- package/dist/infra/lib/autonomy/SecuritySentinel.d.ts +51 -0
- package/dist/infra/lib/autonomy/SecuritySentinel.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/SecuritySentinel.js +162 -0
- package/dist/infra/lib/autonomy/SecuritySentinel.js.map +1 -0
- package/dist/infra/lib/autonomy/SuggestionStore.d.ts +54 -0
- package/dist/infra/lib/autonomy/SuggestionStore.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/SuggestionStore.js +144 -0
- package/dist/infra/lib/autonomy/SuggestionStore.js.map +1 -0
- package/dist/infra/lib/autonomy/TaskDecomposer.d.ts +38 -0
- package/dist/infra/lib/autonomy/TaskDecomposer.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/TaskDecomposer.js +175 -0
- package/dist/infra/lib/autonomy/TaskDecomposer.js.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts +2 -0
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.js +198 -0
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.js.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts +2 -0
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.js +225 -0
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.js.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts +2 -0
- package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/event-core.test.js +194 -0
- package/dist/infra/lib/autonomy/__tests__/event-core.test.js.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts +2 -0
- package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/governance.test.js +540 -0
- package/dist/infra/lib/autonomy/__tests__/governance.test.js.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts +2 -0
- package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/integration.test.js +480 -0
- package/dist/infra/lib/autonomy/__tests__/integration.test.js.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts +2 -0
- package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/proactive.test.js +410 -0
- package/dist/infra/lib/autonomy/__tests__/proactive.test.js.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts +2 -0
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.js +486 -0
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.js.map +1 -0
- package/dist/infra/lib/autonomy/index.d.ts +18 -0
- package/dist/infra/lib/autonomy/index.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/index.js +22 -0
- package/dist/infra/lib/autonomy/index.js.map +1 -0
- package/dist/infra/lib/autonomy/schemas.d.ts +317 -0
- package/dist/infra/lib/autonomy/schemas.d.ts.map +1 -0
- package/dist/infra/lib/autonomy/schemas.js +90 -0
- package/dist/infra/lib/autonomy/schemas.js.map +1 -0
- package/dist/infra/lib/claude/index.d.ts +5 -0
- package/dist/infra/lib/claude/index.d.ts.map +1 -0
- package/dist/infra/lib/claude/index.js +5 -0
- package/dist/infra/lib/claude/index.js.map +1 -0
- package/dist/infra/lib/claude/storage.d.ts +12 -0
- package/dist/infra/lib/claude/storage.d.ts.map +1 -0
- package/dist/infra/lib/claude/storage.js +59 -0
- package/dist/infra/lib/claude/storage.js.map +1 -0
- package/dist/infra/lib/claude-storage.d.ts +12 -0
- package/dist/infra/lib/claude-storage.d.ts.map +1 -0
- package/dist/infra/lib/claude-storage.js +59 -0
- package/dist/infra/lib/claude-storage.js.map +1 -0
- package/dist/infra/lib/constants.d.ts +76 -0
- package/dist/infra/lib/constants.d.ts.map +1 -0
- package/dist/infra/lib/constants.js +92 -0
- package/dist/infra/lib/constants.js.map +1 -0
- package/dist/infra/lib/embedding/EmbeddingProvider.d.ts +20 -0
- package/dist/infra/lib/embedding/EmbeddingProvider.d.ts.map +1 -0
- package/dist/infra/lib/embedding/EmbeddingProvider.js +82 -0
- package/dist/infra/lib/embedding/EmbeddingProvider.js.map +1 -0
- package/dist/infra/lib/embedding/VectorStore.d.ts +47 -0
- package/dist/infra/lib/embedding/VectorStore.d.ts.map +1 -0
- package/dist/infra/lib/embedding/VectorStore.js +116 -0
- package/dist/infra/lib/embedding/VectorStore.js.map +1 -0
- package/dist/infra/lib/embedding/__tests__/EmbeddingProvider.test.d.ts +2 -0
- package/dist/infra/lib/embedding/__tests__/EmbeddingProvider.test.d.ts.map +1 -0
- package/dist/infra/lib/embedding/__tests__/EmbeddingProvider.test.js +39 -0
- package/dist/infra/lib/embedding/__tests__/EmbeddingProvider.test.js.map +1 -0
- package/dist/infra/lib/embedding/__tests__/VectorStore.test.d.ts +2 -0
- package/dist/infra/lib/embedding/__tests__/VectorStore.test.d.ts.map +1 -0
- package/dist/infra/lib/embedding/__tests__/VectorStore.test.js +94 -0
- package/dist/infra/lib/embedding/__tests__/VectorStore.test.js.map +1 -0
- package/dist/infra/lib/embedding/__tests__/cosine.test.d.ts +2 -0
- package/dist/infra/lib/embedding/__tests__/cosine.test.d.ts.map +1 -0
- package/dist/infra/lib/embedding/__tests__/cosine.test.js +73 -0
- package/dist/infra/lib/embedding/__tests__/cosine.test.js.map +1 -0
- package/dist/infra/lib/embedding/cosine.d.ts +19 -0
- package/dist/infra/lib/embedding/cosine.d.ts.map +1 -0
- package/dist/infra/lib/embedding/cosine.js +40 -0
- package/dist/infra/lib/embedding/cosine.js.map +1 -0
- package/dist/infra/lib/embedding/index.d.ts +9 -0
- package/dist/infra/lib/embedding/index.d.ts.map +1 -0
- package/dist/infra/lib/embedding/index.js +8 -0
- package/dist/infra/lib/embedding/index.js.map +1 -0
- package/dist/infra/lib/embedding/types.d.ts +30 -0
- package/dist/infra/lib/embedding/types.d.ts.map +1 -0
- package/dist/infra/lib/embedding/types.js +12 -0
- package/dist/infra/lib/embedding/types.js.map +1 -0
- package/dist/infra/lib/evolution/AgentAnalyzer.d.ts +15 -0
- package/dist/infra/lib/evolution/AgentAnalyzer.d.ts.map +1 -0
- package/dist/infra/lib/evolution/AgentAnalyzer.js +84 -0
- package/dist/infra/lib/evolution/AgentAnalyzer.js.map +1 -0
- package/dist/infra/lib/evolution/CircuitBreaker.d.ts +31 -0
- package/dist/infra/lib/evolution/CircuitBreaker.d.ts.map +1 -0
- package/dist/infra/lib/evolution/CircuitBreaker.js +86 -0
- package/dist/infra/lib/evolution/CircuitBreaker.js.map +1 -0
- package/dist/infra/lib/evolution/EvolutionOrchestrator.d.ts +35 -0
- package/dist/infra/lib/evolution/EvolutionOrchestrator.d.ts.map +1 -0
- package/dist/infra/lib/evolution/EvolutionOrchestrator.js +212 -0
- package/dist/infra/lib/evolution/EvolutionOrchestrator.js.map +1 -0
- package/dist/infra/lib/evolution/GenerationRegistry.d.ts +53 -0
- package/dist/infra/lib/evolution/GenerationRegistry.d.ts.map +1 -0
- package/dist/infra/lib/evolution/GenerationRegistry.js +121 -0
- package/dist/infra/lib/evolution/GenerationRegistry.js.map +1 -0
- package/dist/infra/lib/evolution/InsightExtractor.d.ts +24 -0
- package/dist/infra/lib/evolution/InsightExtractor.d.ts.map +1 -0
- package/dist/infra/lib/evolution/InsightExtractor.js +131 -0
- package/dist/infra/lib/evolution/InsightExtractor.js.map +1 -0
- package/dist/infra/lib/evolution/InsightStore.d.ts +55 -0
- package/dist/infra/lib/evolution/InsightStore.d.ts.map +1 -0
- package/dist/infra/lib/evolution/InsightStore.js +219 -0
- package/dist/infra/lib/evolution/InsightStore.js.map +1 -0
- package/dist/infra/lib/evolution/LifecycleManager.d.ts +43 -0
- package/dist/infra/lib/evolution/LifecycleManager.d.ts.map +1 -0
- package/dist/infra/lib/evolution/LifecycleManager.js +134 -0
- package/dist/infra/lib/evolution/LifecycleManager.js.map +1 -0
- package/dist/infra/lib/evolution/RollbackManager.d.ts +26 -0
- package/dist/infra/lib/evolution/RollbackManager.d.ts.map +1 -0
- package/dist/infra/lib/evolution/RollbackManager.js +133 -0
- package/dist/infra/lib/evolution/RollbackManager.js.map +1 -0
- package/dist/infra/lib/evolution/SkillGapDetector.d.ts +22 -0
- package/dist/infra/lib/evolution/SkillGapDetector.d.ts.map +1 -0
- package/dist/infra/lib/evolution/SkillGapDetector.js +81 -0
- package/dist/infra/lib/evolution/SkillGapDetector.js.map +1 -0
- package/dist/infra/lib/evolution/TriggerCollisionDetector.d.ts +27 -0
- package/dist/infra/lib/evolution/TriggerCollisionDetector.d.ts.map +1 -0
- package/dist/infra/lib/evolution/TriggerCollisionDetector.js +100 -0
- package/dist/infra/lib/evolution/TriggerCollisionDetector.js.map +1 -0
- package/dist/infra/lib/evolution/UsageTracker.d.ts +53 -0
- package/dist/infra/lib/evolution/UsageTracker.d.ts.map +1 -0
- package/dist/infra/lib/evolution/UsageTracker.js +157 -0
- package/dist/infra/lib/evolution/UsageTracker.js.map +1 -0
- package/dist/infra/lib/evolution/__tests__/generation.test.d.ts +2 -0
- package/dist/infra/lib/evolution/__tests__/generation.test.d.ts.map +1 -0
- package/dist/infra/lib/evolution/__tests__/generation.test.js +396 -0
- package/dist/infra/lib/evolution/__tests__/generation.test.js.map +1 -0
- package/dist/infra/lib/evolution/__tests__/insight.test.d.ts +2 -0
- package/dist/infra/lib/evolution/__tests__/insight.test.d.ts.map +1 -0
- package/dist/infra/lib/evolution/__tests__/insight.test.js +204 -0
- package/dist/infra/lib/evolution/__tests__/insight.test.js.map +1 -0
- package/dist/infra/lib/evolution/__tests__/integration.test.d.ts +2 -0
- package/dist/infra/lib/evolution/__tests__/integration.test.d.ts.map +1 -0
- package/dist/infra/lib/evolution/__tests__/integration.test.js +248 -0
- package/dist/infra/lib/evolution/__tests__/integration.test.js.map +1 -0
- package/dist/infra/lib/evolution/__tests__/lifecycle.test.d.ts +2 -0
- package/dist/infra/lib/evolution/__tests__/lifecycle.test.d.ts.map +1 -0
- package/dist/infra/lib/evolution/__tests__/lifecycle.test.js +350 -0
- package/dist/infra/lib/evolution/__tests__/lifecycle.test.js.map +1 -0
- package/dist/infra/lib/evolution/generators/AgentGenerator.d.ts +14 -0
- package/dist/infra/lib/evolution/generators/AgentGenerator.d.ts.map +1 -0
- package/dist/infra/lib/evolution/generators/AgentGenerator.js +55 -0
- package/dist/infra/lib/evolution/generators/AgentGenerator.js.map +1 -0
- package/dist/infra/lib/evolution/generators/RuleGenerator.d.ts +13 -0
- package/dist/infra/lib/evolution/generators/RuleGenerator.d.ts.map +1 -0
- package/dist/infra/lib/evolution/generators/RuleGenerator.js +52 -0
- package/dist/infra/lib/evolution/generators/RuleGenerator.js.map +1 -0
- package/dist/infra/lib/evolution/generators/SkillGenerator.d.ts +15 -0
- package/dist/infra/lib/evolution/generators/SkillGenerator.d.ts.map +1 -0
- package/dist/infra/lib/evolution/generators/SkillGenerator.js +73 -0
- package/dist/infra/lib/evolution/generators/SkillGenerator.js.map +1 -0
- package/dist/infra/lib/evolution/index.d.ts +23 -0
- package/dist/infra/lib/evolution/index.d.ts.map +1 -0
- package/dist/infra/lib/evolution/index.js +21 -0
- package/dist/infra/lib/evolution/index.js.map +1 -0
- package/dist/infra/lib/gemini/auth.d.ts +30 -0
- package/dist/infra/lib/gemini/auth.d.ts.map +1 -0
- package/dist/infra/lib/gemini/auth.js +351 -0
- package/dist/infra/lib/gemini/auth.js.map +1 -0
- package/dist/infra/lib/gemini/capabilities.d.ts +32 -0
- package/dist/infra/lib/gemini/capabilities.d.ts.map +1 -0
- package/dist/infra/lib/gemini/capabilities.js +336 -0
- package/dist/infra/lib/gemini/capabilities.js.map +1 -0
- package/dist/infra/lib/gemini/chat.d.ts +44 -0
- package/dist/infra/lib/gemini/chat.d.ts.map +1 -0
- package/dist/infra/lib/gemini/chat.js +473 -0
- package/dist/infra/lib/gemini/chat.js.map +1 -0
- package/dist/infra/lib/gemini/completion.d.ts +22 -0
- package/dist/infra/lib/gemini/completion.d.ts.map +1 -0
- package/dist/infra/lib/gemini/completion.js +104 -0
- package/dist/infra/lib/gemini/completion.js.map +1 -0
- package/dist/infra/lib/gemini/constants.d.ts +37 -0
- package/dist/infra/lib/gemini/constants.d.ts.map +1 -0
- package/dist/infra/lib/gemini/constants.js +86 -0
- package/dist/infra/lib/gemini/constants.js.map +1 -0
- package/dist/infra/lib/gemini/index.d.ts +15 -0
- package/dist/infra/lib/gemini/index.d.ts.map +1 -0
- package/dist/infra/lib/gemini/index.js +14 -0
- package/dist/infra/lib/gemini/index.js.map +1 -0
- package/dist/infra/lib/gemini/models.d.ts +12 -0
- package/dist/infra/lib/gemini/models.d.ts.map +1 -0
- package/dist/infra/lib/gemini/models.js +114 -0
- package/dist/infra/lib/gemini/models.js.map +1 -0
- package/dist/infra/lib/gemini/orchestration.d.ts +33 -0
- package/dist/infra/lib/gemini/orchestration.d.ts.map +1 -0
- package/dist/infra/lib/gemini/orchestration.js +62 -0
- package/dist/infra/lib/gemini/orchestration.js.map +1 -0
- package/dist/infra/lib/gemini/types.d.ts +143 -0
- package/dist/infra/lib/gemini/types.d.ts.map +1 -0
- package/dist/infra/lib/gemini/types.js +5 -0
- package/dist/infra/lib/gemini/types.js.map +1 -0
- package/dist/infra/lib/gemini-api.d.ts +13 -0
- package/dist/infra/lib/gemini-api.d.ts.map +1 -0
- package/dist/infra/lib/gemini-api.js +13 -0
- package/dist/infra/lib/gemini-api.js.map +1 -0
- package/dist/infra/lib/gemini-constants.d.ts +8 -0
- package/dist/infra/lib/gemini-constants.d.ts.map +1 -0
- package/dist/infra/lib/gemini-constants.js +18 -0
- package/dist/infra/lib/gemini-constants.js.map +1 -0
- package/dist/infra/lib/gemini-oauth.d.ts.map +1 -0
- package/dist/infra/lib/gemini-oauth.js.map +1 -0
- package/dist/infra/lib/gemini-storage.d.ts.map +1 -0
- package/dist/infra/lib/gemini-storage.js.map +1 -0
- package/dist/infra/lib/gpt/auth.d.ts +19 -0
- package/dist/infra/lib/gpt/auth.d.ts.map +1 -0
- package/dist/infra/lib/gpt/auth.js +116 -0
- package/dist/infra/lib/gpt/auth.js.map +1 -0
- package/dist/infra/lib/gpt/chat.d.ts +36 -0
- package/dist/infra/lib/gpt/chat.d.ts.map +1 -0
- package/dist/infra/lib/gpt/chat.js +460 -0
- package/dist/infra/lib/gpt/chat.js.map +1 -0
- package/dist/infra/lib/gpt/constants.d.ts +12 -0
- package/dist/infra/lib/gpt/constants.d.ts.map +1 -0
- package/dist/infra/lib/gpt/constants.js +18 -0
- package/dist/infra/lib/gpt/constants.js.map +1 -0
- package/dist/infra/lib/gpt/embedding.d.ts +15 -0
- package/dist/infra/lib/gpt/embedding.d.ts.map +1 -0
- package/dist/infra/lib/gpt/embedding.js +79 -0
- package/dist/infra/lib/gpt/embedding.js.map +1 -0
- package/dist/infra/lib/gpt/index.d.ts +17 -0
- package/dist/infra/lib/gpt/index.d.ts.map +1 -0
- package/dist/infra/lib/gpt/index.js +17 -0
- package/dist/infra/lib/gpt/index.js.map +1 -0
- package/dist/infra/lib/gpt/oauth.d.ts +66 -0
- package/dist/infra/lib/gpt/oauth.d.ts.map +1 -0
- package/dist/infra/lib/gpt/oauth.js +403 -0
- package/dist/infra/lib/gpt/oauth.js.map +1 -0
- package/dist/infra/lib/gpt/orchestration.d.ts +28 -0
- package/dist/infra/lib/gpt/orchestration.d.ts.map +1 -0
- package/dist/infra/lib/gpt/orchestration.js +52 -0
- package/dist/infra/lib/gpt/orchestration.js.map +1 -0
- package/dist/infra/lib/gpt/specializations.d.ts +12 -0
- package/dist/infra/lib/gpt/specializations.d.ts.map +1 -0
- package/dist/infra/lib/gpt/specializations.js +27 -0
- package/dist/infra/lib/gpt/specializations.js.map +1 -0
- package/dist/infra/lib/gpt/types.d.ts +70 -0
- package/dist/infra/lib/gpt/types.d.ts.map +1 -0
- package/dist/infra/lib/gpt/types.js +5 -0
- package/dist/infra/lib/gpt/types.js.map +1 -0
- package/dist/infra/lib/gpt-api.d.ts +13 -0
- package/dist/infra/lib/gpt-api.d.ts.map +1 -0
- package/dist/infra/lib/gpt-api.js +13 -0
- package/dist/infra/lib/gpt-api.js.map +1 -0
- package/dist/infra/lib/gpt-constants.d.ts +12 -0
- package/dist/infra/lib/gpt-constants.d.ts.map +1 -0
- package/dist/infra/lib/gpt-constants.js +18 -0
- package/dist/infra/lib/gpt-constants.js.map +1 -0
- package/dist/infra/lib/gpt-oauth.d.ts.map +1 -0
- package/dist/infra/lib/gpt-oauth.js +389 -0
- package/dist/infra/lib/gpt-oauth.js.map +1 -0
- package/dist/infra/lib/gpt-storage.d.ts +40 -0
- package/dist/infra/lib/gpt-storage.d.ts.map +1 -0
- package/dist/infra/lib/gpt-storage.js +106 -0
- package/dist/infra/lib/gpt-storage.js.map +1 -0
- package/dist/infra/lib/llm/auth/ApiKeyManager.d.ts.map +1 -0
- package/dist/infra/lib/llm/auth/ApiKeyManager.js.map +1 -0
- package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts +59 -0
- package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts.map +1 -0
- package/dist/infra/lib/llm/auth/AuthProfileManager.js +248 -0
- package/dist/infra/lib/llm/auth/AuthProfileManager.js.map +1 -0
- package/dist/infra/lib/llm/auth/AuthProfileManager.test.d.ts +5 -0
- package/dist/infra/lib/llm/auth/AuthProfileManager.test.d.ts.map +1 -0
- package/dist/infra/lib/llm/auth/AuthProfileManager.test.js +168 -0
- package/dist/infra/lib/llm/auth/AuthProfileManager.test.js.map +1 -0
- package/dist/infra/lib/llm/auth/ConfigManager.d.ts +29 -0
- package/dist/infra/lib/llm/auth/ConfigManager.d.ts.map +1 -0
- package/dist/infra/lib/llm/auth/ConfigManager.js +67 -0
- package/dist/infra/lib/llm/auth/ConfigManager.js.map +1 -0
- package/dist/infra/lib/llm/auth/ProfileFileLock.d.ts +16 -0
- package/dist/infra/lib/llm/auth/ProfileFileLock.d.ts.map +1 -0
- package/dist/infra/lib/llm/auth/ProfileFileLock.js +99 -0
- package/dist/infra/lib/llm/auth/ProfileFileLock.js.map +1 -0
- package/dist/infra/lib/llm/auth/TokenRefresher.d.ts +35 -0
- package/dist/infra/lib/llm/auth/TokenRefresher.d.ts.map +1 -0
- package/dist/infra/lib/llm/auth/TokenRefresher.js +217 -0
- package/dist/infra/lib/llm/auth/TokenRefresher.js.map +1 -0
- package/dist/infra/lib/llm/auth/TokenRefresher.test.d.ts +2 -0
- package/dist/infra/lib/llm/auth/TokenRefresher.test.d.ts.map +1 -0
- package/dist/infra/lib/llm/auth/TokenRefresher.test.js +120 -0
- package/dist/infra/lib/llm/auth/TokenRefresher.test.js.map +1 -0
- package/dist/infra/lib/llm/auth/index.d.ts +30 -0
- package/dist/infra/lib/llm/auth/index.d.ts.map +1 -0
- package/dist/infra/lib/llm/auth/index.js +86 -0
- package/dist/infra/lib/llm/auth/index.js.map +1 -0
- package/dist/infra/lib/llm/index.d.ts.map +1 -0
- package/dist/infra/lib/llm/index.js.map +1 -0
- package/dist/infra/lib/llm/types.d.ts.map +1 -0
- package/dist/infra/lib/llm/types.js.map +1 -0
- package/dist/infra/lib/llm/utils/index.d.ts.map +1 -0
- package/dist/infra/lib/llm/utils/index.js.map +1 -0
- package/dist/infra/lib/llm/utils/retry.d.ts.map +1 -0
- package/dist/infra/lib/llm/utils/retry.js.map +1 -0
- package/dist/infra/lib/llm/utils/stream.d.ts.map +1 -0
- package/dist/infra/lib/llm/utils/stream.js.map +1 -0
- package/dist/infra/lib/memory/KnowledgeGraph.d.ts.map +1 -0
- package/dist/infra/lib/memory/KnowledgeGraph.js.map +1 -0
- package/dist/infra/lib/memory/KnowledgeGraph.test.d.ts.map +1 -0
- package/dist/infra/lib/memory/KnowledgeGraph.test.js +189 -0
- package/dist/infra/lib/memory/KnowledgeGraph.test.js.map +1 -0
- package/dist/infra/lib/memory/MemorySearch.d.ts +55 -0
- package/dist/infra/lib/memory/MemorySearch.d.ts.map +1 -0
- package/dist/infra/lib/memory/MemorySearch.js +309 -0
- package/dist/infra/lib/memory/MemorySearch.js.map +1 -0
- package/dist/infra/lib/memory/MemorySearch.test.d.ts.map +1 -0
- package/dist/infra/lib/memory/MemorySearch.test.js +149 -0
- package/dist/infra/lib/memory/MemorySearch.test.js.map +1 -0
- package/dist/infra/lib/memory/MemoryStorage.d.ts +110 -0
- package/dist/infra/lib/memory/MemoryStorage.d.ts.map +1 -0
- package/dist/infra/lib/memory/MemoryStorage.js +527 -0
- package/dist/infra/lib/memory/MemoryStorage.js.map +1 -0
- package/dist/infra/lib/memory/MemoryStorage.test.d.ts.map +1 -0
- package/dist/infra/lib/memory/MemoryStorage.test.js +198 -0
- package/dist/infra/lib/memory/MemoryStorage.test.js.map +1 -0
- package/dist/infra/lib/memory/ObservationStore.d.ts.map +1 -0
- package/dist/infra/lib/memory/ObservationStore.js.map +1 -0
- package/dist/infra/lib/memory/ReflectionStore.d.ts +60 -0
- package/dist/infra/lib/memory/ReflectionStore.d.ts.map +1 -0
- package/dist/infra/lib/memory/ReflectionStore.js +177 -0
- package/dist/infra/lib/memory/ReflectionStore.js.map +1 -0
- package/dist/infra/lib/memory/SessionRAGRetriever.d.ts +88 -0
- package/dist/infra/lib/memory/SessionRAGRetriever.d.ts.map +1 -0
- package/dist/infra/lib/memory/SessionRAGRetriever.js +306 -0
- package/dist/infra/lib/memory/SessionRAGRetriever.js.map +1 -0
- package/dist/infra/lib/memory/SessionRAGRetriever.test.d.ts.map +1 -0
- package/dist/infra/lib/memory/SessionRAGRetriever.test.js +180 -0
- package/dist/infra/lib/memory/SessionRAGRetriever.test.js.map +1 -0
- package/dist/infra/lib/memory/SessionRAGStore.d.ts +163 -0
- package/dist/infra/lib/memory/SessionRAGStore.d.ts.map +1 -0
- package/dist/infra/lib/memory/SessionRAGStore.js +728 -0
- package/dist/infra/lib/memory/SessionRAGStore.js.map +1 -0
- package/dist/infra/lib/memory/SessionRAGStore.test.d.ts.map +1 -0
- package/dist/infra/lib/memory/SessionRAGStore.test.js +326 -0
- package/dist/infra/lib/memory/SessionRAGStore.test.js.map +1 -0
- package/dist/infra/lib/memory/SessionSummarizer.d.ts.map +1 -0
- package/dist/infra/lib/memory/SessionSummarizer.js.map +1 -0
- package/dist/infra/lib/memory/__tests__/ReflectionStore.test.d.ts +2 -0
- package/dist/infra/lib/memory/__tests__/ReflectionStore.test.d.ts.map +1 -0
- package/dist/infra/lib/memory/__tests__/ReflectionStore.test.js +196 -0
- package/dist/infra/lib/memory/__tests__/ReflectionStore.test.js.map +1 -0
- package/dist/infra/lib/memory/index.d.ts +11 -0
- package/dist/infra/lib/memory/index.d.ts.map +1 -0
- package/dist/infra/lib/memory/index.js +13 -0
- package/dist/infra/lib/memory/index.js.map +1 -0
- package/dist/infra/lib/memory/index.test.d.ts +2 -0
- package/dist/infra/lib/memory/index.test.d.ts.map +1 -0
- package/dist/infra/lib/memory/index.test.js +23 -0
- package/dist/infra/lib/memory/index.test.js.map +1 -0
- package/dist/infra/lib/sync/constants.d.ts +21 -0
- package/dist/infra/lib/sync/constants.d.ts.map +1 -0
- package/dist/infra/lib/sync/constants.js +78 -0
- package/dist/infra/lib/sync/constants.js.map +1 -0
- package/dist/infra/lib/sync/crypto.d.ts +23 -0
- package/dist/infra/lib/sync/crypto.d.ts.map +1 -0
- package/dist/infra/lib/sync/crypto.js +55 -0
- package/dist/infra/lib/sync/crypto.js.map +1 -0
- package/dist/infra/lib/sync/drive.d.ts +22 -0
- package/dist/infra/lib/sync/drive.d.ts.map +1 -0
- package/dist/infra/lib/sync/drive.js +99 -0
- package/dist/infra/lib/sync/drive.js.map +1 -0
- package/dist/infra/lib/sync/index.d.ts +9 -0
- package/dist/infra/lib/sync/index.d.ts.map +1 -0
- package/dist/infra/lib/sync/index.js +9 -0
- package/dist/infra/lib/sync/index.js.map +1 -0
- package/dist/infra/lib/sync/oauth.d.ts +12 -0
- package/dist/infra/lib/sync/oauth.d.ts.map +1 -0
- package/dist/infra/lib/sync/oauth.js +157 -0
- package/dist/infra/lib/sync/oauth.js.map +1 -0
- package/dist/infra/lib/sync/storage.d.ts +21 -0
- package/dist/infra/lib/sync/storage.d.ts.map +1 -0
- package/dist/infra/lib/sync/storage.js +32 -0
- package/dist/infra/lib/sync/storage.js.map +1 -0
- package/dist/infra/lib/ui-ux/Bm25Engine.d.ts +67 -0
- package/dist/infra/lib/ui-ux/Bm25Engine.d.ts.map +1 -0
- package/dist/infra/lib/ui-ux/Bm25Engine.js +153 -0
- package/dist/infra/lib/ui-ux/Bm25Engine.js.map +1 -0
- package/dist/infra/lib/ui-ux/Bm25Engine.test.d.ts +2 -0
- package/dist/infra/lib/ui-ux/Bm25Engine.test.d.ts.map +1 -0
- package/dist/infra/lib/ui-ux/Bm25Engine.test.js +159 -0
- package/dist/infra/lib/ui-ux/Bm25Engine.test.js.map +1 -0
- package/dist/infra/lib/ui-ux/CsvDataLoader.d.ts +48 -0
- package/dist/infra/lib/ui-ux/CsvDataLoader.d.ts.map +1 -0
- package/dist/infra/lib/ui-ux/CsvDataLoader.js +125 -0
- package/dist/infra/lib/ui-ux/CsvDataLoader.js.map +1 -0
- package/dist/infra/lib/ui-ux/CsvDataLoader.test.d.ts +2 -0
- package/dist/infra/lib/ui-ux/CsvDataLoader.test.d.ts.map +1 -0
- package/dist/infra/lib/ui-ux/CsvDataLoader.test.js +141 -0
- package/dist/infra/lib/ui-ux/CsvDataLoader.test.js.map +1 -0
- package/dist/infra/lib/ui-ux/DesignSystemGenerator.d.ts +119 -0
- package/dist/infra/lib/ui-ux/DesignSystemGenerator.d.ts.map +1 -0
- package/dist/infra/lib/ui-ux/DesignSystemGenerator.js +519 -0
- package/dist/infra/lib/ui-ux/DesignSystemGenerator.js.map +1 -0
- package/dist/infra/lib/ui-ux/DesignSystemGenerator.test.d.ts +2 -0
- package/dist/infra/lib/ui-ux/DesignSystemGenerator.test.d.ts.map +1 -0
- package/dist/infra/lib/ui-ux/DesignSystemGenerator.test.js +370 -0
- package/dist/infra/lib/ui-ux/DesignSystemGenerator.test.js.map +1 -0
- package/dist/infra/lib/ui-ux/SearchService.d.ts +64 -0
- package/dist/infra/lib/ui-ux/SearchService.d.ts.map +1 -0
- package/dist/infra/lib/ui-ux/SearchService.js +240 -0
- package/dist/infra/lib/ui-ux/SearchService.js.map +1 -0
- package/dist/infra/lib/ui-ux/SearchService.test.d.ts +2 -0
- package/dist/infra/lib/ui-ux/SearchService.test.d.ts.map +1 -0
- package/dist/infra/lib/ui-ux/SearchService.test.js +215 -0
- package/dist/infra/lib/ui-ux/SearchService.test.js.map +1 -0
- package/dist/infra/lib/ui-ux/UiUxWorkflow.d.ts +58 -0
- package/dist/infra/lib/ui-ux/UiUxWorkflow.d.ts.map +1 -0
- package/dist/infra/lib/ui-ux/UiUxWorkflow.js +163 -0
- package/dist/infra/lib/ui-ux/UiUxWorkflow.js.map +1 -0
- package/dist/infra/lib/ui-ux/constants.d.ts +39 -0
- package/dist/infra/lib/ui-ux/constants.d.ts.map +1 -0
- package/dist/infra/lib/ui-ux/constants.js +203 -0
- package/dist/infra/lib/ui-ux/constants.js.map +1 -0
- package/dist/infra/lib/ui-ux/index.d.ts +11 -0
- package/dist/infra/lib/ui-ux/index.d.ts.map +1 -0
- package/dist/infra/lib/ui-ux/index.js +11 -0
- package/dist/infra/lib/ui-ux/index.js.map +1 -0
- package/dist/infra/lib/ui-ux/types.d.ts +243 -0
- package/dist/infra/lib/ui-ux/types.d.ts.map +1 -0
- package/dist/infra/lib/ui-ux/types.js +7 -0
- package/dist/infra/lib/ui-ux/types.js.map +1 -0
- package/dist/infra/lib/utils.d.ts.map +1 -0
- package/dist/infra/lib/utils.js.map +1 -0
- package/dist/infra/orchestrator/AgentAnnouncer.d.ts +64 -0
- package/dist/infra/orchestrator/AgentAnnouncer.d.ts.map +1 -0
- package/dist/infra/orchestrator/AgentAnnouncer.js +127 -0
- package/dist/infra/orchestrator/AgentAnnouncer.js.map +1 -0
- package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts +5 -0
- package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts.map +1 -0
- package/dist/infra/orchestrator/AgentAnnouncer.test.js +119 -0
- package/dist/infra/orchestrator/AgentAnnouncer.test.js.map +1 -0
- package/dist/infra/orchestrator/AgentExecutor.d.ts +22 -0
- package/dist/infra/orchestrator/AgentExecutor.d.ts.map +1 -0
- package/dist/infra/orchestrator/AgentExecutor.js +240 -0
- package/dist/infra/orchestrator/AgentExecutor.js.map +1 -0
- package/dist/infra/orchestrator/AgentManager.d.ts +72 -0
- package/dist/infra/orchestrator/AgentManager.d.ts.map +1 -0
- package/dist/infra/orchestrator/AgentManager.js +182 -0
- package/dist/infra/orchestrator/AgentManager.js.map +1 -0
- package/dist/infra/orchestrator/AgentRegistry.d.ts +76 -0
- package/dist/infra/orchestrator/AgentRegistry.d.ts.map +1 -0
- package/dist/infra/orchestrator/AgentRegistry.js +217 -0
- package/dist/infra/orchestrator/AgentRegistry.js.map +1 -0
- package/dist/infra/orchestrator/AgentRegistry.test.d.ts +5 -0
- package/dist/infra/orchestrator/AgentRegistry.test.d.ts.map +1 -0
- package/dist/infra/orchestrator/AgentRegistry.test.js +122 -0
- package/dist/infra/orchestrator/AgentRegistry.test.js.map +1 -0
- package/dist/infra/orchestrator/BackgroundManager.d.ts +128 -0
- package/dist/infra/orchestrator/BackgroundManager.d.ts.map +1 -0
- package/dist/infra/orchestrator/BackgroundManager.js +617 -0
- package/dist/infra/orchestrator/BackgroundManager.js.map +1 -0
- package/dist/infra/orchestrator/BackgroundManager.test.d.ts.map +1 -0
- package/dist/infra/orchestrator/BackgroundManager.test.js.map +1 -0
- package/dist/infra/orchestrator/CheckpointManager.d.ts +54 -0
- package/dist/infra/orchestrator/CheckpointManager.d.ts.map +1 -0
- package/dist/infra/orchestrator/CheckpointManager.js +121 -0
- package/dist/infra/orchestrator/CheckpointManager.js.map +1 -0
- package/dist/infra/orchestrator/LLMCluster.d.ts +69 -0
- package/dist/infra/orchestrator/LLMCluster.d.ts.map +1 -0
- package/dist/infra/orchestrator/LLMCluster.js +90 -0
- package/dist/infra/orchestrator/LLMCluster.js.map +1 -0
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts +26 -0
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts.map +1 -0
- package/dist/infra/orchestrator/MultiLlmResearch.js +144 -0
- package/dist/infra/orchestrator/MultiLlmResearch.js.map +1 -0
- package/dist/infra/orchestrator/PhasePipeline.d.ts +122 -0
- package/dist/infra/orchestrator/PhasePipeline.d.ts.map +1 -0
- package/dist/infra/orchestrator/PhasePipeline.js +381 -0
- package/dist/infra/orchestrator/PhasePipeline.js.map +1 -0
- package/dist/infra/orchestrator/PhaseResultStore.d.ts +39 -0
- package/dist/infra/orchestrator/PhaseResultStore.d.ts.map +1 -0
- package/dist/infra/orchestrator/PhaseResultStore.js +151 -0
- package/dist/infra/orchestrator/PhaseResultStore.js.map +1 -0
- package/dist/infra/orchestrator/SessionStore.d.ts +40 -0
- package/dist/infra/orchestrator/SessionStore.d.ts.map +1 -0
- package/dist/infra/orchestrator/SessionStore.js +116 -0
- package/dist/infra/orchestrator/SessionStore.js.map +1 -0
- package/dist/infra/orchestrator/SmartRouter.d.ts +77 -0
- package/dist/infra/orchestrator/SmartRouter.d.ts.map +1 -0
- package/dist/infra/orchestrator/SmartRouter.js +267 -0
- package/dist/infra/orchestrator/SmartRouter.js.map +1 -0
- package/dist/infra/orchestrator/SwarmOrchestrator.d.ts +143 -0
- package/dist/infra/orchestrator/SwarmOrchestrator.d.ts.map +1 -0
- package/dist/infra/orchestrator/SwarmOrchestrator.js +377 -0
- package/dist/infra/orchestrator/SwarmOrchestrator.js.map +1 -0
- package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts.map +1 -0
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js.map +1 -0
- package/dist/infra/orchestrator/agentDiscovery.d.ts.map +1 -0
- package/dist/infra/orchestrator/agentDiscovery.js.map +1 -0
- package/dist/infra/orchestrator/backgroundAgent.d.ts +9 -0
- package/dist/infra/orchestrator/backgroundAgent.d.ts.map +1 -0
- package/dist/infra/orchestrator/backgroundAgent.js +10 -0
- package/dist/infra/orchestrator/backgroundAgent.js.map +1 -0
- package/dist/infra/orchestrator/index.d.ts +204 -0
- package/dist/infra/orchestrator/index.d.ts.map +1 -0
- package/dist/infra/orchestrator/index.js +360 -0
- package/dist/infra/orchestrator/index.js.map +1 -0
- package/dist/infra/orchestrator/orchestrator.d.ts +60 -0
- package/dist/infra/orchestrator/orchestrator.d.ts.map +1 -0
- package/dist/infra/orchestrator/orchestrator.js +214 -0
- package/dist/infra/orchestrator/orchestrator.js.map +1 -0
- package/dist/infra/orchestrator/parallelResearch.d.ts +27 -0
- package/dist/infra/orchestrator/parallelResearch.d.ts.map +1 -0
- package/dist/infra/orchestrator/parallelResearch.js +244 -0
- package/dist/infra/orchestrator/parallelResearch.js.map +1 -0
- package/dist/infra/orchestrator/types.d.ts +175 -0
- package/dist/infra/orchestrator/types.d.ts.map +1 -0
- package/dist/infra/orchestrator/types.js +21 -0
- package/dist/infra/orchestrator/types.js.map +1 -0
- package/dist/infra/types/tool.d.ts.map +1 -0
- package/dist/infra/types/tool.js.map +1 -0
- package/dist/tools/convention/analyzeComplexity.d.ts +1 -1
- package/dist/tools/convention/analyzeComplexity.d.ts.map +1 -1
- package/dist/tools/convention/analyzeComplexity.js +1 -1
- package/dist/tools/convention/analyzeComplexity.js.map +1 -1
- package/dist/tools/convention/applyQualityRules.d.ts +1 -1
- package/dist/tools/convention/applyQualityRules.d.ts.map +1 -1
- package/dist/tools/convention/checkCouplingCohesion.d.ts +1 -1
- package/dist/tools/convention/checkCouplingCohesion.d.ts.map +1 -1
- package/dist/tools/convention/suggestImprovements.d.ts +1 -1
- package/dist/tools/convention/suggestImprovements.d.ts.map +1 -1
- package/dist/tools/convention/validateCodeQuality.d.ts +1 -1
- package/dist/tools/convention/validateCodeQuality.d.ts.map +1 -1
- package/dist/tools/evolution/dashboardTools.d.ts +26 -0
- package/dist/tools/evolution/dashboardTools.d.ts.map +1 -0
- package/dist/tools/evolution/dashboardTools.js +216 -0
- package/dist/tools/evolution/dashboardTools.js.map +1 -0
- package/dist/tools/evolution/index.d.ts +3 -0
- package/dist/tools/evolution/index.d.ts.map +1 -0
- package/dist/tools/evolution/index.js +6 -0
- package/dist/tools/evolution/index.js.map +1 -0
- package/dist/tools/evolution/insightTools.d.ts +21 -0
- package/dist/tools/evolution/insightTools.d.ts.map +1 -0
- package/dist/tools/evolution/insightTools.js +184 -0
- package/dist/tools/evolution/insightTools.js.map +1 -0
- package/dist/tools/index.d.ts +31 -21
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +38 -26
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/interaction/askUser.d.ts +2 -2
- package/dist/tools/interaction/askUser.d.ts.map +1 -1
- package/dist/tools/interaction/askUser.js +1 -1
- package/dist/tools/memory/addObservation.d.ts +2 -2
- package/dist/tools/memory/addObservation.d.ts.map +1 -1
- package/dist/tools/memory/addObservation.js +1 -1
- package/dist/tools/memory/addObservation.js.map +1 -1
- package/dist/tools/memory/autoSaveContext.d.ts +1 -1
- package/dist/tools/memory/autoSaveContext.d.ts.map +1 -1
- package/dist/tools/memory/autoSaveContext.js +2 -2
- package/dist/tools/memory/autoSaveContext.js.map +1 -1
- package/dist/tools/memory/createMemoryTimeline.d.ts +1 -1
- package/dist/tools/memory/createMemoryTimeline.d.ts.map +1 -1
- package/dist/tools/memory/createMemoryTimeline.js +11 -11
- package/dist/tools/memory/createMemoryTimeline.js.map +1 -1
- package/dist/tools/memory/deleteMemory.d.ts +1 -1
- package/dist/tools/memory/deleteMemory.d.ts.map +1 -1
- package/dist/tools/memory/deleteMemory.js +1 -1
- package/dist/tools/memory/deleteMemory.js.map +1 -1
- package/dist/tools/memory/getMemoryGraph.d.ts +1 -1
- package/dist/tools/memory/getMemoryGraph.d.ts.map +1 -1
- package/dist/tools/memory/getMemoryGraph.js +13 -13
- package/dist/tools/memory/getMemoryGraph.js.map +1 -1
- package/dist/tools/memory/getSessionContext.d.ts +1 -1
- package/dist/tools/memory/getSessionContext.d.ts.map +1 -1
- package/dist/tools/memory/getSessionContext.js +10 -10
- package/dist/tools/memory/getSessionContext.js.map +1 -1
- package/dist/tools/memory/index.d.ts +1 -0
- package/dist/tools/memory/index.d.ts.map +1 -1
- package/dist/tools/memory/index.js +2 -0
- package/dist/tools/memory/index.js.map +1 -1
- package/dist/tools/memory/linkMemories.d.ts +1 -1
- package/dist/tools/memory/linkMemories.d.ts.map +1 -1
- package/dist/tools/memory/linkMemories.js +15 -15
- package/dist/tools/memory/linkMemories.js.map +1 -1
- package/dist/tools/memory/listMemories.d.ts +1 -1
- package/dist/tools/memory/listMemories.d.ts.map +1 -1
- package/dist/tools/memory/listMemories.js +5 -5
- package/dist/tools/memory/listMemories.js.map +1 -1
- package/dist/tools/memory/manageGoals.d.ts +2 -2
- package/dist/tools/memory/manageGoals.d.ts.map +1 -1
- package/dist/tools/memory/manageGoals.js +1 -1
- package/dist/tools/memory/manageGoals.js.map +1 -1
- package/dist/tools/memory/prioritizeMemory.d.ts +1 -1
- package/dist/tools/memory/prioritizeMemory.d.ts.map +1 -1
- package/dist/tools/memory/prioritizeMemory.js +1 -1
- package/dist/tools/memory/prioritizeMemory.js.map +1 -1
- package/dist/tools/memory/recallMemory.d.ts +1 -1
- package/dist/tools/memory/recallMemory.d.ts.map +1 -1
- package/dist/tools/memory/recallMemory.js +5 -5
- package/dist/tools/memory/recallMemory.js.map +1 -1
- package/dist/tools/memory/reflectionTools.d.ts +27 -0
- package/dist/tools/memory/reflectionTools.d.ts.map +1 -0
- package/dist/tools/memory/reflectionTools.js +180 -0
- package/dist/tools/memory/reflectionTools.js.map +1 -0
- package/dist/tools/memory/restoreSessionContext.d.ts +1 -1
- package/dist/tools/memory/restoreSessionContext.d.ts.map +1 -1
- package/dist/tools/memory/restoreSessionContext.js +1 -1
- package/dist/tools/memory/restoreSessionContext.js.map +1 -1
- package/dist/tools/memory/retrieveSessionContext.d.ts +1 -1
- package/dist/tools/memory/retrieveSessionContext.d.ts.map +1 -1
- package/dist/tools/memory/retrieveSessionContext.js +1 -1
- package/dist/tools/memory/retrieveSessionContext.js.map +1 -1
- package/dist/tools/memory/saveMemory.d.ts +1 -1
- package/dist/tools/memory/saveMemory.d.ts.map +1 -1
- package/dist/tools/memory/saveMemory.js +5 -5
- package/dist/tools/memory/saveMemory.js.map +1 -1
- package/dist/tools/memory/saveSessionItem.d.ts +1 -1
- package/dist/tools/memory/saveSessionItem.d.ts.map +1 -1
- package/dist/tools/memory/saveSessionItem.js +1 -1
- package/dist/tools/memory/saveSessionItem.js.map +1 -1
- package/dist/tools/memory/searchMemories.d.ts +1 -1
- package/dist/tools/memory/searchMemories.d.ts.map +1 -1
- package/dist/tools/memory/searchMemories.js +1 -1
- package/dist/tools/memory/searchMemories.js.map +1 -1
- package/dist/tools/memory/searchMemoriesAdvanced.d.ts +1 -1
- package/dist/tools/memory/searchMemoriesAdvanced.d.ts.map +1 -1
- package/dist/tools/memory/searchMemoriesAdvanced.js +24 -24
- package/dist/tools/memory/searchMemoriesAdvanced.js.map +1 -1
- package/dist/tools/memory/searchObservations.d.ts +2 -2
- package/dist/tools/memory/searchObservations.d.ts.map +1 -1
- package/dist/tools/memory/searchObservations.js +1 -1
- package/dist/tools/memory/searchObservations.js.map +1 -1
- package/dist/tools/memory/startSession.d.ts +1 -1
- package/dist/tools/memory/startSession.d.ts.map +1 -1
- package/dist/tools/memory/startSession.js +28 -6
- package/dist/tools/memory/startSession.js.map +1 -1
- package/dist/tools/memory/updateMemory.d.ts +1 -1
- package/dist/tools/memory/updateMemory.d.ts.map +1 -1
- package/dist/tools/memory/updateMemory.js +1 -1
- package/dist/tools/memory/updateMemory.js.map +1 -1
- package/dist/tools/semantic/analyzeDependencyGraph.d.ts +1 -1
- package/dist/tools/semantic/analyzeDependencyGraph.d.ts.map +1 -1
- package/dist/tools/semantic/analyzeDependencyGraph.js +13 -13
- package/dist/tools/semantic/analyzeDependencyGraph.js.map +1 -1
- package/dist/tools/semantic/astGrep.d.ts +23 -0
- package/dist/tools/semantic/astGrep.d.ts.map +1 -0
- package/dist/tools/semantic/astGrep.js +298 -0
- package/dist/tools/semantic/astGrep.js.map +1 -0
- package/dist/tools/semantic/astGrep.test.d.ts +2 -0
- package/dist/tools/semantic/astGrep.test.d.ts.map +1 -0
- package/dist/tools/semantic/astGrep.test.js +66 -0
- package/dist/tools/semantic/astGrep.test.js.map +1 -0
- package/dist/tools/semantic/findReferences.d.ts +1 -1
- package/dist/tools/semantic/findReferences.d.ts.map +1 -1
- package/dist/tools/semantic/findReferences.js +2 -2
- package/dist/tools/semantic/findReferences.js.map +1 -1
- package/dist/tools/semantic/findSymbol.d.ts +1 -1
- package/dist/tools/semantic/findSymbol.d.ts.map +1 -1
- package/dist/tools/semantic/findSymbol.js +3 -3
- package/dist/tools/semantic/findSymbol.js.map +1 -1
- package/dist/tools/semantic/index.d.ts +2 -0
- package/dist/tools/semantic/index.d.ts.map +1 -1
- package/dist/tools/semantic/index.js +4 -0
- package/dist/tools/semantic/index.js.map +1 -1
- package/dist/tools/semantic/lsp.d.ts +68 -0
- package/dist/tools/semantic/lsp.d.ts.map +1 -0
- package/dist/tools/semantic/lsp.js +553 -0
- package/dist/tools/semantic/lsp.js.map +1 -0
- package/dist/tools/spec/e2eTestGenerator.d.ts +0 -1
- package/dist/tools/spec/e2eTestGenerator.d.ts.map +1 -1
- package/dist/tools/spec/e2eTestGenerator.js +0 -1
- package/dist/tools/spec/e2eTestGenerator.js.map +1 -1
- package/dist/tools/spec/prdParser.d.ts +0 -1
- package/dist/tools/spec/prdParser.d.ts.map +1 -1
- package/dist/tools/spec/prdParser.js +8 -6
- package/dist/tools/spec/prdParser.js.map +1 -1
- package/dist/tools/spec/requirementId.d.ts +0 -1
- package/dist/tools/spec/requirementId.d.ts.map +1 -1
- package/dist/tools/spec/requirementId.js +0 -1
- package/dist/tools/spec/requirementId.js.map +1 -1
- package/dist/tools/spec/specGenerator.d.ts +0 -1
- package/dist/tools/spec/specGenerator.d.ts.map +1 -1
- package/dist/tools/spec/specGenerator.js +0 -1
- package/dist/tools/spec/specGenerator.js.map +1 -1
- package/dist/tools/spec/specVersioning.d.ts +0 -1
- package/dist/tools/spec/specVersioning.d.ts.map +1 -1
- package/dist/tools/spec/specVersioning.js +0 -1
- package/dist/tools/spec/specVersioning.js.map +1 -1
- package/dist/tools/spec/traceabilityMatrix.d.ts +0 -1
- package/dist/tools/spec/traceabilityMatrix.d.ts.map +1 -1
- package/dist/tools/spec/traceabilityMatrix.js +12 -7
- package/dist/tools/spec/traceabilityMatrix.js.map +1 -1
- package/dist/tools/time/getCurrentTime.d.ts +2 -2
- package/dist/tools/time/getCurrentTime.d.ts.map +1 -1
- package/dist/tools/time/getCurrentTime.js +1 -9
- package/dist/tools/time/getCurrentTime.js.map +1 -1
- package/dist/tools/ui/generateDesignSystem.d.ts +7 -0
- package/dist/tools/ui/generateDesignSystem.d.ts.map +1 -0
- package/dist/tools/ui/generateDesignSystem.js +70 -0
- package/dist/tools/ui/generateDesignSystem.js.map +1 -0
- package/dist/tools/ui/index.d.ts +5 -1
- package/dist/tools/ui/index.d.ts.map +1 -1
- package/dist/tools/ui/index.js +5 -1
- package/dist/tools/ui/index.js.map +1 -1
- package/dist/tools/ui/persistDesignSystem.d.ts +8 -0
- package/dist/tools/ui/persistDesignSystem.d.ts.map +1 -0
- package/dist/tools/ui/persistDesignSystem.js +77 -0
- package/dist/tools/ui/persistDesignSystem.js.map +1 -0
- package/dist/tools/ui/previewUiAscii.d.ts +1 -1
- package/dist/tools/ui/previewUiAscii.d.ts.map +1 -1
- package/dist/tools/ui/searchUiUx.d.ts +8 -0
- package/dist/tools/ui/searchUiUx.d.ts.map +1 -0
- package/dist/tools/ui/searchUiUx.js +82 -0
- package/dist/tools/ui/searchUiUx.js.map +1 -0
- package/dist/tools/ui/searchUiUxStack.d.ts +8 -0
- package/dist/tools/ui/searchUiUxStack.d.ts.map +1 -0
- package/dist/tools/ui/searchUiUxStack.js +83 -0
- package/dist/tools/ui/searchUiUxStack.js.map +1 -0
- package/hooks/hooks.json +32 -10
- package/hooks/scripts/__tests__/skill-injector.test.js +234 -0
- package/hooks/scripts/autonomy-controller.js +101 -0
- package/hooks/scripts/context-save.js +152 -5
- package/hooks/scripts/evolution-engine.js +101 -0
- package/hooks/scripts/keyword-detector.js +1 -1
- package/hooks/scripts/llm-orchestrate.js +224 -37
- package/hooks/scripts/post-edit.js +2 -45
- package/hooks/scripts/post-tool-verify.js +1 -1
- package/hooks/scripts/pre-tool-guard.js +1 -1
- package/hooks/scripts/prompt-dispatcher.js +56 -1
- package/hooks/scripts/sentinel-guard.js +104 -0
- package/hooks/scripts/session-start.js +76 -0
- package/hooks/scripts/skill-injector.js +546 -83
- package/hooks/scripts/skill-requirements.js +83 -0
- package/hooks/scripts/stop-notify.js +207 -0
- package/hooks/scripts/utils.js +8 -8
- package/package.json +55 -18
- package/skills/brand-assets/SKILL.md +138 -0
- package/skills/commit-push-pr/SKILL.md +118 -0
- package/skills/context7-usage/SKILL.md +105 -0
- package/skills/core-capabilities/SKILL.md +164 -0
- package/skills/git-worktree/SKILL.md +184 -0
- package/skills/handoff/SKILL.md +101 -0
- package/skills/parallel-research/SKILL.md +80 -0
- package/skills/priority-todos/SKILL.md +242 -0
- package/skills/techdebt/SKILL.md +122 -0
- package/skills/tool-fallback/SKILL.md +193 -0
- package/skills/typescript-advanced-types/SKILL.md +720 -0
- package/skills/ui-ux-pro-max/SKILL.md +386 -0
- package/skills/vercel-react-best-practices/SKILL.md +304 -0
- package/vibe/config.json +29 -29
- package/vibe/constitution.md +3 -3
- package/vibe/rules/quality/bdd-contract-testing.md +6 -6
- package/vibe/rules/quality/performance.md +236 -0
- package/vibe/rules/standards/git-workflow.md +237 -0
- package/vibe/rules/standards/security.md +305 -0
- package/vibe/rules/writing/document-style.md +74 -0
- package/vibe/setup.sh +6 -6
- package/vibe/templates/constitution-template.md +3 -3
- package/vibe/ui-ux-data/charts.csv +26 -0
- package/vibe/ui-ux-data/colors.csv +97 -0
- package/vibe/ui-ux-data/icons.csv +101 -0
- package/vibe/ui-ux-data/landing.csv +31 -0
- package/vibe/ui-ux-data/products.csv +97 -0
- package/vibe/ui-ux-data/react-performance.csv +45 -0
- package/vibe/ui-ux-data/stacks/astro.csv +54 -0
- package/vibe/ui-ux-data/stacks/flutter.csv +53 -0
- package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -0
- package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -0
- package/vibe/ui-ux-data/stacks/nextjs.csv +53 -0
- package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -0
- package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -0
- package/vibe/ui-ux-data/stacks/react-native.csv +52 -0
- package/vibe/ui-ux-data/stacks/react.csv +54 -0
- package/vibe/ui-ux-data/stacks/shadcn.csv +61 -0
- package/vibe/ui-ux-data/stacks/svelte.csv +54 -0
- package/vibe/ui-ux-data/stacks/swiftui.csv +51 -0
- package/vibe/ui-ux-data/stacks/vue.csv +50 -0
- package/vibe/ui-ux-data/styles.csv +68 -0
- package/vibe/ui-ux-data/typography.csv +58 -0
- package/vibe/ui-ux-data/ui-reasoning.csv +101 -0
- package/vibe/ui-ux-data/ux-guidelines.csv +100 -0
- package/vibe/ui-ux-data/version.json +31 -0
- package/vibe/ui-ux-data/web-interface.csv +31 -0
- package/dist/cli/hud.d.ts +0 -33
- package/dist/cli/hud.d.ts.map +0 -1
- package/dist/cli/hud.js +0 -247
- package/dist/cli/hud.js.map +0 -1
- package/dist/lib/ContextCompressor.d.ts.map +0 -1
- package/dist/lib/ContextCompressor.js +0 -306
- package/dist/lib/ContextCompressor.js.map +0 -1
- package/dist/lib/DeepInit.d.ts.map +0 -1
- package/dist/lib/DeepInit.js.map +0 -1
- package/dist/lib/FrameworkDetector.d.ts.map +0 -1
- package/dist/lib/FrameworkDetector.js.map +0 -1
- package/dist/lib/IterationTracker.d.ts +0 -81
- package/dist/lib/IterationTracker.d.ts.map +0 -1
- package/dist/lib/IterationTracker.js.map +0 -1
- package/dist/lib/MemoryManager.d.ts +0 -86
- package/dist/lib/MemoryManager.d.ts.map +0 -1
- package/dist/lib/MemoryManager.js +0 -287
- package/dist/lib/MemoryManager.js.map +0 -1
- package/dist/lib/ModelRouter.d.ts.map +0 -1
- package/dist/lib/ModelRouter.js.map +0 -1
- package/dist/lib/OrchestrateWorkflow.d.ts.map +0 -1
- package/dist/lib/OrchestrateWorkflow.js.map +0 -1
- package/dist/lib/ProgressTracker.d.ts.map +0 -1
- package/dist/lib/ProgressTracker.js +0 -267
- package/dist/lib/ProgressTracker.js.map +0 -1
- package/dist/lib/ProjectCache.d.ts.map +0 -1
- package/dist/lib/ProjectCache.js.map +0 -1
- package/dist/lib/PythonParser.d.ts.map +0 -1
- package/dist/lib/PythonParser.js +0 -269
- package/dist/lib/PythonParser.js.map +0 -1
- package/dist/lib/ReviewRace.d.ts.map +0 -1
- package/dist/lib/ReviewRace.js +0 -446
- package/dist/lib/ReviewRace.js.map +0 -1
- package/dist/lib/RuleBuildSystem.d.ts +0 -117
- package/dist/lib/RuleBuildSystem.d.ts.map +0 -1
- package/dist/lib/RuleBuildSystem.js +0 -402
- package/dist/lib/RuleBuildSystem.js.map +0 -1
- package/dist/lib/SkillFrontmatter.d.ts +0 -62
- package/dist/lib/SkillFrontmatter.d.ts.map +0 -1
- package/dist/lib/SkillFrontmatter.js.map +0 -1
- package/dist/lib/SkillQualityGate.d.ts.map +0 -1
- package/dist/lib/SkillQualityGate.js.map +0 -1
- package/dist/lib/SkillRepository.d.ts.map +0 -1
- package/dist/lib/SkillRepository.js +0 -477
- package/dist/lib/SkillRepository.js.map +0 -1
- package/dist/lib/UltraQA.d.ts +0 -68
- package/dist/lib/UltraQA.d.ts.map +0 -1
- package/dist/lib/UltraQA.js +0 -232
- package/dist/lib/UltraQA.js.map +0 -1
- package/dist/lib/constants.d.ts +0 -45
- package/dist/lib/constants.d.ts.map +0 -1
- package/dist/lib/constants.js +0 -62
- package/dist/lib/constants.js.map +0 -1
- package/dist/lib/gemini-api.d.ts +0 -128
- package/dist/lib/gemini-api.d.ts.map +0 -1
- package/dist/lib/gemini-api.js +0 -662
- package/dist/lib/gemini-api.js.map +0 -1
- package/dist/lib/gemini-constants.d.ts +0 -19
- package/dist/lib/gemini-constants.d.ts.map +0 -1
- package/dist/lib/gemini-constants.js +0 -34
- package/dist/lib/gemini-constants.js.map +0 -1
- package/dist/lib/gemini-oauth.d.ts +0 -52
- package/dist/lib/gemini-oauth.d.ts.map +0 -1
- package/dist/lib/gemini-oauth.js +0 -363
- package/dist/lib/gemini-oauth.js.map +0 -1
- package/dist/lib/gemini-storage.d.ts +0 -64
- package/dist/lib/gemini-storage.d.ts.map +0 -1
- package/dist/lib/gemini-storage.js +0 -177
- package/dist/lib/gemini-storage.js.map +0 -1
- package/dist/lib/gpt-api.d.ts +0 -106
- package/dist/lib/gpt-api.d.ts.map +0 -1
- package/dist/lib/gpt-api.js +0 -556
- package/dist/lib/gpt-api.js.map +0 -1
- package/dist/lib/gpt-constants.d.ts +0 -12
- package/dist/lib/gpt-constants.d.ts.map +0 -1
- package/dist/lib/gpt-constants.js +0 -18
- package/dist/lib/gpt-constants.js.map +0 -1
- package/dist/lib/gpt-oauth.d.ts.map +0 -1
- package/dist/lib/gpt-oauth.js +0 -373
- package/dist/lib/gpt-oauth.js.map +0 -1
- package/dist/lib/gpt-storage.d.ts +0 -64
- package/dist/lib/gpt-storage.d.ts.map +0 -1
- package/dist/lib/gpt-storage.js +0 -180
- package/dist/lib/gpt-storage.js.map +0 -1
- package/dist/lib/llm/auth/ApiKeyManager.d.ts.map +0 -1
- package/dist/lib/llm/auth/ApiKeyManager.js.map +0 -1
- package/dist/lib/llm/auth/ConfigManager.d.ts +0 -29
- package/dist/lib/llm/auth/ConfigManager.d.ts.map +0 -1
- package/dist/lib/llm/auth/ConfigManager.js +0 -67
- package/dist/lib/llm/auth/ConfigManager.js.map +0 -1
- package/dist/lib/llm/auth/index.d.ts +0 -25
- package/dist/lib/llm/auth/index.d.ts.map +0 -1
- package/dist/lib/llm/auth/index.js +0 -83
- package/dist/lib/llm/auth/index.js.map +0 -1
- package/dist/lib/llm/index.d.ts.map +0 -1
- package/dist/lib/llm/index.js.map +0 -1
- package/dist/lib/llm/types.d.ts.map +0 -1
- package/dist/lib/llm/types.js.map +0 -1
- package/dist/lib/llm/utils/index.d.ts.map +0 -1
- package/dist/lib/llm/utils/index.js.map +0 -1
- package/dist/lib/llm/utils/retry.d.ts.map +0 -1
- package/dist/lib/llm/utils/retry.js.map +0 -1
- package/dist/lib/llm/utils/stream.d.ts.map +0 -1
- package/dist/lib/llm/utils/stream.js.map +0 -1
- package/dist/lib/memory/KnowledgeGraph.d.ts.map +0 -1
- package/dist/lib/memory/KnowledgeGraph.js.map +0 -1
- package/dist/lib/memory/KnowledgeGraph.test.d.ts.map +0 -1
- package/dist/lib/memory/KnowledgeGraph.test.js +0 -189
- package/dist/lib/memory/KnowledgeGraph.test.js.map +0 -1
- package/dist/lib/memory/MemorySearch.d.ts +0 -27
- package/dist/lib/memory/MemorySearch.d.ts.map +0 -1
- package/dist/lib/memory/MemorySearch.js +0 -145
- package/dist/lib/memory/MemorySearch.js.map +0 -1
- package/dist/lib/memory/MemorySearch.test.d.ts.map +0 -1
- package/dist/lib/memory/MemorySearch.test.js +0 -149
- package/dist/lib/memory/MemorySearch.test.js.map +0 -1
- package/dist/lib/memory/MemoryStorage.d.ts +0 -88
- package/dist/lib/memory/MemoryStorage.d.ts.map +0 -1
- package/dist/lib/memory/MemoryStorage.js +0 -404
- package/dist/lib/memory/MemoryStorage.js.map +0 -1
- package/dist/lib/memory/MemoryStorage.test.d.ts.map +0 -1
- package/dist/lib/memory/MemoryStorage.test.js +0 -198
- package/dist/lib/memory/MemoryStorage.test.js.map +0 -1
- package/dist/lib/memory/ObservationStore.d.ts.map +0 -1
- package/dist/lib/memory/ObservationStore.js.map +0 -1
- package/dist/lib/memory/SessionRAGRetriever.d.ts +0 -66
- package/dist/lib/memory/SessionRAGRetriever.d.ts.map +0 -1
- package/dist/lib/memory/SessionRAGRetriever.js +0 -196
- package/dist/lib/memory/SessionRAGRetriever.js.map +0 -1
- package/dist/lib/memory/SessionRAGRetriever.test.d.ts.map +0 -1
- package/dist/lib/memory/SessionRAGRetriever.test.js +0 -180
- package/dist/lib/memory/SessionRAGRetriever.test.js.map +0 -1
- package/dist/lib/memory/SessionRAGStore.d.ts +0 -153
- package/dist/lib/memory/SessionRAGStore.d.ts.map +0 -1
- package/dist/lib/memory/SessionRAGStore.js +0 -673
- package/dist/lib/memory/SessionRAGStore.js.map +0 -1
- package/dist/lib/memory/SessionRAGStore.test.d.ts.map +0 -1
- package/dist/lib/memory/SessionRAGStore.test.js +0 -326
- package/dist/lib/memory/SessionRAGStore.test.js.map +0 -1
- package/dist/lib/memory/SessionSummarizer.d.ts.map +0 -1
- package/dist/lib/memory/SessionSummarizer.js.map +0 -1
- package/dist/lib/memory/index.d.ts +0 -5
- package/dist/lib/memory/index.d.ts.map +0 -1
- package/dist/lib/memory/index.js +0 -9
- package/dist/lib/memory/index.js.map +0 -1
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js.map +0 -1
- package/dist/orchestrator/AgentExecutor.d.ts +0 -23
- package/dist/orchestrator/AgentExecutor.d.ts.map +0 -1
- package/dist/orchestrator/AgentExecutor.js +0 -231
- package/dist/orchestrator/AgentExecutor.js.map +0 -1
- package/dist/orchestrator/AgentManager.d.ts +0 -73
- package/dist/orchestrator/AgentManager.d.ts.map +0 -1
- package/dist/orchestrator/AgentManager.js +0 -184
- package/dist/orchestrator/AgentManager.js.map +0 -1
- package/dist/orchestrator/BackgroundManager.d.ts +0 -109
- package/dist/orchestrator/BackgroundManager.d.ts.map +0 -1
- package/dist/orchestrator/BackgroundManager.js +0 -456
- package/dist/orchestrator/BackgroundManager.js.map +0 -1
- package/dist/orchestrator/BackgroundManager.test.d.ts.map +0 -1
- package/dist/orchestrator/BackgroundManager.test.js.map +0 -1
- package/dist/orchestrator/LLMCluster.d.ts +0 -70
- package/dist/orchestrator/LLMCluster.d.ts.map +0 -1
- package/dist/orchestrator/LLMCluster.js +0 -91
- package/dist/orchestrator/LLMCluster.js.map +0 -1
- package/dist/orchestrator/MultiLlmResearch.d.ts +0 -27
- package/dist/orchestrator/MultiLlmResearch.d.ts.map +0 -1
- package/dist/orchestrator/MultiLlmResearch.js +0 -145
- package/dist/orchestrator/MultiLlmResearch.js.map +0 -1
- package/dist/orchestrator/PhasePipeline.d.ts +0 -108
- package/dist/orchestrator/PhasePipeline.d.ts.map +0 -1
- package/dist/orchestrator/PhasePipeline.js +0 -313
- package/dist/orchestrator/PhasePipeline.js.map +0 -1
- package/dist/orchestrator/SessionStore.d.ts +0 -41
- package/dist/orchestrator/SessionStore.d.ts.map +0 -1
- package/dist/orchestrator/SessionStore.js +0 -117
- package/dist/orchestrator/SessionStore.js.map +0 -1
- package/dist/orchestrator/SmartRouter.d.ts +0 -68
- package/dist/orchestrator/SmartRouter.d.ts.map +0 -1
- package/dist/orchestrator/SmartRouter.js +0 -256
- package/dist/orchestrator/SmartRouter.js.map +0 -1
- package/dist/orchestrator/SwarmOrchestrator.d.ts +0 -144
- package/dist/orchestrator/SwarmOrchestrator.d.ts.map +0 -1
- package/dist/orchestrator/SwarmOrchestrator.js +0 -361
- package/dist/orchestrator/SwarmOrchestrator.js.map +0 -1
- package/dist/orchestrator/SwarmOrchestrator.test.d.ts.map +0 -1
- package/dist/orchestrator/SwarmOrchestrator.test.js.map +0 -1
- package/dist/orchestrator/agentDiscovery.d.ts.map +0 -1
- package/dist/orchestrator/agentDiscovery.js.map +0 -1
- package/dist/orchestrator/backgroundAgent.d.ts +0 -15
- package/dist/orchestrator/backgroundAgent.d.ts.map +0 -1
- package/dist/orchestrator/backgroundAgent.js +0 -16
- package/dist/orchestrator/backgroundAgent.js.map +0 -1
- package/dist/orchestrator/index.d.ts +0 -179
- package/dist/orchestrator/index.d.ts.map +0 -1
- package/dist/orchestrator/index.js +0 -335
- package/dist/orchestrator/index.js.map +0 -1
- package/dist/orchestrator/orchestrator.d.ts +0 -63
- package/dist/orchestrator/orchestrator.d.ts.map +0 -1
- package/dist/orchestrator/orchestrator.js +0 -212
- package/dist/orchestrator/orchestrator.js.map +0 -1
- package/dist/orchestrator/parallelResearch.d.ts +0 -30
- package/dist/orchestrator/parallelResearch.d.ts.map +0 -1
- package/dist/orchestrator/parallelResearch.js +0 -247
- package/dist/orchestrator/parallelResearch.js.map +0 -1
- package/dist/orchestrator/types.d.ts +0 -170
- package/dist/orchestrator/types.d.ts.map +0 -1
- package/dist/orchestrator/types.js +0 -14
- package/dist/orchestrator/types.js.map +0 -1
- package/dist/types/tool.d.ts.map +0 -1
- package/dist/types/tool.js.map +0 -1
- package/skills/brand-assets.md +0 -137
- package/skills/context7-usage.md +0 -102
- package/skills/git-worktree.md +0 -181
- package/skills/parallel-research.md +0 -77
- package/skills/priority-todos.md +0 -239
- package/skills/tool-fallback.md +0 -190
- package/skills/vibe-capabilities.md +0 -161
- /package/dist/{lib → infra/lib}/ContextCompressor.d.ts +0 -0
- /package/dist/{lib → infra/lib}/DeepInit.d.ts +0 -0
- /package/dist/{lib → infra/lib}/DeepInit.js +0 -0
- /package/dist/{lib → infra/lib}/FrameworkDetector.d.ts +0 -0
- /package/dist/{lib → infra/lib}/FrameworkDetector.js +0 -0
- /package/dist/{lib → infra/lib}/IterationTracker.js +0 -0
- /package/dist/{lib → infra/lib}/ModelRouter.d.ts +0 -0
- /package/dist/{lib → infra/lib}/ModelRouter.js +0 -0
- /package/dist/{lib → infra/lib}/OrchestrateWorkflow.d.ts +0 -0
- /package/dist/{lib → infra/lib}/OrchestrateWorkflow.js +0 -0
- /package/dist/{lib → infra/lib}/ProgressTracker.d.ts +0 -0
- /package/dist/{lib → infra/lib}/ProjectCache.d.ts +0 -0
- /package/dist/{lib → infra/lib}/ProjectCache.js +0 -0
- /package/dist/{lib → infra/lib}/PythonParser.d.ts +0 -0
- /package/dist/{lib → infra/lib}/ReviewRace.d.ts +0 -0
- /package/dist/{lib → infra/lib}/SkillFrontmatter.js +0 -0
- /package/dist/{lib → infra/lib}/SkillQualityGate.d.ts +0 -0
- /package/dist/{lib → infra/lib}/SkillQualityGate.js +0 -0
- /package/dist/{lib → infra/lib}/SkillRepository.d.ts +0 -0
- /package/dist/{lib → infra/lib}/gpt-oauth.d.ts +0 -0
- /package/dist/{lib → infra/lib}/llm/auth/ApiKeyManager.d.ts +0 -0
- /package/dist/{lib → infra/lib}/llm/auth/ApiKeyManager.js +0 -0
- /package/dist/{lib → infra/lib}/llm/index.d.ts +0 -0
- /package/dist/{lib → infra/lib}/llm/index.js +0 -0
- /package/dist/{lib → infra/lib}/llm/types.d.ts +0 -0
- /package/dist/{lib → infra/lib}/llm/types.js +0 -0
- /package/dist/{lib → infra/lib}/llm/utils/index.d.ts +0 -0
- /package/dist/{lib → infra/lib}/llm/utils/index.js +0 -0
- /package/dist/{lib → infra/lib}/llm/utils/retry.d.ts +0 -0
- /package/dist/{lib → infra/lib}/llm/utils/retry.js +0 -0
- /package/dist/{lib → infra/lib}/llm/utils/stream.d.ts +0 -0
- /package/dist/{lib → infra/lib}/llm/utils/stream.js +0 -0
- /package/dist/{lib → infra/lib}/memory/KnowledgeGraph.d.ts +0 -0
- /package/dist/{lib → infra/lib}/memory/KnowledgeGraph.js +0 -0
- /package/dist/{lib → infra/lib}/memory/KnowledgeGraph.test.d.ts +0 -0
- /package/dist/{lib → infra/lib}/memory/MemorySearch.test.d.ts +0 -0
- /package/dist/{lib → infra/lib}/memory/MemoryStorage.test.d.ts +0 -0
- /package/dist/{lib → infra/lib}/memory/ObservationStore.d.ts +0 -0
- /package/dist/{lib → infra/lib}/memory/ObservationStore.js +0 -0
- /package/dist/{lib → infra/lib}/memory/SessionRAGRetriever.test.d.ts +0 -0
- /package/dist/{lib → infra/lib}/memory/SessionRAGStore.test.d.ts +0 -0
- /package/dist/{lib → infra/lib}/memory/SessionSummarizer.d.ts +0 -0
- /package/dist/{lib → infra/lib}/memory/SessionSummarizer.js +0 -0
- /package/dist/{lib → infra/lib}/utils.d.ts +0 -0
- /package/dist/{lib → infra/lib}/utils.js +0 -0
- /package/dist/{orchestrator → infra/orchestrator}/BackgroundManager.test.d.ts +0 -0
- /package/dist/{orchestrator → infra/orchestrator}/BackgroundManager.test.js +0 -0
- /package/dist/{orchestrator → infra/orchestrator}/SwarmOrchestrator.test.d.ts +0 -0
- /package/dist/{orchestrator → infra/orchestrator}/SwarmOrchestrator.test.js +0 -0
- /package/dist/{orchestrator → infra/orchestrator}/agentDiscovery.d.ts +0 -0
- /package/dist/{orchestrator → infra/orchestrator}/agentDiscovery.js +0 -0
- /package/dist/{types → infra/types}/tool.d.ts +0 -0
- /package/dist/{types → infra/types}/tool.js +0 -0
- /package/skills/{commerce-patterns.md → commerce-patterns/SKILL.md} +0 -0
- /package/skills/{e2e-commerce.md → e2e-commerce/SKILL.md} +0 -0
- /package/skills/{frontend-design.md → frontend-design/SKILL.md} +0 -0
- /package/skills/{seo-checklist.md → seo-checklist/SKILL.md} +0 -0
- /package/vibe/rules/{core → principles}/communication-guide.md +0 -0
- /package/vibe/rules/{core → principles}/development-philosophy.md +0 -0
- /package/vibe/rules/{core → principles}/quick-start.md +0 -0
package/dist/cli/postinstall.js
CHANGED
|
@@ -1,1577 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* postinstall 스크립트
|
|
4
|
-
* npm install -g @su-record/vibe 시 전역 설정 폴더 생성
|
|
3
|
+
* postinstall 스크립트 (re-export)
|
|
5
4
|
*/
|
|
6
|
-
import path from 'path';
|
|
7
|
-
import fs from 'fs';
|
|
8
|
-
import os from 'os';
|
|
9
|
-
import { fileURLToPath } from 'url';
|
|
10
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
11
|
-
const __dirname = path.dirname(__filename);
|
|
12
|
-
/**
|
|
13
|
-
* 전역 vibe 설정 디렉토리 경로
|
|
14
|
-
*/
|
|
15
|
-
function getVibeConfigDir() {
|
|
16
|
-
if (process.platform === 'win32') {
|
|
17
|
-
return path.join(process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming'), 'vibe');
|
|
18
|
-
}
|
|
19
|
-
return path.join(os.homedir(), '.config', 'vibe');
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* 디렉토리 생성 (재귀)
|
|
23
|
-
*/
|
|
24
|
-
function ensureDir(dir) {
|
|
25
|
-
if (!fs.existsSync(dir)) {
|
|
26
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* 디렉토리 복사 (재귀)
|
|
31
|
-
*/
|
|
32
|
-
function copyDirRecursive(src, dest) {
|
|
33
|
-
ensureDir(dest);
|
|
34
|
-
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
35
|
-
for (const entry of entries) {
|
|
36
|
-
const srcPath = path.join(src, entry.name);
|
|
37
|
-
const destPath = path.join(dest, entry.name);
|
|
38
|
-
if (entry.isDirectory()) {
|
|
39
|
-
copyDirRecursive(srcPath, destPath);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
fs.copyFileSync(srcPath, destPath);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* 디렉토리 삭제 (재귀)
|
|
48
|
-
*/
|
|
49
|
-
function removeDirRecursive(dir) {
|
|
50
|
-
if (fs.existsSync(dir)) {
|
|
51
|
-
fs.rmSync(dir, { recursive: true, force: true });
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* 스킬 복사 (이미 존재하는 파일은 건너뜀 - 유저 수정 보존)
|
|
56
|
-
*/
|
|
57
|
-
function copySkillsIfMissing(src, dest) {
|
|
58
|
-
ensureDir(dest);
|
|
59
|
-
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
60
|
-
for (const entry of entries) {
|
|
61
|
-
const srcPath = path.join(src, entry.name);
|
|
62
|
-
const destPath = path.join(dest, entry.name);
|
|
63
|
-
if (entry.isDirectory()) {
|
|
64
|
-
copySkillsIfMissing(srcPath, destPath);
|
|
65
|
-
}
|
|
66
|
-
else if (!fs.existsSync(destPath)) {
|
|
67
|
-
// 파일이 없을 때만 복사
|
|
68
|
-
fs.copyFileSync(srcPath, destPath);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* 전역 ~/.claude/settings.json에서 hooks 정리
|
|
74
|
-
* vibe는 이제 프로젝트 레벨 (.claude/settings.local.json)에서 훅을 관리하므로
|
|
75
|
-
* 전역 설정의 hooks는 제거해야 함 (레거시 정리)
|
|
76
|
-
*/
|
|
77
|
-
function cleanupGlobalSettingsHooks() {
|
|
78
|
-
const globalClaudeDir = path.join(os.homedir(), '.claude');
|
|
79
|
-
const globalSettingsPath = path.join(globalClaudeDir, 'settings.json');
|
|
80
|
-
if (!fs.existsSync(globalSettingsPath)) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
try {
|
|
84
|
-
const content = fs.readFileSync(globalSettingsPath, 'utf-8');
|
|
85
|
-
const settings = JSON.parse(content);
|
|
86
|
-
// hooks가 있으면 제거
|
|
87
|
-
if (settings.hooks) {
|
|
88
|
-
delete settings.hooks;
|
|
89
|
-
fs.writeFileSync(globalSettingsPath, JSON.stringify(settings, null, 2) + '\n');
|
|
90
|
-
console.log(' ✓ Cleaned up legacy hooks from global settings');
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
catch (e) {
|
|
94
|
-
const message = e instanceof Error ? e.message : String(e);
|
|
95
|
-
console.warn(' ⚠️ Failed to cleanup global settings hooks: ' + message);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* 인라인 기본 스킬 시딩 (번들에 없는 추가 스킬)
|
|
100
|
-
*/
|
|
101
|
-
function seedInlineSkills(targetDir) {
|
|
102
|
-
const inlineSkills = [
|
|
103
|
-
{
|
|
104
|
-
id: 'multi-llm-orchestration',
|
|
105
|
-
content: [
|
|
106
|
-
'---',
|
|
107
|
-
'name: multi-llm-orchestration',
|
|
108
|
-
'description: "Multi-LLM research using GPT and Gemini for comprehensive analysis"',
|
|
109
|
-
'triggers: [gpt, gemini, multi-llm, research, parallel research]',
|
|
110
|
-
'priority: 80',
|
|
111
|
-
'---',
|
|
112
|
-
'# Multi-LLM Orchestration',
|
|
113
|
-
'',
|
|
114
|
-
'Use multiple LLMs for comprehensive research and validation.',
|
|
115
|
-
'',
|
|
116
|
-
'## Usage',
|
|
117
|
-
'',
|
|
118
|
-
'```bash',
|
|
119
|
-
'# Via Bash hook (automatic in /vibe.spec)',
|
|
120
|
-
'node hooks/scripts/llm-orchestrate.js gpt "your prompt"',
|
|
121
|
-
'node hooks/scripts/llm-orchestrate.js gemini "your prompt"',
|
|
122
|
-
'```',
|
|
123
|
-
'',
|
|
124
|
-
'## Setup',
|
|
125
|
-
'',
|
|
126
|
-
'```bash',
|
|
127
|
-
'vibe gpt auth # Configure GPT API key',
|
|
128
|
-
'vibe gemini auth # Configure Gemini OAuth/API key',
|
|
129
|
-
'vibe status # Check current configuration',
|
|
130
|
-
'```',
|
|
131
|
-
'',
|
|
132
|
-
'## Best Practices',
|
|
133
|
-
'',
|
|
134
|
-
'1. Use GPT for best practices and code review',
|
|
135
|
-
'2. Use Gemini for documentation and security analysis',
|
|
136
|
-
'3. Combine results for comprehensive coverage',
|
|
137
|
-
].join('\n'),
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
id: 'error-recovery',
|
|
141
|
-
content: [
|
|
142
|
-
'---',
|
|
143
|
-
'name: error-recovery',
|
|
144
|
-
'description: "Error recovery patterns and retry strategies"',
|
|
145
|
-
'triggers: [error, fail, retry, recover, fix]',
|
|
146
|
-
'priority: 70',
|
|
147
|
-
'---',
|
|
148
|
-
'# Error Recovery Patterns',
|
|
149
|
-
'',
|
|
150
|
-
'## Common Error Types',
|
|
151
|
-
'',
|
|
152
|
-
'### Build Errors',
|
|
153
|
-
'- Check TypeScript compilation errors',
|
|
154
|
-
'- Verify dependency versions',
|
|
155
|
-
'- Run `npm ci` to clean install',
|
|
156
|
-
'',
|
|
157
|
-
'### Test Failures',
|
|
158
|
-
'- Run failed tests in isolation',
|
|
159
|
-
'- Check test fixtures/mocks',
|
|
160
|
-
'- Verify async timing issues',
|
|
161
|
-
'',
|
|
162
|
-
'### Runtime Errors',
|
|
163
|
-
'- Check stack trace carefully',
|
|
164
|
-
'- Verify environment variables',
|
|
165
|
-
'- Check external service connectivity',
|
|
166
|
-
'',
|
|
167
|
-
'## Retry Strategy',
|
|
168
|
-
'',
|
|
169
|
-
'1. First retry: Same action',
|
|
170
|
-
'2. Second retry: Clean state (cache clear)',
|
|
171
|
-
'3. Third retry: Alternative approach',
|
|
172
|
-
'4. Max retries exceeded: Escalate to user',
|
|
173
|
-
].join('\n'),
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
id: 'code-quality-check',
|
|
177
|
-
content: [
|
|
178
|
-
'---',
|
|
179
|
-
'name: code-quality-check',
|
|
180
|
-
'description: "Code quality validation using vibe tools"',
|
|
181
|
-
'triggers: [quality, lint, complexity, review]',
|
|
182
|
-
'priority: 60',
|
|
183
|
-
'---',
|
|
184
|
-
'# Code Quality Check',
|
|
185
|
-
'',
|
|
186
|
-
'## Using Vibe Tools',
|
|
187
|
-
'',
|
|
188
|
-
'```bash',
|
|
189
|
-
'# Analyze complexity',
|
|
190
|
-
"node -e \"import('@su-record/vibe/tools').then(t =>",
|
|
191
|
-
" t.analyzeComplexity({targetPath: 'src/', projectPath: process.cwd()})",
|
|
192
|
-
' .then(r => console.log(r.content[0].text))',
|
|
193
|
-
')\"',
|
|
194
|
-
'```',
|
|
195
|
-
'',
|
|
196
|
-
'## Quality Metrics',
|
|
197
|
-
'',
|
|
198
|
-
'| Metric | Good | Warning | Critical |',
|
|
199
|
-
'|--------|------|---------|----------|',
|
|
200
|
-
'| Cyclomatic Complexity | ≤10 | 11-15 | >15 |',
|
|
201
|
-
'| Function Length | ≤30 | 31-50 | >50 |',
|
|
202
|
-
'| Nesting Depth | ≤3 | 4 | >4 |',
|
|
203
|
-
].join('\n'),
|
|
204
|
-
},
|
|
205
|
-
{
|
|
206
|
-
id: 'session-management',
|
|
207
|
-
content: [
|
|
208
|
-
'---',
|
|
209
|
-
'name: session-management',
|
|
210
|
-
'description: "Context and session management across conversations"',
|
|
211
|
-
'triggers: [session, context, memory, save, restore, continue]',
|
|
212
|
-
'priority: 75',
|
|
213
|
-
'---',
|
|
214
|
-
'# Session Management',
|
|
215
|
-
'',
|
|
216
|
-
'## Starting a Session',
|
|
217
|
-
'',
|
|
218
|
-
'```bash',
|
|
219
|
-
'# Auto-restore previous context',
|
|
220
|
-
'/vibe.utils --continue',
|
|
221
|
-
'```',
|
|
222
|
-
'',
|
|
223
|
-
'## Saving Context',
|
|
224
|
-
'',
|
|
225
|
-
'At 70%+ context usage:',
|
|
226
|
-
'1. Use `saveMemory` for important decisions',
|
|
227
|
-
'2. Start new session with `/new`',
|
|
228
|
-
'3. Previous context auto-restores',
|
|
229
|
-
'',
|
|
230
|
-
'## Commands',
|
|
231
|
-
'',
|
|
232
|
-
'- `/vibe.utils --continue` - Restore previous session',
|
|
233
|
-
'- `saveMemory` tool - Save important decisions',
|
|
234
|
-
'- `startSession` tool - Initialize session with context',
|
|
235
|
-
].join('\n'),
|
|
236
|
-
},
|
|
237
|
-
];
|
|
238
|
-
for (const skill of inlineSkills) {
|
|
239
|
-
const destPath = path.join(targetDir, skill.id + '.md');
|
|
240
|
-
if (!fs.existsSync(destPath)) {
|
|
241
|
-
try {
|
|
242
|
-
fs.writeFileSync(destPath, skill.content);
|
|
243
|
-
}
|
|
244
|
-
catch {
|
|
245
|
-
// 무시 - 병렬 실행 시 레이스 컨디션 가능
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
// 스택 타입 → 언어 룰 파일 매핑
|
|
251
|
-
export const STACK_TO_LANGUAGE_FILE = {
|
|
252
|
-
'typescript-nextjs': 'typescript-nextjs.md',
|
|
253
|
-
'typescript-react': 'typescript-react.md',
|
|
254
|
-
'typescript-react-native': 'typescript-react-native.md',
|
|
255
|
-
'typescript-nuxt': 'typescript-nuxt.md',
|
|
256
|
-
'typescript-vue': 'typescript-vue.md',
|
|
257
|
-
'typescript-node': 'typescript-node.md',
|
|
258
|
-
'typescript-angular': 'typescript-angular.md',
|
|
259
|
-
'typescript-svelte': 'typescript-svelte.md',
|
|
260
|
-
'typescript-astro': 'typescript-astro.md',
|
|
261
|
-
'typescript-nestjs': 'typescript-nestjs.md',
|
|
262
|
-
'typescript-tauri': 'typescript-tauri.md',
|
|
263
|
-
'typescript-electron': 'typescript-electron.md',
|
|
264
|
-
'python-fastapi': 'python-fastapi.md',
|
|
265
|
-
'python-django': 'python-django.md',
|
|
266
|
-
'python': 'python-fastapi.md', // fallback
|
|
267
|
-
'dart-flutter': 'dart-flutter.md',
|
|
268
|
-
'go': 'go.md',
|
|
269
|
-
'rust': 'rust.md',
|
|
270
|
-
'kotlin-android': 'kotlin-android.md',
|
|
271
|
-
'kotlin': 'kotlin-android.md', // fallback
|
|
272
|
-
'java-spring': 'java-spring.md',
|
|
273
|
-
'java': 'java-spring.md', // fallback
|
|
274
|
-
'swift-ios': 'swift-ios.md',
|
|
275
|
-
'ruby-rails': 'ruby-rails.md',
|
|
276
|
-
'csharp-unity': 'csharp-unity.md',
|
|
277
|
-
'gdscript-godot': 'gdscript-godot.md',
|
|
278
|
-
};
|
|
279
|
-
// 언어 룰 파일 → glob 패턴 매핑
|
|
280
|
-
const LANGUAGE_GLOBS = {
|
|
281
|
-
'typescript-nextjs.md': '**/*.ts,**/*.tsx,**/next.config.*',
|
|
282
|
-
'typescript-react.md': '**/*.ts,**/*.tsx,**/*.jsx',
|
|
283
|
-
'typescript-react-native.md': '**/*.ts,**/*.tsx',
|
|
284
|
-
'typescript-nuxt.md': '**/*.ts,**/*.vue,**/nuxt.config.*',
|
|
285
|
-
'typescript-vue.md': '**/*.ts,**/*.vue',
|
|
286
|
-
'typescript-node.md': '**/*.ts,**/*.mts',
|
|
287
|
-
'typescript-angular.md': '**/*.ts,**/*.component.ts',
|
|
288
|
-
'typescript-svelte.md': '**/*.ts,**/*.svelte',
|
|
289
|
-
'typescript-astro.md': '**/*.ts,**/*.astro',
|
|
290
|
-
'typescript-nestjs.md': '**/*.ts,**/*.module.ts,**/*.controller.ts,**/*.service.ts',
|
|
291
|
-
'typescript-tauri.md': '**/*.ts,**/*.tsx,**/tauri.conf.json',
|
|
292
|
-
'typescript-electron.md': '**/*.ts,**/*.tsx',
|
|
293
|
-
'python-fastapi.md': '**/*.py',
|
|
294
|
-
'python-django.md': '**/*.py',
|
|
295
|
-
'dart-flutter.md': '**/*.dart',
|
|
296
|
-
'go.md': '**/*.go',
|
|
297
|
-
'rust.md': '**/*.rs',
|
|
298
|
-
'kotlin-android.md': '**/*.kt,**/*.kts',
|
|
299
|
-
'java-spring.md': '**/*.java',
|
|
300
|
-
'swift-ios.md': '**/*.swift',
|
|
301
|
-
'ruby-rails.md': '**/*.rb,**/*.erb',
|
|
302
|
-
'csharp-unity.md': '**/*.cs',
|
|
303
|
-
'gdscript-godot.md': '**/*.gd',
|
|
304
|
-
};
|
|
305
|
-
/**
|
|
306
|
-
* VIBE 언어 룰 파일을 Cursor .mdc 형식으로 변환
|
|
307
|
-
*/
|
|
308
|
-
function convertLanguageRuleToCursor(content, filename) {
|
|
309
|
-
// Windows CRLF → LF 정규화
|
|
310
|
-
const normalizedContent = content.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
311
|
-
// 제목 추출
|
|
312
|
-
const titleMatch = normalizedContent.match(/^# (.+)$/m);
|
|
313
|
-
const title = titleMatch ? titleMatch[1].trim() : filename.replace('.md', '');
|
|
314
|
-
// 설명 생성 - 제목에서 "Quality Rules" 제거하고 간결하게
|
|
315
|
-
const description = title
|
|
316
|
-
.replace(' Quality Rules', ' coding standards')
|
|
317
|
-
.replace(' Specific Rules', ' best practices');
|
|
318
|
-
// glob 패턴 가져오기
|
|
319
|
-
const globs = LANGUAGE_GLOBS[filename] || '**/*';
|
|
320
|
-
// .mdc frontmatter + 본문
|
|
321
|
-
return `---
|
|
322
|
-
description: ${description} - complexity limits, type safety, error handling
|
|
323
|
-
globs: "${globs}"
|
|
324
|
-
alwaysApply: false
|
|
325
|
-
---
|
|
326
|
-
|
|
327
|
-
${normalizedContent}
|
|
328
|
-
`;
|
|
329
|
-
}
|
|
330
|
-
/**
|
|
331
|
-
* VIBE 언어 룰 디렉토리에서 .mdc 파일 생성
|
|
332
|
-
* @param languagesDir - VIBE 언어 룰 디렉토리 (~/.claude/vibe/languages/ 또는 패키지 내 languages/)
|
|
333
|
-
* @param outputDir - Cursor 룰 출력 디렉토리 (~/.cursor/rules-template/)
|
|
334
|
-
* @param detectedStacks - 감지된 기술 스택 배열 (예: ['typescript-react', 'python-fastapi'])
|
|
335
|
-
* @returns 생성된 파일 수
|
|
336
|
-
*/
|
|
337
|
-
function generateCursorRulesFromVibeLanguages(languagesDir, outputDir, detectedStacks = []) {
|
|
338
|
-
if (!fs.existsSync(languagesDir)) {
|
|
339
|
-
return 0;
|
|
340
|
-
}
|
|
341
|
-
ensureDir(outputDir);
|
|
342
|
-
// 감지된 스택에 해당하는 언어 파일 결정
|
|
343
|
-
const targetFiles = new Set();
|
|
344
|
-
if (detectedStacks.length === 0) {
|
|
345
|
-
// 스택 감지 없으면 공통 룰만 생성 (hardcoded fallback)
|
|
346
|
-
return 0;
|
|
347
|
-
}
|
|
348
|
-
for (const stack of detectedStacks) {
|
|
349
|
-
const languageFile = STACK_TO_LANGUAGE_FILE[stack.toLowerCase()];
|
|
350
|
-
if (languageFile) {
|
|
351
|
-
targetFiles.add(languageFile);
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
let generated = 0;
|
|
355
|
-
for (const file of targetFiles) {
|
|
356
|
-
const sourcePath = path.join(languagesDir, file);
|
|
357
|
-
if (!fs.existsSync(sourcePath)) {
|
|
358
|
-
continue;
|
|
359
|
-
}
|
|
360
|
-
try {
|
|
361
|
-
const content = fs.readFileSync(sourcePath, 'utf-8');
|
|
362
|
-
const mdcContent = convertLanguageRuleToCursor(content, file);
|
|
363
|
-
const destPath = path.join(outputDir, file.replace('.md', '.mdc'));
|
|
364
|
-
fs.writeFileSync(destPath, mdcContent, 'utf-8');
|
|
365
|
-
generated++;
|
|
366
|
-
}
|
|
367
|
-
catch {
|
|
368
|
-
// 무시 - 파일 읽기/쓰기 실패
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
return generated;
|
|
372
|
-
}
|
|
373
|
-
// Cursor 모델 매핑 (각 리뷰어 유형에 최적의 모델)
|
|
374
|
-
// 사용 가능: composer-1, claude-4.5-opus-high, claude-4.5-opus-high-thinking,
|
|
375
|
-
// claude-4.5-sonnet-thinking, gpt-5.2-codex, gpt-5.2, gpt-5.2-high,
|
|
376
|
-
// gemini-3-pro, gemini-3-flash
|
|
377
|
-
const CURSOR_MODEL_MAPPING = {
|
|
378
|
-
// 보안/아키텍처: 깊은 추론 필요 → thinking 모델
|
|
379
|
-
'security-reviewer': 'claude-4.5-sonnet-thinking',
|
|
380
|
-
'architecture-reviewer': 'claude-4.5-sonnet-thinking',
|
|
381
|
-
'data-integrity-reviewer': 'claude-4.5-sonnet-thinking',
|
|
382
|
-
// 언어별 전문가: 코드 이해 필요 → codex
|
|
383
|
-
'typescript-reviewer': 'gpt-5.2-codex',
|
|
384
|
-
'python-reviewer': 'gpt-5.2-codex',
|
|
385
|
-
'react-reviewer': 'gpt-5.2-codex',
|
|
386
|
-
'rails-reviewer': 'gpt-5.2-codex',
|
|
387
|
-
// 빠른 패턴 체크: 경량 모델
|
|
388
|
-
'performance-reviewer': 'gemini-3-flash',
|
|
389
|
-
'complexity-reviewer': 'gemini-3-flash',
|
|
390
|
-
'simplicity-reviewer': 'gemini-3-flash',
|
|
391
|
-
'test-coverage-reviewer': 'gemini-3-flash',
|
|
392
|
-
'git-history-reviewer': 'gemini-3-flash',
|
|
393
|
-
};
|
|
394
|
-
/**
|
|
395
|
-
* VIBE 에이전트를 Cursor 서브에이전트 형식으로 변환
|
|
396
|
-
*/
|
|
397
|
-
function convertAgentToCursor(content, filename) {
|
|
398
|
-
// Windows CRLF → LF 정규화
|
|
399
|
-
const normalizedContent = content.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
400
|
-
const name = path.basename(filename, '.md');
|
|
401
|
-
const model = CURSOR_MODEL_MAPPING[name] || 'auto';
|
|
402
|
-
// 제목 추출
|
|
403
|
-
const titleMatch = normalizedContent.match(/^# (.+)$/m);
|
|
404
|
-
const title = titleMatch ? titleMatch[1].trim() : name;
|
|
405
|
-
// Role 섹션 추출 (## Role 다음 내용을 다음 ## 전까지)
|
|
406
|
-
const roleMatch = normalizedContent.match(/## Role\s*\n([\s\S]*?)(?=\n## )/);
|
|
407
|
-
const roleLines = roleMatch
|
|
408
|
-
? roleMatch[1]
|
|
409
|
-
.split('\n')
|
|
410
|
-
.filter((line) => line.trim().startsWith('- '))
|
|
411
|
-
.map((line) => line.trim().replace(/^- /, '').trim())
|
|
412
|
-
.slice(0, 3)
|
|
413
|
-
: [];
|
|
414
|
-
// Checklist 섹션 추출 (## Checklist 다음 내용을 ## Output 전까지)
|
|
415
|
-
const checklistMatch = normalizedContent.match(/## Checklist\s*\n([\s\S]*?)(?=\n## Output)/);
|
|
416
|
-
const checklist = checklistMatch ? checklistMatch[1].trim() : '';
|
|
417
|
-
// Output Format 추출 (## Output Format 다음 내용을 끝 또는 ## 전까지)
|
|
418
|
-
const outputMatch = normalizedContent.match(/## Output Format\s*\n([\s\S]*?)(?=\n## |$)/);
|
|
419
|
-
const outputFormat = outputMatch ? outputMatch[1].trim() : '';
|
|
420
|
-
// Description 생성
|
|
421
|
-
const roleDesc = roleLines.join(', ');
|
|
422
|
-
const descriptions = {
|
|
423
|
-
'security-reviewer': `Security vulnerability expert. ${roleDesc}. OWASP Top 10 verification. Use proactively after code changes involving authentication, user input, or data handling.`,
|
|
424
|
-
'architecture-reviewer': `Architecture design expert. ${roleDesc}. Use proactively when modifying service layers, dependencies, or module structure.`,
|
|
425
|
-
'performance-reviewer': `Performance optimization expert. ${roleDesc}. Use proactively after adding loops, database queries, or API calls.`,
|
|
426
|
-
'complexity-reviewer': `Code complexity analyzer. ${roleDesc}. Use proactively to check function length, nesting depth, cyclomatic complexity.`,
|
|
427
|
-
'simplicity-reviewer': `Code simplicity advocate. ${roleDesc}. Detects over-engineering. Use proactively after refactoring.`,
|
|
428
|
-
'data-integrity-reviewer': `Data integrity expert. ${roleDesc}. Validates data flow and state management.`,
|
|
429
|
-
'test-coverage-reviewer': `Test coverage analyzer. ${roleDesc}. Identifies missing tests. Use proactively after implementing new features.`,
|
|
430
|
-
'git-history-reviewer': `Git history analyzer. ${roleDesc}. Reviews commit patterns and identifies risky changes.`,
|
|
431
|
-
'python-reviewer': `Python code expert. ${roleDesc}. Type hints, PEP8 compliance. Use proactively for Python files.`,
|
|
432
|
-
'typescript-reviewer': `TypeScript code expert. ${roleDesc}. Type safety, modern patterns. Use proactively for .ts/.tsx files.`,
|
|
433
|
-
'rails-reviewer': `Rails framework expert. ${roleDesc}. MVC patterns, ActiveRecord best practices.`,
|
|
434
|
-
'react-reviewer': `React framework expert. ${roleDesc}. Hooks, component patterns. Use proactively for React components.`,
|
|
435
|
-
};
|
|
436
|
-
const description = descriptions[name] || `${title}. ${roleDesc}. Use proactively after code edits.`;
|
|
437
|
-
// Next Steps 생성
|
|
438
|
-
const recommendations = {
|
|
439
|
-
'security-reviewer': ['architecture-reviewer', 'data-integrity-reviewer'],
|
|
440
|
-
'architecture-reviewer': ['complexity-reviewer', 'performance-reviewer'],
|
|
441
|
-
'performance-reviewer': ['complexity-reviewer', 'test-coverage-reviewer'],
|
|
442
|
-
'complexity-reviewer': ['simplicity-reviewer', 'test-coverage-reviewer'],
|
|
443
|
-
'simplicity-reviewer': ['architecture-reviewer'],
|
|
444
|
-
'data-integrity-reviewer': ['security-reviewer', 'test-coverage-reviewer'],
|
|
445
|
-
'test-coverage-reviewer': ['security-reviewer'],
|
|
446
|
-
'git-history-reviewer': ['security-reviewer', 'architecture-reviewer'],
|
|
447
|
-
'python-reviewer': ['security-reviewer', 'test-coverage-reviewer'],
|
|
448
|
-
'typescript-reviewer': ['security-reviewer', 'react-reviewer', 'test-coverage-reviewer'],
|
|
449
|
-
'rails-reviewer': ['security-reviewer', 'performance-reviewer'],
|
|
450
|
-
'react-reviewer': ['typescript-reviewer', 'performance-reviewer'],
|
|
451
|
-
};
|
|
452
|
-
const nextAgents = recommendations[name] || ['security-reviewer', 'test-coverage-reviewer'];
|
|
453
|
-
const nextStepsSection = nextAgents
|
|
454
|
-
.map((a) => `- For ${a.replace('-reviewer', '')} review: "Use ${a}"`)
|
|
455
|
-
.join('\n');
|
|
456
|
-
return `---
|
|
457
|
-
name: ${name}
|
|
458
|
-
model: ${model}
|
|
459
|
-
description: ${description}
|
|
460
|
-
---
|
|
461
|
-
|
|
462
|
-
# ${title}
|
|
463
|
-
|
|
464
|
-
## When Invoked
|
|
465
|
-
|
|
466
|
-
1. Run \`git diff\` to see recent changes
|
|
467
|
-
2. Focus on modified files relevant to this review type
|
|
468
|
-
3. Begin review immediately without asking questions
|
|
469
|
-
|
|
470
|
-
## Role
|
|
471
|
-
|
|
472
|
-
${roleLines.map((r) => `- ${r}`).join('\n')}
|
|
473
|
-
|
|
474
|
-
## Checklist
|
|
475
|
-
|
|
476
|
-
${checklist}
|
|
477
|
-
|
|
478
|
-
## Output Format
|
|
479
|
-
|
|
480
|
-
${outputFormat}
|
|
481
|
-
|
|
482
|
-
## Next Steps
|
|
483
|
-
|
|
484
|
-
Review complete. Consider these follow-up actions:
|
|
485
|
-
|
|
486
|
-
${nextStepsSection}
|
|
487
|
-
- All reviews done: Ready to commit
|
|
488
|
-
`;
|
|
489
|
-
}
|
|
490
|
-
/**
|
|
491
|
-
* Cursor 프로젝트 룰 템플릿 생성 (VIBE 언어 룰 기반)
|
|
492
|
-
* @param cursorRulesDir - 룰 파일 저장 경로
|
|
493
|
-
* @param detectedStacks - 감지된 기술 스택 배열 (예: ['typescript-react', 'python-fastapi'])
|
|
494
|
-
* @param languagesDir - VIBE 언어 룰 디렉토리 (optional)
|
|
495
|
-
*/
|
|
496
|
-
// 언어 룰 파일 접두사 (이 접두사로 시작하는 .mdc는 vibe에서 관리)
|
|
497
|
-
const LANGUAGE_RULE_PREFIXES = [
|
|
498
|
-
'typescript-', 'python-', 'dart-', 'go.', 'rust.', 'kotlin-',
|
|
499
|
-
'java-', 'swift-', 'ruby-', 'csharp-', 'gdscript-'
|
|
500
|
-
];
|
|
501
|
-
// 이전 버전에서 생성된 레거시 파일명 (정리 대상)
|
|
502
|
-
const LEGACY_RULE_FILES = [
|
|
503
|
-
'react-patterns.mdc', 'typescript-standards.mdc', 'python-standards.mdc'
|
|
504
|
-
];
|
|
505
|
-
function generateCursorRules(cursorRulesDir, detectedStacks = [], languagesDir) {
|
|
506
|
-
ensureDir(cursorRulesDir);
|
|
507
|
-
// 0. 기존 언어 룰 + 레거시 파일 정리
|
|
508
|
-
try {
|
|
509
|
-
const existingFiles = fs.readdirSync(cursorRulesDir).filter(f => f.endsWith('.mdc'));
|
|
510
|
-
for (const file of existingFiles) {
|
|
511
|
-
const isLanguageRule = LANGUAGE_RULE_PREFIXES.some(prefix => file.startsWith(prefix));
|
|
512
|
-
const isLegacy = LEGACY_RULE_FILES.includes(file);
|
|
513
|
-
if (isLanguageRule || isLegacy) {
|
|
514
|
-
fs.unlinkSync(path.join(cursorRulesDir, file));
|
|
515
|
-
}
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
catch {
|
|
519
|
-
// 무시
|
|
520
|
-
}
|
|
521
|
-
// 1. VIBE 언어 룰에서 .mdc 생성 시도
|
|
522
|
-
let vibeRulesGenerated = 0;
|
|
523
|
-
if (languagesDir && detectedStacks.length > 0) {
|
|
524
|
-
vibeRulesGenerated = generateCursorRulesFromVibeLanguages(languagesDir, cursorRulesDir, detectedStacks);
|
|
525
|
-
}
|
|
526
|
-
// 2. 공통 룰 (모든 프로젝트에 적용)
|
|
527
|
-
const commonRules = [
|
|
528
|
-
{
|
|
529
|
-
filename: 'code-quality.mdc',
|
|
530
|
-
content: `---
|
|
531
|
-
description: General code quality rules for all files
|
|
532
|
-
alwaysApply: true
|
|
533
|
-
---
|
|
534
|
-
|
|
535
|
-
# Code Quality Rules
|
|
536
|
-
|
|
537
|
-
## Core Principles
|
|
538
|
-
- **Modify only requested scope** - Don't touch unrelated code
|
|
539
|
-
- **Preserve existing style** - Follow project conventions
|
|
540
|
-
- **Keep working code** - No unnecessary refactoring
|
|
541
|
-
|
|
542
|
-
## Forbidden Patterns
|
|
543
|
-
- No \`console.log\` in production code (remove after debugging)
|
|
544
|
-
- No hardcoded strings/numbers → Extract to constants
|
|
545
|
-
- No commented-out code in commits
|
|
546
|
-
- No incomplete code without TODO marker
|
|
547
|
-
|
|
548
|
-
## Naming Conventions
|
|
549
|
-
- Variables/functions: camelCase
|
|
550
|
-
- Classes/types: PascalCase
|
|
551
|
-
- Constants: UPPER_SNAKE_CASE
|
|
552
|
-
- Files: kebab-case or PascalCase (match project style)
|
|
553
|
-
|
|
554
|
-
## Function Design
|
|
555
|
-
- Single responsibility per function
|
|
556
|
-
- Max 5 parameters (use object for more)
|
|
557
|
-
- Descriptive names (verb + noun)
|
|
558
|
-
- Document non-obvious behavior
|
|
559
|
-
|
|
560
|
-
## Complexity Limits
|
|
561
|
-
| Metric | Limit |
|
|
562
|
-
|--------|-------|
|
|
563
|
-
| Function length | ≤30 lines (recommended), ≤50 lines (max) |
|
|
564
|
-
| Nesting depth | ≤3 levels |
|
|
565
|
-
| Parameters | ≤5 |
|
|
566
|
-
| Cyclomatic complexity | ≤10 |
|
|
567
|
-
|
|
568
|
-
## Dependency Management
|
|
569
|
-
- Avoid circular dependencies
|
|
570
|
-
- Keep loose coupling (depend on interfaces)
|
|
571
|
-
- High cohesion (group related functions)
|
|
572
|
-
`,
|
|
573
|
-
},
|
|
574
|
-
{
|
|
575
|
-
filename: 'security-checklist.mdc',
|
|
576
|
-
content: `---
|
|
577
|
-
description: Security checklist for code changes
|
|
578
|
-
globs: "**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.py,**/*.go,**/*.rs,**/*.java,**/*.kt,**/*.swift"
|
|
579
|
-
alwaysApply: false
|
|
580
|
-
---
|
|
581
|
-
|
|
582
|
-
# Security Checklist
|
|
583
|
-
|
|
584
|
-
## Input Validation
|
|
585
|
-
- [ ] Validate all user inputs
|
|
586
|
-
- [ ] Sanitize data before database queries
|
|
587
|
-
- [ ] Use parameterized queries (prevent SQL injection)
|
|
588
|
-
|
|
589
|
-
## Authentication
|
|
590
|
-
- [ ] Secure password handling (never store plain text)
|
|
591
|
-
- [ ] Session management is secure
|
|
592
|
-
- [ ] Tokens have appropriate expiry
|
|
593
|
-
|
|
594
|
-
## Data Protection
|
|
595
|
-
- [ ] Sensitive data is encrypted
|
|
596
|
-
- [ ] API keys not committed to code
|
|
597
|
-
- [ ] Error messages don't leak sensitive info
|
|
598
|
-
|
|
599
|
-
## OWASP Top 10 Awareness
|
|
600
|
-
- Injection (SQL, XSS, Command)
|
|
601
|
-
- Broken authentication
|
|
602
|
-
- Sensitive data exposure
|
|
603
|
-
- XML external entities (XXE)
|
|
604
|
-
- Broken access control
|
|
605
|
-
- Security misconfiguration
|
|
606
|
-
- Cross-site scripting (XSS)
|
|
607
|
-
- Insecure deserialization
|
|
608
|
-
- Using components with known vulnerabilities
|
|
609
|
-
- Insufficient logging & monitoring
|
|
610
|
-
`,
|
|
611
|
-
},
|
|
612
|
-
];
|
|
613
|
-
let commonUpdated = 0;
|
|
614
|
-
for (const rule of commonRules) {
|
|
615
|
-
const destPath = path.join(cursorRulesDir, rule.filename);
|
|
616
|
-
try {
|
|
617
|
-
fs.writeFileSync(destPath, rule.content, 'utf-8');
|
|
618
|
-
commonUpdated++;
|
|
619
|
-
}
|
|
620
|
-
catch {
|
|
621
|
-
// 무시 - 권한 문제 등
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
const totalUpdated = vibeRulesGenerated + commonUpdated;
|
|
625
|
-
const stackInfo = detectedStacks.length > 0 ? ` (${detectedStacks.slice(0, 3).join(', ')}${detectedStacks.length > 3 ? '...' : ''})` : '';
|
|
626
|
-
console.log(` 📏 Cursor rules: ${totalUpdated} updated (${vibeRulesGenerated} language + ${commonUpdated} common)${stackInfo}`);
|
|
627
|
-
}
|
|
628
|
-
/**
|
|
629
|
-
* Cursor 서브에이전트 설치
|
|
630
|
-
*/
|
|
631
|
-
function installCursorAgents(agentsSource, cursorAgentsDir) {
|
|
632
|
-
const reviewDir = path.join(agentsSource, 'review');
|
|
633
|
-
if (!fs.existsSync(reviewDir)) {
|
|
634
|
-
console.log(` ⚠️ agents/review not found: ${reviewDir}`);
|
|
635
|
-
return;
|
|
636
|
-
}
|
|
637
|
-
ensureDir(cursorAgentsDir);
|
|
638
|
-
const files = fs.readdirSync(reviewDir).filter((f) => f.endsWith('.md'));
|
|
639
|
-
let installed = 0;
|
|
640
|
-
for (const file of files) {
|
|
641
|
-
try {
|
|
642
|
-
const sourcePath = path.join(reviewDir, file);
|
|
643
|
-
const content = fs.readFileSync(sourcePath, 'utf-8');
|
|
644
|
-
const cursorContent = convertAgentToCursor(content, file);
|
|
645
|
-
const destPath = path.join(cursorAgentsDir, file);
|
|
646
|
-
fs.writeFileSync(destPath, cursorContent, 'utf-8');
|
|
647
|
-
installed++;
|
|
648
|
-
}
|
|
649
|
-
catch (err) {
|
|
650
|
-
console.warn(` ⚠️ Failed to convert ${file}: ${err.message}`);
|
|
651
|
-
}
|
|
652
|
-
}
|
|
653
|
-
console.log(` 📦 Cursor agents: ${installed}/${files.length} installed`);
|
|
654
|
-
}
|
|
655
|
-
/**
|
|
656
|
-
* Cursor Skills 생성 (VIBE 커맨드 → Cursor 스킬 변환)
|
|
657
|
-
* 설치 경로: ~/.cursor/skills/[skill-name]/SKILL.md
|
|
658
|
-
*/
|
|
659
|
-
function generateCursorSkills(cursorSkillsDir) {
|
|
660
|
-
const skills = [
|
|
661
|
-
{
|
|
662
|
-
id: 'vibe-spec',
|
|
663
|
-
content: `---
|
|
664
|
-
name: vibe-spec
|
|
665
|
-
model: claude-4.5-sonnet-thinking
|
|
666
|
-
description: "SPEC document creation with parallel research. Use when starting new feature implementation."
|
|
667
|
-
---
|
|
668
|
-
|
|
669
|
-
# vibe spec - SPEC Creation Skill
|
|
670
|
-
|
|
671
|
-
SPEC-driven feature development workflow. Creates AI-executable specification documents.
|
|
672
|
-
|
|
673
|
-
## When to Use
|
|
674
|
-
|
|
675
|
-
- Starting new feature implementation
|
|
676
|
-
- Complex tasks requiring research and planning
|
|
677
|
-
- Features needing clear requirements documentation
|
|
678
|
-
|
|
679
|
-
## Invocation
|
|
680
|
-
|
|
681
|
-
User says: "vibe spec [feature-name]" or "Create SPEC for [feature-name]"
|
|
682
|
-
|
|
683
|
-
## Workflow
|
|
684
|
-
|
|
685
|
-
### Phase 1: Requirements Gathering
|
|
686
|
-
1. Ask user for feature requirements
|
|
687
|
-
2. Clarify scope and constraints
|
|
688
|
-
3. Identify tech stack and dependencies
|
|
689
|
-
|
|
690
|
-
### Phase 2: Parallel Research (Manual)
|
|
691
|
-
Run these in parallel:
|
|
692
|
-
- "Use best-practices-agent for [feature]"
|
|
693
|
-
- "Use security-advisory-agent for [feature]"
|
|
694
|
-
- Search framework docs with context7
|
|
695
|
-
|
|
696
|
-
### Phase 3: SPEC Document Generation
|
|
697
|
-
Create SPEC in PTCF format:
|
|
698
|
-
\`\`\`
|
|
699
|
-
<role> AI role definition
|
|
700
|
-
<context> Background, tech stack, related code
|
|
701
|
-
<task> Phase-by-phase task list
|
|
702
|
-
<constraints> Constraints
|
|
703
|
-
<output_format> Files to create/modify
|
|
704
|
-
<acceptance> Verification criteria
|
|
705
|
-
\`\`\`
|
|
706
|
-
|
|
707
|
-
### Phase 4: Save SPEC
|
|
708
|
-
Save to \`.claude/vibe/specs/[feature-name]-spec.md\`
|
|
709
|
-
|
|
710
|
-
## Output Format
|
|
711
|
-
|
|
712
|
-
\`\`\`markdown
|
|
713
|
-
# [Feature Name] SPEC
|
|
714
|
-
|
|
715
|
-
## Overview
|
|
716
|
-
[1-2 sentence summary]
|
|
717
|
-
|
|
718
|
-
## Requirements
|
|
719
|
-
- REQ-001: [Requirement]
|
|
720
|
-
- REQ-002: [Requirement]
|
|
721
|
-
|
|
722
|
-
## Technical Approach
|
|
723
|
-
[Implementation strategy]
|
|
724
|
-
|
|
725
|
-
## Phases
|
|
726
|
-
### Phase 1: [Setup]
|
|
727
|
-
- [ ] Task 1
|
|
728
|
-
- [ ] Task 2
|
|
729
|
-
|
|
730
|
-
### Phase 2: [Core Implementation]
|
|
731
|
-
...
|
|
732
|
-
|
|
733
|
-
## Acceptance Criteria
|
|
734
|
-
- [ ] Criterion 1
|
|
735
|
-
- [ ] Criterion 2
|
|
736
|
-
\`\`\`
|
|
737
|
-
|
|
738
|
-
## Next Steps
|
|
739
|
-
|
|
740
|
-
After SPEC creation:
|
|
741
|
-
- "vibe spec review" - Review SPEC with external LLMs
|
|
742
|
-
- "vibe run [feature-name]" - Start implementation
|
|
743
|
-
`,
|
|
744
|
-
},
|
|
745
|
-
{
|
|
746
|
-
id: 'vibe-run',
|
|
747
|
-
content: `---
|
|
748
|
-
name: vibe-run
|
|
749
|
-
model: claude-4.5-opus-high
|
|
750
|
-
description: "Execute SPEC implementation with Scenario-Driven Development. Use after SPEC is approved."
|
|
751
|
-
---
|
|
752
|
-
|
|
753
|
-
# vibe run - Implementation Execution Skill
|
|
754
|
-
|
|
755
|
-
Executes SPEC-based implementation using Scenario-Driven Development methodology.
|
|
756
|
-
|
|
757
|
-
## When to Use
|
|
758
|
-
|
|
759
|
-
- After SPEC is created and approved
|
|
760
|
-
- When implementing features phase by phase
|
|
761
|
-
- For complex multi-file implementations
|
|
762
|
-
|
|
763
|
-
## Invocation
|
|
764
|
-
|
|
765
|
-
User says: "vibe run [feature-name]" or "Implement [feature-name]"
|
|
766
|
-
|
|
767
|
-
## Pre-requisites
|
|
768
|
-
|
|
769
|
-
1. SPEC document exists at \`.claude/vibe/specs/[feature-name]-spec.md\`
|
|
770
|
-
2. SPEC has been reviewed (optional but recommended)
|
|
771
|
-
|
|
772
|
-
## Workflow
|
|
773
|
-
|
|
774
|
-
### Step 1: Load SPEC
|
|
775
|
-
Read SPEC from \`.claude/vibe/specs/[feature-name]-spec.md\`
|
|
776
|
-
|
|
777
|
-
### Step 2: For Each Phase in SPEC
|
|
778
|
-
|
|
779
|
-
#### 2a. Phase Planning
|
|
780
|
-
- List all tasks for current phase
|
|
781
|
-
- Identify file dependencies
|
|
782
|
-
- Check existing code patterns
|
|
783
|
-
|
|
784
|
-
#### 2b. Implementation
|
|
785
|
-
- Implement each task
|
|
786
|
-
- Follow existing code style
|
|
787
|
-
- Keep functions under complexity limits
|
|
788
|
-
|
|
789
|
-
#### 2c. Phase Verification
|
|
790
|
-
- Run relevant tests
|
|
791
|
-
- Check TypeScript compilation
|
|
792
|
-
- Verify no regressions
|
|
793
|
-
|
|
794
|
-
### Step 3: Phase Completion
|
|
795
|
-
Mark phase complete, proceed to next phase
|
|
796
|
-
|
|
797
|
-
## ULTRAWORK Mode
|
|
798
|
-
|
|
799
|
-
Add "ultrawork" or "ulw" for maximum performance:
|
|
800
|
-
- Parallel sub-agent exploration
|
|
801
|
-
- Auto-continue between phases
|
|
802
|
-
- Auto-retry on errors (max 3)
|
|
803
|
-
|
|
804
|
-
## Output Format
|
|
805
|
-
|
|
806
|
-
Per phase:
|
|
807
|
-
\`\`\`
|
|
808
|
-
## Phase [N]: [Name]
|
|
809
|
-
|
|
810
|
-
### Completed Tasks
|
|
811
|
-
- [x] Task 1 - [file.ts]
|
|
812
|
-
- [x] Task 2 - [file.ts]
|
|
813
|
-
|
|
814
|
-
### Files Modified
|
|
815
|
-
- src/feature/index.ts (new)
|
|
816
|
-
- src/feature/utils.ts (modified)
|
|
817
|
-
|
|
818
|
-
### Verification
|
|
819
|
-
- ✅ TypeScript compilation
|
|
820
|
-
- ✅ Tests passing
|
|
821
|
-
\`\`\`
|
|
822
|
-
|
|
823
|
-
## Next Steps
|
|
824
|
-
|
|
825
|
-
After implementation:
|
|
826
|
-
- "vibe review" - Run 12+ agent code review
|
|
827
|
-
- "vibe verify [feature-name]" - Verify against SPEC
|
|
828
|
-
- "vibe trace [feature-name]" - Generate traceability matrix
|
|
829
|
-
`,
|
|
830
|
-
},
|
|
831
|
-
{
|
|
832
|
-
id: 'vibe-review',
|
|
833
|
-
content: `---
|
|
834
|
-
name: vibe-review
|
|
835
|
-
model: auto
|
|
836
|
-
description: "Parallel code review with 12+ specialized agents. Use after code changes."
|
|
837
|
-
---
|
|
838
|
-
|
|
839
|
-
# vibe review - Parallel Code Review Skill
|
|
840
|
-
|
|
841
|
-
Orchestrates 12+ specialized review agents for comprehensive code review.
|
|
842
|
-
|
|
843
|
-
## When to Use
|
|
844
|
-
|
|
845
|
-
- After implementing new features
|
|
846
|
-
- Before creating pull requests
|
|
847
|
-
- After significant code changes
|
|
848
|
-
|
|
849
|
-
## Invocation
|
|
850
|
-
|
|
851
|
-
User says: "vibe review" or "Review my code"
|
|
852
|
-
|
|
853
|
-
## Available Review Agents
|
|
854
|
-
|
|
855
|
-
### Security & Architecture (Thinking Models)
|
|
856
|
-
- **security-reviewer** - OWASP Top 10, authentication, data handling
|
|
857
|
-
- **architecture-reviewer** - Design patterns, dependencies, structure
|
|
858
|
-
- **data-integrity-reviewer** - Data flow, state management, persistence
|
|
859
|
-
|
|
860
|
-
### Language Specialists (Codex Models)
|
|
861
|
-
- **typescript-reviewer** - Type safety, modern patterns
|
|
862
|
-
- **python-reviewer** - Type hints, PEP8, async patterns
|
|
863
|
-
- **react-reviewer** - Hooks, component patterns
|
|
864
|
-
- **rails-reviewer** - MVC, ActiveRecord best practices
|
|
865
|
-
|
|
866
|
-
### Pattern Checkers (Flash Models)
|
|
867
|
-
- **performance-reviewer** - N+1 queries, loops, memory
|
|
868
|
-
- **complexity-reviewer** - Function length, nesting, cyclomatic
|
|
869
|
-
- **simplicity-reviewer** - Over-engineering detection
|
|
870
|
-
- **test-coverage-reviewer** - Missing tests, edge cases
|
|
871
|
-
- **git-history-reviewer** - Risk patterns, commit analysis
|
|
872
|
-
|
|
873
|
-
## Workflow
|
|
874
|
-
|
|
875
|
-
### Step 1: Analyze Changes
|
|
876
|
-
\`\`\`bash
|
|
877
|
-
git diff HEAD~1
|
|
878
|
-
\`\`\`
|
|
879
|
-
|
|
880
|
-
### Step 2: Select Relevant Agents
|
|
881
|
-
Based on changed files:
|
|
882
|
-
- .ts/.tsx → typescript-reviewer, react-reviewer
|
|
883
|
-
- .py → python-reviewer
|
|
884
|
-
- Security-related → security-reviewer
|
|
885
|
-
- Architecture changes → architecture-reviewer
|
|
886
|
-
|
|
887
|
-
### Step 3: Run Reviews (Parallel)
|
|
888
|
-
Invoke selected agents:
|
|
889
|
-
- "Use security-reviewer"
|
|
890
|
-
- "Use typescript-reviewer"
|
|
891
|
-
- (etc.)
|
|
892
|
-
|
|
893
|
-
### Step 4: Consolidate Findings
|
|
894
|
-
|
|
895
|
-
## Priority System
|
|
896
|
-
|
|
897
|
-
| Priority | Meaning | Action |
|
|
898
|
-
|----------|---------|--------|
|
|
899
|
-
| 🔴 P1 | Critical | Blocks merge, fix immediately |
|
|
900
|
-
| 🟡 P2 | Important | Fix recommended before merge |
|
|
901
|
-
| 🔵 P3 | Nice-to-have | Add to backlog |
|
|
902
|
-
|
|
903
|
-
## Output Format
|
|
904
|
-
|
|
905
|
-
\`\`\`markdown
|
|
906
|
-
# Code Review Summary
|
|
907
|
-
|
|
908
|
-
## 🔴 P1 - Critical (X issues)
|
|
909
|
-
- [Issue description] - [file:line]
|
|
910
|
-
|
|
911
|
-
## 🟡 P2 - Important (X issues)
|
|
912
|
-
- [Issue description] - [file:line]
|
|
913
|
-
|
|
914
|
-
## 🔵 P3 - Suggestions (X issues)
|
|
915
|
-
- [Issue description] - [file:line]
|
|
916
|
-
|
|
917
|
-
## Reviewed By
|
|
918
|
-
- security-reviewer ✅
|
|
919
|
-
- typescript-reviewer ✅
|
|
920
|
-
- performance-reviewer ✅
|
|
921
|
-
\`\`\`
|
|
922
|
-
|
|
923
|
-
## Next Steps
|
|
924
|
-
|
|
925
|
-
After review:
|
|
926
|
-
- Fix P1 issues immediately
|
|
927
|
-
- Address P2 issues before merge
|
|
928
|
-
- Track P3 in backlog
|
|
929
|
-
- Ready to commit when P1/P2 resolved
|
|
930
|
-
`,
|
|
931
|
-
},
|
|
932
|
-
{
|
|
933
|
-
id: 'vibe-analyze',
|
|
934
|
-
content: `---
|
|
935
|
-
name: vibe-analyze
|
|
936
|
-
model: claude-4.5-sonnet-thinking
|
|
937
|
-
description: "Project and feature analysis. Use when exploring codebase or planning changes."
|
|
938
|
-
---
|
|
939
|
-
|
|
940
|
-
# vibe analyze - Analysis Skill
|
|
941
|
-
|
|
942
|
-
Comprehensive project and feature analysis for understanding codebases.
|
|
943
|
-
|
|
944
|
-
## When to Use
|
|
945
|
-
|
|
946
|
-
- Exploring unfamiliar codebase
|
|
947
|
-
- Planning feature changes
|
|
948
|
-
- Understanding dependencies
|
|
949
|
-
- Identifying potential issues
|
|
950
|
-
|
|
951
|
-
## Invocation
|
|
952
|
-
|
|
953
|
-
User says: "vibe analyze" or "Analyze [feature/path]"
|
|
954
|
-
|
|
955
|
-
## Analysis Modes
|
|
956
|
-
|
|
957
|
-
### 1. Project Analysis (Default)
|
|
958
|
-
Analyzes entire project structure and architecture.
|
|
959
|
-
|
|
960
|
-
### 2. Feature Analysis
|
|
961
|
-
Analyzes specific feature or module.
|
|
962
|
-
\`\`\`
|
|
963
|
-
vibe analyze src/auth
|
|
964
|
-
vibe analyze "login feature"
|
|
965
|
-
\`\`\`
|
|
966
|
-
|
|
967
|
-
### 3. Dependency Analysis
|
|
968
|
-
Maps dependencies and coupling.
|
|
969
|
-
|
|
970
|
-
## Workflow
|
|
971
|
-
|
|
972
|
-
### Step 1: Structure Scan
|
|
973
|
-
\`\`\`bash
|
|
974
|
-
# Find key files
|
|
975
|
-
ls -la
|
|
976
|
-
find . -name "*.ts" -o -name "*.tsx" | head -20
|
|
977
|
-
\`\`\`
|
|
978
|
-
|
|
979
|
-
### Step 2: Entry Points
|
|
980
|
-
Identify main entry points:
|
|
981
|
-
- package.json scripts
|
|
982
|
-
- src/index.ts
|
|
983
|
-
- app/main.ts
|
|
984
|
-
|
|
985
|
-
### Step 3: Architecture Mapping
|
|
986
|
-
- Module boundaries
|
|
987
|
-
- Data flow paths
|
|
988
|
-
- External dependencies
|
|
989
|
-
|
|
990
|
-
### Step 4: Quality Assessment
|
|
991
|
-
- Complexity hotspots
|
|
992
|
-
- Test coverage gaps
|
|
993
|
-
- Security concerns
|
|
994
|
-
|
|
995
|
-
## Output Format
|
|
996
|
-
|
|
997
|
-
\`\`\`markdown
|
|
998
|
-
# Project Analysis: [Name]
|
|
999
|
-
|
|
1000
|
-
## Overview
|
|
1001
|
-
- Framework: [e.g., Next.js 14]
|
|
1002
|
-
- Language: [e.g., TypeScript 5.x]
|
|
1003
|
-
- Package Manager: [e.g., pnpm]
|
|
1004
|
-
|
|
1005
|
-
## Architecture
|
|
1006
|
-
### Layers
|
|
1007
|
-
1. Presentation (src/components/)
|
|
1008
|
-
2. Business Logic (src/services/)
|
|
1009
|
-
3. Data Access (src/repositories/)
|
|
1010
|
-
|
|
1011
|
-
### Key Modules
|
|
1012
|
-
| Module | Purpose | Files |
|
|
1013
|
-
|--------|---------|-------|
|
|
1014
|
-
| auth | Authentication | 12 |
|
|
1015
|
-
| api | API routes | 8 |
|
|
1016
|
-
|
|
1017
|
-
## Dependencies
|
|
1018
|
-
### Internal
|
|
1019
|
-
- auth → db, utils
|
|
1020
|
-
- api → auth, services
|
|
1021
|
-
|
|
1022
|
-
### External (Notable)
|
|
1023
|
-
- next: ^14.0.0
|
|
1024
|
-
- prisma: ^5.0.0
|
|
1025
|
-
|
|
1026
|
-
## Quality Metrics
|
|
1027
|
-
| Metric | Value | Status |
|
|
1028
|
-
|--------|-------|--------|
|
|
1029
|
-
| Avg Complexity | 8.2 | ✅ Good |
|
|
1030
|
-
| Test Coverage | 65% | ⚠️ Moderate |
|
|
1031
|
-
| Type Coverage | 95% | ✅ Good |
|
|
1032
|
-
|
|
1033
|
-
## Recommendations
|
|
1034
|
-
1. [Recommendation 1]
|
|
1035
|
-
2. [Recommendation 2]
|
|
1036
|
-
\`\`\`
|
|
1037
|
-
|
|
1038
|
-
## Next Steps
|
|
1039
|
-
|
|
1040
|
-
After analysis:
|
|
1041
|
-
- "vibe spec [feature]" - Create SPEC for changes
|
|
1042
|
-
- "vibe review" - Review existing code quality
|
|
1043
|
-
- Plan Mode - For simple modifications
|
|
1044
|
-
`,
|
|
1045
|
-
},
|
|
1046
|
-
{
|
|
1047
|
-
id: 'vibe-verify',
|
|
1048
|
-
content: `---
|
|
1049
|
-
name: vibe-verify
|
|
1050
|
-
model: claude-4.5-sonnet-thinking
|
|
1051
|
-
description: "Verify implementation against SPEC requirements. Use after implementation."
|
|
1052
|
-
---
|
|
1053
|
-
|
|
1054
|
-
# vibe verify - Verification Skill
|
|
1055
|
-
|
|
1056
|
-
Verifies implementation completeness against SPEC requirements.
|
|
1057
|
-
|
|
1058
|
-
## When to Use
|
|
1059
|
-
|
|
1060
|
-
- After completing implementation
|
|
1061
|
-
- Before marking feature as done
|
|
1062
|
-
- For requirement traceability
|
|
1063
|
-
|
|
1064
|
-
## Invocation
|
|
1065
|
-
|
|
1066
|
-
User says: "vibe verify [feature-name]"
|
|
1067
|
-
|
|
1068
|
-
## Pre-requisites
|
|
1069
|
-
|
|
1070
|
-
1. SPEC exists at \`.claude/vibe/specs/[feature-name]-spec.md\`
|
|
1071
|
-
2. Implementation is complete
|
|
1072
|
-
|
|
1073
|
-
## Workflow
|
|
1074
|
-
|
|
1075
|
-
### Step 1: Load SPEC
|
|
1076
|
-
Read SPEC and extract:
|
|
1077
|
-
- Requirements (REQ-XXX)
|
|
1078
|
-
- Acceptance criteria
|
|
1079
|
-
- Expected outputs
|
|
1080
|
-
|
|
1081
|
-
### Step 2: Map Implementation
|
|
1082
|
-
For each requirement:
|
|
1083
|
-
- Find implementing code
|
|
1084
|
-
- Identify test coverage
|
|
1085
|
-
- Check acceptance criteria
|
|
1086
|
-
|
|
1087
|
-
### Step 3: Gap Analysis
|
|
1088
|
-
Identify:
|
|
1089
|
-
- Unimplemented requirements
|
|
1090
|
-
- Untested features
|
|
1091
|
-
- Missing acceptance criteria
|
|
1092
|
-
|
|
1093
|
-
### Step 4: Generate Report
|
|
1094
|
-
|
|
1095
|
-
## Verification Levels
|
|
1096
|
-
|
|
1097
|
-
| Level | Meaning |
|
|
1098
|
-
|-------|---------|
|
|
1099
|
-
| ✅ Full | Code + Test + Verified |
|
|
1100
|
-
| ⚠️ Partial | Code exists, missing test or verification |
|
|
1101
|
-
| ❌ None | Not implemented |
|
|
1102
|
-
|
|
1103
|
-
## Output Format
|
|
1104
|
-
|
|
1105
|
-
\`\`\`markdown
|
|
1106
|
-
# Verification Report: [Feature]
|
|
1107
|
-
|
|
1108
|
-
## Summary
|
|
1109
|
-
- Total Requirements: 10
|
|
1110
|
-
- Fully Verified: 8 (80%)
|
|
1111
|
-
- Partial: 1 (10%)
|
|
1112
|
-
- Missing: 1 (10%)
|
|
1113
|
-
|
|
1114
|
-
## Requirement Matrix
|
|
1115
|
-
|
|
1116
|
-
| ID | Requirement | Code | Test | Status |
|
|
1117
|
-
|----|-------------|------|------|--------|
|
|
1118
|
-
| REQ-001 | User login | ✅ | ✅ | ✅ Full |
|
|
1119
|
-
| REQ-002 | Password reset | ✅ | ❌ | ⚠️ Partial |
|
|
1120
|
-
| REQ-003 | MFA support | ❌ | ❌ | ❌ None |
|
|
1121
|
-
|
|
1122
|
-
## Acceptance Criteria
|
|
1123
|
-
|
|
1124
|
-
| Criterion | Status | Evidence |
|
|
1125
|
-
|-----------|--------|----------|
|
|
1126
|
-
| Login < 2s | ✅ | Performance test |
|
|
1127
|
-
| No plain passwords | ✅ | Code review |
|
|
1128
|
-
|
|
1129
|
-
## Gaps to Address
|
|
1130
|
-
|
|
1131
|
-
1. **REQ-003**: MFA support not implemented
|
|
1132
|
-
2. **REQ-002**: Missing test for password reset
|
|
1133
|
-
|
|
1134
|
-
## Recommendation
|
|
1135
|
-
⚠️ Address gaps before release
|
|
1136
|
-
\`\`\`
|
|
1137
|
-
|
|
1138
|
-
## Next Steps
|
|
1139
|
-
|
|
1140
|
-
After verification:
|
|
1141
|
-
- Fix gaps if any
|
|
1142
|
-
- "vibe trace [feature]" - Full traceability matrix
|
|
1143
|
-
- "vibe review" - Final code review
|
|
1144
|
-
- Ready for release if all verified
|
|
1145
|
-
`,
|
|
1146
|
-
},
|
|
1147
|
-
{
|
|
1148
|
-
id: 'vibe-reason',
|
|
1149
|
-
content: `---
|
|
1150
|
-
name: vibe-reason
|
|
1151
|
-
model: claude-4.5-opus-high-thinking
|
|
1152
|
-
description: "Systematic 9-step reasoning framework. Use for complex problem solving."
|
|
1153
|
-
---
|
|
1154
|
-
|
|
1155
|
-
# vibe reason - Reasoning Framework Skill
|
|
1156
|
-
|
|
1157
|
-
Applies systematic reasoning to complex problems and decisions.
|
|
1158
|
-
|
|
1159
|
-
## When to Use
|
|
1160
|
-
|
|
1161
|
-
- Complex debugging scenarios
|
|
1162
|
-
- Architecture decisions
|
|
1163
|
-
- Trade-off analysis
|
|
1164
|
-
- Root cause analysis
|
|
1165
|
-
|
|
1166
|
-
## Invocation
|
|
1167
|
-
|
|
1168
|
-
User says: "vibe reason [problem]" or "Reason about [problem]"
|
|
1169
|
-
|
|
1170
|
-
## 9-Step Reasoning Framework
|
|
1171
|
-
|
|
1172
|
-
### Step 1: Problem Definition
|
|
1173
|
-
- What exactly is the problem?
|
|
1174
|
-
- What are the symptoms?
|
|
1175
|
-
- What is the expected vs actual behavior?
|
|
1176
|
-
|
|
1177
|
-
### Step 2: Context Gathering
|
|
1178
|
-
- What is the relevant code/system?
|
|
1179
|
-
- What changed recently?
|
|
1180
|
-
- What are the constraints?
|
|
1181
|
-
|
|
1182
|
-
### Step 3: Hypothesis Generation
|
|
1183
|
-
Generate multiple hypotheses:
|
|
1184
|
-
- Hypothesis A: [Description]
|
|
1185
|
-
- Hypothesis B: [Description]
|
|
1186
|
-
- Hypothesis C: [Description]
|
|
1187
|
-
|
|
1188
|
-
### Step 4: Evidence Collection
|
|
1189
|
-
For each hypothesis:
|
|
1190
|
-
- What evidence supports it?
|
|
1191
|
-
- What evidence contradicts it?
|
|
1192
|
-
- What additional info needed?
|
|
1193
|
-
|
|
1194
|
-
### Step 5: Hypothesis Evaluation
|
|
1195
|
-
Score each hypothesis:
|
|
1196
|
-
| Hypothesis | Support | Contradict | Confidence |
|
|
1197
|
-
|------------|---------|------------|------------|
|
|
1198
|
-
| A | 3 | 1 | 75% |
|
|
1199
|
-
| B | 2 | 2 | 50% |
|
|
1200
|
-
| C | 1 | 3 | 25% |
|
|
1201
|
-
|
|
1202
|
-
### Step 6: Deep Dive
|
|
1203
|
-
Focus on highest-confidence hypothesis:
|
|
1204
|
-
- Trace code paths
|
|
1205
|
-
- Check logs/metrics
|
|
1206
|
-
- Reproduce issue
|
|
1207
|
-
|
|
1208
|
-
### Step 7: Solution Design
|
|
1209
|
-
Design solution addressing root cause:
|
|
1210
|
-
- Option 1: [Description] - Pros/Cons
|
|
1211
|
-
- Option 2: [Description] - Pros/Cons
|
|
1212
|
-
|
|
1213
|
-
### Step 8: Risk Assessment
|
|
1214
|
-
| Risk | Impact | Probability | Mitigation |
|
|
1215
|
-
|------|--------|-------------|------------|
|
|
1216
|
-
| [Risk 1] | High | Medium | [Strategy] |
|
|
1217
|
-
|
|
1218
|
-
### Step 9: Recommendation
|
|
1219
|
-
Final recommendation with:
|
|
1220
|
-
- Chosen solution
|
|
1221
|
-
- Implementation steps
|
|
1222
|
-
- Verification plan
|
|
1223
|
-
|
|
1224
|
-
## Output Format
|
|
1225
|
-
|
|
1226
|
-
\`\`\`markdown
|
|
1227
|
-
# Reasoning Analysis: [Problem]
|
|
1228
|
-
|
|
1229
|
-
## 1. Problem Definition
|
|
1230
|
-
[Clear statement of the problem]
|
|
1231
|
-
|
|
1232
|
-
## 2. Context
|
|
1233
|
-
[Relevant background and constraints]
|
|
1234
|
-
|
|
1235
|
-
## 3. Hypotheses
|
|
1236
|
-
1. **H1**: [Description]
|
|
1237
|
-
2. **H2**: [Description]
|
|
1238
|
-
3. **H3**: [Description]
|
|
1239
|
-
|
|
1240
|
-
## 4-5. Evidence & Evaluation
|
|
1241
|
-
| Hypothesis | Evidence For | Evidence Against | Confidence |
|
|
1242
|
-
|------------|--------------|------------------|------------|
|
|
1243
|
-
| H1 | [List] | [List] | 80% |
|
|
1244
|
-
| H2 | [List] | [List] | 40% |
|
|
1245
|
-
|
|
1246
|
-
## 6. Deep Dive (H1)
|
|
1247
|
-
[Detailed analysis of most likely cause]
|
|
1248
|
-
|
|
1249
|
-
## 7. Solutions
|
|
1250
|
-
### Option A (Recommended)
|
|
1251
|
-
- Description: [...]
|
|
1252
|
-
- Pros: [...]
|
|
1253
|
-
- Cons: [...]
|
|
1254
|
-
|
|
1255
|
-
### Option B
|
|
1256
|
-
- Description: [...]
|
|
1257
|
-
- Pros: [...]
|
|
1258
|
-
- Cons: [...]
|
|
1259
|
-
|
|
1260
|
-
## 8. Risks
|
|
1261
|
-
| Risk | Mitigation |
|
|
1262
|
-
|------|------------|
|
|
1263
|
-
| [Risk] | [Strategy] |
|
|
1264
|
-
|
|
1265
|
-
## 9. Recommendation
|
|
1266
|
-
**Proceed with Option A because:**
|
|
1267
|
-
1. [Reason 1]
|
|
1268
|
-
2. [Reason 2]
|
|
1269
|
-
|
|
1270
|
-
**Next Steps:**
|
|
1271
|
-
1. [Step 1]
|
|
1272
|
-
2. [Step 2]
|
|
1273
|
-
\`\`\`
|
|
1274
|
-
|
|
1275
|
-
## Next Steps
|
|
1276
|
-
|
|
1277
|
-
After reasoning:
|
|
1278
|
-
- Implement chosen solution
|
|
1279
|
-
- "vibe spec [solution]" - If solution needs SPEC
|
|
1280
|
-
- "vibe verify" - Verify solution addresses problem
|
|
1281
|
-
`,
|
|
1282
|
-
},
|
|
1283
|
-
{
|
|
1284
|
-
id: 'vibe-ui',
|
|
1285
|
-
content: `---
|
|
1286
|
-
name: vibe-ui
|
|
1287
|
-
model: gpt-5.2-codex
|
|
1288
|
-
description: "UI preview and generation utilities. Use for UI component work."
|
|
1289
|
-
---
|
|
1290
|
-
|
|
1291
|
-
# vibe ui - UI Utilities Skill
|
|
1292
|
-
|
|
1293
|
-
UI preview, generation, and refactoring utilities.
|
|
1294
|
-
|
|
1295
|
-
## When to Use
|
|
1296
|
-
|
|
1297
|
-
- Creating new UI components
|
|
1298
|
-
- Previewing UI designs
|
|
1299
|
-
- Refactoring existing components
|
|
1300
|
-
- Generating component code from descriptions
|
|
1301
|
-
|
|
1302
|
-
## Invocation
|
|
1303
|
-
|
|
1304
|
-
User says: "vibe ui [description]" or "Preview UI for [description]"
|
|
1305
|
-
|
|
1306
|
-
## Modes
|
|
1307
|
-
|
|
1308
|
-
### 1. UI Preview
|
|
1309
|
-
Generate visual preview of UI description.
|
|
1310
|
-
\`\`\`
|
|
1311
|
-
vibe ui "Login form with email, password, and remember me checkbox"
|
|
1312
|
-
\`\`\`
|
|
1313
|
-
|
|
1314
|
-
### 2. Component Generation
|
|
1315
|
-
Generate component code from description.
|
|
1316
|
-
\`\`\`
|
|
1317
|
-
vibe ui generate "User profile card with avatar, name, and bio"
|
|
1318
|
-
\`\`\`
|
|
1319
|
-
|
|
1320
|
-
### 3. UI Refactoring
|
|
1321
|
-
Refactor existing component for better patterns.
|
|
1322
|
-
\`\`\`
|
|
1323
|
-
vibe ui refactor src/components/UserCard.tsx
|
|
1324
|
-
\`\`\`
|
|
1325
|
-
|
|
1326
|
-
## Workflow
|
|
1327
|
-
|
|
1328
|
-
### UI Preview Mode
|
|
1329
|
-
|
|
1330
|
-
1. **Parse Description**
|
|
1331
|
-
- Extract UI elements
|
|
1332
|
-
- Identify layout requirements
|
|
1333
|
-
- Note interactions
|
|
1334
|
-
|
|
1335
|
-
2. **Generate Preview**
|
|
1336
|
-
- Create HTML/CSS mockup
|
|
1337
|
-
- Show component structure
|
|
1338
|
-
- Illustrate states (default, hover, active)
|
|
1339
|
-
|
|
1340
|
-
3. **Output**
|
|
1341
|
-
- Visual description
|
|
1342
|
-
- Component hierarchy
|
|
1343
|
-
- Suggested implementation
|
|
1344
|
-
|
|
1345
|
-
### Component Generation Mode
|
|
1346
|
-
|
|
1347
|
-
1. **Analyze Requirements**
|
|
1348
|
-
- Component purpose
|
|
1349
|
-
- Props interface
|
|
1350
|
-
- State requirements
|
|
1351
|
-
|
|
1352
|
-
2. **Generate Code**
|
|
1353
|
-
- TypeScript/React component
|
|
1354
|
-
- Styled with project's CSS approach
|
|
1355
|
-
- Include prop types
|
|
1356
|
-
|
|
1357
|
-
3. **Output**
|
|
1358
|
-
- Complete component file
|
|
1359
|
-
- Usage example
|
|
1360
|
-
- Test suggestions
|
|
1361
|
-
|
|
1362
|
-
### Refactoring Mode
|
|
1363
|
-
|
|
1364
|
-
1. **Analyze Existing**
|
|
1365
|
-
- Current structure
|
|
1366
|
-
- Identified issues
|
|
1367
|
-
- Improvement opportunities
|
|
1368
|
-
|
|
1369
|
-
2. **Plan Refactor**
|
|
1370
|
-
- Extract components
|
|
1371
|
-
- Improve patterns
|
|
1372
|
-
- Optimize performance
|
|
1373
|
-
|
|
1374
|
-
3. **Apply Changes**
|
|
1375
|
-
- Preserve functionality
|
|
1376
|
-
- Improve readability
|
|
1377
|
-
- Add documentation
|
|
1378
|
-
|
|
1379
|
-
## Output Format
|
|
1380
|
-
|
|
1381
|
-
### Preview Output
|
|
1382
|
-
\`\`\`markdown
|
|
1383
|
-
# UI Preview: [Description]
|
|
1384
|
-
|
|
1385
|
-
## Visual Structure
|
|
1386
|
-
\`\`\`
|
|
1387
|
-
┌─────────────────────────────────┐
|
|
1388
|
-
│ [Header] │
|
|
1389
|
-
├─────────────────────────────────┤
|
|
1390
|
-
│ 📧 Email: [_______________] │
|
|
1391
|
-
│ 🔒 Password: [_______________] │
|
|
1392
|
-
│ ☐ Remember me │
|
|
1393
|
-
│ │
|
|
1394
|
-
│ [ Login ] │
|
|
1395
|
-
└─────────────────────────────────┘
|
|
1396
|
-
\`\`\`
|
|
1397
|
-
|
|
1398
|
-
## Component Hierarchy
|
|
1399
|
-
- LoginForm
|
|
1400
|
-
- FormField (email)
|
|
1401
|
-
- FormField (password)
|
|
1402
|
-
- Checkbox (remember)
|
|
1403
|
-
- Button (submit)
|
|
1404
|
-
|
|
1405
|
-
## Suggested Props
|
|
1406
|
-
\`\`\`typescript
|
|
1407
|
-
interface LoginFormProps {
|
|
1408
|
-
onSubmit: (data: LoginData) => void;
|
|
1409
|
-
isLoading?: boolean;
|
|
1410
|
-
error?: string;
|
|
1411
|
-
}
|
|
1412
|
-
\`\`\`
|
|
1413
|
-
\`\`\`
|
|
1414
|
-
|
|
1415
|
-
### Generation Output
|
|
1416
|
-
\`\`\`typescript
|
|
1417
|
-
// Complete component code with:
|
|
1418
|
-
// - TypeScript types
|
|
1419
|
-
// - React hooks
|
|
1420
|
-
// - Styled components or CSS classes
|
|
1421
|
-
// - Event handlers
|
|
1422
|
-
\`\`\`
|
|
1423
|
-
|
|
1424
|
-
## Next Steps
|
|
1425
|
-
|
|
1426
|
-
After UI work:
|
|
1427
|
-
- "vibe review" - Review generated components
|
|
1428
|
-
- "vibe run [feature]" - Continue implementation
|
|
1429
|
-
- Add tests for new components
|
|
1430
|
-
`,
|
|
1431
|
-
},
|
|
1432
|
-
];
|
|
1433
|
-
let updated = 0;
|
|
1434
|
-
for (const skill of skills) {
|
|
1435
|
-
const skillDir = path.join(cursorSkillsDir, skill.id);
|
|
1436
|
-
ensureDir(skillDir);
|
|
1437
|
-
const destPath = path.join(skillDir, 'SKILL.md');
|
|
1438
|
-
try {
|
|
1439
|
-
fs.writeFileSync(destPath, skill.content, 'utf-8');
|
|
1440
|
-
updated++;
|
|
1441
|
-
}
|
|
1442
|
-
catch {
|
|
1443
|
-
// 무시 - 권한 문제 등
|
|
1444
|
-
}
|
|
1445
|
-
}
|
|
1446
|
-
console.log(` 🎯 Cursor skills: ${updated}/${skills.length} updated`);
|
|
1447
|
-
}
|
|
1448
|
-
/**
|
|
1449
|
-
* postinstall 메인 함수
|
|
1450
|
-
*/
|
|
1451
|
-
function main() {
|
|
1452
|
-
try {
|
|
1453
|
-
const globalVibeDir = getVibeConfigDir();
|
|
1454
|
-
const nodeModulesDir = path.join(globalVibeDir, 'node_modules');
|
|
1455
|
-
const vibePackageDir = path.join(nodeModulesDir, '@su-record', 'vibe');
|
|
1456
|
-
const packageRoot = path.resolve(__dirname, '..', '..');
|
|
1457
|
-
// 1. 전역 vibe 디렉토리 구조 생성
|
|
1458
|
-
ensureDir(globalVibeDir);
|
|
1459
|
-
ensureDir(nodeModulesDir);
|
|
1460
|
-
ensureDir(path.join(nodeModulesDir, '@su-record'));
|
|
1461
|
-
// 2. 패키지 복사
|
|
1462
|
-
if (fs.existsSync(vibePackageDir)) {
|
|
1463
|
-
removeDirRecursive(vibePackageDir);
|
|
1464
|
-
}
|
|
1465
|
-
if (fs.existsSync(packageRoot)) {
|
|
1466
|
-
copyDirRecursive(packageRoot, vibePackageDir);
|
|
1467
|
-
}
|
|
1468
|
-
// 3. 훅 스크립트 복사 (%APPDATA%/vibe/hooks/scripts/)
|
|
1469
|
-
const hooksSource = path.join(packageRoot, 'hooks', 'scripts');
|
|
1470
|
-
const hooksTarget = path.join(globalVibeDir, 'hooks', 'scripts');
|
|
1471
|
-
if (fs.existsSync(hooksSource)) {
|
|
1472
|
-
ensureDir(path.join(globalVibeDir, 'hooks'));
|
|
1473
|
-
if (fs.existsSync(hooksTarget)) {
|
|
1474
|
-
removeDirRecursive(hooksTarget);
|
|
1475
|
-
}
|
|
1476
|
-
copyDirRecursive(hooksSource, hooksTarget);
|
|
1477
|
-
}
|
|
1478
|
-
// 4. ~/.claude/ 전역 assets 설치 (commands, agents, skills)
|
|
1479
|
-
const globalClaudeDir = path.join(os.homedir(), '.claude');
|
|
1480
|
-
ensureDir(globalClaudeDir);
|
|
1481
|
-
// commands 복사
|
|
1482
|
-
const commandsSource = path.join(packageRoot, 'commands');
|
|
1483
|
-
const globalCommandsDir = path.join(globalClaudeDir, 'commands');
|
|
1484
|
-
if (fs.existsSync(commandsSource)) {
|
|
1485
|
-
ensureDir(globalCommandsDir);
|
|
1486
|
-
copyDirRecursive(commandsSource, globalCommandsDir);
|
|
1487
|
-
}
|
|
1488
|
-
// agents 복사
|
|
1489
|
-
const agentsSource = path.join(packageRoot, 'agents');
|
|
1490
|
-
const globalAgentsDir = path.join(globalClaudeDir, 'agents');
|
|
1491
|
-
if (fs.existsSync(agentsSource)) {
|
|
1492
|
-
ensureDir(globalAgentsDir);
|
|
1493
|
-
copyDirRecursive(agentsSource, globalAgentsDir);
|
|
1494
|
-
}
|
|
1495
|
-
// skills 복사 (덮어쓰지 않고 없는 것만 추가)
|
|
1496
|
-
const skillsSource = path.join(packageRoot, 'skills');
|
|
1497
|
-
const globalSkillsDir = path.join(globalClaudeDir, 'skills');
|
|
1498
|
-
if (fs.existsSync(skillsSource)) {
|
|
1499
|
-
ensureDir(globalSkillsDir);
|
|
1500
|
-
copySkillsIfMissing(skillsSource, globalSkillsDir);
|
|
1501
|
-
}
|
|
1502
|
-
// 5. ~/.claude/vibe/ 전역 문서 설치 (rules, languages, templates)
|
|
1503
|
-
// 프로젝트별로 복사하지 않고 전역에서 참조
|
|
1504
|
-
const globalVibeAssetsDir = path.join(globalClaudeDir, 'vibe');
|
|
1505
|
-
ensureDir(globalVibeAssetsDir);
|
|
1506
|
-
// ~/.claude/vibe/skills/ 전역 vibe 스킬 설치 (v2.5.12)
|
|
1507
|
-
const vibeSkillsDir = path.join(globalVibeAssetsDir, 'skills');
|
|
1508
|
-
ensureDir(vibeSkillsDir);
|
|
1509
|
-
if (fs.existsSync(skillsSource)) {
|
|
1510
|
-
copySkillsIfMissing(skillsSource, vibeSkillsDir);
|
|
1511
|
-
}
|
|
1512
|
-
// 인라인 기본 스킬 추가 (번들에 없는 추가 스킬)
|
|
1513
|
-
seedInlineSkills(vibeSkillsDir);
|
|
1514
|
-
// vibe/rules 복사
|
|
1515
|
-
const rulesSource = path.join(packageRoot, 'vibe', 'rules');
|
|
1516
|
-
const globalRulesDir = path.join(globalVibeAssetsDir, 'rules');
|
|
1517
|
-
if (fs.existsSync(rulesSource)) {
|
|
1518
|
-
if (fs.existsSync(globalRulesDir)) {
|
|
1519
|
-
removeDirRecursive(globalRulesDir);
|
|
1520
|
-
}
|
|
1521
|
-
copyDirRecursive(rulesSource, globalRulesDir);
|
|
1522
|
-
}
|
|
1523
|
-
// vibe/templates 복사
|
|
1524
|
-
const templatesSource = path.join(packageRoot, 'vibe', 'templates');
|
|
1525
|
-
const globalTemplatesDir = path.join(globalVibeAssetsDir, 'templates');
|
|
1526
|
-
if (fs.existsSync(templatesSource)) {
|
|
1527
|
-
if (fs.existsSync(globalTemplatesDir)) {
|
|
1528
|
-
removeDirRecursive(globalTemplatesDir);
|
|
1529
|
-
}
|
|
1530
|
-
copyDirRecursive(templatesSource, globalTemplatesDir);
|
|
1531
|
-
}
|
|
1532
|
-
// languages 복사
|
|
1533
|
-
const languagesSource = path.join(packageRoot, 'languages');
|
|
1534
|
-
const globalLanguagesDir = path.join(globalVibeAssetsDir, 'languages');
|
|
1535
|
-
if (fs.existsSync(languagesSource)) {
|
|
1536
|
-
if (fs.existsSync(globalLanguagesDir)) {
|
|
1537
|
-
removeDirRecursive(globalLanguagesDir);
|
|
1538
|
-
}
|
|
1539
|
-
copyDirRecursive(languagesSource, globalLanguagesDir);
|
|
1540
|
-
}
|
|
1541
|
-
// 6. hooks는 프로젝트 레벨에서 관리 (vibe init/update에서 처리)
|
|
1542
|
-
// 전역 설정에는 훅을 등록하지 않음 - 프로젝트별 .claude/settings.local.json 사용
|
|
1543
|
-
// 6-1. 레거시 전역 hooks 정리 (이전 버전 호환성)
|
|
1544
|
-
cleanupGlobalSettingsHooks();
|
|
1545
|
-
// 7. Cursor IDE 지원 - ~/.cursor/agents/에 변환된 서브에이전트 설치
|
|
1546
|
-
const cursorAgentsDir = path.join(os.homedir(), '.cursor', 'agents');
|
|
1547
|
-
installCursorAgents(agentsSource, cursorAgentsDir);
|
|
1548
|
-
// 8. Cursor 프로젝트 룰 템플릿 생성 - ~/.cursor/rules-template/
|
|
1549
|
-
// 프로젝트별로 .cursor/rules/에 복사해서 사용
|
|
1550
|
-
// postinstall에서는 스택 감지 없이 공통 룰만 생성
|
|
1551
|
-
const cursorRulesTemplateDir = path.join(os.homedir(), '.cursor', 'rules-template');
|
|
1552
|
-
generateCursorRules(cursorRulesTemplateDir, [], globalLanguagesDir);
|
|
1553
|
-
// 9. Cursor Skills 생성 - ~/.cursor/skills/
|
|
1554
|
-
// VIBE 커맨드를 Cursor 스킬로 변환
|
|
1555
|
-
const cursorSkillsDir = path.join(os.homedir(), '.cursor', 'skills');
|
|
1556
|
-
generateCursorSkills(cursorSkillsDir);
|
|
1557
|
-
console.log(`✅ vibe global setup complete: ${globalVibeDir}`);
|
|
1558
|
-
console.log(`✅ cursor agents installed: ${cursorAgentsDir}`);
|
|
1559
|
-
console.log(`✅ cursor rules template: ${cursorRulesTemplateDir}`);
|
|
1560
|
-
console.log(`✅ cursor skills installed: ${cursorSkillsDir}`);
|
|
1561
|
-
}
|
|
1562
|
-
catch (error) {
|
|
1563
|
-
// postinstall 실패해도 설치는 계속 진행
|
|
1564
|
-
console.warn('⚠️ vibe postinstall warning:', error.message);
|
|
1565
|
-
}
|
|
1566
|
-
}
|
|
1567
5
|
// Export functions for use in vibe init/update
|
|
1568
|
-
export { installCursorAgents, generateCursorRules, generateCursorSkills,
|
|
1569
|
-
// CLI
|
|
1570
|
-
|
|
1571
|
-
const currentUrl = import.meta.url;
|
|
1572
|
-
const isDirectRun = process.argv[1] && (currentUrl.includes(process.argv[1].replace(/\\/g, '/')) ||
|
|
1573
|
-
process.argv[1].includes('postinstall'));
|
|
1574
|
-
if (isDirectRun) {
|
|
1575
|
-
main();
|
|
1576
|
-
}
|
|
6
|
+
export { installCursorAgents, installClaudeAgents, generateCursorRules, generateCursorSkills, getCoreConfigDir, STACK_TO_LANGUAGE_FILE, GLOBAL_SKILLS, STACK_TO_SKILLS, COMMERCE_SKILLS, resolveLocalSkills, copySkillsFiltered, } from './postinstall/index.js';
|
|
7
|
+
// CLI 엔트리 포인트 - main.ts에서 직접 실행 감지 처리
|
|
8
|
+
import './postinstall/main.js';
|
|
1577
9
|
//# sourceMappingURL=postinstall.js.map
|