@su-record/vibe 2.7.10 → 2.7.12
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.example +37 -37
- package/CLAUDE.md +126 -222
- package/LICENSE +21 -21
- package/README.md +580 -580
- package/agents/architect-low.md +41 -41
- package/agents/architect-medium.md +59 -59
- package/agents/architect.md +80 -80
- package/agents/build-error-resolver.md +115 -115
- package/agents/compounder.md +261 -261
- package/agents/diagrammer.md +178 -178
- package/agents/docs/api-documenter.md +99 -99
- package/agents/docs/changelog-writer.md +93 -93
- package/agents/e2e-tester.md +266 -266
- package/agents/explorer-low.md +42 -42
- package/agents/explorer-medium.md +59 -59
- package/agents/explorer.md +48 -48
- package/agents/implementer-low.md +43 -43
- package/agents/implementer-medium.md +52 -52
- package/agents/implementer.md +54 -54
- package/agents/junior-mentor.md +141 -141
- package/agents/planning/requirements-analyst.md +84 -84
- package/agents/planning/ux-advisor.md +83 -83
- package/agents/qa/acceptance-tester.md +86 -86
- package/agents/qa/edge-case-finder.md +93 -93
- package/agents/refactor-cleaner.md +143 -143
- package/agents/research/best-practices-agent.md +199 -199
- package/agents/research/codebase-patterns-agent.md +157 -157
- package/agents/research/framework-docs-agent.md +188 -188
- package/agents/research/security-advisory-agent.md +213 -213
- package/agents/review/architecture-reviewer.md +107 -107
- package/agents/review/complexity-reviewer.md +116 -116
- package/agents/review/data-integrity-reviewer.md +88 -88
- package/agents/review/git-history-reviewer.md +103 -103
- package/agents/review/performance-reviewer.md +86 -86
- package/agents/review/python-reviewer.md +150 -150
- package/agents/review/rails-reviewer.md +139 -139
- package/agents/review/react-reviewer.md +144 -144
- package/agents/review/security-reviewer.md +80 -80
- package/agents/review/simplicity-reviewer.md +140 -140
- package/agents/review/test-coverage-reviewer.md +116 -116
- package/agents/review/typescript-reviewer.md +127 -127
- package/agents/searcher.md +54 -54
- package/agents/simplifier.md +120 -120
- package/agents/tester.md +49 -49
- package/agents/ui/ui-a11y-auditor.md +93 -93
- package/agents/ui/ui-antipattern-detector.md +94 -94
- package/agents/ui/ui-dataviz-advisor.md +69 -69
- package/agents/ui/ui-design-system-gen.md +57 -57
- package/agents/ui/ui-industry-analyzer.md +49 -49
- package/agents/ui/ui-layout-architect.md +65 -65
- package/agents/ui/ui-stack-implementer.md +68 -68
- package/agents/ui/ux-compliance-reviewer.md +81 -81
- package/agents/ui-previewer.md +260 -260
- package/commands/vibe.run.md +83 -0
- package/commands/vibe.spec.review.md +558 -558
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.voice.md +79 -79
- package/dist/cli/auth.d.ts +1 -1
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +15 -7
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/evolution.js +12 -12
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +62 -56
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +9 -6
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/remove.js +14 -14
- package/dist/cli/commands/sentinel.js +27 -27
- package/dist/cli/commands/skills.d.ts +13 -0
- package/dist/cli/commands/skills.d.ts.map +1 -0
- package/dist/cli/commands/skills.js +83 -0
- package/dist/cli/commands/skills.js.map +1 -0
- package/dist/cli/commands/slack.js +10 -10
- package/dist/cli/commands/telegram.js +12 -12
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +3 -0
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +64 -47
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm/claude-commands.js +16 -16
- package/dist/cli/llm/config.js +18 -18
- package/dist/cli/llm/gemini-commands.js +47 -47
- package/dist/cli/llm/gpt-commands.js +19 -19
- package/dist/cli/llm/help.js +21 -21
- package/dist/cli/postinstall/constants.d.ts +8 -0
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +33 -0
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/cursor-agents.js +32 -32
- package/dist/cli/postinstall/cursor-rules.js +83 -83
- package/dist/cli/postinstall/cursor-skills.js +743 -743
- package/dist/cli/postinstall/index.d.ts +1 -1
- package/dist/cli/postinstall/index.d.ts.map +1 -1
- package/dist/cli/postinstall/index.js +1 -1
- package/dist/cli/postinstall/index.js.map +1 -1
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
- package/dist/cli/setup/ProjectSetup.js +5 -0
- package/dist/cli/setup/ProjectSetup.js.map +1 -1
- package/dist/cli/setup/Provisioner.js +42 -42
- package/dist/cli/types.d.ts +1 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/infra/lib/DeepInit.js +24 -24
- package/dist/infra/lib/IterationTracker.js +11 -11
- package/dist/infra/lib/PythonParser.js +108 -108
- package/dist/infra/lib/ReviewRace.js +96 -96
- package/dist/infra/lib/SkillFrontmatter.js +28 -28
- package/dist/infra/lib/SkillQualityGate.js +9 -9
- package/dist/infra/lib/SkillRepository.js +159 -159
- package/dist/infra/lib/UltraQA.js +99 -99
- package/dist/infra/lib/autonomy/AuditStore.js +41 -41
- package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
- package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
- package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
- package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
- package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
- package/dist/infra/lib/embedding/VectorStore.js +22 -22
- package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
- package/dist/infra/lib/evolution/DescriptionOptimizer.d.ts +79 -0
- package/dist/infra/lib/evolution/DescriptionOptimizer.d.ts.map +1 -0
- package/dist/infra/lib/evolution/DescriptionOptimizer.js +259 -0
- package/dist/infra/lib/evolution/DescriptionOptimizer.js.map +1 -0
- package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
- package/dist/infra/lib/evolution/InsightStore.js +90 -90
- package/dist/infra/lib/evolution/RollbackManager.js +5 -5
- package/dist/infra/lib/evolution/SkillBenchmark.d.ts +81 -0
- package/dist/infra/lib/evolution/SkillBenchmark.d.ts.map +1 -0
- package/dist/infra/lib/evolution/SkillBenchmark.js +233 -0
- package/dist/infra/lib/evolution/SkillBenchmark.js.map +1 -0
- package/dist/infra/lib/evolution/SkillClassifier.d.ts +35 -0
- package/dist/infra/lib/evolution/SkillClassifier.d.ts.map +1 -0
- package/dist/infra/lib/evolution/SkillClassifier.js +167 -0
- package/dist/infra/lib/evolution/SkillClassifier.js.map +1 -0
- package/dist/infra/lib/evolution/SkillEvalRunner.d.ts +102 -0
- package/dist/infra/lib/evolution/SkillEvalRunner.d.ts.map +1 -0
- package/dist/infra/lib/evolution/SkillEvalRunner.js +256 -0
- package/dist/infra/lib/evolution/SkillEvalRunner.js.map +1 -0
- package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
- package/dist/infra/lib/evolution/UsageTracker.js +28 -28
- package/dist/infra/lib/evolution/__tests__/eval.test.d.ts +2 -0
- package/dist/infra/lib/evolution/__tests__/eval.test.d.ts.map +1 -0
- package/dist/infra/lib/evolution/__tests__/eval.test.js +539 -0
- package/dist/infra/lib/evolution/__tests__/eval.test.js.map +1 -0
- package/dist/infra/lib/evolution/index.d.ts +8 -0
- package/dist/infra/lib/evolution/index.d.ts.map +1 -1
- package/dist/infra/lib/evolution/index.js +5 -0
- package/dist/infra/lib/evolution/index.js.map +1 -1
- package/dist/infra/lib/gemini/constants.js +14 -14
- package/dist/infra/lib/gemini/orchestration.js +5 -5
- package/dist/infra/lib/gpt/oauth.js +44 -44
- package/dist/infra/lib/gpt/orchestration.js +4 -4
- package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
- package/dist/infra/lib/memory/MemorySearch.js +57 -57
- package/dist/infra/lib/memory/MemoryStorage.js +181 -181
- package/dist/infra/lib/memory/ObservationStore.js +28 -28
- package/dist/infra/lib/memory/ReflectionStore.js +30 -30
- package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
- package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
- package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
- package/dist/infra/orchestrator/AgentManager.js +12 -12
- package/dist/infra/orchestrator/AgentRegistry.js +65 -65
- package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
- package/dist/infra/orchestrator/parallelResearch.js +24 -24
- package/dist/tools/convention/analyzeComplexity.test.js +115 -115
- package/dist/tools/convention/validateCodeQuality.test.js +104 -104
- package/dist/tools/memory/createMemoryTimeline.js +10 -10
- package/dist/tools/memory/getMemoryGraph.js +12 -12
- package/dist/tools/memory/getSessionContext.js +9 -9
- package/dist/tools/memory/linkMemories.js +14 -14
- package/dist/tools/memory/listMemories.js +4 -4
- package/dist/tools/memory/recallMemory.js +4 -4
- package/dist/tools/memory/saveMemory.js +4 -4
- package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
- package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
- package/dist/tools/semantic/astGrep.test.js +6 -6
- package/dist/tools/spec/prdParser.test.js +171 -171
- package/dist/tools/spec/specGenerator.js +169 -169
- package/dist/tools/spec/traceabilityMatrix.js +64 -64
- package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
- package/hooks/gemini-hooks.json +73 -73
- package/hooks/hooks.json +137 -137
- package/hooks/scripts/code-check.js +70 -70
- package/hooks/scripts/context-save.js +212 -212
- package/hooks/scripts/hud-status.js +291 -291
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/llm-orchestrate.js +646 -646
- package/hooks/scripts/post-edit.js +32 -32
- package/hooks/scripts/pre-tool-guard.js +125 -125
- package/hooks/scripts/prompt-dispatcher.js +185 -185
- package/hooks/scripts/sentinel-guard.js +104 -104
- package/hooks/scripts/session-start.js +106 -106
- package/hooks/scripts/stop-notify.js +209 -209
- package/hooks/scripts/utils.js +100 -100
- package/languages/csharp-unity.md +515 -515
- package/languages/gdscript-godot.md +470 -470
- package/languages/ruby-rails.md +489 -489
- package/languages/typescript-angular.md +433 -433
- package/languages/typescript-astro.md +416 -416
- package/languages/typescript-electron.md +406 -406
- package/languages/typescript-nestjs.md +524 -524
- package/languages/typescript-svelte.md +407 -407
- package/languages/typescript-tauri.md +365 -365
- package/package.json +121 -121
- package/skills/agents-md/SKILL.md +120 -120
- package/skills/arch-guard/SKILL.md +180 -0
- package/skills/brand-assets/SKILL.md +146 -146
- package/skills/capability-loop/SKILL.md +167 -0
- package/skills/characterization-test/SKILL.md +206 -206
- package/skills/commerce-patterns/SKILL.md +59 -59
- package/skills/commit-push-pr/SKILL.md +75 -75
- package/skills/context7-usage/SKILL.md +105 -105
- package/skills/core-capabilities/SKILL.md +48 -48
- package/skills/e2e-commerce/SKILL.md +57 -57
- package/skills/exec-plan/SKILL.md +147 -0
- package/skills/frontend-design/SKILL.md +73 -73
- package/skills/git-worktree/SKILL.md +72 -72
- package/skills/handoff/SKILL.md +109 -109
- package/skills/parallel-research/SKILL.md +87 -87
- package/skills/priority-todos/SKILL.md +63 -63
- package/skills/seo-checklist/SKILL.md +57 -57
- package/skills/techdebt/SKILL.md +122 -122
- package/skills/tool-fallback/SKILL.md +103 -103
- package/skills/typescript-advanced-types/SKILL.md +65 -65
- package/skills/ui-ux-pro-max/SKILL.md +206 -206
- package/skills/vercel-react-best-practices/SKILL.md +59 -59
- package/skills/video-production/SKILL.md +51 -51
- package/vibe/config.json +29 -29
- package/vibe/constitution.md +227 -227
- package/vibe/rules/principles/communication-guide.md +98 -98
- package/vibe/rules/principles/development-philosophy.md +52 -52
- package/vibe/rules/principles/quick-start.md +102 -102
- package/vibe/rules/quality/bdd-contract-testing.md +393 -393
- package/vibe/rules/quality/checklist.md +276 -276
- package/vibe/rules/quality/performance.md +236 -236
- package/vibe/rules/quality/testing-strategy.md +440 -440
- package/vibe/rules/standards/anti-patterns.md +541 -541
- package/vibe/rules/standards/code-structure.md +291 -291
- package/vibe/rules/standards/complexity-metrics.md +313 -313
- package/vibe/rules/standards/git-workflow.md +237 -237
- package/vibe/rules/standards/naming-conventions.md +198 -198
- package/vibe/rules/standards/security.md +305 -305
- package/vibe/rules/writing/document-style.md +74 -74
- package/vibe/setup.sh +31 -31
- package/vibe/templates/constitution-template.md +252 -252
- package/vibe/templates/contract-backend-template.md +526 -526
- package/vibe/templates/contract-frontend-template.md +599 -599
- package/vibe/templates/feature-template.md +96 -96
- package/vibe/templates/spec-template.md +221 -221
- package/vibe/ui-ux-data/charts.csv +26 -26
- package/vibe/ui-ux-data/colors.csv +97 -97
- package/vibe/ui-ux-data/icons.csv +101 -101
- package/vibe/ui-ux-data/landing.csv +31 -31
- package/vibe/ui-ux-data/products.csv +96 -96
- package/vibe/ui-ux-data/react-performance.csv +45 -45
- package/vibe/ui-ux-data/stacks/astro.csv +54 -54
- package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
- package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
- package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
- package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
- package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
- package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
- package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
- package/vibe/ui-ux-data/stacks/react.csv +54 -54
- package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
- package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
- package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
- package/vibe/ui-ux-data/stacks/vue.csv +50 -50
- package/vibe/ui-ux-data/styles.csv +68 -68
- package/vibe/ui-ux-data/typography.csv +57 -57
- package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
- package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
- package/vibe/ui-ux-data/version.json +31 -31
- package/vibe/ui-ux-data/web-interface.csv +31 -31
package/commands/vibe.voice.md
CHANGED
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Voice-to-coding command via Gemini audio transcription
|
|
3
|
-
argument-hint: "--pro for high accuracy, --lang ko for Korean"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /vibe.voice
|
|
7
|
-
|
|
8
|
-
마이크로 음성을 녹음하고 Gemini를 통해 텍스트로 변환하여 코딩 명령으로 사용합니다.
|
|
9
|
-
|
|
10
|
-
## Prerequisites
|
|
11
|
-
|
|
12
|
-
- **Gemini 인증 필수** (`vibe gemini auth` 또는 `vibe gemini key <key>`)
|
|
13
|
-
- **sox 설치 필수** (`brew install sox` on macOS, `apt install sox` on Linux)
|
|
14
|
-
|
|
15
|
-
## Usage
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
/vibe.voice # 녹음 후 변환 (gemini-3-flash)
|
|
19
|
-
/vibe.voice --pro # 고정밀 모드 (gemini-3-pro)
|
|
20
|
-
/vibe.voice --lang ko # 한국어 힌트
|
|
21
|
-
/vibe.voice --duration 30 # 최대 녹음 시간 (기본: 60초)
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## MANDATORY Execution Steps
|
|
25
|
-
|
|
26
|
-
**반드시 아래 순서로 실행하세요.**
|
|
27
|
-
|
|
28
|
-
### Step 1: getCurrentTime 호출
|
|
29
|
-
|
|
30
|
-
시작 시간을 기록합니다.
|
|
31
|
-
|
|
32
|
-
### Step 2: 음성 녹음 및 변환
|
|
33
|
-
|
|
34
|
-
**스크립트 경로:**
|
|
35
|
-
- `[LLM_SCRIPT]` = `{{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js`
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
node "[LLM_SCRIPT]" gemini voice $ARGUMENTS
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
**대체 경로** (프로젝트 로컬):
|
|
42
|
-
```bash
|
|
43
|
-
node ./node_modules/@su-record/vibe/dist/hooks/scripts/llm-orchestrate.js gemini voice $ARGUMENTS
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### Step 3: 결과 처리
|
|
47
|
-
|
|
48
|
-
JSON 출력을 파싱합니다:
|
|
49
|
-
|
|
50
|
-
**성공 시:**
|
|
51
|
-
```json
|
|
52
|
-
{ "success": true, "transcription": "변환된 텍스트", "duration": 5.2, "model": "gemini-3-flash" }
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
**실패 시:**
|
|
56
|
-
```json
|
|
57
|
-
{ "success": false, "error": "에러 메시지" }
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Step 4: 변환된 텍스트를 코딩 명령으로 실행
|
|
61
|
-
|
|
62
|
-
1. `success: true`이면 `transcription` 값을 사용자에게 보여줍니다
|
|
63
|
-
2. 사용자가 확인하면 해당 텍스트를 코딩 명령으로 실행합니다
|
|
64
|
-
3. `success: false`이면 에러 메시지를 표시하고 트러블슈팅을 안내합니다
|
|
65
|
-
|
|
66
|
-
### Step 5: getCurrentTime 호출
|
|
67
|
-
|
|
68
|
-
종료 시간을 기록합니다.
|
|
69
|
-
|
|
70
|
-
## Troubleshooting
|
|
71
|
-
|
|
72
|
-
| Error | Fix |
|
|
73
|
-
|-------|-----|
|
|
74
|
-
| "sox is not installed" | `brew install sox` (macOS) 또는 `apt install sox` (Linux) |
|
|
75
|
-
| "Gemini credentials not found" | `vibe gemini auth` 또는 `vibe gemini key <key>` 실행 |
|
|
76
|
-
| "Recording failed: empty audio" | 마이크 권한 확인, 기본 오디오 입력 장치 확인 |
|
|
77
|
-
| 변환 결과가 부정확 | `--pro` 옵션으로 gemini-3-pro 사용, 마이크 가까이에서 말하기 |
|
|
78
|
-
|
|
79
|
-
ARGUMENTS: $ARGUMENTS
|
|
1
|
+
---
|
|
2
|
+
description: Voice-to-coding command via Gemini audio transcription
|
|
3
|
+
argument-hint: "--pro for high accuracy, --lang ko for Korean"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /vibe.voice
|
|
7
|
+
|
|
8
|
+
마이크로 음성을 녹음하고 Gemini를 통해 텍스트로 변환하여 코딩 명령으로 사용합니다.
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
- **Gemini 인증 필수** (`vibe gemini auth` 또는 `vibe gemini key <key>`)
|
|
13
|
+
- **sox 설치 필수** (`brew install sox` on macOS, `apt install sox` on Linux)
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/vibe.voice # 녹음 후 변환 (gemini-3-flash)
|
|
19
|
+
/vibe.voice --pro # 고정밀 모드 (gemini-3-pro)
|
|
20
|
+
/vibe.voice --lang ko # 한국어 힌트
|
|
21
|
+
/vibe.voice --duration 30 # 최대 녹음 시간 (기본: 60초)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## MANDATORY Execution Steps
|
|
25
|
+
|
|
26
|
+
**반드시 아래 순서로 실행하세요.**
|
|
27
|
+
|
|
28
|
+
### Step 1: getCurrentTime 호출
|
|
29
|
+
|
|
30
|
+
시작 시간을 기록합니다.
|
|
31
|
+
|
|
32
|
+
### Step 2: 음성 녹음 및 변환
|
|
33
|
+
|
|
34
|
+
**스크립트 경로:**
|
|
35
|
+
- `[LLM_SCRIPT]` = `{{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js`
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
node "[LLM_SCRIPT]" gemini voice $ARGUMENTS
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**대체 경로** (프로젝트 로컬):
|
|
42
|
+
```bash
|
|
43
|
+
node ./node_modules/@su-record/vibe/dist/hooks/scripts/llm-orchestrate.js gemini voice $ARGUMENTS
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Step 3: 결과 처리
|
|
47
|
+
|
|
48
|
+
JSON 출력을 파싱합니다:
|
|
49
|
+
|
|
50
|
+
**성공 시:**
|
|
51
|
+
```json
|
|
52
|
+
{ "success": true, "transcription": "변환된 텍스트", "duration": 5.2, "model": "gemini-3-flash" }
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**실패 시:**
|
|
56
|
+
```json
|
|
57
|
+
{ "success": false, "error": "에러 메시지" }
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Step 4: 변환된 텍스트를 코딩 명령으로 실행
|
|
61
|
+
|
|
62
|
+
1. `success: true`이면 `transcription` 값을 사용자에게 보여줍니다
|
|
63
|
+
2. 사용자가 확인하면 해당 텍스트를 코딩 명령으로 실행합니다
|
|
64
|
+
3. `success: false`이면 에러 메시지를 표시하고 트러블슈팅을 안내합니다
|
|
65
|
+
|
|
66
|
+
### Step 5: getCurrentTime 호출
|
|
67
|
+
|
|
68
|
+
종료 시간을 기록합니다.
|
|
69
|
+
|
|
70
|
+
## Troubleshooting
|
|
71
|
+
|
|
72
|
+
| Error | Fix |
|
|
73
|
+
|-------|-----|
|
|
74
|
+
| "sox is not installed" | `brew install sox` (macOS) 또는 `apt install sox` (Linux) |
|
|
75
|
+
| "Gemini credentials not found" | `vibe gemini auth` 또는 `vibe gemini key <key>` 실행 |
|
|
76
|
+
| "Recording failed: empty audio" | 마이크 권한 확인, 기본 오디오 입력 장치 확인 |
|
|
77
|
+
| 변환 결과가 부정확 | `--pro` 옵션으로 gemini-3-pro 사용, 마이크 가까이에서 말하기 |
|
|
78
|
+
|
|
79
|
+
ARGUMENTS: $ARGUMENTS
|
package/dist/cli/auth.d.ts
CHANGED
|
@@ -20,6 +20,6 @@ export declare function formatClaudeCodeStatus(status: ClaudeCodeStatus): string
|
|
|
20
20
|
/**
|
|
21
21
|
* LLM 상태 포맷팅
|
|
22
22
|
*/
|
|
23
|
-
export declare function formatAuthMethods(auths: LLMAuthStatus[]): string;
|
|
23
|
+
export declare function formatAuthMethods(auths: LLMAuthStatus[], cliInstalled?: boolean): string;
|
|
24
24
|
export declare function formatLLMStatus(claudeStatus?: ClaudeCodeStatus): string;
|
|
25
25
|
//# sourceMappingURL=auth.d.ts.map
|
package/dist/cli/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI3E;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAqB/C;AAID;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,UAAQ,GAAG,gBAAgB,CAsCvE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAWvE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAYxF;AAED,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAcvE"}
|
package/dist/cli/auth.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
5
|
import { readGlobalConfig } from '../infra/lib/config/GlobalConfigManager.js';
|
|
6
|
+
import { detectCodexCli, detectGeminiCli } from './utils/cli-detector.js';
|
|
6
7
|
/**
|
|
7
8
|
* LLM 인증 상태 확인 (config.json 우선, process.env fallback)
|
|
8
9
|
*/
|
|
@@ -83,24 +84,31 @@ export function formatClaudeCodeStatus(status) {
|
|
|
83
84
|
/**
|
|
84
85
|
* LLM 상태 포맷팅
|
|
85
86
|
*/
|
|
86
|
-
export function formatAuthMethods(auths) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
87
|
+
export function formatAuthMethods(auths, cliInstalled) {
|
|
88
|
+
const parts = [];
|
|
89
|
+
if (cliInstalled !== undefined) {
|
|
90
|
+
parts.push(cliInstalled ? '✓ CLI' : '✗ CLI');
|
|
91
|
+
}
|
|
92
|
+
parts.push(...auths.map(a => {
|
|
90
93
|
const icon = a.valid ? '✓' : '⚠';
|
|
91
94
|
const method = a.type === 'oauth' ? 'OAuth' : 'API Key';
|
|
92
95
|
return `${icon} ${method}`;
|
|
93
|
-
})
|
|
96
|
+
}));
|
|
97
|
+
if (parts.length === 0)
|
|
98
|
+
return '✗ Not configured';
|
|
99
|
+
return parts.join(', ');
|
|
94
100
|
}
|
|
95
101
|
export function formatLLMStatus(claudeStatus) {
|
|
96
102
|
const status = getLLMAuthStatus();
|
|
103
|
+
const codexCli = detectCodexCli();
|
|
104
|
+
const geminiCli = detectGeminiCli();
|
|
97
105
|
const lines = [];
|
|
98
106
|
if (claudeStatus) {
|
|
99
107
|
lines.push(`🧠 Claude Code: ${formatClaudeCodeStatus(claudeStatus)}`);
|
|
100
108
|
}
|
|
101
109
|
lines.push('🤖 External LLM:');
|
|
102
|
-
lines.push(` GPT: ${formatAuthMethods(status.gpt)}`);
|
|
103
|
-
lines.push(` Gemini: ${formatAuthMethods(status.gemini)}`);
|
|
110
|
+
lines.push(` GPT: ${formatAuthMethods(status.gpt, codexCli.installed)}`);
|
|
111
|
+
lines.push(` Gemini: ${formatAuthMethods(status.gemini, geminiCli.installed)}`);
|
|
104
112
|
return lines.join('\n');
|
|
105
113
|
}
|
|
106
114
|
//# sourceMappingURL=auth.js.map
|
package/dist/cli/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/collaborator.js
CHANGED
|
@@ -56,64 +56,64 @@ export function setupCollaboratorAutoInstall(projectRoot) {
|
|
|
56
56
|
fs.mkdirSync(coreDir, { recursive: true });
|
|
57
57
|
}
|
|
58
58
|
if (!fs.existsSync(setupShPath)) {
|
|
59
|
-
const setupScript = `#!/bin/bash
|
|
60
|
-
# Core collaborator auto-install script
|
|
61
|
-
# Usage: ./.claude/vibe/setup.sh
|
|
62
|
-
|
|
63
|
-
set -e
|
|
64
|
-
|
|
65
|
-
echo "🔧 Checking Core installation..."
|
|
66
|
-
|
|
67
|
-
# Check npm/npx
|
|
68
|
-
if ! command -v npx &> /dev/null; then
|
|
69
|
-
echo "❌ Node.js/npm is not installed."
|
|
70
|
-
echo " Please install from https://nodejs.org"
|
|
71
|
-
exit 1
|
|
72
|
-
fi
|
|
73
|
-
|
|
74
|
-
# Check core installation and update
|
|
75
|
-
if command -v vibe &> /dev/null; then
|
|
76
|
-
echo "✅ Core is already installed."
|
|
77
|
-
vibe update --silent
|
|
78
|
-
echo "✅ Core updated!"
|
|
79
|
-
else
|
|
80
|
-
echo "📦 Installing Core..."
|
|
81
|
-
npm install -g @su-record/vibe
|
|
82
|
-
vibe update --silent
|
|
83
|
-
echo "✅ Core installed and configured!"
|
|
84
|
-
fi
|
|
85
|
-
|
|
86
|
-
echo ""
|
|
87
|
-
echo "Get started with:"
|
|
88
|
-
echo " /vibe.spec \\"feature\\" Create SPEC"
|
|
89
|
-
echo " /vibe.run \\"feature\\" Implement"
|
|
59
|
+
const setupScript = `#!/bin/bash
|
|
60
|
+
# Core collaborator auto-install script
|
|
61
|
+
# Usage: ./.claude/vibe/setup.sh
|
|
62
|
+
|
|
63
|
+
set -e
|
|
64
|
+
|
|
65
|
+
echo "🔧 Checking Core installation..."
|
|
66
|
+
|
|
67
|
+
# Check npm/npx
|
|
68
|
+
if ! command -v npx &> /dev/null; then
|
|
69
|
+
echo "❌ Node.js/npm is not installed."
|
|
70
|
+
echo " Please install from https://nodejs.org"
|
|
71
|
+
exit 1
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
# Check core installation and update
|
|
75
|
+
if command -v vibe &> /dev/null; then
|
|
76
|
+
echo "✅ Core is already installed."
|
|
77
|
+
vibe update --silent
|
|
78
|
+
echo "✅ Core updated!"
|
|
79
|
+
else
|
|
80
|
+
echo "📦 Installing Core..."
|
|
81
|
+
npm install -g @su-record/vibe
|
|
82
|
+
vibe update --silent
|
|
83
|
+
echo "✅ Core installed and configured!"
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
echo ""
|
|
87
|
+
echo "Get started with:"
|
|
88
|
+
echo " /vibe.spec \\"feature\\" Create SPEC"
|
|
89
|
+
echo " /vibe.run \\"feature\\" Implement"
|
|
90
90
|
`;
|
|
91
91
|
fs.writeFileSync(setupShPath, setupScript);
|
|
92
92
|
fs.chmodSync(setupShPath, '755');
|
|
93
93
|
}
|
|
94
94
|
// 3. README.md에 협업자 안내 추가
|
|
95
95
|
const readmePath = path.join(projectRoot, 'README.md');
|
|
96
|
-
const coreSetupSection = `
|
|
97
|
-
## Core Setup (AI Coding)
|
|
98
|
-
|
|
99
|
-
This project uses [VIBE](https://github.com/su-record/vibe) AI coding framework.
|
|
100
|
-
|
|
101
|
-
### Collaborator Install
|
|
102
|
-
|
|
103
|
-
\`\`\`bash
|
|
104
|
-
# Global install (recommended)
|
|
105
|
-
npm install -g @su-record/vibe
|
|
106
|
-
vibe update
|
|
107
|
-
|
|
108
|
-
# Or use vibe init to setup
|
|
109
|
-
vibe init
|
|
110
|
-
\`\`\`
|
|
111
|
-
|
|
112
|
-
### Usage
|
|
113
|
-
|
|
114
|
-
Use slash commands in Claude Code:
|
|
115
|
-
- \`/vibe.spec "feature"\` - Create SPEC document
|
|
116
|
-
- \`/vibe.run "feature"\` - Execute implementation
|
|
96
|
+
const coreSetupSection = `
|
|
97
|
+
## Core Setup (AI Coding)
|
|
98
|
+
|
|
99
|
+
This project uses [VIBE](https://github.com/su-record/vibe) AI coding framework.
|
|
100
|
+
|
|
101
|
+
### Collaborator Install
|
|
102
|
+
|
|
103
|
+
\`\`\`bash
|
|
104
|
+
# Global install (recommended)
|
|
105
|
+
npm install -g @su-record/vibe
|
|
106
|
+
vibe update
|
|
107
|
+
|
|
108
|
+
# Or use vibe init to setup
|
|
109
|
+
vibe init
|
|
110
|
+
\`\`\`
|
|
111
|
+
|
|
112
|
+
### Usage
|
|
113
|
+
|
|
114
|
+
Use slash commands in Claude Code:
|
|
115
|
+
- \`/vibe.spec "feature"\` - Create SPEC document
|
|
116
|
+
- \`/vibe.run "feature"\` - Execute implementation
|
|
117
117
|
`;
|
|
118
118
|
if (fs.existsSync(readmePath)) {
|
|
119
119
|
const readme = fs.readFileSync(readmePath, 'utf-8');
|
|
@@ -193,18 +193,18 @@ export function evolutionGaps() {
|
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
export function evolutionHelp() {
|
|
196
|
-
console.log(`
|
|
197
|
-
Evolution Commands:
|
|
198
|
-
vibe evolution status Show overall status
|
|
199
|
-
vibe evolution list List all generations
|
|
200
|
-
vibe evolution approve <id> Approve draft → testing
|
|
201
|
-
vibe evolution reject <id> Reject draft
|
|
202
|
-
vibe evolution disable <id> Disable a generation
|
|
203
|
-
vibe evolution rollback <id> Rollback to previous version
|
|
204
|
-
vibe evolution disable-all Emergency disable all
|
|
205
|
-
vibe evolution run Manual evolution cycle
|
|
206
|
-
vibe evolution insights Show confirmed insights
|
|
207
|
-
vibe evolution gaps Show detected skill gaps
|
|
196
|
+
console.log(`
|
|
197
|
+
Evolution Commands:
|
|
198
|
+
vibe evolution status Show overall status
|
|
199
|
+
vibe evolution list List all generations
|
|
200
|
+
vibe evolution approve <id> Approve draft → testing
|
|
201
|
+
vibe evolution reject <id> Reject draft
|
|
202
|
+
vibe evolution disable <id> Disable a generation
|
|
203
|
+
vibe evolution rollback <id> Rollback to previous version
|
|
204
|
+
vibe evolution disable-all Emergency disable all
|
|
205
|
+
vibe evolution run Manual evolution cycle
|
|
206
|
+
vibe evolution insights Show confirmed insights
|
|
207
|
+
vibe evolution gaps Show detected skill gaps
|
|
208
208
|
`);
|
|
209
209
|
}
|
|
210
210
|
//# sourceMappingURL=evolution.js.map
|
|
@@ -9,4 +9,5 @@ export { remove } from './remove.js';
|
|
|
9
9
|
export { showHelp, showStatus, showVersion } from './info.js';
|
|
10
10
|
export { telegramSetup, telegramChat, telegramStatus, telegramHelp } from './telegram.js';
|
|
11
11
|
export { slackSetup, slackChannel, slackStatus, slackHelp } from './slack.js';
|
|
12
|
+
export { skillsAdd, installExternalSkills } from './skills.js';
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -9,4 +9,5 @@ export { remove } from './remove.js';
|
|
|
9
9
|
export { showHelp, showStatus, showVersion } from './info.js';
|
|
10
10
|
export { telegramSetup, telegramChat, telegramStatus, telegramHelp } from './telegram.js';
|
|
11
11
|
export { slackSetup, slackChannel, slackStatus, slackHelp } from './slack.js';
|
|
12
|
+
export { skillsAdd, installExternalSkills } from './skills.js';
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/info.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAsC/B;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CA6FjC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}
|
|
@@ -6,43 +6,47 @@ import fs from 'fs';
|
|
|
6
6
|
import { getPackageJson, isSoxInstalled } from '../utils.js';
|
|
7
7
|
import { getLLMAuthStatus, formatAuthMethods } from '../auth.js';
|
|
8
8
|
import { getGlobalConfigDir } from '../llm/config.js';
|
|
9
|
+
import { detectCodexCli, detectGeminiCli } from '../utils/cli-detector.js';
|
|
9
10
|
/**
|
|
10
11
|
* 도움말 표시
|
|
11
12
|
*/
|
|
12
13
|
export function showHelp() {
|
|
13
|
-
console.log(`
|
|
14
|
-
VIBE - Personalized AI Agent (Claude Code exclusive)
|
|
15
|
-
|
|
16
|
-
Commands:
|
|
17
|
-
vibe setup 셋업 위자드 (인증, 채널, 설정 한번에)
|
|
18
|
-
vibe init [project] 프로젝트 초기화
|
|
19
|
-
vibe update 설정 업데이트
|
|
20
|
-
vibe upgrade 최신 버전으로 업그레이드
|
|
21
|
-
vibe remove 프로젝트에서 제거
|
|
22
|
-
vibe status 전체 상태 확인
|
|
23
|
-
|
|
24
|
-
LLM:
|
|
25
|
-
vibe claude <cmd> Claude (key, status, logout)
|
|
26
|
-
vibe gpt <cmd> GPT (auth, key, status, logout)
|
|
27
|
-
vibe gemini <cmd> Gemini (auth, key, status, logout)
|
|
28
|
-
vibe env import [path] .env → ~/.vibe/config.json 가져오기
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
vibe
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
/vibe.
|
|
39
|
-
/vibe.
|
|
40
|
-
/vibe.
|
|
41
|
-
/vibe.
|
|
42
|
-
/vibe.
|
|
43
|
-
/vibe.
|
|
44
|
-
|
|
45
|
-
|
|
14
|
+
console.log(`
|
|
15
|
+
VIBE - Personalized AI Agent (Claude Code exclusive)
|
|
16
|
+
|
|
17
|
+
Commands:
|
|
18
|
+
vibe setup 셋업 위자드 (인증, 채널, 설정 한번에)
|
|
19
|
+
vibe init [project] 프로젝트 초기화
|
|
20
|
+
vibe update 설정 업데이트
|
|
21
|
+
vibe upgrade 최신 버전으로 업그레이드
|
|
22
|
+
vibe remove 프로젝트에서 제거
|
|
23
|
+
vibe status 전체 상태 확인
|
|
24
|
+
|
|
25
|
+
LLM:
|
|
26
|
+
vibe claude <cmd> Claude (key, status, logout)
|
|
27
|
+
vibe gpt <cmd> GPT (auth, key, status, logout)
|
|
28
|
+
vibe gemini <cmd> Gemini (auth, key, status, logout)
|
|
29
|
+
vibe env import [path] .env → ~/.vibe/config.json 가져오기
|
|
30
|
+
|
|
31
|
+
Skills:
|
|
32
|
+
vibe skills add <pkg> Install skill from skills.sh
|
|
33
|
+
|
|
34
|
+
Channels:
|
|
35
|
+
vibe telegram <cmd> Telegram (setup, chat, status)
|
|
36
|
+
vibe slack <cmd> Slack (setup, channel, status)
|
|
37
|
+
|
|
38
|
+
Slash Commands (Claude Code):
|
|
39
|
+
/vibe.spec "feature" SPEC 작성 + 리서치
|
|
40
|
+
/vibe.run "feature" 구현 실행
|
|
41
|
+
/vibe.verify "feature" BDD 검증
|
|
42
|
+
/vibe.review 병렬 코드 리뷰 (13+ agents)
|
|
43
|
+
/vibe.reason "problem" 체계적 추론
|
|
44
|
+
/vibe.analyze 프로젝트 분석
|
|
45
|
+
/vibe.trace "feature" 요구사항 추적 매트릭스
|
|
46
|
+
/vibe.utils 유틸리티 (--e2e, --diagram, --continue)
|
|
47
|
+
/vibe.voice 음성 코딩 (Gemini + sox)
|
|
48
|
+
|
|
49
|
+
Docs: https://github.com/su-record/vibe
|
|
46
50
|
`);
|
|
47
51
|
}
|
|
48
52
|
/**
|
|
@@ -59,9 +63,11 @@ export function showStatus() {
|
|
|
59
63
|
config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
60
64
|
}
|
|
61
65
|
const authStatus = getLLMAuthStatus();
|
|
66
|
+
const codexCli = detectCodexCli();
|
|
67
|
+
const geminiCli = detectGeminiCli();
|
|
62
68
|
const claudeStatusText = formatAuthMethods(authStatus.claude);
|
|
63
|
-
const gptStatusText = formatAuthMethods(authStatus.gpt);
|
|
64
|
-
const geminiStatusText = formatAuthMethods(authStatus.gemini);
|
|
69
|
+
const gptStatusText = formatAuthMethods(authStatus.gpt, codexCli.installed);
|
|
70
|
+
const geminiStatusText = formatAuthMethods(authStatus.gemini, geminiCli.installed);
|
|
65
71
|
// Voice 상태 (Gemini 활성화 + sox 설치)
|
|
66
72
|
let voiceStatusText = '⬚ Disabled (requires Gemini)';
|
|
67
73
|
if (authStatus.gemini.length > 0) {
|
|
@@ -108,27 +114,27 @@ export function showStatus() {
|
|
|
108
114
|
}
|
|
109
115
|
}
|
|
110
116
|
catch { /* DB not available */ }
|
|
111
|
-
console.log(`
|
|
112
|
-
VIBE Status (v${packageJson.version})
|
|
113
|
-
|
|
114
|
-
Project: ${projectStatus}
|
|
115
|
-
${isCoreProject ? `Language: ${config.language || 'ko'}` : ''}
|
|
116
|
-
|
|
117
|
-
LLM:
|
|
118
|
-
Claude ${claudeStatusText}
|
|
119
|
-
GPT ${gptStatusText}
|
|
120
|
-
Gemini ${geminiStatusText}
|
|
121
|
-
|
|
122
|
-
Agent:
|
|
123
|
-
Autonomy ${autonomyMode} mode
|
|
124
|
-
Sentinel ${sentinelOn ? 'ON' : 'OFF'}
|
|
125
|
-
Proactive ${proactiveOn ? 'ON' : 'OFF'}
|
|
126
|
-
${dbStats}
|
|
127
|
-
Services:
|
|
128
|
-
Google Apps ${fs.existsSync(path.join(getGlobalConfigDir(), 'google-tokens.json')) ? '\u2705 Connected (Gmail, Drive, Sheets, Calendar, YouTube)' : '\u2B1A Not connected (vibe setup)'}
|
|
129
|
-
|
|
130
|
-
Features:
|
|
131
|
-
/vibe.voice ${voiceStatusText}
|
|
117
|
+
console.log(`
|
|
118
|
+
VIBE Status (v${packageJson.version})
|
|
119
|
+
|
|
120
|
+
Project: ${projectStatus}
|
|
121
|
+
${isCoreProject ? `Language: ${config.language || 'ko'}` : ''}
|
|
122
|
+
|
|
123
|
+
LLM:
|
|
124
|
+
Claude ${claudeStatusText}
|
|
125
|
+
GPT ${gptStatusText}
|
|
126
|
+
Gemini ${geminiStatusText}
|
|
127
|
+
|
|
128
|
+
Agent:
|
|
129
|
+
Autonomy ${autonomyMode} mode
|
|
130
|
+
Sentinel ${sentinelOn ? 'ON' : 'OFF'}
|
|
131
|
+
Proactive ${proactiveOn ? 'ON' : 'OFF'}
|
|
132
|
+
${dbStats}
|
|
133
|
+
Services:
|
|
134
|
+
Google Apps ${fs.existsSync(path.join(getGlobalConfigDir(), 'google-tokens.json')) ? '\u2705 Connected (Gmail, Drive, Sheets, Calendar, YouTube)' : '\u2B1A Not connected (vibe setup)'}
|
|
135
|
+
|
|
136
|
+
Features:
|
|
137
|
+
/vibe.voice ${voiceStatusText}
|
|
132
138
|
`);
|
|
133
139
|
}
|
|
134
140
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/cli/commands/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/cli/commands/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoCzC;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,GAAE,MAAM,EAAO,EAC7B,OAAO,GAAE,UAA8B,GACtC,IAAI,CA+BN;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,GAAE,MAAM,EAAO,EAC7B,OAAO,GAAE,UAA8B,GACtC,IAAI,CA2BN;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,GAAE,MAAM,EAAO,EAC7B,OAAO,GAAE,UAA8B,GACtC,IAAI,CA2BN;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,YAAY,GAAE,MAAM,EAAO,GAC1B,IAAI,CAYN;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,GACnB,IAAI,CA4BN;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8I9D"}
|
|
@@ -13,6 +13,7 @@ import * as p from '@clack/prompts';
|
|
|
13
13
|
import { installCursorAgents, generateCursorRules, generateCursorSkills, installCodexAgents, generateCodexAgentsMd, installGeminiAgents, generateGeminiMd, resolveLocalSkills, copySkillsFiltered, AVAILABLE_CAPABILITIES, STACK_TO_LANGUAGE_FILE, GLOBAL_SKILLS, } from '../postinstall.js';
|
|
14
14
|
import { detectCodexCli, detectGeminiCli } from '../utils/cli-detector.js';
|
|
15
15
|
import { Provisioner } from '../setup/Provisioner.js';
|
|
16
|
+
import { installExternalSkills } from './skills.js';
|
|
16
17
|
/**
|
|
17
18
|
* Update global Cursor assets (agents, rules, skills)
|
|
18
19
|
* Called by both init and update
|
|
@@ -246,6 +247,8 @@ export async function init(projectName) {
|
|
|
246
247
|
}
|
|
247
248
|
// 스택 + capability 기반 로컬 스킬 설치 (.claude/skills/)
|
|
248
249
|
installLocalSkills(projectRoot, stackTypes, stackDetails.capabilities);
|
|
250
|
+
// 스택 기반 외부 스킬 자동 설치 (skills.sh)
|
|
251
|
+
installExternalSkills(projectRoot, stackTypes, stackDetails.capabilities);
|
|
249
252
|
if (stackDetails.capabilities.length > 0) {
|
|
250
253
|
log(` - Capabilities: ${stackDetails.capabilities.join(', ')}\n`);
|
|
251
254
|
}
|
|
@@ -261,12 +264,12 @@ export async function init(projectName) {
|
|
|
261
264
|
const packageJson = getPackageJson();
|
|
262
265
|
const authStatus = getLLMAuthStatus();
|
|
263
266
|
const claudeStatus = getClaudeCodeStatus(true);
|
|
264
|
-
log(`✅ vibe initialized (v${packageJson.version})
|
|
265
|
-
${formatLLMStatus(claudeStatus)}
|
|
266
|
-
${formatVoiceHint(authStatus.gemini.length > 0)}
|
|
267
|
-
📦 Context7 plugin (recommended): /plugin install context7
|
|
268
|
-
|
|
269
|
-
Next: ${isNewProject ? `cd ${projectName} && ` : ''}/vibe.spec "feature"
|
|
267
|
+
log(`✅ vibe initialized (v${packageJson.version})
|
|
268
|
+
${formatLLMStatus(claudeStatus)}
|
|
269
|
+
${formatVoiceHint(authStatus.gemini.length > 0)}
|
|
270
|
+
📦 Context7 plugin (recommended): /plugin install context7
|
|
271
|
+
|
|
272
|
+
Next: ${isNewProject ? `cd ${projectName} && ` : ''}/vibe.spec "feature"
|
|
270
273
|
`);
|
|
271
274
|
}
|
|
272
275
|
catch (error) {
|