@buzzni/saycode-cli 0.1.0 → 0.1.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/README.md CHANGED
@@ -31,9 +31,10 @@ saycode # 터미널이면 탐색기, 파이프면 도움말
31
31
  | `r` | 새로고침 |
32
32
  | `q` / `Ctrl+C` | 종료 |
33
33
 
34
- 대화 목록 맨 위의 **`+ New conversation`**을 고르면 그 프로젝트에서 새 대화를 시작합니다 —
35
- 경로를 다시 입력할 필요가 없습니다. 기존 대화에 들어가면 직전 대화가 먼저 재생된 뒤
36
- 이어서 입력할 수 있습니다.
34
+ 프로젝트에 원격 작업 경로가 기록돼 있으면 대화 목록 맨 위의 **`+ New conversation`**으로 새 대화를
35
+ 시작할 수 있습니다 — 경로를 다시 입력할 필요가 없습니다. 경로가 없는 예전 프로젝트에서는 실패하는
36
+ 항목을 보여주지 않으며, 필요하면 `chat -m <machine> -d <path>`를 사용하세요. 기존 대화에 들어가면
37
+ 직전 대화가 먼저 재생된 뒤 이어서 입력할 수 있습니다.
37
38
 
38
39
  `saycode watch`에서도 `Enter`로 그 세션에 바로 들어갈 수 있습니다.
39
40
 
@@ -64,12 +65,25 @@ saycode login # email/password → ~/.saycode/credentials.v1.json (권한 60
64
65
  saycode logout
65
66
  ```
66
67
 
68
+ 비밀번호는 화면에 표시되지 않으며, 비밀번호 관리자에서 붙여넣은 뒤 Enter를 함께 입력해도 정상 처리됩니다.
69
+
67
70
  | 환경변수 | 용도 |
68
71
  |---|---|
69
72
  | `SAYCODE_HAPPY_HOME` | 특정 Happy 홈을 지정 — 저장된 로그인보다 **우선** |
70
73
  | `SAYCODE_SERVER_URL` | 다른 서버 지정 (기본 `https://saycode.ai`) |
71
74
  | `NO_COLOR` / `FORCE_COLOR` | 색 출력 강제 해제/설정 |
72
75
 
76
+ ## 실시간 연결 문제
77
+
78
+ 대화를 열 때 CLI는 `https://saycode.ai/v1/updates`의 WebSocket 연결을 사용합니다. 첫 handshake가
79
+ 멈추면 기존 15초 예산 안에서 최대 3회 새로 연결하며, 같은 워크스페이스의 탐색기에서는 성공한
80
+ 연결을 다음 대화에도 재사용합니다.
81
+
82
+ 최종 오류가 `Realtime WebSocket /v1/updates`를 가리키면 채팅 이력이나 프로젝트 목록이 아니라
83
+ 실시간 연결 단계가 실패한 것입니다. 한 번 다시 시도하고, 반복되면 VPN·프록시·회사 네트워크가
84
+ WebSocket을 막는지 확인하세요. CLI는 sticky session이 없는 서버에서 깨지는 Socket.IO polling으로
85
+ 강등하지 않습니다.
86
+
73
87
  ## 사용
74
88
 
75
89
  ```bash
@@ -89,15 +103,22 @@ saycode chat -s <session> # 기존 세션 이어서 대화 (직전 20개
89
103
 
90
104
  ## 대화에서 나가기
91
105
 
92
- 에이전트가 작업 중일 때 **`Ctrl+C`를 누르면 선택지가 뜹니다.**
106
+ 채팅 하단 상태가 현재 입력 가능 여부를 그대로 나타냅니다.
93
107
 
94
108
  ```
95
- ⏳ working — Ctrl+C for options
109
+ ● Ready — you can type
110
+ › 다음 작업을 진행해줘
111
+ ● Agent is responding — input locked · Ctrl+C for options
96
112
  ⏺ Bash(npm test)
97
113
  │ running tests...
98
114
  ^C [Enter] keep watching · [d] detach, agent keeps working · [s] stop the response
