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.
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +14 -2
- package/dist/core/agent.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +33 -8
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/tools/git-commit.d.ts +7 -0
- package/dist/tools/git-commit.d.ts.map +1 -0
- package/dist/tools/git-commit.js +84 -0
- package/dist/tools/git-commit.js.map +1 -0
- package/dist/tools/git-diff.d.ts +6 -0
- package/dist/tools/git-diff.d.ts.map +1 -0
- package/dist/tools/git-diff.js +84 -0
- package/dist/tools/git-diff.js.map +1 -0
- package/dist/tools/git-status.d.ts +7 -0
- package/dist/tools/git-status.d.ts.map +1 -0
- package/dist/tools/git-status.js +70 -0
- package/dist/tools/git-status.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +17 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/project-detect.d.ts +8 -0
- package/dist/tools/project-detect.d.ts.map +1 -0
- package/dist/tools/project-detect.js +201 -0
- package/dist/tools/project-detect.js.map +1 -0
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +27 -3
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/run-command.d.ts.map +1 -1
- package/dist/tools/run-command.js +29 -8
- package/dist/tools/run-command.js.map +1 -1
- package/dist/tools/stat-file.d.ts +7 -0
- package/dist/tools/stat-file.d.ts.map +1 -0
- package/dist/tools/stat-file.js +96 -0
- package/dist/tools/stat-file.js.map +1 -0
- package/dist/tools/test-run.d.ts +7 -0
- package/dist/tools/test-run.d.ts.map +1 -0
- package/dist/tools/test-run.js +181 -0
- package/dist/tools/test-run.js.map +1 -0
- package/package.json +1 -1
package/dist/core/agent.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/core/agent.js
CHANGED
|
@@ -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`);
|
package/dist/core/agent.js.map
CHANGED
|
@@ -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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAevD,MAAM,OAAO,KAAK;IACR,QAAQ,GAAc,EAAE,CAAC;IACzB,QAAQ,CAAc;IACtB,YAAY,CAAe;IAC3B,UAAU,CAAa;IACvB,YAAY,CAAe;IAC3B,YAAY,CAAS;IACrB,OAAO,CAAU;IACjB,cAAc,CAAU;IACxB,aAAa,CAAS;IACtB,YAAY,CAAU;IACtB,SAAS,CAAwC;IAEzD,YAAY,IAAkB;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,WAAmB;QAC5B,kBAAkB;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAC3D,CAAC;QAEF,uCAAuC;QACvC,MAAM,SAAS,GAAY;YACzB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC;SAC7D,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QAC/B,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAE3D,iBAAiB;QACjB,MAAM,KAAK,GAAqB;YAC9B,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;YACrC,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE;SACxC,CAAC;QAEF,uBAAuB;QACvB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,OAAO,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,UAAU,EAAE,CAAC;YAEb,IAAI,QAAQ,CAAC;YACb,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,qBAAqB,GAAG,EAAE,CAAC;YACpC,CAAC;YAED,oDAAoD;YACpD,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,kEAAkE;gBAClE,IAAI,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBAC1C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACtC,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,UAAU,EAAE,QAAQ,CAAC,SAAS;iBAC/B,CAAC,CAAC;gBAEH,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;oBACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;oBAC1C,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;oBAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACjB,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;wBAC/B,YAAY,EAAE,EAAE,CAAC,EAAE;wBACnB,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;qBACvB,CAAC,CAAC;gBACL,CAAC;gBACD,SAAS;YACX,CAAC;YAED,sBAAsB;YACtB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,qCAAqC;gBACrC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACnE,IAAI,IAAI,CAAC,YAAY,IAAI,QAAQ,EAAE,CAAC;oBAClC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;gBAED,MAAM,YAAY,GAAG,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC;gBACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;gBACjE,OAAO,YAAY,CAAC;YACtB,CAAC;YAED,2DAA2D;YAC3D,MAAM;QACR,CAAC;QAED,IAAI,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,OAAO,2GAA2G,CAAC;QACrH,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,4BAA4B;IAEpB,KAAK,CAAC,WAAW,CAAC,QAAkB;QAC1C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAEvD,IAAI,IAA6B,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,mCAAmC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;aAClE,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAgB;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QAEF,YAAY;QACZ,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;QAED,iBAAiB;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;IAEO,gBAAgB,CAAC,QAAkB,EAAE,MAAkB;QAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpC,IAAI,IAAI,GAA4B,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QAED,yCAAyC;QACzC,MAAM,UAAU,GAA2B;YACzC,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,GAAG;YAChB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,IAAI;SACf,CAAC;QAEF,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;QAEtC,4CAA4C;QAC5C,MAAM,MAAM,GACV,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,WAAW;YAC5F,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,CAAC,CAAC,IAAI,KAAK,aAAa;gBACtB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC/B,CAAC,CAAC,IAAI,KAAK,YAAY;oBACrB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;oBAC7B,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,YAAY;wBAC/C,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG;wBACpC,CAAC,CAAC,IAAI,KAAK,UAAU;4BACnB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;4BAC5C,CAAC,CAAC,IAAI,KAAK,YAAY;gCACrB,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;gCACnD,CAAC,CAAC,IAAI,KAAK,UAAU;oCACnB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC;oCAC5D,CAAC,CAAC,EAAE,CAAC;QAErB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC;QAEzE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,OAAe;QACnC,MAAM,UAAU,GAAG,8BAA8B,CAAC;QAClD,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,OAAO,GAAG,OAAO,CAAC;QAEtB,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACnD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEjD,OAAO;YACL,QAAQ,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;YAClE,OAAO;SACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,IAAY;QAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,QAAQ,IAAI,IAAI,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,OAAO;QAE5B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAEtE,MAAM,KAAK,GAAG,OAAO;aAClB,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,MAAM,CAAC,CAAC;IAC1E,CAAC;CACF"}
|
|
@@ -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,
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
- Use
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
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
|
|
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 @@
|
|
|
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;
|
|
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"}
|
package/dist/tools/index.js
CHANGED
|
@@ -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
|
}
|
package/dist/tools/index.js.map
CHANGED
|
@@ -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;
|
|
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"}
|