claude-code-hwp-mcp 0.2.1 → 0.3.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/README.md CHANGED
@@ -1,67 +1,84 @@
1
1
  # claude-code-hwp-mcp
2
2
 
3
- Claude Code / Claude Desktop에서 한글(HWP) 문서를 직접 제어하는 MCP 서버.
4
- pyhwpx COM API를 통해 문서 열기, 편집, 분석, 저장, 변환까지 **85개+ 도구**를 제공합니다.
3
+ Claude Code Claude Desktop에서 한글(HWP) 문서를 AI로 자동 편집하는 MCP 서버입니다.
5
4
 
6
- > **Windows 전용** | 한글 2014 이상 | Python 3.8+ | Claude Code & Claude Desktop 지원
5
+ 85개 이상의 도구로 문서 열기, 채우기, 텍스트 편집, 서식 설정, PDF 변환까지 모두 자동화할 있습니다.
7
6
 
8
- ## 빠른 시작
7
+ > Windows 전용 | 한글 2014 이상 | Python 3.8+ | Claude Code + Claude Desktop 지원
9
8
 
10
- ```bash
11
- # 1. Python 패키지 설치
12
- pip install pyhwpx pywin32
9
+ ---
13
10
 
14
- # 2. MCP 서버 설치
15
- npm install -g claude-code-hwp-mcp
11
+ ## 설치 가이드 (처음 설정하는 분)
16
12
 
17
- # 3. 한글(HWP) 프로그램을 실행하고 빈 문서를 열어둡니다
13
+ 아래 순서대로 따라하세요. 5분이면 완료됩니다.
18
14
 
19
- # 4. Claude Code 또는 Claude Desktop에서 사용
20
- ```
15
+ ### Step 1. Python 설치
16
+
17
+ **반드시 python.org 공식 버전을 설치하세요.**
18
+
19
+ 1. https://www.python.org/downloads/ 에 접속
20
+ 2. "Download Python 3.x.x" 버튼 클릭
21
+ 3. 설치 화면에서 **"Add Python to PATH" 체크박스를 반드시 체크**
22
+ 4. "Install Now" 클릭
21
23
 
