@easbot/agent 0.2.5 → 0.2.7

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 (52) hide show
  1. package/LICENSE +21 -21
  2. package/dist/assets/txt/agent/generate.txt +75 -75
  3. package/dist/assets/txt/agent/prompt/compaction.txt +54 -54
  4. package/dist/assets/txt/agent/prompt/summary.txt +12 -12
  5. package/dist/assets/txt/command/builtin/arch.txt +26 -26
  6. package/dist/assets/txt/command/builtin/init.txt +10 -10
  7. package/dist/assets/txt/command/builtin/review.txt +97 -97
  8. package/dist/assets/txt/context/prompt/build-switch.txt +5 -5
  9. package/dist/assets/txt/context/prompt/coder-plan.txt +69 -69
  10. package/dist/assets/txt/context/prompt/codex.txt +79 -79
  11. package/dist/assets/txt/context/prompt/default.txt +105 -105
  12. package/dist/assets/txt/context/prompt/gpt.txt +107 -107
  13. package/dist/assets/txt/context/prompt/kimi.txt +95 -95
  14. package/dist/assets/txt/context/prompt/max-steps.txt +15 -15
  15. package/dist/assets/txt/context/prompt/plan-reminder-anthropic.txt +67 -67
  16. package/dist/assets/txt/context/prompt/plan.txt +27 -27
  17. package/dist/assets/txt/context/template/BOOTSTRAP.txt +238 -238
  18. package/dist/assets/txt/context/template/CONTEXT.txt +51 -51
  19. package/dist/assets/txt/model/graph-summary.txt +54 -54
  20. package/dist/assets/txt/model/graph.txt +85 -85
  21. package/dist/assets/txt/model/rerank.txt +42 -42
  22. package/dist/assets/txt/model/summary.txt +52 -52
  23. package/dist/assets/txt/session/prompt/build-switch.txt +5 -5
  24. package/dist/assets/txt/session/prompt/codex.txt +79 -79
  25. package/dist/assets/txt/session/prompt/default.txt +105 -105
  26. package/dist/assets/txt/session/prompt/gpt.txt +107 -107
  27. package/dist/assets/txt/session/prompt/kimi.txt +95 -95
  28. package/dist/assets/txt/session/prompt/max-steps.txt +15 -15
  29. package/dist/assets/txt/session/prompt/plan-reminder-anthropic.txt +67 -67
  30. package/dist/assets/txt/session/prompt/plan.txt +26 -26
  31. package/dist/assets/txt/tool/apply_patch.txt +53 -53
  32. package/dist/assets/txt/tool/batch.txt +23 -23
  33. package/dist/assets/txt/tool/edit.txt +10 -10
  34. package/dist/assets/txt/tool/glob.txt +6 -6
  35. package/dist/assets/txt/tool/grep.txt +8 -8
  36. package/dist/assets/txt/tool/ls.txt +6 -6
  37. package/dist/assets/txt/tool/lsp.txt +19 -19
  38. package/dist/assets/txt/tool/multiedit.txt +43 -43
  39. package/dist/assets/txt/tool/pty_manage.txt +60 -60
  40. package/dist/assets/txt/tool/question.txt +33 -33
  41. package/dist/assets/txt/tool/read.txt +14 -14
  42. package/dist/assets/txt/tool/todo.txt +124 -124
  43. package/dist/assets/txt/tool/webfetch.txt +13 -13
  44. package/dist/assets/txt/tool/websearch.txt +14 -14
  45. package/dist/assets/txt/tool/write.txt +8 -8
  46. package/dist/cli.cjs +267 -264
  47. package/dist/cli.mjs +267 -264
  48. package/dist/index.cjs +256 -253
  49. package/dist/index.d.cts +3 -3
  50. package/dist/index.d.ts +3 -3
  51. package/dist/index.mjs +262 -259
  52. package/package.json +33 -35
