clitrigger 0.1.3 → 0.1.5

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/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  <div align="center">
2
2
 
3
3
  <picture>
4
- <source media="(prefers-color-scheme: dark)" srcset="src/client/public/logo.svg">
5
- <source media="(prefers-color-scheme: light)" srcset="src/client/public/logo.svg">
6
- <img alt="CLITrigger" src="src/client/public/logo.svg" width="360">
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/src/client/public/logo.svg">
5
+ <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/src/client/public/logo.svg">
6
+ <img alt="CLITrigger" src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/src/client/public/logo.svg" width="360">
7
7
  </picture>
8
8
 
9
9
  **AI-Powered Parallel Worktree Automation**
@@ -11,8 +11,8 @@
11
11
  *Write tasks. Let AI execute them in parallel. Review and merge.*
12
12
 
13
13
  <p align="center">
14
- <a href="README.md">한국어</a> ·
15
- <a href="README_EN.md">English</a>
14
+ <a href="https://github.com/OSgoodYZ/CLITrigger/blob/main/README.md">한국어</a> ·
15
+ <a href="https://github.com/OSgoodYZ/CLITrigger/blob/main/README_EN.md">English</a>
16
16
  </p>
17
17
 
18
18
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
@@ -30,7 +30,7 @@
30
30
  > CLITrigger는 AI를 병렬로 돌리면서도, 개발자가 맥락을 잃지 않도록 설계되었다.
31
31
 
32
32
  <div align="center">
33
- <img src="docs/images/screenshot-tasks.png" alt="Tasks — 병렬 워크트리 실행" width="800">
33
+ <img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-tasks.png" alt="Tasks — 병렬 워크트리 실행" width="800">
34
34
  <p><em>병렬 워크트리에서 AI CLI가 동시에 작업을 처리하는 모습</em></p>
35
35
  </div>
36
36
 
@@ -77,7 +77,7 @@ TODO를 작성하면 각 작업마다 격리된 git worktree가 자동 생성된
77
77
  아키텍트, 개발자, 리뷰어 등 역할이 다른 AI 에이전트들이 라운드 방식으로 토론한 뒤, 합의된 내용을 바탕으로 자동 구현까지 이어진다. 단일 AI의 판단보다 훨씬 검증된 설계 결과물이 나온다.
78
78
 
79
79
  <div align="center">
80
- <img src="docs/images/screenshot-discussions.png" alt="Discussions — 다중 AI 토론" width="800">
80
+ <img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-discussions.png" alt="Discussions — 다중 AI 토론" width="800">
81
81
  <p><em>여러 AI 에이전트가 역할별로 토론하는 Discussion 화면</em></p>
82
82
  </div>
83
83
 
@@ -85,7 +85,7 @@ TODO를 작성하면 각 작업마다 격리된 git worktree가 자동 생성된
85
85
  토큰 한도를 피해 새벽이나 특정 시각에 작업을 예약 실행할 수 있다. cron 기반 반복 스케줄과 일회성 예약 모두 지원한다.
86
86
 
87
87
  <div align="center">
88
- <img src="docs/images/screenshot-schedules.png" alt="Schedules — 예약 실행" width="800">
88
+ <img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-schedules.png" alt="Schedules — 예약 실행" width="800">
89
89
  <p><em>cron 기반 반복·일회성 예약 실행 설정 화면</em></p>
90
90
  </div>
91
91
 
