@kodocagent/cli 0.5.0 → 0.6.0

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/dist/index.js CHANGED
@@ -9944,7 +9944,7 @@ var DOCUMENT_RULES_SECTION = `## \uBB38\uC11C \uADDC\uCE59
9944
9944
  1. \uBB38\uC11C\uB97C \uC218\uC815\uD558\uAE30 \uC804\uC5D0 \uBC18\uB4DC\uC2DC \`read_document\` \uD234\uB85C \uB0B4\uC6A9\uC744 \uBA3C\uC800 \uC77D\uC73C\uC138\uC694.
9945
9945
  2. \uBAA8\uB4E0 \uD30C\uC77C \uC800\uC7A5\uC740 \`propose_*\` \uD234\uC744 \uD1B5\uD55C \uC2A4\uD14C\uC774\uC9D5\uACFC \uC0AC\uC6A9\uC790 \uC2B9\uC778\uC744 \uAC70\uCCD0\uC57C \uD569\uB2C8\uB2E4.
9946
9946
  3. \uC2B9\uC778\uC744 \uBC1B\uAE30 \uC804\uC5D0\uB294 \uC808\uB300 "\uC800\uC7A5\uD588\uC2B5\uB2C8\uB2E4", "\uC644\uB8CC\uD588\uC2B5\uB2C8\uB2E4"\uB77C\uACE0 \uB9D0\uD558\uC9C0 \uB9C8\uC138\uC694.
9947
- 4. \`.hwp\` \uD30C\uC77C\uC744 \uD3B8\uC9D1\uD55C \uACB0\uACFC\uB294 \`.hwpx\` \uD615\uC2DD\uC73C\uB85C \uC800\uC7A5\uB429\uB2C8\uB2E4. \uC774 \uBCC0\uD658 \uC0AC\uC2E4\uC744 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uBBF8\uB9AC \uC548\uB0B4\uD558\uC138\uC694.
9947
+ 4. \`propose_edit\`\uB85C \`.hwp\`/\`.hwpx\`\uB97C \uD3B8\uC9D1\uD558\uBA74 \uC6D0\uBCF8 \uD615\uC2DD \uADF8\uB300\uB85C \uBB34\uC190\uC2E4 \uC800\uC7A5\uB429\uB2C8\uB2E4(.hwp\uB294 .hwp\uB85C \uC720\uC9C0). \uB2E8, \uD45C\xB7\uC140\xB7\uCC3E\uC544\uBC14\uAFB8\uAE30 \uB4F1 \uC77C\uBD80 \uAD6C\uC870 \uD3B8\uC9D1 \uD234\uC740 \`.hwpx\` \uAE30\uBC18\uC774\uBBC0\uB85C \`.hwp\` \uC785\uB825\uC774 \`.hwpx\`\uB85C \uC800\uC7A5\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uD615\uC2DD \uBCC0\uD658\uC774 \uC548\uB0B4\uB418\uBA74 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uBBF8\uB9AC \uC54C\uB9AC\uC138\uC694.
9948
9948
  5. \uACBD\uB85C\uB294 \uD604\uC7AC \uC791\uC5C5 \uB514\uB809\uD130\uB9AC\uB97C \uAE30\uC900\uC73C\uB85C \uC0C1\uB300 \uACBD\uB85C \uB610\uB294 \uC808\uB300 \uACBD\uB85C\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
9949
9949
  6. \uC0AC\uC6A9\uC790\uAC00 \uC218\uC815\uC548\uC744 \uAC70\uC808\uD558\uBA74 \uAC19\uC740 \uC81C\uC548\uC744 \uC790\uB3D9\uC73C\uB85C \uBC18\uBCF5\uD558\uC9C0 \uB9D0\uACE0, \uC0AC\uC6A9\uC790\uC758 \uB2E4\uC74C \uC9C0\uC2DC\uB97C \uAE30\uB2E4\uB9AC\uC138\uC694.
9950
9950
  7. \uD070 \uBB38\uC11C\uB294 \uBA3C\uC800 \`outline\`\uC73C\uB85C \uAD6C\uC870\uB97C \uD30C\uC545\uD558\uACE0, \`search\`\uB098 \`pages\`\uB85C \uD544\uC694\uD55C \uBD80\uBD84\uB9CC \uC77D\uC5B4 \uCEE8\uD14D\uC2A4\uD2B8\uB97C \uC544\uB07C\uC138\uC694.
@@ -10931,7 +10931,7 @@ var import_jszip3 = __toESM(require_lib3(), 1);
10931
10931
  var import_jszip4 = __toESM(require_lib3(), 1);
10932
10932
  import { z as z3 } from "zod";
10933
10933
  import { readFile as readFile32 } from "fs/promises";
10934
- import { blocksToMarkdown, compare } from "@clazic/kordoc";
10934
+ import { blocksToMarkdown, compare } from "kordoc";
10935
10935
  import { z as z22 } from "zod";
10936
10936
  import { readFile as readFile5 } from "fs/promises";
10937
10937
  import { extname as extname4 } from "path";
@@ -10947,7 +10947,7 @@ import { extname as extname6, join as join4, relative as relative2 } from "path"
10947
10947
  import { z as z6 } from "zod";
10948
10948
  import { readFile as readFile7 } from "fs/promises";
10949
10949
  import { extname as extname7 } from "path";
10950
- import { compare as compare2, markdownToHwpx, parse } from "@clazic/kordoc";
10950
+ import { compare as compare2, parse, patchHwp, patchHwpx } from "kordoc";
10951
10951
  import { z as z7 } from "zod";
10952
10952
  import {
10953
10953
  Document,
@@ -10962,11 +10962,11 @@ import {
10962
10962
  } from "docx";
10963
10963
  import { readFile as readFile8 } from "fs/promises";
10964
10964
  import { extname as extname8 } from "path";
10965
- import { parse as parse2 } from "@clazic/kordoc";
10965
+ import { parse as parse2 } from "kordoc";
10966
10966
  import { z as z8 } from "zod";
10967
10967
  import { readFile as readFile9 } from "fs/promises";
10968
10968
  import { extname as extname9 } from "path";
10969
- import { extractFormFields, markdownToHwpx as markdownToHwpx2, parse as parse3 } from "@clazic/kordoc";
10969
+ import { extractFormFields, parse as parse3, patchHwpx as patchHwpx2 } from "kordoc";
10970
10970
  import { z as z9 } from "zod";
10971
10971
  import { readFile as readFile10 } from "fs/promises";
10972
10972
  import { basename as basename4, extname as extname10 } from "path";
@@ -10979,21 +10979,21 @@ import ExcelJS from "exceljs";
10979
10979
  import { z as z11 } from "zod";
10980
10980
  import { readFile as readFile12 } from "fs/promises";
10981
10981
  import { extname as extname12 } from "path";
10982
- import { parse as parse4 } from "@clazic/kordoc";
10982
+ import { parse as parse4 } from "kordoc";
10983
10983
  import { z as z12 } from "zod";
10984
10984
  import { readFile as readFile13, stat as stat4 } from "fs/promises";
10985
10985
  import { extname as extname13 } from "path";
10986
- import { parse as parse5 } from "@clazic/kordoc";
10986
+ import { parse as parse5 } from "kordoc";
10987
10987
  import { z as z13 } from "zod";
10988
10988
  import { readFile as fsReadFile, stat as stat5 } from "fs/promises";
10989
10989
  import { z as z14 } from "zod";
10990
10990
  import { readFile as readFile14 } from "fs/promises";
10991
10991
  import { extname as extname14 } from "path";
10992
- import { parse as parse6 } from "@clazic/kordoc";
10992
+ import { parse as parse6 } from "kordoc";
10993
10993
  import { z as z15 } from "zod";
10994
10994
  import { stat as stat6 } from "fs/promises";
10995
10995
  import { extname as extname15 } from "path";
10996
- import { markdownToHwpx as markdownToHwpx3 } from "@clazic/kordoc";
10996
+ import { markdownToHwpx } from "kordoc";
10997
10997
  import { z as z16 } from "zod";
10998
10998
  import { stat as stat7 } from "fs/promises";
10999
10999
  import { extname as extname16 } from "path";
@@ -13118,15 +13118,21 @@ var proposeEditTool = {
13118
13118
  originalMarkdown = originalResult.markdown;
13119
13119
  }
13120
13120
  if (ext === ".hwpx" || ext === ".hwp") {
13121
- const kordocWarnings = [];
13122
- const hwpxBuffer = await markdownToHwpx(input.newMarkdown, {
13123
- templateArrayBuffer: originalBuffer.buffer,
13124
- warnings: kordocWarnings
13125
- });
13126
- if (kordocWarnings.length > 0) {
13127
- warnings.push(...kordocWarnings.map((w) => `kordoc \uACBD\uACE0: ${w}`));
13121
+ const origU8 = new Uint8Array(
13122
+ originalBuffer.buffer,
13123
+ originalBuffer.byteOffset,
13124
+ originalBuffer.byteLength
13125
+ );
13126
+ const patchResult = ext === ".hwp" ? await patchHwp(origU8, input.newMarkdown) : await patchHwpx(origU8, input.newMarkdown);
13127
+ if (!patchResult.success || !patchResult.data) {
13128
+ return `\uC624\uB958: \uD3B8\uC9D1\uC744 \uC801\uC6A9\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4: ${patchResult.error ?? "\uC54C \uC218 \uC5C6\uB294 \uC624\uB958"}. read_document\uB85C \uC6D0\uBCF8\uC744 \uB2E4\uC2DC \uD655\uC778\uD558\uC138\uC694.`;
13129
+ }
13130
+ stagedData = patchResult.data;
13131
+ for (const s of patchResult.skipped) {
13132
+ warnings.push(
13133
+ `\uC77C\uBD80 \uBCC0\uACBD\uC774 \uC801\uC6A9\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4(${s.reason ?? "\uC0AC\uC720 \uBBF8\uC0C1"}). \uD45C \uAD6C\uC870 \uBCC0\uACBD\uC740 propose_table_structure, \uC140 \uAC12\uC740 propose_cell_edit\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.`
13134
+ );
13128
13135
  }
13129
- stagedData = new Uint8Array(hwpxBuffer);
13130
13136
  } else if (ext === ".docx") {
13131
13137
  warnings.push("DOCX \uC7AC\uC0DD\uC131: \uBCF5\uC7A1\uD55C \uC11C\uC2DD(\uBA38\uB9AC\uAE00/\uAC01\uC8FC/\uC2A4\uD0C0\uC77C)\uC740 \uC190\uC2E4\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4.");
13132
13138
  const docxBuffer = await markdownToDocx(input.newMarkdown);
@@ -13136,7 +13142,8 @@ var proposeEditTool = {
13136
13142
  } else {
13137
13143
  return `\uC624\uB958: \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 \uD30C\uC77C \uD615\uC2DD\uC785\uB2C8\uB2E4: ${ext}. .hwp, .hwpx, .docx, .md, .txt\uB9CC \uC218\uC815 \uAC00\uB2A5\uD569\uB2C8\uB2E4.`;
13138
13144
  }
13139
- const { outputPath, willConvertFormat } = resolveOutputPath(safePath);
13145
+ const outputPath = ext === ".hwpx" || ext === ".hwp" ? safePath : resolveOutputPath(safePath).outputPath;
13146
+ const willConvertFormat = ext === ".hwpx" || ext === ".hwp" ? void 0 : resolveOutputPath(safePath).willConvertFormat;
13140
13147
  const stagedPath = await stageFile(ctx.sessionId, safePath, stagedData);
13141
13148
  let diff = markdownDiff(originalMarkdown, input.newMarkdown, safePath);
13142
13149
  if (ext === ".hwpx" || ext === ".hwp") {
@@ -13530,15 +13537,19 @@ var proposeFormFillTool = {
13530
13537
  }
13531
13538
  }
13532
13539
  const diff = diffLines.join("\n");
13533
- const kordocWarnings = [];
13534
- const hwpxBuffer = await markdownToHwpx2(newMarkdown, {
13535
- templateArrayBuffer: originalBuffer.buffer,
13536
- warnings: kordocWarnings
13537
- });
13538
- if (kordocWarnings.length > 0) {
13539
- warnings.push(...kordocWarnings.map((w) => `kordoc \uACBD\uACE0: ${w}`));
13540
+ const origU8 = new Uint8Array(
13541
+ originalBuffer.buffer,
13542
+ originalBuffer.byteOffset,
13543
+ originalBuffer.byteLength
13544
+ );
13545
+ const patchResult = await patchHwpx2(origU8, newMarkdown);
13546
+ if (!patchResult.success || !patchResult.data) {
13547
+ return `\uC624\uB958: \uC591\uC2DD \uCC44\uC6B0\uAE30\uB97C \uC801\uC6A9\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4: ${patchResult.error ?? "\uC54C \uC218 \uC5C6\uB294 \uC624\uB958"}.`;
13548
+ }
13549
+ const stagedData = patchResult.data;
13550
+ for (const s of patchResult.skipped) {
13551
+ warnings.push(`\uC77C\uBD80 \uD56D\uBAA9\uC774 \uC801\uC6A9\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4(${s.reason ?? "\uC0AC\uC720 \uBBF8\uC0C1"}).`);
13540
13552
  }
13541
- const stagedData = new Uint8Array(hwpxBuffer);
13542
13553
  const { outputPath, willConvertFormat } = resolveOutputPath(safePath);
13543
13554
  const stagedPath = await stageFile(ctx.sessionId, safePath, stagedData);
13544
13555
  const proposalId = crypto.randomUUID();
@@ -15057,13 +15068,7 @@ var writeNewDocumentTool = {
15057
15068
  const warnings = [];
15058
15069
  let stagedData;
15059
15070
  if (ext === ".hwpx") {
15060
- const kordocWarnings = [];
15061
- const hwpxBuffer = await markdownToHwpx3(input.markdown, {
15062
- warnings: kordocWarnings
15063
- });
15064
- if (kordocWarnings.length > 0) {
15065
- warnings.push(...kordocWarnings.map((w) => `kordoc \uACBD\uACE0: ${w}`));
15066
- }
15071
+ const hwpxBuffer = await markdownToHwpx(input.markdown);
15067
15072
  stagedData = new Uint8Array(hwpxBuffer);
15068
15073
  } else if (ext === ".docx") {
15069
15074
  warnings.push("DOCX \uC0DD\uC131: \uBCF5\uC7A1\uD55C \uC11C\uC2DD(\uBA38\uB9AC\uAE00/\uAC01\uC8FC/\uC2A4\uD0C0\uC77C)\uC740 \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");