oroute-cli 0.1.0 → 0.2.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.
Files changed (72) hide show
  1. package/bin/oroute.cjs +2 -0
  2. package/dist/oroute.cjs +244526 -0
  3. package/package.json +27 -6
  4. package/dist/agent.d.ts +0 -11
  5. package/dist/agent.js +0 -569
  6. package/dist/agent.js.map +0 -1
  7. package/dist/commands.d.ts +0 -24
  8. package/dist/commands.js +0 -173
  9. package/dist/commands.js.map +0 -1
  10. package/dist/context.d.ts +0 -13
  11. package/dist/context.js +0 -110
  12. package/dist/context.js.map +0 -1
  13. package/dist/cost.d.ts +0 -18
  14. package/dist/cost.js +0 -80
  15. package/dist/cost.js.map +0 -1
  16. package/dist/history.d.ts +0 -20
  17. package/dist/history.js +0 -49
  18. package/dist/history.js.map +0 -1
  19. package/dist/hooks.d.ts +0 -13
  20. package/dist/hooks.js +0 -101
  21. package/dist/hooks.js.map +0 -1
  22. package/dist/index.d.ts +0 -2
  23. package/dist/index.js +0 -475
  24. package/dist/index.js.map +0 -1
  25. package/dist/markdown.d.ts +0 -4
  26. package/dist/markdown.js +0 -126
  27. package/dist/markdown.js.map +0 -1
  28. package/dist/memory.d.ts +0 -27
  29. package/dist/memory.js +0 -208
  30. package/dist/memory.js.map +0 -1
  31. package/dist/session.d.ts +0 -43
  32. package/dist/session.js +0 -166
  33. package/dist/session.js.map +0 -1
  34. package/dist/streaming.d.ts +0 -27
  35. package/dist/streaming.js +0 -201
  36. package/dist/streaming.js.map +0 -1
  37. package/dist/tools/editFile.d.ts +0 -34
  38. package/dist/tools/editFile.js +0 -40
  39. package/dist/tools/editFile.js.map +0 -1
  40. package/dist/tools/executeCommand.d.ts +0 -32
  41. package/dist/tools/executeCommand.js +0 -75
  42. package/dist/tools/executeCommand.js.map +0 -1
  43. package/dist/tools/glob.d.ts +0 -24
  44. package/dist/tools/glob.js +0 -128
  45. package/dist/tools/glob.js.map +0 -1
  46. package/dist/tools/index.d.ts +0 -40
  47. package/dist/tools/index.js +0 -28
  48. package/dist/tools/index.js.map +0 -1
  49. package/dist/tools/listDirectory.d.ts +0 -23
  50. package/dist/tools/listDirectory.js +0 -57
  51. package/dist/tools/listDirectory.js.map +0 -1
  52. package/dist/tools/notebook.d.ts +0 -7
  53. package/dist/tools/notebook.js +0 -76
  54. package/dist/tools/notebook.js.map +0 -1
  55. package/dist/tools/readFile.d.ts +0 -28
  56. package/dist/tools/readFile.js +0 -40
  57. package/dist/tools/readFile.js.map +0 -1
  58. package/dist/tools/readImage.d.ts +0 -25
  59. package/dist/tools/readImage.js +0 -52
  60. package/dist/tools/readImage.js.map +0 -1
  61. package/dist/tools/searchFiles.d.ts +0 -33
  62. package/dist/tools/searchFiles.js +0 -95
  63. package/dist/tools/searchFiles.js.map +0 -1
  64. package/dist/tools/writeFile.d.ts +0 -30
  65. package/dist/tools/writeFile.js +0 -54
  66. package/dist/tools/writeFile.js.map +0 -1
  67. package/dist/ui.d.ts +0 -30
  68. package/dist/ui.js +0 -79
  69. package/dist/ui.js.map +0 -1
  70. package/dist/update.d.ts +0 -10
  71. package/dist/update.js +0 -93
  72. package/dist/update.js.map +0 -1