22
- ## 사전 요구사항
24
+ > **Microsoft Store 버전 Python은 사용하지 마세요.** Store 버전은 패키지가 격리된 경로에 설치되어 pyhwpx를 인식하지 못합니다. 이미 Store 버전이 설치되어 있다면 [Microsoft Store Python 문제 해결](#microsoft-store-python-문제) 섹션을 참고하세요.
23
25
 
24
- | 요구사항 | 설치 방법 | 비고 |
25
- |----------|-----------|------|
26
- | Windows 10/11 | - | macOS/Linux 미지원 (COM API 기반) |
27
- | 한글(HWP) | 한컴오피스 설치 | 한글 2014, 2018, 2020, 2022, 2024 지원 |
28
- | Python 3.8+ | [python.org](https://www.python.org/downloads/) | **반드시 python.org에서 설치** |
29
- | Node.js 18+ | [nodejs.org](https://nodejs.org/) | LTS 버전 권장 |
26
+ 설치 확인 (명령 프롬프트에서):
30
27
 
31
- ### Python 설치 시 주의사항
28
+ ```bash
29
+ python --version
30
+ ```
32
31
 
33
- **python.org 공식 버전을 설치하세요.** Microsoft Store 버전(WindowsApps 경로)은 pyhwpx가 정상 동작하지 않을 수 있습니다.
32
+ `Python 3.x.x`가 출력되면 성공입니다.
34
33
 
35
- 설치 화면에서 **"Add Python to PATH"를 반드시 체크**하세요.
34
+ ### Step 2. Python 패키지 설치
35
+
36
+ 명령 프롬프트(cmd)를 열고 아래를 실행하세요:
37
+
38
+ ```bash
39
+ pip install pyhwpx pywin32
40
+ ```
36
41
 
37
42
  설치 확인:
43
+
38
44
  ```bash
39
- python --version
40
45
  pip show pyhwpx
41
46
  ```
42
47
 
43
- ## 설치
48
+ ### Step 3. Node.js 설치
49
+
50
+ 1. https://nodejs.org/ 에 접속
51
+ 2. LTS 버전 다운로드 후 설치
52
+
53
+ ### Step 4. MCP 서버 설치
44
54
 
45
- ### 방법 A: npm 글로벌 설치 (권장)
55
+ 명령 프롬프트에서:
46
56
 
47
57
  ```bash
48
58
  npm install -g claude-code-hwp-mcp
49
59
  ```
50
60
 
51
- 설치 pyhwpx가 없으면 자동으로 안내 메시지가 표시됩니다.
61
+ ### Step 5. Claude에 MCP 서버 연결
52
62
 
53
- ### 방법 B: GitHub 클론
63
+ 사용하는 Claude 앱에 따라 아래 설정을 진행하세요:
54
64
 
55
- ```bash
56
- git clone https://github.com/gmlcjf0326/claude-code-hwp-mcp.git
57
- cd claude-code-hwp-mcp
58
- npm install
59
- npm run build
60
- ```
65
+ - **Claude Code** 사용자 → [Claude Code 설정](#claude-code-설정) 섹션으로
66
+ - **Claude Desktop** 사용자 → [Claude Desktop 설정](#claude-desktop-설정) 섹션으로
67
+
68
+ ---
61
69
 
62
70
  ## Claude Code 설정
63
71
 
64
- `~/.claude/settings.json` 파일에 추가:
72
+ ### 설정 파일 열기
73
+
74
+ Claude Code 터미널에서 설정 파일을 엽니다. 파일 위치:
75
+
76
+ - Windows: `C:\Users\사용자이름\.claude\settings.json`
77
+ - 또는 `~/.claude/settings.json`
78
+
79
+ ### 설정 추가
80
+
81
+ `settings.json` 파일에 아래 내용을 추가하세요:
65
82
 
66
83
  ```json
67
84
  {
@@ -73,37 +90,63 @@ npm run build
73
90
  }
74
91
  ```
75
92
 
76
- GitHub 클론 방식:
93
+ 이미 다른 MCP 서버가 등록되어 있다면 `mcpServers` 안에 추가합니다:
77
94
 
78
95
  ```json
79
96
  {
80
97
  "mcpServers": {
98
+ "기존-서버": {
99
+ "command": "기존-명령"
100
+ },
81
101
  "claude-code-hwp-mcp": {
82
- "command": "node",
83
- "args": ["C:/claude-code-hwp-mcp/dist/index.js"]
102
+ "command": "hwp-mcp"
84
103
  }
85
104
  }
86
105
  }
87
106
  ```
88
107
 
89
- Python 경로를 직접 지정하려면:
108
+ ### GitHub 클론 방식으로 설치한 경우
109
+
110
+ npm 글로벌 설치 대신 GitHub에서 클론한 경우:
90
111
 
91
112
  ```json
92
113
  {
93
114
  "mcpServers": {
94
115
  "claude-code-hwp-mcp": {
95
- "command": "hwp-mcp",
96
- "env": {
97
- "PYTHON_PATH": "C:/Python313/python.exe"
98
- }
116
+ "command": "node",
117
+ "args": ["C:\\claude-code-hwp-mcp\\dist\\index.js"]
99
118
  }
100
119
  }
101
120
  }
102
121
  ```
103
122
 
123
+ `args`의 경로를 실제 클론한 위치로 변경하세요.
124
+
125
+ ---
126
+
104
127
  ## Claude Desktop 설정
105
128
 
106
- `%APPDATA%\Claude\claude_desktop_config.json` 파일에 추가:
129
+ ### Step 1. 설정 파일 찾기
130
+
131
+ Windows 탐색기에서 주소창에 아래를 입력하고 Enter:
132
+
133
+ ```
134
+ %APPDATA%\Claude
135
+ ```
136
+
137
+ `Claude` 폴더가 열립니다.
138
+
139
+ ### Step 2. 설정 파일 만들기 또는 열기
140
+
141
+ 해당 폴더에 `claude_desktop_config.json` 파일이 있으면 메모장으로 엽니다.
142
+
143
+ 파일이 없으면 새로 만드세요:
144
+ 1. 폴더에서 마우스 우클릭 > 새로 만들기 > 텍스트 문서
145
+ 2. 파일 이름을 `claude_desktop_config.json`으로 변경 (확장자 `.txt`가 아닌 `.json`)
146
+
147
+ ### Step 3. 설정 내용 입력
148
+
149
+ 파일에 아래 내용을 그대로 붙여넣으세요:
107
150
 
108
151
  ```json
109
152
  {
@@ -115,21 +158,64 @@ Python 경로를 직접 지정하려면:
115
158
  }
116
159
  ```
117
160
 
118
- ## 사용 반드시 확인
161
+ ### Step 4. (선택) Python 경로 직접 지정
162
+
163
+ Python이 여러 개 설치되어 있거나 Microsoft Store Python 문제가 있을 경우, Python 경로를 명시적으로 지정할 수 있습니다:
164
+
165
+ ```json
166
+ {
167
+ "mcpServers": {
168
+ "claude-code-hwp-mcp": {
169
+ "command": "hwp-mcp",
170
+ "env": {
171
+ "PYTHON_PATH": "C:\\Users\\사용자이름\\AppData\\Local\\Programs\\Python\\Python313\\python.exe"
172
+ }
173
+ }
174
+ }
175
+ }
176
+ ```
177
+
178
+ 본인의 Python 경로를 확인하려면 명령 프롬프트에서:
119
179
 
120
- **한글(HWP) 프로그램이 실행 중이어야 합니다.** MCP 서버는 한글 프로그램의 COM API를 통해 문서를 제어하므로, 한글이 열려 있지 않으면 도구가 동작하지 않습니다.
180
+ ```bash
181
+ python -c "import sys; print(sys.executable)"
182
+ ```
183
+
184
+ 출력된 경로를 `PYTHON_PATH` 값으로 사용하세요.
185
+
186
+ ### Step 5. Claude Desktop 재시작
187
+
188
+ 설정 파일을 저장한 후 **Claude Desktop을 완전히 종료했다가 다시 실행**하세요. (트레이에서도 완전 종료)
121
189
 
122
- 1. 한글(HWP) 프로그램 실행
123
- 2. 빈 문서 하나 열어두기
124
- 3. Claude에서 작업 시작
190
+ ### Step 6. 연결 확인
191
+
192
+ Claude Desktop에서 아래와 같이 입력하세요:
125
193
 
126
- 환경 진단이 필요하면:
127
194
  ```
128
- "hwp_check_setup 실행해줘"
195
+ hwp_check_setup 실행해줘
129
196
  ```
130
197
 
198
+ 모든 항목에 체크 표시가 나오면 성공입니다.
199
+
200
+ ---
201
+
202
+ ## 사용 전 반드시 확인
203
+
204
+ **한글(HWP) 프로그램이 실행 중이어야 합니다.**
205
+
206
+ MCP 서버는 한글 프로그램의 COM API를 통해 문서를 제어합니다. 한글이 열려 있지 않으면 문서 관련 도구가 동작하지 않습니다.
207
+
208
+ 사용 순서:
209
+ 1. 한글(HWP) 프로그램을 실행합니다
210
+ 2. 빈 문서가 열린 상태로 둡니다
211
+ 3. Claude Code 또는 Claude Desktop에서 작업을 시작합니다
212
+
213
+ ---
214
+
131
215
  ## 사용 예시
132
216
 
217
+ Claude에게 자연어로 요청하면 됩니다:
218
+
133
219
  ```
134
220
  "C:/문서/사업계획서.hwp 파일을 열어서 분석해줘"
135
221
  "표의 계약금액 칸에 50,000,000원을 채워줘"
@@ -139,13 +225,87 @@ Python 경로를 직접 지정하려면:
139
225
  "직원_명단.xlsx의 각 행으로 위촉장.hwp를 개별 생성해줘"
140
226
  ```
141
227
 
228
+ ---
229
+
230
+ ## 문제 해결
231
+
232
+ ### Microsoft Store Python 문제
233
+
234
+ **증상**: hwp_check_setup에서 "pyhwpx 미설치" 또는 "한글 미설치"로 표시되지만 실제로는 설치되어 있음
235
+
236
+ **진단**: 명령 프롬프트에서 아래를 실행하세요:
237
+
238
+ ```bash
239
+ python -c "import sys; print(sys.executable)"
240
+ ```
241
+
242
+ 출력 경로에 `WindowsApps`가 포함되어 있으면 Microsoft Store 버전입니다:
243
+
244
+ ```
245
+ C:\Users\사용자\AppData\Local\Microsoft\WindowsApps\python.exe (Store 버전)
246
+ ```
247
+
248
+ **해결 방법 A (권장): python.org 버전으로 재설치**
249
+
250
+ 1. Windows 설정 > 앱 > "Python"을 찾아서 제거
251
+ 2. https://www.python.org/downloads/ 에서 다시 설치
252
+ 3. 설치 시 "Add Python to PATH" 반드시 체크
253
+ 4. `pip install pyhwpx pywin32` 다시 실행
254
+
255
+ **해결 방법 B: Claude 설정에서 Python 경로 지정**
256
+
257
+ Store Python을 유지한 채, MCP 설정에서 직접 경로를 지정합니다:
258
+
259
+ ```json
260
+ {
261
+ "mcpServers": {
262
+ "claude-code-hwp-mcp": {
263
+ "command": "hwp-mcp",
264
+ "env": {
265
+ "PYTHON_PATH": "C:\\Users\\사용자\\AppData\\Local\\Programs\\Python\\Python313\\python.exe"
266
+ }
267
+ }
268
+ }
269
+ }
270
+ ```
271
+
272
+ ### Python을 찾을 수 없습니다
273
+
274
+ python.org에서 Python 3.8+을 설치하세요. 설치 시 "Add Python to PATH" 체크 필수입니다. 설치 후 명령 프롬프트를 새로 열어야 합니다.
275
+
276
+ ### pyhwpx 모듈을 찾을 수 없습니다
277
+
278
+ ```bash
279
+ pip install pyhwpx pywin32
280
+ ```
281
+
282
+ ### COM class not registered
283
+
284
+ 한컴오피스 한글을 설치하세요. 설치 후 한글을 한번 실행하여 초기 설정을 완료하세요.
285
+
286
+ ### RPC 서버를 사용할 수 없습니다
287
+
288
+ 한글 프로그램을 닫고 다시 시도하세요. 작업 관리자(Ctrl+Shift+Esc)에서 Hwp.exe 프로세스가 남아있으면 종료 후 재시도하세요.
289
+
290
+ ### 환경 자동 진단
291
+
292
+ Claude에게 요청하세요:
293
+
294
+ ```
295
+ "hwp_check_setup 실행해줘"
296
+ ```
297
+
298
+ Python 경로, pyhwpx 설치 여부, 한글 프로그램 설치 및 실행 상태를 자동으로 확인합니다.
299
+
300
+ ---
301
+
142
302
  ## 기능 목록 (85개+)
143
303
 
144
304
  ### 환경/문서 관리 (6개)
145
305
 
146
306
  | 도구 | 설명 |
147
307
  |------|------|
148
- | hwp_check_setup | Python/pyhwpx/한글 설치 상태 진단 |
308
+ | hwp_check_setup | Python/pyhwpx/한글 설치 상태 자동 진단 |
149
309
  | hwp_list_files | 디렉토리 내 HWP/HWPX 파일 목록 |
150
310
  | hwp_open_document | HWP 문서 열기 (자동 백업) |
151
311
  | hwp_close_document | 문서 닫기 |
@@ -266,17 +426,7 @@ Python 경로를 직접 지정하려면:
266
426
  | hwp_export_docx | DOCX(Word) 내보내기 |
267
427
  | hwp_export_html | HTML 내보내기 |
268
428
 
269
- ## 아키텍처
270
-
271
- ```
272
- Claude Code / Claude Desktop
273
- | MCP Protocol (stdio)
274
- MCP Server (Node.js/TypeScript)
275
- | child_process (JSON stdin/stdout)
276
- Python Bridge (hwp_service.py + pyhwpx)
277
- | COM API
278
- 한글(HWP) 프로그램
279
- ```
429
+ ---
280
430
 
281
431
  ## Toolset 모드
282
432
 
@@ -293,35 +443,123 @@ Python Bridge (hwp_service.py + pyhwpx)
293
443
  }
294
444
  ```
295
445
 
296
- ## 문제 해결
446
+ ---
297
447
 
298
- ### Python을 찾을 수 없습니다
448
+ ## 아키텍처
449
+
450
+ ```
451
+ Claude Code / Claude Desktop
452
+ | MCP Protocol (stdio)
453
+ MCP Server (Node.js/TypeScript)
454
+ | child_process (JSON stdin/stdout)
455
+ Python Bridge (hwp_service.py + pyhwpx)
456
+ | COM API
457
+ 한글(HWP) 프로그램
458
+ ```
299
459
 
300
- python.org에서 Python 3.8+을 설치하세요. 설치 시 "Add Python to PATH" 체크 필수.
301
- Microsoft Store 버전은 권장하지 않습니다.
460
+ ---
302
461
 
303
- ### pyhwpx 모듈을 찾을 없습니다
462
+ ## HWP vs HWPX 파일 형식 차이
304
463
 
305
- ```bash
306
- pip install pyhwpx pywin32
464
+ | 구분 | HWP (바이너리) | HWPX (XML 기반) |
465
+ |------|--------------|-----------------|
466
+ | 내부 구조 | OLE2 바이너리 | ZIP + XML |
467
+ | 텍스트 검색 | COM API (제한적) | XML 직접 검색 (안정적) |
468
+ | 찾기/바꾸기 | COM API (제한적) | XML 직접 치환 (안정적) |
469
+ | 표 생성/편집 | COM API | COM API |
470
+ | 문서 열기/저장 | COM API | COM API |
471
+
472
+ **HWPX 파일 사용을 권장합니다.** HWPX 파일의 텍스트 검색/치환은 XML을 직접 조작하므로 COM API보다 안정적입니다. 한글 프로그램에서 "다른 이름으로 저장" > "HWPX" 형식으로 변환할 수 있습니다.
473
+
474
+ ---
475
+
476
+ ## 알려진 제한사항
477
+
478
+ ### HWP 파일의 COM 텍스트 검색
479
+
480
+ HWP 바이너리 파일에서 `hwp_text_search`가 0건을 반환할 수 있습니다. 이는 한글 COM API(`HAction.Execute("FindReplace")`)의 반환값이 프로그래밍적으로 불안정한 설계 한계입니다.
481
+
482
+ 대안:
483
+ - `hwp_get_document_text`로 전체 텍스트를 가져와서 직접 검색
484
+ - 가능하면 HWPX 형식으로 변환하여 사용 (XML 검색은 안정적)
485
+
486
+ ### HWPX 파일 잠금
487
+
488
+ 한글에서 HWPX 파일을 열어둔 상태에서 XML 직접 편집을 시도하면 파일 잠금(EBUSY) 에러가 발생합니다. 이 경우 자동으로 COM 경로로 폴백합니다.
489
+
490
+ ---
491
+
492
+ ## 추천 워크플로우
493
+
494
+ ### 양식 채우기
495
+
496
+ ```
497
+ 1. hwp_open_document → 파일 열기
498
+ 2. hwp_smart_analyze → 문서 구조 파악
499
+ 3. hwp_smart_fill 또는 hwp_auto_fill_from_reference → 자동 채우기
500
+ 4. hwp_privacy_scan → 개인정보 확인
501
+ 5. hwp_save_document → 저장
307
502
  ```
308
503
 
309
- 여러 Python이 설치된 경우 경로를 확인하세요:
310
- ```bash
311
- python -c "import sys; print(sys.executable)"
504
+ ### 텍스트 치환
505
+
506
+ ```
507
+ 1. hwp_open_document → 파일 열기
508
+ 2. hwp_find_replace 또는 hwp_find_replace_multi → 치환
509
+ 3. hwp_save_document → 저장
312
510
  ```
313
511
 
314
- ### COM class not registered
512
+ ### 문서 분석
315
513
 
316
- 한컴오피스 한글을 설치하세요. 설치 후 한글을 한번 실행하여 초기 설정을 완료하세요.
514
+ ```
515
+ 1. hwp_open_document → 파일 열기
516
+ 2. hwp_analyze_document → 전체 구조 분석
517
+ 3. hwp_get_tables → 표 데이터 확인
518
+ 4. hwp_word_count → 글자수 통계
519
+ ```
317
520
 
318
- ### RPC 서버를 사용할 수 없습니다
521
+ ---
522
+
523
+ ## v0.3.0 변경사항
524
+
525
+ ### 버그 수정 (10건)
526
+
527
+ - SelectAll 문서 파괴 수정 (table_create_from_data, gantt_chart 등)
528
+ - find_replace 전후 텍스트 비교 검증으로 개선
529
+ - text_search 선택 영역 기반 판단으로 개선
530
+ - find_and_append 커서 유실 수정 (Cancel → MoveRight)
531
+ - 버퍼 오버플로우 시 개별 요청만 거부
532
+ - XHwpMessageBoxMode 복원 (close_document)
533
+ - insert_markdown 표 파싱 추가
534
+ - blank_template.hwpx 프로그래밍적 생성 (파일 의존성 제거)
535
+ - except pass → stderr 로깅 변환
536
+ - MAX_TABLES scanned_tables 필드 분리
537
+
538
+ ### HWPX XML 라우팅
539
+
540
+ HWPX 파일의 텍스트 검색/치환을 Node.js XML 엔진으로 직접 처리:
541
+ - hwp_find_replace → XML replaceTextInSection
542
+ - hwp_find_replace_multi → XML 루프 치환
543
+ - hwp_find_replace_nth → XML N번째 치환
544
+ - hwp_find_and_append → XML findAndAppend
545
+ - hwp_text_search → XML searchTextInSection
546
+
547
+ XML 실패 시(파일 잠금 등) COM 경로로 자동 폴백.
548
+
549
+ ### 환경 진단 개선
550
+
551
+ - Microsoft Store Python 자동 감지 + 경고
552
+ - 한글 프로세스 실행 여부 체크 (tasklist)
553
+ - Python 실행 경로 표시
554
+ - postinstall 스크립트 ESM 호환
555
+
556
+ ---
319
557
 
320
- 한글을 닫고 다시 시도하세요. 작업 관리자에서 Hwp.exe 프로세스가 남아있으면 종료하세요.
558
+ ## 지원 한글 버전
321
559
 
322
- ### 한글이 열려있는데도 됩니다
560
+ 한글 2014, 2018, 2020, 2022, 2024 모두 지원합니다.
323
561
 
324
- 한글 프로그램이 실행 중이어야 COM 연결이 됩니다. hwp_check_setup으로 진단하세요.
562
+ ---
325
563
 
326
564
  ## 라이선스
327
565
 
@@ -63,6 +63,7 @@ export declare class HwpBridge {
63
63
  getState(): BridgeState;
64
64
  setCurrentDocument(filePath: string | null): void;
65
65
  getCurrentDocument(): string | null;
66
+ getCurrentDocumentFormat(): string | null;
66
67
  getCachedAnalysis(): unknown | null;
67
68
  setCachedAnalysis(data: unknown): void;
68
69
  }
@@ -81,11 +81,22 @@ export class HwpBridge {
81
81
  });
82
82
  this.process.stdout?.on('data', (chunk) => {
83
83
  this.buffer += chunk.toString('utf-8');
84
- // Buffer 크기 제한 (10MB) 메모리 폭증 방지
84
+ // BUG-6 fix: 버퍼 초과 가장 오래된 대기 요청만 거부 (전체가 아닌 개별)
85
85
  if (this.buffer.length > this.MAX_BUFFER_SIZE) {
86
- console.error(`[HWP MCP Bridge] Buffer exceeded ${this.MAX_BUFFER_SIZE / 1024 / 1024}MB, clearing`);
87
- this.buffer = '';
88
- this.rejectAllPending(new Error('응답 크기가 너무 큽니다. 문서를 닫고 다시 열어주세요.'));
86
+ console.error(`[HWP MCP Bridge] Buffer exceeded ${this.MAX_BUFFER_SIZE / 1024 / 1024}MB — truncating oldest pending`);
87
+ // 버퍼를 비우되, 마지막 줄바꿈 이후 부분은 보존 (진행 중인 응답)
88
+ const lastNewline = this.buffer.lastIndexOf('\n');
89
+ this.buffer = lastNewline >= 0 ? this.buffer.slice(lastNewline + 1) : '';
90
+ // 가장 오래된 요청 하나만 거부
91
+ const oldestId = this.pending.keys().next().value;
92
+ if (oldestId) {
93
+ const oldest = this.pending.get(oldestId);
94
+ if (oldest) {
95
+ clearTimeout(oldest.timer);
96
+ oldest.reject(new Error('응답 크기가 너무 큽니다.'));
97
+ this.pending.delete(oldestId);
98
+ }
99
+ }
89
100
  return;
90
101
  }
91
102
  this.processBuffer();
@@ -329,6 +340,9 @@ export class HwpBridge {
329
340
  getCurrentDocument() {
330
341
  return this.currentDocumentPath;
331
342
  }
343
+ getCurrentDocumentFormat() {
344
+ return this.currentDocumentFormat;
345
+ }
332
346
  getCachedAnalysis() {
333
347
  return this.lastAnalysis;
334
348
  }
@@ -24,9 +24,28 @@ export declare function extractTextFromSection(doc: Document): string[];
24
24
  * CLAUDE.md 규칙: 수정 후 linesegarray 삭제 필수.
25
25
  */
26
26
  export declare function replaceTextInSection(doc: Document, find: string, replace: string): number;
27
+ /**
28
+ * HWPX section XML에서 텍스트 검색. COM FindReplace 우회용.
29
+ */
30
+ export declare function searchTextInSection(doc: Document, searchText: string): {
31
+ total: number;
32
+ results: Array<{
33
+ index: number;
34
+ paragraph: number;
35
+ context: string;
36
+ }>;
37
+ };
38
+ /**
39
+ * HWPX section XML에서 N번째 텍스트만 치환.
40
+ */
41
+ export declare function replaceTextNthInSection(doc: Document, find: string, replace: string, nth: number): boolean;
42
+ /**
43
+ * HWPX section XML에서 텍스트를 찾아 그 뒤에 추가.
44
+ */
45
+ export declare function findAndAppendInSection(doc: Document, find: string, appendText: string): boolean;
27
46
  /**
28
47
  * 빈 HWPX 파일 생성.
29
- * blank_template.hwpx 복사하고, 필요시 제목 삽입.
48
+ * BUG-9 fix: blank_template.hwpx 없으면 프로그래밍적으로 생성.
30
49
  */
31
50
  export declare function createBlankHwpx(outputPath: string, title?: string): Promise<void>;
32
51
  /**