@linghun/tools 0.1.5 → 0.1.6

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.
@@ -1,12 +1,9 @@
1
- import {
2
- WebSearchTool
3
- } from "./chunk-4EZHIDZ6.js";
4
1
  import {
5
2
  WebFetchTool
6
3
  } from "./chunk-LGZOG7IQ.js";
7
4
  import {
8
- TodoTool
9
- } from "./chunk-MFHY7PBM.js";
5
+ WebSearchTool
6
+ } from "./chunk-4EZHIDZ6.js";
10
7
  import {
11
8
  WriteTool
12
9
  } from "./chunk-I3Z4OKMS.js";
@@ -19,6 +16,9 @@ import {
19
16
  import {
20
17
  SourcePackTool
21
18
  } from "./chunk-A6FUAM64.js";
19
+ import {
20
+ TodoTool
21
+ } from "./chunk-4567YAXM.js";
22
22
  import {
23
23
  GrepTool
24
24
  } from "./chunk-AZCQL24J.js";
@@ -28,12 +28,12 @@ import {
28
28
  import {
29
29
  EditTool
30
30
  } from "./chunk-WLQ7DGMG.js";
31
- import {
32
- DiffTool
33
- } from "./chunk-7ZOADACP.js";
34
31
  import {
35
32
  GlobTool
36
33
  } from "./chunk-Z3H6SZBS.js";
34
+ import {
35
+ DiffTool
36
+ } from "./chunk-7ZOADACP.js";
37
37
  import {
38
38
  BashTool
39
39
  } from "./chunk-2DIXRINW.js";
@@ -1,12 +1,9 @@
1
- import {
2
- WebSearchTool
3
- } from "./chunk-4EZHIDZ6.js";
4
1
  import {
5
2
  WebFetchTool
6
3
  } from "./chunk-LGZOG7IQ.js";
7
4
  import {
8
- TodoTool
9
- } from "./chunk-MFHY7PBM.js";
5
+ WebSearchTool
6
+ } from "./chunk-4EZHIDZ6.js";
10
7
  import {
11
8
  WriteTool
12
9
  } from "./chunk-I3Z4OKMS.js";
@@ -19,6 +16,9 @@ import {
19
16
  import {
20
17
  SourcePackTool
21
18
  } from "./chunk-A6FUAM64.js";
19
+ import {
20
+ TodoTool
21
+ } from "./chunk-4567YAXM.js";
22
22
  import {
23
23
  GrepTool
24
24
  } from "./chunk-AZCQL24J.js";
@@ -28,12 +28,12 @@ import {
28
28
  import {
29
29
  EditTool
30
30
  } from "./chunk-WLQ7DGMG.js";
31
- import {
32
- DiffTool
33
- } from "./chunk-7ZOADACP.js";
34
31
  import {
35
32
  GlobTool
36
33
  } from "./chunk-Z3H6SZBS.js";
34
+ import {
35
+ DiffTool
36
+ } from "./chunk-7ZOADACP.js";
37
37
  import {
38
38
  BashTool
39
39
  } from "./chunk-2DIXRINW.js";
package/dist/index.d.ts CHANGED
@@ -102,8 +102,10 @@ export type DiffSummary = {
102
102
  export type PatchHunk = {
103
103
  oldStart: number;
104
104
  newStart: number;
105
+ contextBefore?: string[];
105
106
  oldLines: string[];
106
107
  newLines: string[];
108
+ contextAfter?: string[];
107
109
  oldLineCount: number;
108
110
  newLineCount: number;
109
111
  truncated?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,28 +1,30 @@
1
+ import {
2
+ formatFetchOutput,
3
+ webFetch
4
+ } from "./chunk-4UHQWBFA.js";
1
5
  import {
2
6
  applyDomainFilter,
3
7
  bingSearch,
4
8
  formatSearchOutput
5
9
  } from "./chunk-EPIB4FSE.js";
6
10
  import {
7
- formatFetchOutput,
8
- webFetch
9
- } from "./chunk-4UHQWBFA.js";
11
+ interpretCommandResult
12
+ } from "./chunk-FI4YPDFE.js";
10
13
  import {
11
14
  createTool
12
15
  } from "./chunk-MMJX44V6.js";
13
16
  import {
14
17
  toolPrompts
15
- } from "./chunk-XGK6YYZO.js";
18
+ } from "./chunk-VVRFYPMG.js";
16
19
  import {
17
20
  toolUserFacingNames
18
- } from "./chunk-PNXZO2UE.js";
21
+ } from "./chunk-24USSE7U.js";
22
+ import "./chunk-LGZOG7IQ.js";
23
+ import "./chunk-ZYAEUABC.js";
24
+ import "./chunk-SWK6XRZQ.js";
19
25
  import "./chunk-4EZHIDZ6.js";
20
26
  import "./chunk-YR4HWOR2.js";
21
27
  import "./chunk-VAFW24RN.js";
22
- import "./chunk-LGZOG7IQ.js";
23
- import "./chunk-MFHY7PBM.js";
24
- import "./chunk-SZFZPQGL.js";
25
- import "./chunk-XZWSO5CM.js";
26
28
  import "./chunk-I3Z4OKMS.js";
27
29
  import "./chunk-PS2ZOFZ6.js";
28
30
  import "./chunk-NPKLGVDQ.js";
@@ -32,8 +34,9 @@ import "./chunk-GI5XI4HN.js";
32
34
  import "./chunk-WEWXKRKL.js";
33
35
  import "./chunk-A6FUAM64.js";
34
36
  import "./chunk-YCO6C7KF.js";
35
- import "./chunk-ZYAEUABC.js";
36
- import "./chunk-SWK6XRZQ.js";
37
+ import "./chunk-4567YAXM.js";
38
+ import "./chunk-XZWSO5CM.js";
39
+ import "./chunk-SZFZPQGL.js";
37
40
  import "./chunk-AZCQL24J.js";
38
41
  import "./chunk-HUIZOB4A.js";
39
42
  import "./chunk-MK3YP2VR.js";
@@ -44,16 +47,13 @@ import "./chunk-HNIVNZIS.js";
44
47
  import "./chunk-WLQ7DGMG.js";
45
48
  import "./chunk-SQP6SJRP.js";
46
49
  import "./chunk-BRG64AEC.js";
47
- import "./chunk-7ZOADACP.js";
48
- import "./chunk-H5OOD2OS.js";
49
- import "./chunk-IQP3XE32.js";
50
50
  import "./chunk-Z3H6SZBS.js";
51
51
  import "./chunk-ITBZHMZQ.js";
52
52
  import "./chunk-2U4BZXAI.js";
53
+ import "./chunk-7ZOADACP.js";
54
+ import "./chunk-H5OOD2OS.js";
55
+ import "./chunk-IQP3XE32.js";
53
56
  import "./chunk-2DIXRINW.js";
54
- import {
55
- interpretCommandResult
56
- } from "./chunk-FI4YPDFE.js";
57
57
  import "./chunk-PKMIDA5A.js";
58
58
  import "./chunk-GAWMEMXB.js";
59
59
 
@@ -61,7 +61,7 @@ import "./chunk-GAWMEMXB.js";
61
61
  import { spawn } from "child_process";
62
62
  import { createHash, randomUUID } from "crypto";
63
63
  import { closeSync, createWriteStream, openSync } from "fs";
64
- import { mkdir, readFile, readdir, stat, writeFile } from "fs/promises";
64
+ import { mkdir, appendFile, readFile, readdir, stat, writeFile } from "fs/promises";
65
65
  import { basename, dirname, isAbsolute, join, relative, resolve } from "path";
66
66
  var toolRegistryStatus = "ready";
67
67
  var DEFAULT_LIMIT = 200;
@@ -75,6 +75,8 @@ var SOURCE_PACK_MAX_LIMIT = 12;
75
75
  var SOURCE_PACK_CONTEXT_LINES = 8;
76
76
  var SOURCE_PACK_MAX_TERMS = 6;
77
77
  var BASH_PREVIEW_LIMIT = 3e4;
78
+ var BASH_OUTPUT_TRUNCATION_NOTICE = "\n...\uFF08\u8F93\u51FA\u5DF2\u622A\u65AD\uFF0C\u5B8C\u6574\u65E5\u5FD7\u89C1 fullOutputPath\uFF09";
79
+ var BASH_DETAILS_TAIL_LINES = 80;
78
80
  var BASH_TIMEOUT_MS = 12e4;
79
81
  var MAX_TODO_ITEMS = 100;
80
82
  var SEARCH_EXCLUDED_DIR_NAMES = ["node_modules", "dist", ".git", ".codebase-memory"];
@@ -430,11 +432,12 @@ function normalizeToolOutput(output, tool) {
430
432
  }
431
433
  const preview = `${output.text.slice(0, tool.lifecycle.maxResultSizeChars)}
432
434
  ...\uFF08\u8F93\u51FA\u5DF2\u622A\u65AD\uFF0C\u5B8C\u6574\u5185\u5BB9\u89C1 details/fullOutputPath \u6216 transcript\uFF09`;
435
+ const details = output.truncated ? output.details : output.details ?? output.text;
433
436
  return {
434
437
  ...output,
435
438
  text: preview,
436
439
  preview: output.preview ?? preview,
437
- details: output.details ?? output.text,
440
+ details,
438
441
  truncated: true
439
442
  };
440
443
  }
@@ -654,15 +657,22 @@ async function readTool(input, context) {
654
657
  const offset = Math.max(input.offset ?? 0, 0);
655
658
  const limit = Math.max(input.limit ?? DEFAULT_LIMIT, 1);
656
659
  const selected = lines.slice(offset, offset + limit);
657
- const truncated = offset > 0 || offset + limit < lines.length;
660
+ const windowTruncated = offset > 0 || offset + limit < lines.length;
658
661
  const textLines = selected.map((line, index) => `${offset + index + 1} ${line}`);
659
- if (truncated) {
660
- textLines.push(
661
- `...\uFF08\u53EA\u663E\u793A\u8BFB\u53D6\u7A97\u53E3\uFF1A\u9009\u4E2D ${selected.length} \u884C / \u5168\u6587 ${lines.length} \u884C\uFF1B\u4E0D\u662F\u5B8C\u6574\u6587\u4EF6\uFF09`
662
- );
662
+ let text = textLines.join("\n");
663
+ const budgetTruncated = text.length > DEFAULT_TOOL_TEXT_LIMIT;
664
+ if (windowTruncated || budgetTruncated) {
665
+ const marker = `...\uFF08\u53EA\u663E\u793A\u8BFB\u53D6\u7A97\u53E3\uFF1A\u9009\u4E2D ${selected.length} \u884C / \u5168\u6587 ${lines.length} \u884C\uFF1B\u4E0D\u662F\u5B8C\u6574\u6587\u4EF6\uFF09`;
666
+ if (budgetTruncated) {
667
+ text = `${text.slice(0, DEFAULT_TOOL_TEXT_LIMIT - marker.length - 1)}
668
+ ${marker}`;
669
+ } else {
670
+ text = `${text}
671
+ ${marker}`;
672
+ }
663
673
  }
664
674
  return {
665
- text: textLines.join("\n"),
675
+ text,
666
676
  data: {
667
677
  path: relativePath(context.workspaceRoot, filePath),
668
678
  lines: selected.length,
@@ -673,7 +683,7 @@ async function readTool(input, context) {
673
683
  hash: hashText(content),
674
684
  newline: detectNewlineStyle(content)
675
685
  },
676
- truncated
686
+ truncated: windowTruncated || budgetTruncated
677
687
  };
678
688
  }
679
689
  async function readSnippetsTool(input, context) {
@@ -1056,37 +1066,35 @@ outputPath: ${fullOutputPath}`,
1056
1066
  }
1057
1067
  };
1058
1068
  }
1069
+ const commandForLog = adapted.logCommand ?? adapted.command;
1070
+ const adapterLines = adapted.command === input.command && adapted.adapter === "native" ? [] : [
1071
+ `adapter ${adapted.adapter}`,
1072
+ `original command ${summarizeOriginalShellCommand(input.command)}`
1073
+ ];
1059
1074
  const result = await runShell(
1060
1075
  adapted.command,
1061
1076
  context.workspaceRoot,
1062
1077
  timeoutMs,
1078
+ fullOutputPath,
1079
+ [`$ ${sanitizeSecrets(commandForLog)}`, ...adapterLines],
1063
1080
  context.abortSignal,
1064
1081
  (stream, text) => void context.onProgress?.({ toolName: "Bash", stream, text }),
1065
1082
  context.trackChildProcess
1066
1083
  );
1067
- const adapterLines = adapted.command === input.command && adapted.adapter === "native" ? [] : [
1068
- `adapter ${adapted.adapter}`,
1069
- `original command ${summarizeOriginalShellCommand(input.command)}`
1070
- ];
1071
- const commandForLog = adapted.logCommand ?? adapted.command;
1072
- const sanitizedShellOutput = sanitizeSecrets(result.output);
1073
1084
  const cmdInterpretation = interpretCommandResult(input.command, result.exitCode);
1074
- const rawFullText = [
1075
- `$ ${sanitizeSecrets(commandForLog)}`,
1076
- ...adapterLines,
1085
+ const diagnostics = createBashOutcomeDiagnostics(result.outcome);
1086
+ const trailerLines = [
1087
+ "",
1077
1088
  `exit code ${result.exitCode}`,
1078
1089
  `outcome ${result.outcome}`,
1079
- ...cmdInterpretation.message ? [`returnCodeInterpretation: ${cmdInterpretation.message}`] : [],
1080
- "",
1081
- sanitizedShellOutput
1082
- ].join("\n");
1083
- const diagnostics = createBashOutcomeDiagnostics(result.outcome);
1084
- const fullText = rawFullText;
1085
- await writeFile(fullOutputPath, fullText, "utf8");
1086
- const truncated = fullText.length > BASH_PREVIEW_LIMIT;
1087
- const preview = truncated ? `${fullText.slice(0, BASH_PREVIEW_LIMIT)}
1088
- ...\uFF08\u8F93\u51FA\u5DF2\u622A\u65AD\uFF0C\u5B8C\u6574\u65E5\u5FD7\u89C1 fullOutputPath\uFF09` : fullText;
1089
- const details = createBashDetails(fullOutputPath, fullText);
1090
+ ...cmdInterpretation.message ? [`returnCodeInterpretation: ${cmdInterpretation.message}`] : []
1091
+ ];
1092
+ await appendFileToPath(fullOutputPath, `${trailerLines.join("\n")}
1093
+ `);
1094
+ result.capture.appendLogOnly(`${trailerLines.join("\n")}
1095
+ `);
1096
+ const preview = result.capture.getPreview(BASH_OUTPUT_TRUNCATION_NOTICE);
1097
+ const details = createBashDetails(fullOutputPath, result.capture);
1090
1098
  const data = adapted.adapter === "native" ? { exitCode: result.exitCode, outcome: result.outcome } : { exitCode: result.exitCode, outcome: result.outcome, adapter: adapted.adapter };
1091
1099
  const outputData = {
1092
1100
  ...data,
@@ -1094,6 +1102,7 @@ outputPath: ${fullOutputPath}`,
1094
1102
  ...cmdInterpretation.isError === false && result.exitCode !== 0 ? { isError: false } : {},
1095
1103
  ...diagnostics.length > 0 ? { diagnostics } : {}
1096
1104
  };
1105
+ const truncated = result.capture.isTruncated();
1097
1106
  return {
1098
1107
  text: preview,
1099
1108
  details,
@@ -1102,15 +1111,53 @@ outputPath: ${fullOutputPath}`,
1102
1111
  fullOutputPath
1103
1112
  };
1104
1113
  }
1105
- function createBashDetails(fullOutputPath, fullText) {
1114
+ function createBashDetails(fullOutputPath, capture) {
1106
1115
  return [
1107
1116
  `fullOutputPath: ${fullOutputPath}`,
1108
1117
  "--- summary",
1109
- ...fullText.split(/\r?\n/u).slice(0, 8),
1118
+ ...capture.getSummaryLines(8),
1110
1119
  "--- tail",
1111
- ...tailLines(fullText, 80)
1120
+ ...capture.getTailLines(BASH_DETAILS_TAIL_LINES)
1112
1121
  ].join("\n");
1113
1122
  }
1123
+ function createBashOutputCapture() {
1124
+ let outputPreview = "";
1125
+ let outputChars = 0;
1126
+ let summaryText = "";
1127
+ let tailText = "";
1128
+ const summaryCharLimit = 8e3;
1129
+ const tailCharLimit = 64e3;
1130
+ const appendLogText = (text) => {
1131
+ if (!text) return;
1132
+ if (summaryText.length < summaryCharLimit) {
1133
+ summaryText += text.slice(0, summaryCharLimit - summaryText.length);
1134
+ }
1135
+ tailText = `${tailText}${text}`;
1136
+ if (tailText.length > tailCharLimit) {
1137
+ tailText = tailText.slice(tailText.length - tailCharLimit);
1138
+ }
1139
+ };
1140
+ const appendOutputText = (text) => {
1141
+ if (!text) return;
1142
+ outputChars += text.length;
1143
+ if (outputPreview.length < BASH_PREVIEW_LIMIT) {
1144
+ outputPreview += text.slice(0, BASH_PREVIEW_LIMIT - outputPreview.length);
1145
+ }
1146
+ appendLogText(text);
1147
+ };
1148
+ return {
1149
+ appendOutput: appendOutputText,
1150
+ appendSystem: appendOutputText,
1151
+ appendLogOnly: appendLogText,
1152
+ getPreview: (truncationNotice) => outputChars > BASH_PREVIEW_LIMIT ? `${outputPreview.slice(0, Math.max(0, BASH_PREVIEW_LIMIT - truncationNotice.length))}${truncationNotice}` : outputPreview,
1153
+ getSummaryLines: (limit) => summaryText.split(/\r?\n/u).slice(0, limit),
1154
+ getTailLines: (limit) => tailLines(tailText, limit),
1155
+ isTruncated: () => outputChars > BASH_PREVIEW_LIMIT
1156
+ };
1157
+ }
1158
+ async function appendFileToPath(path, text) {
1159
+ await appendFile(path, text, "utf8");
1160
+ }
1114
1161
  var BINARY_HINT_EXTENSIONS = [
1115
1162
  ".bin",
1116
1163
  ".elf",
@@ -2159,6 +2206,7 @@ function createEditOutput(context, operation, filePath, before, after, readGuard
2159
2206
  };
2160
2207
  }
2161
2208
  var STRUCTURED_PATCH_LINE_LIMIT = 120;
2209
+ var STRUCTURED_PATCH_CONTEXT_LINES = 3;
2162
2210
  function createStructuredPatch(path, before, after) {
2163
2211
  const beforeLines = splitPatchLines(before);
2164
2212
  const afterLines = splitPatchLines(after);
@@ -2181,11 +2229,21 @@ function createPatchHunk(beforeLines, afterLines) {
2181
2229
  const oldLines = beforeLines.slice(prefix, beforeLines.length - suffix);
2182
2230
  const newLines = afterLines.slice(prefix, afterLines.length - suffix);
2183
2231
  if (oldLines.length === 0 && newLines.length === 0) return void 0;
2232
+ const contextBefore = beforeLines.slice(
2233
+ Math.max(0, prefix - STRUCTURED_PATCH_CONTEXT_LINES),
2234
+ prefix
2235
+ );
2236
+ const contextAfter = beforeLines.slice(
2237
+ beforeLines.length - suffix,
2238
+ Math.min(beforeLines.length - suffix + STRUCTURED_PATCH_CONTEXT_LINES, beforeLines.length)
2239
+ );
2184
2240
  return {
2185
2241
  oldStart: oldLines.length > 0 ? prefix + 1 : prefix,
2186
2242
  newStart: newLines.length > 0 ? prefix + 1 : prefix,
2243
+ contextBefore,
2187
2244
  oldLines: oldLines.slice(0, STRUCTURED_PATCH_LINE_LIMIT),
2188
2245
  newLines: newLines.slice(0, STRUCTURED_PATCH_LINE_LIMIT),
2246
+ contextAfter,
2189
2247
  oldLineCount: oldLines.length,
2190
2248
  newLineCount: newLines.length,
2191
2249
  truncated: oldLines.length > STRUCTURED_PATCH_LINE_LIMIT || newLines.length > STRUCTURED_PATCH_LINE_LIMIT
@@ -2610,7 +2668,7 @@ function globToRegExp(pattern) {
2610
2668
  }
2611
2669
  return new RegExp(result);
2612
2670
  }
2613
- function runShell(command, cwd, timeoutMs, signal, onProgress, trackChildProcess) {
2671
+ function runShell(command, cwd, timeoutMs, fullOutputPath, headerLines, signal, onProgress, trackChildProcess) {
2614
2672
  return new Promise((resolvePromise) => {
2615
2673
  const detached = process.platform !== "win32";
2616
2674
  const child = spawn(command, { cwd, shell: true, windowsHide: true, detached });
@@ -2620,12 +2678,27 @@ function runShell(command, cwd, timeoutMs, signal, onProgress, trackChildProcess
2620
2678
  label: `Bash:${command.slice(0, 80)}`,
2621
2679
  retainAfterExit: detached
2622
2680
  });
2623
- let output = "";
2681
+ const capture = createBashOutputCapture();
2682
+ let logWrite = writeFile(fullOutputPath, `${headerLines.join("\n")}
2683
+
2684
+ `, "utf8");
2685
+ capture.appendLogOnly(`${headerLines.join("\n")}
2686
+
2687
+ `);
2688
+ const appendSanitizedChunk = (text, countAsOutput) => {
2689
+ const sanitized = sanitizeSecrets(text);
2690
+ if (countAsOutput) {
2691
+ capture.appendOutput(sanitized);
2692
+ } else {
2693
+ capture.appendLogOnly(sanitized);
2694
+ }
2695
+ logWrite = logWrite.then(() => appendFileToPath(fullOutputPath, sanitized));
2696
+ };
2624
2697
  let settled = false;
2625
2698
  let forcedKillTimer;
2626
2699
  let stoppingOutcome;
2627
2700
  let childClosed = false;
2628
- const finish = (exitCode, nextOutput = output, outcome = "completed") => {
2701
+ const finish = (exitCode, outcome = "completed") => {
2629
2702
  if (settled) {
2630
2703
  return;
2631
2704
  }
@@ -2635,7 +2708,7 @@ function runShell(command, cwd, timeoutMs, signal, onProgress, trackChildProcess
2635
2708
  clearTimeout(forcedKillTimer);
2636
2709
  }
2637
2710
  signal?.removeEventListener("abort", onAbort);
2638
- resolvePromise({ exitCode, output: nextOutput, outcome });
2711
+ void logWrite.finally(() => resolvePromise({ exitCode, capture, outcome }));
2639
2712
  };
2640
2713
  const waitForChildClose = () => new Promise((resolveClose) => {
2641
2714
  if (childClosed || child.exitCode !== null || child.signalCode !== null) {
@@ -2669,10 +2742,9 @@ function runShell(command, cwd, timeoutMs, signal, onProgress, trackChildProcess
2669
2742
  }, 1e3);
2670
2743
  };
2671
2744
  const onAbort = async () => {
2672
- const message = "\n\u5DE5\u5177\u8C03\u7528\u5DF2\u53D6\u6D88\uFF0C\u6B63\u5728\u7EC8\u6B62\u5B50\u8FDB\u7A0B\u3002";
2673
- output += message;
2674
- onProgress?.("system", `${message}
2675
- `);
2745
+ const message = "\n\u5DE5\u5177\u8C03\u7528\u5DF2\u53D6\u6D88\uFF0C\u6B63\u5728\u7EC8\u6B62\u5B50\u8FDB\u7A0B\u3002\n";
2746
+ appendSanitizedChunk(message, true);
2747
+ onProgress?.("system", message);
2676
2748
  stoppingOutcome = "cancelled";
2677
2749
  if (process.platform === "win32") {
2678
2750
  await requestStop(true);
@@ -2680,17 +2752,17 @@ function runShell(command, cwd, timeoutMs, signal, onProgress, trackChildProcess
2680
2752
  void requestStop(false);
2681
2753
  scheduleForceStop();
2682
2754
  }
2683
- finish(1, output, "cancelled");
2755
+ finish(1, "cancelled");
2684
2756
  };
2685
2757
  const timer = setTimeout(() => {
2686
2758
  void handleTimeout();
2687
2759
  }, timeoutMs);
2688
2760
  const handleTimeout = async () => {
2689
2761
  const message = `
2690
- \u547D\u4EE4\u8D85\u65F6\uFF1A\u8D85\u8FC7 ${timeoutMs}ms\uFF0C\u5DF2\u5C1D\u8BD5\u7EC8\u6B62\u5B50\u8FDB\u7A0B\u3002`;
2691
- output += message;
2692
- onProgress?.("system", `${message}
2693
- `);
2762
+ \u547D\u4EE4\u8D85\u65F6\uFF1A\u8D85\u8FC7 ${timeoutMs}ms\uFF0C\u5DF2\u5C1D\u8BD5\u7EC8\u6B62\u5B50\u8FDB\u7A0B\u3002
2763
+ `;
2764
+ appendSanitizedChunk(message, true);
2765
+ onProgress?.("system", message);
2694
2766
  stoppingOutcome = "timeout";
2695
2767
  if (process.platform === "win32") {
2696
2768
  await requestStop(true);
@@ -2698,21 +2770,21 @@ function runShell(command, cwd, timeoutMs, signal, onProgress, trackChildProcess
2698
2770
  void requestStop(false);
2699
2771
  scheduleForceStop();
2700
2772
  }
2701
- finish(1, output, "timeout");
2773
+ finish(1, "timeout");
2702
2774
  };
2703
2775
  if (signal?.aborted) {
2704
- onAbort();
2776
+ void onAbort();
2705
2777
  return;
2706
2778
  }
2707
2779
  signal?.addEventListener("abort", onAbort, { once: true });
2708
2780
  child.stdout.on("data", (chunk) => {
2709
2781
  const text = decodeShellChunk(chunk);
2710
- output += text;
2782
+ appendSanitizedChunk(text, true);
2711
2783
  onProgress?.("stdout", text);
2712
2784
  });
2713
2785
  child.stderr.on("data", (chunk) => {
2714
2786
  const text = decodeShellChunk(chunk);
2715
- output += text;
2787
+ appendSanitizedChunk(text, true);
2716
2788
  onProgress?.("stderr", text);
2717
2789
  });
2718
2790
  child.on("close", (code) => {
@@ -2723,7 +2795,9 @@ function runShell(command, cwd, timeoutMs, signal, onProgress, trackChildProcess
2723
2795
  finish(code ?? 1);
2724
2796
  });
2725
2797
  child.on("error", (error) => {
2726
- finish(1, `\u547D\u4EE4\u6267\u884C\u5931\u8D25\uFF1A${error.message}`);
2798
+ appendSanitizedChunk(`\u547D\u4EE4\u6267\u884C\u5931\u8D25\uFF1A${error.message}
2799
+ `, true);
2800
+ finish(1);
2727
2801
  });
2728
2802
  });
2729
2803
  }
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  TodoTool
3
- } from "../../chunk-MFHY7PBM.js";
4
- import "../../chunk-SZFZPQGL.js";
3
+ } from "../../chunk-4567YAXM.js";
5
4
  import "../../chunk-XZWSO5CM.js";
