bash-tool 1.3.7 → 1.3.8

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
@@ -177,7 +177,7 @@ const { tools } = await createBashTool({ sandbox: customSandbox });
177
177
 
178
178
  ## Skills (Experimental)
179
179
 
180
- Skills are modular capabilities that extend agent functionality. Each skill is a directory containing a `SKILL.md` file with instructions and optional scripts.
180
+ [Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) are modular capabilities that extend agent functionality. Each skill is a directory containing a `SKILL.md` file with instructions and optional scripts.
181
181
 
182
182
  ```typescript
183
183
  import {
@@ -187,7 +187,7 @@ import {
187
187
  import { ToolLoopAgent } from "ai";
188
188
 
189
189
  // Discover skills and get files to upload
190
- const { loadSkill, files, instructions } = await createSkillTool({
190
+ const { skill, files, instructions } = await createSkillTool({
191
191
  skillsDirectory: "./skills",
192
192
  });
193
193
 
@@ -200,46 +200,28 @@ const { tools } = await createBashTool({
200
200
  // Use both tools with an agent
201
201
  const agent = new ToolLoopAgent({
202
202
  model,
203
- tools: { loadSkill, ...tools },
203
+ tools: { skill, ...tools },
204
204
  });
205
205
  ```
206
206
 
207
+ [Full Example](./examples/skills-tool/) and see [Skills.sh for a directory of publicly available skills.](https://skills.sh/)
208
+
207
209
  ### Skill Directory Structure
208
210
 
209
- ```
211
+ ```text
210
212
  skills/
211
213
  ├── csv/
212
- │ ├── SKILL.md # Required: instructions with YAML frontmatter
213
- ├── analyze.sh # Optional: scripts the agent can run
214
- └── filter.sh
214
+ │ ├── SKILL.md # Required: instructions with YAML frontmatter
215
+ └── scripts/ # Optional: scripts the agent can run
216
+ ├── analyze.sh
217
+ │ └── filter.sh
215
218
  └── text/
216
219
  ├── SKILL.md
217
- └── search.sh
220
+ └── scripts/
221
+ └── search.sh
218
222
  ```
219
223
 
220
- ### SKILL.md Format
221
-
222
- ```markdown
223
- ---
224
- name: csv
225
- description: Analyze and transform CSV files
226
- ---
227
-
228
- # CSV Processing
229
-
230
- Use `./skills/csv/analyze.sh <file>` to analyze a CSV file.
231
- ```
232
-
233
- ### How It Works
234
-
235
- 1. `createSkillTool` discovers skills and returns:
236
- - `loadSkill` - Tool for the agent to load a skill's instructions on demand
237
- - `files` - All skill files to pass to `createBashTool`
238
- - `instructions` - Extra instructions listing available skills
239
-
240
- 2. The agent sees skill names in the `loadSkill` tool description
241
- 3. When the agent needs a skill, it calls `loadSkill("csv")` to get detailed instructions
242
- 4. The agent uses `bash` to run scripts from `./skills/csv/`
224
+ See the [example skills](./examples/skills-tool/skills/) for a complete reference.
243
225
 
244
226
  ## AI Agent Instructions
245
227
 
@@ -14,7 +14,7 @@ import type { CreateSkillToolOptions, SkillToolkit } from "./skills/types.js";
14
14
  * } from "bash-tool";
15
15
  *
16
16
  * // Discover skills and get files
17
- * const { loadSkill, skills, files, instructions } = await createSkillTool({
17
+ * const { skill, skills, files, instructions } = await createSkillTool({
18
18
  * skillsDirectory: "./skills",
19
19
  * });
20
20
  *
@@ -27,7 +27,7 @@ import type { CreateSkillToolOptions, SkillToolkit } from "./skills/types.js";
27
27
  * // Use with AI SDK
28
28
  * const result = await generateText({
29
29
  * model,
30
- * tools: { loadSkill, ...tools },
30
+ * tools: { skill, ...tools },
31
31
  * prompt: "Process this data using the csv skill",
32
32
  * });
33
33
  * ```
@@ -1,7 +1,7 @@
1
1
  import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { discoverSkills, listSkillFiles } from "./skills/parser.js";
4
- import { createLoadSkillTool } from "./tools/load-skill.js";
4
+ import { createSkillTool } from "./tools/skill.js";
5
5
  const DEFAULT_DESTINATION = "skills";
6
6
  /**
7
7
  * Creates a skill toolkit for AI agents.
@@ -18,7 +18,7 @@ const DEFAULT_DESTINATION = "skills";
18
18
  * } from "bash-tool";
19
19
  *
20
20
  * // Discover skills and get files
21
- * const { loadSkill, skills, files, instructions } = await createSkillTool({
21
+ * const { skill, skills, files, instructions } = await createSkillTool({
22
22
  * skillsDirectory: "./skills",
23
23
  * });
24
24
  *
@@ -31,7 +31,7 @@ const DEFAULT_DESTINATION = "skills";
31
31
  * // Use with AI SDK
32
32
  * const result = await generateText({
33
33
  * model,
34
- * tools: { loadSkill, ...tools },
34
+ * tools: { skill, ...tools },
35
35
  * prompt: "Process this data using the csv skill",
36
36
  * });
37
37
  * ```
@@ -69,12 +69,12 @@ export async function experimental_createSkillTool(options) {
69
69
  }
70
70
  }
71
71
  }
72
- // Create loadSkill tool
73
- const loadSkill = createLoadSkillTool({ skills });
72
+ // Create skill tool
73
+ const skill = createSkillTool({ skills });
74
74
  // Generate instructions for bash tool
75
75
  const instructions = generateSkillInstructions(skills);
76
76
  return {
77
- loadSkill,
77
+ skill,
78
78
  skills,
79
79
  files: allFiles,
80
80
  instructions,
@@ -96,7 +96,7 @@ function generateSkillInstructions(skills) {
96
96
  }
97
97
  lines.push("");
98
98
  lines.push("To use a skill:");
99
- lines.push(" 1. Call loadSkill to get the skill's instructions");
99
+ lines.push(" 1. Call skill to get the skill's instructions");
100
100
  lines.push(" 2. Run scripts from the skill directory with bash");
101
101
  return lines.join("\n");
102
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skill-tool.js","sourceRoot":"","sources":["../src/skill-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-tool.js","sourceRoot":"","sources":["../src/skill-tool.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { createLoadSkillTool } from "../tools/load-skill.js";
1
+ import type { createSkillTool } from "../tools/skill.js";
2
2
  /**
3
3
  * Skill metadata parsed from SKILL.md frontmatter.
4
4
  */
@@ -46,7 +46,7 @@ export interface CreateSkillToolOptions {
46
46
  */
47
47
  export interface SkillToolkit {
48
48
  /** Tool to load a skill's instructions into context */
49
- loadSkill: ReturnType<typeof createLoadSkillTool>;
49
+ skill: ReturnType<typeof createSkillTool>;
50
50
  /** Registry of discovered skills */
51
51
  skills: Skill[];
52
52
  /** Files to pass to createBashTool (path -> content) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,KAAM,SAAQ,eAAe;IAC5C,4DAA4D;IAC5D,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,SAAS,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAClD,oCAAoC;IACpC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,KAAM,SAAQ,eAAe;IAC5C,4DAA4D;IAC5D,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAC1C,oCAAoC;IACpC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,25 @@
1
+ import type { Skill } from "../skills/types.js";
2
+ export interface CreateSkillToolOptions {
3
+ /** Registry of discovered skills */
4
+ skills: Skill[];
5
+ }
6
+ export declare function createSkillTool(options: CreateSkillToolOptions): import("ai").Tool<{
7
+ skillName: string;
8
+ }, {
9
+ success: boolean;
10
+ error: string;
11
+ skill?: undefined;
12
+ instructions?: undefined;
13
+ files?: undefined;
14
+ } | {
15
+ success: boolean;
16
+ skill: {
17
+ name: string;
18
+ description: string;
19
+ path: string;
20
+ };
21
+ instructions: string;
22
+ files: string[];
23
+ error?: undefined;
24
+ }>;
25
+ //# sourceMappingURL=skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/tools/skill.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,WAAW,sBAAsB;IACrC,oCAAoC;IACpC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AA4BD,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB;;;;;;;;;;;;;;;;;;GAmD9D"}
@@ -0,0 +1,74 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { tool } from "ai";
4
+ import { z } from "zod";
5
+ import { extractBody } from "../skills/parser.js";
6
+ const skillSchema = z.object({
7
+ skillName: z.string().describe("The name of the skill to load"),
8
+ });
9
+ function generateDescription(skills) {
10
+ const lines = [
11
+ "Load a skill's instructions to learn how to use it.",
12
+ "You can load multiple skills - each call returns that skill's instructions. Treat the returned instructions as authoritative.",
13
+ "",
14
+ "Available skills:",
15
+ ];
16
+ if (skills.length === 0) {
17
+ lines.push(" (no skills found)");
18
+ }
19
+ else {
20
+ for (const skill of skills) {
21
+ lines.push(` - skill(${JSON.stringify(skill.name)}): ${skill.description}`);
22
+ }
23
+ }
24
+ lines.push("");
25
+ lines.push("After loading a skill, use the bash tool to run its scripts from the skill's directory.");
26
+ return lines.join("\n");
27
+ }
28
+ export function createSkillTool(options) {
29
+ const { skills } = options;
30
+ // Create a map for quick lookup
31
+ const skillMap = new Map();
32
+ for (const skill of skills) {
33
+ skillMap.set(skill.name, skill);
34
+ }
35
+ return tool({
36
+ description: generateDescription(skills),
37
+ inputSchema: skillSchema,
38
+ execute: async ({ skillName }) => {
39
+ const skill = skillMap.get(skillName);
40
+ if (!skill) {
41
+ const availableNames = skills.map((s) => s.name).join(", ");
42
+ return {
43
+ success: false,
44
+ error: `Skill "${skillName}" not found. Available skills: ${availableNames || "none"}`,
45
+ };
46
+ }
47
+ // Read the SKILL.md from local filesystem
48
+ const skillMdPath = path.join(skill.localPath, "SKILL.md");
49
+ try {
50
+ const content = await fs.readFile(skillMdPath, "utf-8");
51
+ const body = extractBody(content);
52
+ // Get files list (excluding SKILL.md)
53
+ const files = skill.files.filter((f) => f !== "SKILL.md");
54
+ return {
55
+ success: true,
56
+ skill: {
57
+ name: skill.name,
58
+ description: skill.description,
59
+ path: skill.sandboxPath,
60
+ },
61
+ instructions: body,
62
+ files,
63
+ };
64
+ }
65
+ catch (error) {
66
+ return {
67
+ success: false,
68
+ error: `Failed to read skill "${skillName}": ${error instanceof Error ? error.message : String(error)}`,
69
+ };
70
+ }
71
+ },
72
+ });
73
+ }
74
+ //# sourceMappingURL=skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/tools/skill.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.3.7",
6
+ "version": "1.3.8",
7
7
  "description": "Generic bash tool for AI agents, compatible with AI SDK",
8
8
  "type": "module",
9
9
  "main": "dist/index.js",