ai-agent-test 0.11.0 → 0.12.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.
- package/README.md +1 -0
- package/SYSTEM.md +18 -18
- package/TODOs.md +10 -9
- package/dist/index.js +26 -5
- package/dist/index.js.map +1 -1
- package/dist/tools/edit.d.ts +6 -6
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +59 -19
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/index.d.ts +5 -5
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -17,6 +17,7 @@ See [TODOs.md](./TODOs.md) for roadmap, features in development, and known bugs.
|
|
|
17
17
|
- Interactive CLI: Real-time chat interface with streaming responses
|
|
18
18
|
- Session Management: Session messages are stored in `~/.ai/sessions/` and session can be restored for continued conversations
|
|
19
19
|
- Custom System Prompt: Create `~/.ai/SYSTEM.md` or use `--system` CLI option to provide custom instructions that augment the agent's system prompt
|
|
20
|
+
- One-off Prompt Mode: Run a single prompt loop and exit (ideal for CI/CD pipelines)
|
|
20
21
|
|
|
21
22
|
## 🛠️ Prerequisites
|
|
22
23
|
|
package/SYSTEM.md
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
You are a helpful coding assistant for software developers.
|
|
2
2
|
When asked, strive to use tools as much as possible.
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Before using a tool, explain what you are going to do in a text response, then call the tool with the necessary input.
|
|
4
|
+
Read the existing codebase thoroughly before making changes to avoid code duplication and to ensure a clear understanding of the current state. Always ask for user confirmation before making changes to the codebase, especially when staging commits.
|
|
5
5
|
|
|
6
6
|
Critical workflow rules:
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
{critical_workflow_rules}
|
|
9
|
+
|
|
10
|
+
- Always use the "read" tool again before every "edit" or "write" tool. The user may have manually modified files, and you must not overwrite their changes.
|
|
11
|
+
- If a git push fails because the remote is ahead, ask the user how to proceed (pull, rebase, or force push).
|
|
12
12
|
|
|
13
13
|
Git best practices:
|
|
14
14
|
|
|
15
|
-
- When user says "commit"
|
|
16
|
-
- Run git status before staging to verify
|
|
17
|
-
- Avoid staging large batches (>10 files) or common problematic folders like /dist, /node_modules, \*.log, .DS_Store.
|
|
15
|
+
- When the user says "commit"—perform git add, git commit, and git push.
|
|
16
|
+
- Run git status before staging to verify which changes will be committed. Always check that only intended files are staged.
|
|
17
|
+
- Avoid staging large batches (>10 files) or common problematic folders like /dist, /node_modules, .env, \*.log, or .DS_Store.
|
|
18
18
|
|
|
19
19
|
Tools and skills:
|
|
20
20
|
|
|
21
|
-
- You
|
|
22
|
-
- You can use built-in git commands
|
|
23
|
-
- Use
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
- If documentation output missing key details, call doc_retrieval again with a higher maxReadBodyLength, or set it to 0 to disable truncation.
|
|
21
|
+
- You do not have granular tools like "listdir", "find", "ls", "grep", or "glob"; use the "bash" tool for these commands instead.
|
|
22
|
+
- You can use built-in git commands and the GitHub CLI (gh) via the "bash" tool.
|
|
23
|
+
- Use the "compilation_check" tool before committing to catch errors (e.g., npx tsc --noEmit, npm run lint).
|
|
24
|
+
- Use the "doc_retrieval" tool for library, framework, database, API, and platform documentation. It can discover official docs on its own, but you can pass explicit URLs when known.
|
|
25
|
+
- Prefer the "doc_retrieval" tool over "internet_search" for reference docs or latest technical details. Use "internet_search" for broader web research or news.
|
|
26
|
+
- If documentation is missing key details, use "doc_retrieval" again with a higher "maxReadBodyLength", or set it to 0 to disable truncation.
|
|
28
27
|
|
|
29
28
|
Metadata:
|
|
30
29
|
|
|
31
30
|
- Session (re)start: {date}
|
|
32
|
-
{filemeta}
|
|
33
31
|
|
|
34
|
-
|
|
32
|
+
{filemeta}
|
|
33
|
+
|
|
34
|
+
<!-- The default system prompt ends here. -->
|
package/TODOs.md
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
## Roadmap
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
1. [x] find user's machine's ~/.ai/SYSTEM.md file and concat to ai-agent's system prompt.
|
|
4
|
+
2. [x] add doc retrival tool. To get latest lib info so the agent can solve tasks more effectively. Not just library, it can be doc for technologies like postgres. so approach should be broader not just like npm library. and check internet_search tool if you can extract logic and have shared code. also improve SYSTEM.md once it's done.
|
|
5
|
+
3. [ ] improve loop with testing tools so the agent can complete tasks in better shape. basically we need "verify" step on the loop. (improve system prompt or better ideas)
|
|
6
|
+
4. [ ] Compaction-like feature, but not exactly compaction that is in other coding agents. Summarize current conversation and save to a file, then restart a new session with the summary.
|
|
7
|
+
5. [x] one-off CLI command to run a task without starting the agent loop. For example, `ai-agent run "write a function to reverse a string in python"`. This may evolve into a sub-agent feature.
|
|
8
8
|
|
|
9
9
|
## Backlog ideas
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
1. [ ] what testing tool? and what about puppeteer?
|
|
12
12
|
|
|
13
13
|
## Bugs
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
1. [x] user can backspace to delete even "Prompt: ".
|
|
16
|
+
2. [ ] when user input gets to next line, the cursor can't come back to the first line with backspace. Backspace seems actually deleting but it's not visible to user.
|
|
17
|
+
3. [x] edit tool (or read tool) doesn't work well when there is backslash in the content that they need to handle. for example the codebase had a line like `systemPrompt += "\n\n---\n\nCLI System Prompt\n\" + cliSystemPrompt` and couldn't resolve it because there was a backslash before closing quote.
|
|
18
|
+
4. [x] on prompt mode, if the prompt stoped by `ask_user_followup` tool, fill arbitrary message so loop can continue.
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { streamText } from "ai";
|
|
1
|
+
import { streamText, } from "ai";
|
|
2
2
|
import { createOpenAI } from "@ai-sdk/openai";
|
|
3
3
|
import { toolNames, tools } from "./tools/index.js";
|
|
4
4
|
import chalk from "chalk";
|
|
@@ -105,9 +105,27 @@ const fileMeta = `
|
|
|
105
105
|
? fs.readdirSync(nestedSameNamePath).join(", ")
|
|
106
106
|
: "not found"}
|
|
107
107
|
`;
|
|
108
|
+
const criticalWorkflowRulesChatMode = `
|
|
109
|
+
- Always ask before making commits—never commit without explicit user approval. Even if the user told you to "commit" previously, ask if they want to commit/push the specific changes you just made.
|
|
110
|
+
- If you need more information to complete a task, ask the user a follow-up question using the "ask_user_followup" tool. Use this tool to break the loop if progress is stuck or if you are repeating the same solution.
|
|
111
|
+
`;
|
|
112
|
+
const criticalWorkflowRulesSinglePromptMode = `
|
|
113
|
+
- Since you are running in single prompt mode, you won't have the chance to ask follow-up questions. If you are unsure about something, make a reasonable assumption and clearly state that assumption in your response.
|
|
114
|
+
`;
|
|
108
115
|
systemPrompt = systemPrompt
|
|
109
116
|
.replace("{date}", new Date().toLocaleString())
|
|
110
|
-
.replace("{filemeta}", fileMeta)
|
|
117
|
+
.replace("{filemeta}", fileMeta)
|
|
118
|
+
.replace("{critical_workflow_rules}", cliPrompt
|
|
119
|
+
? criticalWorkflowRulesSinglePromptMode
|
|
120
|
+
: criticalWorkflowRulesChatMode);
|
|
121
|
+
let filteredTools;
|
|
122
|
+
if (cliPrompt) {
|
|
123
|
+
// In single prompt mode, we disable the ask_user_followup tool to avoid confusion since it can't be used
|
|
124
|
+
filteredTools = Object.fromEntries(Object.entries(tools).filter(([toolName]) => toolName !== toolNames.askUserFollowup));
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
filteredTools = tools;
|
|
128
|
+
}
|
|
111
129
|
let interruptRequested = false;
|
|
112
130
|
// Check for loaded messages from a previous session via env var
|
|
113
131
|
const messages = [];
|
|
@@ -159,7 +177,7 @@ async function runLoop(prompt) {
|
|
|
159
177
|
const res = await streamText({
|
|
160
178
|
model,
|
|
161
179
|
messages,
|
|
162
|
-
tools,
|
|
180
|
+
tools: filteredTools,
|
|
163
181
|
system: systemPrompt,
|
|
164
182
|
});
|
|
165
183
|
let fullText = "";
|
|
@@ -299,12 +317,15 @@ async function main() {
|
|
|
299
317
|
// Interactive mode
|
|
300
318
|
console.log(chalk.cyan(`AI Agent Ready! (${formatPath(process.cwd())})\n`));
|
|
301
319
|
const helpText = "interrupt: ESC, newline: Shift+Enter";
|
|
320
|
+
let lastLine = helpText;
|
|
302
321
|
console.log(chalk.cyan(helpText));
|
|
303
322
|
const updateInfo = await checkNpmUpdate();
|
|
304
323
|
if (updateInfo?.show) {
|
|
305
|
-
|
|
324
|
+
const updateText = `New version available! Run 'ai update' (${updateInfo.currentVersion} -> ${updateInfo.latestVersion})`;
|
|
325
|
+
lastLine = updateText;
|
|
326
|
+
console.log(chalk.cyan(`\n${updateText}`));
|
|
306
327
|
}
|
|
307
|
-
console.log(chalk.cyan(Array.from({ length:
|
|
328
|
+
console.log(chalk.cyan(Array.from({ length: lastLine.length }).fill("=").join("") + "\n"));
|
|
308
329
|
while (true) {
|
|
309
330
|
console.log("");
|
|
310
331
|
const userPrompt = await askQuestion("Prompt: ");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAIX,MAAM,IAAI,CAAA;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,UAAU,EACV,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,EAAE,CAAA;AAEf,2DAA2D;AAC3D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAErC,6DAA6D;AAC7D,SAAS,WAAW,CAAC,OAAqB;IACxC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtB,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAC7B,CAAC;AAED,8DAA8D;AAC9D,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAuC,CAAA;AACzE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAA;AACjD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAA;AACjD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAA;AAE3C,IAAI,KAAsB,CAAA;AAC1B,IAAI,aAAa,GAAW,CAAC,CAAA,CAAC,0BAA0B;AAExD,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;IAC/B,KAAK,GAAG,wBAAwB,CAAC;QAC/B,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,MAAM;KACf,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACpB,CAAC;KAAM,CAAC;IACN,KAAK,GAAG,YAAY,CAAC;QACnB,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,MAAM;KACf,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACpB,CAAC;AAED,gEAAgE;AAChE,KAAK,UAAU,kBAAkB;IAC/B,gDAAgD;IAChD,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,aAAa,CAAA;IACtB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,EAAE;YAChD,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,EAAE;aAClC;SACF,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAElC,+DAA+D;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;QACrC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAA;QAElE,IAAI,SAAS,EAAE,CAAC;YACd,gDAAgD;YAChD,aAAa,GAAG,SAAS,CAAC,cAAc,IAAI,CAAC,CAAA;YAC7C,OAAO,aAAa,CAAA;QACtB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IACD,OAAO,aAAa,CAAA,CAAC,wBAAwB;AAC/C,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;AAC7D,IAAI,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;AAE7D,mEAAmE;AACnE,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;AAChE,IAAI,gBAAgB,GAAG,EAAE,CAAA;AACzB,IAAI,CAAC;IACH,gBAAgB,GAAG,EAAE,CAAC,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;IACjE,YAAY,IAAI,yCAAyC,GAAG,gBAAgB,CAAA;AAC9E,CAAC;AAAC,MAAM,CAAC;IACP,gDAAgD;AAClD,CAAC;AACD,8DAA8D;AAC9D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAA;AAC1D,IAAI,eAAe,EAAE,CAAC;IACpB,YAAY,IAAI,gCAAgC,GAAG,eAAe,CAAA;AACpE,CAAC;AAED,mDAAmD;AACnD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAA;AAE7C,wCAAwC;AACxC,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;AACnD,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;AACnE,MAAM,QAAQ,GAAG;qBACI,OAAO,CAAC,GAAG,EAAE;QAC1B,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAE9C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5D,CAAC,CAAC,WACN;YAEE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5D,CAAC,CAAC,WACN;iBAEE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACjE,CAAC,CAAC,WACN;OACO,cAAc,KACnB,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/C,CAAC,CAAC,WACN;CACC,CAAA;AAED,MAAM,6BAA6B,GAAG;;;CAGrC,CAAA;AACD,MAAM,qCAAqC,GAAG;;CAE7C,CAAA;AAED,YAAY,GAAG,YAAY;KACxB,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;KAC9C,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC;KAC/B,OAAO,CACN,2BAA2B,EAC3B,SAAS;IACP,CAAC,CAAC,qCAAqC;IACvC,CAAC,CAAC,6BAA6B,CAClC,CAAA;AAEH,IAAI,aAAsB,CAAA;AAC1B,IAAI,SAAS,EAAE,CAAC;IACd,yGAAyG;IACzG,aAAa,GAAG,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAC1B,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,eAAe,CACvD,CACF,CAAA;AACH,CAAC;KAAM,CAAC;IACN,aAAa,GAAG,KAAK,CAAA;AACvB,CAAC;AAED,IAAI,kBAAkB,GAAG,KAAK,CAAA;AAE9B,gEAAgE;AAChE,MAAM,QAAQ,GAAmB,EAAE,CAAA;AACnC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA;AAC/C,IAAI,WAAW,EAAE,CAAC;IAChB,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IAC/C,IAAI,cAAc,EAAE,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAA;QAChC,WAAW,CAAC;YACV,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,kDAAkD,WAAW,4FAA4F;SACnK,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,MAAM,kCAAkC,CAAC,CACzE,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAA;IACrD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,MAAc;IACnC,WAAW,CAAC;QACV,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,MAAM;KAChB,CAAC,CAAA;IAEF,uBAAuB;IACvB,kBAAkB,GAAG,KAAK,CAAA;IAE1B,0BAA0B;IAC1B,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAC9B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;YACtB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACtC,CAAC;IACH,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YAChD,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;IACH,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;QACjC,kBAAkB;QAClB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAA;YACvD,kBAAkB,GAAG,IAAI,CAAA;QAC3B,CAAC;IACH,CAAC,CAAA;IAED,gBAAgB,EAAE,CAAA;IAElB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC;YAC3B,KAAK;YACL,QAAQ;YACR,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,YAAY;SACrB,CAAC,CAAA;QAEF,IAAI,QAAQ,GAAG,EAAE,CAAA;QACjB,MAAM,kBAAkB,GAAU,EAAE,CAAA;QACpC,MAAM,iBAAiB,GAAgB,EAAE,CAAA;QAEzC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,kBAAkB,EAAE,CAAC;gBACvB,kBAAkB,EAAE,CAAA;gBACpB,OAAM;YACR,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;gBACnD,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC/B,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAA;YACvB,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACrC,kBAAkB,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,WAAW;oBACjB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC,CAAA;YACJ,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAI,IAAY,CAAC,MAAM,CAAA;gBACnC,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC7B,iBAAiB,CAAC,IAAI,CAAC;wBACrB,IAAI,EAAE,aAAa;wBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,MAAM,EAAE;4BACN,IAAI,EAAE,MAAM;4BACZ,KAAK,EACH,MAAM,CAAC,MAAM;gCACb,CAAC,MAAM,CAAC,QAAQ;oCACd,CAAC,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG;oCAClD,CAAC,CAAC,EAAE,CAAC;yBACV;qBACF,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,iBAAiB,CAAC,IAAI,CAAC;wBACrB,IAAI,EAAE,aAAa;wBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,MAAM,EAAE;4BACN,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,KAAK,IAAI,eAAe;yBAC1D;qBACF,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAE,MAAc,CAAC,UAAU,CAAC,CAC9D,CAAA;QACD,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,yCAAyC,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,QAAQ,GAAG,CACtF,CACF,CAAA;gBACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAClE,CAAC,CAAC,gCAAgC,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,QAAQ,IAAI;oBAC/E,CAAC,CAAC,iBAAiB,QAAQ,CAAC,UAAU,0BAA0B,QAAQ,CAAC,QAAQ,IAAI,CAAA;gBACvF,iBAAiB,CAAC,IAAI,CAAC;oBACrB,IAAI,EAAE,aAAa;oBACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,MAAM,EAAE;wBACN,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,0BAA0B,OAAO,EAAE;qBAC3C;iBACF,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,CAAA;QAE7B,MAAM,gBAAgB,GAAU,EAAE,CAAA;QAClC,IAAI,QAAQ,EAAE,CAAC;YACb,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE,CAAC;YAC1C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,WAAW,CAAC;gBACV,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,gBAAgB;aAC1B,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,WAAW,CAAC;gBACV,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,iBAAiB;aAC3B,CAAC,CAAA;QACJ,CAAC;QAED,wDAAwD;QACxD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,CACjB,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC;gBAC1C,GAAG,CACJ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YACZ,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,QAAQ,SAAS,YAAY,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,UAAU,IAAI,CACvE,CACF,CAAA;QACH,CAAC;aAAM,CAAC;YACN,2EAA2E;YAC3E,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,QAAQ,SAAS,YAAY,KAAK,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,CAClE,CAAA;QACH,CAAC;QACD,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,MAAK;QACP,CAAC;QACD,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CACxC,CAAC,MAAM,EAAE,EAAE,CAAE,MAAc,CAAC,QAAQ,KAAK,SAAS,CAAC,cAAc,CAClE,CAAA;QACD,IAAI,WAAW,IAAK,WAAmB,CAAC,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAA;YACnD,MAAK;QACP,CAAC;QACD,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CACxC,CAAC,MAAM,EAAE,EAAE,CAAE,MAAc,CAAC,QAAQ,KAAK,SAAS,CAAC,eAAe,CACnE,CAAA;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAA;YAC7D,MAAK;QACP,CAAC;QACD,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAK;QACP,CAAC;IACH,CAAC;IAED,kBAAkB,EAAE,CAAA;AACtB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,kDAAkD;IAClD,MAAM,kBAAkB,EAAE,CAAA;IAE1B,IAAI,SAAS,EAAE,CAAC;QACd,wCAAwC;QACxC,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,SAAS,CAAC,CAAA;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,gCAAiC,KAAe,CAAC,OAAO,EAAE,CAAC,CACtE,CAAA;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3E,MAAM,QAAQ,GAAG,sCAAsC,CAAA;IACvD,IAAI,QAAQ,GAAG,QAAQ,CAAA;IACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEjC,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAA;IACzC,IAAI,UAAU,EAAE,IAAI,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,2CAA2C,UAAU,CAAC,cAAc,OAAO,UAAU,CAAC,aAAa,GAAG,CAAA;QACzH,QAAQ,GAAG,UAAU,CAAA;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAClE,CACF,CAAA;IAED,OAAO,IAAI,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAA;QAEhD,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;YACxC,MAAK;QACP,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,uBAAwB,KAAe,CAAC,OAAO,EAAE,CAAC,CAC7D,CAAA;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAA"}
|
package/dist/tools/edit.d.ts
CHANGED
|
@@ -9,24 +9,24 @@ export interface LineEdit {
|
|
|
9
9
|
endLine?: number;
|
|
10
10
|
newText: string;
|
|
11
11
|
}
|
|
12
|
-
export type Edit = ReplaceEdit | LineEdit;
|
|
12
|
+
export type Edit = ReplaceEdit[] | LineEdit[];
|
|
13
13
|
export declare const editTool: {
|
|
14
14
|
description: string;
|
|
15
15
|
inputSchema: z.ZodObject<{
|
|
16
16
|
path: z.ZodString;
|
|
17
|
-
edits: z.
|
|
17
|
+
edits: z.ZodUnion<readonly [z.ZodArray<z.ZodObject<{
|
|
18
18
|
oldText: z.ZodString;
|
|
19
19
|
newText: z.ZodString;
|
|
20
20
|
useReplaceAll: z.ZodOptional<z.ZodBoolean>;
|
|
21
|
-
}, z.core.$strip
|
|
21
|
+
}, z.core.$strip>>, z.ZodArray<z.ZodObject<{
|
|
22
22
|
startLine: z.ZodNumber;
|
|
23
23
|
endLine: z.ZodOptional<z.ZodNumber>;
|
|
24
24
|
newText: z.ZodString;
|
|
25
|
-
}, z.core.$strip
|
|
25
|
+
}, z.core.$strip>>]>;
|
|
26
26
|
}, z.core.$strip>;
|
|
27
|
-
execute: ({ path: filePath, edits
|
|
27
|
+
execute: ({ path: filePath, edits }: {
|
|
28
28
|
path: string;
|
|
29
|
-
edits: Edit
|
|
29
|
+
edits: Edit;
|
|
30
30
|
}) => Promise<{
|
|
31
31
|
success: boolean;
|
|
32
32
|
output: string;
|
package/dist/tools/edit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,IAAI,GAAG,WAAW,EAAE,GAAG,QAAQ,EAAE,CAAA;AA8H7C,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;yCAWwB;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE;;;;;;;;;;;;;;;CAyGzE,CAAA"}
|
package/dist/tools/edit.js
CHANGED
|
@@ -26,30 +26,51 @@ const lineEditSchema = z.object({
|
|
|
26
26
|
.string()
|
|
27
27
|
.describe("The replacement text for the specified line range."),
|
|
28
28
|
});
|
|
29
|
-
const editSchema = z.union([replaceEditSchema, lineEditSchema]);
|
|
30
29
|
function isReplaceEdit(edit) {
|
|
31
30
|
return "oldText" in edit;
|
|
32
31
|
}
|
|
32
|
+
function validateLineRange(totalLines, startLine, endLine) {
|
|
33
|
+
if (endLine < startLine) {
|
|
34
|
+
return `Invalid line range: endLine (${endLine}) must be greater than or equal to startLine (${startLine}).`;
|
|
35
|
+
}
|
|
36
|
+
if (startLine > totalLines) {
|
|
37
|
+
return `Invalid line range: startLine ${startLine} is beyond the end of the file (${totalLines} lines).`;
|
|
38
|
+
}
|
|
39
|
+
if (endLine > totalLines) {
|
|
40
|
+
return `Invalid line range: endLine ${endLine} is beyond the end of the file (${totalLines} lines).`;
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
function hasOverlappingOriginalRange(edit, appliedLineEdits) {
|
|
45
|
+
const originalEndLine = edit.endLine ?? edit.startLine;
|
|
46
|
+
return appliedLineEdits.some((appliedEdit) => {
|
|
47
|
+
return !(originalEndLine < appliedEdit.originalStartLine ||
|
|
48
|
+
edit.startLine > appliedEdit.originalEndLine);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function getAdjustedLineRange(edit, appliedLineEdits) {
|
|
52
|
+
const originalEndLine = edit.endLine ?? edit.startLine;
|
|
53
|
+
const lineOffset = appliedLineEdits.reduce((offset, appliedEdit) => {
|
|
54
|
+
if (appliedEdit.originalEndLine < edit.startLine) {
|
|
55
|
+
return offset + appliedEdit.lineDelta;
|
|
56
|
+
}
|
|
57
|
+
return offset;
|
|
58
|
+
}, 0);
|
|
59
|
+
return {
|
|
60
|
+
startLine: edit.startLine + lineOffset,
|
|
61
|
+
endLine: originalEndLine + lineOffset,
|
|
62
|
+
originalEndLine,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
33
65
|
function applyLineEdit(content, edit) {
|
|
34
66
|
const lines = content.split("\n");
|
|
35
67
|
const startLine = edit.startLine;
|
|
36
68
|
const endLine = edit.endLine ?? startLine;
|
|
37
|
-
|
|
69
|
+
const validationError = validateLineRange(lines.length, startLine, endLine);
|
|
70
|
+
if (validationError) {
|
|
38
71
|
return {
|
|
39
72
|
success: false,
|
|
40
|
-
error:
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
if (startLine > lines.length) {
|
|
44
|
-
return {
|
|
45
|
-
success: false,
|
|
46
|
-
error: `Invalid line range: startLine ${startLine} is beyond the end of the file (${lines.length} lines).`,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
if (endLine > lines.length) {
|
|
50
|
-
return {
|
|
51
|
-
success: false,
|
|
52
|
-
error: `Invalid line range: endLine ${endLine} is beyond the end of the file (${lines.length} lines).`,
|
|
73
|
+
error: validationError,
|
|
53
74
|
};
|
|
54
75
|
}
|
|
55
76
|
const replacementLines = edit.newText.split("\n");
|
|
@@ -69,10 +90,10 @@ export const editTool = {
|
|
|
69
90
|
inputSchema: z.object({
|
|
70
91
|
path: z.string().describe("The path to the file to edit"),
|
|
71
92
|
edits: z
|
|
72
|
-
.array(
|
|
73
|
-
.describe("Array of edits to apply.
|
|
93
|
+
.union([z.array(replaceEditSchema), z.array(lineEditSchema)])
|
|
94
|
+
.describe("Array of edits to apply. Use either exact text replacements for the whole request or line-range replacements for the whole request."),
|
|
74
95
|
}),
|
|
75
|
-
execute: async ({ path: filePath, edits
|
|
96
|
+
execute: async ({ path: filePath, edits }) => {
|
|
76
97
|
console.log(chalk.yellow(`\n[TOOL - edit] Editing file: ${filePath} (edits: ${edits.length})`));
|
|
77
98
|
try {
|
|
78
99
|
const fullPath = path.resolve(filePath);
|
|
@@ -84,6 +105,7 @@ export const editTool = {
|
|
|
84
105
|
}
|
|
85
106
|
let content = fs.readFileSync(fullPath, "utf-8");
|
|
86
107
|
let editsApplied = 0;
|
|
108
|
+
const appliedLineEdits = [];
|
|
87
109
|
for (const edit of edits) {
|
|
88
110
|
let newContent = content;
|
|
89
111
|
if (isReplaceEdit(edit)) {
|
|
@@ -95,7 +117,18 @@ export const editTool = {
|
|
|
95
117
|
}
|
|
96
118
|
}
|
|
97
119
|
else {
|
|
98
|
-
|
|
120
|
+
if (hasOverlappingOriginalRange(edit, appliedLineEdits)) {
|
|
121
|
+
return {
|
|
122
|
+
success: false,
|
|
123
|
+
error: "Overlapping line-based edits are not supported in the same request. Merge them into a single line-range edit.",
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
const adjustedRange = getAdjustedLineRange(edit, appliedLineEdits);
|
|
127
|
+
const lineEditResult = applyLineEdit(content, {
|
|
128
|
+
...edit,
|
|
129
|
+
startLine: adjustedRange.startLine,
|
|
130
|
+
endLine: adjustedRange.endLine,
|
|
131
|
+
});
|
|
99
132
|
if (!lineEditResult.success) {
|
|
100
133
|
return {
|
|
101
134
|
success: false,
|
|
@@ -103,6 +136,13 @@ export const editTool = {
|
|
|
103
136
|
};
|
|
104
137
|
}
|
|
105
138
|
newContent = lineEditResult.content;
|
|
139
|
+
const replacedLineCount = adjustedRange.endLine - adjustedRange.startLine + 1;
|
|
140
|
+
const insertedLineCount = edit.newText.split("\n").length;
|
|
141
|
+
appliedLineEdits.push({
|
|
142
|
+
originalStartLine: edit.startLine,
|
|
143
|
+
originalEndLine: adjustedRange.originalEndLine,
|
|
144
|
+
lineDelta: insertedLineCount - replacedLineCount,
|
|
145
|
+
});
|
|
106
146
|
}
|
|
107
147
|
if (newContent !== content) {
|
|
108
148
|
editsApplied++;
|
package/dist/tools/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -155,19 +155,19 @@ export declare const tools: {
|
|
|
155
155
|
description: string;
|
|
156
156
|
inputSchema: import("zod").ZodObject<{
|
|
157
157
|
path: import("zod").ZodString;
|
|
158
|
-
edits: import("zod").
|
|
158
|
+
edits: import("zod").ZodUnion<readonly [import("zod").ZodArray<import("zod").ZodObject<{
|
|
159
159
|
oldText: import("zod").ZodString;
|
|
160
160
|
newText: import("zod").ZodString;
|
|
161
161
|
useReplaceAll: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
162
|
-
}, import("zod/v4/core").$strip
|
|
162
|
+
}, import("zod/v4/core").$strip>>, import("zod").ZodArray<import("zod").ZodObject<{
|
|
163
163
|
startLine: import("zod").ZodNumber;
|
|
164
164
|
endLine: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
165
165
|
newText: import("zod").ZodString;
|
|
166
|
-
}, import("zod/v4/core").$strip
|
|
166
|
+
}, import("zod/v4/core").$strip>>]>;
|
|
167
167
|
}, import("zod/v4/core").$strip>;
|
|
168
|
-
execute: ({ path: filePath, edits
|
|
168
|
+
execute: ({ path: filePath, edits }: {
|
|
169
169
|
path: string;
|
|
170
|
-
edits: import("./edit.js").Edit
|
|
170
|
+
edits: import("./edit.js").Edit;
|
|
171
171
|
}) => Promise<{
|
|
172
172
|
success: boolean;
|
|
173
173
|
output: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-agent-test",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"bin": {
|
|
6
6
|
"ai": "./bin/ai"
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"scripts": {
|
|
18
18
|
"build": "tsc",
|
|
19
|
-
"test": "
|
|
19
|
+
"test": "vitest run",
|
|
20
20
|
"prepare": "husky",
|
|
21
21
|
"lint": "oxlint . -c .oxlintrc.json --ignore-pattern dist/",
|
|
22
22
|
"prepack": "rm -rf dist && npm run build"
|
|
@@ -46,7 +46,8 @@
|
|
|
46
46
|
"oxlint": "^1.57.0",
|
|
47
47
|
"prettier": "^3.8.1",
|
|
48
48
|
"tsx": "^4.21.0",
|
|
49
|
-
"typescript": "^5.9.3"
|
|
49
|
+
"typescript": "^5.9.3",
|
|
50
|
+
"vitest": "^4.1.4"
|
|
50
51
|
},
|
|
51
52
|
"dependencies": {
|
|
52
53
|
"@ai-sdk/google": "^3.0.58",
|