5
+ import "../../chunk-SZFZPQGL.js";
6
6
  export {
7
7
  TodoTool
8
8
  };
@@ -1,13 +1,12 @@
1
1
  import {
2
2
  toolPrompts
3
- } from "../chunk-XGK6YYZO.js";
3
+ } from "../chunk-VVRFYPMG.js";
4
+ import "../chunk-LGZOG7IQ.js";
5
+ import "../chunk-ZYAEUABC.js";
6
+ import "../chunk-SWK6XRZQ.js";
4
7
  import "../chunk-4EZHIDZ6.js";
5
8
  import "../chunk-YR4HWOR2.js";
6
9
  import "../chunk-VAFW24RN.js";
7
- import "../chunk-LGZOG7IQ.js";
8
- import "../chunk-MFHY7PBM.js";
9
- import "../chunk-SZFZPQGL.js";
10
- import "../chunk-XZWSO5CM.js";
11
10
  import "../chunk-I3Z4OKMS.js";
12
11
  import "../chunk-PS2ZOFZ6.js";
13
12
  import "../chunk-NPKLGVDQ.js";
@@ -17,8 +16,9 @@ import "../chunk-GI5XI4HN.js";
17
16
  import "../chunk-WEWXKRKL.js";
18
17
  import "../chunk-A6FUAM64.js";
