@yuaone/tools 0.6.1 → 0.7.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.
@@ -1 +1 @@
1
- {"version":3,"file":"file-write.d.ts","sourceRoot":"","sources":["../src/file-write.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,qBAAa,aAAc,SAAQ,QAAQ;IACzC,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,SAE0B;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAU;IAEvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAiB/C;IAEI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CA4GnF"}
1
+ {"version":3,"file":"file-write.d.ts","sourceRoot":"","sources":["../src/file-write.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,qBAAa,aAAc,SAAQ,QAAQ;IACzC,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,SAE0B;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAU;IAEvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAiB/C;IAEI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CA2GnF"}
@@ -94,8 +94,16 @@ export class FileWriteTool extends BaseTool {
94
94
  // Best-effort backup — don't block write on backup failure
95
95
  }
96
96
  }
97
- // Write file using O_NOFOLLOW to atomically prevent symlink TOCTOU attacks.
98
- // This eliminates the race window between symlink check and write.
97
+ // Read old content for diff (before writing)
98
+ let oldContent = '';
99
+ if (existed) {
100
+ try {
101
+ oldContent = await readFile(resolvedPath, 'utf-8');
102
+ }
103
+ catch {
104
+ // Could not read old content — diff will show all lines as additions
105
+ }
106
+ }
99
107
  try {
100
108
  const flags = existed
101
109
  ? fsConstants.O_WRONLY | fsConstants.O_TRUNC | fsConstants.O_NOFOLLOW
@@ -108,22 +116,12 @@ export class FileWriteTool extends BaseTool {
108
116
  await fh.close();
109
117
  }
110
118
  const bytesWritten = Buffer.byteLength(contentStr, 'utf-8');
111
- let output = existed
119
+ // Generate unified diff
120
+ const diff = generateUnifiedDiff(oldContent, contentStr, path, existed);
121
+ const header = existed
112
122
  ? `File overwritten: ${path} (${bytesWritten} bytes, backup created)`
113
123
  : `File created: ${path} (${bytesWritten} bytes)`;
114
- // If the file existed, show a brief diff hint
115
- if (existed) {
116
- try {
117
- const originalContent = await readFile(resolvedPath + '.yuan-backup', 'utf-8');
118
- const origLines = originalContent.split('\n').length;
119
- const newLines = contentStr.split('\n').length;
120
- output += `\nPrevious: ${origLines} lines → New: ${newLines} lines`;
121
- }
122
- catch {
123
- // Backup read failed — skip diff info
124
- }
125
- }
126
- return this.ok(toolCallId, output, {
124
+ return this.ok(toolCallId, `${header}\n\n${diff}`, {
127
125
  bytesWritten,
128
126
  created: !existed,
129
127
  });
@@ -136,4 +134,241 @@ export class FileWriteTool extends BaseTool {
136
134
  }
137
135
  }
138
136
  }
137
+ /**
138
+ * Generate a unified diff string between oldContent and newContent.
139
+ * If the file is new (existed=false), all lines are shown as additions.
140
+ * Truncates if more than 500 lines changed to avoid huge output.
141
+ */
142
+ function generateUnifiedDiff(oldContent, newContent, filePath, existed) {
143
+ const oldLines = oldContent ? oldContent.split('\n') : [];
144
+ const newLines = newContent.split('\n');
145
+ // New file: all additions
146
+ if (!existed || oldLines.length === 0) {
147
+ const header = [`--- /dev/null`, `+++ b/${filePath}`, `@@ -0,0 +1,${newLines.length} @@`];
148
+ const MAX_NEW_LINES = 500;
149
+ if (newLines.length > MAX_NEW_LINES) {
150
+ const shown = newLines.slice(0, MAX_NEW_LINES).map(l => `+${l}`);
151
+ return [
152
+ ...header,
153
+ ...shown,
154
+ `... (${newLines.length - MAX_NEW_LINES} more lines)`,
155
+ ].join('\n');
156
+ }
157
+ return [...header, ...newLines.map(l => `+${l}`)].join('\n');
158
+ }
159
+ // Existing file: compute diff hunks
160
+ const hunks = computeHunks(oldLines, newLines);
161
+ if (hunks.length === 0)
162
+ return 'No changes detected.';
163
+ const result = [
164
+ `--- a/${filePath}`,
165
+ `+++ b/${filePath}`,
166
+ ...hunks,
167
+ ].join('\n');
168
+ // Truncate if result is very large
169
+ const MAX_DIFF_CHARS = 8000;
170
+ if (result.length > MAX_DIFF_CHARS) {
171
+ return result.slice(0, MAX_DIFF_CHARS) + '\n... (diff truncated)';
172
+ }
173
+ return result;
174
+ }
175
+ /**
176
+ * Compute unified diff hunks between oldLines and newLines.
177
+ * Uses a simple O(n) greedy approach: compare line-by-line with context.
178
+ */
179
+ function computeHunks(oldLines, newLines) {
180
+ const CONTEXT = 3;
181
+ const MAX_CHANGED = 500;
182
+ // Build edit script: for each position mark as equal, delete, or insert
183
+ // We use a simple patience-like approach: find equal regions greedily
184
+ const ops = diffLines(oldLines, newLines);
185
+ // Count total changes
186
+ const totalChanged = ops.filter(op => op.type !== 'equal').length;
187
+ if (totalChanged === 0)
188
+ return [];
189
+ if (totalChanged > MAX_CHANGED) {
190
+ // Just show summary line
191
+ const addCount = ops.filter(op => op.type === 'insert').length;
192
+ const delCount = ops.filter(op => op.type === 'delete').length;
193
+ return [`@@ (large diff) @@\n... ${delCount} lines removed, ${addCount} lines added ...`];
194
+ }
195
+ // Group ops into hunks (continuous regions with context)
196
+ const hunks = [];
197
+ let i = 0;
198
+ while (i < ops.length) {
199
+ // Skip equal regions before next change
200
+ if (ops[i].type === 'equal') {
201
+ i++;
202
+ continue;
203
+ }
204
+ // Found a change — find the hunk range
205
+ const hunkStart = i;
206
+ let hunkEnd = i;
207
+ // Extend to include all changes within CONTEXT distance of each other
208
+ while (hunkEnd < ops.length) {
209
+ if (ops[hunkEnd].type !== 'equal') {
210
+ hunkEnd++;
211
+ }
212
+ else {
213
+ // Check if next change is within CONTEXT*2 equal lines
214
+ let equalCount = 0;
215
+ let j = hunkEnd;
216
+ while (j < ops.length && ops[j].type === 'equal') {
217
+ equalCount++;
218
+ j++;
219
+ }
220
+ if (equalCount <= CONTEXT * 2 && j < ops.length && ops[j].type !== 'equal') {
221
+ hunkEnd = j;
222
+ }
223
+ else {
224
+ break;
225
+ }
226
+ }
227
+ }
228
+ // Build context around hunk
229
+ const contextBefore = Math.max(0, hunkStart - CONTEXT);
230
+ const contextAfter = Math.min(ops.length, hunkEnd + CONTEXT);
231
+ // Compute old/new line numbers for hunk header
232
+ let oldLine = 1;
233
+ let newLine = 1;
234
+ for (let k = 0; k < contextBefore; k++) {
235
+ const op = ops[k];
236
+ if (op.type === 'equal' || op.type === 'delete')
237
+ oldLine++;
238
+ if (op.type === 'equal' || op.type === 'insert')
239
+ newLine++;
240
+ }
241
+ let oldCount = 0;
242
+ let newCount = 0;
243
+ const hunkLines = [];
244
+ for (let k = contextBefore; k < contextAfter; k++) {
245
+ const op = ops[k];
246
+ if (op.type === 'equal') {
247
+ hunkLines.push(` ${op.line}`);
248
+ oldCount++;
249
+ newCount++;
250
+ }
251
+ else if (op.type === 'delete') {
252
+ hunkLines.push(`-${op.line}`);
253
+ oldCount++;
254
+ }
255
+ else {
256
+ hunkLines.push(`+${op.line}`);
257
+ newCount++;
258
+ }
259
+ }
260
+ hunks.push(`@@ -${oldLine},${oldCount} +${newLine},${newCount} @@`);
261
+ hunks.push(...hunkLines);
262
+ i = hunkEnd;
263
+ }
264
+ return hunks;
265
+ }
266
+ /**
267
+ * Simple line diff using LCS via dynamic programming (capped at 200 lines each for performance).
268
+ * Falls back to full delete+insert for larger inputs.
269
+ */
270
+ function diffLines(oldLines, newLines) {
271
+ const MAX_LCS = 200;
272
+ if (oldLines.length > MAX_LCS || newLines.length > MAX_LCS) {
273
+ // Large file: use greedy block diff
274
+ return greedyDiff(oldLines, newLines);
275
+ }
276
+ // LCS-based diff
277
+ const m = oldLines.length;
278
+ const n = newLines.length;
279
+ // Build LCS table
280
+ const dp = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));
281
+ for (let i = m - 1; i >= 0; i--) {
282
+ for (let j = n - 1; j >= 0; j--) {
283
+ if (oldLines[i] === newLines[j]) {
284
+ dp[i][j] = (dp[i + 1][j + 1] ?? 0) + 1;
285
+ }
286
+ else {
287
+ dp[i][j] = Math.max(dp[i + 1][j] ?? 0, dp[i][j + 1] ?? 0);
288
+ }
289
+ }
290
+ }
291
+ // Trace back
292
+ const ops = [];
293
+ let i = 0;
294
+ let j = 0;
295
+ while (i < m || j < n) {
296
+ if (i < m && j < n && oldLines[i] === newLines[j]) {
297
+ ops.push({ type: 'equal', line: oldLines[i] });
298
+ i++;
299
+ j++;
300
+ }
301
+ else if (j < n && (i >= m || (dp[i][j + 1] ?? 0) >= (dp[i + 1][j] ?? 0))) {
302
+ ops.push({ type: 'insert', line: newLines[j] });
303
+ j++;
304
+ }
305
+ else {
306
+ ops.push({ type: 'delete', line: oldLines[i] });
307
+ i++;
308
+ }
309
+ }
310
+ return ops;
311
+ }
312
+ /**
313
+ * Greedy diff for large files: find matching blocks and emit deletes/inserts for gaps.
314
+ */
315
+ function greedyDiff(oldLines, newLines) {
316
+ const ops = [];
317
+ let oi = 0;
318
+ let ni = 0;
319
+ // Build index of new lines for quick lookup
320
+ const newIndex = new Map();
321
+ for (let i = 0; i < newLines.length; i++) {
322
+ const line = newLines[i];
323
+ const arr = newIndex.get(line);
324
+ if (arr)
325
+ arr.push(i);
326
+ else
327
+ newIndex.set(line, [i]);
328
+ }
329
+ while (oi < oldLines.length || ni < newLines.length) {
330
+ if (oi < oldLines.length && ni < newLines.length && oldLines[oi] === newLines[ni]) {
331
+ ops.push({ type: 'equal', line: oldLines[oi] });
332
+ oi++;
333
+ ni++;
334
+ }
335
+ else {
336
+ // Find next match
337
+ let bestOld = -1;
338
+ let bestNew = -1;
339
+ let bestScore = Infinity;
340
+ for (let lookAhead = 0; lookAhead < 20; lookAhead++) {
341
+ const checkOld = oi + lookAhead;
342
+ if (checkOld < oldLines.length) {
343
+ const candidates = newIndex.get(oldLines[checkOld]) ?? [];
344
+ for (const cn of candidates) {
345
+ if (cn >= ni) {
346
+ const score = lookAhead + (cn - ni);
347
+ if (score < bestScore) {
348
+ bestScore = score;
349
+ bestOld = checkOld;
350
+ bestNew = cn;
351
+ }
352
+ break;
353
+ }
354
+ }
355
+ }
356
+ }
357
+ if (bestOld === -1) {
358
+ // No match found in lookahead — emit remaining as delete/insert
359
+ while (oi < oldLines.length)
360
+ ops.push({ type: 'delete', line: oldLines[oi++] });
361
+ while (ni < newLines.length)
362
+ ops.push({ type: 'insert', line: newLines[ni++] });
363
+ break;
364
+ }
365
+ // Emit deletions and insertions up to the match
366
+ while (oi < bestOld)
367
+ ops.push({ type: 'delete', line: oldLines[oi++] });
368
+ while (ni < bestNew)
369
+ ops.push({ type: 'insert', line: newLines[ni++] });
370
+ }
371
+ }
372
+ return ops;
373
+ }
139
374
  //# sourceMappingURL=file-write.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-write.js","sourceRoot":"","sources":["../src/file-write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-write.js","sourceRoot":"","sources":["../src/file-write.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,OAAO,aAAc,SAAQ,QAAQ;IAChC,IAAI,GAAG,YAAY,CAAC;IACpB,WAAW,GAClB,8DAA8D;QAC9D,2CAA2C,CAAC;IACrC,SAAS,GAAc,MAAM,CAAC;IAE9B,UAAU,GAAiC;QAClD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,IAAI;SACf;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE,IAAI;SACf;QACD,iBAAiB,EAAE;YACjB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;SACd;KACF,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,IAA6B,EAAE,OAAe;QAC1D,MAAM,UAAU,GAAI,IAAI,CAAC,WAAsB,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAA6B,CAAC;QACnD,MAAM,iBAAiB,GAAI,IAAI,CAAC,iBAA6B,IAAI,IAAI,CAAC;QAEtE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,qCAAqC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,YAAoB,CAAC;QACzB,IAAI,CAAC;YACH,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;QAED,yBAAyB;QACzB,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,IAAI,CACd,UAAU,EACV,6BAA6B,IAAI,KAAK;gBACpC,6DAA6D,CAChE,CAAC;QACJ,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;QACxC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,cAAc,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,2CAA2C,CAAC,CAAC;QAC5E,CAAC;QAED,+BAA+B;QAC/B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,wBAAwB,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;QAED,+BAA+B;QAC/B,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,iCAAkC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,YAAY,GAAG,cAAc,CAAC;gBACjD,MAAM,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,2DAA2D;YAC7D,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,UAAU,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACP,qEAAqE;YACvE,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO;gBACnB,CAAC,CAAC,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,UAAU;gBACrE,CAAC,CAAC,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC;YAC9F,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;oBAAS,CAAC;gBACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAE5D,wBAAwB;YACxB,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAExE,MAAM,MAAM,GAAG,OAAO;gBACpB,CAAC,CAAC,qBAAqB,IAAI,KAAK,YAAY,yBAAyB;gBACrE,CAAC,CAAC,iBAAiB,IAAI,KAAK,YAAY,SAAS,CAAC;YAEpD,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,MAAM,OAAO,IAAI,EAAE,EAAE;gBACjD,YAAY;gBACZ,OAAO,EAAE,CAAC,OAAO;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAI,GAA6B,CAAC,IAAI,KAAK,OAAO;gBACzD,CAAC,CAAC,sCAAsC,IAAI,EAAE;gBAC9C,CAAC,CAAC,yBAA0B,GAAa,CAAC,OAAO,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,UAAkB,EAClB,UAAkB,EAClB,QAAgB,EAChB,OAAgB;IAEhB,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAExC,0BAA0B;IAC1B,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,CAAC,eAAe,EAAE,SAAS,QAAQ,EAAE,EAAE,cAAc,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;QAC1F,MAAM,aAAa,GAAG,GAAG,CAAC;QAC1B,IAAI,QAAQ,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjE,OAAO;gBACL,GAAG,MAAM;gBACT,GAAG,KAAK;gBACR,QAAQ,QAAQ,CAAC,MAAM,GAAG,aAAa,cAAc;aACtD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;QACD,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,oCAAoC;IACpC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,sBAAsB,CAAC;IAEtD,MAAM,MAAM,GAAG;QACb,SAAS,QAAQ,EAAE;QACnB,SAAS,QAAQ,EAAE;QACnB,GAAG,KAAK;KACT,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,mCAAmC;IACnC,MAAM,cAAc,GAAG,IAAI,CAAC;IAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,wBAAwB,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,QAAkB,EAAE,QAAkB;IAC1D,MAAM,OAAO,GAAG,CAAC,CAAC;IAClB,MAAM,WAAW,GAAG,GAAG,CAAC;IAExB,wEAAwE;IACxE,sEAAsE;IACtE,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE1C,sBAAsB;IACtB,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IAClE,IAAI,YAAY,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,IAAI,YAAY,GAAG,WAAW,EAAE,CAAC;QAC/B,yBAAyB;QACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QAC/D,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QAC/D,OAAO,CAAC,2BAA2B,QAAQ,mBAAmB,QAAQ,kBAAkB,CAAC,CAAC;IAC5F,CAAC;IAED,yDAAyD;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACtB,wCAAwC;QACxC,IAAI,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,uCAAuC;QACvC,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,sEAAsE;QACtE,OAAO,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,GAAG,CAAC,OAAO,CAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACnC,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,uDAAuD;gBACvD,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,GAAG,OAAO,CAAC;gBAChB,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAClD,UAAU,EAAE,CAAC;oBACb,CAAC,EAAE,CAAC;gBACN,CAAC;gBACD,IAAI,UAAU,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC5E,OAAO,GAAG,CAAC,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;QAE7D,+CAA+C;QAC/C,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;YACnB,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAC3D,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;QAC7D,CAAC;QAED,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;YACnB,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9B,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;YACb,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9B,QAAQ,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9B,QAAQ,EAAE,CAAC;YACb,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAEzB,CAAC,GAAG,OAAO,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAOD;;;GAGG;AACH,SAAS,SAAS,CAAC,QAAkB,EAAE,QAAkB;IACvD,MAAM,OAAO,GAAG,GAAG,CAAC;IAEpB,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;QAC3D,oCAAoC;QACpC,OAAO,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,iBAAiB;IACjB,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAE1B,kBAAkB;IAClB,MAAM,EAAE,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,CAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,aAAa;IACb,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;YAChD,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;YACjD,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;YACjD,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,QAAkB,EAAE,QAAkB;IACxD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,CAAC,CAAC;IAEX,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,GAAG;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;YAChB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpD,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAClF,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAE,EAAE,CAAC,CAAC;YACjD,EAAE,EAAE,CAAC;YACL,EAAE,EAAE,CAAC;QACP,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;YACjB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;YACjB,IAAI,SAAS,GAAG,QAAQ,CAAC;YAEzB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,EAAE,GAAG,SAAS,CAAC;gBAChC,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAE,CAAC,IAAI,EAAE,CAAC;oBAC3D,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;wBAC5B,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;4BACb,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;4BACpC,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;gCACtB,SAAS,GAAG,KAAK,CAAC;gCAClB,OAAO,GAAG,QAAQ,CAAC;gCACnB,OAAO,GAAG,EAAE,CAAC;4BACf,CAAC;4BACD,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;gBACnB,gEAAgE;gBAChE,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAE,EAAE,CAAC,CAAC;gBACjF,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAE,EAAE,CAAC,CAAC;gBACjF,MAAM;YACR,CAAC;YAED,gDAAgD;YAChD,OAAO,EAAE,GAAG,OAAO;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAE,EAAE,CAAC,CAAC;YACzE,OAAO,EAAE,GAAG,OAAO;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuaone/tools",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "YUAN Agent Tool Implementations",
5
5
  "license": "AGPL-3.0",
6
6
  "type": "module",
@@ -36,7 +36,7 @@
36
36
  "dependencies": {
37
37
  "fast-glob": "^3.3.3",
38
38
  "playwright": "^1.52.0",
39
- "@yuaone/core": "0.6.1"
39
+ "@yuaone/core": "0.7.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "^25.3.5",