@roackb2/heddle 0.0.29 → 0.0.31

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.
Files changed (93) hide show
  1. package/README.md +39 -22
  2. package/dist/src/cli/main.js +12 -1
  3. package/dist/src/cli/main.js.map +1 -1
  4. package/dist/src/cli/remote/control-plane-client.d.ts +33 -0
  5. package/dist/src/cli/remote/control-plane-client.d.ts.map +1 -1
  6. package/dist/src/core/agent/run-agent.d.ts +1 -0
  7. package/dist/src/core/agent/run-agent.d.ts.map +1 -1
  8. package/dist/src/core/agent/run-agent.js +4 -0
  9. package/dist/src/core/agent/run-agent.js.map +1 -1
  10. package/dist/src/core/agent/tool-dispatch.d.ts +2 -0
  11. package/dist/src/core/agent/tool-dispatch.d.ts.map +1 -1
  12. package/dist/src/core/agent/tool-dispatch.js +8 -7
  13. package/dist/src/core/agent/tool-dispatch.js.map +1 -1
  14. package/dist/src/core/memory/maintenance-integration.js +1 -1
  15. package/dist/src/core/memory/maintenance-integration.js.map +1 -1
  16. package/dist/src/core/review/diff-domain.d.ts +24 -0
  17. package/dist/src/core/review/diff-domain.d.ts.map +1 -0
  18. package/dist/src/core/review/diff-domain.js +134 -0
  19. package/dist/src/core/review/diff-domain.js.map +1 -0
  20. package/dist/src/core/runtime/agent-loop.d.ts.map +1 -1
  21. package/dist/src/core/runtime/agent-loop.js +1 -0
  22. package/dist/src/core/runtime/agent-loop.js.map +1 -1
  23. package/dist/src/core/runtime/daemon-registry.d.ts +6 -1
  24. package/dist/src/core/runtime/daemon-registry.d.ts.map +1 -1
  25. package/dist/src/core/runtime/daemon-registry.js +32 -5
  26. package/dist/src/core/runtime/daemon-registry.js.map +1 -1
  27. package/dist/src/core/runtime/default-tools.d.ts.map +1 -1
  28. package/dist/src/core/runtime/default-tools.js +11 -9
  29. package/dist/src/core/runtime/default-tools.js.map +1 -1
  30. package/dist/src/core/runtime/runtime-hosts.js +1 -1
  31. package/dist/src/core/runtime/runtime-hosts.js.map +1 -1
  32. package/dist/src/core/runtime/workspaces.d.ts +7 -0
  33. package/dist/src/core/runtime/workspaces.d.ts.map +1 -1
  34. package/dist/src/core/runtime/workspaces.js +31 -2
  35. package/dist/src/core/runtime/workspaces.js.map +1 -1
  36. package/dist/src/core/tools/edit-file.d.ts +4 -0
  37. package/dist/src/core/tools/edit-file.d.ts.map +1 -1
  38. package/dist/src/core/tools/edit-file.js +48 -43
  39. package/dist/src/core/tools/edit-file.js.map +1 -1
  40. package/dist/src/core/tools/list-files.d.ts +4 -0
  41. package/dist/src/core/tools/list-files.d.ts.map +1 -1
  42. package/dist/src/core/tools/list-files.js +34 -29
  43. package/dist/src/core/tools/list-files.js.map +1 -1
  44. package/dist/src/core/tools/read-file.d.ts +4 -0
  45. package/dist/src/core/tools/read-file.d.ts.map +1 -1
  46. package/dist/src/core/tools/read-file.js +50 -45
  47. package/dist/src/core/tools/read-file.js.map +1 -1
  48. package/dist/src/core/tools/run-shell.d.ts +2 -0
  49. package/dist/src/core/tools/run-shell.d.ts.map +1 -1
  50. package/dist/src/core/tools/run-shell.js +3 -0
  51. package/dist/src/core/tools/run-shell.js.map +1 -1
  52. package/dist/src/core/tools/search-files.d.ts +1 -0
  53. package/dist/src/core/tools/search-files.d.ts.map +1 -1
  54. package/dist/src/core/tools/search-files.js +4 -2
  55. package/dist/src/core/tools/search-files.js.map +1 -1
  56. package/dist/src/core/tools/view-image.d.ts +1 -0
  57. package/dist/src/core/tools/view-image.d.ts.map +1 -1
  58. package/dist/src/core/tools/view-image.js +2 -1
  59. package/dist/src/core/tools/view-image.js.map +1 -1
  60. package/dist/src/server/app.d.ts.map +1 -1
  61. package/dist/src/server/app.js +1 -1
  62. package/dist/src/server/app.js.map +1 -1
  63. package/dist/src/server/features/control-plane/router.d.ts +35 -1
  64. package/dist/src/server/features/control-plane/router.d.ts.map +1 -1
  65. package/dist/src/server/features/control-plane/router.js +51 -2
  66. package/dist/src/server/features/control-plane/router.js.map +1 -1
  67. package/dist/src/server/features/control-plane/services/chat-sessions.d.ts.map +1 -1
  68. package/dist/src/server/features/control-plane/services/chat-sessions.js +68 -0
  69. package/dist/src/server/features/control-plane/services/chat-sessions.js.map +1 -1
  70. package/dist/src/server/features/control-plane/services/control-plane-state.d.ts.map +1 -1
  71. package/dist/src/server/features/control-plane/services/control-plane-state.js +22 -0
  72. package/dist/src/server/features/control-plane/services/control-plane-state.js.map +1 -1
  73. package/dist/src/server/features/control-plane/services/workspace-diff.d.ts +4 -0
  74. package/dist/src/server/features/control-plane/services/workspace-diff.d.ts.map +1 -0
  75. package/dist/src/server/features/control-plane/services/workspace-diff.js +258 -0
  76. package/dist/src/server/features/control-plane/services/workspace-diff.js.map +1 -0
  77. package/dist/src/server/features/control-plane/services/workspace-files.d.ts +18 -0
  78. package/dist/src/server/features/control-plane/services/workspace-files.d.ts.map +1 -1
  79. package/dist/src/server/features/control-plane/services/workspace-files.js +68 -2
  80. package/dist/src/server/features/control-plane/services/workspace-files.js.map +1 -1
  81. package/dist/src/server/features/control-plane/types.d.ts +36 -0
  82. package/dist/src/server/features/control-plane/types.d.ts.map +1 -1
  83. package/dist/src/server/index.d.ts.map +1 -1
  84. package/dist/src/server/index.js +1 -0
  85. package/dist/src/server/index.js.map +1 -1
  86. package/dist/src/server/router.d.ts +33 -0
  87. package/dist/src/server/router.d.ts.map +1 -1
  88. package/dist/src/web/assets/index-CAWhKnGd.css +2 -0
  89. package/dist/src/web/assets/index-D35_IzEn.js +55 -0
  90. package/dist/src/web/index.html +2 -2
  91. package/package.json +11 -1
  92. package/dist/src/web/assets/index-BCCIDJRN.js +0 -52
  93. package/dist/src/web/assets/index-DarVaee6.css +0 -2
