@yuaone/tools 0.4.9 → 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 CHANGED
@@ -1,15 +1,35 @@
1
- # @yuan/tools
1
+ # @yuaone/tools
2
2
 
3
3
  Tool implementations for YUAN coding agent.
4
4
 
5
- Part of [YUAN](../../README.md).
5
+ ```bash
6
+ npm install @yuaone/tools
7
+ ```
6
8
 
7
- ## Install
9
+ ## Available Tools
8
10
 
9
- ```bash
10
- npm install @yuan/tools
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).
@@ -1 +1 @@
1
- {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,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,CAiB/C;IAEI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CA0DnF"}
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 relative to project root (default: project root)',
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(pattern, {
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":"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"}
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.4.9",
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.4.9"
39
+ "@yuaone/core": "0.6.1"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "^25.3.5",