19
18
  import "../chunk-YCO6C7KF.js";
20
- import "../chunk-ZYAEUABC.js";
21
- import "../chunk-SWK6XRZQ.js";
19
+ import "../chunk-4567YAXM.js";
20
+ import "../chunk-XZWSO5CM.js";
21
+ import "../chunk-SZFZPQGL.js";
22
22
  import "../chunk-AZCQL24J.js";
23
23
  import "../chunk-HUIZOB4A.js";
24
24
  import "../chunk-MK3YP2VR.js";
@@ -29,12 +29,12 @@ import "../chunk-HNIVNZIS.js";
29
29
  import "../chunk-WLQ7DGMG.js";
30
30
  import "../chunk-SQP6SJRP.js";
31
31
  import "../chunk-BRG64AEC.js";
32
- import "../chunk-7ZOADACP.js";
33
- import "../chunk-H5OOD2OS.js";
34
- import "../chunk-IQP3XE32.js";
35
32
  import "../chunk-Z3H6SZBS.js";
36
33
  import "../chunk-ITBZHMZQ.js";
37
34
  import "../chunk-2U4BZXAI.js";
35
+ import "../chunk-7ZOADACP.js";
36
+ import "../chunk-H5OOD2OS.js";
37
+ import "../chunk-IQP3XE32.js";
38
38
  import "../chunk-2DIXRINW.js";
