@easbot/agent 0.2.6 → 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.
- package/LICENSE +21 -21
- package/dist/assets/txt/agent/generate.txt +75 -75
- package/dist/assets/txt/agent/prompt/compaction.txt +54 -54
- package/dist/assets/txt/agent/prompt/summary.txt +12 -12
- package/dist/assets/txt/command/builtin/arch.txt +26 -26
- package/dist/assets/txt/command/builtin/init.txt +10 -10
- package/dist/assets/txt/command/builtin/review.txt +97 -97
- package/dist/assets/txt/context/prompt/build-switch.txt +5 -5
- package/dist/assets/txt/context/prompt/coder-plan.txt +69 -69
- package/dist/assets/txt/context/prompt/codex.txt +79 -79
- package/dist/assets/txt/context/prompt/default.txt +105 -105
- package/dist/assets/txt/context/prompt/gpt.txt +107 -107
- package/dist/assets/txt/context/prompt/kimi.txt +95 -95
- package/dist/assets/txt/context/prompt/max-steps.txt +15 -15
- package/dist/assets/txt/context/prompt/plan-reminder-anthropic.txt +67 -67
- package/dist/assets/txt/context/prompt/plan.txt +27 -27
- package/dist/assets/txt/context/template/BOOTSTRAP.txt +238 -238
- package/dist/assets/txt/context/template/CONTEXT.txt +51 -51
- package/dist/assets/txt/model/graph-summary.txt +54 -54
- package/dist/assets/txt/model/graph.txt +85 -85
- package/dist/assets/txt/model/rerank.txt +42 -42
- package/dist/assets/txt/model/summary.txt +52 -52
- package/dist/assets/txt/session/prompt/build-switch.txt +5 -5
- package/dist/assets/txt/session/prompt/codex.txt +79 -79
- package/dist/assets/txt/session/prompt/default.txt +105 -105
- package/dist/assets/txt/session/prompt/gpt.txt +107 -107
- package/dist/assets/txt/session/prompt/kimi.txt +95 -95
- package/dist/assets/txt/session/prompt/max-steps.txt +15 -15
- package/dist/assets/txt/session/prompt/plan-reminder-anthropic.txt +67 -67
- package/dist/assets/txt/session/prompt/plan.txt +26 -26
- package/dist/assets/txt/tool/apply_patch.txt +53 -53
- package/dist/assets/txt/tool/batch.txt +23 -23
- package/dist/assets/txt/tool/edit.txt +10 -10
- package/dist/assets/txt/tool/glob.txt +6 -6
- package/dist/assets/txt/tool/grep.txt +8 -8
- package/dist/assets/txt/tool/ls.txt +6 -6
- package/dist/assets/txt/tool/lsp.txt +19 -19
- package/dist/assets/txt/tool/multiedit.txt +43 -43
- package/dist/assets/txt/tool/pty_manage.txt +60 -60
- package/dist/assets/txt/tool/question.txt +33 -33
- package/dist/assets/txt/tool/read.txt +14 -14
- package/dist/assets/txt/tool/todo.txt +124 -124
- package/dist/assets/txt/tool/webfetch.txt +13 -13
- package/dist/assets/txt/tool/websearch.txt +14 -14
- package/dist/assets/txt/tool/write.txt +8 -8
- package/dist/cli.cjs +1 -1
- package/dist/cli.mjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +12 -12
|
@@ -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.
|