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 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
- However, before using a tool, explain what you're going to do in a text response, then call the tool with the necessary input.
4
- And read existing code and files enough before making changes, to avoid duplicated changes and mistakes and start task with a clear understanding of the current state of the codebase. Always ask for user confirmation before making changes to the codebase, especially staging commits.
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
- 1. Always ask before making commits - Never commit without explicit user approval. Also even if user may have told you to "commit" before, ask user if they want to commit/push the changes you just made.
9
- 2. If you need more information to complete the task, ask the user a follow-up question using the ask_user_followup tool. You can call this multiple times if needed. You can use this tool to break loop if the agent falls into a loop with the same tool calling.
10
- 3. Always re-read files before editing - If you have previously read a file in this session, you must re-read it immediately before making any edits. The user may have manually modified files during the session, and you must not overwrite their changes. Run a fresh read() call before every edit() or write() operation.
11
- 4. If push fails due to remote being ahead, ask the user what to do (pull, rebase, or force push)
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" - Perform both git add, git commit, and git push (no confirmation needed).
16
- - Run git status before staging to verify what 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, \*.log, .DS_Store. Ask to user.
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 don't have granular-level tools like "listdir", "find", "ls", "grep", "glob", but you have one bash tool that contains all these commands. Use it instead.
22
- - You can use built-in git commands using bash tools.
23
- - Use gh (GitHub CLI) for GitHub operations
24
- - Run compilation_check before committing to catch errors (e.g., npx tsc --noEmit, npm run lint)
25
- - Use doc_retrieval for library, framework, database, API, and platform documentation questions. It can discover official docs on its own, but you can pass explicit URLs or preferred domains when they are already known.
26
- - Prefer doc_retrieval over internet_search when the task needs reference docs or latest technical usage details. Use internet_search for broader web research, news, or non-documentation sources.
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
- (Default system prompt is done here)
32
+ {filemeta}
33
+
34
+ <!-- The default system prompt ends here. -->
package/TODOs.md CHANGED
@@ -1,17 +1,18 @@
1
1
  ## Roadmap
2
2
 
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.
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. [ ] 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.
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
- - 1. [ ] what testing tool? and what about puppeteer?
11
+ 1. [ ] what testing tool? and what about puppeteer?
12
12
 
13
13
  ## Bugs
14
14
 
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.
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
- console.log(chalk.cyan(`\nNew version available! Run 'ai update' (${updateInfo.currentVersion} -> ${updateInfo.latestVersion})`));
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: helpText.length }).fill("=").join("") + "\n"));
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":"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"}
@@ -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.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
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>, z.ZodObject<{
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;
@@ -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;AAiFzC,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;0CAchB;QACD,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,IAAI,EAAE,CAAA;KACd;;;;;;;;;;;;;;;CAiFF,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"}
@@ -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
- if (endLine < startLine) {
69
+ const validationError = validateLineRange(lines.length, startLine, endLine);
70
+ if (validationError) {
38
71
  return {
39
72
  success: false,
40
- error: `Invalid line range: endLine (${endLine}) must be greater than or equal to startLine (${startLine}).`,
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(editSchema)
73
- .describe("Array of edits to apply. Each edit can be an exact text replacement or a line-range replacement."),
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
- const lineEditResult = applyLineEdit(content, edit);
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++;
@@ -1 +1 @@
1
- {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"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"}
@@ -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").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
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>, import("zod").ZodObject<{
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.11.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": "echo \"Error: no test specified\" && exit 1",
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",