39
39
  import "../chunk-PKMIDA5A.js";
40
40
  import "../chunk-GAWMEMXB.js";
package/dist/tools/ui.js CHANGED
@@ -1,13 +1,12 @@
1
1
  import {
2
2
  toolUserFacingNames
3
- } from "../chunk-PNXZO2UE.js";
3
+ } from "../chunk-24USSE7U.js";
4
+ import "../chunk-LGZOG7IQ.js";
5
+ import "../chunk-ZYAEUABC.js";
6
+ import "../chunk-SWK6XRZQ.js";
4
7
  import "../chunk-4EZHIDZ6.js";
5
8
  import "../chunk-YR4HWOR2.js";
6
9
  import "../chunk-VAFW24RN.js";
7
- import "../chunk-LGZOG7IQ.js";
8
- import "../chunk-MFHY7PBM.js";
9
- import "../chunk-SZFZPQGL.js";
10
- import "../chunk-XZWSO5CM.js";
11
10
  import "../chunk-I3Z4OKMS.js";
12
11
  import "../chunk-PS2ZOFZ6.js";
13
12
  import "../chunk-NPKLGVDQ.js";
@@ -17,8 +16,9 @@ import "../chunk-GI5XI4HN.js";
17
16
  import "../chunk-WEWXKRKL.js";