package/README_EN.md ADDED
@@ -0,0 +1,219 @@
1
+ <div align="center">
2
+
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/src/client/public/logo.svg">
5
+ <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/src/client/public/logo.svg">
6
+ <img alt="CLITrigger" src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/src/client/public/logo.svg" width="360">
7
+ </picture>
8
+
9
+ **AI-Powered Parallel Worktree Automation**
10
+
11
+ *Write tasks. Let AI execute them in parallel. Review and merge.*
12
+
13
+ <p align="center">
14
+ <a href="https://github.com/OSgoodYZ/CLITrigger/blob/main/README.md">한국어</a> ·
15
+ <a href="https://github.com/OSgoodYZ/CLITrigger/blob/main/README_EN.md">English</a>
16
+ </p>
17
+
18
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
19
+ [![npm](https://img.shields.io/npm/v/clitrigger.svg)](https://www.npmjs.com/package/clitrigger)
20
+ [![Node.js](https://img.shields.io/badge/Node.js-20%2B-green.svg)](https://nodejs.org)
21
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue.svg)](https://www.typescriptlang.org)
22
+ [![React](https://img.shields.io/badge/React-18-61dafb.svg)](https://react.dev)
23
+
24
+ </div>
25
+
26
+ ---
27
+
28
+ > In the age of AI-generated code, the developer's role is shifting toward supervision and review.
29
+ > But **vibe coding without understanding** eventually hits a wall.
30
+ > CLITrigger lets you run AI in parallel — while keeping you in full context of what's happening.
31
+
32
+ <div align="center">
33
+ <img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-tasks.png" alt="Tasks — Parallel worktree execution" width="800">
34
+ <p><em>AI CLIs working simultaneously across isolated git worktrees</em></p>
35
+ </div>
36
+
37
+ ---
38
+
39
+ ## Why CLITrigger?
40
+
41
+ Boris Cherny, creator of Claude Code, emphasizes **parallelism** as the key to AI-assisted development. Waiting for one task to finish before starting the next is the new bottleneck.
42
+
43
+ At the same time, most AI services have **rate limits** — you can burn through your daily quota by noon and be stuck waiting until midnight.
44
+
45
+ CLITrigger solves both problems:
46
+
47
+ - **Right now** — Multiple tasks run in isolated git worktrees, with Claude / Gemini / Codex executing in parallel
48
+ - **Without hitting limits** — Schedule tasks for off-peak hours to make the most of your token quota
49
+ - **Better output** — Multiple AI agents debate and review before implementation, producing higher-quality results than a single AI working alone
50
+
51
+ ---
52
+
53
+ ## How It Works
54
+
55
+ ```
56
+ [Write TODOs in the browser]
57
+
58
+ ┌──────────────────────────────────────────────────────────────┐
59
+ │ TODO 1: Implement login → worktree/feature-login → Claude CLI → auto-commit │
60
+ │ TODO 2: Signup page → worktree/feature-signup → Gemini CLI → auto-commit │
61
+ │ TODO 3: Dashboard layout → worktree/feature-dashboard → Claude CLI → auto-commit │
62
+ └──────────────────────────────────────────────────────────────┘
63
+
64
+ [Live log streaming → Review diffs → Merge to main]
65
+ ```
66
+
67
+ Each TODO runs in its **own isolated git worktree** — no conflicts, separate branches, independent commit history. You review the results and decide what to merge.
68
+
69
+ ---
70
+
71
+ ## Features
72
+
73
+ ### Parallel Worktree Execution
74
+ Each TODO automatically gets its own git worktree. Claude / Gemini / Codex CLIs execute simultaneously in parallel. Dependency chains let you automatically trigger follow-up tasks and branch merges once prerequisites complete.
75
+
76
+ ### Multi-Agent Discussion
77
+ AI agents with different roles — architect, developer, reviewer — debate in rounds before implementation. The resulting design is far more robust than a single AI working in isolation.
78
+
79
+ <div align="center">
80
+ <img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-discussions.png" alt="Discussions — Multi-agent debate" width="800">
81
+ <p><em>Multiple AI agents with different roles debating in the Discussion view</em></p>
82
+ </div>
83
+
84
+ ### Scheduled Execution
85
+ Schedule tasks for off-peak hours to avoid rate limits. Supports both recurring cron schedules and one-time scheduled runs.
86
+
87
+ <div align="center">
88
+ <img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-schedules.png" alt="Schedules — Scheduled execution" width="800">
89
+ <p><em>Cron-based recurring and one-time scheduled task execution</em></p>
90
+ </div>
91
+
92
+ ### Pipeline Execution
93
+ Chain tasks into multi-phase sequential or parallel pipelines. Automate complex release workflows end-to-end.
94
+
95
+ ### Live Logs & Built-in Git Client
96
+ WebSocket-based real-time log streaming. Commit, push, merge, and manage branches directly from the web UI — so you always stay in context.
97
+
98
+ ### Multi-CLI & Sandbox Mode
99
+ Select Claude / Gemini / Codex per project or per task. Strict sandbox mode restricts CLI file access to the worktree directory only.
100
+
101
+ ### Plugin System
102
+ Jira, GitHub, Notion integrations and gstack skill injection — add external service integrations as self-contained plugins.
103
+
104
+ ### Remote Access
105
+ Access and control from anywhere via Cloudflare Tunnel.
106
+
107
+ ---
108
+
109
+ ## Tech Stack
110
+
111
+ | Layer | Tech |
112
+ |-------|------|
113
+ | Backend | Node.js · Express · TypeScript · SQLite · WebSocket |
114
+ | Frontend | React 18 · Vite · Tailwind CSS |
115
+ | AI CLIs | Claude · Gemini · Codex (Adapter Pattern) |
116
+ | Git | simple-git (worktree management) |
117
+ | Scheduling | node-cron |
118
+ | Terminal | node-pty (TTY support) |
119
+ | Remote Access | Cloudflare Tunnel (optional) |
120
+
121
+ ---
122
+
123
+ ## Quick Start
124
+
125
+ ```bash
126
+ npm i -g clitrigger
127
+ clitrigger
128
+ ```
129
+
130
+ On first run, you'll be prompted to set a password. Then the server starts immediately.
131
+ Open `http://localhost:3000` → Register a project → Write TODOs → Click Start.
132
+
133
+ ```bash
134
+ # Change settings
135
+ clitrigger config port 8080 # Change port
136
+ clitrigger config password # Change password
137
+ ```
138
+
139
+ > **Prerequisites**: Node.js 20+, Git, at least one AI CLI (Claude / Gemini / Codex)
140
+ >
141
+ > **Supported Platforms**: Windows · macOS · Linux — all core code is cross-platform compatible.
142
+ > On macOS, you may need `xcode-select --install` for native module compilation.
143
+
144
+ ### Run from Source (for development)
145
+
146
+ <details>
147
+ <summary>Click to expand</summary>
148
+
149
+ ```bash
150
+ # 1. Clone & install
151
+ git clone https://github.com/OSgoodYZ/CLITrigger.git
152
+ cd CLITrigger
153
+ npm install
154
+ cd src/client && npm install && cd ../..
155
+
156
+ # 2. Configure environment
157
+ cp .env.example .env
158
+ # Edit .env and set AUTH_PASSWORD
159
+
160
+ # 3. Run
161
+ npm run dev
162
+ ```
163
+
164
+ Open `http://localhost:5173`.
165
+
166
+ #### Windows One-Click Scripts
167
+
168
+ Double-click any bat file in `scripts/` — no terminal needed.
169
+
170
+ | File | Action |
171
+ |------|--------|
172
+ | `install.bat` | Install dependencies (first time) |
173
+ | `dev.bat` | Start development mode |
174
+ | `build.bat` | Build project |
175
+ | `start.bat` | Start production server |
176
+ | `start-tunnel.bat` | Start with Cloudflare Tunnel |
177
+ | `test.bat` | Run all tests |
178
+
179
+ #### macOS / Linux
180
+
181
+ `npm run` commands work identically on all platforms. Use the terminal instead of `.bat` scripts.
182
+
183
+ ```bash
184
+ npm run dev # Development mode
185
+ npm run build # Build
186
+ npm run start # Production server
187
+ npm test # Run tests
188
+ ```
189
+
190
+ </details>
191
+
192
+ ### Remote Access (Cloudflare Tunnel)
193
+
194
+ ```bash
195
+ # Install cloudflared
196
+ winget install cloudflare.cloudflared # Windows
197
+ brew install cloudflared # macOS
198
+
199
+ # Set TUNNEL_ENABLED=true in .env, then:
200
+ npm run start:tunnel
201
+ # → Outputs https://xxxx.trycloudflare.com in the console
202
+ ```
203
+
204
+ ---
205
+
206
+ ## Documentation
207
+
208
+ | Doc | Content |
209
+ |-----|---------|
210
+ | [SETUP.md](docs/SETUP.md) | Detailed installation and usage guide |
211
+ | [CHANGELOG.md](docs/CHANGELOG.md) | Version history |
212
+ | [CICD.md](docs/CICD.md) | GitHub Actions CI/CD setup |
213
+ | [TESTING.md](docs/TESTING.md) | Testing guide |
214
+
215
+ ---
216
+
217
+ ## License
218
+
219
+ [MIT](LICENSE) — Free to use, modify, and distribute.
package/bin/clitrigger.js CHANGED
@@ -32,14 +32,14 @@ async function startServer() {
32
32
 
33
33
  let password = '';
34
34
  while (!password) {
35
- password = await rl.question('비밀번호를 설정해주세요: ');
36
- if (!password) console.log('비밀번호는 필수입니다.');
35
+ password = await rl.question('Set a password: ');
36
+ if (!password) console.log('Password is required.');
37
37
  }
38
38
  rl.close();
39
39
 
40
40
  const config = { port: 3000, password, tunnel: true };
41
41
  fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
42
- console.log(`\n✅ 설정 완료! (${CONFIG_FILE})`);
42
+ console.log(`\nSetup complete! (${CONFIG_FILE})`);
43
43
  }
44
44
 
45
45
  // config 읽고 env 설정
@@ -47,17 +47,17 @@ async function startServer() {
47
47
 
48
48
  // 기존 config에 비밀번호가 없으면 설정 강제
49
49
  if (!config.password) {
50
- console.log('⚠️ 비밀번호가 설정되지 않았습니다.\n');
50
+ console.log('Password is not set.\n');
51
51
  const rl = createInterface({ input: process.stdin, output: process.stdout });
52
52
  let password = '';
53
53
  while (!password) {
54
- password = await rl.question('비밀번호를 설정해주세요: ');
55
- if (!password) console.log('비밀번호는 필수입니다.');
54
+ password = await rl.question('Set a password: ');
55
+ if (!password) console.log('Password is required.');
56
56
  }
57
57
  rl.close();
58
58
  config.password = password;
59
59
  fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
60
- console.log(' 비밀번호가 설정되었습니다.\n');
60
+ console.log('Password saved.\n');
61
61
  }
62
62
 
63
63
  process.env.PORT = String(config.port || 3000);
@@ -78,17 +78,17 @@ async function startServer() {
78
78
  async function handleConfig(args) {
79
79
  if (args[0] === 'clear') {
80
80
  if (!fs.existsSync(CONFIG_DIR)) {
81
- console.log('삭제할 설정이 없습니다.');
81
+ console.log('No config to delete.');
82
82
  return;
83
83
  }
84
84
  const rl = createInterface({ input: process.stdin, output: process.stdout });
85
- const answer = await rl.question(`⚠️ ${CONFIG_DIR} 모든 설정과 데이터가 삭제됩니다. 계속하시겠습니까? (y/N) `);
85
+ const answer = await rl.question(`All config and data in ${CONFIG_DIR} will be deleted. Continue? (y/N) `);
86
86
  rl.close();
87
87
  if (answer.toLowerCase() === 'y') {
88
88
  fs.rmSync(CONFIG_DIR, { recursive: true, force: true });
89
- console.log(' 설정 데이터가 삭제되었습니다.');
89
+ console.log('Config and data deleted.');
90
90
  } else {
91
- console.log('취소되었습니다.');
91
+ console.log('Cancelled.');
92
92
  }
93
93
  return;
94
94
  }
@@ -96,7 +96,7 @@ async function handleConfig(args) {
96
96
  fs.mkdirSync(CONFIG_DIR, { recursive: true });
97
97
 
98
98
  if (!fs.existsSync(CONFIG_FILE)) {
99
- console.log('설정 파일이 없습니다. clitrigger 먼저 실행해주세요.');
99
+ console.log('No config file found. Run clitrigger first.');
100
100
  process.exit(1);
101
101
  }
102
102
 
@@ -104,53 +104,53 @@ async function handleConfig(args) {
104
104
 
105
105
  if (args[0] === 'port') {
106
106
  if (!args[1]) {
107
- console.log(`현재 포트: ${config.port || 3000}`);
107
+ console.log(`Current port: ${config.port || 3000}`);
108
108
  return;
109
109
  }
110
110
  const port = parseInt(args[1], 10);
111
111
  if (isNaN(port) || port < 1 || port > 65535) {
112
- console.log('유효한 포트 번호를 입력해주세요. (1-65535)');
112
+ console.log('Please enter a valid port number. (1-65535)');
113
113
  process.exit(1);
114
114
  }
115
115
  config.port = port;
116
116
  fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
117
- console.log(`✅ 포트가 ${port}으로 변경되었습니다.`);
117
+ console.log(`Port changed to ${port}.`);
118
118
  } else if (args[0] === 'password') {
119
119
  const rl = createInterface({ input: process.stdin, output: process.stdout });
120
120
  let password = '';
121
121
  while (!password) {
122
- password = await rl.question(' 비밀번호: ');
123
- if (!password) console.log('비밀번호는 필수입니다.');
122
+ password = await rl.question('New password: ');
123
+ if (!password) console.log('Password is required.');
124
124
  }
125
125
  rl.close();
126
126
  config.password = password;
127
127
  fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
128
- console.log(' 비밀번호가 변경되었습니다.');
128
+ console.log('Password changed.');
129
129
  } else if (args[0] === 'path') {
130
130
  console.log(CONFIG_DIR);
131
131
  } else if (args[0] === 'tunnel') {
132
132
  if (!args[1]) {
133
- console.log(`터널: ${config.tunnel ? '활성화' : '비활성화'}${config.tunnelName ? ` (이름: ${config.tunnelName})` : ''}`);
133
+ console.log(`Tunnel: ${config.tunnel ? 'enabled' : 'disabled'}${config.tunnelName ? ` (name: ${config.tunnelName})` : ''}`);
134
134
  return;
135
135
  }
136
136
  if (args[1] === 'on') {
137
137
  config.tunnel = true;
138
138
  if (args[2]) config.tunnelName = args[2];
139
139
  fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
140
- console.log(`✅ 터널이 활성화되었습니다.${config.tunnelName ? ` (이름: ${config.tunnelName})` : ''}`);
140
+ console.log(`Tunnel enabled.${config.tunnelName ? ` (name: ${config.tunnelName})` : ''}`);
141
141
  } else if (args[1] === 'off') {
142
142
  config.tunnel = false;
143
143
  delete config.tunnelName;
144
144
  fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
145
- console.log(' 터널이 비활성화되었습니다.');
145
+ console.log('Tunnel disabled.');
146
146
  } else {
147
- console.log('사용법: clitrigger config tunnel [on [이름] | off]');
147
+ console.log('Usage: clitrigger config tunnel [on [name] | off]');
148
148
  }
149
149
  } else {
150
- console.log(`현재 설정 (${CONFIG_FILE}):`);
151
- console.log(` 포트: ${config.port || 3000}`);
152
- console.log(` 비밀번호: ${config.password ? '설정됨' : '없음'}`);
153
- console.log(` 터널: ${config.tunnel ? '활성화' : '비활성화'}${config.tunnelName ? ` (이름: ${config.tunnelName})` : ''}`);
150
+ console.log(`Config (${CONFIG_FILE}):`);
151
+ console.log(` Port: ${config.port || 3000}`);
152
+ console.log(` Password: ${config.password ? 'set' : 'not set'}`);
153
+ console.log(` Tunnel: ${config.tunnel ? 'enabled' : 'disabled'}${config.tunnelName ? ` (name: ${config.tunnelName})` : ''}`);
154
154
  }
155
155
  }
156
156
 
@@ -204,9 +204,9 @@ async function checkAutoUpdate() {
204
204
 
205
205
  if (!isNewerVersion(latestVersion, currentVersion)) return false;
206
206
 
207
- console.log(`\n🔄 버전 발견: v${currentVersion} v${latestVersion}, 업데이트 중...`);
207
+ console.log(`\nUpdate available: v${currentVersion} -> v${latestVersion}, updating...`);
208
208
  execSync('npm i -g clitrigger@latest', { stdio: 'inherit' });
209
- console.log(`✅ v${latestVersion} 업데이트 완료! 재시작합니다...\n`);
209
+ console.log(`Updated to v${latestVersion}. Restarting...\n`);
210
210
 
211
211
  // 업데이트된 코드로 재시작
212
212
  const child = spawn(process.argv[0], process.argv.slice(1), {
@@ -226,15 +226,15 @@ function printHelp() {
226
226
  CLITrigger - AI-powered task execution tool
227
227
 
228
228
  Usage:
229
- clitrigger 서버 시작
230
- clitrigger config 현재 설정 보기
231
- clitrigger config port <n> 포트 변경
232
- clitrigger config password 비밀번호 변경
233
- clitrigger config tunnel on Cloudflare 터널 활성화
234
- clitrigger config tunnel on <name> Named 터널 활성화
235
- clitrigger config tunnel off 터널 비활성화
236
- clitrigger config path 설정 디렉토리 경로 출력
237
- clitrigger config clear 설정 데이터 완전 삭제
238
- clitrigger --help 도움말 표시
229
+ clitrigger Start the server
230
+ clitrigger config Show current config
231
+ clitrigger config port <n> Change port
232
+ clitrigger config password Change password
233
+ clitrigger config tunnel on Enable Cloudflare tunnel
234
+ clitrigger config tunnel on <name> Enable named tunnel
235
+ clitrigger config tunnel off Disable tunnel
236
+ clitrigger config path Print config directory path
237
+ clitrigger config clear Delete all config and data
238
+ clitrigger --help Show this help
239
239
  `.trim());
240
240
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAoCvB,QAAA,MAAM,GAAG,6CAAY,CAAC;AACtB,QAAA,MAAM,MAAM,oGAAoB,CAAC;AA6NjC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAoCvB,QAAA,MAAM,GAAG,6CAAY,CAAC;AACtB,QAAA,MAAM,MAAM,oGAAoB,CAAC;AAkOjC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC"}
@@ -120,8 +120,8 @@ for (const p of getAllProjects()) {
120
120
  }
121
121
  // Require AUTH_PASSWORD unless auth is explicitly disabled (plugin/headless mode)
122
122
  if (!process.env.AUTH_PASSWORD && process.env.DISABLE_AUTH !== 'true') {
123
- console.error('ERROR: AUTH_PASSWORD 환경변수가 설정되지 않았습니다.');
124
- console.error(' .env 파일에 AUTH_PASSWORD 설정하거나, npm 글로벌 설치 clitrigger 다시 실행하세요.');
123
+ console.error('ERROR: AUTH_PASSWORD is not set.');
124
+ console.error(' Set AUTH_PASSWORD in .env file, or run clitrigger again if installed globally.');
125
125
  process.exit(1);
126
126
  }
127
127
  // Auth middleware
@@ -161,7 +161,7 @@ if (process.env.TUNNEL_ENABLED === 'true') {
161
161
  console.error('Failed to start tunnel:', err.message);
162
162
  });
163
163
  tunnelManager.on('url', (url) => {
164
- console.log(`Cloudflare Tunnel URL: ${url}`);
164
+ console.log(` Remote: ${url}`);
165
165
  });
166
166
  tunnelManager.on('error', (err) => {
167
167
  console.error('Tunnel error:', err.message);
@@ -215,21 +215,26 @@ const MAX_PORT_RETRIES = 10;
215
215
  const requestedPort = Number(PORT);
216
216
  function tryListen(port, attempt) {
217
217
  server.listen(port, () => {
218
+ console.log('');
219
+ console.log(' CLITrigger is running!');
220
+ console.log('');
221
+ console.log(` Local: http://localhost:${port}`);
218
222
  if (port !== requestedPort) {
219
- console.log(`⚠️ 포트 ${requestedPort}이(가) 사용 중이어서 ${port}에서 시작합니다.`);
223
+ console.log(` (port ${requestedPort} was in use, using ${port} instead)`);
220
224
  }
221
- console.log(`CLITrigger server running on http://localhost:${port}`);
225
+ // Tunnel URL is printed by tunnelManager 'url' event as " Remote: ..."
226
+ console.log('');
222
227
  orchestrator.startStaleProcessChecker();
223
228
  });
224
229
  server.on('error', (err) => {
225
230
  if (err.code === 'EADDRINUSE' && attempt < MAX_PORT_RETRIES) {
226
231
  server.removeAllListeners('error');
227
232
  const nextPort = port + 1;
228
- console.log(`포트 ${port} 사용 중, ${nextPort} 시도...`);
233
+ console.log(` Port ${port} in use, trying ${nextPort}...`);
229
234
  tryListen(nextPort, attempt + 1);
230
235
  }
231
236
  else {
232
- console.error('서버 시작 실패:', err.message);
237
+ console.error('Failed to start server:', err.message);
233
238
  process.exit(1);
234
239
  }
235
240
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clitrigger",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "clitrigger": "bin/clitrigger.js"
@@ -8,7 +8,8 @@
8
8
  "files": [
9
9
  "dist/",
10
10
  "bin/",
11
- ".env.example"
11
+ ".env.example",
12
+ "README_EN.md"
12
13
  ],
13
14
  "engines": {
14
15
  "node": ">=20"