tune-basic-toolset 0.1.19 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -14,6 +14,7 @@ Basic toolset for [Tune](https://github.com/iovdin/tune).
14
14
  - [cmd](#cmd) execute Windows cmd command
15
15
  - [powershell](#powershell) execute PowerShell command
16
16
  - [grep](#grep) search for patterns in text or files
17
+ - [search_tools](#search_tools) find appropriate tools for a task
17
18
  - [osa](#osa) manage reminders/notes/calendar (AppleScript/macOS)
18
19
  - [jina_r](#jina_r) fetch webpage content
19
20
  - [websearch](#websearch) search the web with web-enabled llms
@@ -202,6 +203,50 @@ TODOS:
202
203
 
203
204
  ```
204
205
 
206
+ ### `search_tools`
207
+ Find appropriate tools for a given task by searching through available tools
208
+ ```chat
209
+ user: @search_tools
210
+ what is in my current directory?
211
+
212
+ assistant:
213
+ I'll help you check what's in your current directory.
214
+
215
+ tool_call: search_tools
216
+ list files and folders in current directory
217
+
218
+ tool_result:
219
+ @sh "sh" - because it can run shell commands like `ls -la` to list files/folders on Unix-like systems
220
+ @cmd "cmd" - because it can execute `dir` to list directory contents on Windows cmd.exe
221
+ @powershell "powershell" - because it can run `Get-ChildItem` (alias `ls`) to list items on Windows PowerShell
222
+ @nu "nu" - because it can run Nushell commands like `ls` for structured directory listings
223
+
224
+ assistant:
225
+ Let me try with a shell command that works on most systems:
226
+
227
+ tool_call: sh
228
+ ls -la
229
+
230
+ tool_result:
231
+ total 13584
232
+ drwxr-xr-x 15 iovdin staff 480 Jan 18 19:07 .
233
+ drwxr-xr-x 195 iovdin staff 6240 Jan 17 12:46 ..
234
+ drwxr-xr-x 14 iovdin staff 448 Jan 18 19:00 .git
235
+ drwxr-xr-x 3 iovdin staff 96 Sep 4 20:15 .github
236
+ -rw-r--r-- 1 iovdin staff 82 Aug 12 10:44 .gitignore
237
+ -rw-r--r-- 1 iovdin staff 316 Oct 21 21:41 .npmignore
238
+ drwxr-xr-x 32 iovdin staff 1024 Jan 18 18:59 chats
239
+ drwxr-xr-x 13 iovdin staff 416 Oct 25 09:32 node_modules
240
+ -rw-r--r-- 1 iovdin staff 8145 Oct 25 09:32 package-lock.json
241
+ -rw-r--r-- 1 iovdin staff 754 Jan 18 18:59 package.json
242
+ -rw-r--r-- 1 iovdin staff 18959 Jan 18 18:59 README.md
243
+ drwxr-xr-x 62 iovdin staff 1984 Jan 18 19:04 src
244
+ drwxr-xr-x 16 iovdin staff 512 Nov 9 09:14 test
245
+
246
+ ```
247
+
248
+ This tool analyzes your task description and recommends the most relevant tools from the available toolset, explaining why each tool would be helpful for your specific use case.
249
+
205
250
  ### `osa`
206
251
  AppleScript tool, manage reminders, notes, calendar etc on osx
207
252
  ```chat
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tune-basic-toolset",
3
- "version": "0.1.19",
3
+ "version": "0.1.21",
4
4
  "description": "Basic toolset for tune",
5
5
  "main": "src/index.js",
6
6
  "files": [
@@ -0,0 +1,14 @@
1
+ {
2
+ "description": "There is a tool list available, find ones and connect that are appropriate for the task",
3
+ "parameters": {
4
+ "type": "object",
5
+ "properties": {
6
+ "text": {
7
+ "type": "string",
8
+ "description": "User task description"
9
+ }
10
+ },
11
+ "required": ["text"]
12
+ },
13
+ "$escape_output": false
14
+ }
@@ -0,0 +1,18 @@
1
+ system:
2
+ @{ small | init @gpt-5.2-chat-latest }
3
+
4
+ Given user task
5
+ You provide a list of tools that are best help for the user
6
+
7
+ <tool-list>
8
+ @|tool_list
9
+ </tool-list>
10
+
11
+ example answer:
12
+ ```
13
+ \@tool_name1 "tool_name1" - because it helps to do X
14
+ \@tool_name2 "tool_name2" - because it helps with Y
15
+ ...
16
+ ```
17
+ user:
18
+ @text
@@ -0,0 +1,14 @@
1
+ module.exports = async function toolList(node, args, ctx) {
2
+ const tools = await ctx.resolve(".*", {
3
+ type: "tool",
4
+ output: "all",
5
+ match: "regex"
6
+ })
7
+
8
+ return {
9
+ type: "text",
10
+ read: async () =>
11
+ tools.map(tool => `## tool: '${tool.name}'\n${tool.schema?.description}\n` ).join("\n")
12
+
13
+ }
14
+ }