18
17
  import "../chunk-A6FUAM64.js";
19
18
  import "../chunk-YCO6C7KF.js";
20
- import "../chunk-ZYAEUABC.js";
21
- import "../chunk-SWK6XRZQ.js";
19
+ import "../chunk-4567YAXM.js";
20
+ import "../chunk-XZWSO5CM.js";
21
+ import "../chunk-SZFZPQGL.js";
22
22
  import "../chunk-AZCQL24J.js";
23
23
  import "../chunk-HUIZOB4A.js";
24
24
  import "../chunk-MK3YP2VR.js";
@@ -29,12 +29,12 @@ import "../chunk-HNIVNZIS.js";
29
29
  import "../chunk-WLQ7DGMG.js";
30
30
  import "../chunk-SQP6SJRP.js";
31
31
  import "../chunk-BRG64AEC.js";
32
- import "../chunk-7ZOADACP.js";
33
- import "../chunk-H5OOD2OS.js";
34
- import "../chunk-IQP3XE32.js";
35
32
  import "../chunk-Z3H6SZBS.js";
36
33
  import "../chunk-ITBZHMZQ.js";
37
34
  import "../chunk-2U4BZXAI.js";
35
+ import "../chunk-7ZOADACP.js";
36
+ import "../chunk-H5OOD2OS.js";
37
+ import "../chunk-IQP3XE32.js";
38
38
  import "../chunk-2DIXRINW.js";
39
39
  import "../chunk-PKMIDA5A.js";
40
40
  import "../chunk-GAWMEMXB.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linghun/tools",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,9 +1,9 @@
1
- import {
2
- prompt
3
- } from "./chunk-SZFZPQGL.js";
4
1
  import {
5
2
  userFacingName
6
3
  } from "./chunk-XZWSO5CM.js";
4
+ import {
5
+ prompt
6
+ } from "./chunk-SZFZPQGL.js";
7
7
 
8
8
  // src/tools/Todo/TodoTool.ts
9
9
  var TodoTool = { name: "Todo", prompt, userFacingName };