@su-record/vibe 2.9.25 → 2.9.33
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/CLAUDE.md +7 -4
- package/commands/vibe.figma.md +16 -0
- package/commands/vibe.run.md +6 -0
- package/commands/vibe.verify.md +22 -0
- package/dist/cli/auth.d.ts +7 -1
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +51 -11
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/collaborator.d.ts +5 -1
- package/dist/cli/collaborator.d.ts.map +1 -1
- package/dist/cli/collaborator.js +10 -5
- package/dist/cli/collaborator.js.map +1 -1
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +5 -21
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/init.d.ts +13 -5
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +73 -32
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/remove.d.ts.map +1 -1
- package/dist/cli/commands/remove.js +21 -8
- package/dist/cli/commands/remove.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +14 -8
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/index.js +4 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/postinstall/global-config.d.ts.map +1 -1
- package/dist/cli/postinstall/global-config.js +8 -4
- package/dist/cli/postinstall/global-config.js.map +1 -1
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +11 -0
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/cli/setup/LegacyMigration.d.ts +14 -0
- package/dist/cli/setup/LegacyMigration.d.ts.map +1 -1
- package/dist/cli/setup/LegacyMigration.js +61 -0
- package/dist/cli/setup/LegacyMigration.js.map +1 -1
- package/dist/cli/setup/ProjectSetup.d.ts +18 -7
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
- package/dist/cli/setup/ProjectSetup.js +144 -104
- package/dist/cli/setup/ProjectSetup.js.map +1 -1
- package/dist/cli/setup/Provisioner.js +2 -2
- package/dist/cli/setup/Provisioner.js.map +1 -1
- package/dist/cli/setup.d.ts +2 -2
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +2 -2
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/utils/cli-detector.d.ts +9 -6
- package/dist/cli/utils/cli-detector.d.ts.map +1 -1
- package/dist/cli/utils/cli-detector.js +127 -8
- package/dist/cli/utils/cli-detector.js.map +1 -1
- package/dist/infra/lib/browser/compare.d.ts +27 -0
- package/dist/infra/lib/browser/compare.d.ts.map +1 -1
- package/dist/infra/lib/browser/compare.js +55 -0
- package/dist/infra/lib/browser/compare.js.map +1 -1
- package/dist/infra/lib/browser/index.d.ts +2 -1
- package/dist/infra/lib/browser/index.d.ts.map +1 -1
- package/dist/infra/lib/browser/index.js +1 -1
- package/dist/infra/lib/browser/index.js.map +1 -1
- package/dist/infra/lib/figma/audit.d.ts +37 -0
- package/dist/infra/lib/figma/audit.d.ts.map +1 -0
- package/dist/infra/lib/figma/audit.js +130 -0
- package/dist/infra/lib/figma/audit.js.map +1 -0
- package/dist/infra/lib/figma/extract.d.ts +21 -1
- package/dist/infra/lib/figma/extract.d.ts.map +1 -1
- package/dist/infra/lib/figma/extract.js +84 -12
- package/dist/infra/lib/figma/extract.js.map +1 -1
- package/dist/infra/lib/figma/index.d.ts +4 -2
- package/dist/infra/lib/figma/index.d.ts.map +1 -1
- package/dist/infra/lib/figma/index.js +2 -1
- package/dist/infra/lib/figma/index.js.map +1 -1
- package/dist/infra/lib/figma/types.d.ts +31 -0
- package/dist/infra/lib/figma/types.d.ts.map +1 -1
- package/dist/infra/lib/memory/MemoryStorage.d.ts +5 -0
- package/dist/infra/lib/memory/MemoryStorage.d.ts.map +1 -1
- package/dist/infra/lib/memory/MemoryStorage.js +21 -2
- package/dist/infra/lib/memory/MemoryStorage.js.map +1 -1
- package/hooks/hooks.json +8 -0
- package/hooks/scripts/command-log.js +3 -3
- package/hooks/scripts/context-save.js +3 -3
- package/hooks/scripts/evolution-engine.js +2 -2
- package/hooks/scripts/figma-extract.js +134 -1
- package/hooks/scripts/lib/dispatcher.js +9 -5
- package/hooks/scripts/lib/scope-from-spec.js +20 -5
- package/hooks/scripts/prompt-dispatcher.js +5 -3
- package/hooks/scripts/scope-guard.js +3 -3
- package/hooks/scripts/session-start.js +3 -3
- package/hooks/scripts/step-counter.js +45 -0
- package/hooks/scripts/stop-notify.js +2 -2
- package/hooks/scripts/utils.js +62 -4
- package/package.json +1 -1
- package/skills/vibe-figma-extract/SKILL.md +22 -0
- package/vibe/templates/claudemd-template.md +1 -1
package/CLAUDE.md
CHANGED
|
@@ -55,8 +55,11 @@ No `console.log` in commits · No hardcoded strings/numbers · No commented-out
|
|
|
55
55
|
| Path | Purpose |
|
|
56
56
|
|---|---|
|
|
57
57
|
| `~/.vibe/config.json` | Global credentials, models (0o600) |
|
|
58
|
-
| `.
|
|
59
|
-
| `.claude/settings.local.json` |
|
|
58
|
+
| `.vibe/config.json` | Project stacks, capabilities — Claude/coco 공용 SSOT |
|
|
59
|
+
| `.claude/settings.local.json` | Claude Code hooks (auto-generated, don't commit) |
|
|
60
|
+
| `.coco/settings.local.json` | coco hooks (auto-generated, don't commit) |
|
|
61
|
+
|
|
62
|
+
Legacy: 기존 `.claude/vibe/`·`.coco/vibe/` 는 런타임에 자동 인식되며 `vibe init`/`update` 시 `.vibe/` 로 이동한다.
|
|
60
63
|
|
|
61
64
|
### Gotchas
|
|
62
65
|
- `better-sqlite3` WAL mode — synchronous API
|
|
@@ -99,8 +102,8 @@ No `console.log` in commits · No hardcoded strings/numbers · No commented-out
|
|
|
99
102
|
|
|
100
103
|
## Git
|
|
101
104
|
|
|
102
|
-
**Include**: `.
|
|
105
|
+
**Include**: `.vibe/{plans,specs,features,todos,research,regressions,contracts,config.json,constitution.md}`, `CLAUDE.md`
|
|
103
106
|
**Vibe-global (not project-local)**: `~/.vibe/test-reports/` — `/vibe.test` artifacts live with the vibe install, not with the project
|
|
104
|
-
**Exclude**: `~/.claude/{rules,commands,agents,skills}/`, `.claude/settings.local.json
|
|
107
|
+
**Exclude**: `~/.claude/{rules,commands,agents,skills}/`, `.claude/settings.local.json`, `.coco/settings.local.json`, `.vibe/{memories,checkpoints,metrics}/`
|
|
105
108
|
|
|
106
109
|
<!-- VIBE:END -->
|
package/commands/vibe.figma.md
CHANGED
|
@@ -159,6 +159,11 @@ Load skill `vibe-figma` — Phase 2 (코디네이터: MO/PC 병렬 워커)
|
|
|
159
159
|
|
|
160
160
|
Phase 0에서 수집한 URL 중 "design"으로 자동 분류된 항목 (MO/PC)을 사용.
|
|
161
161
|
→ tree.json + bg/ + content/ + sections/ (검증용)
|
|
162
|
+
|
|
163
|
+
🚦 Audit gate (tree.json 루트 `auditSummary` 사용):
|
|
164
|
+
- `auditSummary.p1 > 0` → Phase 3 진입 금지. 각 항목을 해결(디자인 레이어 교체,
|
|
165
|
+
근사치 수용 승인, 알려진 편차로 기록) 후 재추출.
|
|
166
|
+
- P2 항목은 피처 노트에 기록 → Phase 6 리뷰 대상.
|
|
162
167
|
```
|
|
163
168
|
|
|
164
169
|
### Phase 3 — 데이터 정제
|
|
@@ -199,6 +204,13 @@ Load skill `vibe-figma` — Phase 5
|
|
|
199
204
|
```
|
|
200
205
|
Load skill `vibe-figma` — Phase 6 (시각 검증 루프, P1=0까지)
|
|
201
206
|
|
|
207
|
+
Raw-vs-computed 재조정:
|
|
208
|
+
- tree.json 각 노드의 `raw` 필드(itemSpacing, padding*, fontSize, lineHeightPx,
|
|
209
|
+
letterSpacing, strokeWeight, cornerRadius 등 Figma 원본 수치)를
|
|
210
|
+
브라우저 `getComputedStyle`과 비교한다.
|
|
211
|
+
- 허용 오차 초과 시 P1 issue (gap/padding 0.5px, fontSize 0.25px, lineHeight 0.5px).
|
|
212
|
+
- Figma MCP/변환기가 삼킨 값이 여기서 드러난다.
|
|
213
|
+
|
|
202
214
|
⤵ Phase 6 후처리
|
|
203
215
|
Load skill `design-audit`
|
|
204
216
|
→ 5-dimension 점검 (a11y, performance, responsive, theming, AI slop)
|
|
@@ -241,6 +253,8 @@ Load skill `vibe-figma` — Phase 1
|
|
|
241
253
|
Load skill `vibe-figma-extract`
|
|
242
254
|
Load skill `vibe-figma` — Phase 2
|
|
243
255
|
→ Branch 1 Phase 2와 동일 (design URL로 추출)
|
|
256
|
+
|
|
257
|
+
🚦 Audit gate: Branch 1과 동일하게 `auditSummary.p1 > 0` 이면 Phase 3 진입 금지.
|
|
244
258
|
```
|
|
245
259
|
|
|
246
260
|
### Phase 3 — 데이터 정제
|
|
@@ -273,6 +287,8 @@ Load skill `vibe-figma` — Phase 5
|
|
|
273
287
|
```
|
|
274
288
|
Load skill `vibe-figma` — Phase 6 (시각 검증 루프, P1=0까지)
|
|
275
289
|
|
|
290
|
+
Raw-vs-computed 재조정: Branch 1과 동일 — tree.json `raw` ↔ getComputedStyle 비교.
|
|
291
|
+
|
|
276
292
|
⤵ Phase 6 후처리
|
|
277
293
|
Load skill `design-audit`
|
|
278
294
|
→ a11y는 항상 검증. 컨벤션 무시 모드여도 접근성은 양보 불가.
|
package/commands/vibe.run.md
CHANGED
|
@@ -34,6 +34,12 @@ Execute **Scenario-Driven Implementation** with automatic quality verification.
|
|
|
34
34
|
|
|
35
35
|
> **⏱️ Timer**: Call `getCurrentTime` tool at the START. Record the result as `{start_time}`.
|
|
36
36
|
|
|
37
|
+
> **📊 Step Counter Reset (MANDATORY at START)**: Run this Bash command once at the very start to reset the tool-call counter so `/vibe.verify` can report "how many steps to reach the goal":
|
|
38
|
+
>
|
|
39
|
+
> ```bash
|
|
40
|
+
> mkdir -p .claude/vibe/metrics && printf '{"feature":"%s","startedAt":"%s","steps":0}\n' "{feature-name}" "$(date -u +%Y-%m-%dT%H:%M:%SZ)" > .claude/vibe/metrics/current-run.json
|
|
41
|
+
> ```
|
|
42
|
+
|
|
37
43
|
## File Reading Policy (Mandatory)
|
|
38
44
|
|
|
39
45
|
- **SPEC/Feature 파일**: 반드시 `Read` 도구로 전체 파일을 읽을 것 (Grep 금지)
|
package/commands/vibe.verify.md
CHANGED
|
@@ -182,6 +182,27 @@ For each UI scenario in Feature file:
|
|
|
182
182
|
- DOM 기반: `div class="nav-wrapper mx-4 flex..."` = 200+ chars
|
|
183
183
|
- 전자를 사용해야 시나리오 50개도 한 세션에서 검증 가능
|
|
184
184
|
|
|
185
|
+
### 3.5 Step Count (MANDATORY before Quality Report)
|
|
186
|
+
|
|
187
|
+
Read `.claude/vibe/metrics/current-run.json` to obtain the tool-call count from the preceding `/vibe.run` (and any follow-up work in this session). Then append a record to `.claude/vibe/metrics/history.jsonl` and include the count in the Quality Report below.
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
# Read step count (ok if file missing — treat as 0)
|
|
191
|
+
STEPS=$(node -e "try{const d=JSON.parse(require('fs').readFileSync('.claude/vibe/metrics/current-run.json','utf-8'));console.log(d.steps||0)}catch{console.log(0)}")
|
|
192
|
+
|
|
193
|
+
# Append history record
|
|
194
|
+
node -e "
|
|
195
|
+
const fs=require('fs'),path=require('path');
|
|
196
|
+
const dir='.claude/vibe/metrics';
|
|
197
|
+
try{
|
|
198
|
+
const cur=JSON.parse(fs.readFileSync(path.join(dir,'current-run.json'),'utf-8'));
|
|
199
|
+
const rec={verifiedAt:new Date().toISOString(),feature:cur.feature,startedAt:cur.startedAt,steps:cur.steps||0};
|
|
200
|
+
fs.appendFileSync(path.join(dir,'history.jsonl'),JSON.stringify(rec)+'\n');
|
|
201
|
+
}catch{}"
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Record the value as `{step_count}` and include it in the report below.
|
|
205
|
+
|
|
185
206
|
### 4. Quality Report (Auto-generated)
|
|
186
207
|
|
|
187
208
|
```
|
|
@@ -217,6 +238,7 @@ For each UI scenario in Feature file:
|
|
|
217
238
|
│ │
|
|
218
239
|
│ ⏱️ Started: {start_time} │
|
|
219
240
|
│ ⏱️ Completed: {getCurrentTime 결과} │
|
|
241
|
+
│ 🧮 Tool calls: {step_count} │
|
|
220
242
|
│ │
|
|
221
243
|
└─────────────────────────────────────────────────────────────────┘
|
|
222
244
|
```
|
package/dist/cli/auth.d.ts
CHANGED
|
@@ -21,5 +21,11 @@ export declare function formatClaudeCodeStatus(status: ClaudeCodeStatus): string
|
|
|
21
21
|
* LLM 상태 포맷팅
|
|
22
22
|
*/
|
|
23
23
|
export declare function formatAuthMethods(auths: LLMAuthStatus[], cliInstalled?: boolean): string;
|
|
24
|
-
|
|
24
|
+
/**
|
|
25
|
+
* 통합 LLM/CLI 상태 포맷터 (status / init / update / upgrade 공용)
|
|
26
|
+
* - Coding Agent: coco
|
|
27
|
+
* - LLM CLI (vibe 멀티-오케스트레이션에서 호출 가능): Claude Code, Codex, Gemini
|
|
28
|
+
* - LLM API Key (직접 호출용): GPT, Gemini
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatLLMStatus(): string;
|
|
25
31
|
//# 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;AAI3E;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAe/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;
|
|
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,CAe/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;AAaD;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAsCxC"}
|
package/dist/cli/auth.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
5
|
import { readGlobalConfig } from '../infra/lib/config/GlobalConfigManager.js';
|
|
6
|
-
import { detectCocoCli, detectCodexCli, detectGeminiCli } from './utils/cli-detector.js';
|
|
6
|
+
import { detectClaudeCli, detectCocoCli, detectCodexCli, detectGeminiCli } from './utils/cli-detector.js';
|
|
7
7
|
/**
|
|
8
8
|
* LLM 인증 상태 확인 (config.json 우선, process.env fallback)
|
|
9
9
|
*/
|
|
@@ -92,19 +92,59 @@ export function formatAuthMethods(auths, cliInstalled) {
|
|
|
92
92
|
return '⬚ Not connected';
|
|
93
93
|
return parts.join(', ');
|
|
94
94
|
}
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
/**
|
|
96
|
+
* LLM CLI 한 줄 포맷 (설치 + 인증 상태)
|
|
97
|
+
* @param installed CLI 설치 여부
|
|
98
|
+
* @param authenticated 인증 세션 감지 여부 (undefined=미설치, true=인증됨, false=미인증)
|
|
99
|
+
*/
|
|
100
|
+
function formatLlmCliRow(installed, authenticated) {
|
|
101
|
+
if (!installed)
|
|
102
|
+
return '⬚ Not installed';
|
|
103
|
+
if (authenticated === undefined)
|
|
104
|
+
return '✓ Installed';
|
|
105
|
+
return authenticated ? '✓ Installed, ✓ Auth' : '✓ Installed, ⚠ Not auth';
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* 통합 LLM/CLI 상태 포맷터 (status / init / update / upgrade 공용)
|
|
109
|
+
* - Coding Agent: coco
|
|
110
|
+
* - LLM CLI (vibe 멀티-오케스트레이션에서 호출 가능): Claude Code, Codex, Gemini
|
|
111
|
+
* - LLM API Key (직접 호출용): GPT, Gemini
|
|
112
|
+
*/
|
|
113
|
+
export function formatLLMStatus() {
|
|
114
|
+
const claudeCli = detectClaudeCli();
|
|
97
115
|
const cocoCli = detectCocoCli();
|
|
98
116
|
const codexCli = detectCodexCli();
|
|
99
117
|
const geminiCli = detectGeminiCli();
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
118
|
+
const apiStatus = getLLMAuthStatus();
|
|
119
|
+
const claudeRow = formatLlmCliRow(claudeCli.installed, claudeCli.authenticated);
|
|
120
|
+
const codexRow = formatLlmCliRow(codexCli.installed, codexCli.authenticated);
|
|
121
|
+
const geminiRow = formatLlmCliRow(geminiCli.installed, geminiCli.authenticated);
|
|
122
|
+
const gptKey = apiStatus.gpt.length > 0 ? '✓ Key' : '⬚ —';
|
|
123
|
+
const geminiKey = apiStatus.gemini.length > 0 ? '✓ Key' : '⬚ —';
|
|
124
|
+
const cocoLines = ['Coding Agent:'];
|
|
125
|
+
if (!cocoCli.installed) {
|
|
126
|
+
cocoLines.push(' coco ⬚ Not installed');
|
|
127
|
+
}
|
|
128
|
+
else if (!cocoCli.authenticated) {
|
|
129
|
+
cocoLines.push(' coco ✓ Installed, ⚠ No auth (run: coco auth)');
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
cocoLines.push(` coco ✓ Usable · active: ${cocoCli.activeVendor}`);
|
|
133
|
+
if (cocoCli.methods && cocoCli.methods.length > 0) {
|
|
134
|
+
cocoLines.push(` methods: ${cocoCli.methods.join(', ')}`);
|
|
135
|
+
}
|
|
103
136
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
137
|
+
return [
|
|
138
|
+
...cocoLines,
|
|
139
|
+
'',
|
|
140
|
+
'LLM CLI (orchestration):',
|
|
141
|
+
` Claude Code ${claudeRow}`,
|
|
142
|
+
` Codex (GPT) ${codexRow}`,
|
|
143
|
+
` Gemini ${geminiRow}`,
|
|
144
|
+
'',
|
|
145
|
+
'LLM API Key (direct):',
|
|
146
|
+
` GPT ${gptKey}`,
|
|
147
|
+
` Gemini ${geminiKey}`,
|
|
148
|
+
].join('\n');
|
|
109
149
|
}
|
|
110
150
|
//# 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;AAC9E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* 협업자 자동 설치 설정
|
|
6
|
+
*
|
|
7
|
+
* @param harnessDir '.claude' | '.coco' (기본값: '.claude')
|
|
8
|
+
* Claude/coco 공통 setup.sh 는 `.vibe/` (SSOT) 에 저장.
|
|
9
|
+
* harnessDir 은 README/안내 문구에서 CLI 이름(Claude Code vs coco) 결정용.
|
|
6
10
|
*/
|
|
7
|
-
export declare function setupCollaboratorAutoInstall(projectRoot: string): void;
|
|
11
|
+
export declare function setupCollaboratorAutoInstall(projectRoot: string, harnessDir?: string): void;
|
|
8
12
|
//# sourceMappingURL=collaborator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collaborator.d.ts","sourceRoot":"","sources":["../../src/cli/collaborator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH
|
|
1
|
+
{"version":3,"file":"collaborator.d.ts","sourceRoot":"","sources":["../../src/cli/collaborator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,MAAkB,GAC7B,IAAI,CA4HN"}
|
package/dist/cli/collaborator.js
CHANGED
|
@@ -5,10 +5,15 @@ import path from 'path';
|
|
|
5
5
|
import fs from 'fs';
|
|
6
6
|
/**
|
|
7
7
|
* 협업자 자동 설치 설정
|
|
8
|
+
*
|
|
9
|
+
* @param harnessDir '.claude' | '.coco' (기본값: '.claude')
|
|
10
|
+
* Claude/coco 공통 setup.sh 는 `.vibe/` (SSOT) 에 저장.
|
|
11
|
+
* harnessDir 은 README/안내 문구에서 CLI 이름(Claude Code vs coco) 결정용.
|
|
8
12
|
*/
|
|
9
|
-
export function setupCollaboratorAutoInstall(projectRoot) {
|
|
13
|
+
export function setupCollaboratorAutoInstall(projectRoot, harnessDir = '.claude') {
|
|
10
14
|
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
11
|
-
const coreDir = path.join(projectRoot, '.
|
|
15
|
+
const coreDir = path.join(projectRoot, '.vibe');
|
|
16
|
+
const cliLabel = harnessDir === '.coco' ? 'coco' : 'Claude Code';
|
|
12
17
|
// 1. Node.js 프로젝트: package.json 정리
|
|
13
18
|
if (fs.existsSync(packageJsonPath)) {
|
|
14
19
|
try {
|
|
@@ -50,7 +55,7 @@ export function setupCollaboratorAutoInstall(projectRoot) {
|
|
|
50
55
|
}
|
|
51
56
|
catch { /* ignore: optional operation */ }
|
|
52
57
|
}
|
|
53
|
-
// 2.
|
|
58
|
+
// 2. <harness>/vibe/setup.sh 생성
|
|
54
59
|
const setupShPath = path.join(coreDir, 'setup.sh');
|
|
55
60
|
if (!fs.existsSync(coreDir)) {
|
|
56
61
|
fs.mkdirSync(coreDir, { recursive: true });
|
|
@@ -58,7 +63,7 @@ export function setupCollaboratorAutoInstall(projectRoot) {
|
|
|
58
63
|
if (!fs.existsSync(setupShPath)) {
|
|
59
64
|
const setupScript = `#!/bin/bash
|
|
60
65
|
# Core collaborator auto-install script
|
|
61
|
-
# Usage: ./.
|
|
66
|
+
# Usage: ./.vibe/setup.sh
|
|
62
67
|
|
|
63
68
|
set -e
|
|
64
69
|
|
|
@@ -111,7 +116,7 @@ vibe init
|
|
|
111
116
|
|
|
112
117
|
### Usage
|
|
113
118
|
|
|
114
|
-
Use slash commands in
|
|
119
|
+
Use slash commands in ${cliLabel}:
|
|
115
120
|
- \`/vibe.spec "feature"\` - Create SPEC document
|
|
116
121
|
- \`/vibe.run "feature"\` - Execute implementation
|
|
117
122
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collaborator.js","sourceRoot":"","sources":["../../src/cli/collaborator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB
|
|
1
|
+
{"version":3,"file":"collaborator.js","sourceRoot":"","sources":["../../src/cli/collaborator.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAQH;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CA0C/B;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAyBjC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
import path from 'path';
|
|
5
5
|
import fs from 'fs';
|
|
6
6
|
import { getPackageJson } from '../utils.js';
|
|
7
|
-
import {
|
|
8
|
-
import { detectClaudeCli, detectCocoCli, detectCodexCli, detectGeminiCli } from '../utils/cli-detector.js';
|
|
7
|
+
import { formatLLMStatus } from '../auth.js';
|
|
9
8
|
/**
|
|
10
9
|
* 도움말 표시
|
|
11
10
|
*/
|
|
@@ -15,7 +14,8 @@ VIBE - Personalized AI Agent (Claude Code exclusive)
|
|
|
15
14
|
|
|
16
15
|
Commands:
|
|
17
16
|
vibe setup 셋업 위자드 (인증, 설정 한번에)
|
|
18
|
-
vibe init [project] 프로젝트 초기화
|
|
17
|
+
vibe init [project] 프로젝트 초기화 (.claude/ 대상)
|
|
18
|
+
vibe init --coco 프로젝트 초기화 (.coco/ 대상)
|
|
19
19
|
vibe update 설정 업데이트
|
|
20
20
|
vibe upgrade 최신 버전으로 업그레이드
|
|
21
21
|
vibe remove 프로젝트에서 제거
|
|
@@ -64,15 +64,6 @@ export function showStatus() {
|
|
|
64
64
|
if (isCoreProject && fs.existsSync(configPath)) {
|
|
65
65
|
config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
66
66
|
}
|
|
67
|
-
const authStatus = getLLMAuthStatus();
|
|
68
|
-
const claudeCli = detectClaudeCli();
|
|
69
|
-
const cocoCli = detectCocoCli();
|
|
70
|
-
const codexCli = detectCodexCli();
|
|
71
|
-
const geminiCli = detectGeminiCli();
|
|
72
|
-
const claudeStatusText = formatAuthMethods(authStatus.claude, claudeCli.installed);
|
|
73
|
-
const cocoStatusText = cocoCli.installed ? '✓ CLI' : '⬚ Not installed';
|
|
74
|
-
const gptStatusText = formatAuthMethods(authStatus.gpt, codexCli.installed);
|
|
75
|
-
const geminiStatusText = formatAuthMethods(authStatus.gemini, geminiCli.installed);
|
|
76
67
|
// 프로젝트 상태
|
|
77
68
|
const projectStatus = isCoreProject
|
|
78
69
|
? `✅ ${projectRoot}`
|
|
@@ -81,15 +72,8 @@ export function showStatus() {
|
|
|
81
72
|
VIBE Status (v${packageJson.version})
|
|
82
73
|
|
|
83
74
|
Project: ${projectStatus}
|
|
84
|
-
${isCoreProject ? `Language: ${config.language || 'ko'}` : ''}
|
|
85
|
-
|
|
86
|
-
CLI:
|
|
87
|
-
Claude Code ${claudeStatusText}
|
|
88
|
-
coco ${cocoStatusText}
|
|
89
|
-
|
|
90
|
-
LLM:
|
|
91
|
-
GPT ${gptStatusText}
|
|
92
|
-
Gemini ${geminiStatusText}
|
|
75
|
+
${isCoreProject ? `Language: ${config.language || 'ko'}\n` : ''}
|
|
76
|
+
${formatLLMStatus()}
|
|
93
77
|
`);
|
|
94
78
|
}
|
|
95
79
|
/**
|
|
@@ -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,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,
|
|
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,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCX,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAErD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,MAAM,GAAyC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAClF,IAAI,aAAa,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/C,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,UAAU;IACV,MAAM,aAAa,GAAG,aAAa;QACjC,CAAC,CAAC,KAAK,WAAW,EAAE;QACpB,CAAC,CAAC,uCAAuC,CAAC;IAE5C,OAAO,CAAC,GAAG,CAAC;gBACE,WAAW,CAAC,OAAO;;WAExB,aAAa;EACtB,aAAa,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;EAC7D,eAAe,EAAE;GAChB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -9,17 +9,25 @@ import { CliOptions } from '../types.js';
|
|
|
9
9
|
*/
|
|
10
10
|
export declare function updateCursorGlobalAssets(detectedStacks?: string[], options?: CliOptions): void;
|
|
11
11
|
/**
|
|
12
|
-
* 스택 + capability 기반 로컬 스킬 설치 (.claude/skills/)
|
|
12
|
+
* 스택 + capability 기반 로컬 스킬 설치 (.claude/skills/ 또는 .coco/skills/)
|
|
13
13
|
* init, update 공용
|
|
14
|
+
*
|
|
15
|
+
* @param harnessDir '.claude' | '.coco' (기본값: '.claude')
|
|
14
16
|
*/
|
|
15
|
-
export declare function installLocalSkills(projectRoot: string, stackTypes: string[], capabilities?: string[]): void;
|
|
17
|
+
export declare function installLocalSkills(projectRoot: string, stackTypes: string[], capabilities?: string[], harnessDir?: string): void;
|
|
16
18
|
/**
|
|
17
19
|
* 감지된 스택에 해당하는 언어 룰 파일을 프로젝트 로컬에 설치
|
|
18
|
-
* 전역 ~/.claude/vibe/languages/ → 프로젝트
|
|
20
|
+
* 전역 ~/.<harness>/vibe/languages/ (fallback: ~/.claude/vibe/languages/) → 프로젝트 `.vibe/languages/`
|
|
21
|
+
*
|
|
22
|
+
* @param harnessDir 전역 소스 탐색용 하네스. 설치 대상은 항상 `.vibe/`.
|
|
19
23
|
*/
|
|
20
|
-
export declare function installLanguageRules(projectRoot: string, stackTypes: string[]): void;
|
|
24
|
+
export declare function installLanguageRules(projectRoot: string, stackTypes: string[], harnessDir?: string): void;
|
|
21
25
|
/**
|
|
22
26
|
* init 명령어 실행
|
|
27
|
+
*
|
|
28
|
+
* @param projectName 새 프로젝트 디렉토리 이름 (생략 시 cwd 사용)
|
|
29
|
+
* @param target 초기화 대상 하네스. 'cc' → `.claude/vibe/` (기본), 'coco' → `.coco/vibe/`.
|
|
30
|
+
* CLAUDE.md ↔ AGENTS.md 피어 구조의 project 쪽 대응. 양쪽 다 원하면 두 번 실행.
|
|
23
31
|
*/
|
|
24
|
-
export declare function init(projectName?: string): Promise<void>;
|
|
32
|
+
export declare function init(projectName?: string, target?: 'cc' | 'coco'): Promise<void>;
|
|
25
33
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,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;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAkCzC;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,GAAE,MAAM,EAAO,EAC7B,OAAO,GAAE,UAA8B,GACtC,IAAI,CA+BN;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,YAAY,GAAE,MAAM,EAAO,EAC3B,UAAU,GAAE,MAAkB,GAC7B,IAAI,CAYN;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,GAAE,MAAkB,GAC7B,IAAI,CA8BN;AAmBD;;;;;;GAMG;AACH,wBAAsB,IAAI,CACxB,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,GAAE,IAAI,GAAG,MAAa,GAC3B,OAAO,CAAC,IAAI,CAAC,CAyRf"}
|