developer-ai 1.1.1 โ†’ 1.1.2

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 (40) hide show
  1. package/dist/core/agent.d.ts.map +1 -1
  2. package/dist/core/agent.js +14 -2
  3. package/dist/core/agent.js.map +1 -1
  4. package/dist/core/system-prompt.d.ts.map +1 -1
  5. package/dist/core/system-prompt.js +33 -8
  6. package/dist/core/system-prompt.js.map +1 -1
  7. package/dist/tools/git-commit.d.ts +7 -0
  8. package/dist/tools/git-commit.d.ts.map +1 -0
  9. package/dist/tools/git-commit.js +84 -0
  10. package/dist/tools/git-commit.js.map +1 -0
  11. package/dist/tools/git-diff.d.ts +6 -0
  12. package/dist/tools/git-diff.d.ts.map +1 -0
  13. package/dist/tools/git-diff.js +84 -0
  14. package/dist/tools/git-diff.js.map +1 -0
  15. package/dist/tools/git-status.d.ts +7 -0
  16. package/dist/tools/git-status.d.ts.map +1 -0
  17. package/dist/tools/git-status.js +70 -0
  18. package/dist/tools/git-status.js.map +1 -0
  19. package/dist/tools/index.d.ts.map +1 -1
  20. package/dist/tools/index.js +17 -0
  21. package/dist/tools/index.js.map +1 -1
  22. package/dist/tools/project-detect.d.ts +8 -0
  23. package/dist/tools/project-detect.d.ts.map +1 -0
  24. package/dist/tools/project-detect.js +201 -0
  25. package/dist/tools/project-detect.js.map +1 -0
  26. package/dist/tools/read-file.d.ts.map +1 -1
  27. package/dist/tools/read-file.js +27 -3
  28. package/dist/tools/read-file.js.map +1 -1
  29. package/dist/tools/run-command.d.ts.map +1 -1
  30. package/dist/tools/run-command.js +29 -8
  31. package/dist/tools/run-command.js.map +1 -1
  32. package/dist/tools/stat-file.d.ts +7 -0
  33. package/dist/tools/stat-file.d.ts.map +1 -0
  34. package/dist/tools/stat-file.js +96 -0
  35. package/dist/tools/stat-file.js.map +1 -0
  36. package/dist/tools/test-run.d.ts +7 -0
  37. package/dist/tools/test-run.d.ts.map +1 -0
  38. package/dist/tools/test-run.js +181 -0
  39. package/dist/tools/test-run.js.map +1 -0
  40. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,WAAW,EAEZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAClD;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,SAAS,CAAwC;gBAE7C,IAAI,EAAE,YAAY;IAaxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;OAGG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0FhD,YAAY,IAAI,IAAI;YAMN,WAAW;IA8BzB,OAAO,CAAC,gBAAgB;IA2CxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,OAAO,CAAC,YAAY;CAerB"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,WAAW,EAEZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAClD;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,SAAS,CAAwC;gBAE7C,IAAI,EAAE,YAAY;IAaxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;OAGG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0FhD,YAAY,IAAI,IAAI;YAMN,WAAW;IA8BzB,OAAO,CAAC,gBAAgB;IAuDxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,OAAO,CAAC,YAAY;CAerB"}
@@ -151,16 +151,22 @@ export class Agent {
151
151
  read_file: '๐Ÿ“–',
152
152
  write_file: '๐Ÿ“',
153
153
  patch_file: '๐Ÿฉน',
154
+ stat_file: '๐Ÿ“Š',
154
155
  list_files: '๐Ÿ“‚',
155
156
  search_text: '๐Ÿ”',
156
157
  run_command: 'โšก',
157
158
  web_search: '๐ŸŒ',
159
+ git_status: '๐Ÿ“‹',
160
+ git_diff: '๐Ÿ”€',
161
+ git_commit: '๐Ÿ“ฆ',
162
+ project_detect: '๐Ÿ”ฌ',
163
+ test_run: '๐Ÿงช',
158
164
  };