@@ -1,6 +1,10 @@
1
1
  import type { ToolDefinition } from '../types.js';
2
2
  export type { ScopedEditInput as EditFileInput, EditPreview as EditFilePreview } from './file-edit-core.js';
3
3
  import type { EditPreview } from './file-edit-core.js';
4
+ export type EditFileToolOptions = {
5
+ workspaceRoot?: string;
6
+ };
7
+ export declare function createEditFileTool(options?: EditFileToolOptions): ToolDefinition;
4
8
  export declare const editFileTool: ToolDefinition;
5
9
  export declare function previewEditFileInput(raw: unknown, workspaceRoot?: string): Promise<EditPreview | undefined>;
6
10
  //# sourceMappingURL=edit-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit-file.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/edit-file.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAO9D,YAAY,EAAE,eAAe,IAAI,aAAa,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC5G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,eAAO,MAAM,YAAY,EAAE,cA6C1B,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,GAAE,MAAsB,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAWhI"}
1
+ {"version":3,"file":"edit-file.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/edit-file.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAO9D,YAAY,EAAE,eAAe,IAAI,aAAa,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC5G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,cAAc,CAkDpF;AAED,eAAO,MAAM,YAAY,EAAE,cAAqC,CAAC;AAEjE,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,GAAE,MAAsB,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAWhI"}
@@ -3,51 +3,56 @@
3
3
  // ---------------------------------------------------------------------------
4
4
  import { resolve } from 'node:path';
5
5
  import { executeScopedEdit, isScopedEditInput, previewScopedEdit, } from './file-edit-core.js';
