@yuaone/tools 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -6
- package/dist/glob.d.ts.map +1 -1
- package/dist/glob.js +35 -3
- package/dist/glob.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,15 +1,35 @@
|
|
|
1
|
-
# @
|
|
1
|
+
# @yuaone/tools
|
|
2
2
|
|
|
3
3
|
Tool implementations for YUAN coding agent.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
```bash
|
|
6
|
+
npm install @yuaone/tools
|
|
7
|
+
```
|
|
6
8
|
|
|
7
|
-
##
|
|
9
|
+
## Available Tools
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
| Tool | Description |
|
|
12
|
+
|------|-------------|
|
|
13
|
+
| `file_read` | Read file contents |
|
|
14
|
+
| `file_write` | Write or create a file |
|
|
15
|
+
| `file_edit` | Surgical string replacement in a file |
|
|
16
|
+
| `shell_exec` | Execute shell commands |
|
|
17
|
+
| `grep` | Search file contents with regex |
|
|
18
|
+
| `glob` | Find files by pattern |
|
|
19
|
+
| `git_ops` | Git status/diff/log/commit |
|
|
20
|
+
| `web_search` | Search the web |
|
|
21
|
+
| `web_fetch` | Fetch a URL |
|
|
22
|
+
| `code_search` | Semantic code search |
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
import { ToolRegistry } from "@yuaone/tools";
|
|
28
|
+
|
|
29
|
+
const registry = new ToolRegistry({ workDir: process.cwd() });
|
|
30
|
+
const result = await registry.execute("file_read", { path: "src/index.ts" });
|
|
11
31
|
```
|
|
12
32
|
|
|
13
33
|
## License
|
|
14
34
|
|
|
15
|
-
AGPL-3.0
|
|
35
|
+
AGPL-3.0 — part of [YUAN](https://github.com/yuaone/yuan).
|
package/dist/glob.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,qBAAa,QAAS,SAAQ,QAAQ;IACpC,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,SAEiC;IACrD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAS;IAEtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAqB/C;IAEI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAqFnF"}
|
package/dist/glob.js
CHANGED
|
@@ -17,12 +17,14 @@ export class GlobTool extends BaseTool {
|
|
|
17
17
|
parameters = {
|
|
18
18
|
pattern: {
|
|
19
19
|
type: 'string',
|
|
20
|
-
description: 'Glob pattern (e.g., "src/**/*.tsx", "**/*.test.ts")'
|
|
20
|
+
description: 'Glob pattern (e.g., "src/**/*.tsx", "**/*.test.ts"). ' +
|
|
21
|
+
'For directories outside the project use the `path` parameter instead of putting "../" in the pattern.',
|
|
21
22
|
required: true,
|
|
22
23
|
},
|
|
23
24
|
path: {
|
|
24
25
|
type: 'string',
|
|
25
|
-
description: 'Base directory
|
|
26
|
+
description: 'Base directory to search from (default: project root). ' +
|
|
27
|
+
'Can be an absolute path or relative path including "../" to reach sibling directories.',
|
|
26
28
|
required: false,
|
|
27
29
|
},
|
|
28
30
|
maxResults: {
|
|
@@ -42,6 +44,7 @@ export class GlobTool extends BaseTool {
|
|
|
42
44
|
}
|
|
43
45
|
// Resolve base directory
|
|
44
46
|
let cwd = workDir;
|
|
47
|
+
let resolvedPattern = pattern;
|
|
45
48
|
if (basePath) {
|
|
46
49
|
try {
|
|
47
50
|
cwd = this.validatePath(basePath, workDir, true);
|
|
@@ -50,8 +53,37 @@ export class GlobTool extends BaseTool {
|
|
|
50
53
|
return this.fail(toolCallId, err.message);
|
|
51
54
|
}
|
|
52
55
|
}
|
|
56
|
+
else if (/^\.\.[\\/]|^\//.test(pattern)) {
|
|
57
|
+
// Pattern starts with ../ or ../../ etc — auto-split into cwd + pattern.
|
|
58
|
+
// fast-glob does not support ".." traversal in patterns, so we extract
|
|
59
|
+
// any leading path segments (up to the first glob character) as cwd.
|
|
60
|
+
const firstGlob = pattern.search(/[*?{[]/);
|
|
61
|
+
if (firstGlob > 0) {
|
|
62
|
+
const pathPrefix = pattern.slice(0, firstGlob);
|
|
63
|
+
// Strip trailing separator
|
|
64
|
+
const cleanPrefix = pathPrefix.replace(/[\\/]+$/, '');
|
|
65
|
+
resolvedPattern = pattern.slice(firstGlob);
|
|
66
|
+
try {
|
|
67
|
+
cwd = this.validatePath(cleanPrefix, workDir, true);
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
return this.fail(toolCallId, err.message);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else if (firstGlob === -1) {
|
|
74
|
+
// No glob chars at all — treat the whole pattern as a path to list
|
|
75
|
+
const cleanPrefix = pattern.replace(/[\\/]+$/, '');
|
|
76
|
+
resolvedPattern = '**';
|
|
77
|
+
try {
|
|
78
|
+
cwd = this.validatePath(cleanPrefix, workDir, true);
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
return this.fail(toolCallId, err.message);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
53
85
|
try {
|
|
54
|
-
const allFiles = await fg(
|
|
86
|
+
const allFiles = await fg(resolvedPattern, {
|
|
55
87
|
cwd,
|
|
56
88
|
ignore: [
|
|
57
89
|
'**/node_modules/**',
|
package/dist/glob.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuaone/tools",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
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.
|
|
39
|
+
"@yuaone/core": "0.6.1"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/node": "^25.3.5",
|