@tienne/gestalt 0.20.0 → 0.20.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tienne/gestalt",
3
- "version": "0.20.0",
3
+ "version": "0.20.1",
4
4
  "description": "TypeScript AI Development Harness - Gestalt psychology-driven requirement clarification",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCnD"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAqBA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAkEnD"}
@@ -1,5 +1,23 @@
1
1
  import { execSync } from 'node:child_process';
2
2
  import { checkForUpdates } from '../../core/version.js';
3
+ function hasBinary(name) {
4
+ try {
5
+ execSync(`which ${name}`, { stdio: 'pipe' });
6
+ return true;
7
+ }
8
+ catch {
9
+ return false;
10
+ }
11
+ }
12
+ function isCodexGestaltNpx() {
13
+ try {
14
+ const out = execSync('codex mcp get gestalt 2>/dev/null', { encoding: 'utf-8', stdio: 'pipe' });
15
+ return out.includes('npx') && out.includes('@tienne/gestalt');
16
+ }
17
+ catch {
18
+ return false;
19
+ }
20
+ }
3
21
  export async function updateCommand() {
4
22
  console.log('업데이트 확인 중...');
5
23
  const result = await checkForUpdates();
@@ -13,19 +31,53 @@ export async function updateCommand() {
13
31
  console.log('✅ 최신 버전입니다.');
14
32
  return;
15
33
  }
16
- console.log(`\n새 버전이 있습니다: v${result.currentVersion} → v${result.latestVersion}`);
17
- console.log('업데이트 중...');
18
- try {
19
- execSync(`npm install -g @tienne/gestalt@${result.latestVersion}`, { stdio: 'inherit' });
20
- console.log(`\n✅ v${result.latestVersion} 업데이트 완료!`);
21
- console.log('\nClaude Code 플러그인도 업데이트하려면:');
22
- console.log(' /plugin install gestalt@gestalt');
34
+ console.log(`\n새 버전이 있습니다: v${result.currentVersion} → v${result.latestVersion}\n`);
35
+ const hasClause = hasBinary('claude');
36
+ const hasCodex = hasBinary('codex');
37
+ // Claude Code 플러그인 업데이트
38
+ if (hasClause) {
39
+ console.log(' Claude Code 플러그인 업데이트 중...');
40
+ try {
41
+ execSync('claude plugin install gestalt@gestalt', { stdio: 'inherit' });
42
+ console.log('✅ Claude Code 플러그인 업데이트 완료!');
43
+ }
44
+ catch {
45
+ console.error('✗ Claude Code 플러그인 업데이트 실패. 수동으로 실행해주세요:');
46
+ console.error(' claude plugin install gestalt@gestalt');
47
+ }
23
48
  }
24
- catch {
25
- console.error('\n자동 업데이트에 실패했습니다. 수동으로 업데이트해주세요:');
26
- console.error(` npm install -g @tienne/gestalt@latest`);
27
- console.error('또는 Claude Code 플러그인:');
28
- console.error(' /plugin install gestalt@gestalt');
49
+ // Codex MCP 업데이트
50
+ if (hasCodex) {
51
+ if (isCodexGestaltNpx()) {
52
+ // npx 방식은 Codex 재시작 시 자동으로 최신 버전을 가져옴
53
+ console.log(' Codex: 다음 시작 시 자동으로 v' + result.latestVersion + '이 적용됩니다. (npx 방식)');
54
+ }
55
+ else {
56
+ // global 설치 방식 — MCP 재등록
57
+ console.log('● Codex MCP 재등록 중...');
58
+ try {
59
+ execSync('codex mcp remove gestalt', { stdio: 'pipe' });
60
+ execSync('codex mcp add gestalt -- npx -y @tienne/gestalt', { stdio: 'inherit' });
61
+ console.log('✅ Codex MCP 재등록 완료!');
62
+ }
63
+ catch {
64
+ console.error('✗ Codex MCP 재등록 실패. 수동으로 실행해주세요:');
65
+ console.error(' codex mcp remove gestalt');
66
+ console.error(' codex mcp add gestalt -- npx -y @tienne/gestalt');
67
+ }
68
+ }
69
+ }
70
+ // Claude Code도 Codex도 없으면 npm global 업데이트
71
+ if (!hasClause && !hasCodex) {
72
+ console.log('● npm 글로벌 업데이트 중...');
73
+ try {
74
+ execSync(`npm install -g @tienne/gestalt@${result.latestVersion}`, { stdio: 'inherit' });
75
+ console.log(`✅ v${result.latestVersion} npm 글로벌 업데이트 완료!`);
76
+ }
77
+ catch {
78
+ console.error('✗ 업데이트 실패. 수동으로 실행해주세요:');
79
+ console.error(' npm install -g @tienne/gestalt@latest');
80
+ }
29
81
  }
30
82
  }
31
83
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAE5B,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IAEvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IAE/C,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,cAAc,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEzB,IAAI,CAAC;QACH,QAAQ,CAAC,kCAAkC,MAAM,CAAC,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,aAAa,WAAW,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tienne/gestalt",
3
- "version": "0.20.0",
3
+ "version": "0.20.1",
4
4
  "description": "TypeScript AI Development Harness - Gestalt psychology-driven requirement clarification",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",