relayax-cli 0.1.991 → 0.1.992

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.
@@ -99,26 +99,27 @@ function registerInstall(program) {
99
99
  console.log(` \x1b[33m/${cmd.name}\x1b[0m - ${cmd.description}`);
100
100
  }
101
101
  }
102
- // Builder info block
103
- if (team.welcome) {
104
- console.log(`\n ┌─ 💬 ${authorDisplayName}님의 메시지 ${'─'.repeat(Math.max(0, 38 - authorDisplayName.length))}┐`);
105
- const lines = team.welcome.match(/.{1,50}/g) ?? [team.welcome];
106
- for (const line of lines) {
107
- console.log(` │ "${line}"`);
108
- }
109
- console.log(` └${'─'.repeat(44)}┘`);
110
- }
102
+ // Builder business card
111
103
  const contactLinks = team.author?.contact_links ?? {};
112
104
  const contactEntries = Object.entries(contactLinks);
113
- if (contactEntries.length > 0) {
114
- const parts = contactEntries.map(([key, val]) => `${key}: ${val}`);
115
- console.log(`\n 연락처: ${parts.join(' | ')}`);
116
- }
117
- if (authorUsername) {
118
- console.log(`\n \x1b[90m👤 프로필: relayax.com/@${authorUsername}\x1b[0m`);
119
- }
120
- if (team.latest_post && authorUsername) {
121
- console.log(` \x1b[90m📝 활용 팁: relayax.com/@${authorUsername}/posts/${team.latest_post.slug}\x1b[0m`);
105
+ const hasCard = team.welcome || contactEntries.length > 0 || authorUsername;
106
+ if (hasCard) {
107
+ console.log(`\n \x1b[90m┌─ ${authorDisplayName || authorUsername || '빌더'}의 명함 ${'─'.repeat(Math.max(0, 34 - (authorDisplayName || authorUsername || '빌더').length))}┐\x1b[0m`);
108
+ if (team.welcome) {
109
+ const truncated = team.welcome.length > 45 ? team.welcome.slice(0, 45) + '...' : team.welcome;
110
+ console.log(` \x1b[90m│\x1b[0m 💬 "${truncated}"`);
111
+ }
112
+ if (contactEntries.length > 0) {
113
+ const parts = contactEntries.map(([k, v]) => `${k}: ${v}`).join(' ');
114
+ console.log(` \x1b[90m│\x1b[0m 📇 ${parts}`);
115
+ }
116
+ if (authorUsername) {
117
+ console.log(` \x1b[90m│\x1b[0m 👤 relayax.com/@${authorUsername}`);
118
+ }
119
+ if (team.latest_post && authorUsername) {
120
+ console.log(` \x1b[90m│\x1b[0m 📝 relayax.com/@${authorUsername}/posts/${team.latest_post.slug}`);
121
+ }
122
+ console.log(` \x1b[90m└${'─'.repeat(44)}┘\x1b[0m`);
122
123
  }
123
124
  // Follow prompt (only when logged in)
124
125
  const token = (0, config_js_1.loadToken)();
@@ -433,6 +433,29 @@ function registerPublish(program) {
433
433
  if (result.portfolio_count && result.portfolio_count > 0) {
434
434
  console.log(` 포트폴리오: ${result.portfolio_count}개 이미지 업로드됨`);
435
435
  }
436
+ // Show business card preview
437
+ const profile = result.profile;
438
+ if (profile) {
439
+ const contacts = profile.contact_links ?? {};
440
+ const contactEntries = Object.entries(contacts);
441
+ const welcome = profile.default_welcome ?? '';
442
+ console.log(`\n \x1b[90m┌─ 설치자에게 보이는 명함 ${'─'.repeat(24)}┐\x1b[0m`);
443
+ if (welcome) {
444
+ console.log(` \x1b[90m│\x1b[0m 💬 "${welcome.length > 45 ? welcome.slice(0, 45) + '...' : welcome}"`);
445
+ }
446
+ if (contactEntries.length > 0) {
447
+ const parts = contactEntries.map(([k, v]) => `${k}: ${v}`).join(' ');
448
+ console.log(` \x1b[90m│\x1b[0m 📇 ${parts}`);
449
+ }
450
+ if (profile.username) {
451
+ console.log(` \x1b[90m│\x1b[0m 👤 relayax.com/@${profile.username}`);
452
+ }
453
+ if (!welcome && contactEntries.length === 0) {
454
+ console.log(` \x1b[90m│\x1b[0m \x1b[2m명함이 비어있습니다\x1b[0m`);
455
+ }
456
+ console.log(` \x1b[90m└${'─'.repeat(44)}┘\x1b[0m`);
457
+ console.log(`\n \x1b[90m명함 수정: \x1b[36mwww.relayax.com/dashboard/profile\x1b[0m`);
458
+ }
436
459
  }
437
460
  }
438
461
  catch (err) {
@@ -82,6 +82,27 @@ function registerUpdate(program) {
82
82
  console.log(`\n\x1b[32m✓ ${team.name} ${fromLabel}v${latestVersion} 업데이트 완료\x1b[0m`);
83
83
  console.log(` 설치 위치: \x1b[36m${installPath}\x1b[0m`);
84
84
  console.log(` 파일 수: ${files.length}개`);
85
+ // Builder business card
86
+ const authorUsername = team.author?.username;
87
+ const authorDisplayName = team.author?.display_name ?? authorUsername ?? '';
88
+ const contactLinks = team.author?.contact_links ?? {};
89
+ const contactEntries = Object.entries(contactLinks);
90
+ const hasCard = team.welcome || contactEntries.length > 0 || authorUsername;
91
+ if (hasCard) {
92
+ console.log(`\n \x1b[90m┌─ ${authorDisplayName || '빌더'}의 명함 ${'─'.repeat(Math.max(0, 34 - (authorDisplayName || '빌더').length))}┐\x1b[0m`);
93
+ if (team.welcome) {
94
+ const truncated = team.welcome.length > 45 ? team.welcome.slice(0, 45) + '...' : team.welcome;
95
+ console.log(` \x1b[90m│\x1b[0m 💬 "${truncated}"`);
96
+ }
97
+ if (contactEntries.length > 0) {
98
+ const parts = contactEntries.map(([k, v]) => `${k}: ${v}`).join(' ');
99
+ console.log(` \x1b[90m│\x1b[0m 📇 ${parts}`);
100
+ }
101
+ if (authorUsername) {
102
+ console.log(` \x1b[90m│\x1b[0m 👤 relayax.com/@${authorUsername}`);
103
+ }
104
+ console.log(` \x1b[90m└${'─'.repeat(44)}┘\x1b[0m`);
105
+ }
85
106
  }
86
107
  }
87
108
  catch (err) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "relayax-cli",
3
- "version": "0.1.991",
3
+ "version": "0.1.992",
4
4
  "description": "RelayAX Agent Team Marketplace CLI - Install and manage agent teams",
5
5
  "main": "dist/index.js",
6
6
  "bin": {