@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.
Files changed (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +220 -0
  3. package/README.md +220 -0
  4. package/dist/assets/txt/agent/generate.txt +75 -0
  5. package/dist/assets/txt/agent/prompt/btw.txt +21 -0
  6. package/dist/assets/txt/agent/prompt/compaction.txt +54 -0
  7. package/dist/assets/txt/agent/prompt/explore.txt +37 -0
  8. package/dist/assets/txt/agent/prompt/memory.txt +128 -0
  9. package/dist/assets/txt/agent/prompt/summary.txt +12 -0
  10. package/dist/assets/txt/agent/prompt/title.txt +24 -0
  11. package/dist/assets/txt/cli/tui/banner.txt +10 -0
  12. package/dist/assets/txt/command/builtin/arch.txt +26 -0
  13. package/dist/assets/txt/command/builtin/init.txt +10 -0
  14. package/dist/assets/txt/command/builtin/loop.txt +107 -0
  15. package/dist/assets/txt/command/builtin/review.txt +99 -0
  16. package/dist/assets/txt/command/builtin/vuln.txt +50 -0
  17. package/dist/assets/txt/context/prompt/anthropic.txt +105 -0
  18. package/dist/assets/txt/context/prompt/beast.txt +147 -0
  19. package/dist/assets/txt/context/prompt/build-switch.txt +6 -0
  20. package/dist/assets/txt/context/prompt/coder-plan.txt +70 -0
  21. package/dist/assets/txt/context/prompt/codex.txt +79 -0
  22. package/dist/assets/txt/context/prompt/copilot-gpt-5.txt +143 -0
  23. package/dist/assets/txt/context/prompt/default.txt +105 -0
  24. package/dist/assets/txt/context/prompt/gemini.txt +155 -0
  25. package/dist/assets/txt/context/prompt/glm.txt +81 -0
  26. package/dist/assets/txt/context/prompt/gpt.txt +107 -0
  27. package/dist/assets/txt/context/prompt/kimi.txt +95 -0
  28. package/dist/assets/txt/context/prompt/max-steps.txt +16 -0
  29. package/dist/assets/txt/context/prompt/minimax.txt +106 -0
  30. package/dist/assets/txt/context/prompt/plan-reminder-anthropic.txt +67 -0
  31. package/dist/assets/txt/context/prompt/plan.txt +28 -0
  32. package/dist/assets/txt/context/prompt/qwen.txt +109 -0
  33. package/dist/assets/txt/context/prompt/trinity.txt +97 -0
  34. package/dist/assets/txt/context/template/AGENTS.txt +47 -0
  35. package/dist/assets/txt/context/template/BOOT.txt +71 -0
  36. package/dist/assets/txt/context/template/BOOTSTRAP.txt +238 -0
  37. package/dist/assets/txt/context/template/CODER.txt +185 -0
  38. package/dist/assets/txt/context/template/CONTEXT.txt +51 -0
  39. package/dist/assets/txt/context/template/HEARTBEAT.txt +17 -0
  40. package/dist/assets/txt/context/template/IDENTITY.txt +27 -0
  41. package/dist/assets/txt/context/template/MEMORY.txt +78 -0
  42. package/dist/assets/txt/context/template/SOUL.txt +45 -0
  43. package/dist/assets/txt/context/template/TOOLS.txt +50 -0
  44. package/dist/assets/txt/context/template/USER.txt +39 -0
  45. package/dist/assets/txt/model/graph-summary.txt +60 -0
  46. package/dist/assets/txt/model/graph.txt +86 -0
  47. package/dist/assets/txt/model/knowledge-summary.txt +40 -0
  48. package/dist/assets/txt/model/memory-summary.txt +40 -0
  49. package/dist/assets/txt/model/rerank.txt +43 -0
  50. package/dist/assets/txt/model/summary.txt +53 -0
  51. package/dist/assets/txt/scheduler/heartbeat.txt +14 -0
  52. package/dist/assets/txt/scheduler/scheduled.txt +15 -0
  53. package/dist/assets/txt/session/prompt/anthropic.txt +105 -0
  54. package/dist/assets/txt/session/prompt/beast.txt +147 -0
  55. package/dist/assets/txt/session/prompt/build-switch.txt +5 -0
  56. package/dist/assets/txt/session/prompt/codex.txt +79 -0
  57. package/dist/assets/txt/session/prompt/copilot-gpt-5.txt +143 -0
  58. package/dist/assets/txt/session/prompt/default.txt +105 -0
  59. package/dist/assets/txt/session/prompt/gemini.txt +155 -0
  60. package/dist/assets/txt/session/prompt/gpt.txt +107 -0
  61. package/dist/assets/txt/session/prompt/kimi.txt +95 -0
  62. package/dist/assets/txt/session/prompt/max-steps.txt +16 -0
  63. package/dist/assets/txt/session/prompt/plan-reminder-anthropic.txt +67 -0
  64. package/dist/assets/txt/session/prompt/plan.txt +26 -0
  65. package/dist/assets/txt/session/prompt/qwen.txt +109 -0
  66. package/dist/assets/txt/session/prompt/trinity.txt +97 -0
  67. package/dist/assets/txt/tool/agent-client-chat.txt +52 -0
  68. package/dist/assets/txt/tool/apply_patch.txt +33 -0
  69. package/dist/assets/txt/tool/bash.txt +115 -0
  70. package/dist/assets/txt/tool/batch.txt +24 -0
  71. package/dist/assets/txt/tool/codebase.txt +28 -0
  72. package/dist/assets/txt/tool/codesearch.txt +12 -0
  73. package/dist/assets/txt/tool/edit.txt +10 -0
  74. package/dist/assets/txt/tool/gateway-channel.txt +73 -0
  75. package/dist/assets/txt/tool/glob.txt +6 -0
  76. package/dist/assets/txt/tool/grep.txt +8 -0
  77. package/dist/assets/txt/tool/ls.txt +1 -0
  78. package/dist/assets/txt/tool/lsp.txt +19 -0
  79. package/dist/assets/txt/tool/memory.txt +101 -0
  80. package/dist/assets/txt/tool/multiedit.txt +43 -0
  81. package/dist/assets/txt/tool/note.txt +25 -0
  82. package/dist/assets/txt/tool/plan-enter.txt +14 -0
  83. package/dist/assets/txt/tool/plan-exit.txt +13 -0
  84. package/dist/assets/txt/tool/pty.txt +41 -0
  85. package/dist/assets/txt/tool/pty_manage.txt +60 -0
  86. package/dist/assets/txt/tool/pty_session.txt +52 -0
  87. package/dist/assets/txt/tool/question.txt +33 -0
  88. package/dist/assets/txt/tool/read.txt +14 -0
  89. package/dist/assets/txt/tool/task.txt +60 -0
  90. package/dist/assets/txt/tool/todoread.txt +14 -0
  91. package/dist/assets/txt/tool/todowrite.txt +166 -0
  92. package/dist/assets/txt/tool/webfetch.txt +13 -0
  93. package/dist/assets/txt/tool/websearch.txt +14 -0
  94. package/dist/assets/txt/tool/write.txt +8 -0
  95. package/dist/cli.cjs +957 -0
  96. package/dist/cli.d.cts +1 -0
  97. package/dist/cli.d.ts +1 -0
  98. package/dist/cli.mjs +957 -0
  99. package/dist/index.cjs +1054 -0
  100. package/dist/index.d.cts +28884 -0
  101. package/dist/index.d.ts +28884 -0
  102. package/dist/index.mjs +1054 -0
  103. 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.