@@ -1,8 +1,8 @@
1
- - Fast content search tool that works with any codebase size
2
- - Searches file contents using regular expressions
3
- - Supports full regex syntax (eg. "log.*Error", "function\s+\w+", etc.)
4
- - Filter files by pattern with the include parameter (eg. "*.js", "*.{ts,tsx}")
5
- - Returns file paths and line numbers with at least one match sorted by modification time
6
- - Use this tool when you need to find files containing specific patterns
7
- - If you need to identify/count the number of matches within files, use the Bash tool with `rg` (ripgrep) directly. Do NOT use `grep`.
8
- - When you are doing an open-ended search that may require multiple rounds of globbing and grepping, use the Task tool instead
1
+ - Fast content search tool that works with any codebase size
2
+ - Searches file contents using regular expressions
3
+ - Supports full regex syntax (eg. "log.*Error", "function\s+\w+", etc.)
4
+ - Filter files by pattern with the include parameter (eg. "*.js", "*.{ts,tsx}")
5
+ - Returns file paths and line numbers with at least one match sorted by modification time
6
+ - Use this tool when you need to find files containing specific patterns
7
+ - If you need to identify/count the number of matches within files, use the Bash tool with `rg` (ripgrep) directly. Do NOT use `grep`.
8
+ - When you are doing an open-ended search that may require multiple rounds of globbing and grepping, use the Task tool instead
@@ -1,6 +1,6 @@
1
- - Lists all files and directories in a given path
2
- - Supports tree-style output showing directory hierarchy
3
- - Automatically ignores common directories like node_modules, .git, dist, build, and more
4
- - Supports custom ignore patterns via the ignore parameter
5
- - Returns file count and truncation status when limit is reached
6
- - When you need to find files by name patterns, prefer the Glob tool
1
+ - Lists all files and directories in a given path
2
+ - Supports tree-style output showing directory hierarchy
3
+ - Automatically ignores common directories like node_modules, .git, dist, build, and more
4
+ - Supports custom ignore patterns via the ignore parameter
5
+ - Returns file count and truncation status when limit is reached
6
+ - When you need to find files by name patterns, prefer the Glob tool
@@ -1,19 +1,19 @@
1
- Interact with Language Server Protocol (LSP) servers to get code intelligence features.
2
-
3
- Supported operations:
4
- - goToDefinition: Find where a symbol is defined
5
- - findReferences: Find all references to a symbol
6
- - hover: Get hover information (documentation, type info) for a symbol
7
- - documentSymbol: Get all symbols (functions, classes, variables) in a document
8
- - workspaceSymbol: Search for symbols across the entire workspace
9
- - goToImplementation: Find implementations of an interface or abstract method
10
- - prepareCallHierarchy: Get call hierarchy item at a position (functions/methods)
11
- - incomingCalls: Find all functions/methods that call the function at a position
12
- - outgoingCalls: Find all functions/methods called by the function at a position
13
-
14
- All operations require:
15
- - filePath: The file to operate on
16
- - line: The line number (1-based, as shown in editors)
17
- - character: The character offset (1-based, as shown in editors)
18
-
19
- Note: LSP servers must be configured for the file type. If no server is available, an error will be returned.
1
+ Interact with Language Server Protocol (LSP) servers to get code intelligence features.
2
+
3
+ Supported operations:
4
+ - goToDefinition: Find where a symbol is defined
5
+ - findReferences: Find all references to a symbol
6
+ - hover: Get hover information (documentation, type info) for a symbol
7
+ - documentSymbol: Get all symbols (functions, classes, variables) in a document
8
+ - workspaceSymbol: Search for symbols across the entire workspace
9
+ - goToImplementation: Find implementations of an interface or abstract method
10
+ - prepareCallHierarchy: Get call hierarchy item at a position (functions/methods)
11
+ - incomingCalls: Find all functions/methods that call the function at a position
12
+ - outgoingCalls: Find all functions/methods called by the function at a position
13
+
14
+ All operations require:
15
+ - filePath: The file to operate on
16
+ - line: The line number (1-based, as shown in editors)
17
+ - character: The character offset (1-based, as shown in editors)
18
+
19
+ Note: LSP servers must be configured for the file type. If no server is available, an error will be returned.
@@ -1,43 +1,43 @@
1
- This is a tool for making multiple edits to one or more files in a single operation. It is built on top of the Edit tool and allows you to perform multiple find-and-replace operations efficiently across multiple files.
2
-
3
- Before using this tool:
4
-
5
- 1. Use the Read tool to understand the file's contents and context
6
- 2. Verify the directory paths are correct
7
-
8
- To make multiple file edits, provide the following:
9
- 1. edits: An array of edit operations to perform, where each edit contains:
10
- - filePath: The absolute path to the file to modify (must be absolute, not relative)
11
- - oldString: The text to replace (must match the file contents exactly, including all whitespace and indentation)
12
- - newString: The edited text to replace the oldString
13
- - replaceAll: (Optional) Replace all occurrences of oldString. Defaults to false.
14
- 2. continueOnError: (Optional) Whether to continue processing remaining edits if one fails. Defaults to false.
15
-
16
- IMPORTANT:
17
- - You can edit multiple files in a single operation by providing different filePaths in the edits array
18
- - For edits to the same file, they are applied in sequence, in the order they are provided
19
- - Each edit operates on the result of the previous edit (for the same file)
20
- - By default, if any edit fails, the entire operation stops. Set continueOnError to true to continue processing remaining edits.
21
- - This tool is ideal when you need to make several changes across multiple files or different parts of the same file
22
-
23
- CRITICAL REQUIREMENTS:
24
- 1. All edits follow the same requirements as the single Edit tool
25
- 2. Plan your edits carefully to avoid conflicts between sequential operations on the same file
26
- 3. Each edit must have its own filePath specified
27
-
28
- WARNING:
29
- - The tool will fail if edits.oldString doesn't match the file contents exactly (including whitespace)
30
- - The tool will fail if edits.oldString and edits.newString are the same
31
- - For edits to the same file, ensure that earlier edits don't affect the text that later edits are trying to find
32
-
33
- When making edits:
34
- - Ensure all edits result in idiomatic, correct code
35
- - Do not leave the code in a broken state
36
- - Always use absolute file paths (starting with /)
37
- - Only use emojis if the user explicitly requests it. Avoid adding emojis to files unless asked.
38
- - Use replaceAll for replacing and renaming strings across the file. This parameter is useful if you want to rename a variable for instance.
39
-
40
- If you want to create a new file, use:
41
- - A new file path, including dir name if needed
42
- - First edit: empty oldString and the new file's contents as newString
43
- - Subsequent edits: normal edit operations on the created content
1
+ This is a tool for making multiple edits to one or more files in a single operation. It is built on top of the Edit tool and allows you to perform multiple find-and-replace operations efficiently across multiple files.
2
+
3
+ Before using this tool:
4
+
5
+ 1. Use the Read tool to understand the file's contents and context
6
+ 2. Verify the directory paths are correct
7
+
8
+ To make multiple file edits, provide the following:
9
+ 1. edits: An array of edit operations to perform, where each edit contains:
10
+ - filePath: The absolute path to the file to modify (must be absolute, not relative)
11
+ - oldString: The text to replace (must match the file contents exactly, including all whitespace and indentation)
12
+ - newString: The edited text to replace the oldString
13
+ - replaceAll: (Optional) Replace all occurrences of oldString. Defaults to false.
14
+ 2. continueOnError: (Optional) Whether to continue processing remaining edits if one fails. Defaults to false.
15
+
16
+ IMPORTANT:
17
+ - You can edit multiple files in a single operation by providing different filePaths in the edits array
18
+ - For edits to the same file, they are applied in sequence, in the order they are provided
19
+ - Each edit operates on the result of the previous edit (for the same file)
20
+ - By default, if any edit fails, the entire operation stops. Set continueOnError to true to continue processing remaining edits.
21
+ - This tool is ideal when you need to make several changes across multiple files or different parts of the same file
22
+
23
+ CRITICAL REQUIREMENTS:
24
+ 1. All edits follow the same requirements as the single Edit tool
25
+ 2. Plan your edits carefully to avoid conflicts between sequential operations on the same file
26
+ 3. Each edit must have its own filePath specified
27
+
28
+ WARNING:
29
+ - The tool will fail if edits.oldString doesn't match the file contents exactly (including whitespace)
30
+ - The tool will fail if edits.oldString and edits.newString are the same
31
+ - For edits to the same file, ensure that earlier edits don't affect the text that later edits are trying to find
32
+
33
+ When making edits:
34
+ - Ensure all edits result in idiomatic, correct code
35
+ - Do not leave the code in a broken state
36
+ - Always use absolute file paths (starting with /)
37
+ - Only use emojis if the user explicitly requests it. Avoid adding emojis to files unless asked.
38
+ - Use replaceAll for replacing and renaming strings across the file. This parameter is useful if you want to rename a variable for instance.
39
+
40
+ If you want to create a new file, use:
41
+ - A new file path, including dir name if needed
42
+ - First edit: empty oldString and the new file's contents as newString
43
+ - Subsequent edits: normal edit operations on the created content
@@ -1,60 +1,60 @@
1
- Manage existing PTY sessions including listing, inspecting, controlling, and terminating active terminal sessions. Provides comprehensive session lifecycle management capabilities.
2
-
3
- **!! ESSENTIAL TOOL FOR PROPER SESSION MANAGEMENT !!**
4
-
5
- **THIS TOOL IS MANDATORY FOR PROPER SESSION MANAGEMENT**
6
-
7
- Supported actions:
8
- - list: Show all active PTY sessions
9
- - get: Get detailed information about a specific session
10
- - resize: Change terminal dimensions for a session
11
- - write: Send input/data to an active session
12
- - close: Terminate a session gracefully
13
-
14
- Key capabilities:
15
- - Session inventory and monitoring
16
- - Real-time session inspection
17
- - Dynamic terminal resizing
18
- - Interactive session control
19
- - Resource cleanup and management
20
-
21
- Usage patterns:
22
- - Monitor running sessions: pty_manage { "action": "list" }
23
- - Inspect specific session: pty_manage { "action": "get", "sessionId": "session-id" }
24
- - Adjust terminal size: pty_manage { "action": "resize", "sessionId": "id", "cols": 120, "rows": 40 }
25
- - Send commands to session: pty_manage { "action": "write", "sessionId": "id", "data": "ls -la\n" }
26
- - Clean up sessions: pty_manage { "action": "close", "sessionId": "id" }
27
-
28
- Parameters:
29
- - action (required): Management operation to perform (list, get, resize, write, close)
30
- - sessionId (required for get/resize/write/close): Target session identifier
31
- - cols/rows (required for resize): New terminal dimensions
32
- - data (required for write): Data/input to send to session
33
-
34
- **!! CRITICAL RESOURCE CLEANUP REQUIREMENTS !!**
35
-
36
- **WARNING**: PTY sessions PERSIST in background and consume system resources!
37
-
38
- **IMPERATIVE ACTIONS**:
39
- 1. **ALWAYS** use this tool to properly terminate UNUSED sessions
40
- 2. **SESSIONS persist in background** and consume CPU, memory, file descriptors
41
- 3. **REGULAR session cleanup prevents SYSTEM RESOURCE EXHAUSTION**
42
- 4. **USE "list" action FREQUENTLY** to monitor active sessions
43
- 5. **USE "close" action IMMEDIATELY** to properly terminate sessions when done
44
- 6. **NEVER leave sessions running unnecessarily** - they do not auto-terminate
45
-
46
- **CONSEQUENCES OF POOR RESOURCE MANAGEMENT**:
47
- - System performance degradation
48
- - Resource exhaustion leading to crashes
49
- - Security vulnerabilities from persistent access
50
- - Inability to start new processes
51
- - File descriptor leaks
52
- - System instability
53
-
54
- **BEST PRACTICES**:
55
- - Check active sessions before creating new ones
56
- - Close sessions immediately after use
57
- - Monitor session list regularly
58
- - Clean up orphaned sessions promptly
59
-
60
- Security: Requires authorization for all management operations.
1
+ Manage existing PTY sessions including listing, inspecting, controlling, and terminating active terminal sessions. Provides comprehensive session lifecycle management capabilities.
2
+
3
+ **!! ESSENTIAL TOOL FOR PROPER SESSION MANAGEMENT !!**
4
+
5
+ **THIS TOOL IS MANDATORY FOR PROPER SESSION MANAGEMENT**
6
+
7
+ Supported actions:
8
+ - list: Show all active PTY sessions
9
+ - get: Get detailed information about a specific session
10
+ - resize: Change terminal dimensions for a session
11
+ - write: Send input/data to an active session
12
+ - close: Terminate a session gracefully
13
+
14
+ Key capabilities:
15
+ - Session inventory and monitoring
16
+ - Real-time session inspection
17
+ - Dynamic terminal resizing
18
+ - Interactive session control
19
+ - Resource cleanup and management
20
+
21
+ Usage patterns:
22
+ - Monitor running sessions: pty_manage { "action": "list" }
23
+ - Inspect specific session: pty_manage { "action": "get", "sessionId": "session-id" }
24
+ - Adjust terminal size: pty_manage { "action": "resize", "sessionId": "id", "cols": 120, "rows": 40 }
25
+ - Send commands to session: pty_manage { "action": "write", "sessionId": "id", "data": "ls -la\n" }
26
+ - Clean up sessions: pty_manage { "action": "close", "sessionId": "id" }
27
+
28
+ Parameters:
29
+ - action (required): Management operation to perform (list, get, resize, write, close)
30
+ - sessionId (required for get/resize/write/close): Target session identifier
31
+ - cols/rows (required for resize): New terminal dimensions
32
+ - data (required for write): Data/input to send to session
33
+
34
+ **!! CRITICAL RESOURCE CLEANUP REQUIREMENTS !!**
35
+
36
+ **WARNING**: PTY sessions PERSIST in background and consume system resources!
37
+
38
+ **IMPERATIVE ACTIONS**:
39
+ 1. **ALWAYS** use this tool to properly terminate UNUSED sessions
40
+ 2. **SESSIONS persist in background** and consume CPU, memory, file descriptors
41
+ 3. **REGULAR session cleanup prevents SYSTEM RESOURCE EXHAUSTION**
42
+ 4. **USE "list" action FREQUENTLY** to monitor active sessions
43
+ 5. **USE "close" action IMMEDIATELY** to properly terminate sessions when done
44
+ 6. **NEVER leave sessions running unnecessarily** - they do not auto-terminate
45
+
46
+ **CONSEQUENCES OF POOR RESOURCE MANAGEMENT**:
47
+ - System performance degradation
48
+ - Resource exhaustion leading to crashes
49
+ - Security vulnerabilities from persistent access
50
+ - Inability to start new processes
51
+ - File descriptor leaks
52
+ - System instability
53
+
54
+ **BEST PRACTICES**:
55
+ - Check active sessions before creating new ones
56
+ - Close sessions immediately after use
57
+ - Monitor session list regularly
58
+ - Clean up orphaned sessions promptly
59
+
60
+ Security: Requires authorization for all management operations.
@@ -1,33 +1,33 @@
1
- Use this tool when you need to ask the user questions during execution. This allows you to:
2
- 1. Gather user preferences or requirements
3
- 2. Clarify ambiguous instructions
4
- 3. Get decisions on implementation choices as you work
5
- 4. Offer choices to the user about what direction to take.
6
-
7
- Parameters:
8
- - `question`: Complete question text to display
9
- - `header`: Very short label (max 30 chars) that summarizes the question
10
- - `options`: Array of available choices, each with:
11
- - `label`: Display text (1-5 words, concise)
12
- - `description`: Explanation of the choice
13
- - `multiple`: (optional) Allow selecting multiple choices (default: false)
14
- - `custom`: (optional) Allow typing a custom answer (default: true)
15
-
16
- Custom input behavior:
17
- - When `custom` is true (default): User can either select from options OR type their own answer
18
- - System will show: "Hint: Enter option number or custom text"
19
- - User can input any text as a custom answer
20
- - IMPORTANT: Do NOT add a "[0] Custom input" option - the system handles this automatically via the hint message
21
- - When `custom` is false: User MUST select from the provided options only
22
- - System will show: "Hint: Only valid option numbers allowed"
23
- - Custom text input will be rejected as invalid
24
- - Use this when you need strict validation (e.g., yes/no questions, predefined choices)
25
-
26
- Best practices:
27
- - Set `custom: false` when you need strict validation and want to ensure users only select from predefined options
28
- - Set `custom: true` (or omit it) when you want to allow flexibility for users to provide their own answers
29
- - Keep option labels concise (1-5 words)
30
- - Provide clear descriptions for each option to help users understand the implications
31
- - If you recommend a specific option, make that the first option in the list and add "(Recommended)" at the end of the label
32
- - For yes/no questions, provide explicit "Yes" and "No" options and consider setting `custom: false` for strict validation
33
- - NEVER add a "Custom input" or "Other" option when custom is true - the system automatically allows custom input through the hint message
1
+ Use this tool when you need to ask the user questions during execution. This allows you to:
2
+ 1. Gather user preferences or requirements
3
+ 2. Clarify ambiguous instructions
4
+ 3. Get decisions on implementation choices as you work
5
+ 4. Offer choices to the user about what direction to take.
6
+
7
+ Parameters:
8
+ - `question`: Complete question text to display
9
+ - `header`: Very short label (max 30 chars) that summarizes the question
10
+ - `options`: Array of available choices, each with:
11
+ - `label`: Display text (1-5 words, concise)
12
+ - `description`: Explanation of the choice
13
+ - `multiple`: (optional) Allow selecting multiple choices (default: false)
14
+ - `custom`: (optional) Allow typing a custom answer (default: true)
15
+
16
+ Custom input behavior:
17
+ - When `custom` is true (default): User can either select from options OR type their own answer
18
+ - System will show: "Hint: Enter option number or custom text"
19
+ - User can input any text as a custom answer
20
+ - IMPORTANT: Do NOT add a "[0] Custom input" option - the system handles this automatically via the hint message
21
+ - When `custom` is false: User MUST select from the provided options only
22
+ - System will show: "Hint: Only valid option numbers allowed"
23
+ - Custom text input will be rejected as invalid
24
+ - Use this when you need strict validation (e.g., yes/no questions, predefined choices)
25
+
26
+ Best practices:
27
+ - Set `custom: false` when you need strict validation and want to ensure users only select from predefined options
28
+ - Set `custom: true` (or omit it) when you want to allow flexibility for users to provide their own answers
29
+ - Keep option labels concise (1-5 words)
30
+ - Provide clear descriptions for each option to help users understand the implications
31
+ - If you recommend a specific option, make that the first option in the list and add "(Recommended)" at the end of the label
32
+ - For yes/no questions, provide explicit "Yes" and "No" options and consider setting `custom: false` for strict validation
33
+ - NEVER add a "Custom input" or "Other" option when custom is true - the system automatically allows custom input through the hint message
@@ -1,14 +1,14 @@
1
- Read a file or directory from the local filesystem. If the path does not exist, an error is returned.
2
-
3
- Usage:
4
- - The filePath parameter should be an absolute path.
5
- - By default, this tool returns up to 2000 lines from the start of the file.
6
- - The offset parameter is the line number to start from (1-indexed).
7
- - To read later sections, call this tool again with a larger offset.
8
- - Use the grep tool to find specific content in large files or files with long lines.
9
- - If you are unsure of the correct file path, use the glob tool to look up filenames by glob pattern.
10
- - Contents are returned with each line prefixed by its line number as `<line>: <content>`. For example, if a file has contents "foo\n", you will receive "1: foo\n". For directories, entries are returned one per line (without line numbers) with a trailing `/` for subdirectories.
11
- - Any line longer than 2000 characters is truncated.
12
- - Call this tool in parallel when you know there are multiple files you want to read.
13
- - Avoid tiny repeated slices (30 line chunks). If you need more context, read a larger window.
14
- - This tool can read image files and PDFs and return them as file attachments.
1
+ Read a file or directory from the local filesystem. If the path does not exist, an error is returned.
2
+
3
+ Usage:
4
+ - The filePath parameter should be an absolute path.
5
+ - By default, this tool returns up to 2000 lines from the start of the file.
6
+ - The offset parameter is the line number to start from (1-indexed).
7
+ - To read later sections, call this tool again with a larger offset.
8
+ - Use the grep tool to find specific content in large files or files with long lines.
9
+ - If you are unsure of the correct file path, use the glob tool to look up filenames by glob pattern.
10
+ - Contents are returned with each line prefixed by its line number as `<line>: <content>`. For example, if a file has contents "foo\n", you will receive "1: foo\n". For directories, entries are returned one per line (without line numbers) with a trailing `/` for subdirectories.
11
+ - Any line longer than 2000 characters is truncated.
12
+ - Call this tool in parallel when you know there are multiple files you want to read.
13
+ - Avoid tiny repeated slices (30 line chunks). If you need more context, read a larger window.
14
+ - This tool can read image files and PDFs and return them as file attachments.
@@ -1,124 +1,124 @@
1
- Use this tool to create and manage a structured task list for your current coding session. This helps you track progress, organize complex tasks, and demonstrate thoroughness to the user.
2
-
3
- ## Operations
4
-
5
- This tool supports two operations:
6
-
7
- ### 1. write - Write/Update TODO list
8
- Use this operation to create, update, or replace the entire TODO list.
9
-
10
- **Parameters:**
11
- - `operation`: "write" (required)
12
- - `todos`: Complete TODO list with all task items (required). Can be either an array JSON string.
13
-
14
- **When to Use:**
15
- - Complex multistep tasks - When a task requires 3 or more distinct steps or actions
16
- - Non-trivial and complex tasks - Tasks that require careful planning or multiple operations
17
- - User explicitly requests todo list - When the user directly asks you to use the todo list
18
- - User provides multiple tasks - When users provide a list of things to be done (numbered or comma-separated)
19
- - After receiving new instructions - Immediately capture user requirements as todos
20
- - After completing a task - Mark it complete and add any new follow-up tasks
21
- - When starting a new task - Mark it as in_progress
22
-
23
- ### 2. read - Read TODO list
24
- Use this operation to read the current TODO list for the session.
25
-
26
- **Parameters:**
27
- - `operation`: "read" (required)
28
-
29
- **When to Use:**
30
- - At the beginning of conversations to see what's pending
31
- - Before starting new tasks to prioritize work
32
- - When the user asks about previous tasks or plans
33
- - Whenever you're uncertain about what to do next
34
- - After completing tasks to update your understanding of remaining work
35
- - After every few messages to ensure you're on track
36
-
37
- ## When NOT to Use This Tool
38
-
39
- Skip using this tool when:
40
- 1. There is only a single, straightforward task
41
- 2. The task is trivial and tracking it provides no organizational benefit
42
- 3. The task can be completed in less than 3 trivial steps
43
- 4. The task is purely conversational or informational
44
-
45
- NOTE: You should not use this tool if there is only one trivial task to do. In this case you are better off just doing the task directly.
46
-
47
- ## Examples
48
-
49
- ### Example 1: write operation
50
- ```
51
- User: I want to add a dark mode toggle to the application settings. Make sure you run the tests and build when you're done!
52
- Assistant: I'll help add a dark mode toggle to your application settings. Let me create a todo list to track this implementation.
53
- *Calls todo tool with operation="write" and todos=[
54
- { id: "1", content: "Create dark mode toggle component in Settings page", status: "in_progress", priority: "high" },
55
- { id: "2", content: "Add dark mode state management (context/store)", status: "pending", priority: "high" },
56
- { id: "3", content: "Implement CSS-in-JS styles for dark theme", status: "pending", priority: "medium" },
57
- { id: "4", content: "Update existing components to support theme switching", status: "pending", priority: "medium" },
58
- { id: "5", content: "Run tests and build process", status: "pending", priority: "high" }
59
- ]*
60
- Begins working on the first task
61
- ```
62
-
63
- ### Example 2: read operation
64
- ```
65
- User: What tasks do I have pending?
66
- Assistant: Let me check your TODO list.
67
- *Calls todo tool with operation="read"*
68
- Based on your TODO list, you have the following tasks pending:
69
- 1. Create dark mode toggle component in Settings page (in_progress)
70
- 2. Add dark mode state management (pending)
71
- 3. Implement CSS-in-JS styles for dark theme (pending)
72
- ...
73
- ```
74
-
75
- ### Example 3: write operation with JSON string format
76
- ```
77
- User: I need to add some tasks to my todo list
78
- Assistant: I'll add those tasks to your todo list.
79
- *Calls todo tool with operation="write" and todos='[{"id":"1","content":"New task 1","status":"pending","priority":"high"},{"id":"2","content":"New task 2","status":"pending","priority":"medium"}]'*
80
- Tasks have been added to your todo list.
81
- ```
82
-
83
- ### Example 4: write operation with array format
84
- ```
85
- User: Help me rename the function getCwd to getCurrentWorkingDirectory across my project
86
- Assistant: Let me first search through your codebase to find all occurrences of 'getCwd'.
87
- *Uses grep or search tools to locate all instances of getCwd in the codebase*
88
- Assistant: I've found 15 instances of 'getCwd' across 8 different files. Let me create a todo list to track these changes.
89
- *Calls todo tool with operation="write" and todos=[
90
- { id: "1", content: "Rename getCwd to getCurrentWorkingDirectory in src/utils.ts", status: "in_progress", priority: "high" },
91
- { id: "2", content: "Rename getCwd to getCurrentWorkingDirectory in src/cli.ts", status: "pending", priority: "high" },
92
- ...
93
- ]*
94
- ```
95
-
96
- ## Task States and Management
97
-
98
- **Task States:**
99
- - `pending`: Task not yet started
100
- - `in_progress`: Currently working on (limit to ONE task at a time)
101
- - `completed`: Task finished successfully
102
- - `cancelled`: Task no longer needed
103
-
104
- **Task Management:**
105
- - Update task status in real-time as you work
106
- - Mark tasks complete IMMEDIATELY after finishing (don't batch completions)
107
- - Only have ONE task in_progress at any time
108
- - Complete current tasks before starting new ones
109
- - Cancel tasks that become irrelevant
110
-
111
- **Task Breakdown:**
112
- - Create specific, actionable items
113
- - Break complex tasks into smaller, manageable steps
114
- - Use clear, descriptive task names
115
-
116
- ## Task Item Structure
117
-
118
- Each task item should have:
119
- - `id`: Unique identifier (string or number)
120
- - `content`: Description of the task (string)
121
- - `status`: Current state ("pending", "in_progress", "completed", "cancelled")
122
- - `priority`: Priority level (optional, "high", "medium", "low")
123
-
124
- When in doubt, use this tool. Being proactive with task management demonstrates attentiveness and ensures you complete all requirements successfully.
1
+ Use this tool to create and manage a structured task list for your current coding session. This helps you track progress, organize complex tasks, and demonstrate thoroughness to the user.
2
+
3
+ ## Operations
4
+
5
+ This tool supports two operations:
6
+
7
+ ### 1. write - Write/Update TODO list
8
+ Use this operation to create, update, or replace the entire TODO list.
9
+
10
+ **Parameters:**
11
+ - `operation`: "write" (required)
12
+ - `todos`: Complete TODO list with all task items (required). Can be either an array JSON string.
13
+
14
+ **When to Use:**
15
+ - Complex multistep tasks - When a task requires 3 or more distinct steps or actions
16
+ - Non-trivial and complex tasks - Tasks that require careful planning or multiple operations
17
+ - User explicitly requests todo list - When the user directly asks you to use the todo list
18
+ - User provides multiple tasks - When users provide a list of things to be done (numbered or comma-separated)
19
+ - After receiving new instructions - Immediately capture user requirements as todos
20
+ - After completing a task - Mark it complete and add any new follow-up tasks
21
+ - When starting a new task - Mark it as in_progress
22
+
23
+ ### 2. read - Read TODO list
24
+ Use this operation to read the current TODO list for the session.
25
+
26
+ **Parameters:**
27
+ - `operation`: "read" (required)
28
+
29
+ **When to Use:**
30
+ - At the beginning of conversations to see what's pending
31
+ - Before starting new tasks to prioritize work
32
+ - When the user asks about previous tasks or plans
33
+ - Whenever you're uncertain about what to do next
34
+ - After completing tasks to update your understanding of remaining work
35
+ - After every few messages to ensure you're on track
36
+
37
+ ## When NOT to Use This Tool
38
+
39
+ Skip using this tool when:
40
+ 1. There is only a single, straightforward task
41
+ 2. The task is trivial and tracking it provides no organizational benefit
42
+ 3. The task can be completed in less than 3 trivial steps
43
+ 4. The task is purely conversational or informational
44
+
45
+ NOTE: You should not use this tool if there is only one trivial task to do. In this case you are better off just doing the task directly.
46
+
47
+ ## Examples
48
+
49
+ ### Example 1: write operation
50
+ ```
51
+ User: I want to add a dark mode toggle to the application settings. Make sure you run the tests and build when you're done!
52
+ Assistant: I'll help add a dark mode toggle to your application settings. Let me create a todo list to track this implementation.
53
+ *Calls todo tool with operation="write" and todos=[
54
+ { id: "1", content: "Create dark mode toggle component in Settings page", status: "in_progress", priority: "high" },
55
+ { id: "2", content: "Add dark mode state management (context/store)", status: "pending", priority: "high" },
56
+ { id: "3", content: "Implement CSS-in-JS styles for dark theme", status: "pending", priority: "medium" },
57
+ { id: "4", content: "Update existing components to support theme switching", status: "pending", priority: "medium" },
58
+ { id: "5", content: "Run tests and build process", status: "pending", priority: "high" }
59
+ ]*
60
+ Begins working on the first task
61
+ ```
62
+
63
+ ### Example 2: read operation
64
+ ```
65
+ User: What tasks do I have pending?
66
+ Assistant: Let me check your TODO list.
67
+ *Calls todo tool with operation="read"*
68
+ Based on your TODO list, you have the following tasks pending:
69
+ 1. Create dark mode toggle component in Settings page (in_progress)
70
+ 2. Add dark mode state management (pending)
71
+ 3. Implement CSS-in-JS styles for dark theme (pending)
72
+ ...
73
+ ```
74
+
75
+ ### Example 3: write operation with JSON string format
76
+ ```
77
+ User: I need to add some tasks to my todo list
78
+ Assistant: I'll add those tasks to your todo list.
79
+ *Calls todo tool with operation="write" and todos='[{"id":"1","content":"New task 1","status":"pending","priority":"high"},{"id":"2","content":"New task 2","status":"pending","priority":"medium"}]'*
80
+ Tasks have been added to your todo list.
81
+ ```
82
+
83
+ ### Example 4: write operation with array format
84
+ ```
85
+ User: Help me rename the function getCwd to getCurrentWorkingDirectory across my project
86
+ Assistant: Let me first search through your codebase to find all occurrences of 'getCwd'.
87
+ *Uses grep or search tools to locate all instances of getCwd in the codebase*
88
+ Assistant: I've found 15 instances of 'getCwd' across 8 different files. Let me create a todo list to track these changes.
89
+ *Calls todo tool with operation="write" and todos=[
90
+ { id: "1", content: "Rename getCwd to getCurrentWorkingDirectory in src/utils.ts", status: "in_progress", priority: "high" },
91
+ { id: "2", content: "Rename getCwd to getCurrentWorkingDirectory in src/cli.ts", status: "pending", priority: "high" },
92
+ ...
93
+ ]*
94
+ ```
95
+
96
+ ## Task States and Management
97
+
98
+ **Task States:**
99
+ - `pending`: Task not yet started
100
+ - `in_progress`: Currently working on (limit to ONE task at a time)
101
+ - `completed`: Task finished successfully
102
+ - `cancelled`: Task no longer needed
103
+
104
+ **Task Management:**
105
+ - Update task status in real-time as you work
106
+ - Mark tasks complete IMMEDIATELY after finishing (don't batch completions)
107
+ - Only have ONE task in_progress at any time
108
+ - Complete current tasks before starting new ones
109
+ - Cancel tasks that become irrelevant
110
+
111
+ **Task Breakdown:**
112
+ - Create specific, actionable items
113
+ - Break complex tasks into smaller, manageable steps
114
+ - Use clear, descriptive task names
115
+
116
+ ## Task Item Structure
117
+
118
+ Each task item should have:
119
+ - `id`: Unique identifier (string or number)
120
+ - `content`: Description of the task (string)
121
+ - `status`: Current state ("pending", "in_progress", "completed", "cancelled")
122
+ - `priority`: Priority level (optional, "high", "medium", "low")
123
+
124
+ When in doubt, use this tool. Being proactive with task management demonstrates attentiveness and ensures you complete all requirements successfully.