package/dist/streaming.js DELETED
@@ -1,201 +0,0 @@
1
- /** Parse an SSE stream from a fetch Response into structured result */
2
- export async function parseSSEStream(response, onTextDelta) {
3
- const contentBlocks = [];
4
- let stopReason = null;
5
- let usage = { input_tokens: 0, output_tokens: 0 };
6
- let model = '';
7
- let routingMetadata;
8
- let currentBlockIndex = -1;
9
- const body = response.body;
10
- if (!body) {
11
- throw new Error('Response body is null');
12
- }
13
- const reader = body.getReader();
14
- const decoder = new TextDecoder();
15
- let buffer = '';
16
- try {
17
- while (true) {
18
- const { done, value } = await reader.read();
19
- if (done)
20
- break;
21
- buffer += decoder.decode(value, { stream: true });
22
- // Parse SSE events from buffer
23
- const events = extractSSEEvents(buffer);
24
- buffer = events.remaining;
25
- for (const evt of events.parsed) {
26
- processSSEEvent(evt, contentBlocks, onTextDelta, {
27
- setStopReason: (r) => { stopReason = r; },
28
- setUsage: (u) => { usage = u; },
29
- setModel: (m) => { model = m; },
30
- setRoutingMetadata: (rm) => { routingMetadata = rm; },
31
- setCurrentBlockIndex: (i) => { currentBlockIndex = i; },
32
- getCurrentBlockIndex: () => currentBlockIndex,
33
- });
34
- }
35
- }
36
- }
37
- finally {
38
- reader.releaseLock();
39
- }
40
- // Finalize tool_use blocks — parse accumulated JSON
41
- for (const block of contentBlocks) {
42
- if (block.type === 'tool_use' && block.inputJson) {
43
- try {
44
- block.input = JSON.parse(block.inputJson);
45
- }
46
- catch {
47
- block.input = {};
48
- }
49
- }
50
- }
51
- return { contentBlocks, stopReason, usage, model, routingMetadata };
52
- }
53
- function processSSEEvent(evt, contentBlocks, onTextDelta, cb) {
54
- if (evt.event === 'ping' || !evt.data)
55
- return;
56
- let data;
57
- try {
58
- data = JSON.parse(evt.data);
59
- }
60
- catch {
61
- return;
62
- }
63
- switch (evt.event) {
64
- case 'message_start': {
65
- const message = data['message'];
66
- if (message) {
67
- if (message['model'])
68
- cb.setModel(message['model']);
69
- if (message['usage']) {
70
- const u = message['usage'];
71
- cb.setUsage({ input_tokens: u['input_tokens'] ?? 0, output_tokens: u['output_tokens'] ?? 0 });
72
- }
73
- if (message['routing_metadata']) {
74
- cb.setRoutingMetadata(message['routing_metadata']);
75
- }
76
- }
77
- break;
78
- }
79
- case 'content_block_start': {
80
- const index = data['index'];
81
- const contentBlock = data['content_block'];
82
- cb.setCurrentBlockIndex(index);
83
- if (contentBlock['type'] === 'text') {
84
- contentBlocks[index] = { type: 'text', text: '' };
85
- }
86
- else if (contentBlock['type'] === 'tool_use') {
87
- contentBlocks[index] = {
88
- type: 'tool_use',
89
- id: contentBlock['id'],
90
- name: contentBlock['name'],
91
- inputJson: '',
92
- };
93
- }
94
- break;
95
- }
96
- case 'content_block_delta': {
97
- const index = data['index'];
98
- const delta = data['delta'];
99
- const block = contentBlocks[index];
100
- if (!block)
101
- break;
102
- if (delta['type'] === 'text_delta') {
103
- const text = delta['text'];
104
- if (block.type === 'text') {
105
- block.text = (block.text ?? '') + text;
106
- }
107
- onTextDelta(text);
108
- }
109
- else if (delta['type'] === 'input_json_delta') {
110
- const partial = delta['partial_json'];
111
- if (block.type === 'tool_use') {
112
- block.inputJson = (block.inputJson ?? '') + partial;
113
- }
114
- }
115
- break;
116
- }
117
- case 'content_block_stop': {
118
- // Block finalized — nothing extra needed
119
- break;
120
- }
121
- case 'message_delta': {
122
- const delta = data['delta'];
123
- if (delta?.['stop_reason']) {
124
- cb.setStopReason(delta['stop_reason']);
125
- }
126
- const msgUsage = data['usage'];
127
- if (msgUsage) {
128
- cb.setUsage({
129
- input_tokens: msgUsage['input_tokens'] ?? 0,
130
- output_tokens: msgUsage['output_tokens'] ?? 0,
131
- });
132
- }
133
- break;
134
- }
135
- case 'message_stop': {
136
- // End of message
137
- break;
138
- }
139
- case 'error': {
140
- const error = data['error'];
141
- const msg = error?.['message'] ?? 'Unknown streaming error';
142
- throw new Error(msg);
143
- }
144
- }
145
- }
146
- /** Extract complete SSE events from buffer, return parsed events + remaining buffer */
147
- function extractSSEEvents(buffer) {
148
- const parsed = [];
149
- const lines = buffer.split('\n');
150
- let currentEvent = '';
151
- let currentData = '';
152
- let i = 0;
153
- while (i < lines.length) {
154
- const line = lines[i];
155
- if (line.startsWith('event: ')) {
156
- currentEvent = line.slice(7).trim();
157
- i++;
158
- }
159
- else if (line.startsWith('data: ')) {
160
- currentData = line.slice(6);
161
- i++;
162
- }
163
- else if (line === '') {
164
- // Empty line = event separator
165
- if (currentEvent || currentData) {
166
- parsed.push({ event: currentEvent || 'message', data: currentData });
167
- currentEvent = '';
168
- currentData = '';
169
- }
170
- i++;
171
- }
172
- else {
173
- // If we're at the last line and it's incomplete, keep it in the buffer
174
- if (i === lines.length - 1 && !buffer.endsWith('\n')) {
175
- break;
176
- }
177
- i++;
178
- }
179
- }
180
- // Remaining unparsed buffer
181
- let remaining = '';
182
- if (i < lines.length) {
183
- remaining = lines.slice(i).join('\n');
184
- }
185
- // If we have partial event/data, put it back
186
- if (currentEvent || currentData) {
187
- const parts = [];
188
- if (currentEvent)
189
- parts.push(`event: ${currentEvent}`);
190
- if (currentData)
191
- parts.push(`data: ${currentData}`);
192
- remaining = parts.join('\n') + (remaining ? '\n' + remaining : '');
193
- }
194
- return { parsed, remaining };
195
- }
196
- /** Check if a Response is SSE (streaming) */
197
- export function isSSEResponse(response) {
198
- const contentType = response.headers.get('content-type') ?? '';
199
- return contentType.includes('text/event-stream');
200
- }
201
- //# sourceMappingURL=streaming.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- export interface EditFileInput {
2
- path: string;
3
- old_str: string;
4
- new_str: string;
5
- }
6
- export interface EditFileOutput {
7
- success: boolean;
8
- replacements: number;
9
- }
10
- export declare function editFileTool(input: EditFileInput, cwd: string): EditFileOutput;
11
- /** Generate edit diff for confirmation */
12
- export declare function generateEditDiff(input: EditFileInput): string;
13
- export declare const editFileDefinition: {
14
- name: string;
15
- description: string;
16
- input_schema: {
17
- type: "object";
18
- properties: {
19
- path: {
20
- type: string;
21
- description: string;
22
- };
23
- old_str: {
24
- type: string;
25
- description: string;
26
- };
27
- new_str: {
28
- type: string;
29
- description: string;
30
- };
31
- };
32
- required: string[];
33
- };
34
- };
@@ -1,40 +0,0 @@
1
- import * as fs from 'node:fs';
2
- import * as path from 'node:path';
3
- export function editFileTool(input, cwd) {
4
- const resolved = path.resolve(cwd, input.path);
5
- if (!fs.existsSync(resolved)) {
6
- throw new Error(`File not found: ${resolved}`);
7
- }
8
- const content = fs.readFileSync(resolved, 'utf-8');
9
- // Count occurrences
10
- const occurrences = content.split(input.old_str).length - 1;
11
- if (occurrences === 0) {
12
- throw new Error(`String not found in file. Make sure old_str matches exactly.`);
13
- }
14
- if (occurrences > 1) {
15
- throw new Error(`Found ${occurrences} occurrences of old_str. It must be unique (exactly 1 match). Provide more context to make it unique.`);
16
- }
17
- const newContent = content.replace(input.old_str, input.new_str);
18
- fs.writeFileSync(resolved, newContent, 'utf-8');
19
- return { success: true, replacements: 1 };
20
- }
21
- /** Generate edit diff for confirmation */
22
- export function generateEditDiff(input) {
23
- const oldLines = input.old_str.split('\n').map(l => `- ${l}`);
24
- const newLines = input.new_str.split('\n').map(l => `+ ${l}`);
25
- return [...oldLines, ...newLines].join('\n');
26
- }
27
- export const editFileDefinition = {
28
- name: 'edit_file',
29
- description: 'Replace a specific string in a file. old_str must appear exactly once in the file. Shows diff before applying.',
30
- input_schema: {
31
- type: 'object',
32
- properties: {
33
- path: { type: 'string', description: 'File path' },
34
- old_str: { type: 'string', description: 'Exact string to find (must be unique in file)' },
35
- new_str: { type: 'string', description: 'Replacement string' },
36
- },
37
- required: ['path', 'old_str', 'new_str'],
38
- },
39
- };
40
- //# sourceMappingURL=editFile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"editFile.js","sourceRoot":"","sources":["../../src/tools/editFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAalC,MAAM,UAAU,YAAY,CAAC,KAAoB,EAAE,GAAW;IAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEnD,oBAAoB;IACpB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE5D,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,SAAS,WAAW,uGAAuG,CAAC,CAAC;IAC/I,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAEhD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,gBAAgB,CAAC,KAAoB;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,gHAAgH;IAC7H,YAAY,EAAE;QACZ,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;YAClD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+CAA+C,EAAE;YACzF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;SAC/D;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;KACzC;CACF,CAAC"}
@@ -1,32 +0,0 @@
1
- export interface ExecuteCommandInput {
2
- command: string;
3
- cwd?: string;
4
- }
5
- export interface ExecuteCommandOutput {
6
- stdout: string;
7
- stderr: string;
8
- exitCode: number;
9
- }
10
- export declare function validateCommand(command: string): {
11
- valid: boolean;
12
- reason?: string;
13
- };
14
- export declare function executeCommandTool(input: ExecuteCommandInput, cwd: string): ExecuteCommandOutput;
15
- export declare const executeCommandDefinition: {
16
- name: string;
17
- description: string;
18
- input_schema: {
19
- type: "object";
20
- properties: {
21
- command: {
22
- type: string;
23
- description: string;
24
- };
25
- cwd: {
26
- type: string;
27
- description: string;
28
- };
29
- };
30
- required: string[];
31
- };
32
- };
@@ -1,75 +0,0 @@
1
- import { execSync } from 'node:child_process';
2
- import * as path from 'node:path';
3
- const WHITELIST_PREFIXES = [
4
- 'npm', 'pnpm', 'npx', 'node', 'python3', 'python',
5
- 'git', 'ls', 'cat', 'echo', 'mkdir', 'cp', 'mv',
6
- 'tsc', 'tsx', 'jest', 'vitest', 'prettier',
7
- 'wc', 'head', 'tail', 'grep', 'find', 'which',
8
- 'date', 'pwd', 'whoami', 'env',
9
- ];
10
- const BLACKLIST_PATTERNS = [
11
- /rm\s+-rf/,
12
- /curl\s+.*\|\s*sh/,
13
- /wget\s+.*\|\s*sh/,
14
- /sudo/,
15
- /chmod\s+777/,
16
- />\s*\/dev\//,
17
- /dd\s+if=/,
18
- /mkfs/,
19
- /:(){ :|:& };:/,
20
- ];
21
- const TIMEOUT_MS = 30_000;
22
- export function validateCommand(command) {
23
- const trimmed = command.trim();
24
- const firstWord = trimmed.split(/\s+/)[0] ?? '';
25
- // Check blacklist first
26
- for (const pattern of BLACKLIST_PATTERNS) {
27
- if (pattern.test(trimmed)) {
28
- return { valid: false, reason: `Blocked pattern: ${pattern.toString()}` };
29
- }
30
- }
31
- // Check whitelist
32
- const isAllowed = WHITELIST_PREFIXES.some(prefix => firstWord === prefix);
33
- if (!isAllowed) {
34
- return { valid: false, reason: `Command not in whitelist: ${firstWord}. Allowed: ${WHITELIST_PREFIXES.join(', ')}` };
35
- }
36
- return { valid: true };
37
- }
38
- export function executeCommandTool(input, cwd) {
39
- const validation = validateCommand(input.command);
40
- if (!validation.valid) {
41
- throw new Error(validation.reason);
42
- }
43
- const execCwd = input.cwd ? path.resolve(cwd, input.cwd) : cwd;
44
- try {
45
- const stdout = execSync(input.command, {
46
- cwd: execCwd,
47
- timeout: TIMEOUT_MS,
48
- encoding: 'utf-8',
49
- maxBuffer: 1024 * 1024 * 5, // 5MB
50
- stdio: ['pipe', 'pipe', 'pipe'],
51
- });
52
- return { stdout: stdout.slice(0, 10000), stderr: '', exitCode: 0 };
53
- }
54
- catch (err) {
55
- const execErr = err;
56
- return {
57
- stdout: (execErr.stdout ?? '').slice(0, 5000),
58
- stderr: (execErr.stderr ?? '').slice(0, 5000),
59
- exitCode: execErr.status ?? 1,
60
- };
61
- }
62
- }
63
- export const executeCommandDefinition = {
64
- name: 'execute_command',
65
- description: 'Execute a shell command. Only whitelisted commands (npm, pnpm, git, node, etc.) are allowed. Timeout: 30 seconds.',
66
- input_schema: {
67
- type: 'object',
68
- properties: {
69
- command: { type: 'string', description: 'Shell command to execute' },
70
- cwd: { type: 'string', description: 'Working directory (relative to current, optional)' },
71
- },
72
- required: ['command'],
73
- },
74
- };
75
- //# sourceMappingURL=executeCommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executeCommand.js","sourceRoot":"","sources":["../../src/tools/executeCommand.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- export interface GlobInput {
2
- pattern: string;
3
- path?: string;
4
- }
5
- /** Execute glob pattern matching against files in a directory */
6
- export declare function globTool(input: GlobInput, cwd: string): string[];
7
- export declare const globDefinition: {
8
- name: string;
9
- description: string;
10
- input_schema: {
11
- type: "object";
12
- properties: {
13
- pattern: {
14
- type: string;
15
- description: string;
16
- };
17
- path: {
18
- type: string;
19
- description: string;
20
- };
21
- };
22
- required: string[];
23
- };
24
- };
@@ -1,128 +0,0 @@
1
- /**
2
- * B2: Glob Tool — find files matching glob patterns.
3
- * Pure Node.js implementation, no external dependencies.
4
- */
5
- import * as fs from 'node:fs';
6
- import * as path from 'node:path';
7
- /** Directories to always exclude from glob traversal */
8
- const EXCLUDED_DIRS = new Set([
9
- 'node_modules', '.git', '.next', 'dist', 'coverage',
10
- '.cache', '.turbo', '__pycache__', '.venv', 'venv',
11
- 'build', '.svn', '.hg',
12
- ]);
13
- const MAX_RESULTS = 100;
14
- /** Convert a glob pattern to a RegExp */
15
- function globToRegex(pattern) {
16
- let regexStr = '';
17
- let i = 0;
18
- while (i < pattern.length) {
19
- const char = pattern[i];
20
- if (char === '*' && pattern[i + 1] === '*') {
21
- // ** matches any depth (including zero directories)
22
- if (pattern[i + 2] === '/') {
23
- regexStr += '(?:.*/)?';
24
- i += 3;
25
- }
26
- else {
27
- regexStr += '.*';
28
- i += 2;
29
- }
30
- }
31
- else if (char === '*') {
32
- // * matches any chars except /
33
- regexStr += '[^/]*';
34
- i++;
35
- }
36
- else if (char === '?') {
37
- // ? matches single char except /
38
- regexStr += '[^/]';
39
- i++;
40
- }
41
- else if (char === '.') {
42
- regexStr += '\\.';
43
- i++;
44
- }
45
- else if (char === '{') {
46
- regexStr += '(?:';
47
- i++;
48
- }
49
- else if (char === '}') {
50
- regexStr += ')';
51
- i++;
52
- }
53
- else if (char === ',') {
54
- regexStr += '|';
55
- i++;
56
- }
57
- else {
58
- regexStr += char;
59
- i++;
60
- }
61
- }
62
- return new RegExp(`^${regexStr}$`);
63
- }
64
- /** Recursively walk a directory, collecting relative paths */
65
- function walkDirectory(baseDir, currentDir, results, maxDepth, depth) {
66
- if (depth > maxDepth || results.length >= MAX_RESULTS)
67
- return;
68
- let entries;
69
- try {
70
- entries = fs.readdirSync(currentDir, { withFileTypes: true });
71
- }
72
- catch {
73
- return;
74
- }
75
- for (const entry of entries) {
76
- if (results.length >= MAX_RESULTS)
77
- return;
78
- const entryName = entry.name;
79
- if (entry.isDirectory()) {
80
- if (EXCLUDED_DIRS.has(entryName) || entryName.startsWith('.')) {
81
- // Allow dotfiles for patterns that explicitly target them
82
- if (EXCLUDED_DIRS.has(entryName))
83
- continue;
84
- }
85
- walkDirectory(baseDir, path.join(currentDir, entryName), results, maxDepth, depth + 1);
86
- }
87
- else if (entry.isFile() || entry.isSymbolicLink()) {
88
- const relativePath = path.relative(baseDir, path.join(currentDir, entryName));
89
- results.push(relativePath);
90
- }
91
- }
92
- }
93
- /** Execute glob pattern matching against files in a directory */
94
- export function globTool(input, cwd) {
95
- const baseDir = input.path
96
- ? path.resolve(cwd, input.path)
97
- : cwd;
98
- if (!fs.existsSync(baseDir)) {
99
- throw new Error(`Directory not found: ${baseDir}`);
100
- }
101
- const stat = fs.statSync(baseDir);
102
- if (!stat.isDirectory()) {
103
- throw new Error(`Not a directory: ${baseDir}`);
104
- }
105
- // Determine max traversal depth from pattern
106
- const hasDoublestar = input.pattern.includes('**');
107
- const maxDepth = hasDoublestar ? 20 : input.pattern.split('/').length + 1;
108
- // Collect all file paths
109
- const allPaths = [];
110
- walkDirectory(baseDir, baseDir, allPaths, maxDepth, 0);
111
- // Match against glob pattern
112
- const regex = globToRegex(input.pattern);
113
- const matched = allPaths.filter(p => regex.test(p));
114
- return matched.slice(0, MAX_RESULTS);
115
- }
116
- export const globDefinition = {
117
- name: 'glob',
118
- description: 'Find files matching a glob pattern (e.g. "**/*.tsx", "src/**/*.test.ts"). Excludes node_modules, .git, etc.',
119
- input_schema: {
120
- type: 'object',
121
- properties: {
122
- pattern: { type: 'string', description: 'Glob pattern to match files' },
123
- path: { type: 'string', description: 'Base directory (default: cwd)' },
124
- },
125
- required: ['pattern'],
126
- },
127
- };
128
- //# sourceMappingURL=glob.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/tools/glob.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- export { readFileTool, readFileDefinition, type ReadFileInput } from './readFile.js';
2
- export { writeFileTool, writeFileDefinition, generateDiff, type WriteFileInput } from './writeFile.js';
3
- export { listDirectoryTool, listDirectoryDefinition, type ListDirectoryInput } from './listDirectory.js';
4
- export { searchFilesTool, searchFilesDefinition, type SearchFilesInput } from './searchFiles.js';
5
- export { executeCommandTool, executeCommandDefinition, validateCommand, type ExecuteCommandInput } from './executeCommand.js';
6
- export { editFileTool, editFileDefinition, generateEditDiff, type EditFileInput } from './editFile.js';
7
- export { globTool, globDefinition, type GlobInput } from './glob.js';
8
- export { readImageTool, readImageDefinition, type ReadImageInput } from './readImage.js';
9
- export { parseNotebook, isNotebook } from './notebook.js';
10
- export declare const ALL_TOOL_DEFINITIONS: ({
11
- name: string;
12
- description: string;
13
- input_schema: {
14
- type: "object";
15
- properties: {
16
- command: {
17
- type: string;
18
- description: string;
19
- };
20
- cwd: {
21
- type: string;
22
- description: string;
23
- };
24
- };
25
- required: string[];
26
- };
27
- } | {
28
- name: string;
29
- description: string;
30
- input_schema: {
31
- type: "object";
32
- properties: {
33
- path: {
34
- type: string;
35
- description: string;
36
- };
37
- };
38
- required: string[];
39
- };
40
- })[];
@@ -1,28 +0,0 @@
1
- export { readFileTool, readFileDefinition } from './readFile.js';
2
- export { writeFileTool, writeFileDefinition, generateDiff } from './writeFile.js';
3
- export { listDirectoryTool, listDirectoryDefinition } from './listDirectory.js';
4
- export { searchFilesTool, searchFilesDefinition } from './searchFiles.js';
5
- export { executeCommandTool, executeCommandDefinition, validateCommand } from './executeCommand.js';
6
- export { editFileTool, editFileDefinition, generateEditDiff } from './editFile.js';
7
- export { globTool, globDefinition } from './glob.js';
8
- export { readImageTool, readImageDefinition } from './readImage.js';
9
- export { parseNotebook, isNotebook } from './notebook.js';
10
- import { readFileDefinition } from './readFile.js';
11
- import { writeFileDefinition } from './writeFile.js';
12
- import { listDirectoryDefinition } from './listDirectory.js';
13
- import { searchFilesDefinition } from './searchFiles.js';
14
- import { executeCommandDefinition } from './executeCommand.js';
15
- import { editFileDefinition } from './editFile.js';
16
- import { globDefinition } from './glob.js';
17
- import { readImageDefinition } from './readImage.js';
18
- export const ALL_TOOL_DEFINITIONS = [
19
- readFileDefinition,
20
- writeFileDefinition,
21
- listDirectoryDefinition,
22
- searchFilesDefinition,
23
- executeCommandDefinition,
24
- editFileDefinition,
25
- globDefinition,
26
- readImageDefinition,
27
- ];
28
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAsB,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,YAAY,EAAuB,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAA2B,MAAM,oBAAoB,CAAC;AACzG,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAyB,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,eAAe,EAA4B,MAAM,qBAAqB,CAAC;AAC9H,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAsB,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAkB,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAuB,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,kBAAkB;IAClB,mBAAmB;IACnB,uBAAuB;IACvB,qBAAqB;IACrB,wBAAwB;IACxB,kBAAkB;IAClB,cAAc;IACd,mBAAmB;CACpB,CAAC"}