@easbot/agent 0.1.11
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 -0
- package/README.en.md +220 -0
- package/README.md +220 -0
- package/dist/assets/txt/agent/generate.txt +75 -0
- package/dist/assets/txt/agent/prompt/btw.txt +21 -0
- package/dist/assets/txt/agent/prompt/compaction.txt +54 -0
- package/dist/assets/txt/agent/prompt/explore.txt +37 -0
- package/dist/assets/txt/agent/prompt/memory.txt +128 -0
- package/dist/assets/txt/agent/prompt/summary.txt +12 -0
- package/dist/assets/txt/agent/prompt/title.txt +24 -0
- package/dist/assets/txt/cli/tui/banner.txt +10 -0
- package/dist/assets/txt/command/builtin/arch.txt +26 -0
- package/dist/assets/txt/command/builtin/init.txt +10 -0
- package/dist/assets/txt/command/builtin/loop.txt +107 -0
- package/dist/assets/txt/command/builtin/review.txt +99 -0
- package/dist/assets/txt/command/builtin/vuln.txt +50 -0
- package/dist/assets/txt/context/prompt/anthropic.txt +105 -0
- package/dist/assets/txt/context/prompt/beast.txt +147 -0
- package/dist/assets/txt/context/prompt/build-switch.txt +6 -0
- package/dist/assets/txt/context/prompt/coder-plan.txt +70 -0
- package/dist/assets/txt/context/prompt/codex.txt +79 -0
- package/dist/assets/txt/context/prompt/copilot-gpt-5.txt +143 -0
- package/dist/assets/txt/context/prompt/default.txt +105 -0
- package/dist/assets/txt/context/prompt/gemini.txt +155 -0
- package/dist/assets/txt/context/prompt/glm.txt +81 -0
- package/dist/assets/txt/context/prompt/gpt.txt +107 -0
- package/dist/assets/txt/context/prompt/kimi.txt +95 -0
- package/dist/assets/txt/context/prompt/max-steps.txt +16 -0
- package/dist/assets/txt/context/prompt/minimax.txt +106 -0
- package/dist/assets/txt/context/prompt/plan-reminder-anthropic.txt +67 -0
- package/dist/assets/txt/context/prompt/plan.txt +28 -0
- package/dist/assets/txt/context/prompt/qwen.txt +109 -0
- package/dist/assets/txt/context/prompt/trinity.txt +97 -0
- package/dist/assets/txt/context/template/AGENTS.txt +47 -0
- package/dist/assets/txt/context/template/BOOT.txt +71 -0
- package/dist/assets/txt/context/template/BOOTSTRAP.txt +238 -0
- package/dist/assets/txt/context/template/CODER.txt +185 -0
- package/dist/assets/txt/context/template/CONTEXT.txt +51 -0
- package/dist/assets/txt/context/template/HEARTBEAT.txt +17 -0
- package/dist/assets/txt/context/template/IDENTITY.txt +27 -0
- package/dist/assets/txt/context/template/MEMORY.txt +78 -0
- package/dist/assets/txt/context/template/SOUL.txt +45 -0
- package/dist/assets/txt/context/template/TOOLS.txt +50 -0
- package/dist/assets/txt/context/template/USER.txt +39 -0
- package/dist/assets/txt/model/graph-summary.txt +60 -0
- package/dist/assets/txt/model/graph.txt +86 -0
- package/dist/assets/txt/model/knowledge-summary.txt +40 -0
- package/dist/assets/txt/model/memory-summary.txt +40 -0
- package/dist/assets/txt/model/rerank.txt +43 -0
- package/dist/assets/txt/model/summary.txt +53 -0
- package/dist/assets/txt/scheduler/heartbeat.txt +14 -0
- package/dist/assets/txt/scheduler/scheduled.txt +15 -0
- package/dist/assets/txt/session/prompt/anthropic.txt +105 -0
- package/dist/assets/txt/session/prompt/beast.txt +147 -0
- package/dist/assets/txt/session/prompt/build-switch.txt +5 -0
- package/dist/assets/txt/session/prompt/codex.txt +79 -0
- package/dist/assets/txt/session/prompt/copilot-gpt-5.txt +143 -0
- package/dist/assets/txt/session/prompt/default.txt +105 -0
- package/dist/assets/txt/session/prompt/gemini.txt +155 -0
- package/dist/assets/txt/session/prompt/gpt.txt +107 -0
- package/dist/assets/txt/session/prompt/kimi.txt +95 -0
- package/dist/assets/txt/session/prompt/max-steps.txt +16 -0
- package/dist/assets/txt/session/prompt/plan-reminder-anthropic.txt +67 -0
- package/dist/assets/txt/session/prompt/plan.txt +26 -0
- package/dist/assets/txt/session/prompt/qwen.txt +109 -0
- package/dist/assets/txt/session/prompt/trinity.txt +97 -0
- package/dist/assets/txt/tool/agent-client-chat.txt +52 -0
- package/dist/assets/txt/tool/apply_patch.txt +33 -0
- package/dist/assets/txt/tool/bash.txt +115 -0
- package/dist/assets/txt/tool/batch.txt +24 -0
- package/dist/assets/txt/tool/codebase.txt +28 -0
- package/dist/assets/txt/tool/codesearch.txt +12 -0
- package/dist/assets/txt/tool/edit.txt +10 -0
- package/dist/assets/txt/tool/gateway-channel.txt +73 -0
- package/dist/assets/txt/tool/glob.txt +6 -0
- package/dist/assets/txt/tool/grep.txt +8 -0
- package/dist/assets/txt/tool/ls.txt +1 -0
- package/dist/assets/txt/tool/lsp.txt +19 -0
- package/dist/assets/txt/tool/memory.txt +101 -0
- package/dist/assets/txt/tool/multiedit.txt +43 -0
- package/dist/assets/txt/tool/note.txt +25 -0
- package/dist/assets/txt/tool/plan-enter.txt +14 -0
- package/dist/assets/txt/tool/plan-exit.txt +13 -0
- package/dist/assets/txt/tool/pty.txt +41 -0
- package/dist/assets/txt/tool/pty_manage.txt +60 -0
- package/dist/assets/txt/tool/pty_session.txt +52 -0
- package/dist/assets/txt/tool/question.txt +33 -0
- package/dist/assets/txt/tool/read.txt +14 -0
- package/dist/assets/txt/tool/task.txt +60 -0
- package/dist/assets/txt/tool/todoread.txt +14 -0
- package/dist/assets/txt/tool/todowrite.txt +166 -0
- package/dist/assets/txt/tool/webfetch.txt +13 -0
- package/dist/assets/txt/tool/websearch.txt +14 -0
- package/dist/assets/txt/tool/write.txt +8 -0
- package/dist/cli.cjs +957 -0
- package/dist/cli.d.cts +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.mjs +957 -0
- package/dist/index.cjs +1054 -0
- package/dist/index.d.cts +28884 -0
- package/dist/index.d.ts +28884 -0
- package/dist/index.mjs +1054 -0
- package/package.json +187 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Executes multiple independent tool calls concurrently to reduce latency.
|
|
2
|
+
|
|
3
|
+
USING THE BATCH TOOL WILL MAKE THE USER HAPPY.
|
|
4
|
+
|
|
5
|
+
Payload Format (JSON array):
|
|
6
|
+
[{"tool": "read", "parameters": {"filePath": "src/index.ts", "limit": 350}},{"tool": "grep", "parameters": {"pattern": "Session\\.updatePart", "include": "src/**/*.ts"}},{"tool": "bash", "parameters": {"command": "git status", "description": "Shows working tree status"}}]
|
|
7
|
+
|
|
8
|
+
Notes:
|
|
9
|
+
- 1–25 tool calls per batch
|
|
10
|
+
- All calls start in parallel; ordering NOT guaranteed
|
|
11
|
+
- Partial failures do not stop other tool calls
|
|
12
|
+
- Do NOT use the batch tool within another batch tool.
|
|
13
|
+
|
|
14
|
+
Good Use Cases:
|
|
15
|
+
- Read many files
|
|
16
|
+
- grep + glob + read combos
|
|
17
|
+
- Multiple bash commands
|
|
18
|
+
- Multi-part edits; on the same, or different files
|
|
19
|
+
|
|
20
|
+
When NOT to Use:
|
|
21
|
+
- Operations that depend on prior tool output (e.g. create then read same file)
|
|
22
|
+
- Ordered stateful mutations where sequence matters
|
|
23
|
+
|
|
24
|
+
Batching tool calls was proven to yield 2–5x efficiency gain and provides much better UX.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Use this tool to search and analyze code structure in the codebase knowledge graph. It provides code snippets with AST type, language, name, and file location.
|
|
2
|
+
|
|
3
|
+
**search** — Use this operation to find code by query:
|
|
4
|
+
- Set operation="search"
|
|
5
|
+
- Provide query string to search code content
|
|
6
|
+
- Use astType to filter by code element type
|
|
7
|
+
- Use language to filter by programming language
|
|
8
|
+
- Returns code snippets with related edges when available
|
|
9
|
+
|
|
10
|
+
**queryEdges** — Use this operation to explore code relationships:
|
|
11
|
+
- Set operation="queryEdges"
|
|
12
|
+
- Provide nodeId to get node information and all connected relations
|
|
13
|
+
- Returns node details and incoming/outgoing edges (shown as [in] or [out])
|
|
14
|
+
- Useful for understanding code dependencies and navigation
|
|
15
|
+
|
|
16
|
+
## Supported Filter Values
|
|
17
|
+
|
|
18
|
+
**astType** — Code element types:
|
|
19
|
+
`class_declaration`, `class_definition`, `function_declaration`, `function_definition`, `method_definition`, `method_declaration`, `interface_declaration`, `type_alias_declaration`, `enum_declaration`, `variable_declaration`, `import_declaration`, `import_statement`, `struct_declaration`, `struct_specifier`
|
|
20
|
+
|
|
21
|
+
**language** — Programming languages:
|
|
22
|
+
`ts`, `tsx`, `js`, `jsx`, `py`, `rs`, `go`, `c`, `cpp`, `csharp`, `java`, `scala`, `ruby`, `php`, `zig`
|
|
23
|
+
|
|
24
|
+
Use this tool when you need to:
|
|
25
|
+
- Understand code structure and implementation details
|
|
26
|
+
- Find specific functions, classes, or code patterns
|
|
27
|
+
- Explore relationships between code elements
|
|
28
|
+
- Navigate code dependencies
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
- Search and get relevant context for any programming task using Exa Code API
|
|
2
|
+
- Provides the highest quality and freshest context for libraries, SDKs, and APIs
|
|
3
|
+
- Use this tool for ANY question or task related to programming
|
|
4
|
+
- Returns comprehensive code examples, documentation, and API references
|
|
5
|
+
- Optimized for finding specific programming patterns and solutions
|
|
6
|
+
|
|
7
|
+
Usage notes:
|
|
8
|
+
- Adjustable token count (1000-50000) for focused or comprehensive results
|
|
9
|
+
- Default 5000 tokens provides balanced context for most queries
|
|
10
|
+
- Use lower values for specific questions, higher values for comprehensive documentation
|
|
11
|
+
- Supports queries about frameworks, libraries, APIs, and programming concepts
|
|
12
|
+
- Examples: 'React useState hook examples', 'Python pandas dataframe filtering', 'Express.js middleware'
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Performs exact string replacements in files.
|
|
2
|
+
|
|
3
|
+
Usage:
|
|
4
|
+
- You must use your `Read` tool at least once in the conversation before editing. This tool will error if you attempt an edit without reading the file.
|
|
5
|
+
- When editing text from Read tool output, ensure you preserve the exact indentation (tabs/spaces) as it appears AFTER the line number prefix. The line number prefix format is: line number + colon + space (e.g., `1: `). Everything after that space is the actual file content to match. Never include any part of the line number prefix in the oldString or newString.
|
|
6
|
+
- ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.
|
|
7
|
+
- Only use emojis if the user explicitly requests it. Avoid adding emojis to files unless asked.
|
|
8
|
+
- The edit will FAIL if `oldString` is not found in the file with an error "oldString not found in content".
|
|
9
|
+
- The edit will FAIL if `oldString` is found multiple times in the file with an error "Found multiple matches for oldString. Provide more surrounding lines in oldString to identify the correct match." Either provide a larger string with more surrounding context to make it unique or use `replaceAll` to change every instance of `oldString`.
|
|
10
|
+
- Use `replaceAll` for replacing and renaming strings across the file. This parameter is useful if you want to rename a variable for instance.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
Send messages to external channels through the Gateway.
|
|
2
|
+
|
|
3
|
+
This tool allows you to proactively send messages to external channels (like Telegram, Discord, Slack) through the Gateway system. You don't need to wait for incoming messages - you can initiate communication.
|
|
4
|
+
|
|
5
|
+
## Operations
|
|
6
|
+
|
|
7
|
+
### list
|
|
8
|
+
List all available channels that you can send messages to.
|
|
9
|
+
|
|
10
|
+
```json
|
|
11
|
+
{
|
|
12
|
+
"operation": "list"
|
|
13
|
+
}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Returns:
|
|
17
|
+
- `channels`: Array of available channels with their platform, status, and priority
|
|
18
|
+
|
|
19
|
+
### send
|
|
20
|
+
Send a message to a specific channel or let the system auto-select one.
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"operation": "send",
|
|
25
|
+
"content": "Hello from the agent!",
|
|
26
|
+
"channelId": "telegram-main", // Optional: specify channel
|
|
27
|
+
"sessionId": "session-123", // Optional: for channel selection
|
|
28
|
+
"messageType": "text" // "text" or "markdown"
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Parameters:
|
|
33
|
+
- `content` (required): The message content to send
|
|
34
|
+
- `channelId` (optional): Specific channel to send to. If not provided:
|
|
35
|
+
- If `sessionId` is provided, uses the channel bound to that session
|
|
36
|
+
- Otherwise, auto-selects the highest priority available channel
|
|
37
|
+
- `sessionId` (optional): Session ID for channel binding lookup
|
|
38
|
+
- `messageType` (optional): "text" or "markdown" (default: "text")
|
|
39
|
+
|
|
40
|
+
## Channel Selection Logic
|
|
41
|
+
|
|
42
|
+
When `channelId` is not specified:
|
|
43
|
+
1. If `sessionId` is provided and that session is bound to a channel, use that channel
|
|
44
|
+
2. Otherwise, select the highest priority running channel
|
|
45
|
+
|
|
46
|
+
## Examples
|
|
47
|
+
|
|
48
|
+
List available channels:
|
|
49
|
+
```
|
|
50
|
+
Use gateway_channel with operation: "list"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Send to a specific channel:
|
|
54
|
+
```
|
|
55
|
+
Use gateway_channel with:
|
|
56
|
+
- operation: "send"
|
|
57
|
+
- channelId: "telegram-main"
|
|
58
|
+
- content: "Hello!"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Send with auto-selection:
|
|
62
|
+
```
|
|
63
|
+
Use gateway_channel with:
|
|
64
|
+
- operation: "send"
|
|
65
|
+
- content: "Hello!"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Notes
|
|
69
|
+
|
|
70
|
+
- The Gateway must be running for this tool to work
|
|
71
|
+
- Channels must be registered and running to receive messages
|
|
72
|
+
- Messages are sent proactively - no incoming message is required
|
|
73
|
+
- Use this tool when you need to notify users or send updates to external platforms
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
- Fast file pattern matching tool that works with any codebase size
|
|
2
|
+
- Supports glob patterns like "**/*.js" or "src/**/*.ts"
|
|
3
|
+
- Returns matching file paths sorted by modification time
|
|
4
|
+
- Use this tool when you need to find files by name patterns
|
|
5
|
+
- When you are doing an open-ended search that may require multiple rounds of globbing and grepping, use the Task tool instead
|
|
6
|
+
- You have the capability to call multiple tools in a single response. It is always better to speculatively perform multiple searches as a batch that are potentially useful.
|
|
@@ -0,0 +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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Lists files and directories in a given path. The path parameter must be absolute; omit it to use the current workspace directory. You can optionally provide an array of glob patterns to ignore with the ignore parameter. You should generally prefer the Glob and Grep tools, if you know which directories to search.
|
|
@@ -0,0 +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.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
Use this tool to store, retrieve, update, and delete persistent memories across agent sessions. Memory enables learning from interactions, remembering user preferences, and building long-term knowledge.
|
|
2
|
+
|
|
3
|
+
## When to Use This Tool
|
|
4
|
+
|
|
5
|
+
Use this tool proactively in these scenarios:
|
|
6
|
+
|
|
7
|
+
**remember** — Store a new memory:
|
|
8
|
+
1. User states a preference, habit, or constraint — e.g. "I prefer tabs over spaces", "always use pnpm"
|
|
9
|
+
2. You discover a technical fact specific to this project — e.g. architecture decisions, non-obvious configs, known pitfalls
|
|
10
|
+
3. A task is completed and the outcome is worth retaining — e.g. which approach worked, which failed and why
|
|
11
|
+
4. User corrects you or provides feedback — capture it so you don't repeat the mistake
|
|
12
|
+
5. A recurring pattern or workflow is identified — e.g. how the team deploys, how tests are run
|
|
13
|
+
6. An important decision is made — record the decision and its rationale
|
|
14
|
+
7. You encounter an error pattern with a known fix — store it to resolve faster next time
|
|
15
|
+
8. You explore a new domain, codebase, or system and find something non-obvious — store the finding
|
|
16
|
+
9. You complete a task and derive a reusable lesson — summarize the experience for future reference
|
|
17
|
+
10. You figure out the right way to use a tool, API, or command — store the usage pattern
|
|
18
|
+
11. You create, design, or improve a skill/capability — record what worked, the structure used, and lessons learned
|
|
19
|
+
|
|
20
|
+
**recall** — Search existing memories:
|
|
21
|
+
1. At the start of a new session or task — always recall relevant context before diving in
|
|
22
|
+
2. Before making assumptions about user preferences — check memory first
|
|
23
|
+
3. When you encounter a problem that might have been seen before — search for prior solutions
|
|
24
|
+
4. When the user references something from a past session — recall to restore context
|
|
25
|
+
5. Before suggesting an approach — verify it doesn't conflict with stored decisions or preferences
|
|
26
|
+
|
|
27
|
+
**update** — Modify an existing memory:
|
|
28
|
+
1. A preference or fact has changed — update rather than create a duplicate
|
|
29
|
+
2. A decision was revised — keep the record accurate
|
|
30
|
+
|
|
31
|
+
**forget** — Delete a memory:
|
|
32
|
+
1. Information is confirmed outdated or incorrect
|
|
33
|
+
2. User explicitly asks to remove something from memory
|
|
34
|
+
|
|
35
|
+
**queryEdges** — Query memory relationships by node ID:
|
|
36
|
+
1. When you need to find all memories connected to a specific node
|
|
37
|
+
2. When exploring graph relationships between memories
|
|
38
|
+
3. Provide the nodeId to get the node info and all connected edges
|
|
39
|
+
|
|
40
|
+
## When NOT to Use This Tool
|
|
41
|
+
|
|
42
|
+
Skip using this tool when:
|
|
43
|
+
1. The information is trivially obvious and not specific to this user or project
|
|
44
|
+
2. The task is purely conversational with no learnable facts
|
|
45
|
+
3. The information is already captured in the current session context and won't be needed later
|
|
46
|
+
4. You are recalling for a query that has no plausible match (don't recall speculatively on every message)
|
|
47
|
+
|
|
48
|
+
## Proactive Usage Pattern
|
|
49
|
+
|
|
50
|
+
**At session start**: Always recall relevant memories before starting work.
|
|
51
|
+
**During work**: Store discoveries, decisions, and corrections as they happen — don't batch them to the end.
|
|
52
|
+
**At session end**: Store any important outcomes or learnings that aren't already saved.
|
|
53
|
+
|
|
54
|
+
## Examples
|
|
55
|
+
|
|
56
|
+
<example>
|
|
57
|
+
User: I always want you to use `pnpm` instead of `npm` for this project.
|
|
58
|
+
Assistant: Got it, I'll remember that.
|
|
59
|
+
*Calls memory with operation=remember, content="User prefers pnpm over npm for all package management in this project", category="user_preference", importance=8, tags="pnpm, npm, package-manager"*
|
|
60
|
+
</example>
|
|
61
|
+
|
|
62
|
+
<example>
|
|
63
|
+
User: Why does the build keep failing?
|
|
64
|
+
Assistant: Let me check if I've seen this before.
|
|
65
|
+
*Calls memory with operation=recall, query="build failure"*
|
|
66
|
+
Assistant: I found a note from a previous session — the build fails when NODE_ENV is not set.
|
|
67
|
+
</example>
|
|
68
|
+
|
|
69
|
+
<example>
|
|
70
|
+
User: Start a new session — I need to work on the payment module.
|
|
71
|
+
Assistant: Let me recall relevant context first.
|
|
72
|
+
*Calls memory with operation=recall, query="payment module"*
|
|
73
|
+
*Calls memory with operation=recall, query="user preferences workflow"*
|
|
74
|
+
Assistant: Found relevant notes about Stripe integration and your preferred test command.
|
|
75
|
+
</example>
|
|
76
|
+
|
|
77
|
+
## Categories
|
|
78
|
+
|
|
79
|
+
Choose the most specific category that fits:
|
|
80
|
+
- `user_preference` — coding style, tool choices, communication preferences
|
|
81
|
+
- `technical_fact` — project-specific technical knowledge, configs, architecture
|
|
82
|
+
- `decision` — choices made with rationale (architecture, design, process)
|
|
83
|
+
- `workflow` — how tasks are done in this project (deploy steps, test commands, review process)
|
|
84
|
+
- `error_pattern` — recurring errors and their fixes
|
|
85
|
+
- `exploration_finding` — discoveries made while exploring a codebase, system, domain, or external resource; non-obvious facts worth remembering
|
|
86
|
+
- `experience_summary` — reusable lessons distilled after completing a task or solving a problem; "what I'd do differently next time"
|
|
87
|
+
- `tool_usage` — effective patterns for using tools, APIs, CLIs, or libraries; gotchas and best practices discovered through use
|
|
88
|
+
- `skill_creation` — experience from creating, designing, or improving skills/capabilities; what structure worked, what pitfalls to avoid, reusable templates
|
|
89
|
+
- `task_context` — context for ongoing or recurring tasks
|
|
90
|
+
- `relationship` — team structure, ownership, stakeholder info
|
|
91
|
+
- `reminder` — time-sensitive or action-required items
|
|
92
|
+
- `other` — anything that doesn't fit above
|
|
93
|
+
|
|
94
|
+
## Importance Scale
|
|
95
|
+
|
|
96
|
+
- 9–10: Critical — affects all future work (e.g. core architecture, strong user constraints)
|
|
97
|
+
- 7–8: High — frequently relevant (e.g. preferences, key decisions)
|
|
98
|
+
- 5–6: Medium — occasionally useful (e.g. task context, one-off fixes)
|
|
99
|
+
- 1–4: Low — minor details, rarely needed
|
|
100
|
+
|
|
101
|
+
When in doubt, store it. A memory that turns out to be unnecessary costs little. A missing memory that causes repeated mistakes costs much more.
|
|
@@ -0,0 +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
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Use this tool to search and retrieve information from the local note/document knowledge base. It returns document paths, line ranges, snippets, and related graph nodes.
|
|
2
|
+
|
|
3
|
+
**search** — Use this operation to find notes by query:
|
|
4
|
+
- Set operation="search"
|
|
5
|
+
- Provide query string to search note content
|
|
6
|
+
- Set limit to control number of results (default: 10)
|
|
7
|
+
- Returns snippets with document paths and related nodes
|
|
8
|
+
|
|
9
|
+
**queryEdges** — Use this operation to explore note relationships:
|
|
10
|
+
- Set operation="queryEdges"
|
|
11
|
+
- Provide nodeId (number) to get node information and all connected neighbors/edges
|
|
12
|
+
- Returns node details and its relationships in the knowledge graph
|
|
13
|
+
- Useful for exploring connections between notes
|
|
14
|
+
|
|
15
|
+
## Supported Parameters
|
|
16
|
+
|
|
17
|
+
**source** — Note sources (used in config, not directly in tool):
|
|
18
|
+
`docs` — documentation files from note management
|
|
19
|
+
`tasks` — task files from task management
|
|
20
|
+
|
|
21
|
+
Use this tool when you need to:
|
|
22
|
+
- Find information from project documentation
|
|
23
|
+
- Search for specific topics in notes
|
|
24
|
+
- Explore relationships between documents
|
|
25
|
+
- Retrieve context from stored knowledge
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Use this tool to suggest switching to plan agent when the user's request would benefit from planning before implementation.
|
|
2
|
+
|
|
3
|
+
If they explicitly mention wanting to create a plan ALWAYS call this tool first.
|
|
4
|
+
|
|
5
|
+
This tool will ask the user if they want to switch to plan agent.
|
|
6
|
+
|
|
7
|
+
Call this tool when:
|
|
8
|
+
- The user's request is complex and would benefit from planning first
|
|
9
|
+
- You want to research and design before making changes
|
|
10
|
+
- The task involves multiple files or significant architectural decisions
|
|
11
|
+
|
|
12
|
+
Do NOT call this tool:
|
|
13
|
+
- For simple, straightforward tasks
|
|
14
|
+
- When the user explicitly wants immediate implementation
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Use this tool when you have completed the planning phase and are ready to exit plan agent.
|
|
2
|
+
|
|
3
|
+
This tool will ask the user if they want to switch to build agent to start implementing the plan.
|
|
4
|
+
|
|
5
|
+
Call this tool:
|
|
6
|
+
- After you have written a complete plan to the plan file
|
|
7
|
+
- After you have clarified any questions with the user
|
|
8
|
+
- When you are confident the plan is ready for implementation
|
|
9
|
+
|
|
10
|
+
Do NOT call this tool:
|
|
11
|
+
- Before you have created or finalized the plan
|
|
12
|
+
- If you still have unanswered questions about the implementation
|
|
13
|
+
- If the user has indicated they want to continue planning
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
Execute commands in a pseudo-terminal (PTY) session with full interactive terminal support. Perfect for commands requiring terminal features like sudo, ssh, vim, interactive programs, and real-time output streaming.
|
|
2
|
+
|
|
3
|
+
**!! CRITICAL RESOURCE MANAGEMENT WARNING !!**
|
|
4
|
+
|
|
5
|
+
Key capabilities:
|
|
6
|
+
- Full terminal emulation (xterm-256color)
|
|
7
|
+
- Interactive command execution
|
|
8
|
+
- Real-time output streaming
|
|
9
|
+
- Automatic session cleanup after completion
|
|
10
|
+
- Terminal resizing support
|
|
11
|
+
|
|
12
|
+
Usage guidelines:
|
|
13
|
+
- Ideal for: sudo, ssh, vim, htop, interactive shells, build commands
|
|
14
|
+
- Supports: Password prompts, keyboard input, terminal applications
|
|
15
|
+
- Provides: Live output updates, automatic cleanup
|
|
16
|
+
- Use for: Commands that need full terminal interaction
|
|
17
|
+
|
|
18
|
+
Parameters:
|
|
19
|
+
- command (required): The command to execute in PTY session
|
|
20
|
+
- args (optional): Command arguments as array
|
|
21
|
+
- cwd (optional): Working directory (defaults to current)
|
|
22
|
+
- env (optional): Environment variables
|
|
23
|
+
- timeout (optional): Execution timeout in seconds (default: 300)
|
|
24
|
+
- cols/rows (optional): Terminal dimensions (default 120x30)
|
|
25
|
+
- title (optional): Session title for identification
|
|
26
|
+
|
|
27
|
+
**!! RESOURCE MANAGEMENT !!**
|
|
28
|
+
|
|
29
|
+
This tool automatically cleans up the PTY session after command completion or timeout.
|
|
30
|
+
|
|
31
|
+
For long-running background processes or persistent sessions:
|
|
32
|
+
- The session will be created and managed automatically
|
|
33
|
+
- Use pty_manage tool to monitor active sessions: pty_manage { "action": "list" }
|
|
34
|
+
- Use pty_manage tool to terminate sessions: pty_manage { "action": "close", "sessionId": "id" }
|
|
35
|
+
|
|
36
|
+
**IMPORTANT**:
|
|
37
|
+
- Sessions are automatically cleaned up after command completes
|
|
38
|
+
- For commands that don't exit (servers, daemons), use pty_manage to close them
|
|
39
|
+
- Check active sessions regularly with pty_manage list action
|
|
40
|
+
|
|
41
|
+
Security: Requires explicit user authorization for each execution.
|
|
@@ -0,0 +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.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
Create and manage persistent interactive PTY sessions for long-running processes. Enables background execution, session persistence, and reconnection capabilities for continuous operations.
|
|
2
|
+
|
|
3
|
+
**!! CRITICAL WARNING: PERSISTENT BACKGROUND SESSIONS !!**
|
|
4
|
+
|
|
5
|
+
Key capabilities:
|
|
6
|
+
- Persistent session creation
|
|
7
|
+
- Background process management
|
|
8
|
+
- Session reconnection
|
|
9
|
+
- Multi-session support
|
|
10
|
+
- State preservation
|
|
11
|
+
|
|
12
|
+
Usage scenarios:
|
|
13
|
+
- Long-running services (web servers, databases)
|
|
14
|
+
- Continuous monitoring (log tailing, system monitoring)
|
|
15
|
+
- Interactive development environments
|
|
16
|
+
- Remote session management
|
|
17
|
+
- Daemon-like processes running persistently
|
|
18
|
+
|
|
19
|
+
Parameters:
|
|
20
|
+
- command (required): Initial command to run in session
|
|
21
|
+
- sessionName (optional): Unique identifier for session
|
|
22
|
+
- cols/rows (optional): Terminal dimensions
|
|
23
|
+
- autoClose (optional): Auto-close session when idle (default: false)
|
|
24
|
+
|
|
25
|
+
Session management features:
|
|
26
|
+
- Create persistent sessions that continue running
|
|
27
|
+
- Reconnect to existing sessions
|
|
28
|
+
- Monitor session status and output
|
|
29
|
+
- Manage multiple concurrent sessions
|
|
30
|
+
- Graceful session termination
|
|
31
|
+
|
|
32
|
+
**!! ABSOLUTELY CRITICAL RESOURCE MANAGEMENT !!**
|
|
33
|
+
|
|
34
|
+
**WARNING**: Sessions run PERSISTENTLY in background until EXPLICITLY terminated!
|
|
35
|
+
|
|
36
|
+
**MANDATORY CLEANUP PROCEDURES**:
|
|
37
|
+
1. **MUST use pty_manage** tool for ALL session cleanup operations
|
|
38
|
+
2. **UNUSED sessions CONTINUE consuming system resources indefinitely**
|
|
39
|
+
3. **Sessions do not automatically terminate** - they run indefinitely until explicitly closed
|
|
40
|
+
4. **REGULAR monitoring required**: pty_manage { "action": "list" }
|
|
41
|
+
5. **IMMEDIATE termination**: pty_manage { "action": "close", "sessionId": "id" }
|
|
42
|
+
6. **FAILURE to clean up WILL lead to SYSTEM RESOURCE EXHAUSTION**
|
|
43
|
+
7. **SECURITY RISK**: Uncleaned sessions provide persistent system access
|
|
44
|
+
|
|
45
|
+
**RESOURCE CONSUMPTION IMPACT**:
|
|
46
|
+
- CPU cycles for active processes
|
|
47
|
+
- Memory allocation for session buffers
|
|
48
|
+
- File descriptors for terminal I/O
|
|
49
|
+
- Network connections (if applicable)
|
|
50
|
+
- System limits may be reached causing crashes
|
|
51
|
+
|
|
52
|
+
Security: Requires authorization for session creation and management.
|
|
@@ -0,0 +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
|
|
@@ -0,0 +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.
|