159
165
  const toolIcon = TOOL_ICONS[name] ?? '๐Ÿ”ง';
160
166
  const statusIcon = result.success ? chalk.green('โœ“') : chalk.red('โœ—');
161
167
  const label = chalk.cyan(`[${name}]`);
162
168
  // Concise single-line summary per tool call
163
- const detail = name === 'write_file' || name === 'read_file' || name === 'patch_file'
169
+ const detail = name === 'write_file' || name === 'read_file' || name === 'patch_file' || name === 'stat_file'
164
170
  ? String(args['path'] ?? '')
165
171
  : name === 'run_command'
166
172
  ? String(args['command'] ?? '')
@@ -168,7 +174,13 @@ export class Agent {
168
174
  ? String(args['path'] ?? '.')
169
175
  : name === 'search_text' || name === 'web_search'
170
176
  ? `"${String(args['query'] ?? '')}"`
171
- : '';
177
+ : name === 'git_diff'
178
+ ? args['staged'] ? '(staged)' : '(unstaged)'
179
+ : name === 'git_commit'
180
+ ? `"${String(args['message'] ?? '').slice(0, 60)}"`
181
+ : name === 'test_run'
182
+ ? String(args['filter'] ?? args['command'] ?? 'auto-detect')
183
+ : '';
172
184
  process.stderr.write(` ${toolIcon} ${statusIcon} ${label} ${detail}\n`);
173
185
  if (!result.success && result.error) {
174
186
  process.stderr.write(` ${chalk.red(result.error)}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EAAE,GACtB,MAAM,CAyDR"}
1
+ {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EAAE,GACtB,MAAM,CAkFR"}
@@ -36,20 +36,45 @@ You have TWO file-editing tools. Choose wisely to minimise token usage:
36
36
  Never rewrite an entire file just to change a few lines โ€” this wastes tokens and risks data loss.
37
37
 
38
38
  ## Tool Usage
39
- - Use patch_file for targeted edits to existing files (preferred).
40
- - Use write_file to create new files or do complete rewrites.
41
- - Use read_file to inspect existing files before modifying them.
42
- - Use list_files to understand the project structure.
43
- - Use search_text to find code patterns across the workspace.
44
- - Use run_command for safe shell commands (ls, cat, npm, git, node, etc.).
45
- - Use web_search if you need to look something up online (may not be configured).
39
+
40
+ ### File operations
41
+ - **read_file** โ€” Read files. Use start_line/end_line for large files to save tokens.
42
+ - **write_file** โ€” Create new files or complete rewrites only.
43
+ - **patch_file** โ€” Targeted string replacement (PREFERRED for edits).
44
+ - **stat_file** โ€” Check file metadata, size, or hash. Use to verify edits landed.
45
+ - **list_files** โ€” Explore project structure.
46
+ - **search_text** โ€” Find code patterns with regex across the workspace.
47
+
48
+ ### Execution
49
+ - **run_command** โ€” Run shell commands. Supports custom timeout_ms, env vars, max_output_kb.
50
+
51
+ ### Git (native โ€” prefer these over raw git commands)
52
+ - **git_status** โ€” Check working tree state (staged, unstaged, untracked).
53
+ - **git_diff** โ€” View changes (staged or unstaged) with context.
54
+ - **git_commit** โ€” Stage files and commit with a message.
55
+
56
+ ### Project intelligence
57
+ - **project_detect** โ€” Detect language, framework, package manager, test runner. Call early.
58
+ - **test_run** โ€” Run tests with auto-detection. Parses failures into structured output.
59
+
60
+ ### Web
61
+ - **web_search** โ€” Search the web (if configured).
62
+
63
+ ## Workflow Best Practices
64
+ 1. Start with project_detect or list_files to orient yourself.
65
+ 2. Use read_file with line ranges for large files โ€” don't read the whole file if you only need a section.
66
+ 3. Use patch_file for all small edits. Never rewrite a file to change a few lines.
67
+ 4. After edits, use stat_file or read_file (with range) to verify changes landed correctly.
68
+ 5. Use git_status / git_diff to review changes before committing.
69
+ 6. Run test_run after code changes to validate correctness.
46
70
 
47
71
  ## Never
48
72
  - Fabricate file edits โ€” always use write_file or patch_file.
49
73
  - Output secrets or API keys.
50
74
  - Run destructive commands (rm -rf, etc.) without explicit user approval.
51
75
  - Reference external assets/files that haven't been created.
52
- - Rewrite an entire file when patch_file can accomplish the edit.`;
76
+ - Rewrite an entire file when patch_file can accomplish the edit.
77
+ - Read entire large files when you only need a few lines โ€” use start_line/end_line.`;
53
78
  if (skillSnippets.length > 0) {
54
79
  prompt += '\n\n## Relevant Skills\n';
55
80
  for (const snippet of skillSnippets) {
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,aAAuB;IAEvB,IAAI,MAAM,GAAG;kBACG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kEA6CoC,CAAC;IAEjE,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,0BAA0B,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,OAAO,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,aAAuB;IAEvB,IAAI,MAAM,GAAG;kBACG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oFAsEsD,CAAC;IAEnF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,0BAA0B,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,OAAO,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ToolHandler } from './registry.js';
2
+ /**
3
+ * Git commit tool โ€” stages files (or all changes) and commits.
4
+ * Requires confirmation unless auto-yes is enabled.
5
+ */
6
+ export declare const gitCommitTool: ToolHandler;
7
+ //# sourceMappingURL=git-commit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-commit.d.ts","sourceRoot":"","sources":["../../src/tools/git-commit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAC;AAS9D;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WA6E3B,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { execSync } from 'node:child_process';
2
+ import { z } from 'zod';
3
+ const schema = z.object({
4
+ message: z.string().describe('Commit message'),
5
+ files: z.array(z.string()).optional(),
6
+ all: z.boolean().optional().default(false),
7
+ });
8
+ /**
9
+ * Git commit tool โ€” stages files (or all changes) and commits.
10
+ * Requires confirmation unless auto-yes is enabled.
11
+ */
12
+ export const gitCommitTool = {
13
+ name: 'git_commit',
14
+ description: 'Stage and commit changes to git. Provide a commit message. ' +
15
+ 'Specify `files` to stage specific files, or set `all=true` to stage everything (-A). ' +
16
+ 'If neither is given, commits whatever is currently staged.',
17
+ schema,
18
+ jsonSchema: {
19
+ type: 'object',
20
+ properties: {
21
+ message: { type: 'string', description: 'Commit message' },
22
+ files: {
23
+ type: 'array',
24
+ items: { type: 'string' },
25
+ description: 'Files to stage before committing (workspace-relative paths)',
26
+ },
27
+ all: {
28
+ type: 'boolean',
29
+ description: 'Stage all changes before committing (git add -A)',
30
+ },
31
+ },
32
+ required: ['message'],
33
+ },
34
+ async execute(input, ctx) {
35
+ const { message, files, all } = schema.parse(input);
36
+ // Confirmation gate
37
+ if (!ctx.autoYes) {
38
+ const filesList = files?.join(', ') ?? (all ? 'all changes' : 'currently staged');
39
+ const confirmed = await ctx.confirmFn(`๐Ÿ“ฆ Commit to git?\n Message: "${message}"\n Files: ${filesList}`);
40
+ if (!confirmed) {
41
+ return { success: false, output: '', error: 'Commit cancelled by user' };
42
+ }
43
+ }
44
+ try {
45
+ // Stage files if requested
46
+ if (all) {
47
+ execSync('git add -A', {
48
+ cwd: ctx.workspaceDir,
49
+ encoding: 'utf-8',
50
+ timeout: 10_000,
51
+ stdio: ['pipe', 'pipe', 'pipe'],
52
+ });
53
+ }
54
+ else if (files && files.length > 0) {
55
+ const escaped = files.map((f) => `"${f}"`).join(' ');
56
+ execSync(`git add ${escaped}`, {
57
+ cwd: ctx.workspaceDir,
58
+ encoding: 'utf-8',
59
+ timeout: 10_000,
60
+ stdio: ['pipe', 'pipe', 'pipe'],
61
+ });
62
+ }
63
+ // Commit
64
+ const safeMessage = message.replace(/"/g, '\\"');
65
+ const stdout = execSync(`git commit -m "${safeMessage}"`, {
66
+ cwd: ctx.workspaceDir,
67
+ encoding: 'utf-8',
68
+ timeout: 15_000,
69
+ stdio: ['pipe', 'pipe', 'pipe'],
70
+ });
71
+ return { success: true, output: stdout.trim() };
72
+ }
73
+ catch (err) {
74
+ const e = err;
75
+ const errMsg = e.stderr?.trim() || e.message || 'Unknown git error';
76
+ // "nothing to commit" is not really an error
77
+ if (errMsg.includes('nothing to commit')) {
78
+ return { success: true, output: 'Nothing to commit โ€” working tree clean.' };
79
+ }
80
+ return { success: false, output: '', error: `git commit failed: ${errMsg}` };
81
+ }
82
+ },
83
+ };
84
+ //# sourceMappingURL=git-commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-commit.js","sourceRoot":"","sources":["../../src/tools/git-commit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { ToolHandler } from './registry.js';
2
+ /**
3
+ * Git diff tool โ€” shows changes in the working tree or staging area.
4
+ */
5
+ export declare const gitDiffTool: ToolHandler;
6
+ //# sourceMappingURL=git-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-diff.d.ts","sourceRoot":"","sources":["../../src/tools/git-diff.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAC;AAU9D;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,WA0EzB,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { execSync } from 'node:child_process';
2
+ import { z } from 'zod';
3
+ import { MAX_OUTPUT_LENGTH } from '../constants.js';
4
+ const schema = z.object({
5
+ staged: z.boolean().optional().default(false),
6
+ path: z.string().optional(),
7
+ context_lines: z.number().optional().default(3),
8
+ });
9
+ /**
10
+ * Git diff tool โ€” shows changes in the working tree or staging area.
11
+ */
12
+ export const gitDiffTool = {
13
+ name: 'git_diff',
14
+ description: 'Show git diff of changes. By default shows unstaged changes. ' +
15
+ 'Set staged=true to see staged (--cached) changes. ' +
16
+ 'Optionally filter to a specific file path.',
17
+ schema,
18
+ jsonSchema: {
19
+ type: 'object',
20
+ properties: {
21
+ staged: {
22
+ type: 'boolean',
23
+ description: 'Show staged changes (--cached) instead of unstaged (default: false)',
24
+ },
25
+ path: {
26
+ type: 'string',
27
+ description: 'Optional file path to diff (workspace-relative)',
28
+ },
29
+ context_lines: {
30
+ type: 'number',
31
+ description: 'Number of context lines around changes (default: 3)',
32
+ },
33
+ },
34
+ required: [],
35
+ },
36
+ async execute(input, ctx) {
37
+ const { staged, path: filePath, context_lines } = schema.parse(input);
38
+ try {
39
+ const parts = ['git', 'diff'];
40
+ if (staged)
41
+ parts.push('--cached');
42
+ parts.push(`-U${context_lines}`);
43
+ parts.push('--stat');
44
+ if (filePath)
45
+ parts.push('--', filePath);
46
+ const statOutput = execSync(parts.join(' '), {
47
+ cwd: ctx.workspaceDir,
48
+ encoding: 'utf-8',
49
+ timeout: 15_000,
50
+ stdio: ['pipe', 'pipe', 'pipe'],
51
+ });
52
+ // Now get the actual diff without --stat
53
+ const diffParts = ['git', 'diff'];
54
+ if (staged)
55
+ diffParts.push('--cached');
56
+ diffParts.push(`-U${context_lines}`);
57
+ if (filePath)
58
+ diffParts.push('--', filePath);
59
+ const diffOutput = execSync(diffParts.join(' '), {
60
+ cwd: ctx.workspaceDir,
61
+ encoding: 'utf-8',
62
+ timeout: 15_000,
63
+ stdio: ['pipe', 'pipe', 'pipe'],
64
+ });
65
+ if (!diffOutput.trim() && !statOutput.trim()) {
66
+ const scope = staged ? 'staged' : 'unstaged';
67
+ return { success: true, output: `No ${scope} changes.` };
68
+ }
69
+ const combined = `${statOutput.trim()}\n\n${diffOutput.trim()}`;
70
+ return {
71
+ success: true,
72
+ output: combined.slice(0, MAX_OUTPUT_LENGTH),
73
+ };
74
+ }
75
+ catch (err) {
76
+ return {
77
+ success: false,
78
+ output: '',
79
+ error: `git diff failed: ${err.message}`,
80
+ };
81
+ }
82
+ },
83
+ };
84
+ //# sourceMappingURL=git-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-diff.js","sourceRoot":"","sources":["../../src/tools/git-diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ToolHandler } from './registry.js';
2
+ /**
3
+ * Git status tool โ€” shows the current state of the working tree.
4
+ * Wraps `git status` with structured output parsing.
5
+ */
6
+ export declare const gitStatusTool: ToolHandler;
7
+ //# sourceMappingURL=git-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-status.d.ts","sourceRoot":"","sources":["../../src/tools/git-status.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAC;AAO9D;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WA8D3B,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { execSync } from 'node:child_process';
2
+ import { z } from 'zod';
3
+ const schema = z.object({
4
+ short: z.boolean().optional().default(false),
5
+ });
6
+ /**
7
+ * Git status tool โ€” shows the current state of the working tree.
8
+ * Wraps `git status` with structured output parsing.
9
+ */
10
+ export const gitStatusTool = {
11
+ name: 'git_status',
12
+ description: 'Show the git status of the workspace: staged, unstaged, and untracked files. ' +
13
+ 'Set short=true for compact output. Returns structured status information.',
14
+ schema,
15
+ jsonSchema: {
16
+ type: 'object',
17
+ properties: {
18
+ short: {
19
+ type: 'boolean',
20
+ description: 'Use short format (default: false)',
21
+ },
22
+ },
23
+ required: [],
24
+ },
25
+ async execute(input, ctx) {
26
+ const { short } = schema.parse(input);
27
+ try {
28
+ // Check if we're in a git repo
29
+ execSync('git rev-parse --is-inside-work-tree', {
30
+ cwd: ctx.workspaceDir,
31
+ encoding: 'utf-8',
32
+ stdio: ['pipe', 'pipe', 'pipe'],
33
+ });
34
+ }
35
+ catch {
36
+ return { success: false, output: '', error: 'Not a git repository' };
37
+ }
38
+ try {
39
+ const flags = short ? '--short --branch' : '';
40
+ const stdout = execSync(`git status ${flags}`.trim(), {
41
+ cwd: ctx.workspaceDir,
42
+ encoding: 'utf-8',
43
+ timeout: 10_000,
44
+ stdio: ['pipe', 'pipe', 'pipe'],
45
+ });
46
+ // Also get current branch name
47
+ let branch = '';
48
+ try {
49
+ branch = execSync('git branch --show-current', {
50
+ cwd: ctx.workspaceDir,
51
+ encoding: 'utf-8',
52
+ stdio: ['pipe', 'pipe', 'pipe'],
53
+ }).trim();
54
+ }
55
+ catch {
56
+ branch = '(detached)';
57
+ }
58
+ const header = `Branch: ${branch}\n`;
59
+ return { success: true, output: header + stdout.trim() };
60
+ }
61
+ catch (err) {
62
+ return {
63
+ success: false,
64
+ output: '',
65
+ error: `git status failed: ${err.message}`,
66
+ };
67
+ }
68
+ },
69
+ };
70
+ //# sourceMappingURL=git-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-status.js","sourceRoot":"","sources":["../../src/tools/git-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC7C,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,IAAI,EAAE,YAAY;IAClB,WAAW,EACT,+EAA+E;QAC/E,2EAA2E;IAC7E,MAAM;IACN,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,mCAAmC;aACjD;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IAED,KAAK,CAAC,OAAO,CAAC,KAAc,EAAE,GAAgB;QAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEtC,IAAI,CAAC;YACH,+BAA+B;YAC/B,QAAQ,CAAC,qCAAqC,EAAE;gBAC9C,GAAG,EAAE,GAAG,CAAC,YAAY;gBACrB,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QACvE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;gBACpD,GAAG,EAAE,GAAG,CAAC,YAAY;gBACrB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,MAAM;gBACf,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC,CAAC;YAEH,+BAA+B;YAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,GAAG,QAAQ,CAAC,2BAA2B,EAAE;oBAC7C,GAAG,EAAE,GAAG,CAAC,YAAY;oBACrB,QAAQ,EAAE,OAAO;oBACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBAChC,CAAC,CAAC,IAAI,EAAE,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,YAAY,CAAC;YACxB,CAAC;YAED,MAAM,MAAM,GAAG,WAAW,MAAM,IAAI,CAAC;YACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,sBAAuB,GAAa,CAAC,OAAO,EAAE;aACtD,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAS7C,wBAAgB,kBAAkB,IAAI,YAAY,CAUjD;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAe7C,wBAAgB,kBAAkB,IAAI,YAAY,CA2BjD;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
@@ -2,18 +2,35 @@ import { ToolRegistry } from './registry.js';
2
2
  import { readFileTool } from './read-file.js';
3
3
  import { writeFileTool } from './write-file.js';
4
4
  import { patchFileTool } from './patch-file.js';
5
+ import { statFileTool } from './stat-file.js';
5
6
  import { listFilesTool } from './list-files.js';
6
7
  import { searchTextTool } from './search-text.js';
7
8
  import { runCommandTool } from './run-command.js';
8
9
  import { webSearchTool } from './web-search.js';
10
+ import { gitStatusTool } from './git-status.js';
11
+ import { gitDiffTool } from './git-diff.js';
12
+ import { gitCommitTool } from './git-commit.js';
13
+ import { projectDetectTool } from './project-detect.js';
14
+ import { testRunTool } from './test-run.js';
9
15
  export function createToolRegistry() {
10
16
  const registry = new ToolRegistry();
17
+ // โ”€โ”€ Filesystem โ”€โ”€
11
18
  registry.register(readFileTool);
12
19
  registry.register(writeFileTool);
13
20
  registry.register(patchFileTool);
21
+ registry.register(statFileTool);
14
22
  registry.register(listFilesTool);
15
23
  registry.register(searchTextTool);
24
+ // โ”€โ”€ Execution โ”€โ”€
16
25
  registry.register(runCommandTool);
26
+ // โ”€โ”€ Git โ”€โ”€
27
+ registry.register(gitStatusTool);
28
+ registry.register(gitDiffTool);
29
+ registry.register(gitCommitTool);
30
+ // โ”€โ”€ Project intelligence โ”€โ”€
31
+ registry.register(projectDetectTool);
32
+ registry.register(testRunTool);
33
+ // โ”€โ”€ Web โ”€โ”€
17
34
  registry.register(webSearchTool);
18
35
  return registry;
19
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,UAAU,kBAAkB;IAChC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,UAAU,kBAAkB;IAChC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IAEpC,mBAAmB;IACnB,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAElC,kBAAkB;IAClB,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAElC,YAAY;IACZ,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEjC,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE/B,YAAY;IACZ,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEjC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ToolHandler } from './registry.js';
2
+ /**
3
+ * Project detection tool โ€” scans the workspace to identify the project type,
4
+ * language, package manager, test runner, and other metadata.
5
+ * This gives the agent situational awareness without wasting tokens guessing.
6
+ */
7
+ export declare const projectDetectTool: ToolHandler;
8
+ //# sourceMappingURL=project-detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-detect.d.ts","sourceRoot":"","sources":["../../src/tools/project-detect.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAC;AAK9D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAiJ/B,CAAC"}