99
115
  ```
100
116
 
117
+ `Agent is responding` 동안 stdin은 raw/no-echo로 잠겨 일반 문자와 Enter가 화면에 나타나거나 다음
118
+ 프롬프트에 쌓이지 않습니다. 권한 요청 때만 `◆ Action required — permission response only`로 바뀌고
119
+ 해당 선택 입력을 받습니다. 에이전트 턴이 끝나 `Ready`가 표시된 뒤에만 일반 프롬프트가 열립니다.
120
+
121
+ 에이전트가 작업 중일 때 **`Ctrl+C`를 누르면 선택지가 뜹니다.**
101
122
  한 글자만 누르면 됩니다 (Enter 불필요). `Ctrl+C`를 한 번 더 누르면 `d`와 같습니다 —
102
123
  반복해서 누르는 건 "빨리 나가자"는 뜻이고, 나가는 건 되돌릴 수 있지만 작업을 죽이는 건
103
124
  되돌릴 수 없기 때문입니다.
@@ -114,9 +135,17 @@ saycode chat -s <session> # 기존 세션 이어서 대화 (직전 20개
114
135
  **어느 경우에도 원격 세션은 죽지 않습니다.** 데스크탑이나 다른 터미널에서 하던 작업을
115
136
  CLI를 닫았다는 이유로 파괴하지 않습니다.
116
137
 
117
- 응답이 오래 걸릴 때 `/detach`로 빠져나와 `saycode watch`로 진행만 지켜보다가,
138
+ 응답이 오래 걸릴 때 `Ctrl+C` → `d`로 빠져나와 `saycode watch`로 진행만 지켜보다가,
118
139
  끝나면 `saycode chat -s <id>`로 돌아오는 흐름을 의도했습니다.
119
140
 
141
+ ## 답변 표시
142
+
143
+ 에이전트 답변의 제목·목록·인용·굵게·기울임·취소선·인라인 코드·링크·fenced code block을
144
+ 터미널 표현으로 바꾸고, 현재 터미널 폭에서 좌우 여백을 뺀 최대 100열로 줄바꿈합니다. 한글과
145
+ emoji의 표시 폭도 반영합니다. 링크는 파이프 출력에서도 목적지를 잃지 않도록 URL을 함께 남깁니다.
146
+ 긴 도구 stdout은 첫 3줄까지만 표시하고 종료 시 생략한 줄 수와 마지막 줄을 요약하며, stderr는
147
+ 숨기지 않습니다. `NO_COLOR`이거나 파이프로 출력해도 `◆`, `•`, `│`, `┌─` 같은 구조 표시는 남습니다.
148
+
120
149
  ## 권한 승인
121
150
 
122
151
  에이전트가 권한을 요청하면 인라인으로 물어봅니다.
@@ -140,11 +169,11 @@ GitHub Actions 가 태그로 발행합니다 (`.github/workflows/publish-saycode
140
169
 
141
170
  ```bash
142
171
  # 1. 버전 올리기 — 데스크탑 앱 버전과 무관합니다
143
- vi cli/manifest.json # "version": "0.1.1"
172
+ vi cli/manifest.json # "version": "0.1.2"
144
173
 
145
174
  # 2. 커밋하고 태그를 밀면 끝
146
- git tag saycode-cli-v0.1.1
147
- git push origin saycode-cli-v0.1.1
175
+ git tag saycode-cli-v0.1.2
176
+ git push origin saycode-cli-v0.1.2
148
177
  ```
149
178
 
150
179
  워크플로는 발행 전에 이 순서로 막습니다:
@@ -3,7 +3,7 @@
3
3
  The `saycode` binary is distributed as a single bundled file. The packages
4
4
  below are compiled into it and remain under their own licenses.
5
5
 
6
- 13 package(s).
6
+ 12 package(s).
7
7
 
8
8
  ## @socket.io/component-emitter@3.1.2
9
9
 
@@ -164,34 +164,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
164
164
  SOFTWARE.
165
165
  ```
166
166
 
167
- ## react@19.2.7
168
-
169
- License: MIT
170
-
171
- ```
172
- MIT License
173
-
174
- Copyright (c) Meta Platforms, Inc. and affiliates.
175
-
176
- Permission is hereby granted, free of charge, to any person obtaining a copy
177
- of this software and associated documentation files (the "Software"), to deal
178
- in the Software without restriction, including without limitation the rights
179
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
180
- copies of the Software, and to permit persons to whom the Software is
181
- furnished to do so, subject to the following conditions:
182
-
183
- The above copyright notice and this permission notice shall be included in all
184
- copies or substantial portions of the Software.
185
-
186
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
187
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
188
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
189
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
190
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
191
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
192
- SOFTWARE.
193
- ```
194
-
195
167
  ## socket.io-client@4.8.3
196
168
 
197
169
  License: MIT