@su-record/vibe 2.12.1 → 2.12.2
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/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +7 -5
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/info.test.d.ts +2 -0
- package/dist/cli/commands/info.test.d.ts.map +1 -0
- package/dist/cli/commands/info.test.js +41 -0
- package/dist/cli/commands/info.test.js.map +1 -0
- package/dist/cli/commands/upgrade.d.ts +7 -0
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +30 -3
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/upgrade.test.d.ts +2 -0
- package/dist/cli/commands/upgrade.test.d.ts.map +1 -0
- package/dist/cli/commands/upgrade.test.js +15 -0
- package/dist/cli/commands/upgrade.test.js.map +1 -0
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
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,CA2C/B;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,
|
|
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,CA2C/B;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CA2BjC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}
|
|
@@ -10,7 +10,7 @@ import { formatLLMStatus } from '../auth.js';
|
|
|
10
10
|
*/
|
|
11
11
|
export function showHelp() {
|
|
12
12
|
console.log(`
|
|
13
|
-
VIBE -
|
|
13
|
+
VIBE - AI Coding Harness (Claude Code / Codex / Antigravity)
|
|
14
14
|
|
|
15
15
|
Commands:
|
|
16
16
|
vibe setup 셋업 위자드 (인증, 설정 한번에)
|
|
@@ -38,7 +38,7 @@ Figma:
|
|
|
38
38
|
Skills:
|
|
39
39
|
vibe skills add <pkg> Install skill from skills.sh
|
|
40
40
|
|
|
41
|
-
Slash Commands (Claude Code):
|
|
41
|
+
Slash Commands (Claude Code / Codex):
|
|
42
42
|
/vibe.spec "feature" SPEC 작성 + 리서치
|
|
43
43
|
/vibe.run "feature" 구현 실행
|
|
44
44
|
/vibe.verify "feature" BDD 검증
|
|
@@ -57,10 +57,12 @@ Docs: https://github.com/su-record/vibe
|
|
|
57
57
|
*/
|
|
58
58
|
export function showStatus() {
|
|
59
59
|
const projectRoot = process.cwd();
|
|
60
|
-
const coreDir = path.join(projectRoot, '.
|
|
61
|
-
const
|
|
60
|
+
const coreDir = path.join(projectRoot, '.vibe');
|
|
61
|
+
const legacyCoreDir = path.join(projectRoot, '.claude', 'vibe');
|
|
62
|
+
const activeCoreDir = fs.existsSync(coreDir) ? coreDir : legacyCoreDir;
|
|
63
|
+
const configPath = path.join(activeCoreDir, 'config.json');
|
|
62
64
|
const packageJson = getPackageJson();
|
|
63
|
-
const isCoreProject = fs.existsSync(
|
|
65
|
+
const isCoreProject = fs.existsSync(activeCoreDir);
|
|
64
66
|
let config = { language: 'ko', models: {} };
|
|
65
67
|
if (isCoreProject && fs.existsSync(configPath)) {
|
|
66
68
|
config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
@@ -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,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCX,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;
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCX,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,OAAO,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAE3D,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAEnD,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.test.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/info.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import os from 'os';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
5
|
+
import { showHelp, showStatus } from './info.js';
|
|
6
|
+
const originalCwd = process.cwd();
|
|
7
|
+
function captureLog(run) {
|
|
8
|
+
const lines = [];
|
|
9
|
+
const spy = vi.spyOn(console, 'log').mockImplementation((message) => {
|
|
10
|
+
lines.push(String(message ?? ''));
|
|
11
|
+
});
|
|
12
|
+
try {
|
|
13
|
+
run();
|
|
14
|
+
}
|
|
15
|
+
finally {
|
|
16
|
+
spy.mockRestore();
|
|
17
|
+
}
|
|
18
|
+
return lines.join('\n');
|
|
19
|
+
}
|
|
20
|
+
describe('CLI info commands', () => {
|
|
21
|
+
afterEach(() => {
|
|
22
|
+
process.chdir(originalCwd);
|
|
23
|
+
});
|
|
24
|
+
it('describes all supported harnesses in help output', () => {
|
|
25
|
+
const output = captureLog(showHelp);
|
|
26
|
+
expect(output).toContain('Claude Code / Codex / Antigravity');
|
|
27
|
+
expect(output).toContain('vibe init --antigravity');
|
|
28
|
+
expect(output).not.toContain(['Claude Code', 'exclusive'].join(' '));
|
|
29
|
+
expect(output).not.toContain(['Gemini', 'CLI'].join(' '));
|
|
30
|
+
});
|
|
31
|
+
it('detects .vibe as the project status directory', () => {
|
|
32
|
+
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'vibe-status-'));
|
|
33
|
+
fs.mkdirSync(path.join(tempDir, '.vibe'), { recursive: true });
|
|
34
|
+
fs.writeFileSync(path.join(tempDir, '.vibe', 'config.json'), JSON.stringify({ language: 'ko', models: {} }));
|
|
35
|
+
process.chdir(tempDir);
|
|
36
|
+
const output = captureLog(showStatus);
|
|
37
|
+
expect(output).toContain(`Project: ✅ ${fs.realpathSync(tempDir)}`);
|
|
38
|
+
expect(output).not.toContain('Not a core project');
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=info.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.test.js","sourceRoot":"","sources":["../../../src/cli/commands/info.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAElC,SAAS,UAAU,CAAC,GAAe;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,CAAC,OAAiB,EAAE,EAAE;QAC5E,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,GAAG,EAAE,CAAC;IACR,CAAC;YAAS,CAAC;QACT,GAAG,CAAC,WAAW,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QACvE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAC1C,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAC/C,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAEtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
* upgrade 명령어 — 전역 패키지 최신 버전으로 업그레이드
|
|
3
3
|
*/
|
|
4
4
|
import { CliOptions } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Read status formatter from the package that was just installed.
|
|
7
|
+
*
|
|
8
|
+
* WHY: `vibe upgrade` keeps running in the old process after npm install.
|
|
9
|
+
* Loading auth.js from the installed package prevents stale post-upgrade labels.
|
|
10
|
+
*/
|
|
11
|
+
export declare function readInstalledLLMStatus(globalRoot: string): string;
|
|
5
12
|
/**
|
|
6
13
|
* Upgrade global package to latest version
|
|
7
14
|
* npm install -g → postinstall handles global config
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsBzC;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAYjE;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,QAAQ,GAAE,UAA8B,GAAG,IAAI,CAsCtE"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* upgrade 명령어 — 전역 패키지 최신 버전으로 업그레이드
|
|
3
3
|
*/
|
|
4
|
-
import { execSync } from 'child_process';
|
|
4
|
+
import { execFileSync, execSync } from 'child_process';
|
|
5
5
|
import { readdirSync, readFileSync, rmSync } from 'fs';
|
|
6
6
|
import { join } from 'path';
|
|
7
|
+
import { pathToFileURL } from 'url';
|
|
7
8
|
import { log, getPackageJson } from '../utils.js';
|
|
8
9
|
import { formatLLMStatus } from '../auth.js';
|
|
9
10
|
/**
|
|
@@ -24,6 +25,25 @@ function cleanStaleTempDirs() {
|
|
|
24
25
|
// Scope dir may not exist yet — ignore
|
|
25
26
|
}
|
|
26
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Read status formatter from the package that was just installed.
|
|
30
|
+
*
|
|
31
|
+
* WHY: `vibe upgrade` keeps running in the old process after npm install.
|
|
32
|
+
* Loading auth.js from the installed package prevents stale post-upgrade labels.
|
|
33
|
+
*/
|
|
34
|
+
export function readInstalledLLMStatus(globalRoot) {
|
|
35
|
+
const authPath = join(globalRoot, '@su-record', 'vibe', 'dist', 'cli', 'auth.js');
|
|
36
|
+
const authUrl = `${pathToFileURL(authPath).href}?t=${Date.now()}`;
|
|
37
|
+
const script = [
|
|
38
|
+
`import(${JSON.stringify(authUrl)})`,
|
|
39
|
+
".then(m => process.stdout.write(m.formatLLMStatus()))",
|
|
40
|
+
".catch(e => { process.stderr.write(String(e?.message || e)); process.exit(1); });",
|
|
41
|
+
].join('');
|
|
42
|
+
return execFileSync(process.execPath, ['--input-type=module', '-e', script], {
|
|
43
|
+
encoding: 'utf-8',
|
|
44
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
45
|
+
}).trimEnd();
|
|
46
|
+
}
|
|
27
47
|
/**
|
|
28
48
|
* Upgrade global package to latest version
|
|
29
49
|
* npm install -g → postinstall handles global config
|
|
@@ -38,15 +58,22 @@ export function upgrade(_options = { silent: false }) {
|
|
|
38
58
|
});
|
|
39
59
|
// 설치된 새 버전을 디스크에서 직접 읽기 (현재 프로세스의 캐시된 값이 아닌)
|
|
40
60
|
let newVersion = 'unknown';
|
|
61
|
+
let globalRoot = '';
|
|
41
62
|
try {
|
|
42
|
-
|
|
63
|
+
globalRoot = execSync('npm root -g', { encoding: 'utf-8' }).trim();
|
|
43
64
|
const installedPkg = JSON.parse(readFileSync(join(globalRoot, '@su-record', 'vibe', 'package.json'), 'utf-8'));
|
|
44
65
|
newVersion = installedPkg.version;
|
|
45
66
|
}
|
|
46
67
|
catch {
|
|
47
68
|
newVersion = getPackageJson().version;
|
|
48
69
|
}
|
|
49
|
-
|
|
70
|
+
let llmStatus = formatLLMStatus();
|
|
71
|
+
try {
|
|
72
|
+
if (globalRoot)
|
|
73
|
+
llmStatus = readInstalledLLMStatus(globalRoot);
|
|
74
|
+
}
|
|
75
|
+
catch { /* fallback to current process formatter */ }
|
|
76
|
+
log(`\n✅ vibe upgraded (v${newVersion})\n\n${llmStatus}\n`);
|
|
50
77
|
}
|
|
51
78
|
catch (error) {
|
|
52
79
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAClE,MAAM,MAAM,GAAG;QACb,UAAU,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG;QACpC,uDAAuD;QACvD,mFAAmF;KACpF,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,OAAO,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE;QAC3E,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC,OAAO,EAAE,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,WAAuB,EAAE,MAAM,EAAE,KAAK,EAAE;IAC9D,IAAI,CAAC;QACH,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAE3C,kBAAkB,EAAE,CAAC;QAErB,8CAA8C;QAC9C,QAAQ,CAAC,uDAAuD,EAAE;YAChE,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAEH,6CAA6C;QAC7C,IAAI,UAAU,GAAG,SAAS,CAAC;QAC3B,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACnE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAC7B,YAAY,CACV,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,EACtD,OAAO,CACR,CACqB,CAAC;YACzB,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,cAAc,EAAE,CAAC,OAAO,CAAC;QACxC,CAAC;QAED,IAAI,SAAS,GAAG,eAAe,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,UAAU;gBAAE,SAAS,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC,CAAC,2CAA2C,CAAC,CAAC;QAEvD,GAAG,CAAC,uBAAuB,UAAU,QAAQ,SAAS,IAAI,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.test.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import os from 'os';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { describe, expect, it } from 'vitest';
|
|
5
|
+
import { readInstalledLLMStatus } from './upgrade.js';
|
|
6
|
+
describe('upgrade command helpers', () => {
|
|
7
|
+
it('reads LLM status from the newly installed package', () => {
|
|
8
|
+
const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'vibe-upgrade-'));
|
|
9
|
+
const authDir = path.join(tempRoot, '@su-record', 'vibe', 'dist', 'cli');
|
|
10
|
+
fs.mkdirSync(authDir, { recursive: true });
|
|
11
|
+
fs.writeFileSync(path.join(authDir, 'auth.js'), 'export function formatLLMStatus() { return "FRESH ANTIGRAVITY STATUS"; }\n');
|
|
12
|
+
expect(readInstalledLLMStatus(tempRoot)).toBe('FRESH ANTIGRAVITY STATUS');
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=upgrade.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.test.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACzE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAC7B,4EAA4E,CAC7E,CAAC;QAEF,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* core CLI — SPEC-driven AI coding framework
|
|
3
|
+
* core CLI — SPEC-driven AI coding framework for Claude Code, Codex, and Antigravity
|
|
4
4
|
*/
|
|
5
5
|
export * from '../infra/lib/MemoryManager.js';
|
|
6
6
|
export * from '../infra/lib/ProjectCache.js';
|
package/dist/cli/index.js
CHANGED