6
- export const editFileTool = {
7
- name: 'edit_file',
8
- description: 'Edit a file directly without going through shell redirection or heredocs. Prefer this over shell commands when you need to create or change file contents. Use { "path", "oldText", "newText" } for an exact replacement, optionally with replaceAll, or use { "path", "content", "createIfMissing" } to overwrite an existing file or create a new one explicitly. Relative paths are resolved from the current working directory and may also point to nearby parent or sibling folders. Writes may require approval depending on runtime policy, and the tool returns a structured edit summary.',
9
- requiresApproval: true,
10
- parameters: {
11
- type: 'object',
12
- additionalProperties: false,
13
- properties: {
14
- path: {
15
- type: 'string',
16
- description: 'Workspace-relative path to the file to edit',
17
- },
18
- oldText: {
19
- type: 'string',
20
- description: 'Existing text to replace exactly',
21
- },
22
- newText: {
23
- type: 'string',
24
- description: 'Replacement text for oldText',
25
- },
26
- replaceAll: {
27
- type: 'boolean',
28
- description: 'Replace every matching occurrence instead of requiring a single exact match',
29
- },
30
- content: {
31
- type: 'string',
32
- description: 'Full file content to write',
33
- },
34
- createIfMissing: {
35
- type: 'boolean',
36
- description: 'Allow creating the file if it does not already exist when using content',
6
+ export function createEditFileTool(options = {}) {
7
+ const configuredWorkspaceRoot = options.workspaceRoot ? resolve(options.workspaceRoot) : undefined;
8
+ return {
9
+ name: 'edit_file',
10
+ description: 'Edit a file directly without going through shell redirection or heredocs. Prefer this over shell commands when you need to create or change file contents. Use { "path", "oldText", "newText" } for an exact replacement, optionally with replaceAll, or use { "path", "content", "createIfMissing" } to overwrite an existing file or create a new one explicitly. Relative paths are resolved from the active workspace root and may also point to nearby parent or sibling folders. Writes may require approval depending on runtime policy, and the tool returns a structured edit summary.',
11
+ requiresApproval: true,
12
+ parameters: {
13
+ type: 'object',
14
+ additionalProperties: false,
15
+ properties: {
16
+ path: {
17
+ type: 'string',
18
+ description: 'Workspace-relative path to the file to edit',
19
+ },
20
+ oldText: {
21
+ type: 'string',
22
+ description: 'Existing text to replace exactly',
23
+ },
24
+ newText: {
25
+ type: 'string',
26
+ description: 'Replacement text for oldText',
27
+ },
28
+ replaceAll: {
29
+ type: 'boolean',
30
+ description: 'Replace every matching occurrence instead of requiring a single exact match',
31
+ },
32
+ content: {
33
+ type: 'string',
34
+ description: 'Full file content to write',
35
+ },
36
+ createIfMissing: {
37
+ type: 'boolean',
38
+ description: 'Allow creating the file if it does not already exist when using content',
39
+ },
37
40
  },
41
+ required: ['path'],
42
+ },
43
+ async execute(raw) {
44
+ const workspaceRoot = configuredWorkspaceRoot ?? process.cwd();
45
+ return executeScopedEdit(raw, {
46
+ toolName: 'edit_file',
47
+ rootPath: workspaceRoot,
48
+ rootLabel: 'active workspace root',
49
+ subjectLabel: 'file',
50
+ creationHint: 'Set createIfMissing to true if you want edit_file to create it.',
51
+ });
38
52
  },
39
- required: ['path'],
40
- },
41
- async execute(raw) {
42
- return executeScopedEdit(raw, {
43
- toolName: 'edit_file',
44
- rootPath: process.cwd(),
45
- rootLabel: 'current workspace root',
46
- subjectLabel: 'file',
47
- creationHint: 'Set createIfMissing to true if you want edit_file to create it.',
48
- });
49
- },
50
- };
53
+ };
54
+ }
55
+ export const editFileTool = createEditFileTool();
51
56
  export async function previewEditFileInput(raw, workspaceRoot = process.cwd()) {
52
57
  if (!isScopedEditInput(raw)) {
53
58
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"edit-file.js","sourceRoot":"","sources":["../../../../src/core/tools/edit-file.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAK7B,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,IAAI,EAAE,WAAW;IACjB,WAAW,EACT,qkBAAqkB;IACvkB,gBAAgB,EAAE,IAAI;IACtB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6CAA6C;aAC3D;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kCAAkC;aAChD;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;aAC5C;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,6EAA6E;aAC3F;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4BAA4B;aAC1C;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,yEAAyE;aACvF;SACF;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;IACD,KAAK,CAAC,OAAO,CAAC,GAAY;QACxB,OAAO,iBAAiB,CAAC,GAAG,EAAE;YAC5B,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;YACvB,SAAS,EAAE,wBAAwB;YACnC,YAAY,EAAE,MAAM;YACpB,YAAY,EAAE,iEAAiE;SAChF,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAY,EAAE,gBAAwB,OAAO,CAAC,GAAG,EAAE;IAC5F,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,iBAAiB,CAAC,GAAG,EAAE;QAC5B,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC;QAChC,SAAS,EAAE,wBAAwB;QACnC,YAAY,EAAE,MAAM;KACrB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"edit-file.js","sourceRoot":"","sources":["../../../../src/core/tools/edit-file.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAS7B,MAAM,UAAU,kBAAkB,CAAC,UAA+B,EAAE;IAClE,MAAM,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnG,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,ikBAAikB;QACnkB,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6CAA6C;iBAC3D;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;iBAChD;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8BAA8B;iBAC5C;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,6EAA6E;iBAC3F;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4BAA4B;iBAC1C;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yEAAyE;iBACvF;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,KAAK,CAAC,OAAO,CAAC,GAAY;YACxB,MAAM,aAAa,GAAG,uBAAuB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/D,OAAO,iBAAiB,CAAC,GAAG,EAAE;gBAC5B,QAAQ,EAAE,WAAW;gBACrB,QAAQ,EAAE,aAAa;gBACvB,SAAS,EAAE,uBAAuB;gBAClC,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,iEAAiE;aAChF,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAmB,kBAAkB,EAAE,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAY,EAAE,gBAAwB,OAAO,CAAC,GAAG,EAAE;IAC5F,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,iBAAiB,CAAC,GAAG,EAAE;QAC5B,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC;QAChC,SAAS,EAAE,wBAAwB;QACnC,YAAY,EAAE,MAAM;KACrB,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +1,7 @@
1
1
  import type { ToolDefinition } from '../types.js';
2
+ export type ListFilesToolOptions = {
3
+ workspaceRoot?: string;
4
+ };
5
+ export declare function createListFilesTool(options?: ListFilesToolOptions): ToolDefinition;
2
6
  export declare const listFilesTool: ToolDefinition;
3
7
  //# sourceMappingURL=list-files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-files.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/list-files.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAM9D,eAAO,MAAM,aAAa,EAAE,cAiC3B,CAAC"}
1
+ {"version":3,"file":"list-files.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/list-files.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAM9D,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAsCtF;AAED,eAAO,MAAM,aAAa,EAAE,cAAsC,CAAC"}
@@ -3,38 +3,43 @@
3
3
  // ---------------------------------------------------------------------------
4
4
  import { readdir } from 'node:fs/promises';
5
5
  import { resolve } from 'node:path';
6
- export const listFilesTool = {
7
- name: 'list_files',
8
- description: 'List files and directories inside a directory path. Use this to inspect folders, not to read file contents. Prefer this when you need an initial view of the workspace or want to explore an obvious nearby folder before using broader search. Relative paths are resolved from the current working directory and may also point to nearby parent or sibling folders, such as "..". Defaults to the current working directory. Returns a flat newline-separated list of entry names; directories end with /. Example inputs: { "path": "." }, { "path": ".." }',
9
- parameters: {
10
- type: 'object',
11
- additionalProperties: false,
12
- properties: {
13
- path: {
14
- type: 'string',
15
- description: 'Directory path to list. Defaults to "."',
6
+ export function createListFilesTool(options = {}) {
7
+ const configuredWorkspaceRoot = options.workspaceRoot ? resolve(options.workspaceRoot) : undefined;
8
+ return {
9
+ name: 'list_files',
10
+ description: 'List files and directories inside a directory path. Use this to inspect folders, not to read file contents. Prefer this when you need an initial view of the workspace or want to explore an obvious nearby folder before using broader search. Relative paths are resolved from the active workspace root and may also point to nearby parent or sibling folders, such as "..". Defaults to the active workspace root. Returns a flat newline-separated list of entry names; directories end with /. Example inputs: { "path": "." }, { "path": ".." }',
11
+ parameters: {
12
+ type: 'object',
13
+ additionalProperties: false,
14
+ properties: {
15
+ path: {
16
+ type: 'string',
17
+ description: 'Directory path to list. Defaults to "."',
18
+ },
16
19
  },
17
20
  },
18
- },
19
- async execute(raw) {
20
- if (!isListFilesInput(raw)) {
21
- return { ok: false, error: 'Invalid input for list_files. Allowed fields: path. Example: { "path": "." }' };
22
- }
23
- const input = raw;
24
- const dir = resolve(input.path ?? '.');
25
- try {
26
- const entries = await readdir(dir, { withFileTypes: true });
27
- const names = entries.map((e) => (e.isDirectory() ? `${e.name}/` : e.name));
28
- return { ok: true, output: names.join('\n') };
29
- }
30
- catch (err) {
31
- if (err instanceof Error && 'code' in err && err.code === 'ENOTDIR') {
32
- return { ok: false, error: `Failed to list ${dir}: path is a file, not a directory. Use read_file for file contents.` };
21
+ async execute(raw) {
22
+ if (!isListFilesInput(raw)) {
23
+ return { ok: false, error: 'Invalid input for list_files. Allowed fields: path. Example: { "path": "." }' };
33
24
  }
34
- return { ok: false, error: `Failed to list ${dir}: ${err instanceof Error ? err.message : String(err)}` };
35
- }
36
- },
37
- };
25
+ const input = raw;
26
+ const workspaceRoot = configuredWorkspaceRoot ?? process.cwd();
27
+ const dir = resolve(workspaceRoot, input.path ?? '.');
28
+ try {
29
+ const entries = await readdir(dir, { withFileTypes: true });
30
+ const names = entries.map((e) => (e.isDirectory() ? `${e.name}/` : e.name));
31
+ return { ok: true, output: names.join('\n') };
32
+ }
33
+ catch (err) {
34
+ if (err instanceof Error && 'code' in err && err.code === 'ENOTDIR') {
35
+ return { ok: false, error: `Failed to list ${dir}: path is a file, not a directory. Use read_file for file contents.` };
36
+ }
37
+ return { ok: false, error: `Failed to list ${dir}: ${err instanceof Error ? err.message : String(err)}` };
38
+ }
39
+ },
40
+ };
41
+ }
42
+ export const listFilesTool = createListFilesTool();
38
43
  function isListFilesInput(raw) {
39
44
  if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
40
45
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"list-files.js","sourceRoot":"","sources":["../../../../src/core/tools/list-files.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,IAAI,EAAE,YAAY;IAClB,WAAW,EACT,iiBAAiiB;IACniB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yCAAyC;aACvD;SACF;KACF;IACD,KAAK,CAAC,OAAO,CAAC,GAAY;QACxB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8EAA8E,EAAE,CAAC;QAC9G,CAAC;QAED,MAAM,KAAK,GAAmB,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;QAEvC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,GAAG,qEAAqE,EAAE,CAAC;YAC1H,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,GAAG,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QAC5G,CAAC;IACH,CAAC;CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,GAA8B,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"list-files.js","sourceRoot":"","sources":["../../../../src/core/tools/list-files.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,MAAM,UAAU,mBAAmB,CAAC,UAAgC,EAAE;IACpE,MAAM,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnG,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,yhBAAyhB;QAC3hB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yCAAyC;iBACvD;aACF;SACF;QACD,KAAK,CAAC,OAAO,CAAC,GAAY;YACxB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8EAA8E,EAAE,CAAC;YAC9G,CAAC;YAED,MAAM,KAAK,GAAmB,GAAG,CAAC;YAClC,MAAM,aAAa,GAAG,uBAAuB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;YAEtD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACpE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,GAAG,qEAAqE,EAAE,CAAC;gBAC1H,CAAC;gBACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,GAAG,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAC5G,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAmB,mBAAmB,EAAE,CAAC;AAEnE,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,GAA8B,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AACpE,CAAC"}
@@ -1,3 +1,7 @@
1
1
  import type { ToolDefinition } from '../types.js';
2
+ export type ReadFileToolOptions = {
3
+ workspaceRoot?: string;
4
+ };
5
+ export declare function createReadFileTool(options?: ReadFileToolOptions): ToolDefinition;
2
6
  export declare const readFileTool: ToolDefinition;
3
7
  //# sourceMappingURL=read-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/read-file.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAQ9D,eAAO,MAAM,YAAY,EAAE,cAuD1B,CAAC"}
1
+ {"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/read-file.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAQ9D,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,cAAc,CA4DpF;AAED,eAAO,MAAM,YAAY,EAAE,cAAqC,CAAC"}
@@ -3,57 +3,62 @@
3
3
  // ---------------------------------------------------------------------------
4
4
  import { readFile } from 'node:fs/promises';
5
5
  import { resolve } from 'node:path';
6
- export const readFileTool = {
7
- name: 'read_file',
8
- description: 'Read the contents of a file. Use this when you already know the file path and want its contents, not when you want to inspect a directory. Relative paths are resolved from the current working directory and may also point to nearby parent or sibling folders. Optionally limit returned lines with maxLines and start from a 0-based line offset with offset, which is useful for paging through long files. Returns the file text directly, or just the selected window when maxLines and/or offset are provided. Example inputs: { "path": "path/to/file.txt" }, { "path": "../shared-notes/summary.md" }, { "path": "src/run-agent.ts", "offset": 200, "maxLines": 120 }',
9
- parameters: {
10
- type: 'object',
11
- additionalProperties: false,
12
- properties: {
13
- path: {
14
- type: 'string',
15
- description: 'Path to the file to read',
16
- },
17
- maxLines: {
18
- type: 'number',
19
- description: 'Maximum number of lines to return',
20
- },
21
- offset: {
22
- type: 'number',
23
- description: '0-based line offset to start reading from',
6
+ export function createReadFileTool(options = {}) {
7
+ const configuredWorkspaceRoot = options.workspaceRoot ? resolve(options.workspaceRoot) : undefined;
8
+ return {
9
+ name: 'read_file',
10
+ description: 'Read the contents of a file. Use this when you already know the file path and want its contents, not when you want to inspect a directory. Relative paths are resolved from the active workspace root and may also point to nearby parent or sibling folders. Optionally limit returned lines with maxLines and start from a 0-based line offset with offset, which is useful for paging through long files. Returns the file text directly, or just the selected window when maxLines and/or offset are provided. Example inputs: { "path": "path/to/file.txt" }, { "path": "../shared-notes/summary.md" }, { "path": "src/run-agent.ts", "offset": 200, "maxLines": 120 }',
11
+ parameters: {
12
+ type: 'object',
13
+ additionalProperties: false,
14
+ properties: {
15
+ path: {
16
+ type: 'string',
17
+ description: 'Path to the file to read',
18
+ },
19
+ maxLines: {
20
+ type: 'number',
21
+ description: 'Maximum number of lines to return',
22
+ },
23
+ offset: {
24
+ type: 'number',
25
+ description: '0-based line offset to start reading from',
26
+ },
24
27
  },
28
+ required: ['path'],
25
29
  },
26
- required: ['path'],
27
- },
28
- async execute(raw) {
29
- if (!isReadFileInput(raw)) {
30
- return { ok: false, error: 'Invalid input for read_file. Required field: path. Optional fields: maxLines, offset.' };
31
- }
32
- const input = raw;
33
- const filePath = resolve(input.path);
34
- try {
35
- const content = await readFile(filePath, 'utf-8');
36
- const lines = content.split('\n');
37
- const start = input.offset && input.offset > 0 ? Math.floor(input.offset) : 0;
38
- if ((input.maxLines && input.maxLines > 0) || start > 0) {
39
- const end = input.maxLines && input.maxLines > 0 ? start + Math.floor(input.maxLines) : undefined;
40
- const windowedLines = lines.slice(start, end);
41
- const joined = windowedLines.join('\n');
42
- if (content.endsWith('\n') && windowedLines.length > 0 && end !== undefined && end < lines.length) {
30
+ async execute(raw) {
31
+ if (!isReadFileInput(raw)) {
32
+ return { ok: false, error: 'Invalid input for read_file. Required field: path. Optional fields: maxLines, offset.' };
33
+ }
34
+ const input = raw;
35
+ const workspaceRoot = configuredWorkspaceRoot ?? process.cwd();
36
+ const filePath = resolve(workspaceRoot, input.path);
37
+ try {
38
+ const content = await readFile(filePath, 'utf-8');
39
+ const lines = content.split('\n');
40
+ const start = input.offset && input.offset > 0 ? Math.floor(input.offset) : 0;
41
+ if ((input.maxLines && input.maxLines > 0) || start > 0) {
42
+ const end = input.maxLines && input.maxLines > 0 ? start + Math.floor(input.maxLines) : undefined;
43
+ const windowedLines = lines.slice(start, end);
44
+ const joined = windowedLines.join('\n');
45
+ if (content.endsWith('\n') && windowedLines.length > 0 && end !== undefined && end < lines.length) {
46
+ return { ok: true, output: joined };
47
+ }
43
48
  return { ok: true, output: joined };
44
49
  }
45
- return { ok: true, output: joined };
50
+ return { ok: true, output: content };
46
51
  }
47
- return { ok: true, output: content };
48
- }
49
- catch (err) {
50
- if (err instanceof Error && 'code' in err && err.code === 'EISDIR') {
51
- return { ok: false, error: `Failed to read ${filePath}: path is a directory, not a file. Use list_files to inspect directories.` };
52
+ catch (err) {
53
+ if (err instanceof Error && 'code' in err && err.code === 'EISDIR') {
54
+ return { ok: false, error: `Failed to read ${filePath}: path is a directory, not a file. Use list_files to inspect directories.` };
55
+ }
56
+ return { ok: false, error: `Failed to read ${filePath}: ${err instanceof Error ? err.message : String(err)}` };
52
57
  }
53
- return { ok: false, error: `Failed to read ${filePath}: ${err instanceof Error ? err.message : String(err)}` };
54
- }
55
- },
56
- };
58
+ },
59
+ };
60
+ }
61
+ export const readFileTool = createReadFileTool();
57
62
  function isReadFileInput(raw) {
58
63
  if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
59
64
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../../../src/core/tools/read-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../../../src/core/tools/read-file.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ type RunShellRule = {
19
19
  };
20
20
  export type RunShellOptions = {
21
21
  rules?: RunShellRule[];
22
+ cwd?: string;
22
23
  };
23
24
  export declare const DEFAULT_INSPECT_RULES: RunShellRule[];
24
25
  export declare const DEFAULT_MUTATE_RULES: RunShellRule[];
@@ -29,6 +30,7 @@ export declare function runShellCommand(raw: unknown, options: {
29
30
  toolName: string;
30
31
  rules: RunShellRule[];
31
32
  allowUnknown: boolean;
33
+ cwd?: string;
32
34
  }, signal?: AbortSignal): Promise<ToolResult>;
33
35
  export declare function classifyShellCommandPolicy(command: string, options: {
34
36
  toolName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"run-shell.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/run-shell.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AACxD,MAAM,MAAM,kBAAkB,GAC1B,mBAAmB,GACnB,iBAAiB,GACjB,kBAAkB,GAClB,uBAAuB,GACvB,wBAAwB,GACxB,gBAAgB,GAChB,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,gBAAgB,GAChB,aAAa,GACb,gBAAgB,GAChB,mBAAmB,CAAC;AAExB,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAUF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,YAAY,EA+B/C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAAY,EAwB9C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,eAAoB,GAAG,cAAc,CAcvF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,eAAoB,GAAG,cAAc,CAetF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,eAAoB,GAAG,cAAc,CAEhF;AAgBD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB,EACD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CA+JrB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB,GACA,sBAAsB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA+B5C"}
1
+ {"version":3,"file":"run-shell.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/run-shell.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AACxD,MAAM,MAAM,kBAAkB,GAC1B,mBAAmB,GACnB,iBAAiB,GACjB,kBAAkB,GAClB,uBAAuB,GACvB,wBAAwB,GACxB,gBAAgB,GAChB,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,gBAAgB,GAChB,aAAa,GACb,gBAAgB,GAChB,mBAAmB,CAAC;AAExB,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAUF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,YAAY,EA+B/C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAAY,EAwB9C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,eAAoB,GAAG,cAAc,CAevF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,eAAoB,GAAG,cAAc,CAgBtF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,eAAoB,GAAG,cAAc,CAEhF;AAgBD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,EACD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAgKrB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB,GACA,sBAAsB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA+B5C"}
@@ -70,6 +70,7 @@ export function createRunShellInspectTool(options = {}) {
70
70
  toolName: 'run_shell_inspect',
71
71
  rules,
72
72
  allowUnknown: false,
73
+ cwd: options.cwd,
73
74
  }),
74
75
  };
75
76
  }
@@ -84,6 +85,7 @@ export function createRunShellMutateTool(options = {}) {
84
85
  toolName: 'run_shell_mutate',
85
86
  rules,
86
87
  allowUnknown: true,
88
+ cwd: options.cwd,
87
89
  }),
88
90
  };
89
91
  }
@@ -147,6 +149,7 @@ export function runShellCommand(raw, options, signal) {
147
149
  let timedOut = false;
148
150
  let aborted = false;
149
151
  const child = spawn(cmd, {
152
+ cwd: options.cwd,
150
153
  shell: true,
151
154
  stdio: ['ignore', 'pipe', 'pipe'],
152
155
  });
@@ -1 +1 @@
1
- {"version":3,"file":"run-shell.js","sourceRoot":"","sources":["../../../../src/core/tools/run-shell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-shell.js","sourceRoot":"","sources":["../../../../src/core/tools/run-shell.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { ToolDefinition } from '../types.js';
2
2
  export declare const DEFAULT_SEARCH_EXCLUDED_DIRS: string[];
3
3
  export type SearchFilesOptions = {
4
4
  excludedDirs?: string[];
5
+ workspaceRoot?: string;
5
6
  };
6
7
  export declare function createSearchFilesTool(options?: SearchFilesOptions): ToolDefinition;
7
8
  export declare const searchFilesTool: ToolDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"search-files.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/search-files.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAO9D,eAAO,MAAM,4BAA4B,UAAuD,CAAC;AAEjG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,kBAAuB,GAAG,cAAc,CA+CtF;AAED,eAAO,MAAM,eAAe,EAAE,cAAwC,CAAC"}
1
+ {"version":3,"file":"search-files.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/search-files.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAO9D,eAAO,MAAM,4BAA4B,UAAuD,CAAC;AAEjG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,kBAAuB,GAAG,cAAc,CAiDtF;AAED,eAAO,MAAM,eAAe,EAAE,cAAwC,CAAC"}
@@ -7,9 +7,10 @@ import { resolve } from 'node:path';
7
7
  export const DEFAULT_SEARCH_EXCLUDED_DIRS = ['.git', 'dist', 'node_modules', 'local', '.heddle'];
8
8
  export function createSearchFilesTool(options = {}) {
9
9
  const excludedDirNames = sanitizeExcludedDirs(options.excludedDirs);
10
+ const configuredWorkspaceRoot = options.workspaceRoot ? resolve(options.workspaceRoot) : undefined;
10
11
  return {
11
12
  name: 'search_files',
12
- description: 'Search for a text pattern in files using grep. Use this when you need to locate a specific symbol or text string, not when a likely folder or file is already obvious from the workspace structure. Prefer searching for concrete terms such as tool names, symbols, or filenames rather than copying broad question text. Relative paths are resolved from the current working directory and may also point to nearby parent or sibling folders. Returns newline-separated matches in grep-style path:line:content format, or "No matches found.". Ignores generated or state directories like .git, dist, node_modules, local, and .heddle by default, but if you explicitly target one of those directories via path then that path is searched. Example inputs: { "query": "createUser" }, { "query": "incident", "path": "../shared-notes" }',
13
+ description: 'Search for a text pattern in files using grep. Use this when you need to locate a specific symbol or text string, not when a likely folder or file is already obvious from the workspace structure. Prefer searching for concrete terms such as tool names, symbols, or filenames rather than copying broad question text. Relative paths are resolved from the active workspace root and may also point to nearby parent or sibling folders. Returns newline-separated matches in grep-style path:line:content format, or "No matches found.". Ignores generated or state directories like .git, dist, node_modules, local, and .heddle by default, but if you explicitly target one of those directories via path then that path is searched. Example inputs: { "query": "createUser" }, { "query": "incident", "path": "../shared-notes" }',
13
14
  parameters: {
14
15
  type: 'object',
15
16
  additionalProperties: false,
@@ -30,7 +31,8 @@ export function createSearchFilesTool(options = {}) {
30
31
  return { ok: false, error: 'Invalid input for search_files. Required field: query. Optional field: path.' };
31
32
  }
32
33
  const input = raw;
33
- const dir = resolve(input.path ?? '.');
34
+ const workspaceRoot = configuredWorkspaceRoot ?? process.cwd();
35
+ const dir = resolve(workspaceRoot, input.path ?? '.');
34
36
  const effectiveExcludedDirs = excludedDirNames.filter((name) => !isExplicitlyTargetingExcludedDir(dir, name));
35
37
  const excludedDirs = effectiveExcludedDirs.map((name) => `--exclude-dir=${escapeShellArg(name)}`).join(' ');
36
38
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"search-files.js","sourceRoot":"","sources":["../../../../src/core/tools/search-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-files.js","sourceRoot":"","sources":["../../../../src/core/tools/search-files.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export type ViewImageToolOptions = {
4
4
  model?: string;
5
5
  provider?: LlmProvider;
6
6
  apiKey?: string;
7
+ workspaceRoot?: string;
7
8
  };
8
9
  export declare const viewImageTool: ToolDefinition;
9
10
  export declare function createViewImageTool(options?: ViewImageToolOptions): ToolDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"view-image.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/view-image.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAQnD,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAKF,eAAO,MAAM,aAAa,EAAE,cAAsC,CAAC;AAEnE,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CA+DtF"}
1
+ {"version":3,"file":"view-image.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/view-image.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAQnD,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAKF,eAAO,MAAM,aAAa,EAAE,cAAsC,CAAC;AAEnE,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAgEtF"}
@@ -37,7 +37,8 @@ export function createViewImageTool(options = {}) {
37
37
  };
38
38
  }
39
39
  const input = raw;
40
- const filePath = resolve(input.path);
40
+ const workspaceRoot = options.workspaceRoot ?? process.cwd();
41
+ const filePath = resolve(workspaceRoot, input.path);
41
42
  const mediaType = detectMediaType(filePath);
42
43
  if (!mediaType) {
43
44
  return {