kordoc 4.16.0 → 4.16.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 +344 -1135
- package/dist/{-VQNLLLPE.js → -4G6MA4X6.js} +11 -11
- package/dist/chunk-3IB7LBHC.js +57 -0
- package/dist/chunk-3IB7LBHC.js.map +1 -0
- package/dist/{chunk-6LMKQM7I.js → chunk-4VODJKFL.js} +3 -3
- package/dist/{chunk-UDX7TSOC.js → chunk-5KS5PWJR.js} +2 -2
- package/dist/chunk-62W7QCEX.cjs +57 -0
- package/dist/chunk-62W7QCEX.cjs.map +1 -0
- package/dist/{chunk-NNYF2AGC.js → chunk-7KNGSQU7.js} +4 -4
- package/dist/chunk-7KNGSQU7.js.map +1 -0
- package/dist/{chunk-DYENR3PX.js → chunk-AUWGDP4G.js} +2 -2
- package/dist/{chunk-H6KMTYYZ.cjs → chunk-CEIATRDW.cjs} +3 -3
- package/dist/{chunk-H6KMTYYZ.cjs.map → chunk-CEIATRDW.cjs.map} +1 -1
- package/dist/{chunk-N6TPODYL.js → chunk-DES2LGFZ.js} +2 -2
- package/dist/{chunk-PQRP4NSF.js → chunk-F4NRLLY4.js} +2 -2
- package/dist/{chunk-B5NEGP65.cjs → chunk-FKUDAIJI.cjs} +692 -33
- package/dist/chunk-FKUDAIJI.cjs.map +1 -0
- package/dist/{chunk-XWA625AN.js → chunk-FSDJLAOW.js} +3 -1
- package/dist/chunk-FSDJLAOW.js.map +1 -0
- package/dist/{chunk-PIMB2YNO.js → chunk-GO5IFOUF.js} +2 -2
- package/dist/{chunk-476OYHGZ.js → chunk-IQGIT2VX.js} +37 -7
- package/dist/chunk-IQGIT2VX.js.map +1 -0
- package/dist/chunk-J3IF6KGW.js +59 -0
- package/dist/chunk-J3IF6KGW.js.map +1 -0
- package/dist/{chunk-C75WE52C.js → chunk-JELRWAZC.js} +2 -2
- package/dist/{chunk-46DZF3RK.js → chunk-JFLAM3MM.js} +2 -2
- package/dist/{chunk-A3QDRMVD.js → chunk-KIOQ4N37.js} +2 -2
- package/dist/{chunk-TGD7UFHD.js → chunk-LEIAEWZ7.js} +4 -4
- package/dist/chunk-LEIAEWZ7.js.map +1 -0
- package/dist/{chunk-GOQBON77.js → chunk-MLIS253L.js} +2 -2
- package/dist/{chunk-JB5X5NNL.js → chunk-OXLPVQYK.js} +680 -21
- package/dist/chunk-OXLPVQYK.js.map +1 -0
- package/dist/{chunk-RC4C7Q33.js → chunk-P6ZDXTV6.js} +2 -2
- package/dist/{chunk-CB5XDCSL.js → chunk-QOCS7W7R.js} +5034 -4569
- package/dist/chunk-QOCS7W7R.js.map +1 -0
- package/dist/{chunk-3JWMDL3S.js → chunk-S2PL227Q.js} +2 -2
- package/dist/{chunk-HIVK5V27.js → chunk-SFEQYKYJ.js} +133 -110
- package/dist/chunk-SFEQYKYJ.js.map +1 -0
- package/dist/{chunk-NWODPYBD.cjs → chunk-STM3ORY7.cjs} +2 -2
- package/dist/{chunk-NWODPYBD.cjs.map → chunk-STM3ORY7.cjs.map} +1 -1
- package/dist/{chunk-43FKGDDO.js → chunk-TXUKTOG2.js} +213 -30
- package/dist/chunk-TXUKTOG2.js.map +1 -0
- package/dist/{chunk-XHOZB2WP.js → chunk-UTP2WCHS.js} +681 -22
- package/dist/chunk-UTP2WCHS.js.map +1 -0
- package/dist/{chunk-MH6MAL64.cjs → chunk-WDQTFAXY.cjs} +217 -114
- package/dist/chunk-WDQTFAXY.cjs.map +1 -0
- package/dist/{chunk-DRY3L5KQ.cjs → chunk-XTFN5WKS.cjs} +7 -7
- package/dist/chunk-XTFN5WKS.cjs.map +1 -0
- package/dist/chunks-NUNIKS2J.js +10 -0
- package/dist/cli.js +33 -30
- package/dist/cli.js.map +1 -1
- package/dist/{formula-FNQYHMIY.js → formula-EPKLPDU7.js} +3 -3
- package/dist/{formula-5775PTP2.js → formula-NARUOXRX.js} +4 -4
- package/dist/{formula-VEFKYXPB.cjs → formula-WIMV5TUX.cjs} +9 -9
- package/dist/{formula-VEFKYXPB.cjs.map → formula-WIMV5TUX.cjs.map} +1 -1
- package/dist/{image-ocr-PYZU4TO7.js → image-ocr-3WJ4QH3T.js} +8 -8
- package/dist/{image-ocr-YA2MQBRP.js → image-ocr-5BUJQ4TK.js} +6 -6
- package/dist/{image-ocr-6JZR734G.cjs → image-ocr-AXWXR6JV.cjs} +15 -15
- package/dist/{image-ocr-6JZR734G.cjs.map → image-ocr-AXWXR6JV.cjs.map} +1 -1
- package/dist/index.cjs +1900 -1406
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +24 -6
- package/dist/index.d.ts +24 -6
- package/dist/index.js +1282 -788
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +34 -28
- package/dist/mcp.js.map +1 -1
- package/dist/{model-bundle-O6J7ORVC.js → model-bundle-IMBW7D2Z.js} +5 -5
- package/dist/{models-YMOKZGCI.js → models-SY75IBOE.js} +5 -5
- package/dist/{parser-YAQV7FBO.cjs → parser-2LU4EVU3.cjs} +360 -219
- package/dist/parser-2LU4EVU3.cjs.map +1 -0
- package/dist/{parser-3B6I2XL7.js → parser-N6476XAC.js} +225 -84
- package/dist/parser-N6476XAC.js.map +1 -0
- package/dist/{parser-PXATL5DM.js → parser-ZQM3664Z.js} +222 -81
- package/dist/parser-ZQM3664Z.js.map +1 -0
- package/dist/pdf-ocr-6DEE23IP.js +15 -0
- package/dist/pdf-ocr-GHEJVPX2.cjs +16 -0
- package/dist/{pdf-ocr-T2JXQATA.cjs.map → pdf-ocr-GHEJVPX2.cjs.map} +1 -1
- package/dist/pdf-ocr-MQTWODVU.js +18 -0
- package/dist/{profile-io-ZTV2MKRT.js → profile-io-GJPKCYPT.js} +3 -3
- package/dist/{rasterize-MMUZ537K.js → rasterize-UOALJQDS.js} +3 -3
- package/dist/{redact-doc-S42XGV5D.js → redact-doc-22SYW3KH.js} +11 -11
- package/dist/{render-WCWPZKJ7.js → render-MJ4H3R23.js} +7 -7
- package/dist/seal-XWMRUTI4.js +10 -0
- package/dist/{setup-D35LKZCH.js → setup-2URYVUEO.js} +3 -3
- package/dist/visual-USPS4QRC.js +20 -0
- package/dist/{watch-AX64CIMN.js → watch-ALXZGTOB.js} +12 -12
- package/package.json +1 -1
- package/dist/chunk-43FKGDDO.js.map +0 -1
- package/dist/chunk-476OYHGZ.js.map +0 -1
- package/dist/chunk-B5NEGP65.cjs.map +0 -1
- package/dist/chunk-CB5XDCSL.js.map +0 -1
- package/dist/chunk-DRY3L5KQ.cjs.map +0 -1
- package/dist/chunk-HIVK5V27.js.map +0 -1
- package/dist/chunk-JB5X5NNL.js.map +0 -1
- package/dist/chunk-MH6MAL64.cjs.map +0 -1
- package/dist/chunk-NNYF2AGC.js.map +0 -1
- package/dist/chunk-QJERJZJ6.js +0 -11
- package/dist/chunk-QJERJZJ6.js.map +0 -1
- package/dist/chunk-TGD7UFHD.js.map +0 -1
- package/dist/chunk-UQ6TZDW6.js +0 -13
- package/dist/chunk-UQ6TZDW6.js.map +0 -1
- package/dist/chunk-XHOZB2WP.js.map +0 -1
- package/dist/chunk-XWA625AN.js.map +0 -1
- package/dist/chunk-ZY5K3LPM.cjs +0 -11
- package/dist/chunk-ZY5K3LPM.cjs.map +0 -1
- package/dist/chunks-JD25E5PM.js +0 -10
- package/dist/parser-3B6I2XL7.js.map +0 -1
- package/dist/parser-PXATL5DM.js.map +0 -1
- package/dist/parser-YAQV7FBO.cjs.map +0 -1
- package/dist/pdf-ocr-2TTO5PX2.js +0 -15
- package/dist/pdf-ocr-T2JXQATA.cjs +0 -16
- package/dist/pdf-ocr-WF2NQA6X.js +0 -18
- package/dist/seal-WHK4GOHR.js +0 -10
- package/dist/visual-WL4TDE5B.js +0 -20
- /package/dist/{-VQNLLLPE.js.map → -4G6MA4X6.js.map} +0 -0
- /package/dist/{chunk-6LMKQM7I.js.map → chunk-4VODJKFL.js.map} +0 -0
- /package/dist/{chunk-UDX7TSOC.js.map → chunk-5KS5PWJR.js.map} +0 -0
- /package/dist/{chunk-DYENR3PX.js.map → chunk-AUWGDP4G.js.map} +0 -0
- /package/dist/{chunk-N6TPODYL.js.map → chunk-DES2LGFZ.js.map} +0 -0
- /package/dist/{chunk-PQRP4NSF.js.map → chunk-F4NRLLY4.js.map} +0 -0
- /package/dist/{chunk-PIMB2YNO.js.map → chunk-GO5IFOUF.js.map} +0 -0
- /package/dist/{chunk-C75WE52C.js.map → chunk-JELRWAZC.js.map} +0 -0
- /package/dist/{chunk-46DZF3RK.js.map → chunk-JFLAM3MM.js.map} +0 -0
- /package/dist/{chunk-A3QDRMVD.js.map → chunk-KIOQ4N37.js.map} +0 -0
- /package/dist/{chunk-GOQBON77.js.map → chunk-MLIS253L.js.map} +0 -0
- /package/dist/{chunk-RC4C7Q33.js.map → chunk-P6ZDXTV6.js.map} +0 -0
- /package/dist/{chunk-3JWMDL3S.js.map → chunk-S2PL227Q.js.map} +0 -0
- /package/dist/{chunks-JD25E5PM.js.map → chunks-NUNIKS2J.js.map} +0 -0
- /package/dist/{formula-FNQYHMIY.js.map → formula-EPKLPDU7.js.map} +0 -0
- /package/dist/{formula-5775PTP2.js.map → formula-NARUOXRX.js.map} +0 -0
- /package/dist/{image-ocr-PYZU4TO7.js.map → image-ocr-3WJ4QH3T.js.map} +0 -0
- /package/dist/{image-ocr-YA2MQBRP.js.map → image-ocr-5BUJQ4TK.js.map} +0 -0
- /package/dist/{model-bundle-O6J7ORVC.js.map → model-bundle-IMBW7D2Z.js.map} +0 -0
- /package/dist/{models-YMOKZGCI.js.map → models-SY75IBOE.js.map} +0 -0
- /package/dist/{pdf-ocr-2TTO5PX2.js.map → pdf-ocr-6DEE23IP.js.map} +0 -0
- /package/dist/{pdf-ocr-WF2NQA6X.js.map → pdf-ocr-MQTWODVU.js.map} +0 -0
- /package/dist/{profile-io-ZTV2MKRT.js.map → profile-io-GJPKCYPT.js.map} +0 -0
- /package/dist/{rasterize-MMUZ537K.js.map → rasterize-UOALJQDS.js.map} +0 -0
- /package/dist/{redact-doc-S42XGV5D.js.map → redact-doc-22SYW3KH.js.map} +0 -0
- /package/dist/{render-WCWPZKJ7.js.map → render-MJ4H3R23.js.map} +0 -0
- /package/dist/{seal-WHK4GOHR.js.map → seal-XWMRUTI4.js.map} +0 -0
- /package/dist/{setup-D35LKZCH.js.map → setup-2URYVUEO.js.map} +0 -0
- /package/dist/{visual-WL4TDE5B.js.map → visual-USPS4QRC.js.map} +0 -0
- /package/dist/{watch-AX64CIMN.js.map → watch-ALXZGTOB.js.map} +0 -0
package/dist/mcp.js
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
assertWithinRoot,
|
|
4
4
|
getAccessRoot,
|
|
5
5
|
isOfflineMode
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-JELRWAZC.js";
|
|
7
7
|
import {
|
|
8
8
|
APPROVAL_MAX,
|
|
9
9
|
BODY_FONTS,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
SIZE_KEYS,
|
|
22
22
|
SIZE_PT_RANGE,
|
|
23
23
|
buildGongmunOptions
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-FSDJLAOW.js";
|
|
25
25
|
import {
|
|
26
26
|
BUILTIN_TEMPLATES,
|
|
27
27
|
PRESET_ALIAS,
|
|
@@ -42,25 +42,25 @@ import {
|
|
|
42
42
|
resolveBuiltinTemplate,
|
|
43
43
|
unknownFontWarnings,
|
|
44
44
|
usesGaejosikMunche
|
|
45
|
-
} from "./chunk-
|
|
46
|
-
import "./chunk-
|
|
47
|
-
import "./chunk-
|
|
45
|
+
} from "./chunk-QOCS7W7R.js";
|
|
46
|
+
import "./chunk-AUWGDP4G.js";
|
|
47
|
+
import "./chunk-4VODJKFL.js";
|
|
48
48
|
import "./chunk-3WSNLH4B.js";
|
|
49
|
-
import "./chunk-
|
|
49
|
+
import "./chunk-GO5IFOUF.js";
|
|
50
50
|
import {
|
|
51
51
|
detectFormat,
|
|
52
52
|
detectOle2Format,
|
|
53
53
|
detectZipFormat,
|
|
54
54
|
extractHwp5MetadataOnly
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-IQGIT2VX.js";
|
|
56
56
|
import "./chunk-7FCNOKOR.js";
|
|
57
|
-
import "./chunk-
|
|
57
|
+
import "./chunk-J3IF6KGW.js";
|
|
58
58
|
import "./chunk-VQFA55IC.js";
|
|
59
|
-
import "./chunk-
|
|
59
|
+
import "./chunk-JFLAM3MM.js";
|
|
60
60
|
import {
|
|
61
61
|
blocksToMarkdown
|
|
62
|
-
} from "./chunk-
|
|
63
|
-
import "./chunk-
|
|
62
|
+
} from "./chunk-LEIAEWZ7.js";
|
|
63
|
+
import "./chunk-S2PL227Q.js";
|
|
64
64
|
import {
|
|
65
65
|
KordocError,
|
|
66
66
|
VERSION,
|
|
@@ -68,7 +68,7 @@ import {
|
|
|
68
68
|
routeConsoleToStderr,
|
|
69
69
|
sanitizeError,
|
|
70
70
|
toArrayBuffer
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-P6ZDXTV6.js";
|
|
72
72
|
|
|
73
73
|
// src/mcp.ts
|
|
74
74
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
@@ -216,11 +216,12 @@ function registerParseTools(server2) {
|
|
|
216
216
|
keep_empty_paragraphs: z.boolean().optional().describe("\uBE48 \uBB38\uB2E8 \uBCF4\uC874 \u2014 \uBCF8\uBB38\uC740 \uBE48 paragraph \uBE14\uB85D, \uD45C \uC140\uC740 \uBE48 \uC904 (#57, \uAE30\uBCF8 off, CLI --keep-empty-paragraphs \uB300\uC751)"),
|
|
217
217
|
include_field_placeholders: z.boolean().optional().describe("\uBBF8\uAE30\uC785 \uB204\uB984\uD2C0 \uC548\uB0B4\uBB38\uB3C4 \uCD9C\uB825 \u2014 \uBE48 \uC11C\uC2DD \uBB38\uC11C\uC758 \uCE78 \uC6A9\uB3C4 \uBCF4\uC874 (#92, \uAE30\uBCF8 off, CLI --include-field-placeholders \uB300\uC751)"),
|
|
218
218
|
html_tables: z.boolean().optional().describe("\uBAA8\uB4E0 \uD45C\uB97C HTML \uB85C \u2014 \uD30C\uC774\uD504 \uD45C\uB3C4 HTML \uD45C\uB85C, \uD0DC\uADF8\uB9C8\uB2E4 \uD55C \uC904\uC529 \uB4E4\uC5EC\uC368 \uB0C4 (\uAE30\uBCF8 off, CLI --html-tables \uB300\uC751)"),
|
|
219
|
+
script_tags: z.boolean().optional().describe('\uC704\xB7\uC544\uB798\uCCA8\uC790\uB97C <sup>\xB7<sub> \uB85C \uD45C\uAE30("10\u2074 m\xB2" \uAC00 "104 m2" \uB85C \uD3B4\uC9C0\uC9C0 \uC54A\uAC8C) \u2014 \uAE30\uBCF8: HWPX\xB7HWP\xB7DOCX \uCF2C, PDF \uB054(\uB17C\uBB38\xB7\uC218\uC2DD PDF \uB294 true \uAD8C\uC7A5), false \uBA74 \uBAA8\uB450 \uD3C9\uBB38. CLI --script-tags / --no-script-tags \uB300\uC751'),
|
|
219
220
|
plain: z.boolean().optional().describe("\uD3C9\uBB38 Markdown \u2014 \uADF8\uB9BC \uC790\uB9AC \uD45C\uC2DC\xB7\uB9C1\uD06C URL\xB7\uBC11\uC904/\uAD75\uAC8C \uD45C\uAE30\uB97C \uBE7C\uACE0 \uAE00\uB9CC (\uC81C\uBAA9\xB7\uBAA9\uB85D\xB7\uD45C \uAD6C\uC870\uB294 \uC720\uC9C0, \uAE30\uBCF8 off, CLI --plain \uB300\uC751)"),
|
|
220
221
|
password: z.string().optional().describe("\uC554\uD638\uB85C \uBCF4\uD638\uB41C \uBB38\uC11C\uC758 \uC5F4\uAE30 \uC554\uD638 (#59, HWPX\xB7HWP3\xB7HWP5 \uC9C0\uC6D0. \uD30C\uC2F1\uC774 ENCRYPTED\uB85C \uC2E4\uD328\uD558\uBA74 \uC774 \uC635\uC158\uC73C\uB85C \uC7AC\uC2DC\uB3C4\uD558\uC138\uC694. \uD55C\uCEF4 DRM \uBCF4\uD638 \uBB38\uC11C\uB294 \uD574\uB2F9 \uC5C6\uC74C)"),
|
|
221
222
|
tables: z.boolean().optional().describe("PDF \uD45C \uAC10\uC9C0 (\uAE30\uBCF8 true \u2014 false\uB85C \uB044\uAE30, CLI --no-tables \uB300\uC751). \uD14C\uB450\uB9AC \uBC15\uC2A4\uB97C \uD45C\uB85C \uC624\uC778\uD574 \uC77D\uAE30 \uC21C\uC11C\uAC00 \uB4A4\uC9D1\uD788\uB294 \uBB38\uC11C(2\uB2E8 \uC2DC\uD5D8\uC9C0 \uB4F1)\uC5D0\uC11C \uC790\uC5F0 \uC77D\uAE30\uC21C \uD14D\uC2A4\uD2B8\uB9CC \uBF51\uC2B5\uB2C8\uB2E4 (#64)")
|
|
222
223
|
},
|
|
223
|
-
async ({ file_path, ocr, remove_header_footer, formula_ocr, dedupe_running_headers, keep_trailing_empty_cols, keep_empty_paragraphs, include_field_placeholders, html_tables, plain, password, tables }) => {
|
|
224
|
+
async ({ file_path, ocr, remove_header_footer, formula_ocr, dedupe_running_headers, keep_trailing_empty_cols, keep_empty_paragraphs, include_field_placeholders, html_tables, script_tags, plain, password, tables }) => {
|
|
224
225
|
try {
|
|
225
226
|
const { buffer, resolved } = await readValidatedFile(file_path, MAX_FILE_SIZE, PARSE_EXTENSIONS);
|
|
226
227
|
const format = detectFormat(buffer);
|
|
@@ -240,6 +241,7 @@ function registerParseTools(server2) {
|
|
|
240
241
|
...keep_empty_paragraphs ? { keepEmptyParagraphs: true } : {},
|
|
241
242
|
...include_field_placeholders ? { includeFieldPlaceholders: true } : {},
|
|
242
243
|
...plain ? { plain: true } : {},
|
|
244
|
+
...script_tags !== void 0 ? { scriptTags: script_tags } : {},
|
|
243
245
|
...html_tables ? { htmlTables: true } : {},
|
|
244
246
|
...password ? { password } : {},
|
|
245
247
|
...tables === false ? { tables: false } : {}
|
|
@@ -350,7 +352,7 @@ ${markdown}`);
|
|
|
350
352
|
break;
|
|
351
353
|
case "pdf":
|
|
352
354
|
try {
|
|
353
|
-
const { extractPdfMetadataOnly } = await import("./parser-
|
|
355
|
+
const { extractPdfMetadataOnly } = await import("./parser-N6476XAC.js");
|
|
354
356
|
metadata = await extractPdfMetadataOnly(buffer);
|
|
355
357
|
} catch {
|
|
356
358
|
metadata = void 0;
|
|
@@ -526,7 +528,7 @@ ${tableMarkdown}` }]
|
|
|
526
528
|
if (!parsed.success) {
|
|
527
529
|
return { content: [{ type: "text", text: `\uD30C\uC2F1 \uC2E4\uD328: ${parsed.error}` }], isError: true };
|
|
528
530
|
}
|
|
529
|
-
const { blocksToChunks } = await import("./chunks-
|
|
531
|
+
const { blocksToChunks } = await import("./chunks-NUNIKS2J.js");
|
|
530
532
|
const chunks = blocksToChunks(parsed.blocks, { granularity, includeTableCells: include_table_cells });
|
|
531
533
|
return { content: [{ type: "text", text: capResponseText(JSON.stringify(chunks, null, 2)) }] };
|
|
532
534
|
} catch (err) {
|
|
@@ -771,7 +773,7 @@ ${previewMd}` }]
|
|
|
771
773
|
}
|
|
772
774
|
const image = new Uint8Array(await readFile2(imgResolved));
|
|
773
775
|
const ext = extname2(imgResolved).slice(1).toLowerCase();
|
|
774
|
-
const { placeSealHwpx } = await import("./seal-
|
|
776
|
+
const { placeSealHwpx } = await import("./seal-XWMRUTI4.js");
|
|
775
777
|
const result = await placeSealHwpx(buffer, [{
|
|
776
778
|
anchor,
|
|
777
779
|
occurrence,
|
|
@@ -888,7 +890,7 @@ ${previewMd}` }]
|
|
|
888
890
|
if (outPath && await isSameFile(outPath, resolved)) {
|
|
889
891
|
return { content: [{ type: "text", text: "output_path\uAC00 \uC785\uB825 \uD30C\uC77C\uACFC \uAC19\uC2B5\uB2C8\uB2E4 \u2014 \uC6D0\uBCF8\uC744 \uB36E\uC5B4\uC4F0\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB2E4\uB978 \uACBD\uB85C\uB97C \uC9C0\uC815\uD558\uC138\uC694." }], isError: true };
|
|
890
892
|
}
|
|
891
|
-
const { redactDocument } = await import("./redact-doc-
|
|
893
|
+
const { redactDocument } = await import("./redact-doc-22SYW3KH.js");
|
|
892
894
|
const r = await redactDocument(buffer, { rules, maskChar: mask_char, filePath: file_path, dryRun: dry_run });
|
|
893
895
|
const MAX_LINES = 50;
|
|
894
896
|
const listed = r.fileHits.length > 0 ? r.fileHits.map((h) => ` - [${h.rule}] ${h.masked} (${h.where} @ ${h.part})`) : r.markdownHits.map((h) => ` - [${h.rule}] ${h.masked}`);
|
|
@@ -962,7 +964,7 @@ function registerRenderTools(server2) {
|
|
|
962
964
|
const { buffer, resolved } = await readValidatedFile(file_path, MAX_FILE_SIZE, /* @__PURE__ */ new Set([".hwpx", ".hwp"]));
|
|
963
965
|
const isHwp5 = resolved.toLowerCase().endsWith(".hwp");
|
|
964
966
|
if (!isHwp5 && !pages && (format === "png" || format === "svg")) {
|
|
965
|
-
const { renderHwpxToSvg } = await import("./render-
|
|
967
|
+
const { renderHwpxToSvg } = await import("./render-MJ4H3R23.js");
|
|
966
968
|
const result = await renderHwpxToSvg(buffer, { highlights, reflow: true, reflowMode: reflow_mode });
|
|
967
969
|
const summary2 = [
|
|
968
970
|
`\uB80C\uB354 \uC644\uB8CC: ${result.pageCount}\uD398\uC774\uC9C0, ${Math.round(result.width)}x${Math.round(result.height)}pt (\uD14D\uC2A4\uD2B8 ${result.stats.texts}\xB7\uC774\uBBF8\uC9C0 ${result.stats.images}\xB7\uD45C ${result.stats.tables})`,
|
|
@@ -974,7 +976,7 @@ function registerRenderTools(server2) {
|
|
|
974
976
|
summary2.push(`\uC800\uC7A5: ${outPath}`);
|
|
975
977
|
return { content: [{ type: "text", text: summary2.join("\n") }] };
|
|
976
978
|
}
|
|
977
|
-
const { rasterizeSvg } = await import("./rasterize-
|
|
979
|
+
const { rasterizeSvg } = await import("./rasterize-UOALJQDS.js");
|
|
978
980
|
const raster = await rasterizeSvg(result.svg, result.width, result.height, max_width_px ? { maxWidthPx: max_width_px } : void 0);
|
|
979
981
|
if (outPath) {
|
|
980
982
|
await mkdir2(dirname3(outPath), { recursive: true });
|
|
@@ -989,7 +991,7 @@ function registerRenderTools(server2) {
|
|
|
989
991
|
]
|
|
990
992
|
};
|
|
991
993
|
}
|
|
992
|
-
const { renderDocument } = await import("./render-
|
|
994
|
+
const { renderDocument } = await import("./render-MJ4H3R23.js");
|
|
993
995
|
const { scene, assets } = await renderDocument(buffer, { format, pages, highlights, reflow: true, reflowMode: reflow_mode, maxWidthPx: max_width_px });
|
|
994
996
|
const summary = [
|
|
995
997
|
`\uB80C\uB354 \uC644\uB8CC: \uBB38\uC11C ${scene.pages.length}\uD398\uC774\uC9C0 \uC911 ${assets.filter((a) => a.page !== void 0).length || 1}\uAC74 (\uD14D\uC2A4\uD2B8 ${scene.stats.texts}\xB7\uC774\uBBF8\uC9C0 ${scene.stats.images}\xB7\uD45C ${scene.stats.tables}\xB7\uB3C4\uD615 ${scene.stats.shapes})`,
|
|
@@ -1039,7 +1041,7 @@ function registerRenderTools(server2) {
|
|
|
1039
1041
|
try {
|
|
1040
1042
|
const { buffer } = await readValidatedFile(file_path, MAX_FILE_SIZE, /* @__PURE__ */ new Set([".hwpx", ".hwp"]));
|
|
1041
1043
|
const dir = safeOutputPath(join2(output_dir, "regions.json"), /* @__PURE__ */ new Set([".json"])).replace(/[\\/]regions\.json$/, "");
|
|
1042
|
-
const { extractRenderedRegions } = await import("./render-
|
|
1044
|
+
const { extractRenderedRegions } = await import("./render-MJ4H3R23.js");
|
|
1043
1045
|
const regions = await extractRenderedRegions(buffer, { types: target, format, pages, paddingPt: padding_pt, reflow: true });
|
|
1044
1046
|
await mkdir2(dir, { recursive: true });
|
|
1045
1047
|
const ext = format === "jpeg" ? "jpg" : "png";
|
|
@@ -1075,7 +1077,7 @@ function registerRenderTools(server2) {
|
|
|
1075
1077
|
}
|
|
1076
1078
|
const { buffer } = await readValidatedFile(file_path, MAX_FILE_SIZE, /* @__PURE__ */ new Set([".hwpx", ".hwp"]));
|
|
1077
1079
|
const dir = output_dir ? safeOutputPath(join2(output_dir, "tables.json"), /* @__PURE__ */ new Set([".json"])).replace(/[\\/]tables\.json$/, "") : void 0;
|
|
1078
|
-
const { extractTables } = await import("./visual-
|
|
1080
|
+
const { extractTables } = await import("./visual-USPS4QRC.js");
|
|
1079
1081
|
const tables = await extractTables(buffer, { policy: visual, format, paddingPt: padding_pt });
|
|
1080
1082
|
if (dir) await mkdir2(dir, { recursive: true });
|
|
1081
1083
|
const ext = format === "jpeg" ? "jpg" : "png";
|
|
@@ -1132,7 +1134,7 @@ function registerGenerateTools(server2) {
|
|
|
1132
1134
|
try {
|
|
1133
1135
|
const out = safeOutputPath(output_path, PROFILE_EXTENSIONS);
|
|
1134
1136
|
const { buffer } = await readValidatedFile(hwpx_path);
|
|
1135
|
-
const { hwpxToProfile } = await import("./-
|
|
1137
|
+
const { hwpxToProfile } = await import("./-4G6MA4X6.js");
|
|
1136
1138
|
const profile = await hwpxToProfile(buffer);
|
|
1137
1139
|
await mkdir3(dirname4(out), { recursive: true });
|
|
1138
1140
|
await writeOutputFile(out, JSON.stringify(profile, null, 2));
|
|
@@ -1150,13 +1152,13 @@ function registerGenerateTools(server2) {
|
|
|
1150
1152
|
);
|
|
1151
1153
|
server2.tool(
|
|
1152
1154
|
"generate_document",
|
|
1153
|
-
"\uB9C8\uD06C\uB2E4\uC6B4\uC744 HWPX \uD55C\uAE00 \uBB38\uC11C\uB85C \uC0DD\uC131\uD569\uB2C8\uB2E4. \"\uBCF4\uACE0\uC11C\uB85C/\uACF5\uBB38\uC11C\uB85C/\uAC1C\uC870\uC2DD\uC73C\uB85C/\uACC4\uD68D\uC11C\uB85C \uBF51\uC544\uC918\xB7\uB9CC\uB4E4\uC5B4\uC918\" \uC694\uCCAD\uC774 \uC774 \uB3C4\uAD6C\uC785\uB2C8\uB2E4. \uD504\uB9AC\uC14B \uB9E4\uD551: \uC815\uBD80 \uD45C\uC900 \uBCF4\uACE0\uC11C(\uD45C\uC9C0\xB7\uBAA9\uCC28\xB7\uB85C\uB9C8\uC22B\uC790 \uC7A5\uD5E4\uB354 \uC790\uB3D9)='\uAC1C\uC870\uC2DD', \uC911\uC559\uBD80\uCC98 \uC5C5\uBB34\uBCF4\uACE0\xB7\uAD6D\uD68C \uC11C\uBA74\uBCF4\uACE0(\uC7AC\uACBD\uBD80 \uC2E4\uCE21: \uC7A5 \uB760\xB7\uC808 \uC22B\uC790\uCE78\xB7\uC18C\uC81C\uBAA9 \uBC15\uC2A4\xB7\u2460 \uD56D\uBAA9 \uB760\xB7\uC5F0\uB178\uB791 \uC131\uACFC \uC694\uC57D\uBC15\uC2A4\xB7\uBCC4\uCCA8 \uB760, \u25A1 \uB4A4 (\uD0A4\uC6CC\uB4DC) \uD30C\uB791)='\uC5C5\uBB34\uBCF4\uACE0', \uAE30\uC548\uBB38\xB7\uC2DC\uD589\uBB38\xB7\uC54C\uB9BC\uACF5\uBB38='\uAE30\uC548\uBB38', 1\uD398\uC774\uC9C0 \uC694\uC57D\uBCF4\uACE0\uC11C='\uBCF4\uACE0\uC11C', \uCD94\uC9C4\uACC4\uD68D='\uACC4\uD68D\uC11C'. \uD45C\uB294 \uC2E4\uCE21 \uC815\uBD80 \uC11C\uC2DD(\uD5E4\uB354 \uC74C\uC601+\uC774\uC911\uC120\xB7\uC678\uACFD \uAD75\uC740\uC120\xB7\uB0B4\uC6A9 \uBE44\uB840 \uC5F4\uD3ED), \uCABD\uBC88\uD638\xB7\uACB0\uC7AC\uB780\xB7'\uB05D.' \uD45C\uC2DC \uC9C0\uC6D0. \u26A0 \uC0DD\uC131 \uC804 \uD655\uC778 \uAD8C\uC7A5: \uBB38\uC11C\uC885\uB958(\uBCF4\uACE0\uC11C/\uAE30\uC548\uBB38)\xB7\uC81C\uBAA9\xB7\uAE30\uAD00\uBA85(org)\xB7\uB0A0\uC9DC\xB7\uBAA9\uCC28 \uC5EC\uBD80\uAC00 \uBD88\uBA85\uD655\uD558\uBA74 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uBB3C\uC5B4\uBCF4\uC138\uC694 \u2014 \uC5C9\uB6B1\uD55C \uD504\uB9AC\uC14B \uC120\uD0DD\uC774 \uAC00\uC7A5 \uD754\uD55C \uC624\uC0DD\uC131 \uC6D0\uC778. \uB9C8\uD06C\uB2E4\uC6B4 \uADDC\uCE59(v4.13 \uC11C\uC6B8 \uC2E4\uACB0\uC7AC \uC2E4\uCE21 \uC704\uACC4): #(h1)=\uBB38\uC11C \uC81C\uBAA9, ##(h2)=\uC7A5(\uBCF4\uACE0\uC11C \u2160 \u2161 / \uAE30\uC548\uBB38\xB7\uD1B5\uC9C0\uB294 \uBC95\uC815 1.), ###(h3)=\u25A1 \uB300\uD56D\uBAA9(\uAE30\uC548\uBB38 \uAC00.), \uADF8 \uC544\uB798 \uB9AC\uC2A4\uD2B8=\u3147 \u2192 - \u2192 \u318D(\uAE30\uC548\uBB38 \uAC00. \u2192 1) \u2192 \uAC00)), \uBCF8\uBB38\uC5D0 \u25A1/\u3147/-/1./\uAC00. \uB97C \uC9C1\uC811 \uC368\uB3C4 \uAC19\uC740 \uC704\uACC4\uB85C \uC815\uADDC\uD654, \u203B\uC2DC\uC791\xB7'\uCD9C\uCC98:'\xB7'\uC790\uB8CC:'=\uCC38\uACE0(13pt), \uC81C\uBAA9 \uC9C1\uD6C4 \uC778\uC6A9\uBB38(>)=\uBCF4\uACE0\uC11C \uC694\uC57D\uBC15\uC2A4 \u2014 \u2605\uBCF4\uACE0\uC11C\uB294 \uBC18\uB4DC\uC2DC \uC81C\uBAA9 \uC9C1\uD6C4 `> \u2026\uD558\uACE0\uC790 \uD568` \uD55C \uBB38\uC7A5(\uC27C\uD45C \uD5C8\uC6A9\xB7\uBD80\uD638 \uC5C6\uC74C\xB73\uC904 \uC774\uB0B4 \uC57D 90~100\uC790)\uB85C \uBCF4\uACE0 \uBAA9\uC801\uC744 \uB123\uC744 \uAC83(\uC5C6\uAC70\uB098 3\uC904 \uCD08\uACFC\uBA74 \uACBD\uACE0), <right>\uD14D\uC2A4\uD2B8</right>=\uC6B0\uCE21\uC815\uB82C. \u25A1\xB7\uC81C\uBAA9\uC740 \uD55C \uC904\uC5D0 \uC790\uB3D9 \uCD95\uC18C, \uBCF8\uBB38\uC740 \uC5B4\uC808 \uB2E8\uC704 \uC904\uBC14\uAFC8(\uB0B1\uB9D0\xB7\uB0A0\uC9DC\uAC00 \uC904 \uB05D\uC5D0\uC11C \uC548 \uCABC\uAC1C\uC9D0)\xB7\uBD80\uD638 \uB4A4 \uD0ED \uC815\uB82C(\uB458\uC9F8 \uC904\uC774 \uCCAB \uC904 \uB0B4\uC6A9\uACFC \uAC19\uC740 \uC704\uCE58), \uB9C8\uC9C0\uB9C9 \uC904\uC774 \uC9E7\uC740 \uACE0\uC544 \uC904\uACFC \uACF5\uBC31\uC774 \uD06C\uAC8C \uBC8C\uC5B4\uC9C0\uB294 \uC904\uC740 \uC790\uAC04 \uCD95\uC18C\uB85C \uC815\uB9AC, \uACE7\uC740\uB530\uC634\uD45C\uB294 \u2018\u2019\u201C\u201D\uB85C. \uBC95\uB839 \uCF54\uB4DC (282791)\xB7KOSIS \uD45C ID DT_\u2026\xB7(\uBC95\uC815\uB3D9\uCF54\uB4DC \u2026)\xB7\u25CB\u25CB MCP \uC870\uD68C \uAC19\uC740 \uB0B4\uBD80 \uC2DD\uBCC4\uC790\xB7\uB3C4\uAD6C \uC5B8\uAE09\uC740 \uC790\uB3D9 \uC81C\uAC70 \u2014 \uCD9C\uCC98\uB294 \uAE30\uAD00\xB7\uC790\uB8CC\uBA85\uB9CC \uC4F8 \uAC83. (\uC6D0\uBCF8 \uC11C\uC2DD \uBCF4\uC874 \uC81C\uC790\uB9AC \uC218\uC815\uC740 patch_document, \uC11C\uC2DD \uBE48\uCE78 \uCC44\uC6B0\uAE30\uB294 fill_form)",
|
|
1155
|
+
"\uB9C8\uD06C\uB2E4\uC6B4\uC744 HWPX \uD55C\uAE00 \uBB38\uC11C\uB85C \uC0DD\uC131\uD569\uB2C8\uB2E4. \"\uBCF4\uACE0\uC11C\uB85C/\uACF5\uBB38\uC11C\uB85C/\uAC1C\uC870\uC2DD\uC73C\uB85C/\uACC4\uD68D\uC11C\uB85C \uBF51\uC544\uC918\xB7\uB9CC\uB4E4\uC5B4\uC918\" \uC694\uCCAD\uC774 \uC774 \uB3C4\uAD6C\uC785\uB2C8\uB2E4. \uD504\uB9AC\uC14B \uB9E4\uD551: \uC815\uBD80 \uD45C\uC900 \uBCF4\uACE0\uC11C(\uD45C\uC9C0\xB7\uBAA9\uCC28\xB7\uB85C\uB9C8\uC22B\uC790 \uC7A5\uD5E4\uB354 \uC790\uB3D9)='\uAC1C\uC870\uC2DD', \uC911\uC559\uBD80\uCC98 \uC5C5\uBB34\uBCF4\uACE0\xB7\uAD6D\uD68C \uC11C\uBA74\uBCF4\uACE0(\uC7AC\uACBD\uBD80 \uC2E4\uCE21: \uC7A5 \uB760\xB7\uC808 \uC22B\uC790\uCE78\xB7\uC18C\uC81C\uBAA9 \uBC15\uC2A4\xB7\u2460 \uD56D\uBAA9 \uB760\xB7\uC5F0\uB178\uB791 \uC131\uACFC \uC694\uC57D\uBC15\uC2A4\xB7\uBCC4\uCCA8 \uB760, \u25A1 \uB4A4 (\uD0A4\uC6CC\uB4DC) \uD30C\uB791)='\uC5C5\uBB34\uBCF4\uACE0', \uC9C0\uBC29\uC790\uCE58\uB2E8\uCCB4 \uBC29\uCE68\uC11C\xB7\uCD94\uC9C4\uACC4\uD68D(\uC11C\uC6B8\uC2DC \uC2DC\uC7A5\uBC29\uCE68 \uC2E4\uCE21: \uC81C\uBAA9\uD45C\xB7\uD30C\uB791 \uBD80\uC81C\xB7\uC694\uC57D\uBC15\uC2A4\xB7[\u2160] \uC7A5 \uC0C1\uC790\xB7\uC808 \uB760)='\uC11C\uC6B8\uBC29\uCE68' \u2014 \uBCF4\uACE0\uC11C\xB7\uACC4\uD68D\uC11C\uB97C \uB9CC\uB4E4 \uB54C \uC815\uBD80(\uC5C5\uBB34\uBCF4\uACE0)\uD615\uACFC \uC9C0\uBC29(\uC11C\uC6B8\uBC29\uCE68)\uD615 \uC911 \uBB34\uC5C7\uC73C\uB85C \uD560\uC9C0 \uBD88\uBA85\uD655\uD558\uBA74 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uBB3C\uC5B4\uBCF4\uC138\uC694, \uAE30\uC548\uBB38\xB7\uC2DC\uD589\uBB38\xB7\uC54C\uB9BC\uACF5\uBB38='\uAE30\uC548\uBB38', 1\uD398\uC774\uC9C0 \uC694\uC57D\uBCF4\uACE0\uC11C='\uBCF4\uACE0\uC11C', \uCD94\uC9C4\uACC4\uD68D='\uACC4\uD68D\uC11C'. \uD45C\uB294 \uC2E4\uCE21 \uC815\uBD80 \uC11C\uC2DD(\uD5E4\uB354 \uC74C\uC601+\uC774\uC911\uC120\xB7\uC678\uACFD \uAD75\uC740\uC120\xB7\uB0B4\uC6A9 \uBE44\uB840 \uC5F4\uD3ED), \uCABD\uBC88\uD638\xB7\uACB0\uC7AC\uB780\xB7'\uB05D.' \uD45C\uC2DC \uC9C0\uC6D0. \u26A0 \uC0DD\uC131 \uC804 \uD655\uC778 \uAD8C\uC7A5: \uBB38\uC11C\uC885\uB958(\uBCF4\uACE0\uC11C/\uAE30\uC548\uBB38)\xB7\uC81C\uBAA9\xB7\uAE30\uAD00\uBA85(org)\xB7\uB0A0\uC9DC\xB7\uBAA9\uCC28 \uC5EC\uBD80\uAC00 \uBD88\uBA85\uD655\uD558\uBA74 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uBB3C\uC5B4\uBCF4\uC138\uC694 \u2014 \uC5C9\uB6B1\uD55C \uD504\uB9AC\uC14B \uC120\uD0DD\uC774 \uAC00\uC7A5 \uD754\uD55C \uC624\uC0DD\uC131 \uC6D0\uC778. \uB9C8\uD06C\uB2E4\uC6B4 \uADDC\uCE59(v4.13 \uC11C\uC6B8 \uC2E4\uACB0\uC7AC \uC2E4\uCE21 \uC704\uACC4): #(h1)=\uBB38\uC11C \uC81C\uBAA9, ##(h2)=\uC7A5(\uBCF4\uACE0\uC11C \u2160 \u2161 / \uAE30\uC548\uBB38\xB7\uD1B5\uC9C0\uB294 \uBC95\uC815 1.), ###(h3)=\u25A1 \uB300\uD56D\uBAA9(\uAE30\uC548\uBB38 \uAC00.), \uADF8 \uC544\uB798 \uB9AC\uC2A4\uD2B8=\u3147 \u2192 - \u2192 \u318D(\uAE30\uC548\uBB38 \uAC00. \u2192 1) \u2192 \uAC00)), \uBCF8\uBB38\uC5D0 \u25A1/\u3147/-/1./\uAC00. \uB97C \uC9C1\uC811 \uC368\uB3C4 \uAC19\uC740 \uC704\uACC4\uB85C \uC815\uADDC\uD654, \u203B\uC2DC\uC791\xB7'\uCD9C\uCC98:'\xB7'\uC790\uB8CC:'=\uCC38\uACE0(13pt), \uC81C\uBAA9 \uC9C1\uD6C4 \uC778\uC6A9\uBB38(>)=\uBCF4\uACE0\uC11C \uC694\uC57D\uBC15\uC2A4 \u2014 \u2605\uBCF4\uACE0\uC11C\uB294 \uBC18\uB4DC\uC2DC \uC81C\uBAA9 \uC9C1\uD6C4 `> \u2026\uD558\uACE0\uC790 \uD568` \uD55C \uBB38\uC7A5(\uC27C\uD45C \uD5C8\uC6A9\xB7\uBD80\uD638 \uC5C6\uC74C\xB73\uC904 \uC774\uB0B4 \uC57D 90~100\uC790)\uB85C \uBCF4\uACE0 \uBAA9\uC801\uC744 \uB123\uC744 \uAC83(\uC5C6\uAC70\uB098 3\uC904 \uCD08\uACFC\uBA74 \uACBD\uACE0), <right>\uD14D\uC2A4\uD2B8</right>=\uC6B0\uCE21\uC815\uB82C. \u25A1\xB7\uC81C\uBAA9\uC740 \uD55C \uC904\uC5D0 \uC790\uB3D9 \uCD95\uC18C, \uBCF8\uBB38\uC740 \uC5B4\uC808 \uB2E8\uC704 \uC904\uBC14\uAFC8(\uB0B1\uB9D0\xB7\uB0A0\uC9DC\uAC00 \uC904 \uB05D\uC5D0\uC11C \uC548 \uCABC\uAC1C\uC9D0)\xB7\uBD80\uD638 \uB4A4 \uD0ED \uC815\uB82C(\uB458\uC9F8 \uC904\uC774 \uCCAB \uC904 \uB0B4\uC6A9\uACFC \uAC19\uC740 \uC704\uCE58), \uB9C8\uC9C0\uB9C9 \uC904\uC774 \uC9E7\uC740 \uACE0\uC544 \uC904\uACFC \uACF5\uBC31\uC774 \uD06C\uAC8C \uBC8C\uC5B4\uC9C0\uB294 \uC904\uC740 \uC790\uAC04 \uCD95\uC18C\uB85C \uC815\uB9AC, \uACE7\uC740\uB530\uC634\uD45C\uB294 \u2018\u2019\u201C\u201D\uB85C. \uBC95\uB839 \uCF54\uB4DC (282791)\xB7KOSIS \uD45C ID DT_\u2026\xB7(\uBC95\uC815\uB3D9\uCF54\uB4DC \u2026)\xB7\u25CB\u25CB MCP \uC870\uD68C \uAC19\uC740 \uB0B4\uBD80 \uC2DD\uBCC4\uC790\xB7\uB3C4\uAD6C \uC5B8\uAE09\uC740 \uC790\uB3D9 \uC81C\uAC70 \u2014 \uCD9C\uCC98\uB294 \uAE30\uAD00\xB7\uC790\uB8CC\uBA85\uB9CC \uC4F8 \uAC83. (\uC6D0\uBCF8 \uC11C\uC2DD \uBCF4\uC874 \uC81C\uC790\uB9AC \uC218\uC815\uC740 patch_document, \uC11C\uC2DD \uBE48\uCE78 \uCC44\uC6B0\uAE30\uB294 fill_form)",
|
|
1154
1156
|
{
|
|
1155
1157
|
markdown: z4.string().min(1).describe("HWPX\uB85C \uBCC0\uD658\uD560 \uB9C8\uD06C\uB2E4\uC6B4 \uC804\uBB38. \uD45C\uB294 GFM \uBB38\uBC95 \uC0AC\uC6A9 (\uC608: '| \uC774\uB984 | \uBD80\uC11C |\\n| --- | --- |\\n| \uD64D\uAE38\uB3D9 | \uAE30\uD68D\uD300 |')"),
|
|
1156
1158
|
output_path: z4.string().min(1).describe("\uCD9C\uB825 HWPX \uD30C\uC77C\uC758 \uC808\uB300 \uACBD\uB85C (.hwpx \uAD8C\uC7A5)"),
|
|
1157
1159
|
profile_path: z4.string().optional().describe("\uC11C\uC2DD \uD504\uB85C\uD544 JSON \uACBD\uB85C (extract_profile\uB85C \uCD94\uCD9C) \u2014 \uCC38\uC870 \uBB38\uC11C\uC758 \uD45C \uD14C\uB450\uB9AC\xB7\uC74C\uC601\xB7\uC5F4\uD3ED\xB7\uC140 \uAE00\uAF34\uC744 \uC7AC\uD604. \uD45C \uD589\xB7\uC5F4 \uC218\uC640 \uCCAB \uC140 \uD14D\uC2A4\uD2B8\uAC00 \uC77C\uCE58\uD558\uB294 \uD45C\uC5D0\uB9CC \uC801\uC6A9"),
|
|
1158
1160
|
// 값 집합·범위는 gongmun-surface SSOT에서 파생 (CLI와 드리프트 불가 — v4.0.4 영역1-1)
|
|
1159
|
-
preset: z4.enum(Object.keys(PRESET_ALIAS)).optional().describe("\uACF5\uBB38\uC11C \uD504\uB9AC\uC14B \u2014 \uC9C0\uC815 \uC2DC \uD55C\uAD6D \uD589\uC815 \uACF5\uBB38\uC11C \uD45C\uC900 \uC11C\uC2DD \uC801\uC6A9. '\uAC1C\uC870\uC2DD'=\uC815\uBD80 \uD45C\uC900 \uAC1C\uC870\uC2DD \uBCF4\uACE0\uC11C(\uD45C\uC9C0\xB7\uBAA9\uCC28\xB7\uB85C\uB9C8\uC22B\uC790 \uC7A5 \uD5E4\uB354 \uC790\uB3D9 + \u25A1\u25CB-\u203B \uBD80\uD638\uBCC4 \uD3F0\uD2B8), '\uC5C5\uBB34\uBCF4\uACE0'=\uC911\uC559\uBD80\uCC98 \uC5C5\uBB34\uBCF4\uACE0(##=\u2160 \uC7A5 \uB760, ###=\uD30C\uB780 \uC22B\uC790\uCE78 \uC808, ####=\uB0A8\uC0C9 \uC18C\uC81C\uBAA9 \uBC15\uC2A4, #####=\u2460 \uD558\uB298\uC0C9 \uD56D\uBAA9 \uB760, > \u25AA\u2026=\uC5F0\uB178\uB791 \uC131\uACFC \uC694\uC57D\uBC15\uC2A4, ## \uBCC4\uCCA8 \u2026=\uBCC4\uCCA8 \uB760, \u2776\u21D2 \uBD80\uD638 \uBCF4\uC874, \uD568\uCD08\uB86C\uBC14\uD0D5 15\xB7\uAC01\uC8FC \uB9D1\uC740 \uACE0\uB515 12), '\uBCF4\uB3C4\uC790\uB8CC'=\uBA38\uB9AC\uBC15\uC2A4+\uC81C\uBAA9 25pt+\u25A1\u2192\u3147\u2192*(\uAC01\uC8FC) \uCCB4\uACC4. \uBBF8\uC9C0\uC815 \uC2DC \uBC94\uC6A9 \uB9C8\uD06C\uB2E4\uC6B4 \uBCC0\uD658"),
|
|
1161
|
+
preset: z4.enum(Object.keys(PRESET_ALIAS)).optional().describe("\uACF5\uBB38\uC11C \uD504\uB9AC\uC14B \u2014 \uC9C0\uC815 \uC2DC \uD55C\uAD6D \uD589\uC815 \uACF5\uBB38\uC11C \uD45C\uC900 \uC11C\uC2DD \uC801\uC6A9. '\uAC1C\uC870\uC2DD'=\uC815\uBD80 \uD45C\uC900 \uAC1C\uC870\uC2DD \uBCF4\uACE0\uC11C(\uD45C\uC9C0\xB7\uBAA9\uCC28\xB7\uB85C\uB9C8\uC22B\uC790 \uC7A5 \uD5E4\uB354 \uC790\uB3D9 + \u25A1\u25CB-\u203B \uBD80\uD638\uBCC4 \uD3F0\uD2B8), '\uC5C5\uBB34\uBCF4\uACE0'=\uC911\uC559\uBD80\uCC98 \uC5C5\uBB34\uBCF4\uACE0(##=\u2160 \uC7A5 \uB760, ###=\uD30C\uB780 \uC22B\uC790\uCE78 \uC808, ####=\uB0A8\uC0C9 \uC18C\uC81C\uBAA9 \uBC15\uC2A4, #####=\u2460 \uD558\uB298\uC0C9 \uD56D\uBAA9 \uB760, > \u25AA\u2026=\uC5F0\uB178\uB791 \uC131\uACFC \uC694\uC57D\uBC15\uC2A4, ## \uBCC4\uCCA8 \u2026=\uBCC4\uCCA8 \uB760, \u2776\u21D2 \uBD80\uD638 \uBCF4\uC874, \uD568\uCD08\uB86C\uBC14\uD0D5 15\xB7\uAC01\uC8FC \uB9D1\uC740 \uACE0\uB515 12), '\uC11C\uC6B8\uBC29\uCE68'=\uC11C\uC6B8\uC2DC \uBC29\uCE68\uC11C(# \uC81C\uBAA9 \uB4A4 '- \uBD80\uC81C -' \uC904=\uD30C\uB791 \uBD80\uC81C\xB7\u260E \uC904=\uB2F4\uB2F9\uC790 \uD589\xB7> =\uC694\uC57D\uBC15\uC2A4, ##=[\u2160] \uC7A5 \uC0C1\uC790, ###=\uD30C\uB780 \uBC88\uD638 \uC808 \uB760, ####=\u2776 \uACFC\uC81C \uC18C\uC81C\uBAA9, \u25A1 HY\uACAC\uACE0\uB515 17\xB7\u3147 \uD55C\uCEF4\uB3CB\uC6C0 15 \uAD75\uAC8C\xB7- \uD734\uBA3C\uBA85\uC870 14\xB7\u25B8 13, \uC904\uAC04\uACA9 200%), '\uBCF4\uB3C4\uC790\uB8CC'=\uBA38\uB9AC\uBC15\uC2A4+\uC81C\uBAA9 25pt+\u25A1\u2192\u3147\u2192*(\uAC01\uC8FC) \uCCB4\uACC4. \uBBF8\uC9C0\uC815 \uC2DC \uBC94\uC6A9 \uB9C8\uD06C\uB2E4\uC6B4 \uBCC0\uD658"),
|
|
1160
1162
|
font: z4.enum(BODY_FONTS).optional().describe("\uBCF8\uBB38 \uAE00\uAF34(\uACF5\uBB38\uC11C \uBAA8\uB4DC): myeongjo=\uBA85\uC870 \uACC4\uC5F4(\uAC1C\uC870\uC2DD\xB7\uBCF4\uACE0\uC11C\xB7\uACC4\uD68D\uC11C\uB294 \uC2E4\uCE21 \uD734\uBA3C\uBA85\uC870, \uADF8 \uC678 \uD568\uCD08\uB86C\uBC14\uD0D5), gothic=\uB9D1\uC740 \uACE0\uB515"),
|
|
1161
1163
|
body_pt: z4.number().int().min(BODY_PT_RANGE.min).max(BODY_PT_RANGE.max).optional().describe("\uBCF8\uBB38 \uAE00\uC790 \uD06C\uAE30(pt, \uACF5\uBB38\uC11C \uBAA8\uB4DC). \uAE30\uBCF8: \uAE30\uC548\uBB38 12, \uBCF4\uACE0\uC11C\xB7\uACC4\uD68D\uC11C\xB7\uD1B5\uC9C0 15"),
|
|
1162
1164
|
line_spacing: z4.number().int().min(LINE_SPACING_RANGE.min).max(LINE_SPACING_RANGE.max).optional().describe("\uBCF8\uBB38 \uC904\uAC04\uACA9(%, \uACF5\uBB38\uC11C \uBAA8\uB4DC). \uAE30\uBCF8: \uD504\uB9AC\uC14B\uBCC4 \uC2E4\uCE21\uAC12(\uAE30\uC548\uBB38 160, \uD68C\uC758\uB85D 130 \uB4F1)"),
|
|
@@ -1168,11 +1170,13 @@ function registerGenerateTools(server2) {
|
|
|
1168
1170
|
page_numbers: z4.boolean().optional().describe("\uCABD\uBC88\uD638(\uD558\uB2E8 \uC911\uC559 '- 1 -', \uD45C\uC9C0\xB7\uBAA9\uCC28 \uCE74\uC6B4\uD2B8 \uC81C\uC678). \uBBF8\uC9C0\uC815 \uC2DC \uAC1C\uC870\uC2DD\xB7\uBCF4\uACE0\uC11C\xB7\uACC4\uD68D\uC11C \uCF1C\uC9D0"),
|
|
1169
1171
|
end_mark: z4.boolean().optional().describe("\uBCF8\uBB38 \uB05D '\uB05D.' \uD45C\uC2DC (\uD589\uC815\uC5C5\uBB34\uADDC\uC815). \uBBF8\uC9C0\uC815 \uC2DC \uAE30\uC548\uBB38\uB9CC \uCF1C\uC9D0, \uBCF8\uBB38\uC774 \uC774\uBBF8 '\uB05D.'\uC73C\uB85C \uB05D\uB098\uBA74 \uC911\uBCF5 \uC0DD\uC131 \uC548 \uD568"),
|
|
1170
1172
|
body_title_box: z4.boolean().optional().describe("\uBCF8\uBB38 \uCCAB \uD398\uC774\uC9C0 \uC81C\uBAA9 \uBC18\uBCF5 \uBC15\uC2A4 (\uAC1C\uC870\uC2DD \uC2E4\uCE21 \uAD00\uD589). \uBBF8\uC9C0\uC815 \uC2DC \uAC1C\uC870\uC2DD+\uD45C\uC9C0 \uC870\uD569\uC5D0\uC11C \uCF1C\uC9D0"),
|
|
1173
|
+
chapter_fit: z4.boolean().optional().describe("\uAC1C\uC870\uC2DD \uC7A5 \uD5E4\uB354 \uC81C\uBAA9 \uCE78\uC744 \uAE00\uC790 \uD3ED\uC5D0 \uB9DE\uCDA4. \uBBF8\uC9C0\uC815 \uC2DC \uC81C\uBAA9 \uCE78\uC774 \uBCF8\uBB38 \uD3ED\uAE4C\uC9C0"),
|
|
1171
1174
|
h2_marker: z4.enum(H2_MARKERS).optional().describe("h2 \uC7A5 \uC81C\uBAA9 \uD45C\uAE30: band=\uB85C\uB9C8\uC790 \uCC44\uC6C0 \uCE78+\uC81C\uBAA9 \uB760 \uD45C(\uBCF4\uACE0\uC11C\xB7\uACC4\uD68D\uC11C \uAE30\uBCF8), roman='\u2160. \uC81C\uBAA9' \uD14D\uC2A4\uD2B8, number='1. \uC81C\uBAA9'(\uD1B5\uC9C0 \uAE30\uBCF8), box=\uC7A5 \uC5C6\uC774 \u25A1 \uB300\uD56D\uBAA9\uC73C\uB85C, none=\uBC88\uD638 \uC5C6\uC74C. \uAE30\uC548\uBB38 \uBCF8\uBB38\uC758 h2\uB294 \uD56D\uC0C1 \uBC95\uC815 '1.' \uD56D\uBAA9"),
|
|
1172
1175
|
band_color: z4.string().regex(/^#[0-9A-Fa-f]{6}$/).optional().describe("\uB760 \uC81C\uBAA9 \uBC88\uD638\uCE78 \uCC44\uC6C0\uC0C9 #RRGGBB (\uAE30\uBCF8 #003366 \uC2E4\uCE21 \uCD5C\uB2E4. \uAD50\uC721\uCCAD\uD615 \uBC1D\uC740 \uB760\uB294 #DFE6F7 + band_text_color #000000)"),
|
|
1173
1176
|
band_text_color: z4.string().regex(/^#[0-9A-Fa-f]{6}$/).optional().describe("\uB760 \uC81C\uBAA9 \uBC88\uD638 \uAE00\uC790\uC0C9 #RRGGBB (\uAE30\uBCF8 #FFFFFF)"),
|
|
1174
1177
|
summary: z4.string().optional().describe("\uBCF4\uACE0\uC11C \uC694\uC57D \uBC15\uC2A4 \u2014 \uC81C\uBAA9\uD45C \uC544\uB798 #DFE6F7 \uC74C\uC601 \uC0C1\uC790(\uC11C\uC6B8 \uC2E4\uACB0\uC7AC \uAD00\uD589). \uB9C8\uD06C\uB2E4\uC6B4 \uC81C\uBAA9 \uC9C1\uD6C4 \uC778\uC6A9\uBB38(> \u2026)\uC73C\uB85C\uB3C4 \uC9C0\uC815 \uAC00\uB2A5"),
|
|
1175
1178
|
doc_info: z4.object(Object.fromEntries(DOC_INFO_KEYS.map((k) => [k, z4.string().optional()]))).optional().describe("\uBCF4\uACE0\uC11C \uD45C\uC9C0 \uBB38\uC11C\uC815\uBCF4\uD45C \u2014 docNum=\uBB38\uC11C\uBC88\uD638/date=\uACB0\uC7AC\uC77C\uC790/disclosure=\uACF5\uAC1C\uC5EC\uBD80/policyNo=\uBC29\uCE68\uBC88\uD638 (cover=true\uC640 \uD568\uAED8)"),
|
|
1179
|
+
checklist: z4.union([z4.boolean(), z4.object({ na: z4.array(z4.number().int()).optional(), notes: z4.record(z4.string(), z4.string()).optional() })]).optional().describe('\uC11C\uC6B8 \uC0AC\uC804 \uAC80\uD1A0\uD56D\uBAA9 \uC810\uAC80\uD45C(\uD45C\uC9C0 \uB2E4\uC74C \uCABD, \uBCF4\uACE0\uC11C\xB7\uACC4\uD68D\uC11C\xB7\uC11C\uC6B8\uBC29\uCE68) \u2014 true=\uD45C\uC2DC \uC5C6\uB294 \uBE48 \uC11C\uC2DD, {na:[6,7,\u2026]}=\uC801\uC740 \uBB38\uD56D(1~14)\uC740 \uD574\uB2F9\uC5C6\uC74C\xB7\uB098\uBA38\uC9C0 \uAC80\uD1A0\uC644\uB8CC, notes={"7":"\uAD50\uC721"}=\uBE44\uACE0'),
|
|
1176
1180
|
dept: z4.string().optional().describe("\uD45C\uC9C0 \uBD80\uC11C\uBA85 \u2014 \uAE30\uAD00\uBA85 \uC544\uB798 '(\uC2A4\uB9C8\uD2B8\uB3C4\uC2DC\uACFC)' (cover\uC640 \uD568\uAED8)"),
|
|
1177
1181
|
cover_label: z4.string().optional().describe("\uD45C\uC9C0 \uC6B0\uC0C1\uB2E8 \uCDE8\uAE09 \uD45C\uC2DC \u2014 '\uB300\uC678\uC8FC\uC758'\xB7'\uBE44\uACF5\uAC1C' \uBE68\uAC04 \uD14C\uB450\uB9AC \uBC15\uC2A4 (\uC5C5\uBB34\uBCF4\uACE0 \uD504\uB9AC\uC14B \uC2E4\uCE21, cover\uC640 \uD568\uAED8)"),
|
|
1178
1182
|
fonts: z4.object(Object.fromEntries(FONT_ROLE_KEYS.map((k) => [k, z4.string().optional()]))).optional().describe("\uC694\uC18C\uBCC4 \uAE00\uAF34 \uC624\uBC84\uB77C\uC774\uB4DC(\uACF5\uBB38\uC11C \uBAA8\uB4DC) \u2014 body=\uBCF8\uBB38(\u25CB\xB7-)/heading=\uC81C\uBAA9 \uACC4\uC5F4(\u25A1\xB7\uC7A5\uD5E4\uB354\xB7\uD45C\uC9C0\xB7\uBAA9\uCC28)/ref=\u203B \uCC38\uACE0/table=\uD45C \uC140. \uAC1C\uC870\uC2DD\xB7\uBCF4\uACE0\uC11C\xB7\uACC4\uD68D\uC11C\uB294 \uB124 \uC5ED\uD560 \uC804\uBD80, \uADF8 \uC678 \uD504\uB9AC\uC14B\uC740 body\uB9CC \uC801\uC6A9"),
|
|
@@ -1197,7 +1201,7 @@ function registerGenerateTools(server2) {
|
|
|
1197
1201
|
footer: z4.string().optional().describe("\uAF2C\uB9AC\uB9D0 \uD14D\uC2A4\uD2B8 \u2014 \uBAA8\uB4E0 \uCABD \uD558\uB2E8 (v4.5.0)"),
|
|
1198
1202
|
image_dir: z4.string().optional().describe("\uB9C8\uD06C\uB2E4\uC6B4 \uC774\uBBF8\uC9C0 \uCC38\uC870()\uB97C \uC774 \uB514\uB809\uD1A0\uB9AC\uC5D0\uC11C \uC77D\uC5B4 \uC2E4\uB370\uC774\uD130 \uC784\uBCA0\uB4DC (v4.5.0, PNG/JPEG/GIF/BMP). \uBBF8\uC9C0\uC815 \uC2DC \uCC38\uC870\uB9CC placeholder\uB85C \uBCF4\uC874")
|
|
1199
1203
|
},
|
|
1200
|
-
async ({ markdown, output_path, profile_path, preset, font, body_pt, line_spacing, org, date, toc, cover, approval, page_numbers, end_mark, body_title_box, h2_marker, band_color, band_text_color, summary, doc_info, dept, cover_label, fonts, sizes, levels, bullet2, suppress_single, doc_head, doc_foot, report_info, notice_head, press, paper, landscape, columns, header, footer, image_dir }) => {
|
|
1204
|
+
async ({ markdown, output_path, profile_path, preset, font, body_pt, line_spacing, org, date, toc, cover, approval, page_numbers, end_mark, body_title_box, chapter_fit, h2_marker, band_color, band_text_color, summary, doc_info, checklist, dept, cover_label, fonts, sizes, levels, bullet2, suppress_single, doc_head, doc_foot, report_info, notice_head, press, paper, landscape, columns, header, footer, image_dir }) => {
|
|
1201
1205
|
try {
|
|
1202
1206
|
let gongmun;
|
|
1203
1207
|
if (preset) {
|
|
@@ -1214,6 +1218,7 @@ function registerGenerateTools(server2) {
|
|
|
1214
1218
|
pageNumbers: page_numbers,
|
|
1215
1219
|
endMark: end_mark,
|
|
1216
1220
|
bodyTitleBox: body_title_box,
|
|
1221
|
+
chapterFit: chapter_fit,
|
|
1217
1222
|
h2Marker: h2_marker,
|
|
1218
1223
|
bandColor: band_color,
|
|
1219
1224
|
bandTextColor: band_text_color,
|
|
@@ -1230,12 +1235,13 @@ function registerGenerateTools(server2) {
|
|
|
1230
1235
|
summary,
|
|
1231
1236
|
docInfo: doc_info,
|
|
1232
1237
|
dept,
|
|
1233
|
-
coverLabel: cover_label
|
|
1238
|
+
coverLabel: cover_label,
|
|
1239
|
+
checklist: checklist && typeof checklist === "object" ? { na: checklist.na, notes: checklist.notes && Object.fromEntries(Object.entries(checklist.notes).map(([k, v]) => [Number(k), v])) } : checklist
|
|
1234
1240
|
});
|
|
1235
1241
|
}
|
|
1236
1242
|
let profile;
|
|
1237
1243
|
if (profile_path) {
|
|
1238
|
-
const { parseFormatProfileJson } = await import("./profile-io-
|
|
1244
|
+
const { parseFormatProfileJson } = await import("./profile-io-GJPKCYPT.js");
|
|
1239
1245
|
profile = parseFormatProfileJson(await readFile3(safePath(profile_path, PROFILE_EXTENSIONS), "utf-8"));
|
|
1240
1246
|
}
|
|
1241
1247
|
const out = safeOutputPath(output_path, /* @__PURE__ */ new Set([".hwpx"]));
|